見出し画像

PSGシンセを手打ち入力で鳴らすの巻

昔の8ビット時代のレトロパソコンによく載っていたシンセサイザー音源のPSG(プログラマブル・サウンド・ジェネレーター)そっくりのサウンドを、当時と同じBASICの構文で入力して鳴らすことができるサイトがあります。

それについて少し前にテキストを何本か投稿しました。

今回のテキストは前のものと重複する部分もありますが、それらしく鳴らすためのテクニック的なものを、当時を思い出して書いてみようと思います。

普通のDTエマーの人にとっては何の役にも立たない話ですが、80年代におけるDTMというのはこうだったんだんだ、アホだねえくらいの感じでお付き合いいだだけると幸いです。

多分、読むのにけっこうエネルギー使うと思います。昔はこんな面倒なことやってたんだという意味で、それなりに面白みのある内容ではあると自負してはいるんですが。

今入力して遊んでるのがこれで、ベックの曲をさわりだけ入力しました。完成までは当分かかると思います。ちょっと出力音量がちっちゃい気もしますが、参考音源ということで。

まずはPSGっていうものの基本的なところから。

PSGっていうのはファミコンにも載っていたシンセサイザーなんですが、ファミコンは面白い音を出せる波形を選べたり、ノイズ用に1チャンネル足されていたりしました。

当時の8ビットパソコンは、音源こそ同じPSGですが、ファミコンにあった波形選択やノイズチャンネルはありませんでした。

ですから、基本的にすべて同じ音。でも、音量の減衰パターン(エンベロープ形状)を工夫して聞こえ方を変えたり耳障りよくするというやり方をしてました。

また、ノイズも出せるんですが、そのためには1チャンネルをノイズ用として使用しなくてばいけません。同時発生が3音ですから、パーカッション的なパートでノイズを使うと、残りは2音だけ。2トラックじゃなくて2音です。ということを踏まえつつ。

今回の参考音源は、1チャンネル目にノイズを使ってドラムっぽい音、2チャンネル目が主旋律、3チャンネル目がベースっていう振り分けです。

ドラムのパートは、ノイズでチッとかパーンみたいな音を鳴らしてリズムを刻んています。小さくチッっと切って鳴らしたり、パーンと伸ばして鳴らしたりを忙しく切り替えてフレーズを作っています。

エンベロープのサスティンの長さはmというパラメーターで、数字が小さいほど音が短く切れるので、m200とm500とm2000をひっきりなしに切り替えています。

ベースのパートは、ベース音が休符になってるところでちょっとした装飾音みたいなチャン!って音を割り込ませて鳴らしています。擬似的に1チャンネル余計に使ってるっぽい感じを出すと。

主旋律のパートは普通に慣らしているだけです。ただし、ベースも主旋律も、ただ鳴らすとプーという平坦な音になってしまうので、音の減衰パターンの指定を全部の音について手作業で行っています

どういうことかと言うと、ボリューム指定はvというパラメータで、音を鳴らすのはドの音だったらCと入力、レだったらDという具合です。

そして、たとえばCCと入力するとド・ドとは鳴らずにドーと繋がって鳴ります。その特性を利用して、v14Cv12Cとやってやると、ドの音がドォという感じで少し減衰しながら鳴ってるように聞こえるんです。

ベースのバートでは、ボンという感じでより速い減衰の感じを出すために、v12Cv8Cみたいな感じで、音の前半と後半の音量差を大きくしています。

基本的に旋律を奏でる場合は、全ての音に対してこの減衰パターンの指定入力を行わないと、三流メーカーのファミコンゲームの効果音みたいなプーピー音みたいなことになっちゃうんです。

減衰だけじゃなくて、音量を上げる方向に細かく指定することによって、イントロの主旋律のパァーっていう部分みたいな、ちょっとクレッシェンドする感じも出せるわけです。

