-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathzm12.txt
1814 lines (1699 loc) · 75.1 KB
/
zm12.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
MEASURE12
ZMD/ZPDフォーマット
ここではZMD,ZPD、その他のZMUSIC Ver.3.0で扱う
ファイルのフォーマットについて解説します。
[注意]
文中の(.b)(.w)(.l)および(ds.b)(ds.w)(ds.l)等はデータ長を表している。
(ds.b)/(.b) バイトサイズ
(ds.w)/(.w) ワードサイズ(2バイト)
(ds.l)/(.l) ロングワードサイズ(4バイト)
12.1. ZMDファイルのヘッダブロックの構成
ZMDは
$1a,'ZmuSiC',ZMD version ID($30)
のヘッダIDを先頭に以下のようなヘッダ構成を取る。
各ヘッダ項目は各情報/データ領域までのオフセットを格納するもの(z_comn_offset,
z_trk_offsetなど)と項目データそのものを格納するもの(z_total_count,z_tempoなど)
の2タイプに分けられる。
演奏データなどを一切含んでいない「空」のZMDであっても以下に示したヘッダブロ
ックは必ず存在する。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
z_zmusic_id: ds.l 2 *$1a,'ZmuSiC',ZMD version ID($30)
z_comn_offset: ds.l 1 *共通コマンドまでのオフセット(0:無し)
z_trk_offset: ds.l 1 *トラック・チャンネル情報テーブルまでの
*オフセット(0:無し)
z_ctrl_offset: ds.l 1 *演奏制御コマンドまでのオフセット
*(0で全トラック演奏)
z_zmd_size: ds.l 1 *このZMDファイル全体のサイズ
z_song_offset: ds.l 1 *歌詞データまでのオフセット
ds.l 1 *リザーブ
z_total_offset: ds.l 1 *トータルステップタイムの格納アドレス
z_title_offset: ds.l 1 *タイトル文字列までのオフセット
*(または最初のコメント文)
z_total_count: ds.l 1 *Total Step Time
z_play_time: ds.l 1 *演奏時間(時間/分/秒) [reserved]
z_meter: ds.w 1 *拍子(n/m)
z_metronome: ds.b 1 *メトロノーム速度
ds.b 1 *reserved
z_key: ds.w 1 *調号(n個の#/-n個の♭/0はC),(0で長調/1で短調)
z_master_clock: ds.w 1 *全音符のマスタークロック[192]
z_tempo: ds.w 1 *初期テンポ[120]
ds.w 1 *reserved
z_cmn_flag: ds.l 1 *共通コマンドの使用状態
z_ctrl_flag: ds.l 1 *制御コマンドの使用状態
z_instrument: ds.l 1 *使用楽器タイプ
*(d0:GM d1:GS d2:SC88 d3:MT32 d4:U220 d5:M1)
z_nof_fm_ch: ds.b 1 *FM音源使用チャンネル数(0-8)
z_nof_ad_ch: ds.b 1 *ADPCM(PCM)音源使用チャンネル数(0-16)
z_nof_md1_ch: ds.b 1 *MIDI-1使用チャンネル数(0-16)
z_nof_md2_ch: ds.b 1 *MIDI-2使用チャンネル数(0-16)
z_nof_md3_ch: ds.b 1 *MIDI-3使用チャンネル数(0-16)
z_nof_md4_ch: ds.b 1 *リザーブ
ds.w 1 *リザーブ
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
なお、タイトル文字は
1行目は曲のタイトル。それ以降はコメント。
また、曲名/作曲者/編曲者/データ作成者の様な一般的な情報を複数行にわたって
記述する場合は以下の文字列で表される情報タイトルの後に記載することと規定する。
(情報タイトルの日本語は全角、英字は半角英数大文字のみ、また : は必須)
[日本語] [英語]
曲名: TITLE:
作曲者: COMPOSER:
編曲者: ARRANGER:
作成者: MANIPULATER:
作成日: DATE: (原曲の作曲年月日はCOPYRIGHT:)
録音場所 STUDIO:
使用機器: INSTRUMENTS:
ジャンル: CATEGORY:
例
.comment {
TITLE: I am a boy, therefore I have balls.
作曲者:西川善司
STUDIO:自宅
ジャンル:童謡
}
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ オフセット値について ┃
┃ ┃
┃ ┃
┃ ZMUSIC用のデータで扱うオフセット値はオフセット値の格納してある次の ┃
┃ ┃
┃アドレスからのオフセットです。今例えば、$A000番地に ┃
┃ ┃
┃ワードサイズのオフセット$0E00が格納されていたとするとポイントするアドレスは ┃
┃ ┃
┃$A002+$0E00=$AE02となります。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
12.2. 共通コマンドのZMD
ZMDに共通コマンドが存在しない場合はヘッダブロックの z_comn_offset の内容を
0とする。存在する場合は一番初めの共通コマンドZMDの存在位置までのオフセット
アドレスを格納する。
共通コマンドZMDには以下のようなものがある。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CMN_END 共通コマンドZMD終了
$ff(.b)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CMN_INIT 初期化
$00(.b) ZMD
$00(.b) 将来の拡張用
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CMN_READ_SUB サブファイルの読み込みと実行
$04(.b) ZMD
Filename ファイル名文字列(Endcode=0(.b))
合計?bytes
または
$04(.b) ZMD
0(.b) 文字列でなくオフセット値指定で有ることを示すコード
Offset(.l) データが存在するアドレスまでのオフセット
Size(.l)
合計10bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CMN_TEMPO テンポ
$08(.b) ZMD
Tempo(.w) テンポ値:0-65535
合計3bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CMN_MASTER_CLOCK 全音符クロック数登録
$0c(.b) ZMD
Master Clock(.w) マスタークロック:0-32767
合計3bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CMN_FM_TUNE_SETUP FM音源チューニング
$10(.b) ZMD
Data...(128bytes) チューニング値(MML @Kレンジ):-128~+127
合計129bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CMN_PCM_TUNE_SETUP (AD)PCM音源チューニング
$14(.b) ZMD
Data...(128bytes) チューニング値(MML @Kレンジ):-128~+127
合計129bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CMN_VSET: FM音源音色設定
$18(.b) ZMD
Tone number(.w) 0-256*128
0(.b) RESERVED
Tone data(.b) 0)LFRQ
Tone data(.b) 1)PMD
Tone data(.b) 2)AMD
Tone data(.b) 3)SYNC/OM/WF
Tone data(.b) 4)PAN/AF
Tone data(.b) 5)PMS/AMS
Tone data(.b) 6)OP1:DT1/MUL
Tone data(.b) 7)OP3:DT1/MUL
Tone data(.b) 8)OP2:DT1/MUL
Tone data(.b) 9)OP4:DT1/MUL
Tone data(.b) 10)OP1:TL
Tone data(.b) 11)OP3:TL
Tone data(.b) 12)OP2:TL
Tone data(.b) 13)OP4:TL
Tone data(.b) 14)OP1:KS/AR
Tone data(.b) 15)OP3:KS/AR
Tone data(.b) 16)OP2:KS/AR
Tone data(.b) 17)OP4:KS/AR
Tone data(.b) 18)OP1:AME/1DR
Tone data(.b) 19)OP3:AME/1DR
Tone data(.b) 20)OP2:AME/1DR
Tone data(.b) 21)OP4:AME/1DR
Tone data(.b) 22)OP1:DT2/2DR
Tone data(.b) 23)OP3:DT2/2DR
Tone data(.b) 24)OP2:DT2/2DR
Tone data(.b) 25)OP4:DT2/2DR
Tone data(.b) 26)OP1:D1L/RR
Tone data(.b) 27)OP3:D1L/RR
Tone data(.b) 28)OP2:D1L/RR
Tone data(.b) 29)OP4:D1L/RR
Tone data(.b) 30)-45)NAME
合計50bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CMN_WAVE_FORM 波形メモリ登録
$1c(.b) ZMD
Wave number(.w) 波形番号:8-255
Data Size(.l) データサイズ:2~ (かならず偶数)
Loop Type(.b) 波形タイプ:(0:1Shot 1:Loop 2:Alternative-Loop)
Loop Start Offset(.l) ループ開始オフセット:0~(かならず偶数)
(ループなしの場合は0)
Loop End Offset(.l) ループ終端オフセット:0~(かならず偶数)
(オフセット値はループ終端データのあるオフセットアドレス+2)
(ループなしの場合は最終データの存在するオフセットアドレス+2)
Loop Time(.l) ループ回数:(1~) (0は無限回に相当)
Reserved(.l) リザーブ
String Length(.b) コメント文字列長:0-255
String Data... コメント文字列 (No Endcode)
(.even処理)
Wave Data(.w) 波形データ (必ず偶数アドレスから...)
合計25~?bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CMN_REGISTER_PCM (AD)PCM登録
$20(.b) ZMD
Flag(.w) フラグ
d15:PCMデータ加工オプションパラメータの有無
(0:no 1:exist)
d0-d14:1-32767 次の共通コマンドまでのオフセット
d0-d14:0は15ビットでは表現出来ない場合を表すが通常は
無視してよい
Note/Timbre No.(.w) Note Number(0-32767)/Timbre Number($8000+0-32767)
Regtype(.b) 登録タイプ(-1:ADPCM 0:V2互換 1:16bitPCM 2:8bitPCM)
Original Key Code(.b) オリジナルキー(0-127:Key Code 128:No Original Key)
Reserved(.w) リザーブ
Tone Name(.b)...0(.b) TONE NAME(最大32バイト) (Endcode=0(.b))
Filename(.b)...0(.b) ファイルネーム文字列 (Endcode=0(.b))
(Filename).l=$00xxxxxxの場合はすでに登録されている
トーン/音色データをコピー流用する指定となる。
(Filename).l=$01xxxxxxの場合はすでに登録されている
トーン/音色データを流用する。 (この場合、.LOOP以外の
PPCは利用不可)
PPC(?butes) PCM PROCESSING COMMAND(PPC)... PPCについては後述
合計21-?bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CMN_ERASE_PCM (AD)PCM登録取消
$24(.b) ZMD
Note/Timbre No.(.w) Note Number(0-32767)/Timbre Number($8000+0-32767)
合計3bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CMN_BLOCK_PCM ZPD読み込み
$28(.b) ZMD
Filename(.b)...0(.b) ファイルネーム文字列(Endcode=0(.b))
合計3~?bytes
または
$28(.b) ZMD
ZPD.ID(.b) ZPD ID(0:V1~2 1:V3 2:PDX)
Offset(.l) データが存在するアドレスまでのオフセット
合計6bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CMN_CRNT_MIDI_IN カレントMIDI-IN設定
$2c(.b) ZMD
MIDI I/F Number(.b) インターフェース番号:0-3
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CMN_CRNT_MIDI_OUT カレントMIDI-OUT設定
$30(.b) ZMD
MIDI I/F Number(.b) インターフェース番号:0-3
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CMN_MIDI_TRANSMISSION MIDIデータ転送
$34(.b) ZMD
MIDI I/F(.b) インターフェース番号:0-3/(-1:カレントMIDI-OUT)
String Length(.b) 文字列長:0-255
String Data... コメント文字列 (No Endcode)
Transmit Data Length(.l) 転送データ長
Data.... 転送データ
合計8-?bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CMN_MIDI_DUMP スタンダードMIDIファイルの送信
$38(.b) ZMD
MIDI I/F(.b) インターフェース番号:0-3/(-1:カレントMIDI-OUT)
Filename(.b)...0(.b) ファイルネーム文字列 (Endcode=0(.b))
合計4-?bytes
または
$38(.b) ZMD
MIDI I/F(.b) インターフェース番号:0-3/(-1:カレントMIDI-OUT)
0(.b) 文字列でなくオフセット値指定で有ることを示すコード
Offset(.l) データが存在するアドレスまでのオフセット
合計7bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CMN_COMMENT コメント
$40(.b) ZMD
String(.b)...0(.b) 文字列 (Endcode=0(.b))
合計3-?bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CMN_PRINT 文字列表示
$44(.b) ZMD
String(.b)...0(.b) 文字列 (Endcode=0(.b))
合計3-?bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CMN_DUMMY ダミー
$48(.b) ZMD
合計1byte
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CMN_HALT 停止
$4c(.b) ZMD
Interval(.l) 待ち時間=1/60秒×Interval(.l)
合計5bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
12.3. PCM PROCESSING COMMANDのZMD
共通コマンドZMD「CMN_REGISTER_PCM」はPCMの加工をPCM PROCESSING COMMAND(PPC)
を用いてVer.2.0以前の(AD)PCM加工処理よりも柔軟な加工が行えるようになっている。
以下に示すのはPPCのZMDで、共通コマンドZMD「CMN_REGISTER_PCM」中に用いて初めて
機能し、これ単体で用いられることはない(用いることは出来ない)。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●PPC_END PPC終了
$00(.w) PPC END
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●PPC_PITCH 音程変更
$02(.w) PPC
Offset Count(.l) 加工開始オフセット:値は物理サイズではなくて
データカウント
Processing Count(.l) 加工サイズ:値は物理サイズではなくてデータカウント
0は加工開始オフセット以降全てを加工範囲とする
Source Frq(.w) 変換元周波数:1-65535
Dest. Frq(.w) 変換後周波数:1-65535
合計13bytes
※データカウントは登録タイプによってその次元は変化する
・登録タイプがADPCMのときデータ1カウントは物理量1バイトに相当する
・登録タイプが16bitPCMの時にはデータ1カウントは物理量2バイトに相当する
その他のPPCについても同様
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●PPC_VOLUME 音量変更
$04(.w) PPC
Offset Count(.l) 加工開始オフセット:値は物理サイズではなくて
データカウント
Processing Count(.l) 加工サイズ:値は物理サイズではなくてデータカウント
0は加工開始オフセット以降全てを加工範囲とする
Volume(.w) 音量:0-65535
合計11bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●PPC_MIX 合成
$06(.w) PPC
$0000(.w) 固定値
Mix Source(.w) 合成元:(Tone:0-32767 Timbre:$8000+(0-32767))
Offset Count(.l) 合成開始オフセット:値は物理サイズではなくて
データカウント(負の値も可能)
負の場合は絶対値カウント分、合成先
データの前側に合成する指定となる。
PPC... PPCをさらにここに含め合成元のデータに対して加工処理を
施すことが出来る。
PPC_ENDで合成元のデータに対するPPC列の終端を表す。
0(.b) PPC_MIX終了
合計10-?bytes
または
$06(.w) PPC
Filename...0(.b) ファイルネーム文字列 (0=Endcode(.b))
Offset Count(.l) 合成開始オフセット:値は物理サイズではなくて
データカウント(負の値も可能)
負の場合は絶対値カウント分、合成先
データの前側に合成する指定となる。
PPC... PPCをさらにここに含め合成元のデータに対して加工処理を
施すことが出来る。
PPC_ENDで合成元のデータに対するPPC列の終端を表す。
0(.b) PPC_MIX終了
合計8-?bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●PPC_TRUNCATE 切りだし
$08(.w) PPC
Offset Count(.l) 切りだし開始オフセット:値は物理サイズではなくて
データカウント
Truncate Count(.l) 切りだしサイズ:値は物理サイズではなくてデータカウント
0はオフセット以降全てを加工範囲とする
合計9bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●PPC_REVERSE 反転
$0a(.w) PPC
Offset Count(.l) 反転開始オフセット:値は物理サイズではなくて
データカウント
Reverse Count(.l) 反転サイズ:値は物理サイズではなくてデータカウント
0はオフセット以降全てを加工範囲とする
合計9bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●PPC_FADE フェーダー操作
$0c(.w) PPC
Offset Count(.l) 加工開始オフセット:値は物理サイズではなくて
データカウント
Fade Count(.l) 加工サイズ:値は物理サイズではなくてデータカウント
0はオフセット以降全てを加工範囲とする
Start Level(.w) 開始音量:0-128-65535(128は原音レベル)
End Level(.w) 終了音量:0-128-65535(128は原音レベル)
合計13bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●PPC_BEND ピッチベンド
$0e(.w) PPC
Offset Count(.l) 加工開始オフセット:値は物理サイズではなくて
データカウント
Bend Count(.l) 加工サイズ:値は物理サイズではなくてデータカウント
0はオフセット以降全てを加工範囲とする
Start Frq(.w) 開始周波数:1-65535[Hz]
End Frq(.w) 終了周波数:1-65535[Hz]
合計13bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●PPC_LOOP ループポイント設定
$10(.w) PPC
omt(.b) 省略フラグ(bit=1で対応パラメータが後続する)
d0:loop start point
d1:loop end point
Loop Type(.b) ループタイプ:0=FORWARD (現在は0のみ)
Loop Time(.l) ループ回数:1~ (0は無限回に相当)
Loop Start(.l) ループ開始オフセット:値は物理位置ではなくてデータカウント
(omt.d0=1の時だけ設定)
Loop End(.l) ループ終了オフセット:値は物理位置ではなくてデータカウント
(omt.d1=1の時だけ設定)
合計6-14bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●PPC_CONNECT 接合
$12(.w) PPC
$0000(.w) 固定値
Connect Source(.w) 接合元:(Tone:0-32767 Timbre:$8000+(0-32767))
Offset Count(.l) 接合開始オフセット:値は物理サイズではなくて
データカウント(負の値も可能)
負の場合は絶対値カウント分、接合先
データの前側に接合する指定となる。
PPC... PPCをさらにここに含め接合元のデータに対して加工処理を
施すことが出来る。
PPC_ENDで接合元のデータに対するPPC列の終端を表す。
0(.b) PPC_CONNECT終了
合計11-?bytes
または
$12(.w) PPC
filename...0(.b) ファイルネーム文字列 (Endcode=0(.b))
Offset Count(.l) 接合開始オフセット:値は物理サイズではなくて
データカウント(負の値も可能)
負の場合は絶対値カウント分、接合先
データの前側に接合する指定となる。
PPC... PPCをさらにここに含め接合元のデータに対して加工処理を
施すことが出来る。
PPC_ENDで接合元のデータに対するPPC列の終端を表す。
0(.b) PPC_CONNECT終了
合計9-?bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●PPC_DELETE 削除
$14(.w) PPC
Offset Count(.l) 削除開始オフセット:値は物理サイズではなくて
データカウント
Truncate Count(.l) 削除サイズ:値は物理サイズではなくてデータカウント
0はオフセット以降全てを削除範囲とする
合計9bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●PPC_DISTORTION ディストーション
$16(.w) PPC
Offset Count(.l) 加工開始オフセット:値は物理サイズではなくて
データカウント
Processing Count(.l) 加工サイズ:値は物理サイズではなくてデータカウント
0はオフセット以降全てを加工範囲とする
Volume(.w) 音量倍率:0-65535
Cut Off Level(.w) 音量臨海値:0-32767(絶対値をこれ以下のレベルに丸める)
合計13bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●PPC_SMOOTH 平均化(スムーズ化)
$18(.w) PPC
Offset Count(.l) 加工開始オフセット:値は物理サイズではなくて
データカウント
Reverse Count(.l) 加工サイズ:値は物理サイズではなくてデータカウント
0はオフセット以降全てを加工範囲とする
Repeat(.w) 処理繰り返し回数:0~65535(0は1回,65535は65536回)
合計11bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
12.4. 制御コマンドのZMD
ZMDに制御コマンドが存在しない場合はヘッダブロックの z_ctrl_offset の内容を
0とする。存在する場合は一番初めの制御コマンドZMDの存在位置までのオフセット
アドレスを格納する。
制御コマンドZMDには以下のようなものがある。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CTRL_END 制御コマンド終了
$ff(.b) ZMD
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CTRL_PLAY 演奏開始
$00(.w) ZMD
Track Number(.w) トラック番号:0-65534
Track Number(.w) トラック番号:0-65534
:
:
Track Number(.w) トラック番号:0-65534
-1(.w) CTRL_PLAY終了
合計4-?bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CTRL_STOP 演奏停止
$04(.w) ZMD
Track Number(.w) トラック番号:0-65534
Track Number(.w) トラック番号:0-65534
:
:
Track Number(.w) トラック番号:0-65534
-1(.w) CTRL_STOP終了
4-?bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CTRL_CONT 演奏再開
$08(.w) ZMD
Track Number(.w) トラック番号:0-65534
Track Number(.w) トラック番号:0-65534
:
:
Track Number(.w) トラック番号:0-65534
-1(.w) CTRL_STOP終了
合計4-?bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CTRL_MFADER マスターフェーダー
$0c(.w) ZMD
Device-ID(.w) 音源ID:(FM=0,(AD)PCM=1,MIDI1=$8000,MIDI2=$8001,
MIDI3=$8002,MIDI4=$8003,
-1=全音源が操作対象となる)
omt(.b) 省略フラグ(bit=1で対応パラメータが後続する)
d0:speed
d1:Start Level
d2:End Level
Speed(.w) 移動速度:0-65535
Start Level(.b) 開始レベル:0-128
End Level(.b) 終了レベル:0-128
合計5-8bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CTRL_TFADER トラックフェーダー
$10(.w) ZMD
Track Number(.w) トラック番号:0-65534,-1=全トラックが操作対象となる
omt(.b) 省略フラグ(bit=1で対応パラメータが後続する)
d0:Speed
d1:Start Level
d2:End Level
Speed(.w) 移動速度:0-65535(0=移動しない)
Start Level(.b) 開始レベル:0-128
End Level(.b) 終了レベル:0-128
合計5-8bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●CTRL_MASK マスク制御
$14(.w) ZMD
{
Track Number(.w) トラック番号:0-65534
Mask Mode(.w) マスクモード:0=MASK OFF, 1=REVERSE, -1=MASK ON
}×n
-1(.w) CTRL_MASK終了
合計8-?bytes
全トラックを操作対象とする場合は
$14(.w) ZMD
-1(.w) 全トラックを操作対象とするコード
Mask Mode(.w) マスクモード:0=MASK OFF, 1=REVERSE, -1=MASK ON
合計6bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
12.5. トラック・チャンネル情報テーブルの構成
ZMDに演奏データが存在しない場合はヘッダブロックの z_trk_offset の内容を
0とする。存在する場合はトラック・チャンネル情報テーブルの存在位置までの
オフセットアドレスを格納する。
トラック・チャンネル情報テーブルとは、演奏データまでのオフセットアドレス、
そのトラックに割り当てられた初期音源種別等の情報を格納した領域のこと。
以下にそのトラック・チャンネル情報テーブルの構成を示す。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ti_n_of_tracks: ds.w 1 *.w トラック数-1(0-65535)
ti_track_stat: ds.b 1 *.b $00=performance,$80=非演奏trackマーク(詳しくはZMID.MAC参照)
ti_track_mode: ds.b 1 *.b $80=no key off(詳しくはZMID.MAC参照)
ti_trkfrq: ds.b 1 *.b 割り込み比率(0:normal,1:2回に1回,2:3回に一回,...)
ds.b 1 *.b
ti_type: ds.w 1 *.w デバイスタイプ(FM:0 ADPCM:1 MIDI:$8000~$8003
* PATTERN:$7fff CURRENT-MIDI:$ffff)
ti_ch: ds.w 1 *.w チャンネル(0-15)
ti_play_data: ds.l 1 *.l 演奏データまでのoffset
ti_extra_info: ds.l 1 *.l トラック追加情報までのオフセット(0の場合はない)
以降、ti_track_stat~ti_extra_infoまでが総トラック数分続く
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
12.6. トラック追加情報
トラック追加情報とは演奏トラック1つ1つに対して付加される情報で、トラック・
チャンネル情報テーブル中の ti_extra_info から参照されるもの。トラック追加情報が
ない場合は ti_extra_info には0を格納する。
以下にトラック追加情報の構成を示す。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
tx_total_step: ds.l 1 *.l トラック総ステップタイム
tx_checksum: ds.l 1 *.l トラックチェックサム
tx_n_of_measure: ds.l 1 *.l 総小節数
tx_comment_length: ds.l 1 *.l トラックコメント文字列長(0:none)
以降、tx_comment_lengthで表される長さの文字列が続く。ただしEndcode=0(.b)など
は無い。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
12.7. 演奏トラックのZMD
演奏トラックには以下に示すZMDが格納される。演奏トラックはトラック・チャンネル
情報テーブルの ti_play_data にその位置までのオフセットアドレスが格納される。
[注意]
・(.v)で表されるデータサイズは1バイト~2バイトの任意のサイズを取ることを
意味する。
・[]で表される数値はデフォルトであることを意味する。
・「→XXXX」などは、そのパラメータがMEASURE13で解説されるZMUSIC Ver.3.0の
演奏トラックワークに格納されることを意味している。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
■$00~$7f
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●音符(MML C,D,E,F,A,G)
Note Number(.b) ノート番号:0-127(.b) →k_note
Step Time(.v) ステップタイム:0-127(.b), 32768+(0-32767)(.w) →p_step_time
Gate Time(.v) ゲートタイム:$8000(.w)=tie,
0-127(.b) | 32768+(128-32767)(.w) →k_gate_time
Velocity(.b) ベロシティ:0-127, 128=use default, →p_velo
129~191,192,193~255は-63~-1,0,1~63に対応する
合計4-6bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
■$80~$8f
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●休符(MML R)
$80(.b) ZMD
Step Time(.v) ステップタイム:0-127(.b) | 32768+(0-32767)(.w) →p_step_time
Gate Time(.v) ゲートタイム:$8000(.w)=tie
0-127(.b) | 32768+(128-32767)(.w) →k_gate_time
合計3-5bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●ウェイト(MML @W)
$81(.b) ZMD
Step Time(.v) ステップタイム:0-127(.b) | 32768+(0-32767)(.w) →p_step_time
合計2-3bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●トラックディレイ(MML [TRACK_DELAY])
$82(.b) ZMD
Step Time(.v) 0-127(.b), 32768+(0-32767)(.w) →p_step_time
合計2-3bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●MXDRV系音符
$83(.b) ZMD
Note Number(.b) ノート番号:0-127(+$80だとtie指定となる) →k_note
Step Time(.v) ステップタイム:0-127(.b) | 32768+(0-32767)(.w) →p_step_time
合計3-6bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●ポルタメント1(MML (~))
$84(.b) ZMD
Note Number(.b) ノート番号:0-127 →k_note
$80+(0-127)の場合はディレイ有り
Dest.Note(.b) ポルタメント先のノート番号:0-127
$80+(0-127)の場合はポルタメント
タイム有り
Delay(.v) ディレイ:0-127(.b) | 32768+(0-32767)(.w) →p_port_dly
(ただしNote Number(.b)≧$80のときのみ)
Port.Time(.v) ポルタメントタイム:0-127(.b) →p_port_cnt
32768+(0-32767)(.w)
(ただしDest.Note≧$80のときのみ)
Step Time(.v) ステップタイム:1-127(.b) | 32768+(1-32767)(.w) →p_step_time
Gate Time(.v) ゲートタイム:$8000(.w)=tie →k_gate_time
0-127(.b) | 32768+(128-32767)(.w)
Velocity(.b) ベロシティ:0-127 | 128=use default, →p_velo
129~191,192,193~255は-63~-1,0,1~+63に対応する
合計6-11bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●ポルタメント2(MML([~]))
$85(.b) ZMD
Note Number(.b) ノート番号:0-127 →k_note
$80+(0-127)の場合はディレイ有り
Dest.Note(.b) ポルタメント先のノート番号:0-127
$80+(0-127)の場合はポルタメント
タイム有り
Delay(.v) ディレイ:0-127(.b) | 32768+(0-32767)(.w) →p_port_dly
(ただしNote Number(.b)≧$80のときのみ)
Port.Time(.v) ポルタメントタイム:0-127(.b) →p_port_cnt
32768+(0-32767)(.w)
(ただしDest.Note≧$80のときのみ)
Step Time(.v) ステップタイム:1-127(.b) | 32768+(1-32767)(.w) →p_step_time
Gate Time(.v) ゲートタイム:$8000(.w)=tie →k_gate_time
0-127(.b) | 32768+(128-32767)(.w)
Velocity(.b) ベロシティ:0-127 | 128=use default, →p_velo
129~191,192,193~255は-63~-1,0,1~+63に対応する
合計6-11bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
■$90~$9f
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●音量(MML V,@V)
$90(.b) ZMD
Volume(.b) 音量値:0-127 128段階指定時 →p_vol
$80+(0~16) 16段階指定時
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●相対音量(MML _~)
$91(.b) ZMD
Volume(.b) 相対音量値:-128~127
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●相対音量2
$92(.b) ZMD
Volume(.b) 相対音量値:-128~127 →p_vol
合計2bytes
($91との違い:$91は必ず絶対音量次元で相対音量を設定するが、$92は直前の音量
コマンド(128/16段階)の次元で相対音量を設定する)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●ベロシティ(MML U/@U)
$93(.b)
Velocity(.b) ベロシティ値:0-127 128段階指定時 →p_velo
$80+(0~16) 16段階指定時
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●相対ベロシティ(MML U±/@U±)
$94(.b) ZMD
Velocity(.b) 相対ベロシティ値:-128~127 →p_velo
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●ピッチモジュレーション・モード(MML M)
$95(.b) ZMD
pmod mode(.b) モード値:-1=normal 0=FM 1=MIDI →p_pmod_mode
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●ピッチモジュレーション・スイッチ(MML @M)
$96(.b) ZMD
Switch(.b) スイッチ:[0]=off $ff=1/8mode →p_pmod_sw
$01=optional 8 point mode $02=on by previous mode
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●ピッチモジュレーション同期設定(MML H)
$97(.b) ZMD
Sync Mode(.b) 同期モード →p_pmod_flg
d7:キーオン時に波形初期化 0:OFF [1]:ON
d6:タイ時に波形初期化 [0]:OFF 1:ON
d5:休符時に波形初期化 [0]:OFF 1:ON
d4:波形をキーオン毎に更新 [0]:NO 1:YES
d3:波形を休符毎に更新 [0]:NO 1:YES
Delay(.w) 同期ディレイ:1~65535(0の場合は無指定を意味する)→p_pmod_syncnt
合計4bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●オートベンド・スイッチ(MML [BEND.SWITCH])
$98(.b) ZMD
Switch(.b) スイッチ:[0]=off 1=on →p_bend_sw
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●アフタータッチシーケンス・スイッチ(MML [AFTERTOUCH.SWITCH])
$99(.b) ZMD
Switch(.b) スイッチ:[0]=off $ff=1/8mode →p_aftc_sw
$01=optional 8 point mode $02=on by previous mode
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●アフタータッチシーケンス同期設定(MML [AFTERTOUCH.SYNC])
$9a(.b) ZMD
Sync Mode(.b) 同期モード →p_aftc_flg
d7:キーオン時に波形初期化 0:OFF [1]:ON
d6:タイ時に波形初期化 [0]:OFF 1:ON
d5:休符時に波形初期化 [0]:OFF 1:ON
Delay(.w) 同期ディレイ:1~65535(0の場合は無指定を意味する)→p_aftc_syncnt
合計4bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●エンハンスドベロシティシーケンス・スイッチ(MML [VELOCITY.SWITCH])
$9b(.b) ZMD
Switch(.b) スイッチ:[0]=off →p_arcc_sw+p_vseq_param
$01=optional 8 point mode, $02=on by previous mode
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●アゴーギク・スイッチ(MML [AGOGIK.SWITCH])
$9c(.b) ZMD
switch(.b) スイッチ:[0]=off $ff=1/8mode →(agogik_work_ptr)+p_pmod_sw
$01=optional 8 point mode $02=on by previous mode
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●アゴーギク同期設定(MML [AGOGIK.SYNC])
$9d(.b) ZMD
Sync Mode(.b) 同期モード →p_agogik_flg
d7:キーオン時に波形初期化 [0]:OFF 1:ON
d6:タイ時に波形初期化 [0]:OFF 1:ON
d5:休符時に波形初期化 [0]:OFF 1:ON
d4:波形をキーオン毎に更新 [0]:NO 1:YES
d3:波形を休符毎に更新 [0]:NO 1:YES
d2:小節線毎に更新 [0]:NO 1:YES
Delay(.w) 同期ディレイ:1~65535(0の場合は無指定を意味する)→p_agogik_count
合計4bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●タイ・モード(MML @J)
$9e(.b) ZMD
Tie Mode タイモード:(0=normal 1=special) →d3 of p_md_flg
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●PCM再生モード(MML [PCM_MODE])
$9f(.b) ZMD
PCM mode PCMモード:(0=tone mode 1=timbre mode →d2 of p_md_flg
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
■$a0~$af
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●パン 絶対指定(MML P/@P)
$a0(.b) ZMD
Pan(.b) パンポット:(0-127:L~M~R,128:off) →p_pan
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●パン 相対指定(MML P/@P)
$a1(.b) ZMD
Pan(.b) 相対パンポット値:-128~127 →p_pan
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●スロットマスク(MML [SLOT_SEPARRATION])
$a2(.b) ZMD
Mode(.b) モード:%0000000~%1111000 →p_om
d3:OP1,d4:OP2,d5:OP3,d6:OP4
bit=1:off,bit=0:on
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●ダンパーペダル(MML @D)
$a3(.b) ZMD
Damper(.b) ダンパー値:0-63=off, 64-127=on →p_damper
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●ノン・オフ・モード(MML @R)
$a4(.b) ZMD
Mode(.b) モード:$00=通常, $80=ノートオフなし →p_track_mode
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●ベンドレンジ変更(MML G)
$a5(.b) ZMD
Range(.b) レンジ値:0-127 [12] →p_@b_range
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●周波数変更(MML @F)
$a6(.b) ZMD
Frq(.b) 周波数番号:0-6 [4] →p_frq
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●チャンネルプレッシャー
$a8(.b) ZMD
Pressure(.b) チャンネルプレッシャー値:0-127
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●相対チャンネルプレッシャー
$a9(.b) ZMD
Pressure(.b) 相対チャンネルプレッシャー値:-128~127
(相対演算はベロシティと行われるが演算結果はp_veloには
反映されない)
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●キートランスポーズ(MML K)
$ab(.b) ZMD
Value(.b) キートランスポーズ値:-128~+127
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●FM/PCMトラックボイスリザーブ(MML [VOICE_RESERVE])
$ac(.b) ZMD
n of voices(.b) ボイスリザーブ値:0-255=1~256 →p_voice_rsv
合計2bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●ベロシティ同期設定(MML [VELOCITY.SYNC])
$ad(.b) ZMD
Sync Mode(.b) 同期モード →p_arcc_flg+p_vseq_param
d7:小節線同期 [0]:off 1:on
d6:ベロシティが指定されているケースでも [0]:off 1:on
ダミーで割り当てるか
d5:休符割り当て [0]:off 1:on
Delay(.w) 同期ディレイ:1~65535 →p_arcc_syncnt+p_vseq_param
(0の場合は無指定を意味する)
合計4bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
■$b0~$bf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●ピッチモジュレーション波形セレクト(MML S)
$b0(.b) ZMD
Wave Form(.w) 波形番号:0-7=プリセット波形 →p_pmod_wf
(0:鋸歯波 1:矩形波 2:三角波 3:ワンショット鋸歯波
4:ランダム波)
$8000+0~32767=ユーザー波形(波形メモリ)
合計3bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●アゴーギク波形セレクト(MML [AGOGIK.WAVEFORM])
$b1(.b) ZMD
Wave Form(.w) 波形番号:0-7=プリセット波形 →(agogik_work_ptr)+p_pmod_wf
$8000+0~32767=ユーザー波形(波形メモリ)
合計3bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●V2コンパチ・音長0ノート(発音のみ行う)
$b2(.b) ZMD
Note(.b) ノート番号:0-127
Velocity(.b) ベロシティ:0-127, 128=use default, →p_velo
129~191,192,193~255は-63~-1,0,1~63に対応する
合計3bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●ARCC・スイッチ(MML @A)
$b3(.b) ZMD
Arcc No(.b) ARCC番号:(0-3)×2
Switch(.b) スイッチ:[0]=off $ff=1/8mode $01=optional 8 point mode
$02=on by previous mode
→p_arcc_sw+p_arcc_param+(0-3)*trwk_size
合計3bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●ARCC・モード(MML M)
$b4(.b) ZMD
Arcc No(.b) ARCC番号:(0-3)×2
Arcc Mode(.b) モード:$ff=normal $01=extended mode →p_arcc_mode
合計3bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●ARCC同期設定(MML H)
$b5(.b) ZMD
Arcc No(.b) ARCC番号:(0-3)×2
Sync Mode(.b) 同期モード →p_arcc_flg
d7:キーオン時に波形初期化 0:OFF [1]:ON
d6:タイ時に波形初期化 [0]:OFF 1:ON
d5:休符時に波形初期化 [0]:OFF 1:ON
d4:波形をキーオン毎に更新 [0]:NO 1:YES
d3:波形を休符毎に更新 [0]:NO 1:YES
Delay(.w) 同期カウント:1~65535(0の場合は無指定を意味する)→p_arcc_syncnt
合計5bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●OPMレジスタ書き込み(MML [OPM])
$b6(.b) ZMD
Reg.Number(.b) レジスタ番号:$80+04:NFRQ $80+05:NE $80+06:LFRQ $80+07:PMD
$80+08:AMD $80+09:WF $80+10:CON $80+11:FB
$80+12:PAN $80+13:AMS $80+14:PMS
または
(0:OP1,1:OP3,2:OP2,3:OP4)*16
+(0:MUL,1:DT1,2:TL,3:AR,4:KS,5:1DR,6:AMS-EN,
7:2DR,8:DT2,9:RR,10:1DL)
Data(.b) データ:0-255
合計3bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●相対OPMレジスタ書き込み(MML [OPM])
$b7(.b) ZMD
Reg.Number(.b) レジスタ番号:$80+04:NFRQ $80+05:NE $80+06:LFRQ $80+07:PMD
$80+08:AMD $80+09:WF $80+10:CON $80+11:FB
$80+12:PAN $80+13:AMS $80+14:PMS
または
(0:OP1,1:OP3,2:OP2,3:OP4)*16
+(0:MUL,1:DT1,2:TL,3:AR,4:KS,5:1DR,6:AMS-EN,
7:2DR,8:DT2,9:RR,10:1DL)
Data(.b) データ:-128~127
合計3bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●ディチューン@B range(MML @B)
$b8(.b) ZMD
Detune(.w) ディチューン:-8192~8191 →p_detune
合計3bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●ディチューン@K range(MML @K)
$b9(.b) ZMD
Detune(.w) ディチューン:-7680~7680 →p_detune
合計3bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●相対ディチューン@B range(MML @B±)
$ba(.b) ZMD
Detune(.w) ディチューン:-8192~8191 →p_detune
合計3bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●相対ディチューン@K range(MML @K±)
$bb(.b) ZMD
Detune(.w) ディチューン:-7680~7680 →p_detune
合計3bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●レジスタ書き込み(コントロールチェンジ設定)(MML Y)
$bc(.b) ZMD
Register(.b) レジスタ:0-255
Data(.b) データ:0-255
合計3bytes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
●強制再演奏(MML Jn)