VST Plugins Development 3.0
1 :
名無しサンプリング@48kHz :
2007/07/16(月) 14:49:47 ID:mmXg14Cx 以前あったVST開発の良スレがなくなったので作りました。 ム板にいけって言わないで。あそこ重いの。
2 :
名無しサンプリング@48kHz :2007/07/16(月) 14:53:40 ID:mmXg14Cx
で、お聞きしたことがあるのですが、PROSONIQ morphという 音のモーフィングができるプラグインがあるのですが、 あれが内部で何をやっているかわかる方いないでしょうか。 音のモーフィングで検索してみたけどNTTの科学研究所の論文 くらいしか見つからなかった。 詳しいこと知っている方がいましたら教えてください。
5 :
2 :2007/07/18(水) 01:41:22 ID:bpFNbCWs
>>4 関連リンクありがとうございます。
モーフィングなんですけど、音声を解析ていうのは具体的にどういうことでしょう。
先のmorphの場合はシンセではなくてエフェクターで、リアルタイムで二つの
音源信号を混ぜることが出来るみたいなんですけど、スペクトルを解析して混ぜてるんでしょうかね。
単純にスペクトルを足してもモーフィングのような効果にはならないと思うんで、
何をやってるのか気になってます。
下記にmorphのサウンドサンプルがあります。
ttp://www.prosoniq.com/html/morphaudioex.html
>>5 スペクトルを解析して混ぜてもいいし、ウェーブレットなんかで解析したのを混ぜてもいいし、
FM合成のパラメータの形にしてから混ぜてもいいし、とりあえずなんらかのパラメータの形にしてから、
その間をとっていけばいい。リンク先の音はスペクトルっぽくない?
7 :
2 :2007/07/18(水) 13:22:45 ID:bpFNbCWs
>>5 なるほど。ありがとうございます。
リンク先のは聴覚上の音量がモーフィング時も同じになるようにして
スペクトルを混ぜてるんですかね。
最近知ったんだけど、
JUCEというWindows/Mac/Linux用のツールキットで
VSTプラグインまで作れるらしい。
http://www.rawmaterialsoftware.com/juce/ 試しにダウンロードしてコンパイルしてみたけど
スタインバーグから
VSTSDK
ASIOSDK
を落として
Microsoftのフリーのコンパイラの
Visual C++ 2005 + Plathome SDK
を使ってプロジェクトをビルドしただけ。
>>8 えーっこれすごいね。
シンセサイザークラスか、いいなこれ。
これで何実装してみたの?
VC++ Express Editionを落として、SDK入れて、とりあえずサンプルのagain.cppを開いてみた。 自分にはそれが限界だった。orz ググるとDSPのソースとか色々あるけど、それをコピペで簡単に出来たら... その前にC言語マスターしなきゃ難しいよね? again.cppを改造する事から始めてみようかな。
12 :
名無しサンプリング@48kHz :2007/08/01(水) 03:05:55 ID:ky/7bi/B
ASIOのSDKに関してわかりやすいページ知っている方いませんか。
何これ超すごくない? シンセメイカー
15 :
名無しサンプリング@48kHz :2007/08/18(土) 20:59:46 ID:r5Dr+Js6
SAVE AS VST
すいません、ちょっとおたずねすます。 自分は以下のように理解しているのですが、これで正しいですか? ・VST/VSTiのホストは、プラグインの実行時に、それらを自身のプロセス空間に追加する。 ・スレッド間通信によって、ホストとプラグインはデータをやりとりする。 ヨロシコ _o_
ちょっと違う >>・VST/VSTiのホストは、プラグインの実行時に、それらを自身のプロセス空間に追加する。 これはそうだね。dll としての実装だから 単なるライブラリ。 >> ・スレッド間通信によって、ホストとプラグインはデータをやりとりする。 スレッド間通信とまでは言えなくて、すべて ホストのAPI から呼び出される決まった名前のC言語 インターフェースのサブルーチンコール集になっている。 setChunk() getChunk() process() processReplacing() processEvents() 等 ただプラグインそれぞれのサブルーチンが同じスレッドかどうかはホストの実装依存。たとえ同じスレッドだとしても 違う時間周期で呼び出されるから、プラグイン内部ではスレッドを切ってリアルタイム処理してやらないと 当然画面とオーディオの同期は取れなくなる。
19 :
17 :2007/08/28(火) 22:45:30 ID:HHBldoIP
なるほど… 相性の悪いホストとプラグインが、共倒れになる理由が分かりました。 じっくりとサンプルソースを読んでみます。ありがとうございました。_o_
SSW の新版から対応になったらしい "VSTi Exclusive" の仕様について 情報をお持ちの方いらっしゃいませんか? 名前から想像するに、本来 HOST -> VSTi 間のMIDIメッセージは ショートメッセージだけを通してSysExはブロックするという仕様だったかと思いますが これが拡張されたのだと思いますが。 利点は旧来のSMFデータ中などに仕込まれているSysExをVSTiに流して曲の再現性を 高めるものと想像しています。
>>20 VST2.3ドキュメントだと名前だけ
2.4ドキュメントだとVstMidiSysexEvent構造体くらいは載ってる
VstMidiEventとしてVSTiに送るもの。送り側はCubaseとかなら
前から送れるようになってたが、受け側がほとんどいないという
のが現状では?
ソフトシンセのパラメータは妙な細工しなくてもホストが記憶する
し、オートメーションもできるという現状では、ハード音源のソフト化
とかで、同じSysExが使えるくらいのメリットしかない気がする。
>>21 なるほど、イベント実装ですか。Vst2.4のヘッダ見てみます。
これが必要なプラグインってやはりGM/GS/XGコンパチ音源くらいですね
ありがとうございました。
BBSで手軽にパッチ貼れるという利点もあるでよ
静かだ・・・乱世とは思えぬ
まあ待てよ そんなに落ちるなよ
3.0のSDKがなかなか出なくてやきもきする。 Nuendo4.1/Cubase4.1でVSTのサイドチェイン対応だからそれ待ちで出し渋ってるのか。
そろそろ何か作ってくれ
保守
30 :
名無しサンプリング@48kHz :2007/10/26(金) 17:02:34 ID:IPgksMma
下がりすぎたんで上げるか。
>>27 いま準備やっているところ。
とりあえずVisual C++ 2005 Express Edition, VSTSDK 2.4,
WxWidgets 2.8.6入れてvsthostビルドしようとしたらMFC無くて
途方にくれている。
ソース公開希望
>>26 スタンドアロンで作って出しておけばokって気もしなくもない。
時期として長期休暇ではないから、一気に作り上げられないのだろう。
>>31 経験上、日本人でメンテできる人って少ないし、
感想やレポ上げてくれる人が極端に少ない気がするので
公開する意味があんまりないかと思われる。
(ドネーションという考えも普及していないしな)
ソース読みたいのであればHexterVSTiやら
Big Blue Piano VSTiあたりがあるよ。
保守
SDK日本語化キボン そしたら俺も作る気になるw
英語全然読めないけどそこそこなんとかなるよ、ソースあたれるし それよか数学物理がキツイわ
ソースにあたってもそのソースが中途半端なのがキツイわ。 ソースにある dispatcher の引数の説明も、間違ってるところがある。 dispatcher の引数をサンプルソースのコメントとdocを毎回突き合わせて 確認してないとこの間違いにも気づかんわな。 結局自分でホスト用の dispatcher ラッパクラス作った。 AEffectX があるなら AHostX とかも付けてよスタイン・・・・
37 :
名無しサンプリング@48kHz :2007/11/26(月) 01:19:55 ID:qOVBbfIV
SDK日本語化希望保守。
マニュアル日本語化とかならわかるけどね 英語のマニュアルすら不備ある現状だけどw
半分以上日本語化したが、このSDKの問題は 英語か日本語かという点ではないことがわかった。
不備を修正して、完全日本語化をうp( `・ω・´)ノヨロシクー
過去の引きずってるから修正っつうのもな あと日本語化ってなにを指してるのかよくわからん
不備を修正、じゃなくて、不足分追記とコメントを清書て感じだな。
44 :
名無しサンプリング@48kHz :2007/12/07(金) 23:00:39 ID:yLgnNnvh
45 :
名無しサンプリング@48kHz :2007/12/09(日) 02:31:01 ID:L/Wta6Va
VSTの初題材としてパッシブサーキットのエレキギター・ベースの、 パッシブトーン(単なるCRのローパス)のシミュレータをつくってみようかなー、と 考え中なんだけど、もうそういうのってあるのかな?
あってもつっくっちゃえ☆ 探すより作るほうが楽なこともあるし
48 :
46 :2007/12/17(月) 20:59:19 ID:I7CR0p4G
そだなぁ、最初の一歩はとにかく踏み出すことか! ってことで、いまつくってるオケが終わったら、やってみるよ! それまでしばしデジタルフィルタの勉強しとくか!
49 :
名無しサンプリング@48kHz :2007/12/18(火) 15:38:38 ID:1H2gNBvo
VST2.1挑戦してる人いる?
>>48 デジタルフィルタではCR構成のローパスシミュは難しいんじゃないか?
アナログの2次や3次フィルタのほうがよさげ。
51 :
名無しサンプリング@48kHz :2007/12/25(火) 02:10:12 ID:vZ5DMPuq
VST SDK のマニュアルでHTMLじゃなくPDFで公開してるようなのってないんですかね? 印刷めんどい。
さて、休みだし何か作ろうぜ
誰か Hello World 的なソース公開してくれ。
SDKに目を通してないのモロバレだな
よし、今年こそ何か作るぞ!!
>>56 残り34分で何を作ったんだ
そしてあけおめ
Universal BinaryなVOPMがなかったので最新の0.16のソースを vstsdk2.4のSampleプロジェクトに追加してビルドしたらちゃんとできた GUIでエディットもできてウマーです ただform.cppのSaveとLoadでエラーが出たので 中身全部コメントアウトしちゃったんで多分保存とか出来ないと思う OSXのファイルセレクタを呼び出してパス文字列をchar配列に入れればいいみたいなんだけど よくわからないしとりあえず音が出たのでそのまま放置してます どっかにビルド済みのバイナリーって上がってたりします??
HexterをVC2005でコンパイルしようとしたら出来なかった。 っていうかVST SDK 2,3がVC2005でコンパイルできないじゃん。 まあ2.4で作り変えればいいんだろうけど。 C/C++は久しぶりだからどこから手をつければ良いか思案中。 #define やら#ifが結構ウザイ。 ....年寄りには辛い。
>58 どういうエラーがでたの? CFileSelector.cppがプロジェクトに入れてないとかしてませんか? form.cppのSave,Loadはテキスト形式のbankファイルのセレクタなので、 そこをコメントアウトしてもsteinbergのDAWなら標準形式の bankファイル(.fxb)の方は読めるはず。
やっとVST3.0SDKのアナウンスが…SKIとかなんか豪快な機能も入ってるようで。
それなに?おいしいの? どこ行けば調べられるかな?
VST 3.0のドキュメント読み始めたんだけど初っ端からわからん。 "Silence Flag"のパフォーマンス向上とか書いてあるけど、"Silence Flag"って何? 翻訳ソフト使っても読み進められない。
>>64 無音フラグ。
音が出てない状態のフラグがあって、音が入ってきてないときに計算をやめることで、
パフォーマンスを向上させることができる、ってこったろ。
67 :
名無しサンプリング@48kHz :2008/02/05(火) 11:21:37 ID:ToR+RniZ
守
保守します・・・。 確認のためお聞きしますがやっぱりプログラミング能力がないと難しいですよね・・・。 303もどき作ってみたいのですが…。
これから覚えりゃいい Hello World! から始まるようなら道のりは遠いカモな 自信無けりゃ素直に SynthEdit 使っとき 巷にあふるる 303モドキのうち幾つかは SynthEdit 製だw
なんか色々入力するのが怖くてVST3ダウンロードできない
ちょっとお聞きしたいんですが、 当方駆け出しプログラマなんですが、vstホストを作ろうと思ってます。 vstのライセンスはスタインバーグ社が持ってるとのことですが、作ったVSTホストをスタインバーグ社の許可なしにフリーソフトとして勝手に配布しちゃっていいんでしょうか? どなたか詳しいかたいらっしゃったら教えて頂けると幸いです。
そんな心配は完成間近にすればいい。
まああれだ。SDKに入ってるホスト・サンプルのソースは 機能が低すぎて応用が利かない。 今まで成功したミニ・ホストのサンプル、例えばTobyBearのSourcePackや それをベースに開発したHermanSeibのVSTHostソース (ちょっと古いバージョン版) でも参考にしなさいってこった ってだれかがゆってた
ライセンスのことは全然分からないけど、フリーでconsoleみたいなの作ってくれると嬉しい。
75 :
名無しサンプリング@48kHz :2008/02/26(火) 01:19:38 ID:4NWOwd+m
なるほどーありがとうございます。
>>74 さん がんばりますっ
×studio ○studio
×stuio ○studio orz
ほっしゅ
おまいら最近何作ってんの?
子供
consoleの特徴はそれ自体がVSTとして使えるVSTホストってことじゃないの?
VST3 で作ってる人いる?
85 :
名無しサンプリング@48kHz :2008/04/20(日) 04:23:20 ID:upqJE1qT
諸君、議論したまえ
うむ
数ヶ月の検討の結果、俺はまだVST2.4で良いと、結論を出した。 フリーやシェアのホストアプリを含めると、少なくともあと1年、 VST3.xが使える環境にはならないだろう。
ふつーVST3.0仕様見て1分で答出せると思うけどwww SideChainCompとDSDだけだし。
え!? そうなの?
ま、サイドチェインは検討に値するけどな。
vst3の仕様書ってどこにありますでしょうか?? ホストアプリを作りたいと思っているのです
92 :
名無しサンプリング@48kHz :2008/05/04(日) 23:33:29 ID:ZorXZqgq
おお、ありがとうございます! VST Audio Plug-Ins SDK (version 3) あたりかな?と思いますが、「Plug-Ins」ってなってますね。 「host」っていう文字がどこにも見当たらないのですが、 VST Audio Plug-Ins SDK (version 3) からユーザー登録してSDK落とせば、それと一緒にホストに関連したドキュメントとかもついてくる感じでしょうか?? そもそもSDKってVSTiの開発に使うのだと思ってたのですが、VSTホストの開発にも使えるのかな。 というか、ユーザー登録しないとドキュメント見られないのでしょうか・・
94 :
名無しサンプリング@48kHz :2008/05/05(月) 02:17:48 ID:Zie/jm3Q
I/Fの規格なのでドキュメントそのものはひとつ スタインバーグ的にはこれでプラグインを作ってね、という事だとは思うがI/F規格 に沿ってプラグインを呼び出すようにすればホストも作れるはず プラグインのテスト用ホストのソースは付いてた Downloadするにはメールアドレスとか入れる必要はあるだよ
VSTつくってもシュタインベルグのホストアプリケーションのが 売れるだけで利用されてるだけだろ。 おれは企業の利益になりたくないから作ってくださいといわれても 絶対につくらないね。おれからみたらVSTを無料でつくって配ってるやつはアホとしか いいようがない。むしろオープンソースのプラグインでほかに なにかない?
どこ立て読み?
>>95 企業の利益になりたくなら自分で起業すればいいのに。
他人に頼って自分は傷つきたくないから何時までも搾取されてんだよ。
お前が商用利用には一定額を還元させるオープンソース作ればいいじゃん。
VSTよりも優位に立てるまともな規格をお前が作れるならな。
98 :
名無しサンプリング@48kHz :2008/05/05(月) 16:57:27 ID:Zie/jm3Q
>>95 どうしてもというならBuzzのMachineでいいじゃん
仮にVSTがオープンソース化されても、
プラグインを無料配布すれば、MSやAppleのOSが売れるだけ、
LinuxでLADSPAやDSSIを使ってもIntelなどに利するだけで
利用されてるだけの状況に変わりはありません。
>>95 には「作らない」をお勧めします。
E・∇・ヨノシ <100ゲット♫
101 :
93 :2008/05/06(火) 20:27:08 ID:1jN6TZ5U
>> 94さん 詳しい説明ありがとうございます! 仕方がないのでユーザー登録してSDK落としてみました。 が、ドキュメント眺めてもホストアプリのソースというのがどれだか分からなかったのでとりあえず何かビルドしてみようと思って色々探してみたもののmakeファイルが見当たらないので、 適当に.cppファイルを探していくつかコンパイルしてみようとしたのですが、エラーが出まくります。 SDKってただのライブラリの集まりではないのですよね??VST製作環境ソフトみたいのがビルドできると思っているのですが・・。 もしかしてMinGWでコンパイルしようとしてるのがいけないのでしょうか?? 検索したらMinGWではうまく行かないのでわざわざVisual C++ 買ったっていう情報が見つかりました。 そして。。もしかしてMFC必須だったりする・・のでしょうか・・。 どなたかご教示頂けると幸いです。
ただのクラス/ヘッダファイルの集合体。IDEみたいなものはない。 必要なクラス/ヘッダを自分のプロジェクトにインポートして使うだけ。必要なら自分で整備する。 簡単なホストのサンプルはソースでついてる。 SDKはWindows環境はVC++を想定しててVC++のprojectファイルがついてる。他のコンパイラ 環境で使う場合は自分で整備する。MFCは要らない。 VSTといっても単なるDLLなので、WindowsDLLを作成出来てVSTの仕様を満たせるコードを 書ける環境ならあとは自分で整備すればいい。 SDKのファイルを全部見ようよ。この手のSDKはドキュメントというよりソースみて理解しろ、って タイプなんで、ソースファイルを眺めないと始まらない。
103 :
名無しサンプリング@48kHz :2008/05/07(水) 00:48:15 ID:vb4UZq3K
うん、まあ、ホストアプリ作るまでにはまだ先は長そうな気がするが、がんばれ
>>95 最初はWindowsで組んでSolarisに移行しようとしているクチだが、この感覚が理解できない。
たかだかラッパーやフレームワーク組めばVST/LADSPAの差異なんて吸収できるということを知らないのか?
あまつさえシンセに関してはMIDI IN/OUTがあればDSPや音源エンジンに相当するプログラムを書いて
ソフトシンセにできます。この場合VSTなんて必要ありません。
つか、んな大口叩くならN-88BASICからやり直して来い!!:-p
>>101 VisualC++のソースコードをMinGWに移植するだけのスキルが無いなら
さっさとVisualC++買って来いw
MinGW用のソース提供してるプラグインも探せばあるけど、どうせおまいは探さないだろうしw
VisualC++ 2003のフリー版探す事もしないだろうしw
さっさとバイトしてVisualC++買えw
106 :
101 :2008/05/07(水) 11:13:06 ID:lfrWj9Cm
>> 102さん そのものズバリの回答をありがとうございます! IDEみたいのがあるわけじゃなかったんですね。 GUIデザイナみたいのもあるんかなと思ってたんですが大勘違いでした。 >> この手のSDKはドキュメントというよりソースみて理解しろ、ってタイプなんで・・ そういうもんなんですか。 プログラミングも割と初心者なんですがけっこうハードル高いんですね・・。頑張ります。 >> 105 さん レスどもです。 Visual C++ のソースをMinGWに移植〜とかしたことないので出来るか分かりませんが、勉強に丁度いいのでやってみることにします。 買う金がないわけではないのですが、なぜかVisual C++ は気が進まないんですよね。。 Visual C++ 2003のフリー版ってのはexpress edition のことでしょうか? それなら落としていじってみたことぐらいはあったりします。 > MinGW用のソース提供してるプラグインも探せばあるけど、 そうなんですか!ありがとうございますm(_ _)m
vc++は良いよ。よく出来てるし。特に各種APIを使うプログラミングだと インテリセンスが便利すぎる… とりあえず初心者なら色んなソースを読みまくるべきだ。基本中の基本。
波形いじくるには物理計算とかいろいろしないといけないと思うんだけど、 ある程度の基礎知識がある人向けに音響関係の計算方法とか解説してる サイトってありませんか? 特に知りたいのはピッチを判定して音程を検出する部分です。
>>108 ピッチ検出は対象とする音の種類によって適切なやり方が違うが、
とりあえずはできあいのソースを読むのが一番。
http://www.musicdsp.org/ 適当にコムフィルタでピークをとるのが簡単だとは思うが、
正確にやるなら、周波数領域にバラして、スペクトルの自己相関を取らなきゃダメ。
>>109 わぁ、素晴らしい!
ありがとうございます!
E・∇・ヨノシ <111ゲット♫
>>101 MinGWはやったことないけど、前にBorland C++ コンパイラでやった
時には別に苦労はなかった。コンパイラはどれでもいいと思うよ。
前に Visual C++ 2005 Express Edition でビルドできたな。 今の 2008版で出来るかは誰か試してちょ
cygwinのgccでDLL作ったときはなぜか動作しなかったなー
俺の理解力不足だったんだろうけど・・・DLL周りのツールの使い方良く理解しないまま弄ってたし
Makefileは海外のサイトやら
>>109 のサイトとかに転がってたと思うけど素直にVC使うのが面倒無くていい気がする
余計なところでドツボにハマっても疲れるだけだしさ
DSP情報全般のサイトでわざわざVST用Makefile?探すのもマヌケな話だw
既製のVSTiを起動して、それが出すことの出来る全ての 音色を出させるプログラムは、どのように作ることが出来るのだろうか? 例えば、FM8の周波数比を自動的に変化させて、 FM8の周波数比変化で出すことの出来る全ての音色を聞きたいと思ってる。 またエンベロープやアルゴリズム、周波数比、それら全ての可能な組み合わせを全部 聞きたいという考えです。 Reaktorで一から自分で作るという手もあるんだけど、 既製のものをなんらかの方法で自動的に動かせれば、 それが一番手っ取り早いかなあと思って… もちろん一番安上がりなのは、手動でVSTiを動かすことだろう。だが 膨大な時間がかかり、途中で放り出してしまうと思うので、プログラムでなんとかしようと。 ヒント、煽り、なんでもいいので意見くらはい
単純にCCを1動かして、1ノートを鳴らすって言う シーケンスデータをシーケンサーで作ればいいんでね? 連続したCCのデータを入力できるシーケンサならなんでも 簡単に作れると思うんだけど。 CCに対応してないVSTiとか、ネイティブのパラメータを オートメーションで厳密にやりたいとかいう事になると どうしようもないが でも128段階と仮定しても5つのパラメータだと 128の5乗の組み合わせになるぞ? ぶっちゃけ自動再生にしたって とても聞ききれるようなもんじゃないと思うけど・・・ たぶんフィジコンでも導入するのが一番いいような
おお!レスどうもです なるほどCCは盲点でした。プログラムプログラムばっか考えてたんで… 早速やってみまつ!
出来たらください
SDKのリンクがことごとく404なんだけど
122 :
名無しサンプリング@48kHz :2008/08/12(火) 05:28:34 ID:H8v+fTCO
最近刺激的なのないねぇ
123 :
名無しサンプリング@48kHz :2008/08/17(日) 10:34:49 ID:lWl/leGs
最近どうですか?
質問です。FL Studioをホストとした場合に他のVSTホストと比べてプラグインの不具合が多く、 いろいろなプラグインで修正パッチが当てられているようですが、どなたか情報を持っている方は いらっしゃるでしょうか?私もとあるプラグインではまってしまいました。 プラグインが悪いのかホスト(FL Studio)が悪いのかグレーゾーンなのかなと思っていますけど。
125 :
124 :2008/08/22(金) 22:42:31 ID:I6wUeCt2
お騒がせです。自力でデバッグして自己解決しました。 結論から言うと、FL Studioはデフォルトで毎回ダイナミックなフレームサイズのバッファを processReplacing()に投げてるのが判明しました。たしかに毎回違ったサイズのバッファを 送りつけてはいけないとはどこにも書いてないですね。そんなあ。 一定のサイズのバッファだと思い込んでいたものですからそれを前提にいんちきなコードを 書いていてそれではまったようです。 困ったなあと思っていると、FLのVSTラッパーメニューの中に Options>Compatiblity>"use fixed size buffers" という項目があり、それにチェックを付けると あっさり音が出るようになりました。 うーん。勝ち負けで言うと私の負けです。次からはFLのことも考えて設計しないとな。
>>125 processReplacing()のsampleFramesを見ずにサイズ決めうちにしてたってことかな。
FLにそんなメニューがあるってことは、意外とまずいことしてるプラグインが多いのか。
>>127 詳細は割愛しますが、フレームサイズは見てるんですがまさか毎フレームごとに
オーバーサンプリングごにょごにょの手製FIFOがあふれた以下略
>>128 フレームサイズ見てるのに気がつかないなんて…
漏れもたまにやるから気にする必要ないんだぜw
SDKアカウント取ったのにログインできねえ 404とか入れないとか糞過ぎる 折角VST作って無料でシュタインベルグの利益になろうとしたのに この態度ではありえねー ざまーミロ糞が
>>130 いま登録してSDKをダウンロードしてみたら普通にできたよ。
ところで、今はSDK2.4と3.0では、どっちが主流なんでしょう?
すっかり浦島太郎w
>>131 サイドチェインに意味を感じなかったら2.4でいいとおもうよ。
すべてのVSTホストで2.4プラグインは動く
現状では3.0に対応してるホストがCubase4シリーズのみだから、 それでいいならバージョンにこだわる必要はないと思う。 どれが主流かといわれれば、現状は2.4かな。
135 :
名無しサンプリング@48kHz :2008/09/01(月) 10:37:38 ID:uM6Pt2Wa
>>131 メールアドレス色々とってなんどやってもアカウントとっても
IDとパスワード入れるところから入れない。
>>135 シュタインベルグからメールが届いてるはず。
そこに書いてあるアドレスにアクセスするとアカウントがアクティベートされる。
ただ、そのメールの有効期限が何日だったか覚えてないので、ひょっとしたら再登録の必要があるかも。
>>136 メール届いて、メールに書いてあるアドレスに飛んで
登録していたパスワードと、メールに書いてあるアカウントをいれたら
駄目だった。
何度やっても駄目だった。
ためしに誰かやってください。
もしよかったら
[email protected] に使えるIDとパスワード送ってください。
ブラウザのクッキー切ってるってことはないよな?
困った時はブラウザを変えてみると解決することがあったり無かったり…。
デフォルトのIEでもむりでした。 それよりメールで教えてください。 まだ一通もきませんよ。
アカウントのメールってさぁ、メーラーによっては[hash]から後ろがリンクになってなかったりするよ。 [hash]の後ろも全部コピペしてアクセスして、その上でもダメなん?
やったーーーー やったーーー やったーー やったー
次はコンパイラーがほしいのだけど、 MINGWでコンパイルできる。
スレを読んでいる人たちが145を見た瞬間に 険悪な表情になったことは、想像に難くない。
まずはお礼を、だね。
レスが増えていると思ったら……この流れにワロタ
せっかちな人が作ったのは使いたくないな。
作った人の性格まで求めるようなことは俺はしないよ。 優れたソフトならばそれがすべてだ。
グラフィックイコライザーを作ってみたいのですが 原理などが載っている本ありますか?
>>151 EQの種類や実装方法によっても違うけど、基本はフィルタだから信号処理の本。
ネットで腐るほど落ちてるけどね。musicdsp辺りにいけばコード自体公開されてるし。
153 :
名無しサンプリング@48kHz :2008/09/02(火) 15:35:43 ID:8FZFHWxd
>>142 なかなかダウンロードできず調べているうちにここにたどり着きました。
おかげで上手くいきました。
ありがとうございます。
>>151 何素子に設定するのかにもよるけど、
BPFを帯域ごとに固定して並べれば簡単にできるよ。
原理はシンセエディット(無償)やREAKTOR(有償)で
研究して、それがうまくいったらそれをプラグイン化
すると開発も非常にやりやすいかもね。
ひょっとするとシンセエディットで十分かもしんないしw
155 :
名無しサンプリング@48kHz :2008/09/05(金) 11:34:09 ID:+7+nuilA
マイ糞そふとのツールいれたくないんで、 GUNのMINGWをつかいたいんだけど、 コンパイルできないうわさがあるけど、 マジレスください。
XCodeでMac用VST開発してろ。
>>155 MinGWでDLLは作れる。ソースも転がってる。自力で解決できない素人はMinGWなんか使うな。
vst関係の情報がまとめてダウンロードできる ホームページを沢山教えてください。 お礼はします。
>>158 「VST SDK」でググれ。それだけで出てくる。
タダで使えるのに何でMSのツールが使いたくないのか不思議だ。 MINGWで作りたいなら自力でやれ。 コンパイルできるかどうかは自分で試してから聞け。 話はそれからだ。
俺前作ったけどDLL生成できるものの動かなかったんだよね 動いたらまた書き込んでね 今はVS2005使ってるからどうでもいいんだけど
>>160 高度なハッカーはMSのは使わない。
オープンソースじゃないから、自由に改造して配布できない。
GPLかBSDのライセンスがついたライブラリに代替すればいいじゃない。
それ以前にMac/Windowsの両方で動作を考えた時点でMFC等のMSのライブラリは使えない
mdaのプラグインが販売をやめてSorceForgeでオープンソース公開
されているが、プロジェクトファイルは vc8(VS2008)/vc6(VS2003)/xcodeだった
GPLとMITライセンスだったよ
http://sourceforge.net/projects/mda-vst/ それよりもVST SDKは使用時にユニークなベンダIDが必要でSteinbergに
フリーソフト作者でも登録しないといけない件はわかってるのかな?
登録しないとどうなるんだ?
試したことがないのでわからないが、ヌルイVSTホストならともかく、 Steinbergのホストではプラグイン情報収集のユーティリティあたりで跳ねられて プラグイン一覧から除外されるとかが起きても不思議じゃない。
msの開発環境かどうかとオープンソースかどうかは関係ないんだが、
釣りだと思うんでまあスルーで。
ExpressEditionでとりあえず試せばいんじゃないかな。DLL作れたよね、たしか。
>>161 exportする関数のラベル命名ルールで引っかかってるとか・・・c/c++の違いと
定義ファイル次第。
IDはMacのリソースIDのような形式のが定義されてるね。たまに適当につけてる
プラグインも見受けられる。いまんとこ実害はなさそうだけど、将来どうなるかは判らない。
168 :
名無しサンプリング@48kHz :2008/09/08(月) 01:22:02 ID:piH6R3yj
uM6Pt2Wa は、最初はSDKのダウンロードの仕方を聞き、 次はコンパイラの入手法、それも素人には扱いにくいものを よく分からん勝手な理由で要求 この調子だと、開発もデバッグも全部他人に投げるぜ
まあ活気があっていいじゃないか。 最近じゃC/C++プログラマも高齢化してるみたいなので 釣りでも何でもいいからプラグインを作ってみようという若者の鼻っ柱を折るマネは 漏れはしたくないです。
>>163 アホ丸出し発言w
MSの環境でもオープンソースにできるし、ハッカーがMSのを使わないとか厨房発想にもほどがある。
>>165 コンフリクト起こす可能性がある。
現状のDAWは実害がでないようにIDだけでは管理してないみたいだけど。
脳内ハッカーをいじめちゃダメ
>>169 いやぁ
せめて「作ろうとしたけど、コンパイラがエラー吐いてダメです」と
言ってソースをアップするくらいのことはしてもらわないとなぁ・・・
SDKのダウンロードの方法を教えてくれ。のほうは、アリだとしても、
コンパイラをくれは、さすがにナイと思うぜ。
173 :
169 :2008/09/09(火) 00:40:46 ID:mr5glNfA
せっかくの良スレで、俺も日本語で気軽にVSTの開発の話できるのは ここしかないと思ってるんだよね。やってる日本人も少ないんでそりゃプロもいれば フリーソフト作者もいれば学生さんもいろんなレベルの人がいると思ってる。 dat落ちさせたくないんで釣りや厨房や興味本位の乱入もよしと思っている。 今は厨房でも将来すばらしいプラグイン作者が現れる可能性だってあると思うね。 本気のプロの会話がよければWikiたてるかム板だっていいんだ。 でもそれだと人が少なくなっておもしろくないよね。 長文失礼
気持ちは判らないでもないが、
>>145 や
>>155 みたいな釣りしてるのが
まともになって戻ってくる可能性がないことは経験上判ってるんでこの流れが。
というか
>>169 がサポートしてやればいいんじゃないか。それで解決。
そもそもMS嫌いならWindows使わなきゃ良いだけだと思うけど。 LinuxのLADSPAでも作ればよくないか?
ま久々にスレが進んでも内容が煽りばっかりじゃ寂しいよね
>>170 嘘だと思うなら、revolution OS という動画を見るといい、
みればハッカーがMSが嫌いっていうことがわかる。
昔はともかく、今はgccよりVC++の方が最適化が進んでる感じ。
そもそも、コンパイラを作るのが目的じゃなくてVSTを作るのが目的なんだから、
コンパイラがオープンソースである必然性はない。
>>177 それ、MS対抗勢力だけを取り上げたものだから。
VC++でコンパイルできるオープンソースソフトウェアができたとしても、 MSの都合によってコンパイルできなくすることも出来るんだよ。 そうゆう危険がMSのライセンスにはありまくる。
そんな可能性はないといってもいいんだが、あったとしても コンパイルできなくなってから考えればいいじゃん。 別にVC++固有の機能を使うわけじゃない。 Mac用はXCodeでコンパイルできてるわけだからな。 まあ、君がMinGWでVSTのビルド環境をを作って配布するのは 止めはしないし歓迎するよ。 現状ではうまくいかないから使わない。それだけのこと。
わかってないな、MSの真の狙いは VC++をただで配ることで標準化して、C言語の仕様を捻じ曲げようとしてるんだよ。 独自の仕様をどんどん増やして既存のソースをVC++出しかコンパイルできないようにするんだよ。 HTMLの前例もある。
VST開発に限れば、Windows用とMac用のコンパイルをやって検証すれば MSの囲い込みとか余計な心配しなくていいんだよ。 自分で両方できなくてもソース公開して協力者を募集すればいい。 うちは両方自分でやってる。 あとまあ、Visual Studio 2005 以降の VC++に関して言えば、 独自機能の追加どころか、VS6.0以前との互換性が問題になってしまうくらい 標準規格準拠を優先してしまっているんだがね。
>>181 MSの仕様をパクって微妙に変えるのがRFCなんかの標準化団体のやりくちなんだが。
園児はせめて消防を目指せ。
vc++が嫌いなら別に使わなくてもいいじゃないか。 turbo-c++でもdelphiでもいいし。win32 dllを作れる環境ならたいがい問題にならんでしょ。 steinbergがvc++を前提にsdkを配布してるからvc++使用だと楽なんであって、 sdkとvstの構造を理解してれば言語の制約はないし。
ID:CFwxsL0X はなんでそんなにも必死なんだ?
よく分からんが、結局、ID:CFwxsL0X は、VSTプラグインを 作ったことはあるのか? 自力で環境を構築して作る努力をするつもりはあるのか?
>>186 まともに作れるやつがこんなションベン臭いこと言うわけないだろ。
だからMSが嫌いならWindows使わなきゃ良いだけでしょ? そうすればVC++も使う必要ないし。 VST使いたければMACを使ってXCodeで開発。 LinuxでやるならVSTあきらめてLADSPAで作る。 そもそもSteinbergのVST SDKに関するライセンスだって結構ヤバイ記述あるわけだし。 どうしてもWindows+MINGWでやりたいなら、すまんがこのスレではアドバイスできる人はいない。 だれも成功してないから自力でやって結果を報告しろ。 他人に物を聞くなら自分の成果も報告しろよ。
>>188 >LinuxでやるならVSTあきらめてLADSPAで作る。
無知すぎ
LinuxでもVSTでOK。MINGWでも動くプラグインは作れる。 VC++が読めるならSDKを眺めて出入り口を同じにすりゃいいだけ。 自力でできない素人はやめとけ。
>189 Windows用にVSTをLinuxで使えるのは知っていたけど、ネイティブのVSTが使えるのは知らない。 最近Linuxは使ってないから下手なこと言うと知ったかになっちゃうな。
元々windows / macos / linux / beos のマルチプラットホームじゃなかったっけ。 時代の流れでwindows / macosだけサポートで残ってるだけに近いけど、 vst1.xの頃はlinux/ beosもsdkに含まれてた記憶が。(linuxは別だったかもしれん) ただlinuxは使ってるけど音楽用途じゃないんで、実情は知らない。
たった一人のアホな荒らしに、みんな釣られているような気がする
wine使ってwinのDLL読むってのがあったと思う 5、6年前くらいに見た記憶があるよ もちろん動くのは一部だけだろうけどね まぁ曲作るのはwinの方がよっぽど快適なんであえてLinux使うメリットないけど
195 :
169 :2008/09/13(土) 03:24:47 ID:l/EphTdQ
>>194 ためしたことはないんですが、Windows 上で動作するシェアウェアの
DAW、Reaper2 は、LinuxとWineの組み合わせの上で動作する
そうで、DLLのVSTプラグインも使えるそうです。
>>194 最近のwineはgoogleさんのおかげでびっくりするほど進化してる。
vst/vstiも動かないものを見たことがない。
メモリもlinuxのが多く確保できるので、メリットが無いわけでもない。
ないわけでもないんだけど、プラグインはあくまでも従だからなあ。 主であるDAWが問題で、慣れた環境からLinuxの別DAWへ、ってのはちょっと難しい。 うちはCubase4だけど、何か致命的な問題が起こらない限り別環境へ移るってのは 考えられないし。
外部midiコンから操作するステップシーケンサーを作成したいと考えてるんですが、 こういう場合、ツールとしては synthedit、synthmaker、MAX/Pluggo どれが 最も適しているでしょうか?
一番なれてるやつ
201 :
199 :2008/09/13(土) 22:54:33 ID:WxpbyQJP
>>200 どの開発環境も触ったがないんですよ。。。オーディオ、MIDI関係のプログラム自体も初めてです。
プログラミング自体はperlとC++が少しできるくらいなんですが、MIDIやオーディオ関連が難しそうで、
やはり専用の開発環境がいいかな、と思いました。
今デモをダウンロードして試してるんですが、GUIでコンポーネント並べていくのって楽しいですね。
perlやC++でもこんなのがあればいいのに。
ならC++Builderだな
コンポーネントにない特殊なことをしたい場合は大変なんだけどねえ。 音響言語系はぜんぶ曲者なんで覚えるのが大変 SuperCollider, ChucK, RTcmix とか、、
何の確認をして欲しいの?
実際LinuxネイティブなVSTiだろ
ファイルの存在は確認した
208 :
名無しサンプリング@48kHz :2008/10/09(木) 21:10:45 ID:W9j3gsXN
日本人あまりvstつくらないね
>>208 作るだけで満足してる人が多い。海外だと積極的に宣伝するけど、日本人は作ったらそれで満足しちゃう。
わざわざ英語でKvRに登録したり、DTMマガジンのWEBサイトにメールしたりまでしない。
俺も2chに貼ってそれで終わりにしたのがいくつかある。
>>208 VSTプラグインに限らず、プログラム作らないじゃん日本人。
他に面白いことがあれば、そっちに時間使っちゃうから……
>>209 作るだけで満足って、なんか納得。確かに言えてるw
私の場合は満足という以上に、時間が取れなくなって、
そのうちモチベーションが下がって放置、というケースが多い。
第一、作りたいものがないという(ry
>>210 プログラム作らないて事はなくて、入門用のお手軽作曲ソフト
みたいなのは一杯作ってる気がするだがねぇ
つーか、積極的に宣伝なんかしようもんならチャンネラの叩きに合ってケチョンケチョンに貶されるのがオチw
日本だと有料にしただけで叩くアホがいっぱいいるからな。 金につながらないのに才能が集まるかよって話だ。
手軽に作れるようなのはもう大体作られてて 欲しいプラグインは技術も時間も足りないようなものばっかりになってしまった 作っても実際に使えるレベルまで持ってくのキツイわ・・・だから公開できない 自分専用の飛び道具エフェクトいくつか作ってるけどね
うむ、自分用のプラグインはいろいろ作るけど公開しないからなあ。 ありもので満足出来るのがあれば作らないけど、ディレイやフィルタなんかは 割といくつも作るかな。下手すると曲毎にプラグインいじってるかもしれない。 VSTiはサイン波出せるのが手元になくて1個作った程度。 今Cubase4使いだけど、もうなんかたいていは付属純正プラグインで間に合っちゃうんだよね…
他のソフトで出来るものをこうかいしたとしても、 ユーザーが選択肢が増えて選択の時間が増えて、まちがって糞ソフトを インストールしてしまったらまた他のソフトを使うことに時間を無駄にする場合多いから 糞ソフトは公開しない方がありがたいなぁ。 シュタインベルグのVSTはJava対応してないから目も当てられないね。 むしろ、DLL作っておいてそれを呼び出して、色々なプラグインで使える方法みたいなのが あればいい。 VSTはマイクロソフトがJAVAを捻じ曲げて提訴されてC#を作ったように 音楽プラグインの標準を企業が独占して利権を得ようとしているからね。 なんかGPLライセンスのプラグインみたいなのあったら教えて欲しいのにね。
http://jvstwrapper.sourceforge.net/ jVSTwRapper is an easy and reliable wrapper to write audio plug-ins in Java.
It enables you to develop VST (2.4), Audio Unit (AU) and LADSPA compatible
audio plugins and virtual instruments plus user interfaces (Swing) and run them
on Windows, Linux and Mac OSX. Five demo plugins (+src) are included.
>>216 ここは自作する人のためのスレです。
寝言は寝てから言えって話。
プログラマ3年目の若輩者です。 VST3のHOSTを作ろうとしています。 サンプルを探しているんだけど、VST2とかのやつばかりで、 VST3のHOSTのサンプルがあるところ知っていたら教えてください。 英語サイトとかもググったが見つけられませんでした。 ちなみにSDKのサンプルは見ました。 プラグインの呼び方はわかるんだけど、 音楽ファイル読み込み・書き出しのソースが欲しいです。 TobyBearのSourcePack HermanSeibのVSTHost はチェック済みで、動かそうとしたら「aeffectx.h」が無いって言われて、 VST2のファイル?と思い、スタインで2.3・2.4を落とそうとしたら 404NotFaundで手詰まりです。
220 :
名無しサンプリング@48kHz :2008/11/03(月) 14:50:43 ID:FMZEVAVV
ついでに保守アゲです。
すいません。404NotFaundはクッキーの問題でした。
> 音楽ファイル読み込み・書き出しのソースが欲しいです。 なんでそんなレベルの奴がここに来るのか
VSTの範疇超えてるからプログラム板行きなよ
ちょwww 音楽ファイルの規格書読んでI/Oコード書いたり それはできなくても自分でソース探せないようなのが プログラミングしようなんて考えるなっつー話
というか音楽ファイルって何? VST3.0対応してるホストもってなくて興味ないから見て無いんだけど、なんかそういうのできたの?
レベル低すぎだなここ
単発IDで煽ってるバカが一番クソ
>>219 構造体を作って、チャンクを読み込んで放り込んでくだけ。RIFFでググレ。
何で非プログラマの俺でも知ってるようなことがわからないんだ???
みんな気前よく釣られ過ぎ。 この手の勘違いしちゃった人が 定期的に湧いてくるけど、同一人物か?
>>228 煽られてるように感じてるの?
自意識過剰すぎ&ストレス溜めすぎなんじゃないの?
>>230 いつものアイツだと思うよ。
平日昼間っからDTM板で一人で暴れてるキチガイ
233 :
219 :2008/11/04(火) 00:05:07 ID:FMZEVAVV
お騒がせしてすいません。
サウンド関連のプログラミングは初めてなもので。。。
レベル低くてすいません。
>>229 アドバイスありがとうございます。
もうちょっと勉強してから出直します。
235 :
8 :2008/11/04(火) 19:13:10 ID:bUlYFCqN
通りすがりの者です。 みなさん、プログラマーさんですか、日本人の作ったBuzのフリーソフト すごいです。皆さんの様な人のお陰で、バンドルソフトで我慢してる僕ら にも良いソフトが使えるチャンスが回ってきます、こんな時代です 無理せず、自分のやりたいこと続けてください。
ここの奴らは偉い人の考えたアルゴリズムみたいなのを VSTにしてるだけだからゴミみたいなソフトしか生まれないんだよ。 内点法みたいに数学に特許が得られる糞システムだから、 フリーで配布しても解析されて特許とられて搾取されるだけだからな。
237 :
8 :2008/11/05(水) 14:59:10 ID:xSVc3o9p
>>236 働き蜂の私は搾取されるだけ、
ディランのALL ALONG THE WATCH TOWER 唄うだけ。
搾取の頂点に立つフジテレビ、強大な利権 お互いが足元すくい合う。
小室哲也の世界も・・・・・・・・
うん。 でも偉い人はそのアルゴリズムで俺好みなプラグインをなかなか作ってくれないんだよ。 だからありがたく成果を利用させてもらってるね。
236-238 NG指定でいいや
240 :
名無しサンプリング@48kHz :2008/11/13(木) 11:36:22 ID:Uz2Gi/eD
FM音源のVSTi作れる技術のある人いますかね? いたら、PC88SRのプリセット音色をそのまま持ってきてGM128音色揃えた マルチティンバーのVSTiを作ってくれませんか 88SRになかった音色やドラムの音色は適当に自作で。
>>240 VOPMがあるんだから自分で音色移植しる
>>241 じゃあVOPMに音色移植してくれ。頼む。
はい スレ違いですね
じゃあやっぱり新しくVSTi作ってください。
>>242 は
>>241 に歩み寄った結果として言ったこと。
本当は、とにかくGM音源互換のマルチティンバーのFM音源のVSTiがほしい。
VSCやTTS-1みたいなやつのFM音源版ね
次はここはレベルの低いスレですねとかかなー
C言語を1から勉強始めた! 絶対ソフトシンセ作れるようになってやるぜ!
おーがんばれー。ちょっと初心者に手荒な雰囲気のスレだけど 俺は応援してるぜ
ちょっと質問させてください。 VSTのgetTimeInfoについてなんですが。 samplePosに入ってくる値は本家のリファレンス読むと ・現在位置をサンプル単位で返す。 ・サイクルモードの場合はさかのぼるかもしんまい ・常に有効であるべき。 みたいな事が書いてあって。 SONAR7にテスト用のVST読ませて試してみたら、再生停止状態からルーラーで任意の位置クリックして 再生始めた場合、ちゃんと再生開始位置をサンプル単位で返してきてくれるのですが。 再生中にルーラーで任意の場所をクリックして再生位置変えたりするとsamplePosはひたすら加算され 続けるだけで移動した位置を返してくれません。 これってそういうものなんでしょうか。 それともSONARだけこういう実装になっているのでしょうか。 また、演奏位置(曲の頭からの時間)の取得はVSTから行う方法はありますでしょうか?
前にFLStudioの件で騒いだものです。 この手の実装はホストごとにどう解釈してるかわからないので地道に しらべあげるしかなさそうですよ。 あんまり使われなさそうなAPIなんか特に。 で結論はたぶんCubaseがデファクトスタンダードだからCubaseの動きに準じる となると思う。
>>249 レスありがとうございます。
やはり、そうなんですよねー。
私が現在持ってるDAWとしてはSONAR7、SONAR6LE、MusicStudioProducerなのですが、
MusicStudioに至ってはgetTimeInfoをコールした瞬間にホストが落ちましたw
海外のフォーラムなんかを覗くとSONARのVSTホスト部にはけっこう問題があるようで・・・
(getTimeInfoのバグレポートも発見しました、それはサイクルモードの件だったのですが)
これだとシーケンス情報をVST側にも持っていて、ホストと同期したいようなVSTは
SONARだと絶望的、とまではいかないけど、一旦停止してくださいね^^みたいな格好悪い
事になってしまうのですねw
まぁ出来なくはないので、引き続き開発してみようと思います。
ありがとうございました。
同期なら Rewireデバイス作らないといけないのかなあ。 あれなら安定してるし。 でも情報をどう入手したものやら。
オートメーションに対応するにはどうすればいいでしょうか? processReplacingに渡されるサンプル列に対応するDAW上の時間枠の中で そのVSTのパラメータに紐付けられたオートメーションの値が変化しており、 その変化に(可能ならサンプル単位で)追従して処理結果を変化させたいのです。
>>252 ふつーにパラメータの値を読み出せばOKですよ。
オートメーションの処理をするのはDAWで、プラグインの
仕事じゃないです。
ただ、サンプル単位で読む必要が本当に必要なのか
ちと疑問ですが……
サンプル単位っていっても×フレーム長なので まあいいんじゃないですか 単純にオートメーションの書き込み時にその値を保持しておくスカラ変数が内部にあれば リアルタイム部ではそれを読み出せばいいんちゃう? ちょっと考えるとどうしてもそういう構造になるし 基本的にリアルタイム部ではAPIは極力使うべきでないし(何故だかわかるよね) なるべく短時間に計算を終わらせる必要があるのはわかってるよね。
>>253 オートメーションの分割幅はホスト任せで、
プラグインとしてはprocessReplacingに渡されるバッファ単位で
処理していればOK、という理解でいいでしょうか?
254だけどおk だって時間単位がぜんぜん違うじゃん。 EGやLFOだってもっとゆっくりだよ
どもです。確かにサンプル単位は無茶でした。 EGについてはそもそもパラメータ変化自体がほとんどなくorゆっくりで、 制御は内部で過去のサンプルに時定数かまして、等々でしょうから オートメーション関係なさそうです。 ただ、例えばフィルタのカットオフを開けたり閉じたりする場合は、 少なくとも50ms未満の間隔で変化させないとフィルタの開き方が カクカクするので、そういう場合を考えています。 で、processReplacing内でモニタしたかぎり64k程度のバッファサイズで 渡されているので、この処理単位だと変化の激しいオートメーションに 追従できないんじゃないかと思った次第です。
1flame=100sample @44KHz ≒ 2.25ms としたら 遅すぎなくらいだね
1flame=100sampleというのはどこから?不勉強ですみません。
APIの立場が
>>255 (オートメーションの実値への分割幅はホスト任せ)で
あればそれに従うだけですから、一応は解決かなぁ…。
ありがとうございましたm(_ _)m
>>259 >1flame=100sample
は例え話でしょ。
逆にDAWのオートメーション値をプラグインから取得するのは困難
つーか、ふつー無理じゃないかなぁ?
いいプラグイン作ってくださいね ^^
261 :
253 :2008/11/24(月) 17:58:00 ID:W3aTdR+U
>>257 えーと、そういうやり方だと僕がびびってるのはAPI発行時のタイムラグなんだけどね。
オートメーション値をじかに読み出すAPIがあるかは
ちょっとさがさないといけないんだけど、仮にあるとして
その関数が返ってくるまでにスレッド間通信等で数ミリsの遅延が発生してというケース
ホストのスレッドの重さでまちまちの値だったらよくないことがおきると思うけどね
でProcessReplecing()ではさっと手持ちのパラメータで計算してさっと抜ける
別タイミングで動くスレッド(オートメーション書き込み下請け関数)ですべての準備を
おわらせてってのが一般的なプログラミングモデルと思うよ
すいません、レス被りました。 100sampleは私の勝手な推測でして 64kという実測値は知りませんでした。 この時間帯は私みたく適当な事を言う野次馬ばかりで 詳しい人は来てないみたいですね。 適当ついでにうろ覚えの知識ですが、 オートメーション情報は別のイベントやパケットで渡すんじゃなかったかなぁ
いま探してる所なんですけど mda Sourceforgeでググると 有名な mda のソースがあるから それ確認したら答がわかるのではないでしょうか。 mda は当然オートメーション対応してますし
皆様アドバイスありがとうございます。早速mda読んでみたいと思います。 すみません、そろそろMIXの休憩が終わるので今日は消えます…
setParameter(...)でバラメータ変更通知受けて変数に保存 ↓ GUI更新 (描画API使用) でまずいなら 自前でスレッド作ってGUIだけ定期更新 かなあ。
あ、ごめん mda のオープンソースは GUI 動いてないから参考にならないかも。 サクッと探した範囲では ndc Plugs のソース(C++)の方がいいかも。 - Win/Mac両対応だし、 - シンプルなエフェクトから複雑なシンセまで揃ってるし これ見ると オートメはDAWが勝手に Editor::valueChanged() を呼び出すから、その中で AudioEffect::setParameterAutomated() にパラメータの名前と値渡すと Editor::setParameter() が呼び出されて、そこでノブ表示更新 といった流れみたい。 携帯打ちなので読みにくかったらすんません m( ..)m
ID:BkP4IK3Lはいつもの彼? 一度でもVST Pluginを作ったことのある人間なら すでに問題は解決しているってことが分かると思うんだけどなぁ…
はぁ? 単なる言葉のついでにふぉろー入れただけですが、 きっとあなたには余計な一言に聞こえてしまうんですね。 休日もギスギスしてて可哀想な人だな(笑)
ID:RDV3WDtA[sage] > 逆にDAWのオートメーション値をプラグインから取得するのは困難 > つーか、ふつー無理じゃないかなぁ? w
ケンカするならもっと建設的にやれよ。 「よーしじゃオレのプラグインと勝負だ!」とか
それは無理じゃないですか? ID:RDV3WDtA 氏は知ったかぶってあやふやな事を言うスキルしかないようですし。
272 :
260 :2008/11/25(火) 01:34:50 ID:+eFMX1cL
>>269 >>271 なんか妙につっかかってくるのはナゼだ?w
>>260 のどのヘンが面白いのか教えてくれませんか?
俺にはスキルがないので分かりません。
ワロタ
オートメイションの実装自体がホスト依存だから、プラグイン側でタイミングうんぬんは 考えなくていいんじゃないかな。その為にprocess関連の入力バッファが可変になっている訳で。 可変させるパラメータの変化時間に応じてプラグインに渡すバッファを調整して、事前に パラメータの変更通知をすればよく、ホストはリアルタイムとオフラインで処理を一本化出来る。
いまだにVSTプラグインとかやってるやつって一体どういうやつだろう。 いまだに解像度128のMIDI規格でしか動作しないって頭の固い親父のつくっただけの VSTなだけあって使う奴も同じ価値観を持つのだろう。
というわけでID:BkP4IK3Lはいつもの人、あるいは同類だったわけね。
プラグインを作ろうと頑張っている人を、
でたらめな情報で惑わすのはどうかと思うよ?
スキルのある人なら、情報の取捨選択もできるだろうけどさ…
>>274 さんの書き込みが正解っすー
>>274 さん、コンパクトで判りやすい解説ありがとうございます。
>>ID:+eFMX1cL
トラブルメーカ本人乙
> でたらめな情報で惑わすのはどうかと思うよ?
w
トラブル起こすだけで 自分からは充分な情報提供しない子は 今後はROMっといてね。
下級プログラマによく居るタイプだな。 自分では詳しい説明をできず「普通にやっとけばうまくいく」としか言えないんだけど 後で他の人が正しい説明をすると、とたんに最初から判っていたフリをして「正解です」 とか言い出すタイプ。 その正しい説明、詳しい理解が欲しいから議論を試みるわけで 「プラグイン側から(タイムフレーム等渡して特定タイミングの)パラメータは取得できない」 みたいな当たり前だけど正解に結びつかない話をしてくるのがずれていると思った。
前スレ見て大体の事情を察した
荒れ始めたのは今年の5月から。 それまでは良スレだったんだけど
前スレが微妙な荒れ方してDAT落ちした件
そして作者が一人もいなくなったんだね
285 :
名無しサンプリング@48kHz :2008/11/30(日) 22:47:31 ID:UQ55SHoB
じゃこの辺でそろそろそろ開発の話をはじめようぜ
これから VST 開発始めるにあたって、VC++ で作るとして VS 2005 と VS 2008 のどちらを選択するべき? 2005 のが使い古されてて情報が集めやすそうなので、 とりあえず 2005 でやってみるけど。 まずはソース漁りからだなー
>>286 VS2005でいいと思うよ。いまのところは。ただサービスパックは全部当ててね
>>287 早速インスコしてます。Vista なんで、Vista 用の SP も必要なようです
Vista ってだけでいらぬ苦労がこれからも増えそうです、、、負けねぇ
>386 VST 2.4で開発ならVS2005 VST 3.0で開発ならVS2008が良いと思う。 VST 2.4のソースをVS2008コンパイルするとあちこち手直ししないと警告の山になったような気がする。 VST 3.0はすんなりコンパイルできたんじゃないかな。 半年くらい前の記憶なので間違っているかもしれないけど。
290 :
名無しサンプリング@48kHz :2008/12/04(木) 03:13:50 ID:uBab2gyX
Ableton Live あとはサンプリング技術を磨いて大沢さんが使ってるソフトシンセの情報をひたすらかき集めていけばおk
自分でシンセ作りたいって話じゃなかったのか…
知ってる
>>294 死んだらいいんじゃない?293じゃないが。
?
どう見ても293ですw
人に物を頼む時のマナーを知らず 自分の意志をスルーされると癇癪を起こすいつもの子でしょ。放置
あ あ あ
貴殿の深層心理の悲鳴、しかと聞き届けた
305 :
名無しサンプリング@48kHz :2008/12/28(日) 10:25:09 ID:w/q74whc
>>304 いやいや、かなりいい情報ありがとう。
git使うのに手こずったがかなり有用な情報ですよ。
それがどうした?
たぶんトラ技が7、80年代から継続的にデジタル信号処理の記事を載せてるのを知らない素人さんなんだろう。
>>306 コンパイルはできても、
ソースのバージョンの違いすら気付かないのか?
謎
>>310 さん
おっしゃるとおり、1.45で、ソースは1.16でした。
全然気づかなかった。。。orz
ご指摘ありがとうございます。
1.45はソース公開してないんですね。
残念。JUCEを参考に作るか・・・
312 :
名無しサンプリング@48kHz :2009/01/12(月) 10:04:05 ID:rfYCMEE8
あげおめ
今作ってる音源を、VST instrumentsにしてしまいたいんですが VST SDKって3.0つかってしまってもいいものなんでしょうか? 3.0はまだ対応してる host少ないとかいうトラップは少し恐いのです。
314 :
名無しサンプリング@48kHz :2009/01/16(金) 17:49:35 ID:9FSIHid7
>>313 「Cubaseで動けば問題ない」のであれば3.0。そうでなければ2.x。
316 :
名無しサンプリング@48kHz :2009/01/17(土) 01:24:14 ID:063WFnmM
VC++ 2005 Express editonとmicrosoft platform SDK for windows なるものは入れて、ウィンドウズアプリケーションのコンパイルは出来るっぽいんだ。 でも.dllを作りたいはずで サンプルにあるようなagain.hとかagain.cpp単体でコンパイルするんじゃないと思うんだ。 構造的に、ある程度まとまってるようなプロジェクトをコンパイルするんだよね? ここでどれなのかわかんねぇ。 makefileとか使う?ヘルプミー
317 :
名無しサンプリング@48kHz :2009/01/17(土) 01:56:26 ID:063WFnmM
あれ。sln? 前に一回2008入れててこのファイル開いたときに変換されてたっぽ。 2005入れなおしてから、もう一回steinbergへ行って落としたらおkでぃした。 まっこと申し訳ねぇでござる
>>317 無事解決したもより。良かったでござる^^
delivery systemって何?
320 :
313 :2009/01/19(月) 16:01:17 ID:O1dUqlQW
>>315 thx. おとなしく2.xにしておく。
まだはやいみたいだね。
なんか3.0はプログラミングモデルが複雑ぽ…… 正直取っつきづらい。サイドチェイン使いたくなったら 有無を言わず勉強するけど、いまのところ2.xでいいやって思ってる
322 :
名無しサンプリング@48kHz :2009/01/31(土) 14:03:41 ID:dSZoMzYI
いっぱいクラスがありすぎて、 機能だけ書かれても どういじったらいいのか、どう繋がってるのか わけわかんないぜ?
わけわかるようにクラスが設計されて それぞれに機能が書かれているんだが… あせらずじっくり取り組むといいとおもーよ?
>>323 プラグインに限らないんだが
新しいフレームワーククラスの習得ってのは最初の1ヶ月はもがき苦しむなあ俺は。
で作っている間はちゃんと仕事できるまで覚えるんだけど、端からどんどん忘れているんだよなあ。
MFCとかXtToolKitとかQuickDrawとかボーランドものとか
で覚える毎に勘みたいなものが養われるっかていうとぜんぜんそうでなくて
新しい概念に降り回されて。
チラ裏スマン
>>324 典型的なフレームワーク学習コスト地獄ですな
例えばオブジェクト指向設計原則みたいな、さらに根底にある原理とか、
デザインパターンみたいな良くある設計を調べることを勧めます
>例えばオブジェクト指向設計原則みたいな、さらに根底にある原理とか、 >デザインパターンみたいな良くある設計を調べることを勧めます なんだいつもプログラミング板で暴れてたキチガイがこんな所にも来てたのか さっさと地獄に堕ちろよ ニートちゃん
UMTPの書籍で、某社の改善事例が出てたね。 クライアントもコンサルも業界ビッグネーム。 シュリュツは成功した だが患者たんは・・・なのさ
steinbergのvstsdkは、クラス名のつけ方がなんか紛らわしいかなー。 そんなに複雑なクラス設計ではないと思うけど、名前に惑わされる。
サンプルに入ってるのとぜんぜん違うような形式のとかあるんだけど 五年とか十年前は、今の形式でかいちゃいなかったの? コンパイルっぽいのしようとしたらすごい勢いでエラーがでたぜ・ GUIいじりたかったら本体に入ってるクラス一覧のGUIのところとにらめっこがいいのかな?
>>329 vst2.xとvst3は全然違うし、vst2.xの中でもいろいろ変更はある。
2.3と2.4は大胆に切り捨てもあったんでSDKは今でも両方配ってるでしょ。
あと、想定してるコンパイラも違うかもしれん。
何のサンプル見てるかわからんので適当にエスパーしてみた。
GUIの変更の仕方 誰か詳しく教えてくれまえんか?
教えてあげるよ。どこで悩んでいるんだい?
>>333 VST3.0の話でしょ
>>324 受身でユーザに徹っしていては
フレームワークの深い理解は難しい。
(1)自身でアプリ/ライブラリ開発の経験を積んで
・ ある分野のアプリで汎用に使える部分
・ ある種のアプリで汎用に使える部分
・ プラットフォーム依存部と非依存部の切り分け
等できるようになり、
(2)更に
・ 「こういう種類のコーディングやアプリ開発を定型化したい」
・ 「こう書ければ素晴らしい」というサンプルコード
からライブラリやフレームワークを作ってみると
(3)フレームワーク開発者視点で
各フレームワークのメリット/デメリットや完成度、トレードオフ等が判るようになり
自分のアプリ/ライブラリ/フレームワーク開発で
他の人のフレームワークを利用するメリットが理解できるようになる。
フレームワークを
自身もフレームワークを開発して開発側に身
orz 最後2行は余計だから無視して
結局それ325やんか
違う。
フレームワークなどやっているうちは シュタインベルグの手のひらのうえで踊らされてるだけと気づけよ。 営利目的に利用されて搾取されていることに早く気づけということだ。 いまはVSTでなくても変わりになるようなものはいくらでもある。 まあ、スキルはいるがお前らには無理だろう、おこちゃまだからな。
>>338 VSTの代わりになるものって何だ? DXiかwww
DXiはライセンスがマイクロソフトでつかえるわけないだろ。 営利団体のソフトは使わないのは常識。
>>338 がその「代わりになるようなもの」を提示してくれればいいんじゃね?
>>340 お前の常識が非常識だってのはよくわかった。
車輪の再発明を避けるのは、プログラマの常識だ。
バカが必死に釣りする展開くだらねぇ
営利目的だとか搾取だとかなんでこんな必死に言う奴がいるんだろ どんなけ僻み根性なんだ 山奥で自給自足生活でもしてこいや
シュタインベルグはホストアプリケーションを売るために、 VSTの仕様をキューベースのバージョンアップで作り変えている。 それに躍らせられてVSTで開発する奴はアホ 製作会社が金儲けのために作るならわかるが、 個人が自分からVSTを作るなんてアホとしか言いようがない。
>>345 他社も取り入れてるオープンな規格なのに何言ってんだ?
規格はシュタインベルグによって勝手に改変されてしまう。 しかもオープンソースじゃないから、バグがあっても直すことも出来ない。
開発して無い人はここ見ないほうがいいよ?
最近開発に手をつけ始めたんだが、Vista x64でVS2008でVST2.4のプラグインを自作しようとしているんだが上手くいかない。 まず手始めにagainのクローンを作ってみたがうまくDAW側で認識してくれない。 againはちゃんとSONAR8で認識するんだがなあ…。
俺が最初にやったのと同じミスをしているとすれば vstplug.def を忘れてる
リンカのモジュール定義のところだよね? 一応指定してはあるんだよなぁ・・・。 コンパイルオプションとか見てもいまいち分からない。 againをスケルトンにして作ったほうがいいのかもしれないな・・・。
まあ、C/C++とかリンカの「コマンドライン」のところをどっかにコピペして、 againと自分ので比較してみたら? 同じオプションで作っているなら、プログラムか定義ファイルの中身の問題。
350, 352です。 おかげさまで無事認識できるようになりました。 原因はやっぱりリンカのコマンドが異なっていたことが原因でした。 VB系やらC#、Javaは良く使っているんだが、 C++はあんまりやってなかったのでこういうところで色々躓くとは思っても見なかったよ。 351,353の方はありがとうございました。 おし、頑張ってプラグイン書くぞ。
>>354 C++だと、そんなことまで自分でやらなければならないの?
ってことが多い(特にメモリ管理)ので、メモリリークなんかにゃ
気をつけて。
>おし、頑張ってプラグイン書くぞ。
がんばれー!^^
QtのGNU LGPL版使っている人いるのかなあ ただの好奇心なんだけどさ そもそもこれでVSTができるのかは知らない・・・ OSにこだわらなければ、VisualStudioだけでできるしな
VSTじゃないからあれだが、HydrogenはQt製らしいんだよな
スレッド処理さえ自前でなんとかできればたいていのフレームワークは移植できる気がする と、JUCEやVSTGUI読んでそんな気になった。がすげえめんどくさそう。
外見だけ気にして中身が空っぽのソフトが溢れているのは シュタインベルグの糞フレームワークの仕様のせい、 売るためにした作らない企業向けに作られた仕様だから 素人が手をだしても時間を無駄にするだけ。 残念だがVSTなど作っているひとにまともな人はほとんど居ない。 いますぐ、オープンソースソフトウェアのプラグインの開発に取り掛かることを期待するよ。 ではノシ
全く同じバイナリ・設定なのに、DAWホストによって負荷が変わる。 シングルスレッドでFFTベースのEQみたいなプラグイン、デュアルコア環境なんだけど、 SONAR7 両CPUとも60%くらい (単精度・倍精度とも) Sampitude8 片方20%くらい、もう片方はほぼゼロ なぜだ……orz
そりゃそうだろ、 他のメーカーのDAWでVSTプラグインがちゃんと動いてしまっては、 シュタインベルグのDAWを買おうとは思わなくなってしまうだろ。 だから商用ソフトウエアを使うのは止めるのを進めているのだよ。
切り分けということでprocessReplacingを空にしたVSTプラグインを作成。 これだと全く変化ないので、VST Adapterの線はなさそう。うーん…
>>360 DAWによって負荷が変わるよ。むしろ当たり前と考えがほうがいいかも。
その現象だけから推測すると、Sonarは全サンプルをVSTプラグインに
送るのに対し、Samplitudeは負荷を軽減する処理(わからんけど無音スキップとか?)が
入っている感じ。
そこに悩むより、本体の作成を進めたほうがいいかも……
がんばってね。
>>363 コメントありがとうございます。(すべて音有りの部分なので、無音スキップではなさそうです。)
SONARだとマルチプロセッシング有効→両コア60%、マルチプロセッシング無効→片コア60%
という状況でして、何か余分な処理をしつつ両コアに同じ処理を割り当てているような…。
これだけ不可解な現象だと、今は環境依存と割り切って進めてしまったほうが良さそうですね。
ホスト側からの画面再描画の更新間隔が激しいと負荷が上がるよ
スレの前の方でgdgdやってたmingwなんだが、 昔作ったvst (vstsdk2.4) をコンパイルしてみたら何の問題もなく使えた。 まあ、VC++がタダで使えるのに、あえて違うもの使う必要もないんだが、 あまりにもあっさり使えたので一応報告。
乙。 ただ、よほどのマゾでもない限りその(ry
eclipseがあるのに未だにVC++なんか使ってる奴はアホ
370 :
名無しサンプリング@48kHz :2009/04/22(水) 14:42:35 ID:GfrgpHcb
Mac版で試してますが、PluginTestHostにて、サンプルのプラグイン(again.vst3)を認識してくれません。 どうすればいいのでしょうか? again.vst3は、PluginTestHostの隣にコピーしてあります。
VSTプラグイン開発にはかなり興味があるし、 時間と強い理由ができたらいつでもやりたいとずっと思っているんだが、 たとえば打ち込みや曲作りに関して、なにかちょっと複雑だったりニッチだったりすることをやりたかったり もしくは既存のフリー/商用のプラグインではちょっと何かが足りなかったり 余計なものがついてて使いにくかったり、インターフェイスがひどかったり、 そういうときでも、大抵、ReaktorかSynthEditかSynthMakerかMax/MSPで ちょちょいと数十分で簡単に自分好みのシンセやエフェクター組めちゃうし、 用が足りてしまうんだよなあ。 どうしてもわざわざプログラミングして作る、ってところまでいかない。 どうしたもんかねぇ。 プラグインはみんなあんまり作らないのもなんかわかるなあ。 実現したいモノの割にやたらに面倒だもの。割に合わない。 synthmakerならDSPプログラミングの領域まで踏み込めるしねぇ 簡単なDAWなら以前作ったことがあるしそっちは楽しかった。 でも、いざ自分でフリーウェア/シェアウェアをダウンロードするとき SynthEdit製やSynthMaker製だと、なんだよーダセェなあ、とか思う自分も居るw
>>370 自己フォロー
/Library/Audio/Plug-Ins/VST3 というフォルダを作って、そこに入れれば認識するんですね。
SynthEditのスレが無いみたいなんで初心者の俺がここで質問してもいいですか… VSTエフェクトで、ボーカルにかけると双子がmumっぽく歌ってるように聞こえるディレイを作りたいんだが、 感覚的には元音とディレイ音がたまに微妙にズレるって感じが理想的なんだが、制御の仕方がおもいつかん。 無意味にディレイ側にリングモジュレータ挟むとかよくわからんことしてみたが全然だめだった。 知恵をお貸しいただけないだろうか
>>373 せめてどんな音かわかるようなYouTubeの動画とかを貼ろうよ。
音がわからないと、ディレイ・タイムになにか加えるぐらいしか言えない。
今作っている稚拙なVSTiを公開してみようかと思うのですが、
>>164 >>166 が気になります。
どなたか教えていただけませんか?
シュタインベルグにとって恐ろしいのは ネット上を糞VSTiだらけにして優良VSTiを見つけにくくすることだ だから糞VSTiをネットに公開することはとてもいいことだから無許可でどんどんしろ。
378 :
373 :2009/04/24(金) 19:23:31 ID:St5Vo+sH
ID変わっちゃった。377=373です
>>375 ドキュメントのsetUniqueID()を参照。VSTプラグインは識別用のuniqueなIDを
持つ必要がある。ただ、規格としてはMandatoryだけど、無視してDLL名だけで
管理してるホストも多い。本家CubaseもSX3までは適当だった。
ただCubase4以降は重複チェックが厳しくなってる。
個人利用だけなら自己責任で適当でもいけど、公開するなら注意。
SteinbergサイトにID登録&データベースページが一応あるんだけど、場所が
チョー判りづらいんよね。このへんはSteinbergがやる気だしてくれないと。
>>375 サンプラーかな?
IDに関しては取得しておくことに越したことはない、としか。
申請するだけだからね。
おっと、
>>377 見て混乱したわw
>>373 これなら、時間とピッチを不規則に揺らがせればいいじゃん。
>>381 sin波重ね合わせです。
sinは(後退?)オイラー法で計算してます。
需要がありそうなら公開してみようかなぁっと思っています。
テスト環境が貧弱(Cubase持ってない)だったりしますので、
前途多難ですが。
383 :
382 :2009/04/24(金) 20:27:42 ID:djr0KE/N
すみません、アンカー間違えました
381ではなくて
>>380 です
>>377 ディレイじゃないじゃん。ま、ディレイでやるならディレイタイムを超低周波で変えてみるとかだろうな。
>>382 Cubaseで動けばVSTiとしてはOKだと思いますよ。
他の環境は他のテスターさんに協力してもらえばいいし。
需要の有無より、公開したいかどうかが優先されるべきかも。
386 :
382 :2009/04/25(土) 06:33:26 ID:Q1DHwJ+N
>>385 その肝心のCubaseを持ってないんです。
>>379 ご丁寧にありがとう御座います、遅レスすみません。
今Steinbergのサイトみてみたのですが
みつからないorz
389 :
373 :2009/04/25(土) 17:37:42 ID:t52HQ1GI
みんなありがとう。 結局syntheditで時間を揺らがせる方法とかわかんなくて、なんとかディレイでがんばってみたものの、 書き出した試作品がDAWで認識しないとかよくわからないことになって頓挫しました… 初心者には厚い壁だったorz
>>389 syntheditで作ったvstで弾かれた事はないな
ホストによってエラーで落ちてしまうvstはあるけど
それと時間を揺らす?のは思い浮かばないけど
単純にかなりタイムの短いディレイのタイムを乱数モジュールじゃダメかね?
更にグラニューモジュールでピッチも微妙に揺らすとか?
392 :
373 :2009/04/25(土) 22:30:32 ID:A7PBxY52
SteinbergのサイトでVSTのSDK落とせなくね・・・? 404になってしまう。
>>395 初出情報だよ、d
へー、サンプラーのオープンソースは珍しいかも。
VSTプラグインを作りたい、という欲求に取り憑かれました。 プログラム経験はWindows95の時代に Delphi3でAudioMixerやDirectSoundを使った ごく簡単な音楽ツールを作ったことがあるだけで ブランクが長いのでほとんど忘れてしまってます。 あとはiアプリの簡単なゲームを作ったくらい。 選択肢として 以前慣れ親しんだDelphi 公式SDKが前提としてるC があるのですが、どちらがいいでしょうかねえ。 本職でプログラマになるつもりがあれば 問答無用でCなのかもしれませんが、 VSTプラグインさえ作れればそれでよくて Delphiの経験を活かせるならそうしたいところです。 以前買いあさったDelphiのリファレンス本もありますし。 新たにCの参考書を買い足すのはできれば避けたいところなんですね。 不安なのはネット上での日本語での情報量。 ましてVSTなんて英語ですら情報が少ない気がしますし それもDelphiで、ってなると絶望的な予感もしています。 みなさんはどちらがおすすめでしょうか。 よろしくお導きくださいませ。
>>397 MSPみたいにバギーでいいんでもなければDelphiはありえない。Delphi自体のバグだから回避方法はない。
Cのインターフェースで書かれたVSTSDKをリンクしてDLLにできれば Delphiでも出来んことはないと思うが、そんなめんどくさい車輪を発明 するパワーがあればC/C++覚えたほうが楽なような気がします正直。 なんかMinGWがいいって小僧のときも思ったんだけどもっと調査してください。 中身作るよりも道具作るほうがものすごく大変ってケースが多いので。
402 :
397 :2009/05/21(木) 11:11:06 ID:ZDE8C5PC
あうDelphi SDKの存在を知った上での
>>397 のご相談だったんですよー
この流れだとSDKがあるなら迷う必要なくね?な感じっぽいですね
でもいまのところこのスレにはDelphiでやってる人いないですよね?
何人かは仲間いるかなと淡い期待を抱いてたのですが甘かったか…orz
覚悟決めて孤軍奮闘してきます。骨は拾ってくださいw
FL StudioとかSytrusはDelphiって聞いたけど。
そのおかげで64bit化もunicode化もできないらしい > FL Studio
それは今後やばいな 新規に移植したら相当な期間かかるだろ
>>405 Delphi 2009 はフル Unicode 化されたから、できないのは単なる怠慢
64bit 化は・・・ロードマップどおりなら2年お待ちくださいの世界だな(苦笑
>>407 2年も待ったらDelphiの所有会社名が変わってそうで怖いな
ボーランド(1983〜2006)→コードギア(2006〜2008)→エンバカデロ(2008〜) もうImage-LineがDelphi作れば良いよ
>>409 Inprise が抜けてる
1998-2001 ね
411 :
名無しサンプリング@48kHz :2009/07/15(水) 17:07:13 ID:N034nOr8
sendVstEventsToHost()で、MiDiに送って音を鳴らせるけど、 カスタムGUIをトリガにしてコールしても音が出ない。 何故か判りますか?
ホストは対応してる? こうゆうときはCONSOLEみたいなものがわかりやすいんだが
じつはDirectXプラグインの方が作りやすかったりする?
作りやすさの印象は個人的に VST2 > VST3 >= DirectX 。 COMを理解してればDirectXも悪くないが、うちはCubaseなんでVSTしか扱わない。 VST3も悪くないけどちょっとややこしい。クラスはよく設計されてるとは思う。
416 :
名無しサンプリング@48kHz :2009/08/29(土) 13:11:09 ID:nLh/PMDV
上げとこうか
ASIOのSDKもダウンロードできますが、 単にVSTiなどを作る場合には必要ありませんよね?
フレンドパークの自転車の空気入れみたいなゲームをやるときの気持ちであげ
419 :
名無しサンプリング@48kHz :2009/09/05(土) 16:49:59 ID:TsTYO+iD
よくわからんけど俺も一押ししとく
420 :
名無しサンプリング@48kHz :2009/09/25(金) 23:01:54 ID:Jc9N3Fti
俺たちは今までも開発してきたし、これからも開発し続ける 開発に終着点は無く、開発が終わる事は決して無いのだ Plugins Development 3.0
頭大丈夫か?w
単なる保守だよ ついでに上げただけ
なんの最終回かと思った
いいから何か作ろうぜ
425 :
名無しサンプリング@48kHz :2009/09/29(火) 01:00:48 ID:wqpojtHs
プラグインから読み込む外部ファイルのパスをプロジェクト単位で記憶したいのですが。。 どんな手がありますか? レジストリいじくるしかないのかな、、
FXB/FXPは中自由定義だから「外部ファイルパス名」の文字列だけを書いておいて 2段式でファイルを読み込むくらいしか思いつかない。
あ、parameterだけじゃなくて、getChunk/setChunkってのもありますね。 これがfxb/fxpに保存される感じ?? 斜め読みでよく把握してないけどVstPatchChunkInfoとかと関連するのかなぁ。 これならいけそうな肝してきた。
1からVSTプログラミングを勉強するにあたって良い書籍とかありますか? 入出力をVSTの枠で作って、その枠の中で非VSTでもやるようなサウンドの処理をすればいいのかな
>>429 ありがとうございます
ソース読んだりして勉強していきます
まとめWIKI作ってもはやらないかな 国内のドキュメントの少なさからVSTプログラミング初心者にはつらいかと思う 自分も初心者で日本語ドキュメントとかが見つからなかった手のもあるんだけどねw せめてSDKのまとめだけでも作れば役に立つと思う
>>431 あれば便利だと思うよ。
時間があるときには、多少手伝えるかも。
途中送信してしまった じゃあ作ってみる 自分はあまり知識がないので、SDK入手や海外のドキュメントのまとめくらしかできないけど 枠組みとか、なにを載せてなにをのせないかくらいの管理などはできるから作ったらここに載せるね
とりあえず作ったよ
私も積極的に編集していくので、みなさんもよろしくお願いいたします。
今日は時間があるので開発環境についてでも作ろうと思っています。
SDKで定義されているクラスとかは私自身まだ理解していないので助けてもらえるとうれしいです。
http://www20.atwiki.jp/vstdev/
ちょっとスレ違いかもしれないが、C#のプログラムからVSTiを呼び出して音を鳴らしたい。 何か参考になるコードとかライブラリある?
dllのエクスポート関数呼び出して、 返ってきた値をVSTiクラスポインタにキャストして必要な関数呼ぶだけ
一件新規作成してみた。適当に改変頼む
>>438 どもー
取り上げているブログやサイトが複数あることから、需要はあると思いますのでみなさnよろしくお願いします。
SDKのagainにGUIをつけようと、surrounddelayを見て考えたんですがわかりません。 助けていただけませんか?おねがいします。
ほす
443 :
名無しサンプリング@48kHz :2009/12/20(日) 00:34:41 ID:dnQYOCvR
あげてみるか
むずいよー
445 :
sage :2009/12/27(日) 20:27:09 ID:OFDIR4vN
最近作ってますかー?
久々だからミスった。E-mailに書くんだっけ。。。
つくってるよ
VST製作wikiってないよね 需要なさすぎるかな?
少し上のレスもみてなかった すみません
確か、かなり前に誰かが作っていたはず、と思ったが、 スクロールしたらほんとにちょっと前だった。人いないんだな。
SDKが落とせませんがSONARユーザーな俺への嫌がらせか何かでぃすか
453 :
名無しサンプリング@48kHz :2010/01/12(火) 20:21:07 ID:qDNXSh6t
vstxsynthをモノフォニックに対応させるにはどうしたらいいんぞ?
登録して何度落とそうとしても404が出るんだが
2.4も3.0も普通に落とせたが。
ブラウザ変えたらやっと落ちてきたよ
>>221 だったみたいね
d
それにしても人のいないスレだ
まあいるけどな ところで、次からスレタイをVSTだけじゃなくプラグイン全般にしようぜ AUとかあるしな VSTをとってPlugins Development 4.0だ どうだろ
459 :
名無しサンプリング@48kHz :2010/01/17(日) 02:48:35 ID:OjxD/m/s
次スレ立つのは2013年頃だけどな・・・
それまで落ちなきゃ、それでいいさ。 しかし、ver.とかRev.とかプログラムっぽい ナンバリングにしてほしかったな。
和音弾きたい!ポリにしたい!
462 :
451 :2010/01/23(土) 17:38:27 ID:c7X0Ghku
プラグインだとわざわざVer.付けてる奴ってあんま見ないじゃん
妙なところで議論が始まったww
465 :
名無しサンプリング@48kHz :2010/01/24(日) 13:27:18 ID:UfJflzEw
wiki管理者です。 メンバーのかたが増えたりしています。 他力本願な管理者ですが、暇を見つけては自分なりにテキストを追加していきますのでよろしくお願いします。
俺vstで絞り込んでここに辿り着いた vstは消すべきではないと思うんだが
467 :
名無しサンプリング@48kHz :2010/01/25(月) 21:17:48 ID:DSvHLG/5
シンセ作りたくても、開発に関する日本語ソースが少なすぎる・・・
VSTSDKのvstxsynthをポリフォニックで鳴らせるようにしたいでござる
自分で楽器をサンプリングしてそれをVSTで鳴らす感じのものを作りたいのですが やっぱりVST自作は音響学や波動知らないと厳しいですかね? そうならそこから勉強しなおしだなぁ、C++はまあそこそこ書けると思っているんだけど・・・波動とか完全に忘れた
それならkontaktとかサンプラー使ってライブラリ作ったほうが早い
いやーそっちのが賢いのはわかるんですが 実用的とかは別の話でただ単にVSTを作ってみたいという自己満足の部分がデカイのでwww
vstxsynthをポリ・・・
ポリンキー?
ココは一発、こんなの作ったぜー!とか誰かやってくれたらモチベーションあがるかもね。 と考えたが、神はいなさそうなので、みんなでソースフォージとかで共同開発してみるってのはどう? EQとかリバーブとか簡単そうなやつから作って、2CHパッケージみたいにするとか。 夢かな? シンプルに作って改造しやすくしたら、そっから開発者が増えて情報ウハウハとか・・・
それこそmda読んで自分で作ればいい話かと
。 。゚ \ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (( ∩(´∀` ) < 鬼はソトォ〜〜 ゝ l工l⊂ ) \__________ ( ( ( (_(__) 。 ゚ 。 ∧_∧ / ( ´∀`)∩ )) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( つl工l ノ < 福はウチィ〜〜 ) ) ) \__________ (__)_)
そうだね。あんまり夢追っかけてもしゃーないな。。。 しこしこばんばる!!
479 :
名無しサンプリング@48kHz :2010/02/03(水) 23:09:43 ID:bId1iFw3
480 :
名無しサンプリング@48kHz :2010/02/03(水) 23:23:16 ID:bId1iFw3
開発環境は整っているか? VC++ が必要だ。Express Editionでもいけるはずだ vstsdk2.4\public.sdk\samples\vst2.x\again\win にあるagain.slnを開いてみろ これが一番簡単なサンプルだ。 とりあえずそのままビルドするとreleaseディレクトリにagain.dllができているはずだ。 それを自分のDAWのvstpluginsディレクトリに放り込んで動作を確認するのだ。 動いたか? GUIもないパラメータ1個だけの素っ気無い奴だが、音量の制御が できるはずだ。
動作が確認できたらソースをチェックだ。 肝の部分はagain.cppにある。 processReplacing()とprocessDoubleReplacing()だ。 vst2.3まで(だったかな)はfloatしか扱えなかったが今はdoubleでもデータを扱えるように なっているので関数が2つある。でも平行して作っていくのは面倒なので、 取りあえず最初はfloatを扱う processReplacing()だけでいいぞ。 again.cppの最初の方にあるAGain::AGain()で canDoubleReplacing()っていうのが 呼ばれているな。これをコメントアウトしてしまえばdoubleの処理は必要なくなるぞ。
processReplacing()の中に (*out1++) = (*in1++) * fGain; (*out2++) = (*in2++) * fGain; ていうのがあるな。これが音量を制御している部分だ。 2行あるのはL/Rの2chという意味だぞ。 信号は -1.0から+1.0の範囲だ。 fGainは音量のパラメータでこれは0.0から1.0まで変化するぞ。
すごい・・・ネ申だ・・・
いや別に普通だろ 基本中の基本
485 :
名無しサンプリング@48kHz :2010/02/04(木) 00:19:25 ID:wz/87K9w
じゃあビットクラッシャーでも作ってみるか。なんでビットクラッシャーかというと バッファ処理せんでいいから簡単なのだ。 例の2行をこんな感じにしてDoEffect()にまとめる。 (*out1++) = DoEffect(*in1++,fGain); (*out2++) = DoEffect(*in2++,fGain); fGainは使い回しだ。真面目に作る人はちゃんとクラスのメソドにしてくれ。 でDoEffect()は float DoEffect(float x,float fGain) { float fStep; if(fGain==1.f) return x; fStep=fGain*64.f+1.f; return (float)((int)(x*fStep))/fStep; } こんなんでどうだ? ビットクラッシャーと言っても2のn乗じゃなくてもいい。階段状にするだけだ。 fStepがステップの数だ。fGainが0-1なのでfStepは1-65になる。 ただしfGainを振り切っている65なら原音のまま戻してみる。 単に入力をステップの数でかけて整数化して元のレベルにもどしているだけだ。 これでビルドして試してみてくれ。Gainを小さくするとビット数が下がる。目一杯 にすると原音のままだ。 できたか?
乙 俺自身は普通にVST作って公開までしてるんであんまり役に立たないが、 教材としては効果も分かりやすいし良いと思う
>>486 ノシ
そういえばパラメータの表示がGainでdB表示のままだな
again.cppの中にAGain::getParameterName()てのがある。
ここでパラメータの名前が決まる。
vst_strncpy (label, "Bits", kVstMaxParamStrLen); て書き換えちゃえ
ちょい下にAGain::getParameterLabel()てのがあるな。これが単位(dB)だ。
これも書き換えちゃえ
vst_strncpy (label, "bits", kVstMaxParamStrLen); だ
肝心の数値の表示はAGain::getParameterDisplay()で決まる。
fGain 0.0〜1.0に対してfStepで使った式 fGain*64.f+1.f ステップになるぞ。
これをビット数に直すのだ。
void AGain::getParameterDisplay (VstInt32 index, char* text)
{
float fStep=fGain*64.f+1.f;
if(fGain==1.0)
strcpy(text,"--");
else
sprintf(text,"%f",log10f(fStep)/log10f(2.f));
}
logとか使ってるから<math.h>のインクルード忘れずにな。あ、<stdio.h>もいるかな。
fGainが振り切ってる時は "--"表示にしてる。
でなければ、log10f(fStep)/log10f(2.f)、つまり2を底とした対数だな。数学覚えてるか?
これでbits表示になるぞ。多少誤差あるけどな。
エフェクトの名前がagainのままだったな 同じくagain.cpp内の AGain::getEffectName()とか AGain::getProductString()とか AGain::getVendorString()とかを好きなように書き換えてみれ。 何? 名前が変わらん? そりゃ、ファイル名がagain.dllのままだからな。 DAWによって何処から名前を取っているか違うかも知れんがな。 Cubaseだと表示されるエフェクト名はファイル名だと思うぞ。 プロジェクトのプロパティで取りあえず出力ファイル名をBitCrusher.dllにでも したらどうだ? DAWによるが、ファイル名変えたらDAWのプラグイン情報とかは再スキャン した方がいいかも知れんぞ。
489 :
名無しサンプリング@48kHz :2010/02/04(木) 01:37:12 ID:wz/87K9w
何か面白いものが出来たら誰かに使ってみてもらうかぁ!! て前にだ。
AGain::AGain()の中に、setUniqueID ('Gain');てのがあるな。これがVSTのユニークIDだ。
全てのプラグインでユニークな値を持つ必要があるIDだ。みんなが'Gain'てIDのプラグイン
を作ったら困った事になる。まあ、最近のDAWだとIDがぶつかってても大丈夫だったりする
らしいけど、ものによっては動かんかも知れん。
作法に則ってユニークIDを付けるのだ!!
でどうやって?
適当に付けたらぶつかるかも知れんじゃないか。
て事でここに行くのだ。
http://ygrabit.steinberg.de/~ygrabit/public_html/index.html なんだこの怪しいページは・・・と言ってはいかん。
VST開発の責任者な人のページであるぞ。
真ん中あたりに「Register a VST Audio Plug-In ID 」てのがあるはずだ。
ここで登録して4文字のIDをゲットだ!
正直なんでこんな所にあるのかわからんし、現在もちゃんとIDのデータベースとして
機能してるのか疑問が無くもないが、まあ、ここが正式なはずだ。
ここで取得したID文字列をsetUniqueID()に渡すのだ。
あ、ID変えたらDAWのプラグイン情報の再スキャンを忘れずにな!
先生 UniqueID 周りがよくわかりません! 英語苦手なんで自分の理解があってるのかわからんというか・・・ みんなちゃんと登録してるの?
うお リロードすりゃよかったw
うは、なんというタイミング。これでわかるのだろうか
よくわかったよ、ありがとう先生! 1回登録したけど、なんかメンテしてなさそうな怪しいとこで不安だったんだよね #なんとなく文体があの人っぽいけどそうなんかな
>>490 もちろん、ちゃんと登録した。
手続き簡単だし、それにタダだしなー
いきなり盛り上がってきたな
さて、パラメータ増やしてみるか さすがに1つだけだと寂しいしな。 パラメータの数がどこで決まるかというと、 AGain::AGain()の所だな。AudioEffectXクラスを継承してるだろ そこの引数が(audioMaster,1,1) だけどこれの最後のパラメータだ。コメントにも 1parameter only ってかいてあるよな。 (audioMaster, 1, 2)ってしちゃえ。これでパラメータ2つだ。
これだけでDAW状のツマミは2個になるけど実体が伴ってないな。 どうやって扱うかというと、下の方のsetParameter()とかgetParameter()とか パラメータ関係のメソドのindexって言う引数だ。こいつが0から始まる何番目の パラメータかをあらわすぞ。 だから void AGain::setParameter (VstInt32 index, float value){ switch(index) { case 0: fBits = value; break; case 1: fFreq=value; break; } } て感じでindexで切り分けてくれ。あ、ちなみに0番目の変数はfGainじゃなくてfBitsにしたからな。 AGainのクラスの宣言でfGainて変数があった所を float fBits; float fFreq; てしたぞ。 さて、いじるメソドはsetParameter(),getParameter(),getParameterName(),getParameterDisplay() getParameterLabel() て所か。結構多いな。全部indexが渡ってるからそれで切り分けるんだ。
新たに作ったパラメータはfFreqだ。 名前は"Freq", 単位は"kHz",表示は1.0なら"--"、それ以外はfFreq*47.+1.にしてみる これで、1kHz〜48kHzて事だな。 getParameterDisplay()はこんな感じだ! void AGain::getParameterDisplay (VstInt32 index, char* text) { float fStep; switch(index) { case 0: fStep=fBits*254.f+2.f; if(fBits==1.0) strcpy(text,"--"); else sprintf(text,"%f",log10(fStep)/log10(2.0)); break; case 1: if(fFreq==1.0) strcpy(text,"--"); else sprintf(text,"%f",fFreq*47.+1.); break; } } あ、Bitsの式もちょっといじったな。 Stepが1だと音にならないから 2〜256 ステップになるようにしたぞ。
このパラメータで何がしたいかというと、時間方向の分解能を荒くするっていうのを やってみるのだ! 何かパラメータのバリエーションが苦しいが、まあ、壊し系だからな。 何つうか、ほれ。サンプル&ホールド的な処理をfFreqの周波数でするのだ。 ただそのためにはチャンネル毎の前の値を覚えとく必要があるぞ。 注意事項としては、エフェクターを複数使って複数のインスタンスが作られたりするのでな、 覚えとく必要があるものは、メンバー変数にしておくのがいいぞ。 ついでにDoEffect()もメンバーにしておくか。いちいちパラメータ渡すのもアレだしな。 という事でagain.hのクラス宣言に追加だ!! float fBits; float fFreq; float fPhase; float fLastVal[2]; float DoEffect(int iCh,float x); こんだけ。 DoEffect()の一番目引数はチャンネルを渡すのだ。fLastVal[]に前の値を覚えるぞ!! fPhaseはfFreqで指定する周波数に対する位相だ!!
processReplacing()の2行はこう!! (*out1++) = DoEffect(0,*in1++); (*out2++) = DoEffect(1,*in2++); DoEffect()はこうだ!! float AGain::DoEffect(int iCh,float x) { float fStep; float fTemp; fPhase-=1.0/sampleRate; if(fFreq==1.0 || fPhase<0.f) { fPhase+=1.0/(fFreq*47000.+1000); if(fBits<1.f) { fStep=fBits*254.f+2.f; x=(float)((int)(x*fStep))/fStep; } fLastVal[iCh]=x; } return fLastVal[iCh]; } sampleRateはDAWが動いてるサンプリング周波数だ。どこからきたかって? スーパークラスのAudioEffect (audioeffect.h)で宣言されているのだよ。 DoEffect()はサンプル毎に呼ばれるからな、呼び出し毎に 1.0/sampleRate (秒) 経過しているのだよ。それを引いていってマイナスになったら 1.0/(fFreq*47000+1000) つまり設定した周波数の周期を足すのだ!! これでDAWの動作周波数にかかわらず 設定した周期で処理するぞ! 処理の中身は前回のビットクラッシャーと同じな(ステップの設定が違うが)
501 :
名無しサンプリング@48kHz :2010/02/05(金) 00:56:24 ID:vqV5Ycvt
いかん 自分で書いておいて何だがユニークIDが'Gain'のままだった。 気つけてくれ
とりあえずほしゅ
vstxsynthをポリ
そういやピッチベンドって値の範囲-8192〜8191で正か負かで個数が違うけどどういう風に実装するのがいいの? 8191を8192扱いとか? wavデータとかも32bitから16bitに変換するときとかどうしてんだろう
>wavデータとかも32bitから16bitに変換するときとかどうしてんだろう 割り算してバイト数を減らしてる。 ヘッダーも変更。
>>501 もうファイル流れたのか…ロダ流れ早すぎるよ ゜゜(´□`。)°
どなたか再Upを!ぜひ!
512 :
510 :2010/02/08(月) 03:39:00 ID:wAw6dNxV
>>511 …実はブログ読者なんで、向こうのブログ見て「!?」と思ってからこっち来ましたw
向こうの入門記事にもお世話になってます。ありがとうございます。
本も3冊買い揃えてVST作りに向け準備万端なんで、これから頑張って作ります!
513 :
507 :2010/02/09(火) 21:17:30 ID:N9SuGjb7
>>508 >>509 よくわからなかった……
たとえば32bit浮動小数点数から16bit符号付き整数への変換の時、
float dst; sint16_t src;
if(dst > 0) src = dst*32767; else src = dst*32768;
とか正か負かで倍率変わるの?
例えば ベンド幅2の時
-2 … -8192 (0x2000)
-1 … -4096 (0x3000)
+1 … 4096 (0x1000)
+2 … 8191 (0x1fff)
16進数にしたけどよくわからない…
そもそも+1の時って4096でいいんかな?
2進数と16進数を基礎から勉強しろ それくらい理解してないとロクなもんできないぞ
負数の16進がボロボロなのでちょっとどうかと思うが、元の疑問は割と深い所もあるんじゃない。 例えば14bitで-1〜+1を表現する場合普通は1.0を8192とする実装が多いと思うけど 正のmaxは8191/8192となり、正確な1.0は表現できない。 正確に1.0である事にそれほど意味がなければこのままで良いと思う。ベンドなんかは これでもいいんじゃないかなぁ。でもまぁ、+8191の時は特別扱いして1.0にするという 実装はありだと思う。 負数がなければ、例えば 8bit(0-255) で音量を制御、とかしようとして255の時は元データ と正確に同じでないと困る、とかいう事情があれば255を1.0にする事もある。 結局、値をどう使うかでケースバイケースだけど、正と負でスケールを変えるという のは見たことない。変な所で不都合が起こらないかなぁ。
MIDIの規格上は-8192/+8191なので、-8191と-8192を同じにするだけだと思うが
最近盛り上がってるね
midiのパラメータは浮動少数じゃなくて整数値だろ だから16進で考えれば何故-8192〜8191なのかわかるんだよ 16進3ビットでmsbをマイナスフラグにしたときに表現できる範囲を考えてみなよ
疑問はそこじゃなくて、それを-1〜1の範囲に変換するのにどうしようかって話でしょ 誤差で済ましちゃえばいいと思うがね
(float)0x8000 で割れば良いだろ 逆は max(-1.0, min(0.9998779296875, x)) * 0x8000
すまん0x2000だった 結局のところ、値の範囲内の線形性をとって[-1,1)にするか 線形性を捨てて[-1,1]にするかって話なんだけど、 どっちかといえば線形じゃないない方が害が大きいから[-1,1)が良い。 特別扱いが入るとコードも複雑になるしね。 で、[-1,1)でRPN 0:0=2(標準)のときだと1目盛り0.0244cent相当、 RPN 0:0=12(オクターブ)のときだと1目盛り0.146cent相当だから、まずもって判別不能。 これで実質的に問題ないっていうか、音源によっちゃ1cent以下の変化は無視するからね。 例えばYAMAHA系のMIDI実機とか多くはそういう仕様になってるから調べてみてー。
細かい数字は曖昧だがSC-55なんかも実際にはpanが16?刻みでしか動かなかったりしたな エクスプレッションは4?刻みなのでフェードインは突然音が出現した
523 :
名無しサンプリング@48kHz :2010/03/02(火) 23:28:51 ID:EHSij3Tz
復活
524 :
名無しサンプリング@48kHz :2010/03/28(日) 16:13:27 ID:sUO2i5wz
fxteleport潰しか?
単に割れ対策じゃねーの?
まぁマルチチャンネルで50トラックくらい行くとだめでしょうね。 光でも運が悪いと10Mコンスタントに出るかで無いか出し。 音楽でネット越しにした場合のプチプチは最も最悪な現象。 ましてやCPUパワーがバリバリでDSPカードすらドングルと化したご時世に。
俺的には、 ・サーバプロセシングはいらない。オンザフライは使い勝手悪そうだし、オフラインプロセスならローカルPCで構わん。 ・マーケテクチャの方はある程度評価する。 けどさらに、お試し版やフリーVSTの導入までがDAW経由でできるようになれや。 IT業界に身をおく者だけど、正直クラウドクラウドうるせーですね なぜかこの業界は定期的に顧客を騙す合言葉が変わっていくんだよな、この前まではSaasだったなあ。。。
ほす
顧客を騙してるって自覚は 新技術に対応したソリューションを提案できてないっていうことの 裏返しじゃまいか?
531 :
名無しサンプリング@48kHz :2010/04/21(水) 02:20:14 ID:XGDZiPRM
簡単なVUメーター作りたいんだけど… VST2.4だとgetVu()は使えない。どうしたらいいのかな? 知ってる人教えてくらはい
10ms単位くらいに波形を分割して、データの自乗の平均をとって保存しておく。 んで、画面更新タイミング毎に、過去30個分(これで300ms)の平均をとって針を描けばOK
まつがえた 過去30個分(これで300ms)の平均の平方根をとって針を描けばOK
534 :
名無しサンプリング@48kHz :2010/04/21(水) 21:59:05 ID:XGDZiPRM
ありがとう!
ディレイをm秒かけてウェットをローパスかけれるVST作ろうとしたけど 知力が足りなくて諦めた
537 :
名無しサンプリング@48kHz :2010/05/20(木) 07:21:14 ID:YlOLPozd
なんとかVSTfxかVSTiを作ってみようと思い立って VC++とVB(Express版)を導入(両方とも2008)。 そして、VCE64BIT_WIN7SDK.zipを適当なところから拾う。 32ビットのVISTAだけどなんとか 64ビットのコンパイルができるようにした (AMD64以外の二つがコンパイルできる) とここまで書いてみたのに これからXC++を初歩から勉強だ…orz
syntheditスレ復活してた
サンプル使ってVST作ったんだけど ソースファイルの箇条書きのカテゴリとかああいうのって自分で好きなように書いてコンパイルしていいの? それともサンプル使ったんだからスタインバーグの名前使わないといけないの?
>>539 だけど自己解決しました
練習用の改造againだけど練習ついでにユニークIDとっちゃいました
お経VSTって需要ある?
一切不要。つまらないネタふらなくていいから。
サンプリングデータとして出した方がいいんじゃまいか? ・・・と思ったけどもしかして音声合成系?
本人はきっと面白いと思ってるんだろうな。 そんなのもう20年以上前にハードウェア版が発売されてるのに。
ハードウェア版ディレイラマだと!?まだそんな事を考えてる奴がいるのか!
某音源にディレイラマのエフェクトが入ってて、あの顔が出てきてビックリした。
お経マシンと、インド音楽用リズムマシンは ガチ定番だな。特にお経マシンは最近は仏壇に内蔵されてるらしい。
ブッダマシーンならDMRで3000円で売ってる
お経VSTって公開されないのかな? 需要のあるなしじゃなくて人の作ったVSTって見てみたい。
お経VSTってあまりに抽象的すぎて作った本人以外興味ないでしょ。 どの宗派のどのお経をどういう形態でサンプルしてどう使うって話全然ないし。 著作権灰色のお経サンプルは使い回しが効かないし。
PCM波形を延々ループ再生するだけのVSTでいいような気がする
そういうのはループ処理済みのサンプル配布した方が喜ばれるのですよ・・・・・・・
VSTエフェクト作ろうとしているのだけど againをサンプルとした場合 while (--sampleFrames >= 0) { (*out1++) = (*in1++) * fGain; (*out2++) = (*in2++) * fGain; } } このあたりの処理をC++の信号処理計算なり処理プログラミングすればいいんですか?
そうだよ
ありがとうございます これから勉強していく方針を決められました
興味でVST開発してみたいと思ったんだけど、 三角関数とかフーリエ、微分積分とかやってたのは もう15年近く前。 完全に忘れてしまったが、こういう知識はやっぱり必要ですよね? gainとか、delayくらいならともかく、 ピッチシフトとかフォルマント変更を自作しようと思ったら必須ですよねぇ。
知らんでも既成ライブラリの組み合わせでなんとかなりますがな 特にFFTはスクラッチする利点なんて勉強以外に無いし
558 :
名無しサンプリング@48kHz :2010/08/30(月) 21:26:25 ID:+WzQiYaA
あげろっぷめんと
ツガイマス 本家サイトの3rd partyなんちゃらにある 早く落としてプラグイン作って情報下さい
情報少ねーなこの分野
Steinbergが一時期導入してたみたいな url?id=4649 方式のCMSは システム入れ替えあるとURLが全部無効になるから間抜けだよね。 まともなシステム屋ならURLのマッピングテーブルや古いコンテンツのアーカイブ提供 くらい提案しそうなもんだけど、客側のシステム担当者はたいてい後方互換性に興味ないから 結局、継続性のないURLが横行するんだろうね。
ちょっと試しにみんなでディレイつくってみようよ
566 :
sage :2010/09/09(木) 01:57:13 ID:tEBFkB4K
>>567 では Native Instrumentsに就職するにはどうしたら良いですか?
問い合わせれば
Native Instrumentsの次期製品となりうるコア技術を フリー〜ドネーションウェアっぽく垂れ流してKVRあたりで有名になればすぐスカウト来るでしょ。 例えばSynC modular→reactor3や phrazor→Kore がその流れ。 あと有名なハードウェア・シンセのデザイン担当してれば入り易そう。Clavia→Properaheadとか。
募集してるし普通に就職活動しろよ ドイツかUSに住めるなら
ハロワのおっさんより釣られ過ぎだろ。お前ら。
ニート丸出しでクソワロタ
ディアゴスティーニでょぅι゙ょのパンツを組み立てれば!
midi effectのサンプルをVS2008expressでビルドしたのですが Cubase5だと文字化けします…(SX3は文字化けしません) なんとか出来ないもんでしょうか?
midi effectは知らないけど… 多分プロジェクトの文字コードの関係だと思う。 メニューから「プロジェクト」→「[プロジェクト名]のプロパティ」を選択 開いたダイアログボックスの左側の「構成プロパティ」から「全般」を選んで 右側「文字セット」を「マルチバイト文字セットを使用する」か 「Unicodeも文字セットを使用する」に変えればいいんじゃないかな?
おい、お前ら的にVST3はどうなんですか
VST3 SDKとかぜんぜん見てないなぁ 対応状況ってどうなんだろう?
最初に2から入ったから俺も3は全然みてないや 主要なホストが対応してくれないことにはな 次作るときは3で作ろうかと思ってるけどね どうせ公開はしないだろうからどっちでもいいんだが
>>565 のサイトとても役にたった。こんな簡単にできるとは思わんかった。
ただ、getParameter関数のコード書いてるところで最後にまとめてreturn value;じゃなくて
caseごとにreturn value;を書かないと、ホスト(cubase leを使った)で表示させたとき
値設定用スライダーが独立して動作しない問題があった。
>>579 指摘ありがとう。修正しました。
case文の中にbreakがなかったね。
581 :
579 :2010/11/29(月) 01:58:18 ID:ELSVQtzq
>>580 確かにreturnよりも素直にbreak使った方がいいね。
582 :
579 :2010/11/29(月) 23:07:46 ID:TsPIfmC8
>>581 返信ありがとう。
半年ぐらい放置だったけど少しやる気が出てきた。
GUIとかMIDIメッセージの処理とか書けそうなことあるけど需要あるのかな?
MIDIメッセージの処理についてkwsk!
584 :
579 :2010/12/01(水) 22:15:47 ID:SXepI3Ug
MIDIメッセージ処理ならsynth1の人がこの間公開したVSTiシンセのサンプルソースも参考になるよ。
>>584 もシンプルでよさげなので583じゃないけど解説楽しみに待ってる。
このスレまだあったんだw。 4年位前だったかに一端消えたから、DTM板には無理なのかなと思ってずっとチェックしてなかった。 ところで、MDCTの具体的な実装ってDCTのタイプ4にsine窓かけたサンプル入れてずらしていくだけで良いの?
>>587 離散コサイン変換とかようわからん。
wikipediaとか見る限りではそれでいいっぽいけど…
離散コサイン変換は、正体は離散フーリエ変換の特殊な場合だから、案外フーリエ変換の代わりに使える場面なんかも結構あったりする。 FIRフィルターの設計なんかで逆フーリエ変換したりするけど、そういう場合cosしか計算しないしな。
590 :
579 :2010/12/05(日) 00:37:00 ID:5a4LobB0
>590 579様お疲れ様です。 とてもよくわかりました。 ありがとうございます。 サンプルコードではprocessReplacing()の中でMIDI CHを見て処理を 振り分けてないのでどのCHへのメッセージなのか関係なくボリュームのみ コントロールしている。 って理解で良いですか?。
592 :
579 :2010/12/09(木) 23:43:08 ID:59Om3cCw
VST作成って儲かりますか?
理論的にも今まで存在しなかったような新しい方式のシンセを作ることが出来れば儲かるんじゃね? それこそ大金持ちになれるだろうさ。
>>594 新方式なのに全然売れないシンセが山ほどあった。
シンセで金持ちとか、狂気の沙汰。
いつもミキサーでやる入力を2つにパラってPANとPHASE(発音の遅れ 0〜20ms程度)を調整するVSTが欲しくて
>>565 にあるディレイのサンプルを弄ってみたけどさっぱりだわん…
横槍だけども、それなら左右それぞれにボリュームもあった方が使い勝手いいんでないかい?
>>598 環境を教えてくれてありがとう。
DAWもってないから作ったプログラムの確認が不安だったんだ。
考えてたのって↓こういうことだよね?
ttp://www39.atwiki.jp/vst_prog/?cmd=upload&act=open&page=sample&file=598.PNG 各出力ってこれでいいのかな?
@の出力=PAN1 × Input(L) + (1 - PAN1) × Input(R)
Aの出力=(1 - PAN1) × Input(L) + PAN1 × Input(R)
Bの出力=PAN2 × Input(L) + (1 - PAN2) × Input(R)
Cの出力=(1 - PAN2) × Input(L) + PAN2 × Input(R)
Dの出力=@の出力をPhase1の分だけ遅延させたもの
Eの出力=Aの出力をPhase1の分だけ遅延させたもの
Fの出力=Bの出力をPhase2の分だけ遅延させたもの
Gの出力=Cの出力をPhase2の分だけ遅延させたもの
Output(L) = D + F
Output(R) = E + G
上記で問題なければまた明日にでも作ってみます。
パンの計算方法って何種類かあるらしいね。 真ん中だと平均なのは変わらんけど、左右に移動するにつれて音の聴こえ方がそれぞれのアルゴリズムで違ってくる。
PANの計算方法にどんなのがあるか調べようと思ったけど… なかなか出てこないね。 General MIDI 2の仕様書なんか見ると↓が推奨計算式っぽいけど… Output(L) = cos( π/2 × PAN) × Input Output(R) = sin( π/2 × PAN) × Input 他にあるなら教えてほしいなぁ… あと、PAN LAWってのも出てきたけどこのあたりも関係あるのかな?
三角関数を使うのが一番なめらかで、近似として二次関数とかを使う場合があるっぽい。
二次関数だと↓みたいな感じかな。 グラフとかで見るとかなり三角関数に近く見えるね。 Output(L) = (1 - PAN × PAN) × Input Output(R) = (1 - (1 - PAN) × (1 - PAN)) × Input (0≦Input≦1)
>>604 最後の行間違えてる…
誤:(0≦Input≦1)
正:(0≦PAN≦1)
あとは pan < 0.5 の時 L = input R = 2.0f * pan * input pan > 0.5 の時 L = 2.0f * (1.0f - pan) * input R = input とか……見たこと無いけど 片方のチャンネルの音量が変らないから調節しやすいって話をどっかで見た 昔手持ちのハード音源調べたら全部↓だった L = (1.0f - pan) * input R = pan * input
あがっただけでも4種類か
そんな情報ってどこにあるんだろうね
あと入力がステレオのときってどうなるのかな?
>>600 で出した@〜Cの計算が若干怪しくなってきた
GUIがよく分からない… 簡単な作り方とかないもんですかね
まず、AEffGUIEditorクラスとCControlListenerクラスを継承して GUI用のクラスを作る。 そのとき以下の3つを継承する。 bool open (void *ptr) void close () void valueChanged (CDrawContext *pContext, CControl *pControl) コンストラクタでは 継承元の変数rectに値を設定する。これがGUIのWindowサイズになるっぽい。 open()関数はGUIが開かれるときに呼び出される。 ここでボタンとかつまみ、スライダーの作成を行う。 close()では作ったつまみとかの削除を行うっぽい。 valueChanged()ではボタン、スライダーが動かされたときに呼び出される。 ここでVSTクラス側(AudioEffectXクラスを継承して作ったやつ)の setParameter()とかを呼び出すといいっぽい。 どんなGUI作りたいかわかればもう少し細かく書けるけど…
611 :
609 :2010/12/18(土) 16:08:58 ID:JZ3h0+lU
612 :
609 :2010/12/21(火) 01:28:41 ID:+ipjXRdN
>>609 いまさらだけどGUIのopen()関数で作ったつまみの削除(delete)は
やっちゃダメだった。
CFrameにAddViewで追加した後なら、close()関数でCFrameをdeleteしたときに
つまみも全部自動でdeleteされるみたいだね
>>608 さんの反応がないんだけど大丈夫になったのかな?
>>612 ここ見る余裕がありませんでした、すいません
後でじっくりやります
ありがとうございます
614 :
609 :2010/12/23(木) 09:03:32 ID:/kmmygdf
>>613 返信ありがとう。
不明点とかあればわかる範囲で答えさせていただきます。
よろしく。
初めまして、つい最近vstエフェクト制作の勉強を始めた…んですが、 ドキュメントもweb上の解説もフル英語、難解で心がくじけそうです… とりあえずホストのテンポ取得ってどうやるんでしょう?
getTimeInfo()関数を使えば取れます。 VstTimeInfo* vti = getTimeInfo (kVstTempoValid); double tempo = vti->tempo; ただし、テンポ情報をVSTに渡せないホストもあるので ご注意ください。
>>616 ありがとうございます、取得できました!
これで…まだ頑張れる…!
今年こそ何か作ろうぜ!!
もう終わりだよ
今年はVSTつくりまくるぜ! まずはC++の勉強からだけどね・・・。
C++の勉強よりもやっかいなのが信号処理の勉強。 リニアフェーズEQとか作ろうと思ったらFIRフィルタの係数を自動で作成出来るプログラムとか 組めないといけないし。
622 :
620 :2011/01/02(日) 01:31:26 ID:XRxdF7nV
>>621 そこもなんとかしないといけないと思っていまさらながら数学の勉強も並行してやってる
底辺高卒だから難しいけどのんびりやっているよ
623 :
名無しサンプリング@48kHz :2011/01/09(日) 20:13:14 ID:vSBOFOYN
Syntheditスレないけどココでいいのかな
627 :
名無しサンプリング@48kHz :2011/01/10(月) 18:37:55 ID:TpInm/ms
VST 初心者です。 VST 2.4 の AGain を次のようにいじっているのだが、何故か結果が一致してくれない…。 処理順序を交換しただけのはずなのに、フェーダーを操作したら結果が変わるとかどういうことなの。 while (--sampleFrames >= 0) { __if(fGain > 0.5) { ____(*out2++) = 0; ____(*out1++) = *in1 - *in2; __} else { ____(*out1++) = *in1 - *in2; ____(*out2++) = 0; __} __*in1++; *in2++; } なんかハマってしまったので、詳しい人オラに力を分けてくれ! C 言語のポインタ周りの理解がどこか間違ってるからとは思うんだが…
実装依存だけど、in と out がおなじバッファを指してることがあるお? in1 == out1 が成り立っちゃうような状態。確か Cubase はそういうことが あった。それじゃないかな〜とよく読まずにレスしてみる。
629 :
名無しサンプリング@48kHz :2011/01/11(火) 01:53:37 ID:JAjQSazN
>>628 早速のレスありがとうです。
Cubase を使ってたのでピンポイントでその状態だったみたいです。
本当に助かりました!ありがとうございます。
しかし、この手のアプリ作るのは初めてだけど
デバッグをどうするかってのは一つ大きな課題ですね。
コンソールもなければ、MessageBox とか使うと大変なことになりそうだし…
ところで、Vst source code archive は閉鎖したのかな?
初めて行ったけど何も情報が無いような…?
シンセメーカーやシンセエディットの専スレって見当たらないけど、立てたほうがいいかね ここはプログラミングする人がほとんどっぽいし
>>629 デバッグについては普通にトレースで追っかければ良いんじゃない?
VisualStudioでやってるけど、ホストアプリのプロセスにアタッチしてVSTのデバッグしたい箇所にブレークポイント仕掛けてからVST処理させれば
普通に止まるし。
632 :
629 :2011/01/12(水) 22:47:48 ID:MTn+npoi
>>631 やはりそうするぐらいですかね…。リアルタイム系のプログラムなので、
一旦止めて単一の入力のサンプル値や計算結果の出力データだけを見てもよくわからないですし、
少し複雑になると処理結果のオーディオデータが予想通りの結果になっているか確認するには
耳で実際に聞くぐらいしかテスト方法が無いですよね。
まさか入力データと出力データをサンプルごとに手動で比較するわけにもいかないですし、
デバッグもさることながら、こういったプログラムはテストをするにも骨が折れる気がします。。
俺はとりあえずwavファイルにエフェクトかける単体アプリ作ってテストしてるなぁ 後々高速化したときに前のバージョンと処理が変わってないかチェックできるし
俺は、VSTの場合はSoundForgeとかのリアルタイム処理じゃないホスト使って、サンプル毎の情報をテキストで吐き出すプログラムを埋め込んでる。 数値の羅列を吐き出させてExcelに貼り付けてグラフ表示したら、わりと何がどうなってるのか、とか正しい処理になってるのかとか分かる。 VSTiでも似たような事は出来ると思うけど、VSTiは俺は普通に音聴いてるだけだなぁw
VSTに直接関係ないけど、つまみを模したGUI作ったはいいけど、 つまみの位置から値を計算する方法がわからねえ。 つまみの位置と値との対照表が作成できればなんとかなりそうではあるんだけど。
つまみの移動範囲が例えば60ドットとするなら、0〜59を値の最小〜値の最大にマッピングする計算式作れば良いだけだ。 値の最小=0、値の最大=100なら 現在の値=つまみPos*100/59 (ただしつまみPosの値範囲=0〜59) ドットでなく角度であっても上記は全く同じことが言える。
638 :
名無しサンプリング@48kHz :2011/01/14(金) 14:44:28 ID:/J0IkCfk
まあまともなプログラミング・スキル持ってる人にマジレスすると スライダーの場合つまみの移動範囲が値の変化範囲より小さかったり マウス操作の最小単位(1ピクセル)が 変化させたい値のステップやカーブと一致しない場合も多いから つまみ移動イベントを単なるup/down情報に焼き直して より望ましい値変化に更正してパラメータ&画像更新した方が良さそうだね☆
639 :
636 :2011/01/14(金) 15:21:02 ID:qVCiA3dV
さっそくのところありがとうです。 稼働範囲が210〜90〜330度の240度の円形つまみで、 つまみの現在位置から開始点までの角度が欲しかったので、 結局sinθのテーブルを作って、現在位置のある象限の中でもっとも近い角度をテーブルから探索することにした。 その探索が今できたところなので、あとは開始点からの角度に変換すればOKかなというところ。 ただ探索して角度を求めるのがちょっといけてない気がする。
>>636 何に詰まってるのか良くわからんなあ
自前で毎回描画してるのか?
円形つまみの画像を100枚くらい配列で持って
image[(int)(99*param)] じゃダメなの?
>つまみの位置から値を計算する方法がわからねえ。
クリックした位置につまみを動かしたいなら
atan2とか使えばいいと思うが・・・
sin計算の場合はテーブル作って値引っ張ってくるのは高速化のためにはよくやるよ。 まぁ、テーブル範囲は0〜90°(0〜π/2)か0〜180°(0〜π)の範囲で作って後はそれを使いまわす事が多いけど。
#include <math.h> して atan2(y,x)関数を使えばいい なお戻り値はラジアン表示で-π〜πの範囲になるので 度(degree)表示にするには (180/M_PI) を掛ける必要がある 以下コードに間違いあったらテキトーに修正しる int x0, y0; /* つまみ原点座標 */ int mx, my; /* マウス座標 */ #include <math.h> double theta = 180 / M_PI * atan2((y0-my), (mx-x0)); /* 画面座標Y軸は下向き */ /* 角度変換:(210゚〜90゚〜330゚)→(60゚〜180゚〜330゚) する場合 */ double theta2 = 180 / M_PI * atan2((mx-x0), (y0-my));
ちなみに、VST SDKでは、つまみの位置から値を計算する必要がないように設計されてるね。 変数として常に値を保持していて、マウスを操作するとまず値が変更されて、その値に応じて ノブを描画する。 VST2.4しか見てないけどvstcontrols.cppのCAnimKnob::draw (CDrawContext *pContext) あたりが値とノブ位置を計算する参考になる。30行くらいで読みやすいのでどうぞ。
644 :
636 :2011/01/14(金) 22:46:07 ID:qVCiA3dV
>>642 まさにそれっす。arctangent。sin, cosの逆があるはずだよな・・・と思ってたら、
そういえばそんなのがあったことを忘れてた。
うーん、三角関数の勉強しなおしだな、こりゃ。
こんな拙い質問にレスしていただいたみなさんに感謝!
645 :
636 :2011/01/14(金) 22:49:09 ID:qVCiA3dV
ライセンスの話なら、何のライブラリ/コードを使ってるかによるだろ。 VSTのSDKしか使ってないなら特に問題なかった筈
なんというか、プログラムがかけても絵が描けない・・・ ツマミとかノブ、スライダーやパネルの素材が転がってるサイトないかなぁ・・・
650 :
624 :2011/01/17(月) 23:43:17 ID:yWIW1jd0
>>634 情報ありがとうです。亀レスすみません。
こちらは VST 限定せず、デジタル信号処理全般に関する情報系のサイトで、
Vst source code archive の親サイトだと記憶していますが、
この二つが統合された、つまり Vst source code archive の内容は
Music-DSP Source Code Archive に移動した、という理解でいいですかね。
ところで、教えてくん状態で申し訳ないのですがもう一つお願いします。
VST2.4 SDK アーカイブには VSTGUI 3.0 が、VST3 SDK には VSTGUI3.5 が付属してますが、
VSTGUI は SDK に依存しているんでしょうか?
例えば、VST 2.4 で(VST3 付属の)VSTGUI3.5 は利用できますか?
些細な質問で申し訳ないですが、できるかどうかだけの情報でいいので
答えていただける方がいましたらよろしくお願いいたします。
>>652 > 例えば、VST 2.4 で(VST3 付属の)VSTGUI3.5 は利用できますか?
ちょっと3.0のドキュメントを見た程度だけど
継承元となるクラスがそもそも違うみたいだから
無理じゃないかな?
>>654 こういうのを効果的に使うには、使う方にもデザインセンスが求められる気がする
デザインセンスに自信が無い子には難しい作業なのは変わらないw
>>652 >>653 sourceforgeにある vstgui 3.6.0 と vstsdk2.4 で作ってみたけど?
ttp://bit.ly/etmd7e 利用できますか?なんて聞く暇あったら試すほうが早いって。
vstgui フォルダを入れ替えるだけ。
tutorial はエディタのコンストラクタで rect に値突っ込んでないからそのままだととんでもないプラグインになっちゃうけど。
直前のサンプルにcosΘ+isinΘを掛けつづければ、サイン波が出来ることを今更知ったんだけど この方法使ってエイリアスノイズの問題って回避できないの?
業界の人もいるのね。ここ
659 :
名無しサンプリング@48kHz :2011/02/11(金) 06:33:18 ID:iGNJGhyu
660 :
名無しサンプリング@48kHz :2011/02/11(金) 06:34:27 ID:iGNJGhyu
>>656 親切にサンプルまでありがとうございます!
すみません、VSTGUI を利用していない方のサンプルは大体わかってきたんですが、
まだ VSTGUI に本格的に取り組む段階に達する前の状態のもので…
あと、なんかホスト規制で書き込みができなくなることがよくあって、
返信が毎回遅れてしまってます。すみません。
vstgui 3.6.0(+ vstsdk2.4)のチュートリアルをMac(XCode3.2.5)で ビルドする事ができません。何かご存知の方はいませんか? 以下のシンボルが見つからないと、リンカでエラーになってしまいます。 invalidNSViewRect addNSTextField getSizeOfNSView removeNSTextField resizeNSView createNSView showNSContextMenu destroyNSView nsViewGetCurrentMouseLocation nsViewSetMouseCursor getNSTextFieldText moveNSTextField nsViewScrollRect
>>661 その前に、そもそもXCodeでのプログラミングスキルは
普通にあるのかい?
vstguiを、というよりネットで落としてきたプロジェクト一般を
まともにビルドできないスキルなんじゃないかと予想したんだが。
なるほど、NSなんちゃらはOS X(元NextStep)関連シンボルかw
664 :
名無しサンプリング@48kHz :2011/03/23(水) 16:35:30.40 ID:c7OE7Nrt
GUIを作ろうと思って、vstgui.cppとvstcontrols.cppで大量のエラーと警告が出てしまいます。 C:\vstsdk2.4\pluginterfaces/vst2.x/aeffect.h(296) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(157) : 'strncpy' の宣言を確認してください。 C:\vstsdk2.4\pluginterfaces/vst2.x/aeffect.h(306) : warning C4996: 'strncat': This function or variable may be unsafe. Consider using strncat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(144) : 'strncat' の宣言を確認してください。 ..\..\..\..\..\..\..\..\vstsdk2.4\vstgui.sf\vstgui\vstgui.cpp(2213) : error C2664: 'strcpy' : 1 番目の引数を 'WCHAR [32]' から 'char *' に変換できません。(新しい機能 ; ヘルプを参照) 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 (以降ほぼ同様の警告文が続く) 頭に #define _CRT_SECURE_NO_DEPRECATE 1 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include <windows.h> #include "audioeffectx.h" #include "vstcontrols.h" ってかくだけでもエラーになるのですがどうしてでしょう? 初心者な質問ですみません・・・
プロジェクトの文字コード設定がUnicodeになってるからマルチバイト文字コードにしろ エラーらしいエラーはそれしか出てない
666 :
664 :2011/03/24(木) 02:08:52.69 ID:X2Bkxw5c
>>665 解決できました。
ありがとうございますmm
このスレの住人はVST3.5対応はどうする予定なん?
今のところ考えてない。 そもそもVST3.5ってどうなの?
俺はSONARとCubase両方使ってるからVST2シリーズの方が有難いけど、 CubaseはなんだかどんどんVSTのバージョン上げて行ってるし、その内SONARとかもVST3シリーズに多分対応するんだろうから ユーザープラグインだけ時代遅れの規格に従う訳にもいかないだろうしなぁ。
64bitホスト用のプラグイン作るのって 単にコンパイラの設定変えるだけでいいんでしょうか?
>>670 その前に、そもそもプログラミングスキルは普通にあるのかい?
vstsdk2.4を使ったプログラムはいくつか作りましたが
2.4のSDKならaeffect.hに
#ifndef VST_64BIT_PLATFORM
#define VST_64BIT_PLATFORM _WIN64 || __LP64__
#endif
とかいうのがあるから、よきにはからってくれるんではないかな。
もっともVST_64BIT_PLATFORMのマクロってほとんど使われてないけどね。
手元に64bit環境がないから試せない。
まあ、すごいプログラミングスキルをもってる
>>671 が解説してくれるだろう。
みんなフーリエ変換・逆フーリエ変換は自前でやってる?
677 :
名無しサンプリング@48kHz :2011/09/01(木) 16:20:15.26 ID:SH59zuZC
たまにはage MIDI Effect 作ろうと思ったんだけど、track event と immediate event の折り合いがつかなすぎて挫折しそう。 よくばらずに immediate 無視したほうがいいんかな。
質問です。SynthMaker製はどうして嫌われているのですか?
知らないのに答えてみる。 同じ機能でC++のとJavaのあるけどどっちにする?っていったら前者だろ。C++のはSSEで最適化してる かもとか期待できるしな。でも音がよけりゃなんでもいいよって人のほうが多いんじゃないかな。 あとSynthMakerだかSynthEditだかはなんか大域変数使ってるかで複数インスタンス起動でバグるとか なんとか。
VSTエフェクトを電子回路として作成できるソフトあったら便利だろうか。 トランジスタとかRLC回路でエフェクトを表現。
SPICE組み込んだVSTi・・・、ゴクリ・・・
>>679 ありがとうございます。音質で劣る、というわけではないのですね。
なんだかすっきりしました。ありがとうございます!
683 :
sage :2011/11/05(土) 23:08:32.21 ID:BrBht1fQ
>>667 VSTのバージョンなんてスタインのオナニー。
使ってもらえるVSTは古いバージョンで作るのがセオリー。
自分用なら好きにするのさリバティー。
どっちにしても俺ら素人さデスティニー。
sidechainというか複数入力のプラグインならvst3系の方が 普通に作れていいけどな。 あと、vst3のソースからvst2のプラグインも作れるようになったから、 2と3のソースを両方保守するのめんどい、というのはなくなった。 けどまあ大部分は2.4で十分だわな。
>>685 >sidechainというか複数入力のプラグインならvst3系の方が
それ、VST3対応ホストじゃないと意味ないよね?
最新バージョンでVST作るってのは実質Cubase用ってことに
なる。それは結局使われないものを作ってるようなもんだ。
それに、同じソースでVST2と3がコンパイルできるとして
でもそれでできるのってVST2で可能な範囲のプラグインって
ことになって、じゃあそれVST2だけでいいじゃん、って話なんだよな。
VST3の規格が優れてるのはわかる。でもVSTってのはただの
インターフェイス規格なんだから、コロコロバージョンアップしてる
のは元の仕様が糞な証拠だよ。
インターフェイスはやりたいことをできる必要十分な仕様を最初から
提供するべきであって、グレーゾーン作って自社の囲い込みに利用
しながらバージョンアップで埋めていくようなスタインのスタイルは
開発者なら支持すべきじゃない。
というわけで、各社ホストがVST3揃い踏みにならない限り俺はガン無視。
>>686 > それ、VST3対応ホストじゃないと意味ないよね?
そりゃ当たり前。
単に、vst3の機能が必要ならvst3sdk/いらなければvst2sdk
みたいな使い分けをしなくても済むようになったってだけの話。
別に標準規格でも何でもなくて、Steinbergの独自規格なんだから、
囲い込みに使おうが何に使おうが関係ない。
だいたい、3.0以降のバージョンアップは囲い込みにも何にもなってないだろ。
機能がvst2で十分だとか、
vst2に慣れてしまってvst3の仕様調べて使うのは面倒だとか、
vst3対応ホストがNuendo/Cubase以外だとStudio Oneくらいしかないとか、
gccだとMacと判別してWinだとVC++独自文法使ってるvst3sdkがウンコだとか、
そういう理由で使わないならわかる。
だが、Steinbergの姿勢とかどうでもいい。
サイドチェーンは便利なんだよなー 正直ホストはとっとと対応してくれないかなと思ってる 今のところ自分の作るプラグインでは必要になったことないから2しか触ってないけど
俺はフリーで金の掛からないものしか使わないから。 高価なVSTホストのためのやつは作る意味無いなぁ。 金持ちしか使えないホストのために作ったって どうせ金持ちだから高価なVSTしか使わないだろうからな。 それにおれはあとからレンダリング派だから リアルタイムに鳴らすことの意味すら感じないしな。
高価なVSTホスト用と安価なVSTホスト用で何か違うのか?
3に対応してるかしてないかを言いたいんだと思うがCubaseならLEでも3に対応してるね まぁ値段の話は置いといて幅広く使ってもらいたいなら2の方が無難なのは確かだよ せっかく苦労して作っても使ってもらえなきゃ報われない
692 :
名無しサンプリング@48kHz :2012/02/01(水) 20:57:10.41 ID:pUC8BURF
EQ作り始めたあげ
693 :
名無しサンプリング@48kHz :2012/02/26(日) 12:09:45.10 ID:SFWhlvwb
694 :
名無しサンプリング@48kHz :2012/03/20(火) 15:09:04.45 ID:pb9TxppD
ステレオをデュアルモノにするプラグインって技術的に作成難しいのですか? それとも需要がないだけなのでしょうか・・・ デラマチャとvoxengo(EQ)くらいしか見当たりませんでした。 デュアルモノ後にLR別にEQするとかなりいい感じなんですけどね・・・
>>694 cubaseだったらFXチャンネル2つをmonoで作ってそれぞれにsend、プリフェーダON
で、送信元のステレオチャンネルはフェーダーゼロとかして消音。
センドルーティングの設定でパン極振り。送り先のFXチャンネルのパンも極振り。
でいけそう。monoのトラックだと使えないvstとかあるかもだけど。
SDK2.4ベースで Stereo Out + Mono + Mono で出す vst ためしに書いてみたら全部合成されて
出力されてしまった。オーディオトラック作っても in で選べないし、仕様か俺のバグかわかんね。
MIDI信号分岐させると選べるようになるんだけどねえ。
696 :
名無しサンプリング@48kHz :2012/03/20(火) 18:13:47.02 ID:ylpxbP9j
>Stereo Out + Mono + Mono で出す vst ためしに書いてみたら全部合成されて 出力されてしまった。 Mono + Monoのみ出力なら可能でしょうか? vstならそのプラグイン欲しいです。
試した動作が仕様ならmono+monoじゃ分けられないよ多分。普通に出るだけ。本当のところはどうなんのか 詳しいひとに教えてもらいたいくらいだけど。 つうかOSとかDAWとか環境晒してみ。俺 mac なら作り方知らねー。
698 :
名無しサンプリング@48kHz :2012/03/20(火) 18:47:57.77 ID:ylpxbP9j
OS:7 DAW:Adobe Audition3.0(フリーのwavosaurも有) 作業自体は2mixをいじくる内容がメインです。仕様なんでしょうかね〜
2mixいじくるんなら最初から stereo を左右のmonoに分割するソフトとか探したほうがいいよ絶対。 DAW で別の 2ch に SEND してそのチャンネルは殺すって手順はやたら面倒だぞ。
あ。よく考えたら2つsendしてsendされた先でパン左右に振るだけでよくね?んで元は消音。
701 :
名無しサンプリング@48kHz :2012/03/21(水) 10:22:21.80 ID:wE98HSNm
うーん、mono分割ソフトですか。もうちょっと勉強してみます。 いろいろありがとうございます!このスレってリクエストとかもOKなのかな?
その程度のことルーティングで解決できるし、Pro-Qとか買えばもっと楽にできる 既存プラグインじゃできない面白いアイデアがあったらやってみるかも
703 :
名無しサンプリング@48kHz :2012/03/21(水) 14:10:35.50 ID:Yq1jOzL8
>既存プラグインじゃできない 贅沢はいわないので、ノーマルカセットテープのシミュを是非 AMPEXとかじゃなくていい。ノーマルでいい。 ていうか、天下のwavesもuadもいまいちなのは、なぜ。やっぱ難しいのかな
704 :
名無しサンプリング@48kHz :2012/03/21(水) 15:07:08.02 ID:Yq1jOzL8
ラッパープラグインが欲しい。 ・STEREO仕様のpluginをMono仕様にする ラッパーものって思ったより少ないんだけど、潜在的ニーズは多いと思う。 ある種の「改造」だから、男心をくすぐるんだよな。
>>STEREO仕様のpluginをMono仕様にする ってなんだ?。どういう場面だ? 入出力にモノラル化を挿すんじゃだめなのか? カセットテープのシミュって難しい 何が難しいかってお前の頭の中にある音が判らないから
cubaseでmonoのオーディオトラックにpanいじるプラグイン挿したらちゃんと動かなかったよ。 入力がmonoで出力もmonoじゃVSTレベルじゃどうにもなんねーなと俺は結論づけたけど。
707 :
名無しサンプリング@48kHz :2012/03/21(水) 18:10:19.33 ID:jm68qPCO
FL以外でPatcherみたいなことってできるの?
SEがすでにそうだったわけだが。
710 :
名無しサンプリング@48kHz :2012/03/22(木) 14:15:46.22 ID:nou6YboZ
既成プラグインが手軽に改造できるやつがあるといいね。
1
おすすめのグロッケン音源ない?
>>695 > SDK2.4ベースで Stereo Out + Mono + Mono で出す vst ためしに書いてみたら
これ具体的にどうやって書いたの?
setNumOutputs(4); して getOutputProperties() 書いてみたんだよ?あとは in から out にコピー。
ああなるほど。 エフェクトの場合、Host側がgetOutputProperties()をちゃんと見てないのかもしれないなあ。 自分がやりたいことにも関係するんで後で試してみる。
Cubase で Insert に挿したときに getOutputProperties 呼ばれてなかった。 「プラグイン情報」のI/Oの表示も、kVstPinIsStereo とか指定してないのに Stereo/Stereo になってしまうな。 プラグインで変則的なルーティングしたかったらvst3使う方が早いかな。
Stereo→mono+monoなんてSynthEdit使えばいいじゃん 1,2をそれぞれゲイン通した後outputに繋げるだけだし一瞬でできる
プラグインが作れないって話じゃなくてホスト側の仕様の話だと思うんだが
一般的なホストだと、バスにインサートするエフェクトプラグインは、 入力も出力もバスと同じ仕様が想定されていて、 一致しない場合(ステレオのバスにモノのプラグインとか逆とか)は、 ホスト側で適当に処理されてるんだろう。 プラグインからMono+Monoとか出力したとして、別々に引き出せるかはホスト次第。 できたとしてもルーティングこねくり回すくらいなら、 最初からプラグイン使わずにバスとセンドの組合せでやればいいような。 VSTiだと複数アウトを比較的自由に使えるんだけどね。
エロバンクキタ━━━━━━(゚∀゚)━━━━━━ !!!!!
721 :
名無しサンプリング@48kHz :2012/08/04(土) 21:19:06.81 ID:vfeTbak8
誰かKVR DC2012にエントリするの?
723 :
名無しサンプリング@48kHz :2012/09/05(水) 03:41:47.30 ID:vIacT+qZ
Channel Matrix 2x2というVSTで入力欄を全部0.5にすればmonoになると思う
724 :
名無しサンプリング@48kHz :2012/09/25(火) 19:10:08.02 ID:ug860RCn
725 :
名無しサンプリング@48kHz :2012/10/06(土) 13:30:44.55 ID:azZwnJRt
MinGWでコンパイルできねぇなーと思ってこのスレ読んでみたらみんなトラブっててワロタw やっぱ素直にVC++導入した方が無難か。 しかしFreeverb4なんかはMinGWでもすんなりコンパイル通るし、諦め切れないんだよな
>>725 とりあえずプラグイン作りたいなら素直にVCで作るのが吉かと
本体出来てからあとで移行したっていいんだしさ
手段が目的なら頑張って結果報告してよ、俺諦めたしw
>>726 アドバイスthx
海外サイトをひたすら走り回って情報集めた結果、
とりあえずサンプルのagainとadelayを添付のMakefile使わずに手動でコンパイルする事には成功した。
これで一応開発環境としては出来上がった気がするんだけど、実際何か作ってみない事には何とも言えないな。
もしこれで問題無さそうなら、後で報告しようと思います
2.3と2.4のサンプルをcygwin(もちろんライブラリはMinGW)でコンパイルするMakfile 作って持ってるけど要ります?
729 :
名無しサンプリング@48kHz :2012/10/10(水) 12:24:35.79 ID:lLu0stQZ
あと「単一の.cppから成るプラグイン」(includeファイルはあってもよいが更新検知対象外)(もちろんSDK内の.cppは別ね)をコンパイルするMakefileも作ってあります。 GUI対応は現在研究中。
730 :
名無しサンプリング@48kHz :2012/10/10(水) 12:40:22.28 ID:HkFDFodK
visual C++のfpu命令最適化能力はダントツにいいって知ってる?
知らないし気にしない
>>728 SourceForgeにVSTSDK for MinGWとかプロジェクト作って上げれ。
デバックする過程でprocessReplacing()の頭にofstreamを置いてみたんだけど、 このprocessReplacing()って起動時の一回しか呼ばれないのか・・? 少なくとも1秒に200回くらいは呼ばれそうな気がするんだけど、現実はそうなってないっぽい。 でも問題なく音声処理はできてるし、一体どうなってるんだこれ
すんません ただのコードミスでした。何でもないです
735 :
名無しサンプリング@48kHz :2012/10/20(土) 16:46:35.53 ID:JBImfqpZ
物理モデリング音源作ってる人とか居る? バイオリン作ってみようと思ってる bowed string synthesisでぐぐったら情報ありそう。 開発プロジェクト始まったからよろしこ
736 :
728 :2012/10/24(水) 23:18:26.75 ID:P3jPMM4F
>>732 SDKそのものを上げるのはまずいでしょーが。
Makefile 1個と一部ソースの修正情報なんで
patchにまとめて自分のスペースに上げました。
http://otu.sakura.ne.jp/gallery/#dtm SourceForgeとかにするならご自由にどうぞ。
もし待ってた人いたら遅くなってごめんね。
あと自作プラグイン用のMakefileは
まだまともなプラグイン例を何も作れてないので
作ったら一緒に上げます。
737 :
名無しサンプリング@48kHz :2012/10/25(木) 02:07:13.50 ID:h0iu2D4s
MIDI IN のチャンネルを Keyswitch で、任意の MIDIチャンネルに切り替える・・・ ということのできる VSTプラグインを、どなたかご存知ありませぬか? CUBASE専用のプラグならあったんですが、VST のは見つかりませんですた。 どなたか、お助け〜〜〜!
KeyswitchってのはPCのキーボードとかMIDIのノートメッセージとか? 後者なら作りかけのものにその機能があるけど...
739 :
名無しサンプリング@48kHz :2012/10/25(木) 11:25:04.70 ID:h0iu2D4s
>>738 MIDI ノートメッセージです。
>作りかけの・・・
えっ? すばらしー!
それって、使ってもいいんでしたら、
ぜひ、ぜひ、うpしてください〜!
740 :
738 :2012/10/25(木) 12:42:55.94 ID:mdswJ87I
なにぶん作りかけですんでね。
ちなみに
(1) チャンネルの変換は
http://www.niallmoody.com/ndcplugs/ndcmidi.htm にある MIDI Channeliser とかを使う。(他にも同様なものはあるかも)
(2) ホストにはCCメッセージでプラグインのパラメータを変える機能があるのが前提。
("VSTHost"だとノートメッセージでもできるみたいだけどそれだとここまでで話は完結。)
(3) 私のプラグインはノートメッセージをCCに変換する機能がある。
でこれらを組み合わせて機能を実現する。
ただ私の(3)の操作性が現在超最悪で。
741 :
名無しサンプリング@48kHz :2012/10/25(木) 16:58:25.58 ID:hSqKiJ+5
742 :
名無しサンプリング@48kHz :2012/10/29(月) 00:49:02.45 ID:vUC3I3GS
例えば今現在出力してる波形の絵とかを表示できるようにしたいんだけど、 デフォで用意されてない描画処理ってどうやって搭載すれば良いんだ? VSTのライブラリのソースを色々とほじくってみたんだけど、 GUI回りの仕組みがどうなってるのか全く分からん。
GUI付きのVSTは作ったことある? あるなら別に難しくないと思うけど。
744 :
名無しサンプリング@48kHz :2012/10/29(月) 07:19:56.11 ID:vUC3I3GS
>>743 あるにはあるんだけど、Cknobとかの用意された機能しか使ったことがないんだ。
普通にWinapiで描画するにしても、描画用のメモリの構造がどう定義されてるのかがわからないから、どうすりゃ良いのかさっぱりだ
2.4のサンプルでは線を引いたり丸を書いたりやってる。 CViewなどのサブクラスを作ってdrawメソッドを定義してその中で パラメータのCDrawContextの描画メソッドを使うんだ。
746 :
名無しサンプリング@48kHz :2012/10/29(月) 17:39:55.20 ID:vUC3I3GS
>>745 おぉぉそんな素晴らしい機能が有ったとは・・
応用すれば思いつく限りの事は全部できそうだと思うサンクス
普通(むしろ貧弱?)なんだが。
俺はDAWから作っているからVSTプラグインはホストのほうに興味があるな。
749 :
名無しサンプリング@48kHz :2012/11/04(日) 11:29:35.60 ID:jqshrLXi
試しに一通りシンセ作ってみたんだけど、フリー臭い音しか出てこねぇ・・ リッチな音出すのって難しいんだな
結局デジタルでアナログの音を出そうとするからいけないんだよな。 サイン波合成シンセならフィルターとか要らないしフーリエ変換とかの知識無しで 簡単で一番いいと思うよ。
それはシンセつーよりオルガンというのでは
加算合成シンセだろ
754 :
名無しサンプリング@48kHz :2012/11/15(木) 22:28:26.77 ID:olU8BBjQ
>>753 基本的なアナログ波形と、加算テーブルを用意した
一応変調かければそれなりにマシな音にはなるんだけど、やっぱりフリー感は拭えないんだよなぁ。
波形エディタで見ても有料シンセとはそんなに差は見られないし、さっぱりである
リッチな音って案外高音は削られてるんだよ というわけで次はLPFの実装に一票
エイリアシングの処理
アナログシンセサイザーってアコースティック楽器をシミュレートするのと一緒くらい難しいんだよ。 諦めたほうがいいよ。
>>757 アナログフィルタ回路のシミュレートとかならそうかもね。
ここで言ってるVAは「PCMじゃなくて計算式でオシレータ作ってる」
って程度の話でしょ?
それじゃあ、デジタルシンセでアナログシンセの音作りと変わらないと思うが。
760 :
名無しサンプリング@48kHz :2012/11/22(木) 06:53:37.76 ID:qeRWMhHX
>>758 「PCMじゃなくて計算式でオシレータ作ってる」
これだけだとYAMAHA DX, TXシリーズやCASIO CZ, VZシリーズも当てはまっちゃう。
質問です。 SDKのXSynthとSynth1の中の人のサンプルMySynthのソースを 読んでいるんですが、どちらも最初にウェブテーブルを作っておき (XSynthは4096サンプル、MySynthは1024サンプル)それを目的の周波数に 伸縮しつつ出力する、という方法を取っているようです。 が、これって全ノート用の、サンプリング周波数を考慮したピッタリの ウェブテーブルを作ってれば補間のこと気にせずに高音質で出力できます よね?そうしてないのは負荷の問題か何かなんでしょうか?
ビッチに対するモジュレーションにはどう対応するつもりですか?
webとwaveじゃ全然別物だから あとpitchとbitchじゃ別モンだから セント単位のピッチに対するサンプルはどうするつもりで? それ考慮するだけで容量100倍になるんだが
たしか昔のパソコンはメモリーが少ないから補完とかしてたけど 今は補完は誰もしないよ。
Bandlimited Synthesisがあるからな
ピッチベンドはどうするつもりで?
先にテーブルのレンダリングせずに、リアルタイムに演算するのはむり?
簡単なんだからベンチ取って比較すりゃいいべ
そのベンチにはいい男が
う
VSTiプラグインを作ってるんだけど、 出力の波形をリアルタイムに表示させたい 一応VSTi起動時の描画はできたのだが、描画の更新方法がわからんので一本線のまま・・・ どなたか助けてくだされ
誰も答えないようだから俺の見解を書いてみるよ。間違ってたらスレも盛り上がるだろw WindowsでVST2.4として書くぞ。他は知らない。 AEffEditor だっけ?で用意されてる onIdle() とかそんなやつで画面を更新してもいい。 思ったより高い頻度で呼ばれてる。でもこれはDAW依存。なので processReplacing() で WAV を書いたときに InvalidateRect() するのが楽。PostMessage() で WM_USER とか そのへんを送りつけてトリガにしてもいい。 GUI 側では書いた波形を貰わないといけないが、重要なのは VST と GUI ではスレッドが 異なることを考慮しないといけないこと。SAVIHost と cubase でしか確認してないけど。 なので波形バッファに対するロックの仕組みが必要。::WaitForSingleObject() な。 これをやらないとたまにおかしくなるって現象が起こるはず。ものによってはDAWごと落ちる。 おしまい
774 :
771 :2012/12/03(月) 14:57:28.93 ID:9E66y0Za
>>772 ありがとう
あなたのおかげでSDKのソース全部見てみる気になったよ
で、ちらつきながらもなんとか表示するようにはなった
VSTの作法的にはアウトかもだけど、とっかかりはつかめたかも
>>773 違うよん
Cとjavaをほんの少しかじっただけの自分がふと思い立ってVSTeに挑戦してみたけど、 内部での計算結果を出力することすら出来ない自分のアホさに笑ってしまった printf()とかfopen()じゃ駄目なのか・・・勉強しないと
776 :
名無しサンプリング@48kHz :2012/12/11(火) 12:36:59.58 ID:q7Qo0gI4
有料で販売したいときってどこ使うのがいいかな vectorでいいのかな
日本人しか買えねーじゃん
適当にサイト作ってpaypalでいいだろ 英語サイトも作れよ vectorだけにするより paypalで世界を相手にした方が全然売れる
779 :
名無しサンプリング@48kHz :2012/12/12(水) 20:01:38.39 ID:Qi1qJRtQ
そっか。paypalって個人の振込み先みたいのも出来るっけか 個人事業主プレミア講座か 払っただの払ってないだのめんどくさいからvectorなりどこか任せにしようかなって思った あとシリアル面倒だからまずはsharewareで様子を見てみる 英語サイト + paypalで作ってKVRに貼ってくるわ
ここにも貼ってね 良かったら買う
買って後悔したと思う人しかいないようなものを売るのは詐欺と同じだよ。 GUIのカッコよさで選ぶ人とかどんなものでも買って試してみたい人とかを ターゲットにしているんだと思うけど。 大多数の人達にとっては迷惑なだけだからね。
他の人も書いてたけどプラグインならではの操作性と視認性を活かして欲しい
783 :
名無しサンプリング@48kHz :2012/12/14(金) 23:31:43.22 ID:ge5OJ6XQ
フリーのvstを改造してくれる方いますか? シンプルでそこそこ使い勝手がいいんだけど 色がきつくて長時間使うと目がチカチカするんだ。 落ち着いた色に変えてくれるだけでいいんだが ちなみにメーカーはすでに消失してるっぽい。
ソースがないと改造ムリ。
そーすか…
ResourceHackerで置き換えられる場合がある
788 :
名無しサンプリング@48kHz :2013/01/08(火) 00:24:46.73 ID:Cw7VUyk6
dll晒せばやってくれる人が居るかも。画像ならどこかに埋め込まれている画像書き換え 塗りつぶしなら、gdi使ってるならその場所をデバッガーで地道に探して 色を書き換え
他のVSTに独自GUI付けるVSTがあったはずだけど名前忘れた。あれで何とかならんかね。
パソコンの画面が明るすぎるからちかちかするだけだろ。 鮮やかさとか明るさを下げればいいと思うよ。
MS404のエミュVST誰か出してくださいお願いします
303クローンではいかんの?
793 :
名無しサンプリング@48kHz :2013/04/23(火) 01:46:28.99 ID:pxuKeEZK
質問させてください。
他のどなたかが作ったVSTiとかVSTエフェクトを
自分のウェブサイトとかで再配布することって問題ないのでしょうか??
もちろん作者の人に許可を得たら、なのですが、そもそもvstのライセンス的に
大丈夫なのかという疑問です。(調べてみたんですがよく分かりませんでした)
例えば
http://www.kvraudio.com/product/dr_fusion_by_odo_synths のようなKVRのページですが、
このページは基本的にvsti作者のダウンロードサイトへのリンクを
貼るだけにとどめているように見えます。
教えていただけると嬉しいです。
795 :
793 :2013/05/01(水) 00:41:27.56 ID:9eYevdin
お礼のレス遅れましてすみません。 作者の許可いただければ大丈夫なのですね。 ありがとうございますー
796 :
793 :2013/05/01(水) 04:13:53.94 ID:9eYevdin
そしてすみません、若干スレチなのですが 基本的な楽器が大体揃っている軽量のドラムセットプラグインが 自分のウェブサイト上で再配布したいプラグインの1つとしてあるのですが、 何かおすすめのプラグインはないでしょうか。 MSGSのドラムみたいな感じでGM準拠、かつ国産だとなおよいのですが・・ (二次配布の許可を得るためのやりとりがしやすいため) なかなかそう都合のいいものってありませんよね。 もし丁度いいのがないのなら自作してみるのもありかなぁと思っているんですが、 上記のようなドラムセットのプラグインを作ろうと思ったら サンプリング音源にするのがよいでしょうか。 噪音をデジタルにエミュレートするのは結構大変そうなイメージがあります (二次配布ではなくただの配布になりますが・・
「VST ドラム」でググるとリンク集とかYouTubeでの紹介動画が見つかるね。 個人的にはそもそもなぜわざわざ再配布や二次配布を行いたいのか、に興味があるな。
リンク集のほうが確実に最新版が手に入るじゃんね 利用者側としても再配布のメリットがわからん
既に閉鎖されたサイトのVSTなら、自分のサイトに置く価値はなくはないだろうが、 開発元で配布しているならば、リンク貼って済ませた方が権利問題的にも安全だし。
800 :
793 :2013/05/07(火) 02:43:07.37 ID:T7mKxaFw
レス遅くなりました。 >個人的にはそもそもなぜわざわざ再配布や二次配布を行いたいのか、に興味があるな。 VSTホストを自作していまして今開発途中なのですが、 それを自分のサイトで配布できる状態になったらプリセットとしていくつかvstiを同梱したいんです。 オールインワンのフリーシンセを探しているんですがなかなかなく、 特にドラムシンセは国産では全然見当たらないですね・・ドラム以外ならなんとかなりそうなのですが。。 開発者のサイトが閉鎖してしまっているvstiとかもちらほらあるみたいですが、 勝手に同梱してしまったらだめですよね・・
>>800 正式に許可もらうか、著作権放棄してる物じゃないと違法じゃん。
将来的に同梱するんなら尚更その辺はちゃんとしといたほうがいいよ。
案外すんなり許可してくれるかもしれないしね。
俺も昔UNLHAとか流行った時にアーカイバ作って同梱配布してたな〜 VSTiもDLLでホストあってのもんだし何人か当たれば利害一致で許可くれる人は居ると思う
803 :
名無しサンプリング@48kHz :2013/06/06(木) 20:05:52.59 ID:MnLlh1u7
もっとがんばれっていう感じ
サイドチェインコンプをvstsdk2.4で実装しようとしているのですが、 サイドチェインに入力するトラックとメインのトラック間の通信はどのように実装すればいいのでしょうか? サイドチェイン用のdllを作成してdll間で通信すればよいというのは何となく分かったのですが、 具体的な実装法が分からず、詰まってしまっています。 どなたかvstsdk2.4でサイドチェイン対応エフェクターを作成した方がいらしたら、 dll間の通信方法をご教授いただけないでしょうか?
806 :
名無しサンプリング@48kHz :2013/06/24(月) 10:42:33.26 ID:0ZrAoK44
807 :
805 :2013/06/27(木) 16:55:48.67 ID:AVzjBFIs
>>806 回答ありがとうございます。
要求されている仕様がプロセス間通信を使ったものであるので、
リンク先を参考にしつつ開発したいと思います。
808 :
名無しサンプリング@48kHz :2013/09/03(火) 20:20:24.63 ID:gyQaZfz7
Steinbergが近々VST2 SDKの提供を終了する予定ですってよ奥様
やっとVST3の普及にテコ入れはじめたか 各デベロッパーも重い腰上げてほしいな sonarとかも対応せざるをえなくなるし
REAKTORだけはマジでさっさとVST3対応しろ
まずは主力のkontaktとかだろうなぁ NI自体対応する気なさそうだけど
812 :
名無しサンプリング@48kHz :2013/09/30(月) 06:10:32.69 ID:uCZRFuBo
813 :
名無しサンプリング@48kHz :2013/10/07(月) 00:09:22.58 ID:PimAHNQY
今までのマルチバンドコンプレッサーとはなんだったのかっていうような エフェクトvst作った。とりあえず図書館で特許の本借りてくる
midiやピアノロールで指定した音程やコードを読み込んだサンプルや入力した信号からマルチバンドなバンドパスフィルターで入力ノートの基本音周辺の音を動的に抽出するという VSTエフェクトのアイディアを温めてあったがデジタル信号処理がさっぱりで全然製作がはかどらなかった 興味があったら誰か実証試験やってくれ ノイズからでも音楽が作れる 入力ノートと入力信号のノートが違った場合倍音の多い楽器なら入力ノートと入力信号のノートをずらすことで新しい音も生まれるかも 数学苦手なんだよ 高卒()だけど知能がほとんど中卒だから それにワナビだし ADSRも付けるときっと楽しい フィルタのロールオフの特性をパラメータ化しても楽しいかもしれない やっぱこの発想ってロジック自体に無理があるのかな
815 :
名無しサンプリング@48kHz :2013/10/08(火) 17:11:43.86 ID:rE1UehnY
ボコーダーに近いような気もしますね。 抽出対象の音をキャリアに入力して 入力ノートを正弦波にしてモジュレータに入力すると 似たような動作が出来るのでとりあえず実験してみては?
816 :
名無しサンプリング@48kHz :2013/10/08(火) 17:13:16.86 ID:rE1UehnY
というかボコーダーをこうやって使えば 耳コピ補助にも使えそうですね。今気付きました
>>814 いきなりC++が敷居高かったら
MAX/MSPでもやってみたら?
>>814 VST作る前に、MaxやPureDataでロジックを検証したら?
819 :
57 :2013/10/08(火) 19:40:59.49 ID:uTH+vLq3
よく考えたらボコーダーそのままだorz Maxは高いのでpuredataって良さそうですね そのうち着手してみようども!
ReactorからVST書き出せれば いいのになー。
MaxもPDもロジック書きづらいじゃん。 まずC++で検証してからMaxに移植するくらいで丁度いい。
Max使う意味なくてわろた 目的と手段が逆になっとる
823 :
名無しサンプリング@48kHz :2013/10/17(木) 17:36:38.49 ID:FbNmgKFN
824 :
名無しサンプリング@48kHz :2013/10/20(日) 10:19:24.44 ID:RPB9bgXk
825 :
824 :2013/10/20(日) 10:46:24.19 ID:RPB9bgXk
ファイルロードはドラッグドロップです。
>>824 「libfftw3-3.dll」ってのが入ってるけど
これGPLライセンスじゃなかったっけ?
いいもの作ってもルール守らないと余計なトラブル招くよ。
827 :
名無しサンプリング@48kHz :2013/10/20(日) 17:16:01.33 ID:RPB9bgXk
そうでしたか。dllとして分離しているので、ライセンス表記が無いかfftwのソースコードが無いことが 問題として可能性があると思いますが。ちょっと調べてみます。 ダメなら自動で必要なものをダウンロードしてくるツールをつけたバージョンに変えます。 とりあえず消したので欲しい人は待っててください。
runtime exceptionじゃないGPLv2だから、dllもだめぽ。 どうしても厳密にライセンスに沿いたいというのなら、 dllのホストとアプリケーション本体を分離して、プロセス間通信で動かすようにしないとだめかな。
829 :
名無しサンプリング@48kHz :2013/10/20(日) 17:36:33.35 ID:RPB9bgXk
830 :
名無しサンプリング@48kHz :2013/10/20(日) 17:53:27.13 ID:RPB9bgXk
831 :
名無しサンプリング@48kHz :2013/10/20(日) 20:08:29.49 ID:RPB9bgXk
もっと昔にリミッターやコンプ機材類を開発していたメーカーが 既に存在する仕組みに類似している、等で訴えれば無効になる可能性は あるだろうが、あえて訴訟を起こす所もないのかね。
audacityもライセンスの都合でasio対応のバイナリ配布できないからな。 音楽界にもOpenGLみたいなフリーなのがあればいいのにね。
OpenAL…
PortAudio...
OpenSL...
SuperGL…
ハイエース乙
839 :
名無しサンプリング@48kHz :2013/11/10(日) 21:40:33.21 ID:Oncnr09S
俺はタウンエース派
道で売ってるパン屋さんできそうだな
VST2.XのSDKもう配布してないのかよ・・・ SONARX2だからテスト出来ねえしクソ
3の中に入ってた気がする
サンプル数カウントしてサイン波作ってみたけどこれめっさ音いいな!
サイン波で音がいいとか言われても・・・ サイン波ですら何らか味付いてるとしたら、基本波形の時点で既に歪んでるって事だろ
DACで歪んでるんだろ
そこで歪んでたら、良くはならんわなw
847 :
名無しサンプリング@48kHz :2014/04/21(月) 18:48:41.23 ID:AduD4j5N
今から新規でVST作るとしたら 2.4系が良いですか?それとも3.6系にするべき? あと32bit用と64bit用もそれぞれ作る必要があるみたいですが 32bitより64bit優先した方が良い? 他の人にも使ってもらうの前提です
そういう面倒なことに悩みたくないので Web MIDI API だと快適
より多くの人に使ってもらいたい、かつサイドチェインなしなら2.4だな。
steinbergからSDKの配布がなくなったのに2.4でやるの?
だってVST2の方がホスト数圧倒的じゃん。使ってもらってなんぼでしょ。
>>850 今なら 3.6 ダウンロードするともれなく 2.4 が付いて来ます !!
wwbMIDIAPIでやるのが良さそうなのでいまから勉強します。みんなありがとう。
>>853 VSTとWeb MIDI APIじゃ全く別物なのに
Web MIDI APIでやるのが良さそうとは面妖な
たしかに今ならVSTに限らず jazz pluginとかwebインターフェースも語るべきなんだけど このスレでやる訳にはいかないな zkunがもうちょっとコミュ力あったらなぁ
>>815 ども投げっぱなししたものです
改めて思うのですが正弦波だとバンドパスの指定ノートのトーン以外の倍音が出ないのでちょっと違うかと…
トリアーエズだwのオートメーション使いますw
>>857 あ、どうも
今数学勉強してるので読めたら読んで見ます
ありがとうございます
859 :
815 :2014/08/14(木) 11:19:19.81 ID:0+7KyFLi
心強い数学の専門家に数学指南などを受け本も色々読みましたがもう開発もDAW操作も病気の為できなくなりましたw どなたか興味を持っていたら引き継ぎお願いします 自分でやろうと思ってたけど10000人に1人の病気なのでもう不可能ですw
1万人に1人って結構多いよね?
861 :
815 :2014/08/14(木) 12:25:30.74 ID:0+7KyFLi
数字はさておきもうPCは長時間使えなくなったのでPCを使った長時間作業は無理です まぁ便所の落書き書く人間が1人居なくなってもどうでもいいじゃないですか この文章を書く事も病状を悪化させるのでもう消えます
863 :
861 :2014/09/10(水) 02:40:03.03 ID:Gi4nD9hT
ちょっと落ち着いて検査しに行ったら心臓がボロボロだった 落ち着いてきたからソースみようと思ったのにw はい以上妄想チラ裏 次にお前は「あっそw」と言う! バチでも当たったんやでw ストレスでポックリ逝くからもうここには来ないよ 死んでるかもしれないしw メシウマだろ?(ドヤァ
お大事に
windows7 64bit pcキーボード midiキーボードのかわり chrome web midi api のjavascript minihost vstのホスト asio4all synth1 vstのシンセ ブラウザから遅延もなく音が鳴らせた
肝心なこと書き忘れた loopMIDI 仮想MIDIポート
>>868 GJ
去年の VST2 で終わってるのかと思ったら
続きあったんだね
こういうサイトはありがたい
870 :
名無しサンプリング@48kHz :2014/12/05(金) 14:43:50.67 ID:YBjyUgDa
保守age
Designing Audio Effect Plug-Ins in C++: With Digital Audio Signal Processing Theory の続編 Designing Software Synthesizer Plug-Ins in C++: For RackAFX, VST3, and Audio Units が来年1月に出るようだ …しかし円安ドル高のおかげでペーパーバック版は1万越えかあ、はぁ
Cプラプラってなんだ ややこしいもの使って見ようとしてるんだな。。
873 :
名無しサンプリング@48kHz :2014/12/06(土) 09:46:49.49 ID:eCxrzlBR
板的にはC#だよな
>>871 有用な情報となるとやっぱり英語になるんだね…
875 :
名無しサンプリング@48kHz :2014/12/06(土) 17:27:16.85 ID:X4TW6uMj
cもC++もたいして変わらんだろ? どっちを使ってるかわからない人も多いしな。
>>875 流石にライブラリ含めて考えるとCとC++は全然違うぞ。
STLすらCには無いしな。
どっちを使ってるか分かってない初心者は確かに多いが ある程度学んだ段階で、中身がまるで別物であることを理解しなきゃならない
C++はちゃんと使えばCとは別物だけれど、VSTを作るような範囲で、なるべく処理を 軽くしようとすると、結局Cみたいな泥くさいコーディングをすることになる、 気がする。
879 :
名無しサンプリング@48kHz :2014/12/25(木) 18:18:02.37 ID:MRFbC9P2
パラメータの記憶ってどうやんの? DAWを再起動すると設定したパラメータが全部0に戻っちゃうんだけど プロセッサーの変数の中に記録しておくだけじゃダメなの? ちなみにVST3です
880 :
名無しサンプリング@48kHz :2014/12/25(木) 23:36:41.48 ID:fW0f7j2s
たぶんsetStateとgetState
881 :
名無しサンプリング@48kHz :2014/12/27(土) 10:50:53.26 ID:7tfAp/ix
882 :
名無しサンプリング@48kHz :2014/12/27(土) 13:14:56.09 ID:7tfAp/ix
setStateとgetStateの呼び出されるのが逆だった… 終了時にgetStateで読み込み時にsetStateだ
883 :
名無しサンプリング@48kHz :2014/12/29(月) 11:26:20.75 ID:SDffExmR
ありがとう! パラメータの保存できたよ! サンプルコードも非常に助かります!
ほしゅ
885 :
名無しサンプリング@48kHz :2015/01/26(月) 16:44:31.25 ID:0ogwkYJX
作ったVSTがVSTHostでは読み込めるんですが Cubaseだと読み込めません… 原因がまったくわからない…
もうちょい詳しく書く気ないのかとw 1. Blacklist に入っちゃった 2. vst effect 扱いになっててインストルメントのところから選べない。
887 :
名無しサンプリング@48kHz :2015/01/27(火) 16:07:24.59 ID:VJPG/QT5
>>886 言葉足らずですみません…
LeapMotionを使って音のパラメータを変化させるシンセサイザを作っています
オシレータとフィルタを実装した段階ではCubaseでも動作していました
GUI周りのプログラミングが難しくて手探りで何とか作ったのちにLeapMotionの
値を取得してパラメータに適用する部分を実装したらVSTHostでは動作してCubaseでは
動作しません
ちなみに普段はVSTHostだけで動作確認を行っていました
Blacklistに入っちゃう理由ってどのようなことがあるのでしょうか...?
>>887 Windows系のバージョン不明のOSでvstiの2系か3系を使用してバージョン不明の
cubaseなんだな。せめてどのように「動作しない」のかを書かないとわかんねえよ
3. リンクオプションの /MT とか /MD とかそんなやつ(詳細忘れた。関係ないかも)
4. GUIが別スレッドで動くことに対応できてない。
vsthostがシングルスレッドかどうか知らないけど、GUIとvst本体が同じ listやmap
なんかのデータを無防備に参照、編集してるなら、そこで落ちたりする。
blacklist は数がエクスポートされてないとかコールしたら戻ってこなかったとか、
動作しないと判断されたら以降無視される。blacklist.xml の該当箇所を削れば
元に戻るから。知らないならぐぐれ
あとvstiならvsthostより savihost のほうが便利だろ
889 :
名無しサンプリング@48kHz :2015/02/02(月) 22:28:40.29 ID:XisZ3ZZo
VST3 vstiの開発 6音ポリシンセを作成中です 鍵盤を一つだけ弾く場合はきれいに音がでるのですが 鍵盤を同時にたくさん弾いたり、連弾をすると キューベースのVSTパフォーマンスのメータが振り切れて ぶつぶつ音がきれるようになります VSTパフォーマンスのメータが振り切れた場合って みんなどうしてる? マルチコア対応のプログラムにする(できるのかはわからないが、、、) など ほかにパフォーマンスを上げる方法が何かあれば教えてください
whileループなどの"条件式"で処理に時間のかかる計算を 行っているようだったらそれを治すとか?
891 :
名無しサンプリング@48kHz :2015/02/02(月) 23:11:49.91 ID:jfFShzs0
どんな処理してるか分からないけど… たかだか6音のポリシンセで音がぶつぶつ切れるってことは 高速化とか以前の問題だと思う。 どこかボトルネックになってる部分があるはずだから そこを改善する必要があるよ。
テイラー展開してサイン波作ってそれを重ねて、とかみたいな馬鹿みたいな重い処理しない限り 6音程度でCPU振り切るなんて事無いはずだけどな
894 :
889 :2015/02/03(火) 16:22:43.96 ID:Xi3Ufj/B
みんなありがとう! VCO(デジタルだからVCOってのは変だけど)で波形を 一サンプル出力するたびにfor文を回してたのがボトルネックになってました ここを直したら128和音でも音がでるようになったよ!
895 :
名無しサンプリング@48kHz :2015/02/19(木) 16:33:23.97 ID:XKHg2K1S
VSTのGUIをGUIEDITERをつかって作成中なのですが パラメータによってコンテナやつまみの表示/非表示みたいなことって もしかしてできないのでしょうか GUIの表示を2ページに分けて 1ページ目はつまみ1とつまみ2 2ページ目はつまみ3 みたいに、あるスイッチで表示(ページ)を切り替えて つまみを表示したいです
896 :
名無しサンプリング@48kHz :2015/02/20(金) 02:09:59.91 ID:SrUOCtVC
CTabViewとか使えばいけるんじゃない?
897 :
名無しサンプリング@48kHz :2015/02/23(月) 22:04:40.62 ID:hV1gD+sj
4文字のIDはvst2.xじゃないかな。
現行の3.6のSDKで作るならCOMベースなので16バイトのIDだと思うけど。
UIDは確率的に一意にはるハズなので登録とか必要ない。
VisualStudioなんかのGUID生成ツールを使ってつくる。
人様のサイトですが
http://vstcpp.wpblog.jp/?p=694