板情報 | コンピュータ ]

1  C++でVST作りの指摘・質問  (書き込み数 : 195)

1管理人   :2010/12/10(金) 18:06:52  
「C++でVST作り」内の誤記やサンプルコードのバグ、指摘・質問等がございましたらこちらへお願いいたします。

C++でVST作り→http://www39.atwiki.jp/vst_prog/
189猫十   :2018/06/30(土) 22:28:26  
管理人様

お世話になっております。

こちらこそサンプリング周波数とデータサイズの関係に考えがいたらず、お手数をおかけいたしました。

まだまだ課題は山積みですが引き続き頑張ります。
またお尋ねさせていただくこともあるかと思いますが何卒よろしくお願いいたします。
190猫十   :2018/07/15(日) 22:14:17  
管理人様

こんばんは。
またまた書き込み失礼します。

2.4でWAVファイルを読み込むサンプラーもどきを作っています。
VSTクラス(AudioEffectX)で読み込んだWAVファイルの情報を文字列としてGUIクラス(AEffGUIEditor)に送りたいのですが方法がわかりません。

VSTクラス(AudioEffectX)とGUIクラス(AEffGUIEditor)間で相互に文字列を受け渡すにはどうすればよいのでしょうか?

いつも質問ばかりですいません。
何卒よろしくお願いいたします。

猫十
191管理人★   :2018/07/16(月) 13:53:10  
猫十さん

2.4ではやったことがなく、すでに開発環境もないので試せませんが、
下記の方法で出来るのではないでしょうか?
(コードのイメージは全角スペースになっているのでご注意ください。)

①音声処理クラス側(AudioEffectXを継承したクラス側)で文字列を受け取る関数を定義する

class MyVST : public AudioEffectX
{
public:
  // 引数の文字列 fileをメンバー変数のfilepathに設定する関数
  void setFilePath(char* file) { strcpy(file, filepath); };

