コンピュータがしゃべった!!!

先日入手したYAMAHA-MSXFM音源「SFG-01」ですが、周りに持っている人がいなくて、私にとっては長年謎の音源でした。 お前誰だ!(←ピエール瀧の声で)というわけで、とりあえず分解してみました…って、芸風がPC Watchかよ!(w
以前、後発の音源「SFG-05」ではOPMではなくてOPPという音源が搭載されているらしい…という噂があったので、果たして「SFG-01」ではOPMが搭載されているのか?という部分から疑問だったわけですね。 …そんなわけで、バラして拡大した写真がコレ。

左上にお馴染み「YM2151」の刻印が入ってます…ということは、やはりSFG-01搭載音源はOPMでした。 ちなみに、他にYAMAHA製チップとして「YM2148」(右下)、「YM2211-22702」(左下)、「YM3012」(上)の3つが見えるのですが、これらは何だろう…と思って調べてみると、なんと同じことしてた人がいました!(しかもこちらのほうが写真が鮮明に映ってる^^;) これによれば、「YM3012」がD/Aコンバータ(…であってますよね?)、「YM2148」がMIDI入出力に使われているようです。 ただ、残りの「YM2211-22702」が謎です…海外のFM音源解説ページを見ても「unidentified」ってなってるし。(そもそも後半の型番が違ってますが…って、後半の型番を入れるとググっても全くヒットしませんT_T) OPMにはCSM音声合成モードがついてないらしい、との話もあるので、もしかしたらCSM音声合成専用のチップなんでしょうか…? だとしたらなんか凄いぞ、SFG-01!

そんなわけで、SFG-01のある意味最も特徴的な部分である音声合成を試してみました。 音声合成はPCMなどではなくちゃんとFM音源で行っているようで、マニュアルを見ると内蔵音色の中にしっかりCSMという音色が定義されてます。 FM Music Macro カートリッジを使うと、「_say」コマンドでBASIC上から簡単に?喋らせたり唄わせたりするようです。 早速入力してみたのですが…MMLを間違えてエラー発生。 そのとき、予想だにせぬ出来事が!! なんと、エラー発生時に日本語で喋る! しかも、ちゃんと聴き取り可能なレベルで!! これは驚きました。 いや、今はパソコンが喋るくらいそんなに珍しいことではないですけど、きっと発売当時に聴いてたらあまりの衝撃で気を失ってたかもしんない。 実際に喋ってるのがコレとかコレ。 なんて恐ろしい子!!!(w
そんな衝撃を乗り越え、とりあえず唄わせてみました。 曲は…ちょうど作曲者のキノコ国本氏のブログでも話題になってたので、ボンバーキングのテーマです。 …ていうか、ボンバーキングに歌詞がついてると知ったのはつい最近のことだったりします。 私がプレイしたMSX版にはそんなの無かった気がするんだけどなぁ…なんか色んな意味で凄いぜ、○超!(w とりあえず、こんなんでましたー。 …うーん、正直微妙。(^^;) 妙にたどたどしいですが、これはバグではなくて仕様です。(w 音声モードの場合、音程や鳴らす音によって音長が変わってしまうらしく、さらに音長を「何個伸ばす」というのは指定できるものの、その長さもかなりいー加減なので、正確な音長を鳴らすのは至難の業です。 本当は、これにそのまま伴奏を乗っけて曲にしようと企んでたんですが…このままじゃ絶対ムリだなぁ。 伴奏は別に作って、ACIDか何かで文節で分解して合わせて鳴らすしか無さそうです。 ちなみに、この「FM Music Macro」を実行中はタイマ割り込みを乗っ取って相当酷い処理をしてるらしく、処理速度が落ちまくります。 どれくらい酷いかというと…キーボードから入力した文字が数文字に1文字くらい認識されない(文字落ちする)くらい。 まさに空前絶後のもっさり感。 処理落ちしまくりのエミュ使ってるのと同じ感覚で、これで曲作るのは結構辛いかも…という感じ。 そのことはマニュアルにも書いてあって、「BASICプログラムでタイマ割り込みを使う場合、正しく処理されない場合がありますので専用のタイマを使ってください」みたいな事が書いてある。(;_;) 更に凄いのが、FM Music Macro だけでかなりのメモリを使うことから、そもそも曲データを打ち込んでもすぐメモリが無くなるので、長い曲を作るためのプログラミングノウハウまでマニュアルに掲載されてます。 メモリが少ない時代の涙ぐましい努力を思い出します…かくいう私も、昔FM-PACで曲作ってて突然メモリが足りなくなって、メモリ割り当てを1バイト単位でいじってたので、その苦労はよくわかります。 …が、今時ここまでしないと曲が作れないのは少々辛いので、SFG-01の場合はFM Music Macroで曲を作るより、裏RAMもちゃんと使える(はず)FM Music Composer を使ったほうが良いのかなぁ…なんて思う今日この頃です。 とりあえず、今度は FM Music Composer を使ってみましょうかね。