Elector Jan 1976を翻訳し、 Top Octave Synthesizer (TOS)について学ぶ。

Elector Janualy p.144より和訳。図はキャプチャー画像。

電子オルガンにおける分周器の使用は長年知られています。
通常の手順では、2分割ステージを使用して最高オクターブの音を分割し、より低いオクターブを取得します。
最近まで、最高オクターブの12音に12個の独立したマスターオシレーターを使用するのが一般的でした。
このアプローチの欠点は、オルガンをチューニングするときに12個のオシレーターを調整する必要があることです。
熟練した耳を必要とする手順。
発振器は独立しているため、電源電圧の変動、温度変化、部品の経年劣化によってオルガンのチューニングが狂う可能性があります。
デジタルマスターオシレーターでは、トップオクターブのノートが単一のクロックジェネレーターから導出され、
すべて単一のクロックジェネレーターにロックされているため、そのような欠点はありません。
チューニングはクロック周波数を変更するだけで完了します。
クロック周波数がドリフトしても、ソロ演奏時にはノートの相対的なピッチが変わらないため、ドリフトに気づくことはありません。
デジタル音源の方式には様々なものがありますが、どれも特有の長所と短所がありますが、
これらのうち最も興味深いものについては、次のテキストで説明します。
平均律主音階の半音間隔は12ルート2または1.0594631に等しくなります。
つまり、任意の音符の周波数は、その半音下の音符の周波数の1.0594631倍になります。
この周波数比を達成する最も明白な方法は、クロックジェネレーターの出力を分周することです。
12個の音符のそれぞれに個別のディバイダーチェーンを使用します。
この方法を図1に示します。


各ノートの精度は使用する分周器チェーンの長さに依存し、
示されている分周比では各ノートに30桁のカウンタが必要です。
長い分周器チェーンを使用するには、高いクロック周波数が必要となり、コンポーネントのコストが高くなります。
この問題に対する2番目のアプローチでは、12root2の適切な近似である分数196/185を使用します。
このシステムの原理を図2に示します。
 

クロックジェネレータの出力は、196個のクロックパルスごとに185個を通過させ、残りの11個を抑制する回路に供給されます。
この回路の出力は同様の回路に供給されます。したがって、各出力は196個の入力パルスに対して185個の出力パルスを生成します。
ただし、長期平均周波数は正確ですが、11個のパルスが欠落しているギャップがあるため、出力波形は非常に不規則になります。
つまり前の出力の周波数の185/196になります。
185/196分周器の実際の実現を図3に示します。


ここでは、2つの74934ビットバイナリカウンタが14分周カウンタとして接続され、カスケード接続されて196カウンタが作成されます(196は14^2に等しいため)。
最初にフリップフロップIC3はリセットされているため、クロックパルスはANDゲートA4を通過できません。
7493はクロックパルスをカウントし、11番目のクロックパルスでA3の出力からのパルスがフリップフロップをクロックします。
フリップフロップのQ出力がHighになり、A4を介したクロックパルスが可能になります。
196番目のクロックパルスでN1の出力がLowになり、フリップフロップがリセットされ、サイクルが繰り返されます。
この方法で達成される半音間隔の精度は高くなりますが、ジッターを抑制するために長い分周器チェーンが必要になるため、コストが増加します。
この時点で、185/196分周器を直接使用した市販のICを検討する価値があります。
これにより、「ジッター」として知られる可聴効果が発生します。
幸いなことに、波形のマークスペース比が1になる傾向がある場合、
分周器の出力を一連のバイナリ(2分周)ステージに通すことでジッターを軽減できます(タイミング図でこれを示します)。
これは、図2のブロック'T'の機能です。
ジッターを適切なレベルに低減するために必要な分周器の段数は約7であるため、これは、クロック周波数が最高音の2^7倍でなければならないことを意味します。
この原理を利用することです。
これはIntermetallSAH190で、その内部ブロック図を図4に示します。


ジッターは12root2ステージがカスケード接続されるほど悪化するため、ジッター抑制に必要な後続の2分割ステージの数は出力のジッターに依存します。
最後の12root2ステージ。
Intermetallは、12個のカスケード接続された12root2ディバイダーを使用するのではなく、
4個のカスケード接続された3半音または6root2ディバイダー(分数44/37で表される)と、
1半音(12root2)および2半音(6root2)ディバイダーを使用することで、この問題を克服しました。
それぞれ196/185と55/49の分数で表されます。
これらのICを3つ使用した完全なマスターオシレータを図5に示します。