  ~~以下略~~
(省略されました・・全てを読むにはここを押してください)
192管理人★   :2018/07/16(月) 15:45:38  
猫十さん

すいません。今質問を読み返して逆方向だということに気付きました

やりかたは>>191と同様で出来ると思います。
(コードのイメージは全角スペースになっているのでご注意ください。)

①GUIクラス側(AEffGUIEditorを継承したクラス側)で文字列を受け取る関数を定義する

class MyGUI : public AEffGUIEditor, CControlListener
{
public:
  // 引数の文字列 fileをメンバー変数のfilepathに設定する関数
  void setFilePath(char* file) { strcpy(file, filepath); };

(省略されました・・全てを読むにはここを押してください)
193管理人★   :2018/07/16(月) 15:49:25  
>>192
誤記がありました…。

【誤】
②音声処理クラス側(AudioEffectXを継承したクラス側 MyVSTとする)で
 CTextEditコントロールなどから文字列をうけとった際に通知する処理を追加する

【正】
②音声処理クラス側(AudioEffectXを継承したクラス側 MyVSTとする)で
 ファイルパスを渡す処理を追加する。
194猫十   :2018/07/18(水) 01:46:05  
管理人様

頂きました回答をもとにさっそく試してみたところ、
AudioEffectX側からAEffGUIEditor側へ文字列を送ることができました。(その逆もできました。)

具体的には
AEffGUIEditor側でFileSelector経由で読み込んだファイルのフルパスをAudioEffectX側に送り、
AudioEffectX側でWAVを読み込んで発音部にセット、
読み込んだWAVのサンプリング周波数やビットレートその他の情報(デバッグ用にチャンク位置とか)をAEffGUIEditor側に送って表示
です。(VSTiなサンプラーとしてこのやり方が合っているのかどうかわかりませんが・・・。)

排他処理は入れていないのですが基本的な動作はOKっぽくなってきましたので
実際の曲で市販のプラグインと混ぜて使ってみようと思ってます。

いつも本当にありがとうございます。
(省略されました・・全てを読むにはここを押してください)
195管理人★   :2018/07/19(木) 22:37:42  
猫十さん

動いてよかったです。

VSTのサンプラーとしてやり方があってるかどうかはわかりませんが、
私はプログラムに正解はないと思っています。
想定通り動いたのであればそのやり方でいいと思います。
名前
E-mail(省略OK)
内容

2  こんにしょわ  (書き込み数 : 3)

1めるり   :2014/09/25(木) 06:43:08  
どうも
某所で過労死しかけてたのを病気だと思ってさらに死にかけてた者です><
時々お邪魔しますー
というかあれもう落としてます><
レジストリのいじりすぎとシステムドライブの中身がカオスになったので環境入れるところからですけどねー

ではではー
2管理人★   :2014/09/25(木) 22:33:33  
めるりさん

書き込みありがとうございます。

某所がもっと活発になればと思い作ってみました。
不明点などがございましたら質問いただければと思います。

これからもよろしくお願いします。
無理をなさらないようお体にお気を付けください。
3名無しさん   :2016/07/27(水) 01:43:04  
こんにょしょわ。今更やろうと思ってます
素敵な掲示板とwikiですね。今からじっくり見てみようと思います
名前
E-mail(省略OK)
内容

3  はじめまして。  (書き込み数 : 25)

1shun   :2011/05/01(日) 15:46:24  
はじめまして。
個人的にVSTプラグインの開発に挑戦しています、shunと申します。

VST開発の情報を探していたところ、このページを見つけました。
とても有益な情報をありがとうございます。

今後こちらの掲示板の方に質問などを書き込ませていただくことがあるかもしれません。
もし、お時間がありましたらお答えいただけたらと思います。

作成中のコンテンツの完成を楽しみにしています!
19管理人   :2012/01/26(木) 11:29:53  
willさん
返信が遅れました

resource.rcは作成しておりますでしょうか?
作成している場合、プロジェクトへ追加しておりますでしょうか?
20sam   :2012/05/22(火) 16:06:26  
こんにちは
今、自力で VST Plug-in 作成にチャレンジしています。
プロジェクトの作成方法などだいたい同じやり方でやっております。
もっと早くココを知っていれば、もっと楽に早くできたのに。。。。。

一つだけ質問です。

VC++ プロジェクトの準備
No.4 VSTを作成するに当たって必要なコンパイラ、リンカ設定を追加する
http://www39.atwiki.jp/vst_prog/pages/61.html
において、
プロジェクトプロパティ→「構成プロパティ」→「C/C++」→「コード生成」
→「ランタイムライブラリ」を「マルチスレッド(/MT)」に設定されておりますが、
その理由というか必然性を教えていただきたいと思います。

(省略されました・・全てを読むにはここを押してください)
21管理人   :2012/05/23(水) 00:14:18  
samさん書き込みありがとうございます。

プロジェクトの設定を/MTにしないとエラーがでてビルドできなかった気がします。

現在パソコン修理中ですぐに確認することができませんが、
わかり次第連絡させていただきます。(今週末あたりになりそうです。)
22管理人   :2012/05/29(火) 21:41:28  
samさん

「ランタイムライブラリ」の設定ですが、
「マルチスレッド(/MT)」でなくてもビルドはできます。
ただし、自分のパソコン以外で実行するとエラーとなり、
実行できない可能性があります。

なお、確認の際に、「ランタイムライブラリ」を
空白にしようとしましたができませんでした。
プロジェクトのプロパティダイアログで左上の「構成」が
「すべての構成」になっていないでしょうか?
23SKY   :2013/02/02(土) 20:51:53  
VSTの仕様が知りたかったので
わかりやすく書いてあってとても参考になりました。
ありがとうございました。
24管理人   :2013/02/03(日) 15:22:28  
SKYさん

訪問いただきありがとうございます。

わかりにくい部分や作成中の部分がありますが、
わかる範囲でお答えさせていただきますので
これからもよろしくお願いいたします。
25<削除>   :<削除>  
<削除>
名前
E-mail(省略OK)
内容