-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathMML.txt
1041 lines (901 loc) · 27.3 KB
/
MML.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
--------------------
mucomDotNET
簡易マニュアル
--------------------
※mucom88と比較して、既存コマンドに追加された機能、または新コマンド、内部コマンドのみ記します
!!注意!!
独自機能を使用し作成したmubファイルは、mucomDotNET以外では演奏できません。
!!注意!!
--主な追加機能--
・使用可能音源が5つ
既存のOPNA1枚に対し、mucomDotNETでは以下の5枚が同時使用可能です。
OPNA 1
OPNA 2
OPNB 1
OPNB 2
OPM
もちろん、ADPCM/-A/-Bも使用可能です。
・広大な使用可能メモリ
パートごとに64Kbyte使用可能です。
メモリ制限に苦しむ必要はほぼありません。
・ポルタメント処理の見直し
・ADPCMの定義
mml中でwavファイルを指定するだけで使用可能です。
・効果音モードに対応。
mml2vgmと同じように使用できます。
レジスタマップと睨めっこする必要はありません。
--タグ--
タグ
#Driver
書式
#Driver str
値の範囲
str : mucomDotNET
内容
mucomDotNETの独自機能を使用することを指定します。デフォルト値です。
タグ
#CarrierCorrection
書式
#CarrierCorrection str
値の範囲
str : Yes , No
内容
FMの音色定義のキャリアの値を反映するモードを使用するかどうか指定します。
デフォルト値は「No」で「使用しない」です。
モード デフォルト値 備考
----------------------------------------------------------------------
mucomDotNET 機能無効 タグにYesを設定することで機能有効
それ以外 機能無効(使用不可) yコマンドで頑張るべし
タグ
#PCMInvert
書式
#PCMInvert str
値の範囲
str : On , Off
内容
PCMパートの相対オクターブ変更コマンド( > , < )の意味を逆転します。
デフォルト値は「Off」で「使用しない」です。
タグ
#OPMClockMode
書式
#OPMClockMode str
値の範囲
str : normal , X68000
内容
OPMのマスタークロックに何を使用するか指定します。
mucomDotNETはこのクロックに対応した音程周波数を使用します。
デフォルト値は「normal」で3579545Hzです。
「X68000」は4000000Hzです。
タグ
#OPMPanReverse
書式
#OPMPanReverse str
値の範囲
str : On , Off
内容
OPMのパン値を左右反転するか指定します。
デフォルト値は「Off」で反転しません。
タグ
#SSGExtend
書式
#SSGExtend str
値の範囲
str : On , Off
内容
OPNA/BのSSGパートを拡張します。パンなどを指定できるようになります。(後述)
デフォルト値は「Off」で「使用しない」です。
タグ
#OPNA1RhythmMute
#OPNA2RhythmMute
書式
#OPNA1RhythmMute str
#OPNA2RhythmMute str
値の範囲
str : B|S|C|H|T|R
内容
OPNA1枚目,2枚目の指定したリズム音をミュートします。
デフォルト値は未指定で全てのリズム音はミュートしません。
記号は以下のように各リズム音を示します。
B : BD , S : SD , C : Cymbal , H : Hihat , T : Tom , R : Rimshot
ミュートしたいリズムの記号を列挙してください。
使用例
#OPNA1RhythmMute SB
スネアとバスドラムがミュートされます。
タグ
#OPNB1AdpcmAMute
#OPNB2AdpcmAMute
書式
#OPNB1AdpcmAMute str
#OPNB2AdpcmAMute str
値の範囲
str : 1|2|3|4|5|6
内容
OPNB1枚目,2枚目の指定したadpcmAをミュートします。
デフォルト値は未指定で全てのadpcmAはミュートしません。
記号は以下のように各リズム音を示します。
1 : 1ch , 2 : 2ch , 3 : 3ch , 4 : 4ch , 5 : 5ch , 6 : 6ch
ミュートしたいadpcmAのch番号を列挙してください。
使用例
#OPNB1AdpcmAMute 25
2chと5chがミュートされます。
タグ
#pcm_2nd
#pcm_3rd_b
#pcm_4th_b
#pcm_3rd_a
#pcm_4th_a
書式
#pcm_2nd filename
(他のタグも同様)
値の範囲
filename : mucom88/mucomDotNET向けpcmファイル
内容
OPNAの2枚目以降で使用するPCMファイルを指定します。
それぞれ順番に、
OPNA 2枚目のPCMファイル
OPNB 1枚目のPCMファイル(ADPCM-B)
OPNB 2枚目のPCMファイル(ADPCM-B)
OPNB 1枚目のPCMファイル(ADPCM-A)
OPNB 2枚目のPCMファイル(ADPCM-A)
向けです。
タグ
#@pcm
#@pcm_2nd
#@pcm_3rd_b
#@pcm_4th_b
#@pcm_3rd_a
#@pcm_4th_a
書式
#@pcm number , name , filename , volume
(他のタグも同様)
値の範囲
number 音色番号 (1~)(音色番号を指定する(OPNB ADPCM-Aの場合は音程を数値化(後述)したもの))
($00~で16進数表記可能)
(o0cなどで指定も可)
name 音色名 (音色名を指定する)
filename ファイル名 (.wavファイルを指定する)
volume 音量 (TBD:100)(とりあえず100を指定する)
内容
OPNA/Bで使用するPCMをwavファイルで指定します。
それぞれ順番に、
OPNA 1枚目のwavファイル(ADPCM向け)
OPNA 2枚目のwavファイル(ADPCM向け)
OPNB 1枚目のwavファイル(ADPCM-B向け)
OPNB 2枚目のwavファイル(ADPCM-B向け)
OPNB 1枚目のwavファイル(ADPCM-A向け)
OPNB 2枚目のwavファイル(ADPCM-A向け)
を指定したことになります。
このタグを使用すると対応する#pcm...タグは無視されます。
コンパイル時に指定したwavファイルを読み込み、ADPCMデータに変換後、mubファイルに埋め込みます。
各ADPCM/-A/-Bパートで使用可能です。
wavファイルは8/16bit,monoで、ADPCM-Aの場合は18.5kHzである必要があります。
ADPCM-Aの音程について
仕様上、ADPCM-Aは音程は固定ですが、mucomDotNETではこれを利用して、
音程指定で音色が切り替わるようにしています。
その時に必要になるのが各PCMを割り当てる音程を数値で指定する作業です。
o1c は 1 になります。o2c は 17 になります。
以下、c~bまでの増分を示します。
c c+ d d+ e f f+ g g+ a a+ b
+0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11
数値を求める式は
num = ( octave - 1 ) * 16 + note + 1
となり、例えばo2eは
( 2 - 1 ) * 16 + 4 + 1 = 21
で21を指定すればよいことになります。よって
#@pcm_3rd_a 21 , シム , cymbal.wav , 100
g @1l8v31 o2e
でシムを発音します
--機能--
機能
マルチチップ表記
内容
mucomDotNETは以下の様にパート名が拡張されOPNAx2.OPNBx2,OPMの計5枚を同時使用することができます。
既存)
ABCDEFGHIJK OPNAx1 (ABC:FM1/2/3 DEF:SSG1/2/3 G:Rhythm HIJ:FM4/5/6 K:ADPCM)
DotNET)
ABCDEFGHIJK OPNAx1 (ABC:FM1/2/3 DEF:SSG1/2/3 G:Rhythm HIJ:FM4/5/6 K:ADPCM)
LMNOPQRSTUV OPNAx2 (LMN:FM1/2/3 OPQ:SSG1/2/3 R:Rhythm STU:FM4/5/6 V:ADPCM)
abcdefghijk OPNBx1 (abc:FM1/2/3 def:SSG1/2/3 g:ADPCM-A hij:FM4/5/6 k:ADPCM-B)
lmnopqrstuv OPNBx2 (lmn:FM1/2/3 opq:SSG1/2/3 r:ADPCM-A stu:FM4/5/6 v:ADPCM-B)
WXYZwxyz OPM (WXYZwxyz:FM1/2/3/4/5/6/7/8)
各々のパート割は以下の通りです。
; | OPNA 1 OPNA 2 OPNB 1 OPNB 2 OPM
; ---------+-----------------------------------------
; FM | ABCHIJ LMNSTU abchij lmnstu WXYZwxyz
; SSG | DEF OPQ def opq -
; Rhythm | G R - - -
; ADPCM-A | - - g r -
; ADPCM/-B | K V k v -
機能
マルチパート表記
内容
行頭に記述するパート名を列挙できるようにしています。
例)
AB abc
AパートとBパートでabcが鳴ります
機能
ページ表記
内容
パート名の後に数字一文字(0~9)を記述することでページを指定できます。
ページを全く指定しなかった場合は0ページを指定したことになります。
例1)
A0 abc
または
A abc
パートAのページ0でabcが鳴ります
例2)
A014 abc
パートAのページ0,1,4でabcが鳴ります(優先順位処理有り:後述)
例3)
A014BC2 abc
パートAのページ0,1,4,パートBのページ0,パートCのページ2でabcが鳴ります(優先順位処理有り:後述)
機能
ページ機能
内容
同じパートを仮想的に複数のmmlで同時に鳴らす機能です。
実際の演奏ではページを切り替えながら優先順位の高いページの音がなります。
ページがキーオンするときにそのページへ切り替えが行われます。
同じタイミングでキーオンすると優先順位の高いページに切り替わります。
優先順位はページ番号が小さい程、高いです。
ページが切り替わる度に次のパラメータが音源に送信されます。
@ 音色
v ボリューム
p パン
S (SSGのみ)ハードウェアエンベロープ
m (SSGのみ)ハードウェアエンベロープスピード
n (SSGのみ)ノイズトーン切り替え
参照)ページ機能 復帰コマンド一覧
リズム/ADPCM-Aパートは他のパートとは処理が異なります。
リズム/ADPCM-Aパートは全てのページのコマンドがページのカレントに関係なく有効です
また、ページ毎に@コマンドで指定(選択)されたリズム音色/PCM音が重なって発音されます。
!!注意!!
ページ表記を使用した時、出力されるmubファイルはmucomDotNET独自のフォーマットになります。
これが演奏できるのは現状、mucomDotNETのみです。
機能
マクロ機能
内容
既存では0-255までだが、DotNETでは定義数を0-99999まで使用できるように拡張。
機能
SSG拡張機能
内容
SSGExtendタグを On に指定することにより、OPNA/BのSSG機能が拡張されます。尚、実チップでは拡張されません。
拡張機能一覧
-パン
コマンド
p
書式
pn1,n2
値の範囲
n1 : 1:Right 2:Left 3:Center 4:右オートパン 5:左オートパン 6:ランダムパン
n2 :
内容
FMのpコマンドと同様に使用可能です
-拡張パン
コマンド
pe
書式
pen1,n2
値の範囲
n1 : 左音量(0 ~ 8)まで。0で無音、8で全開
n2 : 右音量(0 ~ 8)まで。0で無音、8で全開
内容
左右の音量を9段階で絞ることができます。
-波形変更
コマンド
@I
書式
@In
値の範囲
n : 7:1/8 6:2/8 5:3/8 4:4/8 3:5/8 2:6/8 1:7/8 duty 0:8/8 Pure square wave
8:Triangle Wave 9:Saw Wave
内容
SSGの波形をプリセットから選択することができます。0-7が矩形波でデューティ比の違いがあります。
8は三角波。9はのこぎり波です。@Wと排他的に使用します。
-ユーザー波形選択
コマンド
@W
書式
@Wn
値の範囲
n : 0-255 ユーザー定義番号
内容
SSGの波形を予めユーザー波形定義した波形データに変更することができます。
@Iと排他的に使用します。
ユーザー波形定義
コマンド
@W
書式
@Wn
v01,v02,v03,v04,v05,v06,v07,v08,v09,v10,v11,v12,v13,v14,v15,v16
v17,v18,v19,v20,v21,v22,v23,v24,v25,v26,v27,v28,v29,v30,v31,v32
v33,v34,v35,v36,v37,v38,v39,v40,v41,v42,v43,v44,v45,v46,v47,v48
v49,v50,v51,v52,v53,v54,v55,v56,v57,v58,v59,v60,v61,v62,v63,v64
n 定義番号 (n:0-255)
vn 波形データ(vn:$80~$00~$7F(-128~0~127)) 16 個の値 x 4 行 で 計 64 個のデータが必要。書式に沿って定義してください
-- 以下未実装 --
フェイズリセット(TBD) : キーオン時に波形の開始位置をリセットする機能
逆位相指定(TBD) : 波形を逆位相にすることが可能
--コマンド--
-マクロシフト
コマンド
**
書式
**n
値の範囲
n : シフト値
使用可能なパート
全て
内容
mml中でマクロを指定した際に、そのマクロ番号へこのコマンドで指定した値を加算します。
結果、実際に演奏されるマクロは、この指定値分だけずれた番号になります。
参考
macroShift.muc
mubファイルでのフォーマット
-
-音色定義
コマンド
@M
書式
@M(音色番号)
FB,AL
AR,DR,SR,RR,SL,TL,KS,ML,DT,DT2 ; op1
AR,DR,SR,RR,SL,TL,KS,ML,DT,DT2 ; op2
AR,DR,SR,RR,SL,TL,KS,ML,DT,DT2 ; op3
AR,DR,SR,RR,SL,TL,KS,ML,DT,DT2 ; op4
値の範囲
音色パラメータによる
使用可能なパート
全て(実質OPM)
内容
OPM向けのDT2を含んだ音色定義ができます
mubファイルでのフォーマット
-
-音色モーフィング
コマンド
@
書式
@n1,n2,n3[,n4]
値の範囲
n1 : (0~255)発音時の音色番号
n2 : (0~255)到達目標の音色番号
n3 : (1~255)変化スピード(Tick)
n4 : (0:しない 1:する)発音ごとにリセットするか否か(省略時:1)
使用可能なパート
FM
内容
FB,ALG,AR~DTx4オペのパラメーターを+-1ずつ変化させ、n2で指定した音色に変化させます。
変化スピードはn3で指定し1が最速になります。
mubファイルでのフォーマット
0xff,0xfc,n1,n2,n3
-レジスタ書き込み
コマンド
y
書式
yn1,n2,n3,n4
値の範囲
n1 : (0~4) 0:OPNA.1 1:OPNA.2 2:OPNB.1 3:OPNB.2 4:OPM
n2 : (0~1) ポート
n3 : (0~255) アドレス
n4 : (0~255) データ
使用可能なパート
全て
内容
他のChipのパートに対してデータを送れるようにします。
既存のコマンドと比較してアドレスの制限がありません。
mubファイルでのフォーマット
0xFF 0xF7 n1 n2 n3 n4
-個別ボリューム設定
コマンド
v
書式
vn1
値の範囲
n1 : (0~31)
使用可能なパート
G/R/g/r (RHYTHM/ADPCM-A)
内容
リズム音源のvコマンドは既存では一括で全ての音色の音量を設定する必要がありますが、
DotNETではパラメータを一つだけ指定すると@コマンドで選択した音色にだけ音量を適用できます。
もちろん既存の表記も可能です。
mubファイルでのフォーマット
0xF1 ( n1 | 0x80 )
-ボリュームモード設定スイッチ
コマンド
vm
書式
vmn
値の範囲
n : ( 0~3 )
使用可能なパート
FM
内容
このvmコマンドを使用すると、vコマンドがその値に沿った動作になります。
0 : 既存(default)
既存の音量設定モードです。
1 : ボリューム再定義
音量指定時に使用されるボリュームを再定義したものを使用します。
1の後に、指定するTL値(0~127)を20個列挙してください。
(mucomではv0よりもさらに小さい音量を4つ分定義することが出来ます。)
例)
vm 1, 0,1,2,3,4,5,6,7,9,11,13,16,20,25,33,127,127,127,127,127 ;v15からv0 +4 までの定義分、順に列挙します
この場合、
v15cde
はTLが0でcdeを演奏、
v0cde
はTLが127でcdeを演奏します。
2 : 詳細
vコマンドで指定する音量が0~127になります。(0が最小、127が最大音量です)
3 : 詳細(TLパラ)
vコマンドで指定する音量が0~127になります。(0が最小、127が最大音量です)但し4オペレータ(キャリア)分、値を指定します。
例)
vm3 v127,120,110,100
この場合、オペレータ4から1へ順に127,120,110,100がセットされます。但しキャリアのみが対象です。
オペレータ4以外の値は省略可能です。
尚、どのモードであっても #CarrierCorrectionタグが指定されている場合は音色定義時の値が付加されます。
又、音量バランス設定コマンド(V)の値も付加されます。
mubファイルでのフォーマット
0xFF 0xFB n (n=1のときはvolumeのデータ20byte追加)
また、vコマンドで1つ以上4つ以下の値をセットしたときは通常と異なり以下のフォーマットで設定されます。
0xFF 0xFB 0xFF TL4 TL3 TL2 TL1 (TLはvコマンドで指定したTL値(0~127)。オペレータ4からセットされる。)
-相対個別ボリューム設定スイッチ
コマンド
vm
書式
vmn
値の範囲
n : ( 0 , 1 )
使用可能なパート
G/R/g/r (RHYTHM/ADPCM-A)
内容
後述のリズム音源の個別の音色に対して相対で音量を設定する機能をオンオフするスイッチです。
0でOFF、1でONです。
mubファイルでのフォーマット
なし
-個別ボリューム設定
コマンド
) (
書式
)[n] ([n]
値の範囲
n : (0~31)
使用可能なパート
G/R/g/r (RHYTHM/ADPCM-A)
内容
リズム音源の)(コマンドは既存ではトータルボリュームに対して相対で音量を設定しますが、
DotNETでは@コマンドで選択した音色にだけ音量を適用できます。
vmコマンドが1のとき有効になります。
0を指定すれば既存の動作になります。
mubファイルでのフォーマット
0xFB ( n1 | 0x80 )
-パン(オートパン機能追加)
コマンド
p
書式
pn1[,n2]
値の範囲
n1 : (4~6)
n2 : (0~255) 省略時はlコマンドの値を使用
使用可能なパート
A/B/C/G/H/I/J/K (FM / RHYTHM / ADPCM)
L/M/N/R/S/T/U/V (FM / RHYTHM / ADPCM)
a/b/c/g/h/i/j/k (FM / ADPCM-A / ADPCM-B)
l/m/n/r/s/t/u/v (FM / ADPCM-A / ADPCM-B)
W/X/Y/Z/w/x/y/z (FM)
内容
n1に4未満を指定した場合は、既存のパンコマンドになります。
4:右オートパン 5:左オートパン 6:ランダムパン
n2は次のパンに切り替わるまでのウエイト値になります。
4または5指定時のパンは以下の様に左右に順番に往復を繰り返します。
4のとき 1(右)→3(中央)→2(左)→3(中央)→繰り返し
5のとき 2(左)→3(中央)→1(右)→3(中央)→繰り返し
RHYTHM/ADPCM-Aのn1の内訳は以下の通りです。
bit0~3 RhythmType Rim:5 Tom:4 Hat:3 Cym:2 Sd:1 Bd:0
bit4~7 パン 1:右, 2:左, 3:中央 4:右オート 5:左オート 6:ランダム
また、後述のpmコマンドを使用することにより、RHYTHM/ADPCM-AでもFMやADPCMと同じ値で指定することができます。
mubファイルでのフォーマット
n1が4未満の時
0xF8 n1
n1が4以上の時
0xF8 n1 n2
-パン指定設定スイッチ
コマンド
pm
書式
pmn
値の範囲
n : ( 0 , 1 )
使用可能なパート
G/R/g/r (RHYTHM/ADPCM-A)
内容
リズム音源の個別の音色に対してパンを他のチャンネルと同じ形式で指定できる機能をオンオフするスイッチです。
0でOFF、1でONです。
mubファイルでのフォーマット
なし
(パンを使用したときにコンパイラが既存のコマンド値に変換するようになる)
-スロットディチューン
コマンド
S
書式
Sn1,n2,n3,n4
値の範囲
n : (0~255 / -32768~32767)
使用可能なパート
C/N/c/n (FM)
内容
指定すると効果音モードを利用したスロットディチューン効果を得ることができます。
0~255の範囲外の値を使用するとDotNETモードに自動で移行しますが一度でも既存モードを使用しているとそこでエラーになります。
その場合は#Driverタグを使用しmucomDotNETを予め指定してください。
また、既存とDotNETではfnumの計算方法が異なります。
mubファイルでのフォーマット
既存モード時
0xF7 n1 n2 n3 n4
DotNETモード時
0xF7 n1(lsb) n1(msb) n2(lsb) n2(msb) n3(lsb) n3(msb) n4(lsb) n4(msb)
-SSGハードウェアエンベロープ
コマンド
S
書式
Sn
値の範囲
n : (0~15)
使用可能なパート
D/E/F/O/P/Q/d/e/f/o/p/q (SSG)
内容
指定するとSSGのハードウェアエンベロープ
モードに切り替わります。
0~15はエンベロープの波形の種類になります。
ハードウェアエンベロープを使用中に
'v'(ボリュームコマンド)を使用すると通常の
モードに戻ります。
')'や'('は無視されます。
mubファイルでのフォーマット
0xFF 0xF1 n1
-SSGハードウェアエンベロープ スピード
コマンド
m
書式
mn
値の範囲
n : (0~65535)
使用可能なパート
D/E/F/O/P/Q/d/e/f/o/p/q (SSG)
内容
SSGハードウェアエンベロープの波形の変化
スピードを設定します。
値が小さいほど早く変化します。
mubファイルでのフォーマット
0xFF 0xF2 n(lsb) n(msb)
-SSGソフトウェアエンベロープ プリセット書き換え
コマンド
@=
書式
@n=al,ar,dr,sl,sr,rr
値の範囲
n : (0~15)
al : (0~255)
ar : (0~255)
dr : (0~255)
sl : (0~255)
sr : (0~255)
rr : (0~255)
使用可能なパート
D/E/F/O/P/Q/d/e/f/o/p/q (SSG)
内容
SSGソフトウェアエンベロープのプリセットを書き換えます。
但し、書き換えられるのはEコマンドにあたる部分のみです。P,Mコマンドに該当する値は書き換えません。
定義後は通常通り@コマンドで使用できます。
尚、mucomDotNET(Player)は、1曲毎に起動しなおすのでプリセットは毎回初期化されます。
(つまり他の曲データを再生したときに、書き換えた内容が引き継がれることはありません。)
mubファイルでのフォーマット
0xFC n al ar dr sl sr rr
-FM TLパラメータLFO
コマンド
MT
書式
MTn1,n2
値の範囲
n1 : (0~15)
n2 : (0~127)
使用可能なパート
A/B/C/H/I/J/L/M/N/S/T/U (FM)
a/b/c/h/i/j/l/m/n/s/t/u (FM)
W/X/Y/Z/w/x/y/z (FM)
内容
lfoをFMのTL(トータルレベル)に適用します。
tlは音量や、波形の変調量を調節するパラメーターですので
そこにLFOをかければ、トレモロやワウの効果を期待できます。
n1: 0を指定すると通常のLFOに戻ります。
LFOをかけたいオペレータをbitで指定します。
bit0:op1 bit1:op2 bit2:op3 bit3:op4 (bitの重みは順に 1,2,4,8)
です。例えばop1とop3にLFOを指定したい場合は
1(bit0) + 4(bit2) = 5
で5を指定します。
n2: 基準となるTLの値を指定します。
mubファイルでのフォーマット
0xF4 0x07 n1 n2
-デフォルト音長設定
コマンド
l
書式
l%n
値の範囲
n : (0~Cで設定した値)
使用可能なパート
all
内容
クロックを直接指定する場合に使用します。
%コマンドと同じ機能になります。
mubファイルでのフォーマット
既存と同じ
-SSG トレモロLFO
コマンド
MT
書式
MTn
値の範囲
n : (0:OFF 1:ON)
使用可能なパート
D/E/F/O/P/Q/d/e/f/o/p/q (SSG)
内容
MT1とすることで音程の代わりに音量に対してlfoを適用します。
MT0と宣言するとデフォルトである音程のlfoに戻ります。
エンベロープの併用が可能です。
mubファイルでのフォーマット
0xF4 0x07 n
-FM キーオンディレイ
コマンド
KD
書式
KDn1,n2,n3,n4
値の範囲
n1 : (0~Cで設定した値)
n2 : (0~Cで設定した値)
n3 : (0~Cで設定した値)
n4 : (0~Cで設定した値)
使用可能なパート
A/B/C/H/I/J/L/M/N/S/T/U (FM)
a/b/c/h/i/j/l/m/n/s/t/u (FM)
W/X/Y/Z/w/x/y/z (FM)
内容
FM音源のキーオンをスロット毎にずらす場合に使用します。
n1~n4はそれぞれスロット1~4に対応しています。
値の単位はクロック数で、指定したクロック分だけずれてキーオンします。
(発音するかどうかはアルゴリズムに左右します。)
全ての値を0に指定することでディレイ無しの(通常の)状態に戻ります。
注意
音色によってはキーオン時にノイズが乗ることがあります。
(リリースレート高めや早めのキーオフによって回避できます。)
mubファイルでのフォーマット
0xFF 0xF6 n1 n2 n3 n4
-MIDI風ポルタメント
コマンド
PO
POS
POR
POL
_
__
書式
POn1,n2,n3
POSn1
PORn2
POLn3
_
__
値の範囲
n1 : スイッチ(0:OFF,1:ON)
n2 : 初期音程差(-128~127)
n3 : 遷移時間(0~Cで設定した値)
使用可能なパート
A/B/C/H/I/J/L/M/N/S/T/U (FM)
a/b/c/h/i/j/l/m/n/s/t/u (FM)
W/X/Y/Z/w/x/y/z (FM)
D/E/F/O/P/Q/d/e/f/o/p/q (SSG)
内容
使用すると、ノート発音時にMIDI風のポルタメント動作が行われます。
これは、前回の音程を開始音程、ノートに指定した音程を到達音程としてベンドを行う動作になります。
指定した時間に到達音程に達した後はそのままその音程を持続します。
n1に1を設定するとこのモードが有効になり、無効になるまでポルタメント動作が実施されます。
n1に0を設定するとこのモードが無効になり、通常の動作に戻ります。
モードが有効になって初めての発音は、n2に指定した値をノートに加算した値が発音開始音程として使用されます。
次の発音からは前回の到達音程が開始音程となります。
n3はベンドにかかる時間をクロック数で指定します。
POSコマンドはスイッチだけ変更したい場合に使用します。
PORコマンドを使用すると開始音程を指定した値(相対値)にリセットします。
POLコマンドはベンドにかかる時間をクロック数だけ変更したい場合に使用します。
_コマンドは、ポルタメント動作が有効な場合は、次のノートだけ動作を無効にします。
ポルタメント動作が無効な場合は、次のノートだけ動作を有効にします。
__コマンドは、ポルタメント動作が有効な場合は、次のノートだけ動作を無効にします。
ポルタメント動作が無効な場合は、次のノートだけ動作を有効にします。但し開始音程は初期音程差が使用されます。
mubファイルでのフォーマット
通常のポルタメントとタイ、ノートを列挙したものになります。
よってドライバ側のコマンドはありません。
-ポルタメント
コマンド
{ }
書式
{n1n2n3}
値の範囲
n1 : 音程1 c~bまで(音長指定可能)
n2 : 相対オクターブチェンジ < 又は >
n3 : 音程2 c~bまで(音長指定不可)
デフォルト値
-
使用可能なパート
リズム又はADPCM-A 以外のパート
(ADPCMパートも可能)
内容
指定した音程1から音程2まで音程を滑らかに変化させます。
mubファイルでのフォーマット
-
-効果音モードスイッチ
コマンド
EXON
EXOF
書式
EXON
EXOF
値の範囲
-
デフォルト値
効果音モード無効
使用可能なパート
C/N/c/n (FM)
内容
効果音モードに移行するか、否かを指定します。
EXONで効果音モードになります。
EXOFで通常に戻ります。
効果音モードに移行すると、C/N/c/nパートのページの動作が専用に切り替わります。
排他的な動作になりますので、ページ本来の動作は効果音モード中は使用できません。
mubファイルでのフォーマット
EXON : 0xFF 0xF8 0x00 0x01
EXOF : 0xFF 0xF8 0x00 0x00
-効果音モードのスロット割り当て(使用するスロットを列挙する)
コマンド
EX
書式
EXn
値の範囲
使用するスロットの番号(1~4)を列挙する。
又は0でスロットを使用しないことを指定する。
デフォルト値
EX1234
使用可能なパート
C/N/c/n (FM)
内容
指定したパートで使用するスロット番号を指定します。
例えばスロット1と2を指定したい場合は
EX12
と指定します。
音色指定コマンドはこの設定を参照し、有効なスロットの音色項目値のみ変更するようになります。
尚、これだけ指定しても、効果音モードに自動で移行することはありません。
EXONコマンドを使用してください。
また、効果音モード時に音色を変更した場合、有効なスロットのみ変更処理が行われます。
同様に音量変更時も、有効なスロットのみ変更処理が行われます。
音色変更時、FB/ALGは毎回更新されますが、ページ毎にその値を保持していますのでその値に違いがあると想定外の音量変更が行われます。
よって同じFB/ALGの音色を使用することをお勧めします。
スロット番号に0を指定するとそのパートの割り当てはクリア(キーオン対象のスロットが無しの状態に)されます。
mubファイルでのフォーマット
0xFF 0xF8 0x01 n
(n : bit3,2,1,0 がそれぞれスロット4,3,2,1の有効:1、無効:0を示す)
-ソフトエンベロープ
コマンド
E
書式
En1,n2,n3,n4,n5,n6
値の範囲
各パラメータとも0~255まで
デフォルト値
なし
使用可能なパート
K/V/k/v (ADPCM/-B)
内容
SSGの機能をADPCMパートでも使用できるようにしたものです。
mubファイルでのフォーマット
0xFF 0xFA n1 n2 n3 n4 n5 n6
-パート別リプレイス
コマンド
[|
|
|]
書式
[|
|
|]
値の範囲
-
デフォルト値
なし
使用可能なパート
All
内容
[|と|]で括った範囲をパート別指定した範囲で演奏します。
括った範囲内の|で次のパートが演奏する内容になります。
ネスト不可能です。
[|を見つけると、パートの記述欄を参照し、自分(コンパイルしようとしている現在のパート)が何番目の位置にあたるか調べます。
そのあと自分の位置にあたる区域だけを有効としてあとは|]まで読み捨てます。
|を指定するたびに次のパートの区域に切り替わります。
mubファイルでのフォーマット
-
--内部コマンド--
-パート、ページデータのアドレス指定
コマンド
- (内部コマンドの為、無し)
書式
-
mubファイルでのフォーマット
0xFF 0xF7 nn pd pc pb pa [ gd gc gb ga ] ..(nnの値分、gdgcgbgaを繰り返す)
値の範囲
nn : (0~9)
papbpcpd : パートのデータへのオフセット(4バイト LE)
gagbgcgd : ページのデータへのオフセット(4バイト LE)
使用可能なパート
all
内容
パートのデータへのアドレスを指定します。
ページを使用する場合はそのアドレスも列挙します。
このコマンドはパートデータの先頭に1度だけ使用します。
アドレスを置き換える必要がない場合や、ページを使用しない場合はこのコマンドはありません。
--資料--
--ページ機能 復帰コマンド一覧--
FM & SSG & ADPCM/-B
コマンド 復帰 他のページと共有 備考
C 〇 しない 初期化が要ります
t - 全てで共有する
T - 全てで共有する
@ 〇 しない 初期化が要ります
o 〇 しない 初期化が要ります
v 〇 しない 初期化が要ります
q 〇 しない 初期化が要ります
p 〇 しない 初期化が要ります
l 〇 しない 初期化が要ります
cdefgabr 〇 しない
% 〇 しない 初期化が要ります
D 〇 しない 初期化が要ります
> 〇 しない oの初期化が要ります
< 〇 しない oの初期化が要ります
) 〇 しない vの初期化が要ります
( 〇 しない vの初期化が要ります
& × しない
^ × しない