【C64音源】Commodore64をエミュレートしたプラグイン『SID』でチップチューン作り

今日は、フリープラグインである「SOCALABS 8-BIT TREATS」から、「SID」で音弄りなどをして遊んでみたいと思います。

 

こいつはすごいですよ、Socalabs 8Bit Treatsの4つのエミュレートプラグインの中でも、かなり性能がいい。それもそのはず、他がゲーム機に対し、SIDだけはCommodore 64というコンピュータの音源エミュレート。ホームコンピュータではあるものの、1980年代、北米ではファミコンが入ってくる前に、ゲーム機としても一時代を築き、欧州でもかなりの人気があったといいます。

なんかこう、一人だけフルアーマーみたいな印象。

 

スポンサーリンク

SIDの仕様を確認

  • Commodore64(C64)をエミュレート
  • 3基のオシレーター(矩形波・三角波・ノコギリ波・ノイズの4種類の波形)
  • オシレーターごとのADSR機能
  • リングモジュレーション(三角波出力切り替え)とオシレーター間のハードシンク機能
  • ハイパス・バンドパス・ローパスフィルター

 

というわけで、矩形波2・三角波1とかいうレベルではなく、3基がそれぞれ波形4つも使えるというなかなかのパワフルさ。しかも、Attack、Decay、Sustain、Releaseの設定もそれぞれ行えて、Tune、Fireもあり、ハードシンク、リングモジュレーションまで出来る。更にトータルにLowPass、BandPass、HiPassがついていて、右下にCutoff、Resonanceもある。

ファミコンと比べるのも少し土俵違いな気もしますが、随分出来る内容が豊富です。音源チップのSIDとは「Sound Interface Device」の略なので、まさに当時の音に特化したチップですね。

 

 

SIDの操作方法

まず、具体的なパラメータを見ていきます。

  • 左にあるのがオシレーター3基。Off/OnでSquare(矩形波)・Triangle(三角波)・Saw(ノコギリ波)・Noise(ノイズ)にそれぞれ変更可能。
  • オシレーターそれぞれにリングモジュレーション、ハードシンク付き。
  • PWは「Square(矩形波)」の時のみ反応。デューティ比の変調で0~100%
  • Aの値は、2、8、16、24、38、56、68、80、100、240、500、800[ms]、単位上がって1、3、5、8[s]
  • D・Rの値は、6、24、48、72、114、168、204、240、300、750[ms]、単位上がって1.5、2.4、3、9、15、24[s]
  • Sの値は、0、7、13、20、27、33、40、47、53、60、67、73、80、87、93、100%
  • LP、BP、HPはチャンネルごとにBypassのON/OFF切り替え可能
  • Cutoffは、220~17999Hz
  • Reso・Volumeは、Sと同じ固定値ごとで、0~100%

画面右のフィルターは、通したくなければバイパスしてしまえば音はそのまま出力されますが、通した場合は、3つのフィルター最低1つはOnにしないと音は出力されません。

 

4種類の波形

3基のオシレーターではそれぞれ4種類の波形が出せます。種類は、

  • Square(矩形波)
  • Triangle(三角波)
  • Saw(ノコギリ波)
  • Noise(ノイズ)

の4つ。正弦波のみ、音色としてないだけですね。

 

ハードシンクとは

ハードシンクというのは、二つの周波数を同期させて新たな波形を作り出す機能のこと。

これはハードシンクの簡易図ですが、上図のように、周期の短いオシレーター2(緑)を使って、周期の長いオシレーター1(赤)にシンクをかけます。すると、オシレーター1(赤)オシレーター2(緑)が1周期するごとに波形が一旦リセットされ、結果的にオシレーター1は新たな波形を作る事になる

オシレーターシンクにはハードとソフトがありますが、一般的にはこのハードのことを指すようです。

もうちょっとだけ詳しく、という方はこちら

 

 

SIDでのハードシンクの確認

記事が長くなることを覚悟の上で、SIDでのハードシンクの確認をしてみます。

チャンネルは1と3を使い、それぞれチャンネル1にTriangle(三角波)、チャンネル3にSquare(矩形波Duty比50%)、周波数を変えるには、ピッチを変化させてやればよいので、お互いの周波数差を比較的低域で5半音(Tune12と17の差)空けてみました。ピッチが高いほど周期が短く、ピッチが低いほど周期は長いです。低域を選んだ理由は、単にオーディオデータで拡大した時に見やすいから。

 

矩形波のみ

