-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathzm05.txt
7967 lines (5753 loc) · 319 KB
/
zm05.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
MEASURE 5
MMLコマンド
ここではZMUSICのMMLについて解説します。
5.1. MMLの文法について
ZMUSICは基本的にはシャープ/Hudson製のOPMDRV.Xに
上位コンパチです。つまりOPMDRV.Xに存在したMMLはほぼ共通に
使用することができ、OPMDRV.X用のデータをほとんど変更無しで演奏が
可能です。
ZMUSICではMMLの小文字、大文字の区別を一切していません。
よって状況、ユーザー各位の趣味に応じて自由に使いわけが行えます。
(本節では説明の都合上、MMLを大文字で、パラメータを小文字で記述してい
ます。)
省略しても良いパラメータはその旨を記述していますがそれ以外の場合は
省略できません。また、数値パラメータは頭に'$'をつければ16進数が、'%'を
つければ2進数を設定することができます。何もつけなければ10進数とみなされます。
各コマンドの頭についている印は各音源の種類を表しています。全てのコマンドが
全ての音源に対応しているわけではないので注意してください。対応していない
デバイスに対してそのコマンドを用いると無視されます。
[FM] 内蔵FM音源パート
[ADPCM] 内蔵ADPCMパート
[MIDI] MIDI音源パート
5.2. 基本MML
ここではZMUSIC Ver.2.0以前から存在するMMLコマンドの仕様について解説します。
Ver.3.0になって機能が拡張されたものも存在します。
---------------------------------------
■音符、休符
---------------------------------------
[FM][ADPCM][MIDI] 音符
As,l,g,v
Bs,l,g,v
Cs,l,g,v
Ds,l,g,v
Es,l,g,v
Fs,l,g,v
Gs,l,g,v
・s:#,+,-
・l:1-32767
・g:1-32767
・v:0-127
ABC~Gはハ長調のラシド~ソに対応する。
・s:#,+,-
変化記号。#,+を付ければ半音上がり、-を付けると半音下がる。
!はナチュラルを表し、後述の[K.SIGN]([KEY_SIGNATURE])で調号設定を行った場合でも、
調号を無効にした音高でその音符を演奏する。
・l:1~32767
lは音長を表し、1が全音符、2が2分音符、4が4分音符...となる。
・g:1~32767
ゲートタイム。実際の消音までの時間。lと同じく1が全音符、2が2分音符、
4が4分音符...となる。
・v:0~127
ベロシティ。127が最も音圧が大きく、1が最も小さい。0は消音と見なされる。
lはマスタークロック設定コマンド'.MASTER_CLOCK'によって設定範囲が変動する。
具体的には
1≦l≦マスタークロックの値
が設定範囲となる。以下にデフォルトのマスタークロック=192のときの
音楽的音長と絶対音長との対応を示す。
音楽的音長 絶対音長 音楽的音長 絶対音長
1 192 12 16
2 96 16 12
3 64 24 8
4 48 32 6
6 32 64 3
8 24 192 1
絶対音長=int(マスタークロック/音楽的音長)。
パラメータs,l,g,vはいずれもが省略可能。
lが省略されている場合は後述のL/@Lで設定したデフォルト音長が採択される。
gが省略されている場合はlの値をもとに後述のQ/@Qで指定したゲートタイムパラメータ
をもとにゲートタイムが計算される。
vが省略された場合は後述のU/@Uで指定したデフォルトベロシティが採択される。
l及びgの前に'*'をつけると絶対音長指定になる。絶対音長とはZMUSICが処理
する音長カウンタのことでデフォルトでは全音符が192になっている。このとき例えば
C4とC*48は同時間発音される。'*'の後ろには0~37267までの数値を指定することがで
きる。
例1
a#4,2 (ステップタイムを4分音符長で、ゲートタイムが2分音符長、
ベロシティはデフォルトが採択され、A#が演奏される)
b*386,,125 (ステップ=386,ベロシティ=125でBが演奏される)
音長の後ろに'.'を設定すると付点音符と見なされる。
例2
g4. (付点4分音符)
e4..,*24. (ステップ=二重付点4分音符,ゲート=絶対音長36(=24+24*0.5)
共通コマンド.LENGTH_MODEで「ステップタイムモード」とした場合は'*'が付いてい
る、付いていないに関係無く絶対音長指定となる。
----------------------------------------
[FM][ADPCM][MIDI] 休符
Rl,g
・l:1~32767
・g:1~32767
休符。
l,gの意味については音符と同じ。省略時は音符と同じようにデフォルトパラメータが起用
される。
例
r8
r*96
休符におけるゲートタイムgは通常の音符から休符へ後述の'&'によるタイ指定が
行われた時のみ意味をなす。たとえば
c4&r4,8
とした時はc4は4分音符音長分発音し続け、休符に差し掛かる。
休符の長さは4分音符音長だがゲートタイムは8分音符に設定されているので
前の音の c の音は休符が始まってから8分音符音長後に消音されることとなる。
共通コマンド.LENGTH_MODEで「ステップタイムモード」とした場合は'*'が付いてい
る、付いていないに関係無く絶対音長指定となる。
----------------------------------------
[FM][ADPCM][MIDI] ウェイト
@Wl
・l:1~32767
指定時間、前の状態を保存する。lは音長を表し、音符や休符と役割は同じ。
l省略時はデフォルトが起用される。
例
@w*64
@w4..
休符とはゲートタイムが有るか無いかの違い。たとえば
c4&@w4
とした場合、@w4が終了してもcの音は鳴り続けてしまう。
----------------------------------------
■調号
----------------------------------------
[FM][ADPCM][MIDI] 調号
[K.SIGN k1,k2,…,kn]
・k1~kn:文字列
調号を設定する。どの音階にどの変化記号(♯,♭)がつくのかを設定する。
kn部分は変化記号、音階の順に設定し、1個ずつ , で区切る。
例
[K.SIGN +c,+d,+f,+g] (ホ長調)
cdfgに自動的に#(シャープ)がつく
[K.SIGN -a,-b,-d,-e] (変イ長調)
abdeに自動的に♭(フラット)がつく
[K.SIGN -a,+b]
aに♭(フラット)が、bに#(シャープ)が自動的につく
また以下の調名を記述することによって、一般的な調号の設定を行うこともできる。
Cmajor,Gmajor,Dmajor,Amajor,Emajor,Bmajor,F+major,F#major,C+major,C#major
Fmajor,B-major,Bbmajor,E-major,Ebmajor,A-major,Abmajor,D-major,Dbmajor
G-major,Gbmajor,C-major,Cbmajor
Aminor,Eminor,Bminor,F+minor,F#minor,C+minor,C#minor,G+minor,G#minor
D+minor,D#minor,A+minor,A#minor,Dminor,Gminor,Cminor,Fminor,B-minor
Bbminor,E-minor,Ebminor,A-minor,Abminor
例
[K.SIGN G-Major] 変ト長調(cdegabに♭)
ナチュラル記号である '!' を使用すれば一時的に調号の効力をなくすことができる。
また、調号の効力をなす音階に対してさらに#,+(#)や-(♭)が付いた場合は調号と
両方考慮した音階になる。
例
[K.SIGN G-Major] b! (この調だとbには通常ならば♭が付き、b-になる)
(半音下がる)のだが ! のためナチュラル指定
となりbで演奏される)
[K.SIGN G-Major] b- (この調だとbには通常ならば♭が付き、b-になる)
(半音下がる)のだが♭のためb--(=a)で 演奏される)
----------------------------------------
■オクターブ
----------------------------------------
[FM][ADPCM][MIDI] オクターブ
On
・n:-1~9
オクターブを設定する。初期値は4。nは-1~9まで設定可能。
実際の発音可能域は各デバイスによって異なる。
・FM音源
オクターブ0のD#からオクターブ8のDまで。
・ADPCM
登録しなければ発音はしないが、セレクトバンク内の(@コマンド、MEASURE6参照)
オクターブ-1のCからオクターブ9のGまで対応。
・MIDI
オクターブ-1のCからオクターブ9のGまで。実際は各楽器によって違う。
詳しくは各MIDI楽器のマニュアルのインプリメンテーション・チャートなどを
参照のこと。
----------------------------------------
[FM][ADPCM][MIDI] 相対オクターブ
<
>
オクターブを相対的に変更する。<はオクターブを+1し、>はオクターブを
-1する。設定範囲を越えた場合はエラーとなる。
----------------------------------------
■音長制御
----------------------------------------
[FM][ADPCM][MIDI] デフォルト音長設定
Ln
・n:1~32767
@Ln
・n:1~32767
デフォルト音長を設定する。音長をパラメータに持つMMLにおいて音長が省略され
た場合、この命令で設定した値がパラメータとして与えられる。
Lのパラメータnは音楽的音長、絶対音長のいずれかを書くことができる。
音楽的音長の場合はn分音符といった意味となる(設定範囲については音符MMLの
説明を参照)。絶対音長による指定は音名の時と同じように数値の前に'*'を記述して
設定できる。設定範囲は0≦n≦32767。
@Lのパラメータnは絶対音長のみで設定範囲は0≦n≦32767。
初期値はL4(=@L48)である。
L,@Lいずれの場合も音長数値の後ろに符点が設定可能。
例
l16.
@l96
l*2000.
----------------------------------------
[FM][ADPCM][MIDI] ゲートタイム設定
Qn
・n:-8~8
1音中で実際に発音している時間を音長のn/8時間単位で設定する
初期値 n=8、設定範囲は-8~8。
値が正の場合、1が発音時間がもっとも短く、8が最も長い(テヌート)。
値が負の場合はステップタイムよりもゲートタイムを長くすることができる。
たとえばq-8とするとゲートタイムはステップタイムの2倍に設定され、
q-4ならばゲートタイムはステップタイムの1.5倍に設定される。
分母の値はデフォルトでは8だが共通コマンド.GATETIME_RESOLUTIONにて
8,16,32,64,128のいずれかへ変更が可能。
例
q4 cdefg (スタッカート気味になる)
q-4 cdefg (前の音がこれから鳴る音と重なるようになる)
@Qを設定した時はQは機能せず、逆にQを設定した時は@Qは機能しない。
後に設定したものが有効となる。
----------------------------------------
[FM][ADPCM][MIDI] ゲートタイム設定
@Qn
・n:-32767~32767
ノートオフ(キーオフ,発音をやめること)を絶対音長でnカウント早める。
発音音長より大きい値の場合、@Qは機能せずQ8の状態で演奏される。
例えば
@Q96 C*16
の場合は発音長が 16-96<0 となるので
@Qの処理はされず発音長は16カウントとなる。
nを負値に設定した場合は絶対音長で-nカウント、ノートオフを遅らせることが
できる。たとえば
@Q-12 c*48
とするとcのゲートタイムは60(=12+48)となる。
初期値は@Q0に相当し設定範囲は-32767~32767。
@Qを設定した時はQは機能せず、逆にQを設定した時は@Qは機能しない。
後に設定したものが有効となる。
----------------------------------------
■タイ/スラー
----------------------------------------
[FM][ADPCM][MIDI] タイ/スラー
&
前後の音をつなぐ。同音高の場合は全デバイスにおいてタイとなる。
例
a4&a16.
異音名の場合は、各デバイスによって対応が異なる。
・FM音源パート
スラーとなる
例
a4&a#4 (なめらかにaからa#へつながる)
・ADPCMパート
後述のPCMモード([PCM_MODE]コマンドにより設定)によって対応が異なる。
通常モード時([PCM_MODE RHYTHM])
'&'を除いた時のように処理される
例
a4&a#4 → a4a#4のように演奏される
楽器PCMモード時([PCM_MODE TIMBRE])
例
a4&a#4 (なめらかにaからa#へつながる)
・MIDI
後述のタイ・モード(@Jコマンドにより設定)によって対応が異なる。
通常モード時(@J0)
'&'を除いた時のように処理される
例
a4&a#4 → a4a#4のように演奏される
FM音源部互換モード時(@J1)
スラーとなる。
例
a4&a#4 (なめらかにaからa#へつながる)
----------------------------------------
[FM][ADPCM][MIDI] 加算式タイ
^n
・n:1~
音符の直後に書くことによって、nで指定した音長分をその音符の音長に加算する。
nの後ろに符点を書けば、符点を考慮した音長が加算される。nには前に'*'を付けて
絶対音長を記述することもできる。
例
c4^16
d^*1000.
'ceg4^16'
(d2^8,e)
----------------------------------------
[MIDI] MIDIパート・タイモード
@Jn
・n:0,1
MIDI部のタイの処理モードを設定する。
n=0で通常モード(初期値)、n=1でFM音源部互換モードになる。
c&d
とした場合、通常(@J0時)はMIDIでは & のない
c d
として処理される。
一方@J1時ではFM音源部と同様に、ある音の発音後、その音の持続音(減衰音)で
つぎの音の音程へ変化するようになる。よって、FM音源部での
(c<d)&(d>c)
といった表現や、後のコラムで「動作の相違がある」と書かれている
(g,e)24&e
@b0,683 c4&c+4
のような表記もFM音源部と同様に機能するようになる(ただし、最初に発音した
音高から1オクターブを超えることはできない)。
----------------------------------------
■連符
----------------------------------------
[FM][ADPCM][MIDI] 連符
{~}n
・n:1~32767
{~}で囲まれたMML群を合計の音長がn分音符音長になるように演奏する。
nには符点を付けたり、'*'を付けて絶対音長による指定も行なえる。
{~}の中には音長を操作するMMLを書くことは出来ない。(符点,L,@Lなど)
n省略時はデフォルト音長が起用される。
例
{cdef}2
{abc}4..
{cd&de}*192
----------------------------------------
■和音
----------------------------------------
[FM][ADPCM][MIDI] 和音
'MML…'n,dly(&)
・n:1-32767
・dly:1-32767
'に囲まれた音符を同一タイミングで発音する。
'~'間に書けるMMLは以下に限られる。
音符 c~b(16個まで)
調号 # + - !
音長 1~(符点も可)
絶対音長 *1~*32767
オクターブコマンド O-1~O9
オクターブスイッチ < >
1度に16和音まで発音が可能。16音以上音階を書くとエラーとなる。
音長は'~'内で最後に設定されたものが和音の音長として採用される。
オクターブコマンド、オクターブスイッチは'~'(シングルコーテーション)内だけ
有効。
'~'内に音長を書かずに外に数値nを書くと、これは'*'を付ける付けないに変わらず
絶対音長の指定になる。この場合の設定範囲は0≦n≦32767で全音符以上の発音時間も
設定できる。
ディレイパラメータdlyを設定することによって、和音を一度に発音せず、各音を
絶対音長dlyずつ時間的にずらして1音ずつ発声する(アルペジオ奏法)。
ディレイは初期値0で、省略可能だが省略時は以前設定した値がそのまま起用される。
例
'c4eg'
ドミソを4分音符で演奏する。
o4'gb<d'96
ソシレを絶対音長96で演奏する。和音発音後のデフォルトオクターブは4に
変わり無いことに注意。
'c4eg<c',6
まずcが発音され、その6カウント後にeが発音され、更に6カウント後ずつ
g, <cが発音される。
ディレイ値は必ず全部の音が発声可能な値でなければエラーとなる。
例えば
'c4eg',30
などはgが発音出来ないのでエラーとなる。
同構成音の和音~和音間、異構成音の和音~和音間、単音~和音間、和音~単音間を
'&'で結んでのタイ/スラーが可能。ただし処理の関係上、タイでつながれた和音の
ディレイは強制的に0に設定される。つまり
'c4eg',6&'e4gb-',6
は
'c4eg',6&'e4gb-',0
として処理される。
また、オートベンドやモジュレーション、アフタータッチ・シーケンス、ARCCなど
全ての特殊コマンドが和音においても有効である。もちろん同時にこれらを和音に対して
使用出来る。
FM音源部での和音を用いた場合、チャンネルが競合すると正常に発音されないので
注意。例えば
.assign TR1,FM1
.assign TR2,FM2
.assign TR3,FM3
.track1 'ceg'48
.track2 b- ←正常に演奏されない
.track3 f+ ←正常に演奏されない
のような場合、.track1から発音する'ceg'48の和音はFM音源チャンネル1,2,3が使用さ
れるが、.track2と.track3がこのときそれぞれ b-とf+をチャンネル2,3で演奏している
ためにチャンネルの競合が発生している。この場合、トラック1の和音を正常に発音さ
せるには
.assign TR1,FM1
.assign TR2,FM4
.assign TR3,FM5
.track1 'ceg'48
.track2 b- ←正常に演奏されない
.track3 f+ ←正常に演奏されない
のようにしてチャンネル2,3をあけるようにしなければならない。
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 絶対音長0 ┃
┃ ┃
┃ ┃
┃ ZMUSICでは休符、ウェイト、和音とポルタメントを除いて、絶対音長0 ┃
┃ ┃
┃も使用可能になっています(音楽的音長0は使用不可)。音長がゼロの ┃
┃ ┃
┃音符は発音処理を行うだけです。操作対象デバイスによって多少の効果の相違が ┃
┃ ┃
┃ありますので注意して下さい。 ┃
┃ ┃
┃●MIDI ┃
┃ ┃
┃ c*0e*0g*0 ┃
┃ ┃
┃ではcegの和音が鳴りっぱなしになります。 ┃
┃ ┃
┃ MIDI楽器のでリズムパートを持つものは、大抵、ノートオンのメッセージ ┃
┃ ┃
┃のみで演奏可能です(ノートオフの処理を省略しても演奏に影響しない)。 ┃
┃ ┃
┃こういったリズムパートをシーケンスする場合に絶対音長0は有用です。 ┃
┃ ┃
┃ たとえばO2C=バスドラム, O2D=スネアドラム, O3C+=クラッシュシンバルの ┃
┃ ┃
┃ような ローランド系リズムキットで ┃
┃ ┃
┃ L4 o3c+*0 |:4 o2 cdcd :| ┃
┃ ┃
┃とすると、最初の小節の頭だけシンバルが鳴り、2回目以降は鳴らないといった ┃
┃ ┃
┃シーケンスができます。 ┃
┃ ┃
┃ 絶対音長0の音符は楽器の最大同時発声数内で1トラックにつきいくつでも ┃
┃ ┃
┃設定可能です。 ┃
┃ ┃
┃ 絶対音長0の音符はそのままでは鳴りっぱなし状態になりますが、これを ┃
┃ ┃
┃('&'をつけて)タイで通常音符へつなぐとその通常音符が鳴り終わった時点で ┃
┃ ┃
┃絶対音長0の音もノートオフすることができます。 ┃
┃ ┃
┃ c*0&e*0&g4 ┃
┃ ┃
┃とするとcegの和音が4分音符長で鳴ります。 ┃
┃ ┃
┃ この'&'で結ぶ書式では最大16和音までが記述できます。16和音の時は ┃
┃ ┃
┃音長ゼロの音符が15個と通常音長の音符が1つという構成になることになります。 ┃
┃ ┃
┃音長ゼロの音符を15個以上記述した場合は古い順にノートオフされない音が出て ┃
┃ ┃
┃きます。また、従来の和音コマンドとの混在は可能であるため、状況状況に応じて ┃
┃ ┃
┃使い分けができます。また、この2種類の和音書式間のタイ/スラーも可能です。 ┃
┃ ┃
┃●FM音源/ADPCM音源 ┃
┃ ┃
┃ 基本的にモノフォニックですので ┃
┃ ┃
┃ c*0e*0g*0 ┃
┃ ┃
┃のような表記で和音を発音させることはできません。ただし、[VOICE_RESERVE]命令 ┃
┃ ┃
┃でそのトラック内で複数の発音を宣言した場合には、その範囲内で複数音の発音が ┃
┃ ┃
┃可能になります。その場合は、MIDIパートと同じように ┃
┃ ┃
┃ c*0&e*0&g4 ┃
┃ ┃
┃ v10c*0& v12e*0& v11g4 ┃
┃ ┃
┃のような記述で和音の発音が可能です。従来の和音コマンドとの混在もでき、この ┃
┃ ┃
┃2つの書式間のタイ/スラーも可能です。 ┃
┃ ┃
┃ ADPCM音源の場合はMPCM.Xが組み込まれている場合にのみ,以上の動作が保証されま┃
┃ ┃
┃す。組み込まれていない時は完全に単声仕様になります。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
----------------------------------------
■音量/ベロシティ
----------------------------------------
[FM][ADPCM][MIDI] 音量
Vn
・n:0-16
音量の設定を行う。設定範囲は0≦n≦16。初期値は8。
数値が大きいほど音量が大きくなる。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
例
V11 cde
----------------------------------------
[FM][ADPCM][MIDI] 音量
@Vn
・n:0-127
音量の設定を細かく行う(絶対音量と呼ぶ)。設定範囲は0≦n≦127。
初期値はMIDI,ADPCMで64、FM音源では106。数値が大きいほど音量が大きくなる。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
例
@v100 c
----------------------------------------
[FM][ADPCM][MIDI] 相対音量
_n
 ̄n
