BASIC命令セット3 FM-MUSIC 中級編 (2008/02)

■いい音をさがそうUpdate!!
■CALL VOICEを使う
■ベース、エレキギター音をやってみる
■MSXのベースで挑戦!
■市販ゲーム並みの効果音を作る
■FM−MUSICを 拡張する
■フリーソフトウェアで作ってみるNew!!



■いい音をさがそう

さて、中級編のはじまりです。

1.プログラムからさがす
まずは、BASICプログラムから勉強していきます。
手元にあるプログラムを実行します。
調べたい音色があったら、Breakします。
Break in  1880
Ok
ここでLIST1880を打つ。
list  1880
1880 play#2,a$(3),b$(3),c$(3),d$(3)

play#2,a$(3),b$(3),c$(3),d$(3)
をダイレクトで実行。調べたい音があれば
play#2,a$(3),b$(3),c$(3)',d$(3)
とD$(3)というようにすれば
play#2,a$(3),b$(3),c$(3)
までになる。ダッシュ以降のD$(3)はコメントになる。
これで目的の音を探す。
例えばb$(3)の場合、今度はD$(0)を見る。
この中に@24という指定がある。
曲名がわかればこんな方法でいいかもしれない。
これではコピーで終わってしまうかもしれない。

2.音からさがす
もっと深い探し方を考えてみる。
もう曲もテンポなんてどうでもいい。音楽理論に沿えばいい。
PLAY#2,"@1L1CEGFGEC"
コードがわからなくても雰囲気でいけばこんなふうになる。
ワタシの場合はFを入れてみた。
音に慣れてくれば1を2、4と変えていくと作りやすいかもしれない。
次にリズムを作る。例えばターン、タカ、ターン、タカ、ターン、タカ、ターン。
と作って単調すぎればいろいろと試してみる。
マイナーを入れたり、セブンスを入れたり、サスフォーでもいい。
これがアーティストにとって難しいところだ。ドミドミだけでは流行らないのだ。
音の高さと音の速度の微妙な響きのバランスだ。これがポイント。(先生ではないが)
全体が完成したら細かくやってみよう。例えば
ターン、タタタタ、ターンだ。4分音符、16分音符(4連符)、4分音符ですが、
思いついたパターンなんだが、ターン、タ、ターン、ターン、タタでもいいし。
今回はターン、タタタタ、ターンだ。いつのまにか〜である調になったけど。
余談だったが4分音符はL4だ。CならC4でいい。
PLAY#2,"@1C4C8C8C8C8C4"
音が単調でモールス信号になっている。これにGを入れたりする。
PLAY#2,"@1G4E8C8E8C8C4"
これで1つのメロディーが完成する。なかなかいいと、思う。
前回、ギターのコードの話をした。CはCEGだ。
ジャンと鳴らさないで1つ1ついわゆる、バラシ弾きだ。
バラシのヒントはMSXでガンガン弾こうにある
http://www.geocities.jp/fullmsx2/u-yan/ucode-zz.html
曲の終わりのような感じにするには
PLAY#2,"O4L4EBGO5E2”
なんとなく感じないだろうか?
と、いうことで曲作りはジャンジャカ、ジャンジャカ、ジャンジャカでもジャーン、ジャーン、ジャーン
でもリズムとコードの順番で指でモールス信号のようにやってコレを最後にすればグットだったと思う。
音楽のことはあまり考えないほうがいいこともある、とにかく好きな音を作ればいい。
いろいろなことを全て覚えようとするとキリがないし、頭が真っ白になることも…
ワタシダッテ、イイトオモッテモマチガエタリシマス^^;
この流れができればピアノでもギターでもブラス風に仕上げても、ユーロビートでも何でもいいらしい。

■CALL VOICEを使う
CALL VOICEはチャンネルごとに音色を設定します。

これによって、PLAY#2,"@33V15","@1V10"が
CALL VOICE(@33,@1)
という記述になり、音色のみを変えたい場合に便利です。



■ベース、エレキギター音をやってみる
スラップはできない?けど。
ベース音は単音で聞こえる低い音です。MSXでも雰囲気のあるリアルな音にできます。
PLAY#2,"@33V14L8O3D1.<B-8.B-8.>CD1.B-.B-.>CD1.<<B-.B-. >CD1.<B-.B-.>CD1"
簡単に説明すると
・B−の音、Bの半音下がる音
・Cの音、Dの音
・<はオクターブを下げる
・>はオクターブを上げる
・.ドット(ピリオド)はアクセント。
となっています。

ギター音はピアノというよりエレキ系とかの機械音の感じです。
どちらの楽器も和音を使います。
エレキギターはエフェクトによって効果が変わってきます。
ナイロン系はピアノとかオーバードライブ系はトランペットとか
キンキンの固めな感じはハープシコードの和音とか
低い音はベースに似た音色にもなると思います。
そこでしっくり来そうなのは@1と@10と@33と@53です。

@1はエレキ系の感じです。
@5はオーバードライブ向けの感じです。
@10はアコースティックギターのナイロン弦向けです。
@33はベースギター系の音です。@32もいいです。
@53は渋い感じの曲にいいかもしれません。
@54はO7からO8くらいでハープか何かと思います。

ギターのような微妙な音色はFM音源にはないので、昔は外部音源モジュールで出していました。
PCでは再現不能な音色が可能なGS音源が流行っていたのでしょう。


■MSXのベースで挑戦!

MSXでGlisをやってみます。ロックの曲の終わりにやるあの技です。
弦を滑らす音は無理ですが、音を下げていくのであれば簡単です。
まず、@33のベース音から音階番号31番(G+)から25番(C+)まで下げます。
PLAY#2,”@33N31N30N29N28N27N26N25”
これでは遅いので16分音符を指定します。
PLAY#2,”@33L16N31N30N29N28N27N26N25”
最初の31番を8分音符にします。
PLAY#2,”@33L8N31L16N30N29N28N27N26N25”


■ドラムをやってみる

 FM音源では5つのドラムセットを使うことができる。
まず、ドラムモードを有効にしてみる。
CALL MUSIC
PLAY#2,"","","","H8H8H8H8H8H8H8"
これで、音が出るだろう。
 ドラムのMMLはBでバスドラム、Sでスネア、Mでタムタム、Cでシンバル、Hでハイハット。
BSM8で同時に8分音符で叩くといった指定のしかただ。
!でアクセントが入り、アクセントは強く叩く場合に指定するので、
BPMはテンポと同じようにT140と指定する。
テンポというのは1秒で1拍が60で2拍が120と覚えればいいだろう。
@Aの後の数値はVの音量よりも大きいほうがいい。
もし、いい音色がない場合にドラムはドレミになっているので、その音をPSGのように音に直す方法もある。
またスネアドラムをPSGで再現して、同じリズムの繰り返しであればエンベロープ波形でサウンドを周期的に鳴らす方法もある。
パソコンで波の音をプログラムしたことはないだろうか?実行が終わっていても音が止まらない。
このノイズの音程と長い周期を調整して短くすると、ザザザザという感じになる。応用といったところだ。
そのほかプリセットされていない場合はマシン語でスネアデータを打ち込む技もある。

■市販ゲーム並みの効果音を作る

入力の効果音を作ります。まず、Cコードの構成音CEGの、CGを使います。
効果音は高音で32音符で作ります。@34のサンツールでやってみます。
PLAY#2,”O6L32O6GC”

次のプログラムでキークリック音を試してみます。
10 CALL MUSIC
20 I$=INPUT$(1)
30 PLAY#2,"O6L32O6GC":GOTO20


FM-MUSIC 上級編