したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

C++でVST作りの指摘・質問

5328:2013/04/16(火) 14:17:44
管理人様

お世話になっております。
数ヶ月ほど前、色々と質問させていただきました28です。

簡易daw的なものを作っており、いただいたアドバイスのおかげもありまして
それになりに音を再生できるようになってきていますが、
また分からないことが生じたため質問させていただきに来ました。

vstiが返す波形データについてなのですが、
synth1が返す波形データをざっと眺めたところ -1.0〜1.0 の範囲で収まっているように見えました。
また
http://www13.plala.or.jp/kymats/study/MULTIMEDIA/waveOut_create.html


「16ビットの場合は、-32768〜32767 の範囲で振幅値を表現します。0 が中心(振幅なし)です。」

とあったので、
synth1から帰ってきたサンプルの値それぞれに 32768を掛け、-1を引くというやり方で
波形データを生成してみたのですが、
その波形データをwaveOutWriteで書きだして発音させる際、
音が大きかったり何音も重なっていたりすると音が割れることがあるのに気付きました。
調べてみると、最初はsynth1から返ってくるサンプル値は全部 -1.0〜-1.0に収まっていると思っていたのですが
実際にはたまに -1.0〜1.0に収まらない値 (1.01など)がsynth1から返ってきていることが分かり、
そのサンプルを発音させようとした際に音が割れてしまっているようでした。

そこで2点お伺いしたいのですが、
vstiは基本的に -1.0から1.0までの範囲での値しか返さないようになっているなどの決まりはないのでしょうか?
またvstiから帰ってきたデータを16ビット用のwaveデータに変換する際、
32768を掛けて-1するというやり方は何か間違っている気がするのですが、
他によい方法はありますでしょうか。

ご教示いただけると嬉しいです。
宜しくお願いします。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板