3

大規模な VST が正と負の数でそれを示す方法のオクターブの種類を変更できる単純なオシレーター プログラムを作成しようとしています。

大規模な発振器
(出典: massynth.com )

ここで、1 オクターブが 1200 セント (半音あたり 100 セント) であることを知っています。私が直面している問題は、Osc コードを作成しているときに、そのピッチがセントで測定されていることに気付きました。

ctx = new webkitAudioContext(); 
function osc1(pitch){ 
osc = ctx.createOscillator(), 
osc.type = 2; //0 = sine, 1 = square, 2 = saw, 3 = triangle, 4 = custom
osc.frequency.value = pitch; //in cents
gainNode = ctx.createGainNode(); 
osc.connect(gainNode); 
gainNode.connect(ctx.destination);
gainNode.gain.value = 1; 
osc.noteOn(0); 
};

osc1 (20);

ピッチはノートの周波数を変更するので、私が混乱しているのは、MIDI キーボードがなければどうやって知ることができるかということです

  1. どの音符が演奏されていますか?
  2. ノートが再生されている周波数は?

さらに、これらの波形から低音の効いたサウンドを得るにはどうすればよいでしょうか? 1 セント、2 セント、5 セント、20 セントなどでサウンドを生成するいくつかのテストを行って、それらがどのように聞こえるかを確認しました。Osc が 1 セントでピッチを生成すると、低いクリック音しか得られません。 2 セント、4/4 ビートでほぼ同じクリックが得られます。私の理解では、周波数は地図上の点のように見え、同様に、セントはそれらの点の間の距離のように見えます。そうは言っても、サウンドはブラウザから直接生成されているため、セントはどのようにして音符の周波数を決定できるのでしょうか? また、オシレーターのピッチを動かすだけの簡単な場合、オシレーターはどの音から始まりますか? 言い換えれば、あなたが「ピッチング」しているのはどの音ですか?

私自身がかなり混乱していることを考えると、私が書いたことが理にかなっていることを願っています.

助けとフィードバックをありがとう!

4

2 に答える 2

7

ピッチは Hz (1 秒あたりのサイクル数) で測定され、音符とその音符からの偏差としてセントで表すこともできます。あなたが正しく指摘したように、1 セントは半音の 1/100 または 1 オクターブの 1/1200 です。

セントを変換する鍵は、ピッチの進行が直線的ではなく幾何学的であることを理解することです。A は 440 Hz として定義されます。その 1 オクターブ上の A は 880Hz、次のその上の A は 1760Hz などです。2 つの A 音の Hz の差は、オクターブが上がるごとに 2 倍になることに注意してください。

数学的には、特定のピッチから始まる次の半音は、固定の Hz 数ではなく、2 の 12 乗根 (2 1/12 ) である比率だけ大きくなります。セントは 100 分の 1 であるため、その比率は 2 の 1200 乗根、つまり 2 1/1200です。オクターブごとに Hz を 2 倍にすることを忘れないでください。半音ごとに、周波数に 2 1/12を掛けます。これを 12 回行うと、元の数が 2 倍になります (440 * (2 1/12 ) 12 = 440 * 2 = 880)。同様に、(440 * (2 1/1200 ) 1200 = 880) です。

エクセルで試してみてください。

Cell A1: 440
Cell A2: =A1*2^(1/1200)
Cell A3: ...copy A2 down...
.
.
.
Cell A1201:

これを正しく行うと、セル A1201 には魔法のように値 880 が含まれ、その間のすべてのセルが各セントの頻度を示します (ただし、すぐ下の重要な警告を参照してください)。

残念ながら、それほど単純ではありません。私が説明したのは、今日誰も使用していない数学に基づくピタゴラス音階です。この方法でピアノを調律すると、C メジャーと A マイナーはおそらくかなり良い音になるでしょうが、他のキーはひどく調子がずれて聞こえます。この理由は、聴覚の生理機能に関係している微妙なものです。音律に関する学術書はすべて存在し、バロック時代には熱く議論され、いくつかのシステムがマインドシェアをめぐって競い合っていましたが、ほとんどの場合、バッハは、キーボードが簡単に音律を保つことができなかったために、誰もが良い音律を使用することを「決定」しました。気質が変わった。

今日のミュージシャンは、平均律と呼ばれる修正を使用しています。これは、一部の音を数学的に完全な状態からわずかに上下に調整して、すべてのキーを再調整せずに使用できるようにするものです。それは妥協ですが、私たちは皆、それを聞くことに慣れています。間隔は正確には 2 1/12ではないため、セントの定義は間隔ごとに各間隔の実際の幅にわずかに依存するということを除いて、これ以上説明しません。セントは 0 から 100 までの点の集合であり、2 つの音符の間に等間隔に配置されていますが、一定量の Hz ではなく固定比率(2 1/1200 ) に基づいています。

音符を提供する正確な発振器を作成したい場合は、音律を研究し、現在の音楽慣行に一致するように Hz 値を調整する必要があります。音律に関する優れた本や、さまざまな音律を扱うチューナーが必要です。スピーカーへの入力と出力の両方で、さまざまな音律を行う iPhone アプリがいくつかあります。

頑張って楽しんでね。

于 2013-10-26T08:26:27.357 に答える
4

または、簡単な方法で実行します-オシレーターには「デチューン」AudioParameterがあり、ピッチをセント単位で上下に調整できます(オシレーターの周波数パラメーターに基づいて;要するに、周波数はベースラインです(あなたが指摘したように、デフォルトはAです) -440Hz)、デチューンはセント単位のオフセットです)。:)

于 2013-10-26T13:53:33.933 に答える