・n:0-127
音量の相対指定を行う。~は音量増加を表し、_は音量減少を表す。設定範囲は
0≦n≦127で、演算の結果、アンダーフローを起こした場合は0へ、オバーフローを
起こした場合は127へ修正される。また計算は@Vnで表される絶対音量レベルで
行われる。
nを省略した場合は以前に設定したものが起用される。nの初期値は1。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
例
@v120 _10 c _ d ~ e (cは@120-10=@v110で、dは@v110-10=@v100で、
eは@v100+10=@v110で演奏される)
|:10 _10 c :| (段々と音量が下がりながらcが演奏される)
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Vと@V ┃
┃ ┃
┃ ┃
┃ FM音源とADPCM(MPCM組み込み時)、MIDI音源では@VとVの対応関係が ┃
┃ ┃
┃異なります。これはFM音源の出力音量が指数関数的に増減するのに対してMIDI┃
┃ ┃
┃とADPCM音源では線形に増減するからです。以下に音源別にに@VとVの対応表┃
┃ ┃
┃を示します。 ┃
┃ ┃
┃ FM音源 ┃
┃ ┃
┃ Vn 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ┃
┃ @Vn 85 87 90 93 95 98 101 103 106 109 111 114 117 119 122 125 127 ┃
┃ ┃
┃ ┃
┃ ┃
┃ MIDI音源,ADPCM音源 ┃
┃ ┃
┃ Vn 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ┃
┃ @Vn 0 8 16 24 32 40 48 56 64 72 80 88 96 104 112 120 127 ┃
┃ ┃
┃ ┃
┃ 以上のことから相対ボリューム_n ~nの使用結果においても結果が異なります。 ┃
┃ ┃
┃例えば ┃
┃ ┃
┃ v8 _1 ┃
┃ ┃
┃とした場合FM音源パートでは結果が@V105(=106-1)に相当しますが、MIDIパー ┃
┃ ┃
┃トでは@V63(=64-1)になります。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
----------------------------------------
[FM][ADPCM][MIDI] ベロシティ
@Un
Un
・n:0-127
ベロシティの設定を行う。ベロシティとは鍵盤を押す強さ、すなわち音量に相当する。
MIDI楽器によってはこれによって音のニュアンスを変えることが出来る。
設定範囲は0≦n≦127。数値が大きいほど音量が大きくなる。
FM音源パート,ADPCM音源パートでは@Vと同じに扱われる。
初期値はMIDIパートのみ127で、FM音源,ADPCM音源では@Vの初期値と同じ。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
----------------------------------------
[FM][ADPCM][MIDI] 相対ベロシティ
@U±n
U±n
・n:-127~+127
ベロシティの相対指定を行う。設定範囲は-127≦n≦+127。演算によって
アンダーフローを起こした場合は0、オーバーフローを起こした場合は127に
修正される。
初期値は+1。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
例
@u127c @u-10d @u+5e
u127c u-10d u+5e
(c, d, eはそれぞれベロシティ127, 117, 122で発音する。)
----------------------------------------
[FM][ADPCM][MIDI] 相対ベロシティ再設定
@U
以前設定した@U相対ベロシティを再び実行する。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
例
@u127 c @u-10 d @u e
(最後の@uもまた@u-10で機能するため e は@U107(=127-10-10)で発音する。)
----------------------------------------
[FM][ADPCM][MIDI] ベロシティ再設定
U
以前設定した@Uの値を再設定する。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
例
@u127 c u-10 d u e (c,d,eがそれぞれベロシティ127, 117, 127で発音する)
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ベロシティのはたらきについて ┃
┃ ┃
┃ FM音源パートとADPCM音源パートではベロシティと音量が全く同じ機能として ┃
┃ ┃
┃取り扱われます。例えば、FM音源パートで ┃
┃ ┃
┃ V8 @U106 @V106 ┃
┃ ┃
┃は同じ機能を果たします。 ┃
┃ ┃
┃ MIDI音源パートでは発音音量はベロシティと音量の2つの関係で決定されます。 ┃
┃ ┃
┃ベロシティと音量を、ともに最大値を設定した時、最大音量となります。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Uと@U ┃
┃ ┃
┃ ┃
┃ 機能的にはまったく同じですが、演奏時にリアルタイムに考慮されるか否かの ┃
┃ ┃
┃相違があります。 ┃
┃ ┃
┃ @u100|:4 @u+5 c :| ┃
┃ ┃
┃としたとき4回とも@u105でcが演奏されますが ┃
┃ ┃
┃ @u100|:4 u+5 c :| ┃
┃ ┃
┃としたときは@u105, @u110, @u115, @u120でそれぞれ演奏されます。 ┃
┃ ┃
┃ なお、管理は@uとuはまったく別です。ですから ┃
┃ ┃
┃ @u5 |:3 @u+50 c u-5:| d ┃
┃ ┃
┃としたとき@u55で3回cが演奏され@u50でdが演奏されます。 ┃
┃ ┃
┃ uのみの指定は、それまでに最後に設定した@uをもう1回設定するので ┃
┃ ┃
┃ @u110|:10 u-2 c :|u e ┃
┃ ┃
┃のように、ループで変化してしまったベロシティを元に戻すことが出来ます。 ┃
┃ ┃
┃この例では、直前のベロシティ値によらずeは@u110で演奏されます。 ┃
┃ ┃
┃ ただし ┃
┃ ┃
┃ @u110 c @u-2 d u e ┃
┃ ┃
┃のように、@U相対ベロシティを使用した場合は@Uの値自体が変化してしまうので、 ┃
┃ ┃
┃Uのみの設定は余り意味を持たなくなります。この例ならば e は d と同じく ┃
┃ ┃
┃@U108(110-2)で演奏されます。 ┃
┃ ┃
┃ このようにU,@Uを使い分ければ、複雑で高度なシーケンスをすることが出来ます。┃
┃ ┃
┃ @uは、ループなどの影響を受けない大局的な設定、uはループ等の影響を受ける ┃
┃ ┃
┃局所的な設定というわけです。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
----------------------------------------
[FM][ADPCM][MIDI] ベロシティ・シーケンス
Zn1,…,n128
・ni:0~127
ベロシティのばらつきを設定する。これをZMUSICでは
ベロシティー・シーケンスと呼ぶ。各値の設定範囲は0≦ni≦127。
これは最大128個の音符MML、和音MML、ポルタメントMMLの
ベロシティを先に設定するものである。
例えば
z127,99,80 cdefg
とするとcはベロシティ127で、dはベロシティ99で、eはベロシティ80で、
ここでfは再びベロシティ127で、gはベロシティ99で発音される。
値は最大128個まで記述することができ、1個のみ指定した時は@Uと全く同様に
機能する。数値の頭に±を記述すれば相対指定が可能である。
数値を全く書かずに'Z'のみ記述するとベロシティ・シーケンスのOFFと解釈される。
また、ベロシティコマンド@U/Uを使用してもベロシティ・シーケンスは解除される。
ベロシティ・シーケンスはループコマンドを無視して処理されるので
z99,100,127 |:100 c :| d e
とした場合cが100回ベロシティ99で、ループ外のdがベロシティ100で、
eがベロシティ127で演奏される。
FM音源では音量とベロシティが同義に扱われるので、設定された値に対応した
絶対音量で発音されることになる。
MIDIパートでは、楽器によってはベロシティの変化にともなって音色の
ニュアンスや音色を切り変えることが出来るのでそういった機能と合わせて
使えばかなり興味深い効果を得ることができる。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
----------------------------------------
■キートランスポーズ/ディチューン/オートベンド
----------------------------------------
[FM][ADPCM][MIDI] キートランスポーズ
Kn
・n:-127~127
音程を半音単位で上下させる(キートランスポーズ)。nはn半音を意味し、
設定範囲は-127≦n≦127(±10オクターブ程度に相当)。
初期値は0、またニュートラル(中央値)も0である。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
----------------------------------------
[FM][ADPCM][MIDI] ディチューン
@Kn
・n:-7680~+7680
キートランスポーズを1/64半音単位で行う(いわゆるディチューン)。
設定可能範囲は-7680≦n≦7680(±10オクターブ程度に相当)。
初期値は0、またニュートラルも0である。
Kと@Kは全く管理が別である。例えば
@k10 cdefg
の頭に k1 をつけて
k1 @k10 cdefg
としたとすると1半音と10/64半音上にピッチシフトされてcdefgが演奏される。
いちいちMMLを書き直すこと無く各パートのMMLの頭にKコマンドを書くだけで
ディチューン等も考慮した転調が実現出来る。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
----------------------------------------