そのうち丁寧にまとめて別途記事を出すと思いますが……
ちゃんと更新が出来ないでいる現状をとりあえず打開したいので、日記とか雑記的に読み物を定期的に書ける場所を用意しようと思いました。
書くことは無限に出来るけど、読めるものを書くのは大変なのでとりあえず下書き以上読み物未満と思っていただけたら幸いです。
専門的な用語だったり、あんまり調べてないかもな内容も沢山出てくるから初心者向けじゃないので、未整理という意味もかねてコラムです(´・ω・`)
コラム初回になる今回は旧作音源である「YM2608をVSTで再現したい」です。
YM2608ってなんやねん
YM2608(ヤマハ2608)は昔のパソコンやアーケードゲームに使われていた音源チップです。FM音源というやつ。
東方で言えば旧作が対応しているPC-98の内臓音源チップになります。
FM音源は、周波数変調(Frequency Modulation)という仕組みを使って音を合成する音源のことです。

ちょっと小難しくなってきたな(´・ω・`)
ここは後で詳しく説明しますが、合成のアルゴリズムによって様々な音が作れて面白い音源です。
音源チップという名前から察する方もいるかと思いますが、VSTなどのデジタルな音源ではありません。パソコンやゲーム機についている、物理的な音源です。
こんなかんじで基板に音源がくっついています。
YM2608は、現代のDTMでも主流になっているMIDIとは違って、MML(Music Macro Language)という音楽マクロ記述言語を使用してエディタで文字を打ち音楽を作る必要があります。MMLで記述した内容を保存したファイルが「.M」ですね(´・ω・`)
実際にエディタで作曲している動画は以下がわかりやすいかなと思います。
とはいえ、エディタを使ってMMLで記述するの面倒くさいなぁ……
DAWで全部完結したいなぁなどと思いまして……

VSTで再現出来ないかなぁ(´・ω・`)
VSTで再現出来るの?出来ないの?どっちなんだい!?
まず最初に思ったのはYM2608を再現した音源無いかな!!!でした。
でもYM2608のVSTは無い!!代わりは!?!?

FM音源をいろいろ触ってみよう!
ということで最初に触ったのがこれ。
まずはFM音源を軽く触ってみて、そもそもどの音源でも再現出来るものなんかってのを理解するところから始めようと思いまして。
波形を選択してADSRで音作りをする、MassiveやRetrologueみたいな形式で触りやすいかなと選択しました。

しかし、これは結構大きな過ちだったんですね(´・ω・`)
小一時間触ってもようわからんし、音は似ないし、FMPMDで見ることが出来るパラメーターの数値に対応するものが全くありません。なんじゃこりゃ。
で、いろいろ詳しく調べたのですがFM音源ならなんでもいいわけじゃないっぽい。
OPが4つのFM音源であることがいる+音の定義を以下の内容で行っている必要がある。
そこでたどり着いたのが……
RYM2612でした。
YM2612はPC-98に入っていた音源ではなく、メガドライブ等に搭載されていた音源チップですがどうやらFM部分にYM2608との互換性があるようです。

OPが4つあるし各種パラメーターもなんとなく近くないですか!?
近い音源で、他にはOPNplugやGENNY、YM2612 VST、CHIPSYNTH MD などがあるみたいです。
旧作の音は????????
さて、RYM2612を購入し実際に動かしてみたわけですが、東方旧作で使われている音がありません。
それもそのはず。東方旧作で使われている音はKAJA氏作成のMusic Driver P.M.D.にプリセット集のようなものがありまして……。
(画像は以前企画「東方奇界泉」でめいすが作成した動画の一部です。)
↑動画も宜しくね(´・ω・`) CDは廃版かも
その音色セットの内容の一部がさっきも出した下記の画像のような感じってわけです。
じゃあ、これを再現するために全てのパラメーターを手動で再現していけばいいわけだ。
と触り始めたのですが、ここで結構最初に躓きました。

パラメーターは同じでも値が違う物がある!!!((`・ω・´))💦
概ねこの緑色の四角の部分が1セットだと思ってください。それが縦に4つあります。
この4つの音の設定と、画面右側のALGORITHMの組み合わせを変えて音を鳴らすという仕組みになっています。
再現にあたって、左から順ではなく、パラメーターのノブの上部分と表示を見比べてやらないといけないのがとても難点でした。
また、一部項目がちょっと違うのも大変躓きましたので記載しておきます。
ALGORITHMことALGは0から数えた数字になっているので、RYM2612上では4→5になります。
ややこしすぎて笑いました。ALGORITHMはFM音源の一番きもの部分です。
①②③④それぞれのオペレーターをどのように演算して音を出すかの部分なんですよね。それぞれのプリセットによって、掛け算にしたり足し算にしたりと様々です。
これがずれていると音が全くの別物になってしまいます(´・ω・`)
DT(Detune)はRYM2612だと-3~3まであります。MMLだと1~7ですね。
※発音する音程を微妙にズラして、音色に厚みやクセを出すパラメーター。
0 = ±0
1 = +1
2 = +2
3 = +3
4 = -4(RYMだと指定不可?)
5 = -3
6 = -2
7 = -1
上記のようになっているので、この部分を間違えないように当てはめていきます。
MML → RYM
①3 → +3
②7 → -1
③7 → -1
④3 → +3
TL(Total Level)の値はMMLの値だと音量ではなく音量に対する減衰量を示しています。
なので、TLが40の場合はMAX127-40になるのでRYM2612上では87になります。(わかりにくかった!)
これがわからない間TL0って書いてあるからTLを0にしていたら減衰量ではなく音量が0になってしまって音が鳴らなくなり、頭を抱えてしまいました(´・ω・`)
POLYは2以上にも出来ますが、今回は旧作再現の都合上1パート1音での作成になるため今回1にしています。
そうして苦節30年。(多分30分くらい)
再現した音が出来ました。
実際に鳴らしてみましょう(´・ω・`)

それっぽい音が鳴った!!!!!!!!!
ただ、これを見たみんながこのまま再現するのは大変だと思うんです。
なので、何点か作った音源定義用のプリセットデータを

なんと!!!!!!

配布します!!!!!!!!
RYM2612用 東方旧作風音色セット
再現楽しいけどプリセットあるならそれが一番楽やでね(´・ω・`)
時間があるときにこつこつと随時プリセットを増やしていければと思います。
当時は、旧作風といえば誰かが作ったサウンドフォントを使うorMMLを書いてプレイヤーで鳴らして書き出すってのが主流だったように思います。
VSTで行うことで、旧作への理解が少し深まると共に、人任せだった音を自分で作った達成感が生まれる……のかもしれない。少し。
面倒だからサウンドフォントでやった方がよくね!って人もいる。
まあ、いい物が作れるならなんでもよいのだ(´・ω・`)
SD-90等の有償の音源を収録しているサウンドフォントとかそういうのは権利的にダメな物なので使用しないことをお勧めします。
旧作風のサウンドフォントはFMPMDなどの音が既にフリーで皆さんの環境でも鳴らせる都合上、問題ない感じかなと思います。FM音源で再現してサウンドフォントにしているかもしれないし、FMPMD等から録音してるかもしれない。そのあたりは各種サウンドフォントの仕様書とか見るとわかるかもしれない……(´・ω・`
取り急ぎ現状の内容でばーっと更新でした。
SSGやリズムセットに関してはまた気が向いたら!
思ったより長くなっちゃったけど読んでくださってありがとうございました!
コメント