u-he UHM言語 学習08 Export
uhmのウェーブテーブルをオーディオのwavファイルに書き出すことができる。 その内容を見ていくことにする。 まずは下の1フレームだけのサイン波のスクリプトをHiveに読み込むと、 uhmファイルがある同じフォルダにmyFile.wavというオーディオファイルが書き出される。
Info "1111"
NumFrames =1
Wave "sin(2*pi*phase)"
Export "myFile.wav"
バイナリエディタで中身を覗く
次に、このmyFile.wavファイルをバイナリエディタに読み込むと、はじめの数行は以下のようになっている。
52 49 46 46 3C 21 00 00 57 41 56 45 66 6D 74 20
10 00 00 00 03 00 01 00 44 AC 00 00 00 00 00 00
04 00 20 00 75 68 57 54 10 01 00 00 00 00 00 00
01 00 00 00 00 08 00 00 00 00 00 00 31 31 31 31
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
・・・・・・
・・・・・・
00 00 00 00 00 00 00 00 00 00 00 00 64 61 74 61
00 20 00 00 00 00 00 00 C6 0F 49 3B 88 0F C9 3B
ヘッダと言われる部分で、このファイルが何なのかという情報が入っている。 詳細は割愛するが、重要なところとしては、
1行目の57 41 56 45がwavファイル。
2行目の03 00はIEEE floatなので32bit float、01 00はモノラル、44 AC 00 00はサンプリング周波数が44100Hzであることを示している。
3行目の 31 31 31 31 は、Info "1111"の部分。0x31はASCIIコードで数字の「1」に当たる。
最後から2行目にある64 61 74 61はDATAという意味で、これ以降が波形のデータとなっている。
AudacityでWavファイルを開いてみる
バイナリファイルを見て分かることは一般的なオーディオ用wavファイルとしては不完全なヘッダファイルなので、多くのプレーヤーでは再生できないと思う。 ただし、Audacityなどの波形編集ソフトで開くことは出来る。 Audacityの場合はファイルをドラッグするだけで開けるので便利。下が開いたところ。 ちゃんとサイン波が1フレーム分(1周期分2048サンプル)確認できる。
ウェーブテーブルなので、サンプリング周波数はあまり関係ないのだけど、44100Hzとした場合2048サンプルを1周期としたサイン波は21.53Hzとなる。実際Audacityで再生するには1波形では短すぎてブチとしか鳴らないが、ループ再生すればブーンとやたら低い音が鳴っているのは確認できる。
Vitalに読み込んでみる
uhmからwavへのエクスポートを何に使うかというと、現状では他のウェーブテーブルシンセに持って行きたいときだろうか。SerumやVitalであれば、サンプル数とフレーム数が同じなので、そのまま利用できる。
名前は知っているのだけど、ウェーブテーブルシンセの筆頭Serum、そのクローンぽいVitalも使ったことがなかった。 今回uhmを試すためにVital無料版をダウンロードして試したのだが、ビジュアル面が素晴らしく使いやすく今風だと思った。でも負荷が高すぎる・・・ビジュアルにマシンパワー使われている感じ。
スクリプトは以下のものを使っている。やってみて分かったのだが、Hiveでの再生は問題なくてもwavに変換したとき、音が割れる傾向にある。レベルの調整は必須。Normalizeを使うのが無難。
Spectrum lowest=1 highest=60 "(0.2/ index)"
Wave "lowpass(x, 1-table, 0.5)"
Export "myFile.wav"
下はVitalに読み込んでフレームを3D表示して再生したときの状態。
SerumやVitalのウェーブテーブルをプログラム的に作りたい人はuhmを使うのもありかもしれない。
調べてないので知らないのだが、ウェーブテーブルを作る専用言語ってあるのかな? 専用ビジュアルエディタというのは、いくつかあるようだけど・・・使いやすいツールほど限界が見えやすい。 可能性無限大という意味ではC言語などの汎用言語が最強だろうけど、何を作るにしても面倒で時間がかかる。そういう意味ではUHMはとてもお手軽で強力!