2015年10月31日土曜日
2015年10月27日火曜日
にく食べ放題
にく食べ放題。
食べ放題だったらいっぱい食べたいが、
お店の人の肉を焼くテンポが遅くて、
おなかがいっぱいになってから、
「次どうしますか?」って来る。
どうしますかじゃねえよ!もうお腹いっぱいだよ!
2015年10月25日日曜日
2015年10月18日日曜日
2015年10月15日木曜日
Windows:vst:2chから転載
VST2.4だったら↓だったと思う。
・GUI開いたとき、
AEffGUIEditor::open()
・GUI閉じたとき、
AEffGUIEditor::close()
・保存するとき
AudioEffectX::getChunk()
AudioEffectX::setChunk()
・プリセット読み書きするとき
AudioEffectX::getChunk()
AudioEffectX::setChunk()
・パラメータ動かした時
CControlListener::valueChanged
→AEffGUIEditor::setParameter
→AudioEffectX::setParameterAutomated
→AudioEffectX::setParameter
VST関連、日本語でどこにもまとまってないので、こうやってメモすると何かに使えそう。
・GUI開いたとき、
AEffGUIEditor::open()
・GUI閉じたとき、
AEffGUIEditor::close()
・保存するとき
AudioEffectX::getChunk()
AudioEffectX::setChunk()
・プリセット読み書きするとき
AudioEffectX::getChunk()
AudioEffectX::setChunk()
・パラメータ動かした時
CControlListener::valueChanged
→AEffGUIEditor::setParameter
→AudioEffectX::setParameterAutomated
→AudioEffectX::setParameter
VST関連、日本語でどこにもまとまってないので、こうやってメモすると何かに使えそう。
2015年10月14日水曜日
Windows:vstgui:プリセット地獄3(完結編)
プリセット地獄からようやく抜け出せたようですよ・・。
今回は視点を変えて、synth1でお世話になってるdaichiさんのシンプルシンセのソースを
解析していくことにした。
vstインストの原型みたいなソースコードなので、一度ビルドが通ると何かと役に立つ。
細かくパッチ関連の所を見てみたら、ウチとは大きく違う部分を発見。
具体的には、getChunk() setChunk()という部分。
まず、VSTの初期化時に、
programsAreChunks(); // 音色データは独自チャンクで保存する
これを宣言して、音色データを独自チャンクで扱うことにして、getChunk() setChunk()
を用意して音色データを渡したり読み込んだりしてみた。
そしたらなんと!CUBASEのセーブ時にパラメータがごちゃごちゃ動いてたのがビタリと
止んで、セーブしたパラメータがロード時にも反映された!
こんなの、最初の神様のソースコードには無かったし、誰も教えてくれないし、挙動が
どうなるのかなんて2chにしか無かったよ!!もう!!
なぜゴチャゴチャとパラメータが動いていたのかを調べてみたら、推測だけど、パッチ
の名前を取得する時にgetProgramNameしか用意してなかった。getProgramNameは
カレントのパッチ名を取得する命令。
そう!パッチリストを作成するために、カレントを一つ一つ動かしてはパッチ名を取得
していたからゴチャゴチャとパラメータが動いていたのだ!しょうもない!!
これはgetProgramNameIndexedという任意のindexのパッチ名を取得できるのを用意
してあげればクリアとなったのでした。
うーん、調べたらなんとかなったけど、こんなのすぐわかんないよ!!
とりあえず、CUBASEではプリセットのパッチを読み込んでエディットしてセーブして、
次ロードした時にちゃんとエディットした状態でリコールされた。パッチのセーブ・ロード
は作らないとダメっぽいけど、しばらくはこれでいいか・・。
今回は視点を変えて、synth1でお世話になってるdaichiさんのシンプルシンセのソースを
解析していくことにした。
vstインストの原型みたいなソースコードなので、一度ビルドが通ると何かと役に立つ。
細かくパッチ関連の所を見てみたら、ウチとは大きく違う部分を発見。
具体的には、getChunk() setChunk()という部分。
まず、VSTの初期化時に、
programsAreChunks(); // 音色データは独自チャンクで保存する
これを宣言して、音色データを独自チャンクで扱うことにして、getChunk() setChunk()
を用意して音色データを渡したり読み込んだりしてみた。
そしたらなんと!CUBASEのセーブ時にパラメータがごちゃごちゃ動いてたのがビタリと
止んで、セーブしたパラメータがロード時にも反映された!
こんなの、最初の神様のソースコードには無かったし、誰も教えてくれないし、挙動が
どうなるのかなんて2chにしか無かったよ!!もう!!
なぜゴチャゴチャとパラメータが動いていたのかを調べてみたら、推測だけど、パッチ
の名前を取得する時にgetProgramNameしか用意してなかった。getProgramNameは
カレントのパッチ名を取得する命令。
そう!パッチリストを作成するために、カレントを一つ一つ動かしてはパッチ名を取得
していたからゴチャゴチャとパラメータが動いていたのだ!しょうもない!!
これはgetProgramNameIndexedという任意のindexのパッチ名を取得できるのを用意
してあげればクリアとなったのでした。
うーん、調べたらなんとかなったけど、こんなのすぐわかんないよ!!
とりあえず、CUBASEではプリセットのパッチを読み込んでエディットしてセーブして、
次ロードした時にちゃんとエディットした状態でリコールされた。パッチのセーブ・ロード
は作らないとダメっぽいけど、しばらくはこれでいいか・・。
2015年10月13日火曜日
Windows:vstgui:プリセット地獄2
LFOが出来て、音源的な所ではある程度完成のような状態になったので、
(まだまだ改良は必要だが)
実際に使う事を考えるとプリセットの問題は避けては通れない。
久しぶりにプリセット地獄に入る。
色々と手を変え品を変えデバグしてみると、興味深い現象にブチあたる。
vsthostというシンプルなホストでデバグしていたのだが、「プリセットを選ぶ」
という行為を行うと、「setProgram」にプログラムの数だけのドドドっとリクエスト
が来る事がわかった。
具体的には、MY_VST_PRESET_NUM分呼ばれてるのではと推測。
ウチのvstは320個プリセットがあるので、320個全部呼ばれる。
その後、目的のプリセットで呼ばれる感じ。
なのでゴチャゴチャとパラメータが動くみたい。
うーん、コレ何してるのかなぁ・・。
パッチリストを取得しているとも考えられるなぁ・・。
リストだけだったら文字列だけでいいのに、なんでパラメータまで呼ぶかなぁ・・。
実際、リスト取得時なのか、パッチ設定時なのかはsetProgram側からは
わからないので、手の出しようが無い状態だべ・・。
他のvstはこの問題どうやって対処してるのかしら。
コードの組み方が間違っているのかしら。
プリセット問題困ったわ・・
誰かおしえてくれーーー!!!!!
(まだまだ改良は必要だが)
実際に使う事を考えるとプリセットの問題は避けては通れない。
久しぶりにプリセット地獄に入る。
色々と手を変え品を変えデバグしてみると、興味深い現象にブチあたる。
vsthostというシンプルなホストでデバグしていたのだが、「プリセットを選ぶ」
という行為を行うと、「setProgram」にプログラムの数だけのドドドっとリクエスト
が来る事がわかった。
具体的には、MY_VST_PRESET_NUM分呼ばれてるのではと推測。
ウチのvstは320個プリセットがあるので、320個全部呼ばれる。
その後、目的のプリセットで呼ばれる感じ。
なのでゴチャゴチャとパラメータが動くみたい。
うーん、コレ何してるのかなぁ・・。
パッチリストを取得しているとも考えられるなぁ・・。
リストだけだったら文字列だけでいいのに、なんでパラメータまで呼ぶかなぁ・・。
実際、リスト取得時なのか、パッチ設定時なのかはsetProgram側からは
わからないので、手の出しようが無い状態だべ・・。
他のvstはこの問題どうやって対処してるのかしら。
コードの組み方が間違っているのかしら。
プリセット問題困ったわ・・
誰かおしえてくれーーー!!!!!
2015年10月4日日曜日
登録:
投稿 (Atom)