Roland αJunoのDCO(2)

juno-dco-clock.jpg

前回、DCOはマスタークロックをカウンタでカウントして希望の周波数の信号を生成していることを書きました。
マスタークロックの生成方法やカウンタ周辺の回路は、Junoシリーズの中でも変遷しています。

Juno-6からJuno-106までは、8253というプログラマブル・タイマICが用いられています。
これは16ビットのカウンタですので、入力クロックを最大65536分の1まで分周できます。
1つの8253に3つのカウンタが入っており、Junoシリーズは6音ポリなので、8253を2つ使って6つのカウンタで6つの周波数を生成しています。
αJunoでは8253は使われておらず、DCOチップにすべて集約されています。

デジタル制御のオシレーターを採用したのはJUNOシリーズが最初で、その肝の部分で使ったパーツがNECのμPD8253というチップなんです。実はそのチップを使った製品はJUNOが最初ではなく、正確にはその前のEP-09(註:エレクトリック・ピアノ)で初めて使ってみたんですよ。それで上手くいったので、シンセサイザーでも使うことにしたと。

Roland – Roland Boutique 製品開発ストーリー #2

Juno-6/Juno-60の8253周辺の回路図です。
この頃は回路図もまだ手書きだったんですね。
8253のOUT1~OUT3からCH1~CH3のための信号が出力されています。

juno60-8253.png

左のほうに「1.902MHz」という記載がありますが、これがマスタークロックの周波数です。
メンテナンスマニュアルのP14の記載によると、マスタークロックの周波数は可変になっていて、

・ピッチベンダ
・LFO
・チューニング

の値を電圧で与えることによって1MHz~3.5MHzまで変動するようになっているそうです。
クロックを生成する発振回路はアナログで、可変容量ダイオード(バリキャップ)を使った、電圧で周波数を制御できる発振回路になっています。

マニュアルには、ピッチベンダやLFOがゼロ、チューニングが442Hzのときの例として、
「マスターオシレータが1902810Hz、カウンタの設定値が4305であるとすると、442Hzの矩形波が生成される」
と記載されています。つまり 1902810 / 4305 = 442 というわけです。

続くJuno-106では、発振回路が様変わりします。
下図は発振回路の周辺の回路図です。
水晶発振子が使われており、周波数は8MHz固定になります。
そして、その出力は4ビットカウンタ40H161で分周されてから8253へ送られます。

juno106-clock.png

この4ビットカウンタの設定値は、Juno106のDCO RANGEのパラメータで制御されると思われます。
このパラメータの16’、8’、4’という表現はオクターブを表します。8’(8フィート)が標準設定で、4’に設定すると1オクターブ高い音、16’にすると1オクターブ低い音が出力されます。

juno106-range.jpg

先ほどの回路図では、40H161のAがL、DがHになっていますので、設定値は1XX0になります。
つまり、設定可能な値は8(1000)、10(1010)、12(1100)、14(1110)となりますが、カウンタは4bitアップカウンタですので、設定値からカウントアップしていって16になったときにパルスが出力されます。
従ってそれぞれの設定値の場合の分周率は1/8、1/6、1/4、1/2ということになります。
DCO設定が16’のとき1/8、8’のとき1/4、4’のとき1/2に分周されるとすると、8253への入力は1MHz、2MHz、4MHzとなり、8’のときのマスタークロック周波数はJuno-6/60とほぼ同じ設定値になっています。

Juno-106では、マスタークロックにはピッチベンドやLFOの値が反映されません。
これらの値はA/DコンバータによってCPUへ取り込まれ、8253へ設定する値に反映されています。
ちなみにCPUは、NECオリジナルのμPD7810Gという8ビットプロセッサです。

αJunoでは8253はDCOチップへ集約されていますので、下図のような非常にシンプルな構成になっています。
クロックは12MHzになっていますが、これはCPUクロックとの共用になっています。
Juno-106でもCPUクロックは12MHzでしたが、DCO用のクロックは8MHzを別に用意していました。
こんなところもコストダウンの努力なのでしょう。

alpha-juno-clock.png

DCOチップの内部は分かりませんが、12MHzを1/3分周、1/6分周、1/12分周して4MHz、2MHz、1MHzを生成しているのではないかと思います。
ちなみに、αJunoではDCO RANGEに32’という設定も追加され、標準よりも2オクターブ低い音も出せるようになっています。なので、1/24分周した500KHzも生成しているかもしれません。