最初のICはクロックジェネレーターから直接入力を受け取ります。
2番目のICは、最初のICの12root2分周器から入力を受け取ります。
3番目は最初のICの6root2分周器から入力を受け取ります。
したがって、最初のICは、各音の間に3半音の間隔を持つ4つの音を生成します。
2番目のICの出力も3半音離れています。
ただし、それぞれは最初のICの対応する出力よりも半音低くなります。
同様に、3番目のICの出力はすべて、1番目のICの対応する出力よりも2半音低くなります。
したがって、たとえばCが最初のICの出力f1から得られる場合、Bは2番目のICのf2出力から得られ、Bbは3番目のICのf3出力から得られます。
このようにして、12個のカスケード接続された12root2分周器の使用が回避され、ICに含まれるジッタ防止回路が簡素化されます。
4番目のシステムには、2の負の累乗のべき級数として12root2を表現することが含まれます。
方程式12root2=2^0+(2^-1+2^-4+2^-5)/10+(2^-7+2^-10)/100
は12root2を2*10^-7だけの誤差で表し、12root2は1.059462890625となります。
これはかなり洗練された解決策のように見えますが、残念なことに、最大2^-10のべき乗が必要です。
これは、各除算器に102による除算ステージが必要であることを意味します。
さらに、これらの除算器の出力はOR演算される必要があります。
さらに、ORゲートを通過した後にすべてを個別にカウントする必要があるため、
個々のパルス列のマーク/スペース比は、パルスが一致しないように修正する必要があります。
これから説明する5番目の最後のシステムも2のべき乗の組み合わせを利用します。
ただし、選択した分周比を取得するためではなく、必要な周波数を直接合成するためのものです。
部分周波数のパルス列を加算することで、任意の周波数を生成できます。
実用的な側面は次のとおりです。
もちろん、この単純な説明よりも複雑です。
平均律主音階の音程に比率が対応する周波数を正確に合成することはできません。
半音間隔12root2は無理数であるためです。
ただし、任意の周波数で最も低い部分周波数要素を最大のものと比較して非常に小さくすることで、必要なだけ近づけることができます。
この場合、部分周波数は一連のバイナリ(2分周)ステージでクロック周波数を分周することによって取得されるため、
達成可能な精度は2^nの1部分になります。
ここで、nは分周器ステージの数です。
音楽出版物から、削除されずに残る最大許容周波数誤差は約0.05%、または2000年の1分の1であることが明らかです。
11バイナリ分周器の使用ステージにより、1部2^11または2048の精度が得られます。
ジッターは部分周波数を追加するときにも発生するため、シンセサイザーの出力の分周器チェーンによって除去する必要があります。
十分にジッターのない出力を生成するには8つのバイナリ分周器ステージが必要であるため、
C5(4186Hz)を得るには、シンセサイザーの出力周波数は約2MHzである必要があります。
個々の音がどのように合成されるかを確認するには、図6と表1を参照する必要があります。

表1は、オクターブの12個の音を周波数比として表しています。
したがって、C5を1.000..(2進数の1.0000)とすると、周波数の2倍であるC6は10進数の2.000になります。
(バイナリ10.00..)と他のノートはその間にあります。
したがって、2進数の対応する列に「1」がある場合、除算器ステージからシンセサイザーへの入力を取得することによって、特定の音を合成できます。
したがって、たとえば、Eはバイナリ1.0100001010で表されます。
したがって、2^0、2^-2、2^-7、および2^-9分周器からの入力が必要です。
ただし、これらの分周器によって提供される周波数を単純にOR演算することはできません。
この理由は図6で明らかです。
たとえば、2^0と2^-3の出力がOR演算された場合、ORゲートの出力は次のようになります。
2^0波形は2^-3波形がLowでしたが、すぐにHigh
クロック周波数の2倍の負の整数乗である2つのC、C5およびC6は合成する必要はなく、入力分周器段(FF1~FF11)の適切なフリップフロップから単に取得されます。
改良点として、クロックジェネレーターの周波数を変調するだけでビブラートをシステムに導入できます。
ノートのピッチがオクターブ単位で上下にジャンプする「オクターブトレモロ」として知られる効果は、
クロックジェネレーターと入力分周器の間に追加のフリップフロップ(FF12)を挿入し、それを切り替えることによっても得られます。
オクターブトレモロオシレーターを使って回路から外します。
このマスターオシレータの実際の回路と構造の詳細については、この記事の第2部で説明します。
になるとORゲートの出力がHighになり、2^0波形は影響を及ぼしません。
これにより、周波数は2^0より低く、2^-3より高くなりますが、望ましい結果は2つの周波数の合計でした。
これを回避するには、波形のマークとスペースの比を変更して、ORゲートに印加されたときに2つのパルスが重ならないようにする必要があります。
これは、低周波出力と高周波出力の補数をAND演算することで実現され、高周波出力が低い間は低周波出力のみが高くなり、2つの高出力が一致することはありません。
これを図6の下部に示します。
2^0は2^1とAND演算されるため、2^1がローの場合にのみハイになります。
2^-1は2^0および2^1とAND演算され、最終的に2^-10が他のすべての出力の補数とAND演算されます。
したがって、さまざまなパルス列は、どのパルスも決して一致することなく、それらを論理和演算することによってインターリーブすることができます。
図7は、上で概説した原理を使用したマスターオシレータのブロック図を示しています。

部分周波数は、一連のフリップフロップを使用して分周することにより、クロックジェネレーターから取得されます。
フリップフロップには0出力とQ出力があるため、さまざまな出力の補数が利用可能です。
2^0(クロック周波数の半分)から2^-10までの出力が必要なため、11個のフリップフロップが必要です。
出力は、前述したように他の出力の補数とAND演算され、2^0~2^-10として示される11個の出力が得られます。
これらの出力は必要に応じてOR演算され、正しい周波数比が得られます。
最後に、各出力は8つの2分割ステージを通過してジッターを除去します。
出力では最高オクターブの11ノートが利用可能です。
改良点として、クロックジェネレーターの周波数を変調するだけでビブラートをシステムに導入できます。
ノートのピッチがオクターブ単位で上下にジャンプする「オクターブトレモロ」として知られる効果は、
クロックジェネレーターと入力分周器の間に追加のフリップフロップ(FF12)を挿入し、それを切り替えることによっても得られます。
オクターブトレモロオシレーターを使って回路から外します。
このマスターオシレータの実際の回路と構造の詳細については、この記事の第2部で説明します。

コメント