Su | Mo | Tu | We | Th | Fr | Sa |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
VSTiのデバッグができました。VisualStudioでデバッグの実行をしてから、デバッグ用に使うアプリにVSTHostを選んで、VSTHostからVStiを呼び出すだけでした。
快適な開発環境が構築できたわけです。あとはVSTiSDKの仕様をよく読んで、VSTiの仕様を理解しないといけないです。それ以前に音の波形を数字で表現する技術が必要なようです。
A=440Hz オクターブ上のA=880Hz つまりオクターブで周波数は2倍です。オクターブには音階が12個あるので、一つのおとは前の音の(12)√2「2の12乗根」倍したものになります。つまりはある一定の倍率xが存在するならxの12乗をもとの音a[Hz]にかけてあげるとオクターブつまり2a[Hz]になるってことだね。で、そのxは1.059463094359ということらしいです。
こういう基礎は吹奏楽をやっていたせいなのか?よく理解できます。計算は苦手だけどね。12乗根なんて、自力じゃもとめられないよ。ニュートン法?そんなメンドクサイ...
Midiの仕様も理解しないとね。ちなみにノート番号69がA=440Hzなんだよ。ノートオンは9n 69 AAみたな信号が流れるんだよね。チャンネルメッセージ9nはノートオン nは16進数の数字が入るよ。ミディチャンネル番号を意味するよ。69はノート番号。そしてAAはベロシティ値だ。
こんな感じで覚えなきゃいけないことが沢山あるよ。
でも面倒だからとにかく適当にいろいろ作ってみるよ。ためしに全種類のコードを簡単にならせるVSTiを作ってみるよ。
wxtiffd.lib(tif_luv.obj) : warning LNK4217: ローカルで定義されたシンボル _rand がフィクション _LogL16fromY にインポートされました。
wxmsw26d_core.lib(busyinfo.obj) : error LNK2001: 外部シンボル ""public: void __thiscall wxStringData::Free(void)" (?Free@wxStringData@@QAEXXZ)" は未解決です。
wxm
というようなエラーが300くらい束になって表示される。こういった同じようなエラーが出まくる現象を英語ではbunch of errorと表現します。bunchは束とかっていう意味が含まれているのですね。
このエラーはReleaseバージョンでは表示されないだけに理解に苦しむ。なぜ未解決になるんだろうねぇ。ソースコードの凄まじさ故、潰していくことが困難です。今日もかなり爆撃されそうだ。
AudacityがVSTホストの役目を担うことができるオープンソースであるということなので、VSTアプリケーションのデバッグ用ということでAudacityをデバッグモードでビルドすることが、現在のミッションです。
今のところ、まだビルドは出来ていないのです!
外部ライブラリが参照できないとかいうエラーが出てしまいます。ライブラリのパスは切ってるし、wxWidgetの各種ライブラリは正常に配置されているようなのです。
今日はここまでです。今日もあっさり敗北ですね♪あー楽しい☆
/OUT:filename directive in .EXP differs from output filename "filename"; ignoring directive
.EXP ファイルが作成された時に NAME または LIBRARY 文に指定したファイル名が,基本設定値または /OUT オプションで指定した出力ファイル名と異なっています。作成された DLL を使用するクライアント・プログラムで,問題が発生します。
defファイルのLIBRARY文に記述した出力ファイル名をプロジェクトのプロパティ、[リンク]-[出力ファイル]に記述したファイル名と一致させる。