矩形波はこんな音です。チャンネル3のみ、左で音色を選んだ上で、OutputをOnにしてやることで音が出ます。どうせなら全部にこのON/OFFをつけてくれたら楽だったのですが、エミュレートにそんな要望は筋違いになるでしょうね(笑

 

三角波のみ

正弦波に凄く近い音の感じで、篭っているようにも聞こえます。チャンネル1の一番左「Wave」で「Triangle」を選んで単に鳴らした音。

 

矩形波・三角波同時鳴らし

チャンネル1と3の、矩形波と三角波を単に同時に慣らしただけの状態。周波数特性も単に重なり合っただけで、音も別個に聞こえます。

 

同時鳴らし、Sync3<1(三角波の周期を優先)

チャンネル3の矩形波の周期をチャンネル1の三角波に同期させます。SID真ん中の下「Sync3<1」をONにします。「3<1」というのは、「チャンネル3の周期より、チャンネル1の周期の方が上」。つまり、1の三角波の周期を優先させるということ。

音も、矩形波の方に変化が現れたのが視覚と耳からもわかります。

 

同時鳴らし、Sync1<3(矩形波の周期を優先)

今度は逆に、チャンネル1の「Sync1<3」をONにします。こちらはチャンネル3の矩形波の周期をチャンネル1に当てているという形。こちらは音が一つにまとまったような感じがします。

 

矩形波のみ鳴らし、Sync3<1(三角波の周期を優先)

チャンネル1から信号部分だけをチャンネル3に同期している状態です。チャンネル1は一度鳴らしてしまえば、Wave/OFFにして出力を切っても、このプラグインの作りでは周波数の信号はそのまま残っているみたいなので、このように同期だけさせて単音鳴らしということが出来ました。

 

三角波のみ鳴らし、Sync1<3(矩形波の周期を優先)

こちらはチャンネル1の三角波出力に、チャンネル3の周期分だけを優先させた場合。もしこの状態で、優先させているチャンネル3の同期周波数を変えたいという場合、この状態でチャンネル3のTuneを回しても反映されません。一度チャンネル3で音を出して、そこからTuneでピッチを変化させてから、同期先のチャンネルに反映される形になっているようです。

 

 

リングモジュレーターで音作り

Syncの下にRingというボタンがあります。それがリングモジュレーション機能。これを使ってちょっと音作りをしてみたら、なかなかかっこいい低音が出来ました。

ノートはA2。チャンネルは1を矩形波、3を三角波として、チャンネル3の「Ring3<1」をON。矩形波のDuty比は78%Tune-28。三角波とは28半音分のピッチ差があるということですね。そしてここで倍音が上手く噛み合った感じがしました。

 

なので、試しに矩形波のTuneを1オクターブ上げた状態のTune-16。こちらも良い感じに音が混ざり合っているかと思います。

 

リングモジュレーション機能とは

二つの周波数の和と差、つまり単純に足し算した周波数と引き算した周波数を同時に出力するというもの。例として、「2,000Hzの周波数Aと、500Hzの周波数Bがあったとする」と、リングモジュレーターで出力される周波数は、

  • A+B=2,500Hz
  • A-B=1,500Hz

ということになります。げげ、これはなかなかやばい周波数の値を出力してしまったようです(笑

 

リングモジュレーターの使い方はSleepfreaksさんが非常にわかりやすくオススメなのでこちら

ついでに、理論的にパッとわかりたい場合はこちら

それぞれご参照ください。

 

このSIDのプラグインだけでいえば、上の画像のように、「Ring3<1」とある場合、三角波(Triangle)を符号の低い方(チャンネル3)に置くと、Ring/ONにした際、チャンネル1は「Triangle・Square・Saw・Noise」全ての音色で音が変化しました

それ以外は「Triangle<Triangle」を除く全てにおいてRing/ONでも新たな音の変化は確認できませんでした。例えば、チャンネル1=Square・チャンネル2=Sawでは、リングモジュレーション機能をONにしても音の変化は起こらなかったということです。

 

また、ハードシンクでの参照先の周波数の信号だけ受けて単音出力するやり方はそのままリングモジュレーターでも出来るので、二つの和と差の音が同時に出力されるリングモジュレーターで、単音だけ出力させることが可能です。上画像で言えば、チャンネル1の出力をOFFにすれば、チャンネル3から片方の音が出力されます。

Ring3<1だから、多分引き算分の周波数が抽出できている、とは思うのですが、そこまでは確認していません。とりあえず、単音分は出る

 

 

おわりに

今回は曲作りはせずに、音作りをメインにしてみました。パラメータが色々あるとそれだけで音作りを楽しめてしまうので、時間があっという間に過ぎちゃいますね~・・・いやほんと。

Commodore 64のエミュレート、SIDのお陰でまた一歩シンセ音レベルが上がりそうです。

カットオフ・レゾナンスに関しては今回触れませんでしたが、それは別の機会にまとめたいと思います。

 

それでは!