プログラマー/フリーソフト開発者
たかぼー
静岡県浜松市在住。システムエンジニア、プログラマーとして長年ソフトウェア開発に携わる。個人としては「TAKABO SOFT」名義にて、ドット絵エディタ「EDGE」や、シェアウェア「EDGE2」を開発。2007年にはMIDI専用シーケンサー「Domino」を公開。現在も本業の傍ら、個人開発ツールの保守を続けている。
高機能なDAW(デジタル・オーディオ・ワークステーション)が次々と台頭していた2007年に、なぜあえて純粋な「MIDIシーケンサー」(※1)をつくったのか――。
ニコニコ動画の発展期に、ボカロ曲や同人音楽の文化を支えた「Domino」というフリーソフトがあります。「楽譜が読めない」「楽器が弾けない」人をターゲットに据え、直感的な「ピアノロール」での打ち込みに特化。
軽量な動作性と手軽な使い勝手で人気を博し、2007年には「窓の杜大賞」にノミネートされるなど、初心者を中心に多くのDTM(デスクトップミュージック)ユーザーに愛されてきました。
Dominoのメジャーアップデート自体は、2020年を最後に停止しています。しかし、その歩みは完全に止まったわけではありません。開発者のたかぼーさんは今なお、時おり「β版」として不具合解消等のアップデートをリリースしたり、サポート掲示板へのユーザーからの問い合わせに対応を続けたりしているのです。
一体どんな思いで、あえてMIDIだけに特化したツールを開発したのか? 利用は完全に無料なソフトながら、なぜ今も、ユーザーのサポートを続けているのか? そう尋ねると、たかぼーさんはこう語ります。
「なんといいますか、この取材のお話をいただいた時、自分の中に、読者に夢と希望を与えられそうなお話が1個も出てこなくてですね……」
▲Dominoの動作イメージ(公式サイトより)。当時の開発環境はVisual C++ 6.0で、Windows向けのフレームワークであるMFC(Microsoft Foundation Class)を使っていたとのこと。
(※1)「MIDIシーケンサー」:電子楽器間で、音程や発音タイミング、強弱などの演奏データをデジタル信号として伝送するための規格「MIDI」のメッセージを記録・編集し、送出するためのソフトウェア。実際の波形データやエフェクト演算も担うDAWとは異なり、あくまで制御データのみを扱う。
ピアノロールの衝撃と、「Cherry」難民の鬱憤
――2007年といえば、すでにオーディオ録音や波形編集が可能な高機能なDAWが普及し始めていた時期です。なぜそのタイミングで、あえて純粋なMIDIシーケンサーである「Domino」を開発しようと考えたのでしょうか。
たかぼー:きっかけはある種の「鬱憤」です。
いきなり、話を90年代に遡らせてください。
私はもともと、MS-DOS時代から趣味でDTMに打ち込んできました。当初はRoland社の「ミュージ郎」という、MIDI音源モジュール(※2)とソフトウェアがセットになったパッケージ製品を使い、楽曲制作をしていたのです。
ただ、当時のソフトウェアのインターフェースは、「五線譜」に音符を置いていくものでした。
私は楽譜が読めないのに。
(※2)MIDI音源モジュール:受信したMIDI信号をもとに、楽器などの音を合成して出力する専用のハードウェア機器。現在ではPC内部のプログラムとして音を生成するソフトウェア音源が主流だが、当時は外部の専用機器に発音処理を任せることで、PC側の演算負荷を抑える構成が一般的だった。
――楽譜が読めないのに、インターフェースが楽譜?
たかぼー:はい。
五線譜を見ても、そこに書かれた音符から「どんな音が鳴るのか」、頭の中でまったく再生できなかったんです。
なので、1音1音再生してどう鳴るのかを確かめながら音符を入力していくしかありませんでした。かなり「根性」でやっていましたね。
大きな転機となったのは、Windows時代に入って出会った「Cherry」というフリーのMIDIシーケンサーです。
――「Cherry」ですか。
たかぼー:このソフトは、縦方向に鍵盤の音階、横方向に時間軸を配置した「ピアノロール」という、直感的なインターフェースを採用していました。今でこそ広く見かけるUIですが、当時はピアノロールの黎明期だったんですね。
正直、当初、私は「『ピアノロール』という見慣れない画面で、ちゃんとDTMができるものだろうか?」と半信半疑でした。
しかしCherryに慣れてくるころには「……なぜ従来のメーカーさん達は、あれほど五線譜にこだわっていたのだろうな」なんて思うようになっていました。
もちろん、音楽を体系的に表現するうえで、五線譜は理にかなったフォーマットです。
ですが楽譜が読めない私にとって「このタイミングで、この高さの音を鳴らしたい」と思った場所をポチッと押すだけで作曲できるピアノロールは、非常にありがたいインターフェースだったのです。
――すっかり、ピアノロールの虜になった?
たかぼー:ええ。
音の長さを変える作業ひとつとっても、五線譜のUIでは「四分音符を消して二分音符を置き直す」というような手間がかかります。
しかしピアノロールなら四角いブロックの端をマウスでドラッグして引き伸ばすだけで済む。「これ、いいじゃん。DTMの敷居が下がったな」と感じたのを覚えています。
――それがどのようにして、Dominoにつながるのでしょうか。
たかぼー:Cherryのアップデートは、知る限り1998年を最後に止まっているんですよ。
そんな中、私はCherryを1998年ごろから8年近く使い続けました。するとOSがWindows 2000やXPへと進化していく過程で、少しずつ不便さを感じるようになっていくんですね。
Cherry自体はすばらしいソフトですが、「ここがこうだったらいいのに。でも、どうしようもできない」という個人的な鬱憤が自分の中に蓄積していきました。
「ならば自分でつくってしまおう」と決意して2007年に開発したのが、Dominoです。
――ご自身が使いたい機能を実現するための開発だったのですね。当時すでにトレンドになりつつあった、高機能な「DAW」へ乗り換えるという選択肢はなかったのでしょうか?
たかぼー:考えていませんでしたね。
DAWを快適に動かすには、当時でもまだそれなりにハイスペックなパソコンが必要でした。そんな環境は手元になかった、というのがひとつあります。
また、私は長年Roland社の「SC-88Pro」などのMIDI音源モジュールを愛用してきました。
ただ、当時のDAWはPCの性能向上に伴って、PCの内部で音をつくる「ソフトウェア音源」や、録音したオーディオ波形の編集を中心とした設計になりつつあり、MIDI機器との連携についてはあまり注力されなくなっていました。
つまり、手元にあるハードウェア音源を生かしつつ、低スペックなパソコンでも軽快に動作するツールが欲しかった。
そして「そんな私と同じ事情を抱えた、アップデートが止まったCherryを使い続けざるを得ない『難民』がたくさんいるはずだ」という確信がありました。
なので、CherryライクでMIDIに特化したシーケンサーをつくろうと考えたのです。
軽さの秘訣は「8ビット描画」?
――Dominoの設計において、技術的に最もこだわった部分はどこでしょうか。
たかぼー:主には「軽さ・安定性」です。加えて、長期的なアップデートを見据えた「拡張性」ですね。
――Dominoの動作の軽さは、現在でも高く評価されています。この軽さを実現するために、どのような工夫を凝らしたのでしょうか。
たかぼー:大前提として「MIDIシーケンサーだから当然軽い」という側面があります。
DominoはDAWのようにオーディオの波形データを処理したり、自前で音を生成したりするエンジンを持っていません。ただ「どのタイミングで、どの音源の、どの鍵盤を、どれくらいの強さで鳴らすか」という数値の命令を、外部のデバイスや音源に送信するだけです。扱うデータ量が根本的に少ないので、メモリの消費量は小さく済みます。
――オーディオ処理を行わない時点で、DAWに比べて圧倒的に動作が軽くなるのは必然だったのですね。
たかぼー:そのうえで、他に私がやったことを挙げるとすると、UIの描画において「最低限のことしかしていない」というのが、軽さに寄与しているのかもしれません。
――というと?
たかぼー:Dominoの表示部分は、すべて「256色」しか使っていないんです。8ビットのカラーパレット方式なんですよ。
一般的なフルカラーの処理だと、ピクセルごとに、色情報を数バイト分持たせる必要があります。ですが、あらかじめ256色分の「カラーパレット」を用意しておけば、「この点はパレットの〇番の色」と指定するだけでよくなり、1ピクセルあたり1バイトで済むんです。
加えて、Windows標準のグラフィックAPI等の関数は使用していません。パレットの番号を、メモリ上の配列操作だけで直接書き換えて処理しています。
そうすると転送するデータ量が少なくなる。なので、大量のノートを配置して画面をスクロールさせても、描画遅延は比較的発生しづらくなっているのだと思います。
言ってしまえば、これはWindows 95時代のソフト開発で使われていた非常に古い手法を使っているというだけなのですが……。ただ2007年当時にあえてこのやり方を全面的に採用する開発者は、あまりいなかったかもしれませんね。
――「拡張性」については、どのように担保したのでしょうか。
たかぼー:ソフトウェアの内部構造において、クラス設計を徹底しました。例えば「アンドゥ(元に戻す)」「リドゥ(やり直し)」といった操作履歴の管理や、個別の編集機能をそれぞれ独立した1つのクラスとしてまとめ、機能間の結合度を下げ、後から新しい機能を追加しやすいアーキテクチャを心がけていました。
また、プロジェクト保存用のファイル形式である「.dms」では、編集状態のデータを単純なバイナリデータとして保存するのではなく、XMLのようにタグで区切ってデータを構造化する方式を採用しています。「ここからここまではトラック情報」「ここからはイベント情報」といった単位でデータを格納する方式です。
この構造にしておけば、将来のバージョンアップで新しいパラメータを追加しても、古いバージョンのDominoは自分が解釈できるチャンクだけを読み込み、未知のデータは無視して安全にファイルを開くことができます。後方互換性と前方互換性を維持し、ソフトウェアの寿命を延ばすための構造設計でした。
――UIや機能面についてもお聞きします。Cherryの使い勝手を踏襲しつつも、数年間溜まっていたご自身の願望を詰め込むため、拡張性の高さも生かして、オリジナルの機能も積極的に追加していたのではないでしょうか。
たかぼー:あれこれ実装したので、パッと列挙するのが難しいというのが正直なところです。
「特にどうにかしたいと思っていた」要素から話すと、本当に細かいのですが、例えばCherryでは音符を配置するのに「ダブルクリック」が必要でした。
1曲完成させるまでに何千回とダブルクリックするのが辛くて、Dominoではシングルクリック形式にしてあります。
他には、トラックを切り替えた際の「縦スクロール位置の自動記憶」機能。
例えば、画面の下の方にある、低い音階でベース音源用のトラックを打ち込んだとします。で、フルート音源用のトラックに切り替えてみる。この時、画面がベース用の低い音階の位置を表示したままだと、いちいちスクロールしてフルートの音源の位置を探さなくてはいけない。
これが少し手間に感じていたので、垂直スクロールの位置をトラックごとに保持・復元するようにしました。トラックを切り替えた瞬間に、前回そのトラックで表示していた高さが復元される仕組みです。そのような、小さな工夫をいろいろと詰め込んでいましたね。
▲オニオンスキン機能。編集中のトラックの背景に、他のトラックのノートを薄く透かして表示させる機能。和音の知識がなくとも「音がぶつかっていないか」「リズムが合っているか」を視覚的に確認できる(画像は公式ヘルプから)。
▲ギターの「ジャカジャカ」というコード弾きを、マウスで1音ずつ入力して再現するのは容易ではない。そこでDominoでは、和音を構成する各音の鳴るタイミングを少しずつずらし、ピックで弾いたような効果を出す「ストローク機能」や、ある小節のリズムパターンを別の小節に一括で適用できる「パターンスライス機能」を実装。鍵盤が弾けなくても、手軽にギターらしいフレーズを打ち込めるようにしてある(ヘルプから)。
「いったい、私は何をやっているんですかね?」
――それほどこだわってつくりあげたDominoですが、2020年を最後にメジャーアップデートが停止しています。その理由について、お聞きしてもいいでしょうか?
たかぼー:社会人になってキャリアを積み重ねると、経済的な余裕もある程度できていきますよね。
それである日、購入しました。
DAWを。
――MIDIへのこだわりは……!?
たかぼー:そもそもMIDI規格自体にこだわりをもっていたわけではないのです。MIDIはあくまで音楽をつくるための手段であって、目的ではありませんから。
まず単純に、進化していくDAWという環境への好奇心がありました。何より、「使ってみたい」と思うギター音源の多くが、DAW上での利用を前提としていたのです。従来のハードウェアMIDI音源を打ち込み続けるうち、メタルギターなんかを鳴らしてみると、「なんでこんなにかっこ悪いんだ!」と思うようになってしまった。
そうした新たな「鬱憤」が、私の中に溜まったんですね。
そこである日、とうとうDAWとソフトウェア音源を購入してみたところ、とてもリアルなサウンドが鳴らせるじゃありませんか。
結果として、私自身がDominoをメインツールとして使わなくなってしまったのです。そのため、自然と更新の手も止まり気味になっていきました。
だから、歴史は繰り返すんですね。まあCherryと異なり、DAWが普及した昨今では「Domino難民」はそんなにいないと思いますが。
――では、なぜメジャーアップデートが止まった現在でも、サポート掲示板での問い合わせ対応を続けたり、時おりβ版をリリースしたりしているのでしょうか。やはり、ユーザーのためを思って?
たかぼー:うーん。というより、例えば不具合が発覚したとして、「バグを放置している作者」だと思われてしまうのは、単純に嫌ですよね。
私も決してユーザーに対して意地悪をしたいわけでもないので、致命的な問題があれば直しますし、初心者の方が使い方で困っていれば答える。そんな感覚です。
――それにしても、2000年代~2010年代にかけてDominoは大きく普及し、解説サイトも、いくつも生まれました。多くのクリエイターに使われた当時の盛り上がりを、開発者としてどのように受け止めていましたか?
たかぼー:生意気なことを言うと、テンションが上がるといったことはなかったですね。
そもそも私はDominoを出す前に、フリーの「EDGE」というドット絵エディタを公開しているのですが、こちらも幸い多くの方の目に留まったんですよ。つまるところ、自分のツールが多くの方の手に渡るという経験はすでにあったので、「ああ、今回もこんな感じで使ってもらえてるんだな」というような心情でした。
それに現金な話、フリーソフトがいくら有名になったところで、私に直接的な収益が発生するわけではありません。
街中で「あ、あのDominoをつくったTAKABO SOFTさん……!?」と声をかけられることもない。
お金や名声といったリターンもないので、何か気分が盛り上がることもありませんでした。
――あの……なぜ20年近くもDominoに労力を注いできたのですか?
たかぼー:自分でもよくわかりません(笑)。いったい、私は何をやっているんですかね?
でも、強いて言葉にするなら、「修行」なんだと思います。
――修行、ですか。
たかぼー:はい。
ソフトウェアを公開し、ユーザーから「ここが使いにくい」「こういう機能が欲しい」というフィードバックを受け取る。その中からシステム的に実現可能な落としどころを探り、仕様を固めて実装し、リリースして、また反応を見る。
この一連の「お客様の要望を見極め、形にするサイクル」を回し続けることは、エンジニアにとって大きな経験値にはなります。本業の業務ではなかなか経験できない規模のフィードバックループを、自分の裁量で回せる。
それ自体は、きっと自分にとってプラスになっていると思います。
しかし、この自分の中での理屈付けは、やや後付け気味です。
本当に労力がかかりますし、苦しいこともあります。他のエンジニアに「フリーソフト開発は素晴らしいからやりましょう!」と勧める気には到底なれません。
――その「修行」を、続けていくためのコツはあるのでしょうか?
たかぼー:「深く考えないこと」ですかね。
考えれば考えるほど、つくる理由に比べて、「つくらない理由」の方が圧倒的に多いことに気づかされるんですよ。「お金にならない」「自分の時間が奪われる」「サポートが面倒くさい」「みんな使ってくれないかもしれない」……。
そこはもう考えるのやめ、無心で修行をし続けるんですね。
――そのようなスタンスで向き合われていたとは。
たかぼー:すみません、こんなちょっと冷めた感じで……。なので、今回の取材のお話をいただいた時も、困ってしまったんですよ。自分の中に、読者に夢と希望を与えられそうなお話が1個も出てこなくてですね……。
ただ、なんだかんだで、私はフリーソフト開発者として恵まれていたとは思っています。
掲示板に集まってくださったユーザーの皆さんは、温かい方ばかりだったからです。バグ報告も丁寧に状況を説明してくださいましたし、機能要望の提案も理路整然とした方が多かった。そうした方々の要望に沿った実装がうまくいき、喜んでいただけた時には、やっぱり感じるものはありますよね。また、ボカロPのOSTER projectさんなど、プロとして活躍されている方が「Dominoを使っている」と公言されているのを知った時も、嬉しいものでした。
だから、決して悪いことばかりじゃなかった、というのはお伝えしておきたいです。
開発終了の「宣言」はしなくてもいい
――Dominoのシェアウェア化を考えたことはなかったのですか?
たかぼー:一時期、迷ったこともありました。ドット絵ツールの「EDGE2」は、シェアウェアとして提供していますしね。ただ、Dominoについては最終的にフリーソフトのままでいくと決断しました。
――それはなぜだったのでしょうか。
たかぼー:やはり「自分がしたいように、好き放題に開発したい」という思いが強かったからです。
シェアウェアにしてお金をいただく以上、どうしてもサポートや機能維持に対する責任が生まれます。
例えば、思いつきで機能を1回つけて、「やっぱり使いにくいからやめます」と削りたくなったとします。しかし、すでにお金を払ってその機能を使っている人がいたら、おいそれと取り消すわけにはいきません。
その点、フリーソフトであれば、しがらみなく気軽に仕様変更ができます。自分自身がメインユーザーであったDominoには、そういった自由な性質を残しておきたかったんです。
――しかし、メジャーアップデートの頻度が下がり、ご自身の環境も変化する中、明確に「開発を終了する」との選択肢はなかったのでしょうか。
たかぼー:そうですね。別に、「終了」と宣言する必要はない、と思っているんですよね。
宣言した後に、ひょっとすると「やっぱり少し直したいな」「新しいOSへの対応だけやろうかな」と思うことがあるかもしれない。
わざわざ終了宣言をして、自分の道を狭めなくてもいいんじゃないかと思うのです。
だから、明確な区切りをつけず、開発中とも終了とも言い切れない、曖昧な温度感のままでいるのが一番気楽かな、と。
――では今後、再び本格的にMIDI関連のツール開発に着手される可能性はあるのでしょうか?
たかぼー:どうでしょうね。ただ、少し前に「MIDI 2.0」という新しい規格が策定されて、対応する音源も徐々に世に出始めているので、界隈がまた盛り上がるといいな、という期待感は持っています。
もし今後、うっかり私の手元にMIDI 2.0対応の新しいハードウェア音源が転がり込んできたら、「これを制御するためのツールをつくりたいな」と、思う可能性はゼロではありません。
それに、私生活の面でも子育てなどが少し落ち着き、最近また個人的な時間が確保できるようになってきました。なので、MIDIに限らず、また何かつくってみようかな、と思わないことはないという今日この頃です。
――それは楽しみですね。
たかぼー:が……なんと、最近「老眼」が本格的に来まして。
ディスプレイを長時間見つめているのが、肉体的にしんどくなってきているんです。
というわけで、もしもフリーソフト開発に興味を持つ方がいらっしゃったら、ひとつだけお伝えしたいです。
もしもやるなら、老眼になる前に、やりましょう。
取材・執筆:田村 今人
編集:王 雨舟