それから今回は使ってませんけど、低めの音程で64分音符くらいで音を半音ずつ下げて、それと同時に音量もアタックだけ強くして急激に下げる指定をすると、ドウンという感じでシンセタムっぽい音も作れます。

そんな具合で、全てが手作業ですから、イントロだけでプログラムソースはこんな分量になります。入力中は集中してるからいいんですけど、一旦入力が終わるとソースを見てもどこがどこの部分にあたるのかがわかんなくなります。

ですから、間違って入力してしまうとどこを直していいのやら・・・になっちゃうんで慎重な作業が要求されます。ほとんど変態と言っていいでしょう。

t135 v12
sm200c8c8m2000c8m200c16m1000c16m200c8c8m2000c8m200c16m500c16
sm200c8c8m2000c8m200c16m1000c16m200c8c8m2000c8m200c16m500c16
sm200c8c8m2000c8m200c16m1000c16m200c8c8m2000c8m200c16m500c16
sm200c8c8m2000c8m200c16m1000c16m200c8c8m2000c8m200c16m500c16
sm200c8c8m2000c8m200c16m1000c16m200c8c8m2000c8m200c16m500c16
sm200c8c8m2000c8m200c16m1000c16m200c8c8m2000c8m200c16m500c16
sm200c8c8m2000c8m200c16m1000c16m200c8c8m2000c8m200c16m500c16
sm200c8c8m2000c8m200c16m1000c16m200c8c8m2000c8c8
,
t135
o3l16v14bv12bo4r8r4v14f+v12f+v14b8v12b8v13g+4v14g+4v12g+8v14d+v12d+v14g+8V12g+8V13f+8V14f+8v13f+8r4v14f+v12f+v14b8v12b8v11b+8v12b+8V13b+8v14b+4v14b+4r4o3l16v14bv12bo4r8r4v14f+v12f+v14b8v12b8v13g+4v14g+4v12g+8l16v14d+v12d+v14g+v12g+r4v11a8v12a8v13a8v14a8v14a8a8 r8v11a+8v12a+8v13a+8v14a+8a+4a+8a+8r8
,
t135
l16o2v12bv8bv12bv8b o3v12f+v8f+ o2v12b8v8b8v12ev8e v12f+v8f+ v12gv8gv12g+v8g+ v12g+v8g+ o3v12d+v8d+o2v12g+8V8g+8 v12ev8e v12gv8g v12a+v8a+o2v12bv8bv12bv8b o3v12f+v8f+ o2v12b8v8b8v12ev8e v12f+v8f+ v12gv8gv12g+v8g+ v12g+v8g+ o3v12d+v8d+o2v12g+8V8g+8 v12ev8e v12gv8g v12a+v8a+o2v12bv8bv12bv8b o3v12f+v8f+ o2v12b8v8b8
v12ev8e v12f+v8f+ v12gv8gv12g+v8g+ v12g+v8g+ o3v12d+v8d+
o2v12g+8V8g+8v12ev8ev12gv8gv12a+v8a+l16v12av8av12av8ao3v12g32v8g32v12ev8ev12bbv8bv12a32v8a32v12e32v8e32v12g+v8g+v12ev8el16o2v12f+v8f+ v12a+v8a+l32o3v12c+v8c+v12d+v8d+v12c+v8c+o2v12a+v8a+o3v12 l16v12c+v8c+o2v12a+v8a+v12f+v8f+ l32v12f+v8f+v12f+v8f+

今はコピペがあるので少しは入力も楽になりましたが、当時のレトロパソコンにそんな機能はありませんでした。ですから基本的に全て手打ちするか、文字列の変数に代入しておいて、同じ部分は流用するといった工夫をしていたことを思い出しました。

こんだけ苦労しといて、出来上がるものはピッポコピッポコですから、レトロな味わいという部分以外に良いところはありません。何のためにいまどきこんな遊びをするのかと問われれば、変態だからとしか答えようがありません。

いいなと思ったら応援しよう!