セガ・マスターシステムをエミュレートしたプラグイン『SN76489』でチップチューン作り

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

 

セガ・マスターシステムとは、1985年(ファミコンの2年後)に日本で発売されたセガ・マークⅢの北米版のゲーム機のこと。日本では、その北米版を逆輸入する形で、その2年後の1987年に発売されていたそうです。

メガドライブの前のバージョンがこのセガ・マークⅢ、セガ・マスターシステムで、そのメガドライブの後継機がセガサターン。そしてドリームキャスト

 

私が小学生低学年くらいの頃、友達の大半は皆ファミコンを持っていて、よくゲームソフトを持ち寄って遊んでいました。そんな中、一人二人はファミコンじゃないのを持ってたんですよね。それがPCエンジンとかメガドライブとかでした。

その友達の家に遊びにいかないとプレイできないゲームだったので、かなりレアでしたし、新鮮だったのを覚えています。

「ひろしん家いってアレやろーぜ!!」(ソニックのこと

みたいなね(笑

 

SN76489の仕様を確認

  • 矩形波チャンネルが3つ
  • 3和音発声
  • ノイズチャンネルは1つ(種類は2つ)

 

…と、結構シンプルな構成になっています。一般的には「PSG」と区分けされるこのSN76489。厳密には違うものではありますが、単純に音として聞いて判断する場合は「PSG」と言っても間違いではないです。伝わるには伝わる。

 

PSGとは(狭義)

厳密には、PSGは「Programmable Sound Generator」の略で、GI(ゼネラル・インストゥルメンツ)社の

  • AY-3-8910(またはこれの相当品)

のことをいいます。その仕組みは、

  • 矩形波3(Duty比1:1固定)+ノイズ
  • ノイズの音量出力は矩形波3チャンネルのどれかに依存
  • エンベロープ(ADSR)制御

ということで、デューティ比50%固定とエンベロープ機能、ノイズの音量出力方式が矩形波チャンネルに依存している点が特徴的。

 

DCSGとは(狭義)

「AY-3-8910」をPSGと呼ぶ場合、「SN76489」をDCSG(Digital Complex Sound Generator)と呼びます。

SN76489では、

  • 矩形波3(Duty比1:1固定)+ノイズ
  • ノイズの音量出力は独立して制御できる
  • エンベロープ(ADSR)なし
  • 3チャンネル目を同期ノイズ出力にすることでデューティ比6.25/93.75の音

「矩形波3+ノイズ1」の構成は「AY-3-8910」とは変わりませんが、エンベロープなしということと、ノイズが独立して音量調整ができます。

 

SSG音源とFM音源

ヤマハが作った「YM2203」という音源チップには、FM音源とSSG音源が組み込まれています。SSGとは、

FM音源によるPSG互換機能をSSG(Software-controlled Sound Generator)音源、単純にSSGとも呼ぶ。

出典:Wikipedia「PSG」より

とあり、AY-3-8910のPSG機能のソフトウェアのこと、でしょうね。ヤマハではPSGをSSGとも言うそうです。

 

Wikiでは『YM2203をFM音源チップ』と書かれているので誤解してしまいそうになったのですが、厳密には、

4オペレータ、同時発音数3音のFM音源に加え、AY-3-8910(PSG)相当のSSG(Software-controlled Sound Generator)音源と、入出力を備え、プログラマブルタイマーを2系統内蔵する。

出典:Wikipedia「YM2203」より

とあるので、

「 YM2203 = FM音源 + SSG(PSG)音源 」

ということになりそうです。

 

 

以上より、ピコピコしたファミコンサウンドには大体矩形波が使われているので、それを「PSG」と言っても間違いではないのでしょうが、この表現だと誤解を生んでしまう恐れがあるので、私は「ファミコンサウンド」とか「ピコピコ音源」とか使ってます(笑

 

 

SM76489の操作方法

  • Pulse1~3が矩形波1~3チャンネル分の音量出力0~100%
  • Noiseの音量出力0~100%
  • 右のTypeはNoiseの2種類、Priodic/White
  • 右下のSpeedはNoiseのパターン4種、Fast/Medium/Slow/Tone2
  • 矩形波の3音はポリフォニック

 

プラグインSN76489の特徴は一つのトラックで、矩形波が3音同時発声するので、トラック数を分けなくていいので便利ですね。ノイズも同時に発声するのですが、これは別トラックで分けた方が使いやすそうです。

 

ポリフォニックの仕様は、3音発声の場合、一番下のノートからPulse1・2・3と出力が振り分けられる仕様のようです。

 

例えば、MIDIトラックに3音分のノートを置いて、このようにPulse1、2は100%(出力ON)にして、Pulse3の出力を0(OFF)にすると、上のE5・D5の音は鳴らない。

 

また、低音はA1より下は全部A1音が鳴り、それより下の音は存在していない形になっています。

 

 

Type「Periodic」について

Wikiの「PSG・SN76489の項目(ページ中段辺り)」では、

通常音色はデューティ比50/50のみであるが、3チャンネル目を同期ノイズ出力にすることでデューティ比6.25/93.75の音となる。トーン周波数に対し音程は半音ずれるが、ギターに似た音色となるため、若干弱い低音部をカバーする事が出来た。

とあり、SN76489の右側「Periodic/Tone2」にすることで、Duty比6.25/93.75の矩形波の音が出ます。

 

まず、3音鳴るようこのようにノートを置いてみます。

 

全ての出力をONにして、Type「Periodic/Tone2」にすると、一番下の音でなくて、一番上の音(Palse3)の音にノイズチャンネルが同期し、メロディが高音と低音でカバーされる形になりました。

ちなみにこのままの状態で、PeriodicのTypeをFast、Medium、Slowにしてみると、Pulse3にノイズが追随せずに、オクターブ違いのA音が出力されました。

 

・Periodic/Fast

 

・Periodic/Medium

 

・Periodic/Slow

 

 

キーをA音にしているのでそんなに違和感ありませんが、毎回曲中これだと流石にきつい。

また、このノイズ部分の音の使い方に関しては、例えば一度ノートを置いて鳴らしたあとにノートの上下入れ替えたりすると、先に鳴らした同期音を記憶しているのか、一番上のPulse3でなっているはずの音には同期しなかったりします。

 

まず、最初の状態。

これを、ノートの場所を変えてみます。

 

2小節目の一番下のベース音(黒く選択されているところ)を・・・

 

2オクターブ上げて、Pulse3が鳴らすはずのポジションへ移してやりました。

 

しかし、ノイズ同期はこの一番上に上げたはずの音には同期せず、ノートを動かす前の一番上だった音に同期したままという。

うん、なんだかこの挙動には懐かしさを感じます。MMLでSC-88proのインサーションエフェクトとか弄ってた頃を思い出します。ON/OFFの命令を指定してやらないと音が出っぱなしとか、設定リセットされないまんまとか(笑

 

ノイズ同期音をベース音にして音を鳴らすには

完全解決とはいきませんが、このノイズ同期のデューティ比6.25/93.75の音をベース音に持っていく為に、私なりの工夫の一例を以下に書きます。

初めに全チャンネル出力をONにして、右のNoiseTypeは「Reriodic」、Speed/Tone2にしておきます。

 

MIDIノートは、一番上にベース音が来るよう配置。黒く選択ささっている部分がそうですね。ノート音とPulse出力の振り分けは、

  • 下から順に、Pulse1、Pulse2、Pulse3

となっているので、この一番上のノートはPulse3が担当し、尚且つ再生時のノイズ同期もこのPulse3にされる(私の環境ではそうでした)。ノートの位置に気を付けながら打ち込んでいって、完成となったら、

 

Pulse3の出力だけ0%(OFF)にして再生してやります。

すると結果はこんな感じ。

デューティ比6.25/93.75の矩形波のベース音にすることに成功しました。

 

ちなみに同期はさせずに「矩形波3つ分」と「ノイズチャンネル分」を別トラックで用意して綺麗にまとめた版はこちら。

音的には後者の方がいいかなと個人的には思います。

 

 

おわりに

このプラグインはポリフォニックなので3和音分+ノイズ分の2トラック分のプラグインを起動させてやれば、難しいことは考えずに普通に曲は作れるかと思います。

ノイズ同期部分に関しては不透明なところがあるのですが、デューティ比6.25/93.75の音を出したいなら、別のプラグインで1トラック用意してあげたほうがわかりやすくて楽かな。要はその音が出せればいいのだから。

プラグインとしては、ポリフォニックというのが使いやすくていいですね。

 

 

おわりに2

以上、4回に渡ってSOCALABS 8-BIT TREATSのプラグインの使用感を、チップチューンの知識底上げとして記事にしてみました。

ここまで記事にして来てこれを言うのも何ですが、

  • チップチューンを作るならわざわざこのプラグインを使う必要はない

ということ。

みもフタもない言い方になりますが、シンセ音を弄る音源は本当にたくさんありますし、このプラグイン自体、1980年代のレトロゲーム機の音源をエミュレートしているだけあって、それぞれ癖があって使いづらい部分もあります。

DPCMや波形メモリ音源の部分もなかったりしますから、完全なエミュレートとは言えないでしょう。(DPCMはそもそもサンプリングで、また波形メモリ音源は別個の技術になるので、このプラグインのコンセプトから敢えて省かれていると思われます。)

 

しかし、このエミュレートプラグインから私が強く感じたことは、そういう部分ではなくて、当時はそれぞれに個性があって、またそれぞれの癖がある中で様々なサウンドが作られてきたということ。今では一緒くたにされてしまう内容にでも、きちんと違いがあったんだよという気持ちを強く感じる。

そういう意味で、自分の知識も含めて、チップチューンの違いをこのプラグインを通して少しでも整地できればなぁと思って記事にしてみました。簡単に書けるかと思ったら結構時間かかってしまってます。

 

幼少期にリアルタイムで触れていた世代ではあるのですが、何分エミュレートの専門的な知識がそこまでないので、どっか間違ってないかなーと少し心配ですが、その時は是非教えてくださいませ(笑

 

それでは!

 

【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のお陰でまた一歩シンセ音レベルが上がりそうです。

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

 

それでは!

 

【FC音源】ファミコンをエミュレートしたプラグイン『RP2A03』でチップチューン作り

今回は、「SOCALABS 8-BIT TREATS」のうちの一つ、ファミコンを模した「RP2A03」の仕様を見てみます。

 

任天堂のファミコンといえば国内では知らない人はいないであろう、ゲーム業界の金字塔ハードウェア。去年の2016年11月、ファミコンのクラシックミニが発売されて話題となり、今年の2017年10月にはスーパーファミコンのクラシックミニが新たに発売されました。

ファミコンのクラシックミニは去年の発売以降、一旦生産中止となっていましたが、今年のスーファミのクラシックミニが発売されるとほぼ同時に生産再開することになったようです。スーファミの方も、来年以降も生産していくようですね。

2017年11月くらいでは、実店舗にまだファミコンミニの姿は見えてなかったのですが(私の地域では)、クリスマスにはなんとか少ないながらも間に合わせてくれるんじゃないかなぁとは思います。

SWITCH・スーファミミニ・ファミコンミニ・・・任天堂は大忙しですねぇ。

 

RP2A03の仕様を確認

さあ、早速プラグイン「RP2A03」を使ってみましょう。RP2A03の仕様は、

  • Ricoh 2A03をエミュレート
  • 矩形波チャンネルが2つ
  • 三角波チャンネルが1つ
  • ノイズチャンネルが1つ

ですので、これにDPCM(サンプリング音)を1チャンネル分加えてやることで、ファミコン音源の再現の形は整いそうです。

 

ちなみに、PSG音源のWikiの後半に、

  • パルス波(矩形波)発生装置 2系統(デューティ比3:1、1:1、1:3、1:7切り替え)
  • 三角波発生装置 1系統(4bit波形、音量は仕様上固定だが、DPCMと絡んだバグに近い挙動が存在し、これを利用するといじることが出来る)
  • ノイズ発生装置 1系統(擬似乱数雑音・短周期ノイズ切り替え、周波数変更が可能。ただし、最初期型(コントローラのボタンが四角いゴム)のファミコンでは短周期ノイズは出せない)
  • DPCM 1系統
  • ミキサー

という仕様の音源がRP2A03に組み込まれていて、これをpAPUと呼び、そしてこのpAPUのパルス波発生装置はゲームボーイ・ゲームボーイアドバンスにも使用されているとのこと。

・・・おや、「SOCALABS 8-BIT TREATS」のゲームボーイ音源のプラグイン名が確か「PAPU」でしたね。

 

実機のゲームボーイは、

CPU:シャープ製のLR35902にサウンドなどの機能と共に組み込まれている。

出典:ゲームボーイ – Wikipedia より

ということなので、サウンドも司るCPU名をプラグイン名にということであれば、ゲームボーイ音源プラグインの名は「LR35902」でも良さそうなものですが、ゲームボーイ音源は、初代ファミコン音源のデューティ比切り替えの出来るパルス波を持つという特徴があるので、そちらの方を優先させて「PAPU」という名を付けられたのではないかと思います。

 

DPCMとは

そもそもDPCMとは、「差分パルス符号変調」といって信号の圧縮方式のこと。ファミコンではこの方式を音の圧縮に取り入れて使用しているので、

ファミコン音源でいうDPCMは「音の荒いサンプリング音」

と捉えて頂くとわかりやすいかと思います。

 

こちらの動画が非常にわかりやすかったのでご紹介。

サンプリングとはいえ、ファミコンの容量ではどうしてもデータを小さくしないといけないため、音がザラザラといいますか、通信が途絶える一歩手前のトランシーバーみたいな音になってしまいやすい。

なので、マリオ3のあの抜けのいいパーカッションの音などは逆にビビります。凄い。

 

FamiTrackerのDPCM部分のサンプルを見てみると、画面右側「Loaded samples」の下に0~8までの系9個の音がサンプリング音として収録されていました。0~4までは、A#・B・C#・D・Dの音がサンプリングされ、5~8にはパーカス・リズム音が使われています。

実際にこの辺りは8bitのゲーム内での容量の許す範囲内で、ということですね。

 

スーパーマリオ3では、DPCMにドラムキットなどのパーカス音が思ったよりふんだんに使われているのがわかります。

実機におけるDPCMの具体的な音の出し方については、私にとって理解が届かない部分も多かった為ここでは割愛しますが、ひとまずこの記事でのファミコン音源再現としてのDPCMは、幾つかの低ビットレートを想定したサンプリング音ということで話を進めていきます。

 

以下、DPCMについての参考ページ。

  1. こちらのページ中盤のDPCMの項目
  2. こちらの記事、冒頭部分
  3. こちらの記事、中盤のDPCM

 

 

RP2A03の操作方法

前置きが長くなりましたが、RP2A03のプラグイン画面を見てみます。

  • 矩形波チャンネル2つ、どちらもスウィープ機能あり(画面左)
  • 三角波チャンネル1つ、ON/OFFのみでTuneとFineのみ(画面右上)
  • ノイズチャンネル1つ、音量0~100%、切り替えON/OFF(画面右下)
  • 一番右下に全部の音のトータル出力調整
  • Pulse:矩形波の音量。0~100%
  • Duty Cycle:音色の変化。duty比:12.5%、25%、50%、75%4つ
  • Tune:キーの変更1単位で1半音、-48~+48まで
  • Fine:更に細かいピッチ変化100で1半音、-100~+100まで
  • Sweep:スウィープパラメータ。マイナスだと音が落ちていきプラスだと音が階段状に高速で上がる。-8~+8
  • Shift:スウィープパラメータ。数字が大きいほどゆっくりになる。0~7

 

プラグインの「PAPU」では矩形波チャンネルにAttackとReleaseがありましたが、こちらではその設定がありません。ただし、音量調整は2つのチャンネルに個別でついています。三角波に至ってはピッチの調整以外なく、ON/OFFのみで非常にシンプル。ノイズも音量調整と切り替えON/OFFのみ。

ファミコン初期時代は、こんなシンプルさで曲を作っていたんですね~。そしてその中で様々な工夫が生み出されて今がある・・・なんというロマン。

 

 

サンプル曲を作ってみました

あまり難しいことはしていません。デチューン音色を途中で使っているのと、擬似ディレイと効果音的な音を作って混ぜたくらいです。ほぼフルで使ってはいますが、構成は結構シンプル。

 

Kick(バスドラ)とSnareはDPCMでサンプリングしたと置き換えて、低ビットレートで録音したものを2点のみ使用。あとは、主に矩形波の1チャンネル分をコントロールチェンジ(CC)といって、実機では内部で途中途中音色やパラメータを変更しているとして、その分をトラック数を増やして表現しました。

最終的に矩形波2+三角波1で、合わせて3和音を越えなければいいという、いつも通り大雑把なやり方です(笑

 

内訳は以下の通り。

 

DPCM分、バスドラの音

GrooveAgent・Comp Kit CDのバスドラをCubaseでビットレートを下げて録音したものを使いました。

 

DPCM分、スネアの音

こちらも同じキットのスネアを、ビットレートを下げて録音。FamiTrackerで録って少しリアリティを・・・とも思ったのですが、変換につぐ変換の手順が遠かったのでやめました。

 

矩形波1(リード、装飾の擬似ディレイなど)

デューティ比12.5%。出力は最大。

 

矩形波2(リード、ハモリなど)

デューティ比50%。出力は最大。

 

サビ一周目の矩形波2つのデチューン(リード)

デューティ比25%、出力は最大で、片方だけFine-20にして重ねています。

 

三角波(ベース)

ONのみ!!

 

ノイズ(リズム、ハイハットの代わり)

50%出力のみ!!(笑

 

飛び道具的な矩形波(スウィープで効果音的に使用)

デューティ比12.5%。出力は最大にして、SweepとShiftをそれぞれ-2、2にするとこんな音が出ます。序盤はノートを下の方、つまり低域に置くと潰れたようになりますが、高域に音を置くと、最後のティウンティウン音になります。この音を聞くとロックマン、もしくはスターラスターを思い出す・・・。

 

 

擬似ディレイ

今回、擬似ディレイを使ってみました。上記に載せた矩形波1(リード、装飾の擬似ディレイなど)の音がそうなのですが、そのやり方は上画面の通り。

続く音をすぐ後ろに等間隔で置いて、ベロシティを小さくしただけ。これで、奥行きが感じられるように聞こえるわけですね。当時のファミコン時代はこうして如何に、制限のかかった状態で音の表現を豊かにしていくかを作り上げていったんですね~、いや~スバラシイ。実にスバラシイ。

 

 

おわりに

ファミコンの音使いは、時代が後半になるにつれてどんどん工夫が凝らされていって、ここまで出来るのか!?という音の表現が編み出されていたりしますが、今回のサンプルのように、非常にシンプルな曲も多いです。

ごく初期のファミコンソフトでは効果音だけでそもそもBGMがないものもありますし、DPCMの存在も初めは認知されていなかったなど、結構奥が深い。

 

チップチューンの完成度を高めようとする場合は、実機をプレイするのが一番なんですけど、例えば、ゲームで効果音が鳴っている間、最低限BGMの妨げにならないようにするために、

  • 矩形波チャンネル1=メロディメイン(固定)
  • 矩形波チャンネル2=効果音orハモリ・アルペジオ
  • 三角波チャンネル1=ベース(固定)

という風に、1チャンネル分は効果音と兼用のチャンネルになることを想定して、SEが入った時だけ矩形波チャンネル2のBGM入力が一旦リセットされて、SEが鳴り終ったらそのBGM入力の続きが出力される、とか。

またこれはゲームにもよりますが、コントローラのボタンを押したときにその信号入力によって(微妙にですが)他の信号との干渉が発生して、何かのタイミングの入力時だけ音が一瞬小さくなるとか・・・(これはやりすぎか

 

このように、方向性にもよりますが、非常にシンプルながらも、奥の深さが底知れないのが、チップチューンの面白さの一つなのではないかと思います。

 

それでは、今回はこの辺で。

 

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

前回、

1980年代ゲーム機の音源をエミュレートした『SOCALABS 8-BIT TREATS』が無料配布

という記事を書きました。

今回はそのプラグインの一つ、ゲームボーイをエミュレートしたPAPUを使ってGB音源風のチップチューン作りをしてみたいと思います。

 

PAPUの仕様を確認

PAPUの仕様は、

  • 任天堂ゲームボーイをエミュレート
  • 矩形波チャンネルが2つ
  • その内片方のチャンネルにはスウィープ機能搭載
  • ノイズチャンネルが1つ
  • ステレオ機能(LCR)搭載

本来のゲームボーイ音源にはこれに「波形メモリ音源」が載っかっています。なので、PAPUとその波形メモリ音源に変わるプラグインを使ってやれば、GB音源を再現できるということですね。

 

波形メモリ音源とは

波形メモリ音源はちょっと特殊で、こちらの記事を参照すると、

1周期分の波形データだけ持っておいて音階をつけて鳴らす音源方式

ということ。

 

どういうことかというと、

これはChip32というソフトで見る矩形波。例では真四角です。この形を一周期として音が鳴っている。PAPUの画像でも一つの波形がずーっと連続して並んでるように見えると思います。

この音はこんな感じ。

 

そして、波形メモリ音源というのは、この一周期の形を自由に変形できるというもの。

例えば、真ん中だけそれぞれ凹ませた波形を作ってみて聞いてみると・・・

 

真四角の矩形波よりちょ~っと音が明るい感じになりました。もっと変化つけた方がわかりやすかったかもしれませんが、波形メモリ音源はこうして自由に波形を変形させられるので、チップチューン音の基本となる正弦波・矩形波・三角波・ノコギリ波以外の独自の音を作る事ができる。

ナムコ社のアーケード版「ドルアーガの塔」や「マッピー」なんかにはこれが搭載されて、当時は新たな音の表現として画期的だったそうです。

 

というわけで、PAPUにこのChip32を併用して、ゲームボーイ音源を再現する形をとってみます

Chip32はフリーソフトです。ダウンロードは、こちら

OS対応はWindowsではXPまでの表記ですが、私のWindows7でも動きました。

 

 

PAPUの操作方法

改めてPAPUのプラグイン画面をみてみます。

 

  • 1つ目の矩形波チャンネルにスウィープ機能
  • 2つ目の矩形波チャンネルはスウィープなし
  • 3つ目のノイズチャンネル
  • その横に全部の音のアプトプット
  • PW:音色の変化。duty比:12.5%、25%、50%、75%4つ
  • Attack:音の立ち上がり0.0、0.3、0.5、0.8、1.0、1.3、1.5、1.8s
  • Release:音の余韻の長さ0.0、0.3、0.5、0.8、1.0、1.3、1.5、1.8s
  • Tune:キーの変更1単位で1半音、-48~+48まで。
  • Fine:更に細かいピッチ変化100で1半音、-100~+100まで。
  • Sweep/Shift:スウィープの度合いを決めるパラメータ(弄った方が分かり易い)

 

こんな感じでしょうか。文字で説明するより実際に弄った方がわかりやすいかとは思いますが、最初なので記載しておきます。

 

 

スウィープ機能の音作りで遊んでみる

弄っているとすぐに色々な音が出せることがわかります。わかりにくいかとは思うので、サラッと見てください。一例として私が遊んで作った音を載せておきます。

 

スライムが歩くような効果音

小さいなにかがヨチヨチ歩くような効果音。チャンネル1のパラメータは上記赤枠。左上のノートを1オクターブ下げてやれば、Tuneを-18から-6にしてやることで同じ音になります。

 

弾を発射する音など?

Tuneがえらいことになってますが、それはノートが下の方にあるからです。色々弄ってたらこんなパラメータになってしまった(笑

ランダム要素を出すためにクオンタイズをかけません。

 

何かが落ちる音

ノートは短いですが、その分リリースを少し伸ばして余韻を作ります。

 

何かが迫ってくる音

これはスウィープではなくノイズですが、ついでに載せておきます。

アタックを少しだけ遅らせると、迫り来る感じが出てきます。ノイズの種類をかえてちょっと弄るとこんな音が出せるという。

 

 

ゲームをしているような展開を表現してみる

簡単に、ゲームをプレイしている時のように音を置いていってみました。

作ったあとに思ったのですが、曲が始まったあとも効果音入れればそれっぽく聞こえたかもしれませんね。ま、まぁ、今回はサンプルということで(逃

そして以下は、その時使った音などの資料です。

 

ベース音やバッキング、サビのリード音

デューティ比25%の明るい使いやすい音。

 

Aメロのリード音

使用しているのは2チャンネルの矩形波。デューティ比は50%。透き通るような音ですね。アタックを0.3にしてフワッと入るようになってます

 

リズム隊のノイズ音(ハイハットの代わり)

使っているのは一番下のノイズ部だけ。うるさすぎないよう、Outputを少し絞っています。

 

波形メモリ音源で作った音

独自に波形を作れるので、結構違った音が作れますねー。良さそうな音を色々探せそう。

 

 

PAPUを使う時の留意点

PAPUは、モノフォニック(単音発声)なため、全チャンネルをONにしても3チャンネル全部同時に鳴るだけで、和音は鳴りません。3チャンネル同時に鳴るのと、和音を出せるのはまた意味が違うということ。

 

なので、ゲーム内ではその時その時で音色などを変換していることを想定し、矩形波2+波形メモリ1+ノイズ1の最大計4音がなるようにバランス調整しました。

トラック数が多いのは、違う音色に切り替えた時の音を別トラックで予め作っておいた方が楽なので、そうしています。一応トラック数も絞って音色を変えたりは出来るのですが(昔はよくそうしていました)、ただの自分用サンプルの場合はこうして大雑把(笑

 

ちなみに、今回のサンプルでは取り入れていませんが、モノフォニックではあっても、ピッチを少しずらした矩形波2つを同時に鳴らすと、少し太めといいますか、新たな音がでます。

まずは、普通の矩形波一本。

なんの変哲も無い、ただの矩形波のようだ・・・!!

 

しかし、2本目のピッチをすこ~しだけずらすと・・・?

わーお、かっこいいー

 

矩形波2チャンネルを使い、片方のピッチ(Fine)を16/100半音ずらしてみた時の重なりの音。これは別に全く同じ波形でなくとも、色々な波形の組み合わせで音が違います。

この音の重ねで出力される音は結構かっこいいことが多いので、ここぞという時に使うと良い味が出ると思います。こういう微妙に違う音を重ねて厚みのある音を作る事をデチューンといいます。

 

 

おわりに

矩形波やノイズなどを出す音源は色んなプラグインが沢山あるので、PAPUに限らず、自分に合った音源を使うのが一番ではあると思います。ただ、ゲームボーイ音源がどういう風に作られているかを知るという意味では、エミュレートされているだけあってそれにほぼ近い内容での曲は作れるのではないかと思います。

デューティ比やアタックなどのパラメータがある程度固定で用意されているというのも、実機感があっていいですね。その感覚を使っていって覚えていくのは結構ありかなと思いました。

 

それでは!

 

【Retrologue】シンセ音の4つの基本波形を音と画像で理解する【DTM】

こんにちは、MAKOOTOです。

 

只今、シンセ音の基礎を総ざらい中でございます。

で、これをもう備忘録も兼ねてブログの記事にしてしまおうというわけです。

 

音楽におけるシンセ音は、以下の4つが基本波形

  1. sine(サイン波・正弦波)
  2. triangle(三角波)
  3. saw(のこぎり波)
  4. square(矩形波・方形波・パルス波)

 

 

「プルルルル・・・」という電話音や、

「ピーッ・・・ピーッ・・・」という心電図の音、

「ピンポーン」でおなじみのインターホンの音など。

 

日常的にはもっと沢山の電子音を耳にするかとは思いますが、

それらは全部この波形音が重なり合って、違う音のように聞こえています。

 

 

そしてこれらは、オシレーターと呼ばれる発信器から音が生成されています。

発振器の事。シンセサイザーでは音の元となる波形を作り出す部分に相当する。省略してOSCと書かれる事も多い。

出典:偏ったDTM用語辞典

音というのは、空気の振動を耳で感知するものなので、基本は目に見えません。

その空気振動を、人工的に作り出しているのがオシレーターです。

 

上の4つの代表的な波形は、その名前通りの波形をしています。

なので視覚的にはわかりやすいのですが、

それが実際どういう音なのかはすぐに思い浮かばないことも多いかと思います。

 

 

今回、Cubase付属のVSTインストゥルメントである、

「Retrologue」を使って、その波形を見ていきます。

 

 

 

 

 1、sine(サイン波・正弦波)

Retrologueは、この4つを基本として音作りが出来るようになっています。

正弦波・三角波・のこぎり波・矩形波は、

このWAVEのつまみをそれぞれ回して決めてやります。

 

 

最初は、赤丸で囲ったsine波。

倍音成分を持ちません。シンプル is BESTな波形。

丸みのある、少し篭ったような音が特徴的ですね。非常に無機質な感じもします。

 

とても規則正しい波形なのが伺えますが、

変なところをキャプチャしてしまったせいか、

逆に気持ち悪い気もしなくもないです(笑

 

 

0.001秒間隔にまで拡大してみます。

あーなんか落ち着いた(笑

これ以上ないくらいシンプルで非常にわかりやすいですね。

 

こんな感じの振動が、一瞬の間に何百、何千とある。これが音の正体

 

ちなみに、このウェーブは振動を図にしただけのものなので、

例えば波形の下側だから音が低いとかそういうわけではありません。

 

音楽では、音の大きさ・強さを、dB(デシベル)で表すのですが、

一般的な数字の表記と意味が少し違っていて、

真ん中の「ー∞」は無音

上の方の「0」はオーディオデータの最大上限出力MAXを意味します。

 

つまり、-∞から0に近づけば近づくほど、音が大きくなるということです。

 

 

 

 2、triangle(三角波)

 

理論的にいうならば、基音と奇数倍音(3、5、7・・・)を含みます。

ただし、そこまで倍音成分が強くはない為、

先程のsin波よりは聞き取りやすく、少し明るくなったような印象です。

 

見た目も名前のまんまです。

 

ちなみに、低音での三角波の波形はこちら。

直線ではなくて、実は曲線。サメの尾のように生き物っぽい印象があります。

 

 

なぜ低音と高音で波形が微妙に違うのかというと、

これは三角波を出力するオシレーター内の演算式の仕様です。

 

演算式であるフーリエ級数とか昔すごい勉強したんですけど、

10年やらないと流石に忘れが激しいので、この辺りはさくっと割愛します。(笑

 

とりあえず、三角形だなぁ・・・と。(急に適当

 

 

 

 3、saw(のこぎり波)

 

三角波と形は似てますが、音の質はかなり違う印象があると思います。

 

これも超拡大していますが、三角波や正弦波と違うのは、音の立ち上がり。

のこぎり波の場合、いきなり音がMAXになっていて、これが一瞬の間に超連続している。

見た目もなんとなくかっこいい。

 

[speech_bubble type=”fb” subtype=”R1″ icon=”ruii2.jpg” name=”ルイー”]なるほど!まさにオレのことだな![/speech_bubble] [speech_bubble type=”fb” subtype=”L1″ icon=”shibu6.jpg” name=”シブ君”]突然現れたねー、今回出なくていいと思ってたのに・・・[/speech_bubble] [speech_bubble type=”fb” subtype=”L1″ icon=”shibu1.jpg” name=”シブ君”]というかルイーは一個前の100%三角だよねどう考えても[/speech_bubble] [speech_bubble type=”fb” subtype=”L1″ icon=”shibu1.jpg” name=”シブ君”]ごまかしちゃダメでしょ[/speech_bubble] [speech_bubble type=”fb” subtype=”L1″ icon=”shibu1.jpg” name=”シブ君”]あとキミの存在は三角波に失礼だから[/speech_bubble] [speech_bubble type=”fb” subtype=”R1″ icon=”ruii4.jpg” name=”ルイー”]あ、ハイ、すんません・・・[/speech_bubble]

 

 

 

低音での波形も見てみましょう。

立ち上がりはほぼ直線、ではありますが、厳密には完全な真直線・・・ではないですね。

振動の仕方も弧を描く曲線になっていて、ちょっと面白い。

 

[speech_bubble type=”fb” subtype=”L1″ icon=”shibu7.jpg” name=”シブ君”]面白い?それボクのこと!?[/speech_bubble] [speech_bubble type=”fb” subtype=”R1″ icon=”ruii3.jpg” name=”ルイー”]あーそうだな、面白い面白い[/speech_bubble] [speech_bubble type=”think” subtype=”R1″ icon=”ruii3.jpg” name=”ルイー”]コイツ本当に毛根っぽいよなぁ・・・[/speech_bubble]

 

 

 

また、倍音成分は整数倍、つまり「1,2,3・・・」と全ての倍音を含むので、

ヴァイオリンや金管などの楽器と性質がかなり近いという特徴があります。

 

 

↓Retrologueのノコギリ波↓

 

 

↓Hollywood Orchestraの1st Violins↓

 

[speech_bubble type=”fb” subtype=”L1″ icon=”shibu1.jpg” name=”シブ君”]1kHz辺りからの小刻みな波形が特徴的だね[/speech_bubble] [speech_bubble type=”fb” subtype=”R1″ icon=”ruii1.jpg” name=”ルイー”]なんだ、割と真面目じゃないか[/speech_bubble]

 

 

倍音が整数倍ということもあるので、一番耳に馴染みやすく、

またエフェクトをかけた際にも一番柔軟に音の変化が出やすいので、

とても扱いやすいシンセ音かと思います。

 

 4、square(矩形波・方形波・パルス波)

 

昔ながらのゲーム音というイメージが強いかと思います。

以前、「コナミ矩形波倶楽部」という熱いチームもあったくらいですし。

 

倍音成分は基音と奇数倍音(3、5、7、・・・)を含む点では三角波と同じですが、

その奇数倍音のパワーが強いこともあり、音の存在感はかなりあります。

 

このsquareタイプには、大別して2種類に分かれていて、

デューティ比(↓図でいう、横幅のこと)が0.5、

つまり正方形になる形を一般的に矩形波と言います。

 

 

そして、デューティ比が例えば0.9とかになると、パルス波と呼びます。

同じsquareでも結構音が変わりましたよね。

どこか潰れたような、でも程好く空気も抜けたーみたいな印象です。

 

波形は、ちょっとわかりにくいですが一箇所だけ伸びているような形になります。

ちなみに、このようにパルスの横幅をとっていくと、偶数倍音が生み出されるので、

そういう意味では、多彩な表現が可能であるのがsquareの特徴と言えるでしょう。

 

 

また、デューティ50%の矩形波での低音部はこちら。

正弦波と比べると大分複雑になってきています。

 

波形、つまり振動の複雑さに比例して、

音の表情も変わってくるということがわかりますね。

 

 

 おまけ、ノイズ

音色として使うノイズ音。

私はTVをほとんど見ないので最近はわかりませんが、

昔は夜中の2時にTVをつけると番組がやっていないので、ザーという音をよく聞きました。

その時の音がこれと同じ。

 

耳で単純に聞くと、あー・・・って感じなるホワイトノイズですが、

波形だけ見る分には意外と安定してるんですよね。

 

出力信号がランダムなので、可聴帯域も基本全部をカバーします。

なので、ホワイトノイズを聞いている間、赤ちゃんがよく眠るようになる、

という話もあるくらいです。

 

 

・・・まぁ、お母さんのお腹の中と周波数帯域は似ているのは確かにそうなのでしょうが、

それでもお母さんのお腹の中で聞く「音」と「ホワイトノイズ」は実際違うと思います。

 

でも、耳障りでない程度である分には、周囲の環境音も掻き消えるし、

どこかヒーリング効果もありそうだからいいのかなぁ。

 

[speech_bubble type=”fb” subtype=”R1″ icon=”ruii2.jpg” name=”ルイー”]シブはあとどんくらい経ったら足が生えるんだ?[/speech_bubble] [speech_bubble type=”fb” subtype=”L1″ icon=”shibu7.jpg” name=”シブ君”]おじゃまじゃくし!![/speech_bubble] [speech_bubble type=”fb” subtype=”R1″ icon=”ruii4.jpg” name=”ルイー”]やべー、こいつ強えぇ~・・・[/speech_bubble]

 

 

 

 まとめ

  • サイン波(正弦波)は倍音成分がないので、無機質な音。シンプル
  • 三角波はサイン波よりは少し明るい。倍音は奇数次(少な目)。
  • のこぎり波:音質的には一番豊か。倍音は整数倍(全て)。
  • 矩形波:ゲーム音ぽい。かなり多彩。倍音は奇数次(多目)
  • パルス波:ゲーム音ぽい。薄いようで中身は濃い。倍音は偶数次もプラスされる。
  • ノイズ:耳障りだけどどこか安心感もある謎の音。ランダム信号。

 

 

シンセの音は、基本この4つの波形にノイズ音を加えて作るケースが一般的です。

この基本の掛け合わせで実に色んな音が作れるわけですが、

ハマるとなかなか抜け出れないので、注意が必要です。(笑

 

 

それでは、今回はこの辺で!