第507回:マニアックなFM音源がiPadで復刻
~DETUNEとヤマハが組んだアプリ「iYM2151」 ~
iPad用ソフトシンセアプリの「iYM2151」 |
5月3日、iPad用のアプリ、「iYM2151」(3,000円)という非常にマニアックなソフトシンセがDETUNEより発売された。DETUNEとはニンテンドーDS用のアナログシンセシミュレータ、DS-10を開発した佐野電磁こと佐野信義氏が代表を務める企画・開発会社。これまで同社では同じニンテンドーDS用にKORGのM1を復刻させたKORG M01、iPadにKORGのMS-20を復刻させたiMS-20などを開発してきている。
KORGと組んで昔の音源を今に蘇らせるということで話題を呼んできていた会社だが、今回組んだのはKORGではなく、YAMAHA。そう、YAMAHAのFM音源を復刻させたのだ。しかもDX7ではなく、8ビットパソコンなどに組み込まれていたYM2151という音源チップを忠実に再現しているのだ。先日、開発者である佐野氏、そして音源コア部分の開発を行なったヤマハのエンジニア、デジタル楽器事業部の技術開発部、要素開発グループの主任、加瀬光氏に話を伺うことができたので、インタビュー形式で、iYM2151がどのように開発されたのかについて紹介していこう(以下、敬称略)。
DETUNEの代表を務める佐野電磁こと佐野信義氏 | ヤマハ デジタル楽器事業部 技術開発部 要素開発グループの主任、加瀬光氏 |
■ ゼロからの開発。コンセプトは「80年代にYM2151のミュージックワークステーションがあったなら?」
筆者の手元にあったYM2151。型番がかすれてしまっているが、まさに当時のもの |
――今回のiYM2151、ずいぶんマニアックなコンセプトのアプリですよね。YM2151はOPM(FM Operator type-M)の愛称でも親しまれたチップの名称。私個人的には、大学時代にこのチップを使ってPC-8801用の周辺ハードウェアをHAL研究所で作って、ソフト開発をしたこともあったため、とっても思い入れがあるのです。まさか、そんなチップがiPadアプリとしてリリースされるなんて考えてもみませんでした。でも、どんなキッカケでいつごろから開発をしていたのですか?
加瀬:私のところに話が来たのは昨年の6月。最初は4オペレータ、8アルゴリズム、8音ポリフォニックのFM音源を作って欲しいという依頼が社内であったのです。よく聞いてみると、DETUNEの佐野さんからの要望だという話でした。でも、何で今どき4オペ? 普通だったら6オペのDX7互換なのでは……と不思議にも思いました。だったら、DX21とかDX27、DX100を再現すればいいのかな、とも考えたのですが、オーダーを細かくチェックしていくと、どうもDXを求めているのではなく、YM2151のチップそのものを求めているの? とますます不思議な感じでした。
80年代にYM2151をコアにしたワークステーションがあったら、というコンセプトで作られたのが、このiYM2151 |
佐野:実は昨年、ヤマハさんとコラボ企画をやってみようという話が盛り上がり、何がいいか考えていました。そうした中、思いついたのがiYM2151だったのです。以前からFM音源をベースとしたミュージックワークステーションを作りたいと思っていたのですが、DX7はある意味、完成された世界です。すでにDX7をコンセプトとしたソフト音源などもいろいろありますし、私自身、ずっとゲームの世界で生きてきたので、自分が一番馴染みのある音源はというと、YM2151だったのです。現実にはYM2151のミュージックワークステーションというものは存在しませんでしたが、もしあったらどんなものだったか、というのを今に再現してみよう……とコンセプトが固まっていったのです。
iYM2151のシーケンサ画面。決して使いやすいものではないが、まさに当時のユーザーインターフェイスの雰囲気を味わえる |
――iYM2151開発の役割分担というのはどうなっていたのですか?
佐野:企画とユーザーインターフェイス、そしてシーケンサ部分などをDETUNEが担当し、音源コアはすべてヤマハさんにお願いしました。
――実際、YM2151のソフトウェア音源はすでにヤマハ側で持っていたんですか?
加瀬:いいえ、ゼロからの開発です。開発するに当たって、一番最初に心配だったのはこれを作ってiPadで本当に動作するかということ。結果的には4オペ、8アルゴリズム、8音ポリというのはちょうどリーズナブルなスペックでしたね。インテルのCoreチップを使って、ということであれば野放図にプログラミングしてもCPUパワーがあるので大丈夫なのですが、やはりARMのチップだとコア数を含めてもCPUパワーはずっと低いですから。
――加瀬さんご自身は、YM2151があった時代にはまだヤマハには入社していないですよね? これまでどんなものを開発されてきたのですか?
加瀬:はい、入社は1994年なので、YM2151の開発のことはまったく知りません。ただ入社当初の配属が楽器用の音源LSIの設計部隊であったため、周りにはこれに関わった人達もいました。もっとも私自身はLSIに関する一通りの勉強はしたものの、LSIの開発そのものは行なっていないのです。配属後、すぐにソフトウェア音源の開発に移っており、それ以来、ずっとソフトウェア音源一筋です。社内で使われるものが多く、最終商品になったものは少ないのですが、古いものだとS-YXG50やミッドラジオプレーヤ、最近だとTENORI-ONのiPad/iPhone版であるTNR-iとか……。
――FM音源自体を開発した経験は?
加瀬:ありません、今回が初めてですね。とはいえ、FM音源は有名ですから、どうすればいいかというメドは最初から立っていましたよ。またYM2151に関する資料はいろいろ残っていますし、当時、開発に携わった方々もギリギリ社内に残っていますから。今回の開発に当たっては、まずは仕様書レベルから再現することをはじめました。
■ 手描きの回路図からプログラム作成。外部キーボード演奏可能なデモアプリも開発
公開はされていないデモアプリ。これを使って音源エンジン部分を叩くことができる |
――仕様書というと、チップのどのレジスタにどんな数値を入れると、どんな動作をするかが書かれたものですよね?
加瀬:その通りです。まずは、仕様書を元にしてエンジン部分を作り始めました。それと同時にこのエンジンを叩くための単純なデモアプリも。OPMはレジスタによっては上位ビットと下位ビットで異なる役割を持たせているものもあるので、デモアプリのほうは、レジスタというよりも全パラメータを羅列して、それぞれにデータを設定すると、エンジンが書き換わるというものですね。ユーザーインターフェイスは適当ですが、とりあえずここに数値を設定し、キーボードを弾けば音が出るようにしてあります。
――おお、これはこれでちょっと欲しくなりますね(笑)。iYM2151はCoreMIDI対応していませんでしたが、このデモアプリはCoreMIDI対応させてあるんですね。でも、仕様書レベルを元にするだけでFM音源チップが再現できてしまうんですか?
加瀬:もちろん、最初のとっかかりが仕様書というだけであって、そう簡単ではありませんでした。やはり普通に作っただけでは、うまくいかない部分も数多くあるのです。でも、ここはメーカーの強み。ちゃんと回路図が残っているので、それを見ながら回路動作をプログラムに落として再現していきました。当時の回路図、手描きなんですよ!
iYM2151はこのキーボードで演奏できるが、CoreMIDIには非対応となっている | デモアプリはCoreMIDI対応になっているので、外部キーボードで演奏することも可能 |
――その回路図、ちょっぴり見せてもらうことはできますか?
加瀬:いやいや、それは絶対的な企業秘密だから無理ですよ(笑)。
佐野:今、思いついたのは、その回路図をTシャツにするというアイディアなんですが、ダメですか?
加瀬:それはできませんよ!まあ、私自身、ハッキリ言ってソフトの世界しか知らないのですが、生の回路図を見てみると、本当によく考えられているなと感心しましたよ。ソフトの発想だと、絶対にこうした書き方はしないな、というところが数多くありました。やはり80年代当時、トランジスタをいっぱい積むことはできないし、クロック数も低いのでさまざまな工夫がされているんですね。この方法はよくできている、このやり方は効率がいいな……と。
とはいえ、中には、なぜこんな回路になっているのか、理解できない部分も出てきました。そこで、当時設計した人が残っているので、彼らにどうして、こうなったかなどをインタビューして回ったんです。すると、みんなよく覚えていて、回路を見ながら嬉々として語ってくれるんですよね。本当に勉強になりましたね。OPMだけでなく、OPZとかOPPとか、関連するチップに関しても調べながら聞いて回りました。そんな中、ウチの部署の今のトップの名前も発見してビックリしましたよ。当時はバリバリのエンジニアだったんですね。さすがに、「この回路はどういう意味ですか」とは恐れ多くて聞きにいけませんでしたが(笑)。
アルゴリズムの設定はもちろん、各オペレータの値をひとつずつ設定できるようになっている |
――開発期間中、こうした話を佐野さんと加瀬さんとの間でやりとりしていたわけですか?
佐野:いいえ、そんな話、今日初めて聞いて、驚いているところですよ。だって、私はOPMを作って欲しいと単純にオーダーしただけですから。淡々と作業されていて、数ヵ月後には完璧なものが上がってきたという印象。そんな苦労がいろいろあったなんて、まったく知りませんでした。
加瀬:いろいろ大変だったんですよ(笑)。私自身、OPMを使いこなしてきたわけではないので、もっと問題点をいろいろ指摘されるのでは……とも思っていたのですが、大きな問題がなくて本当によかったです。ただ、開発以上に実際の音の検証に大きな時間をかけました。
■ MSX用プログラムやデモアプリ、回路シミュレータソフトなどで比較検証
――音の検証というのは具体的にどのようなことをされたのですか?
加瀬:この検証環境の構築というのがなかなか難しいところでした。DX21やDX100にもOPMが搭載されていますが、OPMを直接叩いているのではなく、OPMをコントロールするためのLSIが入っていて、鍵盤を弾くとそのLSIを経由してOPMが鳴っています。そして、そのLSIの動作がいろいろと音やOPMの動作に影響を与えるため、これらを検証環境に利用することはできません。どうしようか……と思っていたのですが、そういえば昔、MSXがあったな、と。
――CX5とかCX7と、それに接続するSFG-01、05ですよね。私も当時CX5とSFG-01はかなり使っていました。
加瀬:そうなんです。ところが、社内をいろいろと聞いて回って探したのですが、まったく残っていない、どうしようかと思っていたら、直接の上司である柿下さんが「実家にあるかも」というんです。なので、すぐに「実家に出張して取りに行ってください」って頼んだんですよ(笑)。まあ夏休みの直前であったため、帰省したときに取ってきてもらったのですが、ちゃんと動いてくれましたね。
ところが、柿下さん、その検証用のプログラムを自ら作ってくれたんですよ。インターフェイス部分はBASICで書き、レジスタに書き込む部分はZ80のアセンブラで。申し訳ないなとも思っていたのですが、本人は生き生きとやっているんですよね。その後、このプログラムを利用して、レジスタを入力しては音を確認し、先ほどのデモアプリを使いながら出音を比較検証していったのです。このように、柿下さんには、いろいろと手伝ってもらったので、iYM2151の協力スタッフとして3人の名前を入れるようお願いしたんですよ。
筆者の手元にあったCX5のカタログ | CX5に差し込む形で使うYM2151を搭載した拡張カートリッジ、SFG-01(CX5のカタログより) | iYM2151のスタッフ表示画面 |
――加瀬さんと柿下さん。もう一人いるということですね。
加瀬:はい、もう1名、川島という者にもかなり力を貸してもらいました。川島の協力を得たのはこのプロジェクトの後半、10月以降だったのですが、10月に佐野さんの元にYM2151のエンジンのα版をお渡ししましたよね。そのとき、負荷が高くないかしつこく確認をしましたよね。
佐野:はい、お願いして3カ月ちょっとで、かなり完成度の高いものが上がってきたので、すごいなと思っていましたよ。とくに負荷の問題も感じなかったので、そのようにお返事したと思います
加瀬:実は、重いと言われるのではないか……と内心とても心配していたんですよ。もし負荷を下げなくてはならないとなると、設計自体を大きくいじって簡易化する必要があった。けれど、問題ないというお返事だったので、その後4カ月間、ずっと実機合わせに費やすことができたのです。
――そんなに検証に時間をかけていたのですね?
加瀬:はい、やはりいかにYM2151を正確に再現できるかがすべてですからね。私もこれを作っているときに、オシロスコープで波形を確認しながら作業をしていました。これが面白いんですよ。アナログシンセとかサンプリング音源とは全然違う音の変わりかたをするんですよね。キャリアにモジュレーションをかけていくと、まさに首を傾げるように波形が傾くんですよね。昔は実際に波形を見ながらパラメータの操作をするということはあまりなかったでしょうから、FM音源の音色作りというのはみんな手探りで苦労されたと思いますよね。
――それで、川島さんはどのような仕事を?
加瀬:このようにオシロスコープを見ながら、実機と比較していったのですが、どうしてもうまくいかないところがあったのです。仕様を見ても怪しいし、回路図を見ても、ベタに描かれているだけなので、どういう働きなのかは理解できるけど、動的な変化などが分からない。どうしようと悩んでいる中、LSIを設計する部署に相談をし、手伝ってもらったのです。具体的に言うと、回路図をCADに入力し、シミュレーションするという方法です。
iYM2151のダンプリスト画面。内部のレジスタの動きがリアルタイムにダンプ表示されるようになっている |
――SPICEとかのアナログシミュレータ? それともCADENCEなどのデジタル系のEDAツールなどを使ってということですか?
加瀬:デジタル系のシミュレータですね。そのオペレーションをしてくれたのが川島さんだったのです。これでシミュレーションしてながら確認していくことで、問題を解決することができました。さらに、社内にいるいろいろな方にチェックをお願いして確認していきました。そう、DX7IIやSY77などを手がけた人に見てもらったのです。
しかし、すごいですよ、ちょっと触っただけなのに、「加瀬くん、ここのパラメータの動き何かちょっと変だよ」と指摘されたりして。それで調べてみると、確かにバグがあったんですよね。そんなこんなで、1月にはほぼ作業を終えてDETUNEさんにお渡ししました。
佐野:そんな苦労があったとは、全然知りませんでした。本当に頼んだだけで、完璧なものが出てきたので、何の疑問も感じず使わせていただいていました。それを聞くと、本当に頭が下がる思いですね。
■ iPad仕様のYM2151エンジンを使ったゲームアプリも!?
――このようにして、チップベースのYM2151とフルコンパチのエンジンができたわけですね。
加瀬:正確にいうとフルコンパチではないですよ。やっぱり、CPUパワーの問題もあって、端折っている面がどうしてもありますから。先ほどの回路図を利用してシミュレーションすれば、完全に同じことができるのですが、それは今のCore-i7などでもパワー的にギリギリできるかどうかというレベル。iPadには絶対不可能です。だからこそ、使う分には気づかない程度に省略したりしているのです。そこを指摘されるかなと思っていましたが、佐野さんから文句が出ないということは大丈夫なんですよね。
佐野:全然、分からないです。完璧ですよ。
いかにもコンピュータ系のFM音源という仕上がりになっており、MML(Music Macro Language)的にプログラムできるようになっている |
――加瀬さんとしては、そのようにして作ったエンジンが、iYM2151という形のアプリになったのを見ていかがですか?
加瀬:正直なところ、当初はこんなチップを再現してどうなんだろう? と思っていました。普通、FM音源というとDX7じゃないですか。でも、デモ曲を聴いて、すごい、と感じました。DX7などではありえない、まったく違うゲームミュージックの世界ですね。また、ユーザーの反応などを見ても、楽器の世界というかミュージシャンの世界とは明らかに違う反応があるのが分かりました。
佐野:そうなんですよ。FM音源においてはミュージシャン業界での見方とゲーム業界とかコンピュータ業界との見方は全然違う。それを一まとめに考えちゃう方がいらっしゃるので、それぞれの背景を説明することもあります。
――一緒にするという意味では、正弦波オンリーのFM音源か、ほかの波形も出せるFM音源かといのも、大きな違いですよね。TX81Zとかは別モノという印象があります。
佐野:そうそう、それも違う派閥というか、ね。オペレータに正弦波以外を使うなんて……。実は私がV50を使っていたことは秘密ですよ(笑)。
iYM2151をアピールする佐野氏と加瀬氏 |
――あと、当時ポピュラーだったのは、OPNですよね。OPMはシャープのX68000やX1turboZに搭載されてましたが、PC-8801mkIISR以降の88に搭載されていたのはOPNでした。
加瀬:4オペの3音ポリのチップですよね。確か、FM音源以外にも音源が入ってましたよね。
――そう、SSGという名前のPSG音源が3音ポリで搭載されてました。また、ここにはノイズ音源も載っていたので、それをリズムとして使っていたり……。
佐野:当時のゲームを再現するにはOPNというのも有りですね。とはいえ、まずはこのYM2151のエンジンを使ったゲームアプリなんかが登場するといいなと思っています。
――今回のエンジンは、iYM2151で終了ではなく、ほかにも提供される可能性がある、と?
加瀬:そうですね、要望があればいろいろなアプリに組み込んで使っていただけたらと思っています。
――本日は、深いマニアックな話をいろいろとありがとうございました。ぜひ、当時の8ビットパソコンでFM音源を使っていた方にはiYM2151を使ってもらいたいですよね。