ピッチベンドやLFOはJuno-106同様、A/Dコンバータでデジタル化して、DCOでの分周カウンタの設定値へ反映されます。
αJunoのCPUは、有名な8051という8ビットCPUの強化版である8052の内蔵ROM無し版である8032です。
このCPUにはA/Dコンバータは無いので、A/Dコンバータは専用チップμPD7001Cが使われています。

というわけでようやくピッチ信号生成の説明が終わりましたが、次回は波形生成を見ていきます。

コメント

  1. きよすく より:

    初めまして
    最近α JunoのDCOについて調べています
    海外の掲示板ではα Junoのオシレーターがデジタルなのかアナログなのかの議論がされており、自分もどちらなのか気になっています
    boochowさんのご意見を伺いたいです

  2. boochow より:

    ご質問ありがとうございます。

    今の時点でその議論があるのだとすると、たぶん「鋸波のスロープはどうやって作られているのか」という話かなと思います。チップの中身を見ないと確定的なことは言えませんので、私も記事にはしませんでした。

    まず、いくつか考慮すべき点があります。

    (1)鋸波の倍音は30KHz超まで出ている
    αJunoの生の鋸波をキャプチャして倍音分布を見てみると、32KHzあたりまで綺麗に出ていることが確認できます。

    https://blog.boochow.com/article/logue-sdk-wavetable-4.html

    エイリアスノイズのようなものもありませんので、まず波形としては全くアナログオシレータと遜色ないものであることは確かです。

    (2)αJunoは安価
    もともと廉価機として企画されていますので、仮にデジタルにするとしたら「アナログよりも低コストか、少なくとも同等コスト」ということが必要だったはずです。例えば現代のデジタルシンセのようなDACチップを使うPCM方式は、当時としては高価すぎて採用不可能です。

    (3)DCOに外付けコンデンサがない
    これもよく議論に出てくると思いますが、Juno106までの回路では鋸波をつくるためにコンデンサの充放電を繰り返しています。しかし、コンデンサは容量に比例してサイズが大きくなるため、ICの中に作りこむのではなく外付けにするのが普通です。しかし、αJunoのDCOには外付けコンデンサがありません。そのため、Juno106までとは違う方式で鋸波を作っているのではないか、という疑問が出てきます。

    Juno-60でDCOに使われていたコンデンサは0.001uFでした。DCOチップの中にこのクラスの容量のコンデンサを内蔵させるのは不可能だ、ということであるなら、αJunoはJuno-106までとは別の方式で鋸波をつくっているはずだ、ということになります。残念ながら、私はIC設計の専門家ではないので、当時の技術でこの容量のコンデンサをICに内蔵させることが可能だったかどうかは分かりません。

    以上を踏まえての、ここからは全くの私見、推測で、特に調査もしていないのですが・・・

    Junoシリーズでは「タイマーを使ったDCO」が共通の技術で、これはおそらくαJunoでも変わっていないだろうと思います。

    ただ、「パルス波」「鋸波」だけに限れば、Juno-106までで用いられていたのとは異なる生成方法もあります。それは、カウンタのカウント値をそのままDA変換するという方式です。

    この場合はラダー抵抗を使った簡易的なDACで鋸波の波形を作ることができます。MIDIでの最高音階の周波数は約12.5KHzなので、カウンタのクロックが4MHzなら320分周くらいになります。つまり、12.5KHzの鋸波を320段の階段状の波形で作るということです。

    最高音階での量子ビット数が8ビットちょっとしかないので、音質的には苦しいですが、廉価機だし許容できないことはないかなあという気がします。

    ただこの場合の技術的な問題は、音量が音高によって変わる点です。カウンタが16ビットだとすると、12.5KHzの音の音量は320/65536と非常に小さい音になってしまいます。S/N的には不利ですが、音高によってゲインが変化するようなアンプで増幅することが必要になります。でも、これはJuno-106までの回路で鋸波の波形生成用のCVを音高ごとに変化させているのと、そんなに変わらない気もするんですね。

    DCOチップにコンデンサが内蔵できなくて、でもコストはJuno-106までと同等で、となると、もし私が当時の技術者だったら、思いつきそうだし検討はしそうな気がします。