ウェブオーディオAPIで音を出し、gainNodeを使って音量を変えました。 gainNodeの値を変更したとき、デシベルメーターは期待されていない数値を示しました。dbfsをdb splにキャリブレーションするには?
context.createGain();
var source=context.createOscillator();
source.frequency.value=1000;
source.start();
source.connect(gainNode);
gainNode.connect(context.destination);
gainNode.gain.value=Math.pow(10, dbfs/20));
when dbfs=0,the Decibel meter showed 90 dbspl;
when dbfs=-10,the Decibel meter showed 84 dbspl;
when dbfs=-20,the Decibel meter showed 78 dbspl;
when dbfs=-30,the Decibel meter showed 72 dbspl;
when dbfs=-40,the Decibel meter showed 62 dbspl;
when dbfs=-50,the Decibel meter showed 52 dbspl;
期待通りに実際のボリュームが変更されていなかった、そこにはgainNodeの値を生成する際に任意の間違いでしたか?私は80 db splまたはその他の特定の数値でサウンドを再生したいのですが、dbfsの値とgainNodeの値はどのようになりますか?
正弦波を使用する理由はあなたの返事にとても感謝します。それは私の本当の要求です。誰かの聴力レベルをテストするために、異なる周波数の音を再生する必要があります。その場合、私はdb meterとしてiphone6で実行されたアプリを使って、thinkpad x201をスピーカーとして使用しました。 iphone6はスピーカーから10cm離れています.dbの値は音の再生中に非常に安定していました。すべてのinpactを除いて、もし私のコードが理想的な条件で動くなら、dbfsが1dbを減らすとdbsplは1dbを減らすでしょうか? – user6731513
私はそれが助けになるかどうかをピンクノイズから開始することを提案します。そうであれば、それは本当にあなたが持っている反射についてです。ところで、あなたがマイクがちょうど10cm離れていると言っているのであれば、それらはテーブルの表面かそのようなものですか?それは多くの反省を生み出すでしょう。少なくともスタンドにデバイスを置いて、サウンドパスに十分近い反射面がないことを確認してください。 –
ありがとう、あなたのポイントは大丈夫です、私の環境はテストを行うのに十分ではありません – user6731513