わかってはいたさ…。
「FFT なスペクトラム可視化に音階をくっつけて(5)」では「とある方法で荒城の月を打ち込んだ」と言うた。要するに「信号処理(であれなんであれデータ処理)」を実装したり勉強したりする際は、「サンプルデータ」を色んなバリエーションで欲しくなるわけであろう? 確かに「Python の wave モジュール例の殴り書き」みたいな、自力シンセもどきでも多少はまかなえるけれど、「あれこれ色んなもの」を気軽に作る目的にはやはりそぐわない、つーか猛烈にダルい。
日本が誇る(?)MML 言語でもって量産する手もないでもないけれど、これはこれで「MML を駆使して作曲」するか「既に出来上がっている大作」の二択になりがちで、結構これはこれでダルい(ことが想像できる)。
となればやはりそれなりのシーケンサを使うと良いであろうさ、と見つけたわけだ、オンラインのシーケンサ:
えーっ? これで作ったのにこれ?:
オレ的には「同じもの」である。だって「オレが作った」んだから。そして当然これは「違うもの」だ。聴いただけでオクターブが下がってしまってることがわかると思うけれど、シーケンサの映像をよーく見て欲しいんだけど、確かに出だしを「F4」で打ち込んでるのである。けどこれは「F2」で鳴っちゃってる。
何が起こっているのかについて、察しが付く人は MIDI 関係のなんらか経験者に違いない。
結局上記で使ったシーケンサは、(当然かもしれないが) MIDI 形式のファイルとしてしかエクスポート出来ない。ゆえに、
- 作った MID ファイルを聴きたいだけだとしても、環境を持たない場合は、なんらか変換ツールに頼ってでも WAV なりにしないといけない
- 今のワタシの目的は、「PCMデータの「作為的な」バリエーションを量産したい」であるからして、やはりどうにかして WAV にしたい
MIDI については、少しでも触れたことがある人とそうでない人で、感覚にかなりズレがあると思うので、非常に基礎的な話だけおさらい:
- MIDI 「ファイル」はいわば「楽譜」
- しかるに「音」は記録されてない
- 機器がこの楽譜に基づいて「演奏」する
言ってしまえばこれだけのこと。だから手持ちの機器に大層依存するわけだ。
ワタシも経験あるんだけど、出来合いのパソコンを購入すると、誰かの好意によって「MIDI 環境それなりバッチリ」だったりすることがあったりする。よくある「いらんもんいっぱいプリインストールしやがって」の一貫で、偶然そんなパソコンを手にしてたりすること、ある。けど「素のままの Windows」は多分そうじゃない。少なくとも今アタシが日常使いの Windows 7 機はそのままでは MID ファイルを「演奏」出来ない。
そういうわけで、「えーっ?」の方は、てきとーに探してみつけた Bear File Converter – Online & Free で「変換」したもの。
上の説明からわかるであろう。「変換」言うておるけれど、実際はそのコンバータ(といってるもの)には「演奏能力」が必要だ。そして演奏者によって、出来上がるものは全然違ったりする。ここらは MIDI に詳しい人なら「あったりめーだ」て話だろうと思うが、最低でも「サウンドフォント」が必要だ。
まぁここいらまでの話はさ、やる前から想像出来てたわけね。けどさ…、オクターブまで変わっちゃうわけ? サウンドフォントの違いから来るものなんだろうなぁ、とは想像は付くんだけれど(楽器指定ごとに音域が変わる、のかなぁと思う)、いまひとつ釈然としないところもある。
そもそもワタシの「FFT 解析」自体が疑わしいのではないのか、という恐れは無論常に抱いていて、だからこそ「検証用データが欲しいぞ」てことで先のシーケンサに辿りついたわけさ。だから余計やらしいことになっておる、ワタシのケースの場合。「ワタシの「FFT 解析」自体が疑わしい?」についてはやはり他人が作った同種のもの、にかけてみるのがいい:
ワタシのは音階で、こちらは素直に周波数なので対応がこのままでは取れないが、対応表によれば、352Hz はだいたい F#/Gb 3 ~ F3 くらいなので、ワタシのほうと合ってそうだ。つまり「やはり Bear File Converter – Online & Free が下げちゃった」のは間違いなさそう。(てか聴けばわかるが。)
なんつーかシーケンサ側にも問題があるような気もするんだよなぁ。フォントの問題なのだとしたら、あまり一般的でないフォントに依存しているとか、そんな可能性もある。アタシ自身が全然詳しくないんで、よくわからないんだよねぇ。
ちなみに ffmpeg でも MID から wav に変換出来ます。そして「もっとヒドいことになる」、普通は。これも環境依存なんじゃないかなという気もしないでもない(つまり ffmpeg を拡張出来るかも、て話)んだけど、ffmpeg の MID 対応は、timidity によるもの。ワタシの「バイナリで持ってきたまんまの ffmpeg Windows 版」だと、どうやらただのサインウェーブになっちまった。うひゃぁ、これじゃアタシのシーケンサもどきでも作れるレベルだわい。(ただしこちらはオクターブは維持されたっぽい。)
まぁ…「作為的なバリエーション増やし」というだけのレベルなら ffmpeg がかえって良い気もするわね…。