MMLとはMusic Macro Languageの略でドレミファソラシをc d e f g a bで表現する、テキスト文字による演奏表記方法です。
MMLファイルは、1つの曲をMMLで表記するテキストファイルです。
MMLはこれ見て勉強しろ!
これだけ読んでおけば基本はバッチリ。
- What's MML?
https://geolog.mydns.jp/www.geocities.co.jp/Playtown-Denei/9628/whatsmml.html
mck作者Izumi.さんによる解説、初心者には大変解りやすいです。
- mckノイズおぼえがき
http://www1.plala.or.jp/acidhouse/mcktech.htm
SBRさんによる解説
- 漏れ的N106音色作成法
https://geolog.mydns.jp/www.geocities.jp/robokabuto/n106_making.html
robokabutoさんによる解説
- MML基本テクニック
http://taka-p.homeip.net/dtm/psc/mckmml.html※リンク切れ
Wiz.さんによる解説
- 上手な『草』の生やし方 for ppmck
http://fmpsg.info/wizcd/pdf/ppmck_w.pdf
Wiz.さんによるMML解説兼「w」コマンド活用法
- ファミコン音源に歌わせる方法
http://d.hatena.ne.jp/jinnekomata/20090131/1233419308
ねこここぶろぐ
- MMLリファレンス
MMLの各コマンドの詳細はMMLリファレンスを参照して下さい。 - 2ch mckスレの過去ログには有効な情報も含まれています、参考にすると良いでしょう。
- アップローダーにはMMLソース付きの圧縮ファイルも多数有ります。
人の書いたソースを読むのも勉強になります、探してみて下さい。
ノイズ音源の使い方 
ノイズ音源を解説されているサイトが少ないため、ここで説明します。
ここが解りやすいかも↓
mckノイズおぼえがき
http://www1.plala.or.jp/acidhouse/mcktech.htm
SBRさんによる解説です
- ノイズ音源は、単に雑音を出すだけではありません、周波数(1秒間に何回乱数を進めるか)を16種類に変えられます。
D q7 v15 n0 n1 n2 n3 n4 n5,8 n6,8 n7 n8 n9 n10,8 n11,8 n12 n13 n14,2 n15,2
noise1.nsf
- 音符で書くこともできます、但しこの場合12種類までしか表現できません。
D q7 v15 c c+ d d+ e f f+ g g+ a a+ b
- 周波数を変えられるということは、ピッチエンベロープ(EPコマンド)やノートエンベロープ(ENコマンド)を使えば、発音中に周波数を変化させることができます。
@EP0 = { | 0 0 0 0 0 0 0 -1} D v15 EP0 c1 r8 EPOF
noise2.nsf
@EN0 = { | 0 0 0 0 0 0 0 -1} D v15 EN0 c1 r8 ENOF
noise3.nsf
※ENコマンドを使用した場合、n12~n15は鳴りません、n0~n11までとなります(ppmck09aにて確認)
Wiz.さんによる解説のショートノイズも参考になります。
http://taka-p.homeip.net/dtm/psc/mckmml.html#ShortNoise
- ノイズ音源は、16段階に音量を変えられます。
D l8L D v0f v+f v+f v+f v+f v+f v+f v+f v+f v+f v+f v+f v+f v+f v+f v+f D v15f v-f v-f v-f v-f v-f v-f v-f v-f v-f v-f v-f v-f v-f v-f v-f
noise4.nsf
- 音量を変えられるということは、エンベロープ(@vコマンド)を使えば、発音中に音量を変化させることができます。
@v0 = {15 13 11 9 7 5 3 1 0} @v1 = {15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0} D @v1 eeee L @v0 n15 r n12 r8 [n15,8]5 n12 @v1f
noise5.nsf
- 更にディチューン(Dコマンド)を使うとノイズとは思えない不思議な音を出すことができます。
@v0 = {15 13 11 9 7 5 3 1 0} D @v0 D D16 n0n1n2n3n4n5n6n7n8n9n10n11n12n13n14n15
noise6.nsf
これがキンキンノイズとか短周期ノイズと呼ばれるものです。
短周期ノイズは初期型のファミコンでは出せません。
また、この音はNSFプレイヤーにより微妙に音程が違う様です。
- ノイズ音源では周波数16段階、長周期/短周期切り替えで32種類の音を表現できます。
@v0={15,14,13,12,11,10,9,8} D @v0 D // 音符n0~n15による周波数の指定 D D255 n0n1n2n3n4n5n6n7n8n9n10n11n12n13n14n15 r // 長周期 D D16 n0n1n2n3n4n5n6n7n8n9n10n11n12n13n14n15 r // 短周期 D // 音符を c 固定にし、Dコマンドよる周波数の指定 D D0c D-1c D-2c D-3c D-4c D-5c D-6c D-7c D-8c // 長周期 D D-9c D-10c D-11c D-12c D-13c D-14c D-15c r D D16c D15c D14c D13c D12c D11c D10c D9c // 短周期 D D8c D7c D6c D5c D4c D3c D2c D1c r
noise7.nsf
音符を c に固定する場合、長周期では D0~D-15 により周波数を指定し、短周期では D16~D1 です。
(EPコマンドを使用する場合の数値範囲もこのDコマンドを参考すると良いでしょう。)
- ここまでの技を駆使すればドラムスはほぼノイズだけで作れるでしょう。
@v0 = { 11 2 0 } @v1 = { 8 2 0 } @v2 = { 8 6 4 2 1 0 } @v3 = { 11 10 8 7 6 5 5 5 5 4 3 2 0 } @v4 = { 10 10 9 9 8 8 7 7 7 6 6 6 5 5 5 4 4 4 3 3 3 2 2 2 1 1 0 } @EP4 ={ 0 -1 0 0 0 -1 0 0 0 0 -1 0 } D t160l16L D @v2 n15,8 @v3 d8 @v0 c @v1 c @v3 d8 D @v2 b8 @v3 d8 @v0 c @v1 c @v3 d8 D @v2 n15,8 @v3 d8 @v0 c @v1 c @v3 d8 D @v2 b8 @v3 d8 @v4 EP4 f4 EPOF D @v2 n15,8 @v3 d8 @v0 c @v1 c @v3 d8 D @v2 b8 @v3 d8 @v0 c @v1 c @v3 d8 D @v2 n15,8 @v3 d8 @v0 c @v1 c @v3 d8 D @v2 b8 @v4 D15c8c8c8D0
noise8.nsf