MIDIとWAVEの相互変換(02.09.16)
これは結構普遍的なテーマのようだ。MIDIのQ&Aみたいなコーナーには常に質問が上がる。そんなもんここで解説する必要もないのだが(そういう普通の話はしたくない^^;)、やっぱり書いておく。
イキナリ結論を出してしまうとパソコンおよびソフトだけでの完全な変換は不可能である。と書いてしまうといくつかのフリーウェアシェアウェアでできるのがあるぞという反論があるかもしれないが「完全な変換」ではないのである。ちと解説していこう。
たとえば画像データだとBMP/JPGの変換ができ音声データだとWAVE/MP3の変換ができる。しかしMIDIデータはそれだけで一つのジャンルなのだ。MIDIデータの変換というとFORMAT1をFORMAT0にする、ということはありそうだけどあまり意味はない(笑)。音が出るという印象からWAVEと同じように思われるのかもしれないが、WAVEなどを音楽とするとMIDIデータは楽譜のような存在なのだ。だからこそ楽器である音源モジュールによって音が変わってしまうわけだ。そんなわけでMIDIからWAVEへの変換というのは音源モジュールから出た音を録音すれば可能ではある。しかし「変換」とは言わない感じがするねぇ(^^;。
ソフトだけで変換してくれるじゃないか、VSCやWinGrooveとかTimidi95とか...という人もいるだろう。しかし両者ともソフト音源モジュールなのだ。外部MIDI機器を用いずともチープな内蔵音源だけでGMあるいはGSを実現するスグレモノである。そう、あくまでも音源モジュールが無いと「変換」は絶対不可能なのである。それにVSCもWinGrooveも固有の音を持っている。SC−88Proで聴いて欲しいMIDIデータを変換したことにはならないのだ。
MIDI→WAVEは変換では無く録音だがその逆はどうか。実はWAVE→MIDIの自動変換は現状ではほとんど無理なのである。どんな機能が必要か羅列してみると
- WAVE内の音高音長音圧音色を解析できること
- 解析結果を元にしてプログラムNoやノートNoその他各種コントロールを決定できること
- 決定したコントロールをMIDIデータに落とせること
あたりか。MIDIデータに落とすのは大した機能ではないが音を解析し必要なコントロールを決定するのは至難の技だ。単音(鼻歌程度)ならMIDIデータにすることはある程度可能だが(製品化されてる)それとて音色まで変換するのは無理だ。そういった現状で多数の楽器が多数の音を出してるような音声データを解析するなんてできっこない。それに大規模な曲だと同時発音数が膨大な数になるがそれを聴感上不自然にならないようにカットすることも必要となりそうだ。こんなことパソコンでは無理で、耳で聴いて判断する人間でなくては出来ないのだ。何よりもMIDI化不可能な音、たとえば歌声とかを処理することができないし。将来パソコンが発達しAIが当たり前になれば実現できるかもしれないが。
いい加減なMIDI高座