-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathzm05.txt
2757 lines (2052 loc) · 121 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.Xは基本的にシャープ/Hudson製のOPMDRV.Xに
上位コンパチである。つまりOPMDRV.Xに存在したMMLはほぼ共通に
使用することができ、OPMDRV.X用のデータをほとんど変更無しで演奏が
可能である。
ZMUSIC.XではMMLの小文字、大文字の区別を一切していない。
よって状況、ユーザー各位の趣味に応じて自由に使いわけが可能である。ここでは
説明の都合上MMLを大文字で、パラメータを小文字で記述している。
省略しても良いパラメータはその旨を記述してあるがそれ以外は
省略不可である。また、数値パラメータは頭に'$'をつければ16進数が、'%'を
つければ2進数を設定することができる。何もつけなければ10進数である。
各コマンドの頭についている印は各音源の種類を表している。全てのコマンドが
全ての音源に対応しているわけではないので注意すること。対応していない
デバイスに対してそのコマンドを用いるとエラーになるケースと無視されるケースが
ある。
○内蔵FM音源
◎内蔵ADPCM
●MIDI音源
5.2. MML
---------------------------------------
■音階、休符
---------------------------------------
○◎●
An~Gn
音階。ABC~Gはハ長調のラシド~ソに対応する。
後ろに#,+を付ければ半音上がり、-を付けると半音下がる。
nは音長を表し、1が全音符、2が2分音符…となる。
nはマスタークロック設定コマンド'm_count()'や(Zn)によって設定範囲が変動する。
具体的には
1≦n≦マスタークロックの値
が設定範囲となる。以下にデフォルトのマスタークロック=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(マスタークロック/音楽的音長)。
nは省略可能で、省略時は後述のL/@Lコマンドで設定したデフォルト音長で
演奏される。
nの前に'*'をつけると絶対音長指定になる。絶対音長とはZMUSICが処理する
カウンタのことでデフォルトでは全音符が192になっている。このとき例えばC4と
C*48は同時間発音されるわけである。'*'の後ろには0~65534までの数値を
書くことができる。
例
a#4
b*386
----------------------------------------
○◎●
Rn
休符。nは音長を表す。nは音階と同様の指定が可能。
n省略時はデフォルト音長が起用される。
例
r8
r*96
----------------------------------------
○◎●
@Wn
指定時間、前の状態を保存する。nは音長を表す。nは音階と同様の指定が可能。
n省略時はデフォルト音長が起用される。
例
@w*64
@w4..
----------------------------------------
■変化記号/調号
----------------------------------------
○◎●
#
+
シャープ(♯,嬰記号)。音階MMLの直後につけると半音高く演奏する。
2つ以上記述することもできる。
例
c#4 f+8 g##16
----------------------------------------
○◎●
-
フラット(♭,変記号)。音階MMLの直後につけると半音低く演奏する。
2つ以上記述することもできる。
例
c-4 e-8 g--16
----------------------------------------
○◎●
[K.SIGN ~]
調号を設定する。どの音階にどの変化記号(♯,♭)がつくのかを設定できる。
~の部分は変化記号、音階の順に設定し、1個ずつ , で区切る。
例
[K.SIGN +c,+d,+f,+g] (ホ長調)
cdfgに自動的に#(シャープ)がつく
[K.SIGN -a,-b,-d,-e] (変イ長調)
abdeに自動的に-(フラット)がつく
[K.SIGN -a,+b]
aに-(フラット)が、bに#(シャープ)が自動的につく
----------------------------------------
○◎●
!
ナチュラル(本位記号)。音階MMLの直後に設定することによって[K.SIGN ~]で設定した
調号を臨時に取り消す事ができる。
例
[K.SIGN -a] a a!
としたとき、1回目のaは a- で2回目のaはフラットなしで a で演奏される。
----------------------------------------
■オクターブ
----------------------------------------
○◎●
On
オクターブを設定する。初期値は4。nは-1~9まで設定可能。
実際の発音域は各操作デバイスによって異なる。
・FM音源
オクターブ0のD#からオクターブ8のDまで。
・ADPCM
登録しなければ発音はしないが、セレクトバンク内の(@コマンド、MEASURE6参照)
オクターブ-1のCからオクターブ9のGまで対応。
・MIDI
オクターブ-1のCからオクターブ9のGまで。実際は各楽器によって違う。
各操作MIDI楽器のマニュアルのインプリメンテーション・チャートを参照。
----------------------------------------
○◎●
<
>
オクターブを相対的に変更する。<はオクターブを+1し、>はオクターブを
-1する。設定範囲を越えた場合はエラーとなる。
----------------------------------------
■音長制御
----------------------------------------
○◎●
Ln
@Ln
デフォルト音長を設定する(シーケンサでいうステップタイムに相当する)。
音長をパラメータに持つMMLにおいて音長が省略された場合、このコマンドで
設定したものがパラメータとして与えられる。
Lのパラメータnは音楽的音長、絶対音長のいずれかを書くことができる。
音楽的音長の場合はn分音符といった意味をなす(設定範囲については音階MMLの
説明を参照)。符点も設定可能。絶対音長は音名の時と同じように数値の前に'*'を
書いて設定できる。設定範囲は0≦n≦65534。
@Lのパラメータnは絶対音長のみで設定範囲は0≦n≦65534。
初期値はL4(=@L48)である。
例
l16.
@l96
l*2000
----------------------------------------
○◎●
.
符点。音長を示す数値の後ろに付けると0.5倍されたものが加算される。
さらに続けると元の音長の0.25倍、0.125倍…といったものが加算されていく。
ただし加算結果が65534以下でなければならない。
絶対音長指定の後ろに付けることも出来る。また、加算する音長カウントは整数で
処理されるため、算出された音長がアンダーフローするとエラーになる。
音長を省略した時に符点がついた場合は、その時点でのデフォルト音長に対して
符点処理された音長が、その音符の音長となる。
例
a4..
r8.
c*1000. (c*1500と同じ)
l4 c. (c4.と同じ)
----------------------------------------
○◎●
Qn
1音中で実際に発音している時間を音長のn/8時間単位で設定する
(シーケンサでいうゲートタイムに相当する)。
初期値 n=8、設定範囲は1~8。1が発音時間がもっとも短く、8が最も長い(テヌート)。
----------------------------------------
○◎●
@Qn
キーオフ(発音をやめること)を絶対音長でnカウント早める。
発音音長より大きい値の場合、@Qは機能せずQ8の状態で演奏される。
例えば @Q96 C*16の場合は発音長が 16-96<0 となるので
@Qの処理はされず発音長は16カウントとなる。
初期値は@Q0に相当し設定範囲は0~32768。
@Qを設定した時はQは機能せず、逆にQを設定した時は@Qは機能しない。
つまり後に設定したものが有効となる。
----------------------------------------
■タイ/スラー
----------------------------------------
○◎●
&
前後の音をつなぐ。同音名の場合は全デバイスにおいてタイとなる。
例
a4&a16.
異音名の場合は、各デバイスによって対応が異なる。
・FM音源
スラーとなる
例
a4&a#4
・ADPCM
'&'を除いた時のように処理される
例
a4&a#4 → a4a#4のように演奏される
・MIDI
後述のタイ・モード(@Jコマンドにより設定)によって対応が異なる。
通常モード時(@J0)
'&'を除いた時のように処理される
例
a4&a#4 → a4a#4のように演奏される
FM音源部互換モード時(@J1)
スラーとなる。
例
a4&a#4
----------------------------------------
○◎●
^n
音符の直後に書くことによって、nで指定した音長分をその音符の音長に加算する。
nの後ろに符点を書けば、符点を考慮した音長が加算される。nには絶対音長を
書くこともできる。
例
c4^16
d^*1000
'ceg4^16'
(d2^8<d)
----------------------------------------
●
@Jn
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オクターブを超えることはできない)。
----------------------------------------
■連符
----------------------------------------
○◎●
{~}n
{~}で囲まれたMML群を合計の音長がn分音符音長になるように演奏する。
nには符点を付けたり、'*'を付けて絶対音長による指定も行なえる。
{~}の中には音長を操作するMMLを書くことは出来ない。(符点,L,@L,Q,@Qなど)
n省略時はデフォルト音長が起用される。
例
{cdef}2
{abc}4..
{cd&de}*192
----------------------------------------
■和音
----------------------------------------
○●
'MML…'nn,dly(&)
和音を発音する。'~'間に書けるMMLは以下の通りである。
音階 c~b(8個まで)
調号 # + - !
音長 1~(符点も可)
絶対音長 *1~*65534
オクターブコマンド O-1~O9
オクターブスイッチ < >
1度に8和音まで発音が可能。8音以上音階を書くとエラーとなる。
オクターブスイッチは'~'(シングルコーテーション)内だけ有効。
'~'内に音長を書かずに外に数値を書くと、これは絶対音長の指定になる。
設定範囲は0≦nn≦65534で全音符以上の発音時間も設定できる。
ディレイパラメータ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音源に対してのARCCは無効だが)。もちろん同時にこれらを和音に対して使用出来る。
FM音源部での和音を用いた場合、チャンネルがかちあうと正常に発音されないので
注意。例えば
(t1)'CEG'48
(t2)cde ←正常に演奏されない
(t3)efg ←正常に演奏されない
以下のようにしなければならない。
(t1)'CEG'48
(t2)@w4
(t3)@w4
この例の場合でトラック2や3が未使用の場合は問題はない。
(t1)'CEG'48 (トラック2,3はアサインも確保もしていない)
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 絶対音長0と1 ┃
┃ ┃
┃ ┃
┃ OPMDRV.Xでは絶対音長1の音符はキーオフしないというバグが ┃
┃ ┃
┃ありましたが、これを逆手に取ってピッチエンベロープなどを実現するテクニックが┃
┃ ┃
┃いつのまにか一般的となってしまいました。ZMUSICでもこのバグ技を ┃
┃ ┃
┃使えるようにしてあります。つまり絶対音長1では ┃
┃ ┃
┃ @l1 c&d&e&f&g ┃
┃ ┃
┃と ┃
┃ ┃
┃ @l1 cedfg ┃
┃ ┃
┃は同じということになります。 ┃
┃ ┃
┃ また、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分音符長で鳴ります。専用和音コマンドでは和音の ┃
┃ ┃
┃各構成音に対してベロシティのバラツキを設定できませんが、この絶対音長0の ┃
┃ ┃
┃音符を用いて ┃
┃ ┃
┃ @u110c*0& @u105e*0& @u88g4 ┃
┃ ┃
┃のようにして実現できます。 ┃
┃ ┃
┃ この'&'で結ぶ書式では最大8和音までが記述できます。8和音の時は ┃
┃ ┃
┃音長ゼロの音符が7つと通常音長の音符が1つという構成になることになります。 ┃
┃ ┃
┃音長ゼロの音符を8つ以上記述した場合は古い順にノートオフされない音が出て ┃
┃ ┃
┃きます。また、従来の和音コマンドとの混在はもちろん可能で、状況状況に応じて ┃
┃ ┃
┃使い分けができます。また、この2つの書式間のタイ/スラーも可能です。 ┃
┃ ┃
┃●FM音源 ┃
┃ ┃
┃ 基本的にモノフォニックですので ┃
┃ ┃
┃ c*0e*0g*0 ┃
┃ ┃
┃のような表記で和音を発音させることはできません。しかし、MIDIと同じように┃
┃ ┃
┃絶対音長0の音符を'&'で通常音符へつなぐことによって和音を発音させることは ┃
┃ ┃
┃できます。ですから、FM音源でも ┃
┃ ┃
┃ c*0&e*0&g4 ┃
┃ ┃
┃ v10c*0& v12e*0& v11g4 ┃
┃ ┃
┃のような記述で和音の発音が可能です。もちろん、従来の和音コマンドとの混在も ┃
┃ ┃
┃でき、この2つの書式間のタイ/スラーも可能です。 ┃
┃ ┃
┃●ADPCM ┃
┃ ┃
┃ 完全にモノフォニックであるため、絶対音長0による和音発音はできません。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
----------------------------------------
■音量/ベロシティ
----------------------------------------
○◎●
Vn
音量の設定を行う。設定範囲は0≦n≦16。初期値は8。
ADPCM音源部で使用可能となるのはPCM8独立チャンネルモードの時のみである。
----------------------------------------
○◎●
@Vn
音量の設定を細かく行う(絶対音量と呼ぶ)。設定範囲は0≦n≦127。
ADPCM音源部で使用可能となるのはPCM8独立チャンネルモードの時のみである。
----------------------------------------
○◎●
_n
 ̄n
音量の相対指定を行う。~は音量増加を表し_は音量減少を表す。設定範囲は
0≦n≦127で、演算の結果、アンダーフローを起こした場合は0へ、オバーフローを
起こした場合は127へ修正される。また計算は@Vnで表される絶対音量レベルで
行われる。
nを省略した場合は以前に設定したものが起用される。nの初期値は1。
なお、ADPCM音源部で使用可能となるのはPCM8独立チャンネルモードの
時のみである。
例
@v120 _10 c _ d ~ e (cは@120-10=@v110で、dは@v110-10=@v100で、
eは@v100+10=@v110で演奏される)
|:10 _10 c :| (段々と音量が下がりながらcが演奏される)
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Vと@V ┃
┃ ┃
┃ ┃
┃ MIDI音源によっては音量をベロシティでのみ決定するものがあります ┃
┃ ┃
┃(RX-8など)。 ┃
┃ ┃
┃そういう楽器に対してのV/@Vコマンド動作は全く保証されません。 ┃
┃ ┃
┃ FM音源、ADPCM(PCM8独立チャンネルモード時)/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 7 15 23 31 39 47 55 63 71 79 87 95 103 111 119 127 ┃
┃ ┃
┃ ┃
┃ 以上のことから相対ボリューム_n ~nの使用結果においても結果が異なります。 ┃
┃ ┃
┃例えば ┃
┃ ┃
┃ v8 _1 ┃
┃ ┃
┃とした場合FMでは結果が@V105に相当しますがMIDIでは@V62になります。 ┃
┃ ┃
┃ また、FM音源ではベロシティーとボリュームが全く同じ機能をします。例えば ┃
┃ ┃
┃ V8 @U106 @V106 ┃
┃ ┃
┃は同じ機能を果たします。 ┃
┃ ┃
┃ なお、PCM8独立チャンネルモード時のADPCM音はV9が元音量です。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
----------------------------------------
○●
@Un
Un
ベロシティの設定を行う。ベロシティとは鍵盤を押す強さ、すなわち音量のこと。
MIDI楽器によってはこれによって音のニュアンスを変えることが出来る。
設定範囲は 0≦n≦127で127が最強(大)に相当。またFM音源では単純に音量として
扱われる。
初期値は127である。
----------------------------------------
○●
@U+n
@U-n
U+n
U-n
ベロシティの相対指定を行う。設定範囲は-127≦n≦+127。演算によって
アンダーフローを起こした場合は0、オーバーフローを起こした場合は127に
修正される。
初期値は+1。
例
@u127c @u-10d @u+5e
u127c u-10d u+5e
c, d, eはそれぞれベロシティ127, 117, 122でキーオンする。
----------------------------------------
○●
@U
以前設定した相対ベロシティの値でもう一度相対ベロシティの指定を行う。
例
@u127 @u-10 @u
最後の@uもまた@u-10で機能する。
----------------------------------------
○●
U
以前設定した@Uの値を再設定する。
例
@u127c u-10d ue
c, d, eがそれぞれベロシティ127, 117, 127でキーオンされる。
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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で演奏されます。 ┃
┃ ┃
┃ このようにU,@Uを使い分ければ、かなり複雑なシーケンスをすることが出来ます。┃
┃ ┃
┃ @uは、ループの影響を受けないグローバルな存在、uはループ等の影響を ┃
┃ ┃
┃受ける局所的な存在というわけです。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
----------------------------------------
○●
Zn1,…,n16
ベロシティのばらつきを設定する。これをZMUSICでは
ベロシティー・シーケンスと呼ぶ。各値の設定範囲は0≦ni≦127。
これはこの先最大16個の音階MML、和音MML、ポルタメントMMLの
ベロシティを先に設定するものである。
例えば
z127,99,80 cdefg
とするとcはベロシティ127で、dはベロシティ99で、eはベロシティ80で、
ここでfは再びベロシティ127で、gはベロシティ99で発音される。
値は最大16個まで記述することができ、1個のみ指定した時は@Uと全く同様に機能
する。数値の頭に±を記述すれば相対指定が可能である。
数値を全く書かずに'Z'のみ記述するとベロシティ・シーケンスのOFFと解釈される。
ベロシティ・シーケンスはループコマンドを無視して処理されるので
z99,100,127 |:100 c :| d e
とした場合cが100回ベロシティ99で、ループ外のdがベロシティ100で、
eがベロシティ127で演奏される。
このコマンドを効果的に使えばピアノソロ等を極めて人間的にシーケンスすることが
できる。MIDI楽器によってはベロシティの変化にともなってニュアンスや
音色を変えることが出来るのでそういった機能と合わせて使えばかなり興味深い
効果を得ることが出来る。
注意
FM音源にこれを用いた場合は単純にその値に対応した絶対音量で発音される。
ベロシティコマンド@U/Uを使用すると自動的にベロシティ・シーケンスは解除される。
----------------------------------------
■ピッチシフト/ディチューン/オートベンド
----------------------------------------
○●
Kn
音程を半音単位で上下させる(キートランスポーズ)。nはn半音を意味し、
設定範囲は-128≦n≦127(±10オクターブ程度に相当)。
初期値は0、またニュートラル(中央値)も0である。
----------------------------------------
○●
@Kn
キートランスポーズを1/64半音単位で行う(いわゆるディチューン)。
設定可能範囲は-768≦n≦768(±12半音程度に相当)。
初期値は0、またニュートラルも0である。
Kと@Kは全く管理が別である。例えば
@k10 cdefg
の頭に k1 をつけて
k1 @k10 cdefg
としたとすると1半音と10/64半音上にピッチシフトされてcdefgが演奏される。
いちいちMMLを書き直すこと無く各パートのMMLの頭にKコマンドを書くだけで
ディチューン等も考慮した転調が実現出来る。
----------------------------------------
○●
@Bn
ベンド値(ディチューン)を設定する。@Kと全く同じ機能をすると考えて良いが
1オクターブ≒8192で換算される点が違う。ユーザーがMIDI音源に
慣れている場合は@Bを、FM音源に慣れている場合は@Kを使うと良いだろう。
設定範囲は-8192≦n≦8191で、初期値は0、ニュートラルも0である。
----------------------------------------
○●
@Kn1,n2,dly
オートベンドの設定を行う。@Kの後ろに2つ以上のパラメータを書くと
オートベンドの設定となる。この場合、n1はベンドスタート値、
n2はベンドエンド値、dlyはディレイ値を表す。それぞれ
-768≦n1≦768, -768≦n2≦+768, 0≦dly≦32767。
具体的な使用方法を示すとする。ベンドレンジが1オクターブになっている場合に
@k0,-64,24 (64=1半音)
とすると発音後、24絶対カウント後から音程が下がり始めキーオフまでに
半音下がる。
ディレイは省略可能で省略時は以前の設定値が起用される。初期値は
n1,n2,dlyともに0である。
ベンドレンジはFMは1オクターブに固定、MIDIは後述の@Gコマンドで
変更可能である。
@Kおよび@Bにてディチューンを設定した場合はオートベンドは以降
強制的にOFFとなる。
----------------------------------------
○●
@Bn1,n2,dly
オートベンドの設定を行う。@Bの後ろに2つ以上のパラメータを書くと
オートベンドの設定となる。この場合、n1はベンドスタート値、
n2はベンドエンド値、dlyはディレイ値を表す。それぞれ
-8192≦n1≦8191, -8192≦n2≦8191, 0≦dly≦32767。
具体的な使用方法を示すとする。ベンドレンジが1オクターブになっている場合に
@b0,-683,24 (683≒8192/12≒1半音)
とすると発音後、24絶対カウント後から音程が下がり始めキーオフ時までに
半音下がる。
ディレイは省略可能で省略時は以前の設定値が起用される。初期値は
n1,n2,dlyともに0である。
ベンドレンジはFMは1オクターブに固定、MIDIは後述の@Gコマンドで
変更可能である。
@Kおよび@Bにてディチューンを設定した場合はオートベンドは以降
強制的にOFFとなる。
----------------------------------------
○●
(k1k2)n,dly
ポルタメントを行う。k1はポルタメント・スタート・キー・MML、
k2はエンド・キー・MML。以下のMMLコマンドを()内に記述できる。
音階 c~b
調号 # + - !
音長 1~(符点も可)
絶対音長 *1~*32767
オクターブコマンド O-1~O9
オクターブスイッチ < >
和音コマンドとは違ってオクターブスイッチは(~)外へも影響する。
音長は和音コマンド同様にキーの後ろに書くことも、(~)の外に書くこともできる。
外に書いた場合は絶対カウントとみなされる。絶対音長ではnは0≦n≦32767まで
設定可能なので全音符以上の発音時間を設定することも可能である。
dlyはディレイで絶対カウント単位でポルタメントのかかり方を遅らせることが出来る。
設定可能範囲は0≦dly≦32767。dlyは省略すると以前の設定値が起用される。
音長を省略するとデフォルトの音長(Lまたは@Lコマンドで指定したもの)が起用される。
MIDI楽器において、後述の@Gコマンドでベンドレンジを12(1オクターブ)以外に
変更したとき、あるいはMIDI楽器のベンドレンジが12に設定されていない時の
動作は表記通りにならない。
例
o4(g2<g)
オクターブ4のgでキーオンし、2分音符分鳴り終えるまでにオクターブ5のgまで
なめらかに音程をシフトしていく。
コマンド終了後はオクターブは5になっていることに注意。
(o3d*96,e),48
オクターブ3のdでキーオンし、このピッチで48カウント分演奏し、それ以降
絶対音長96でキーオフするまでにオクターブ3のeまで音程をシフトしていく。
----------------------------------------
●
@Gn
ベンドレンジの設定を行う。nはMIDI楽器によって設定範囲が異なる。
また、外部からベンドレンジを操作出来ないものや、プログラムチェンジ
(音色切り換え)時に初期化されてしまうものなどがあるので、楽器のマニュアルを
よく読んでから使用したほうが良い。また、ベンドレンジを変更するとポルタメントの
効果も変化してくるので注意。逆にベンドレンジを変更すればオートベンドコマンドを
用いて1オクターブ以上のベンドを実現したりすることも可能である。
初期値はn=12を設定しているが楽器側がベンドレンジを変更出来ないものであれば
不定である。
FM音源対象トラックにおいては無効(12に固定)である。
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ オートベンドとポルタメント ┃
┃ ┃
┃ ┃
┃ オートベンドとポルタメントの具体例と両コマンドの対象デバイスにおける ┃
┃ ┃
┃効果の相違点について少し解説します。 ┃
┃ ┃
┃ (c+4<<c+),8 ┃
┃ ┃
┃はc+をディレイで指定した8カウント分演奏した後、4分音符-8カウントの時間内に┃
┃ ┃
┃2オクターブ上のc+まで上昇します。オクターブスイッチの影響で以降2オクターブ┃
┃ ┃
┃上になることに注意してください。 ┃
┃ ┃
┃ (g,e)24&e ┃
┃ ┃
┃は絶対カウント24の時間内にgからeへピッチダウンを行いキーオフせずeへ ┃
┃ ┃
┃つなぐことになります。 ┃
┃ ┃
┃ ここで注意が1つあります。以上2つの例はFM音源においてのみ有効です。 ┃
┃ ┃
┃ 1つ目が実現不可能なのは、MIDIでは楽器側のベンドレンジが1オクターブと┃
┃ ┃
┃想定して処理しているため1オクターブを超えたポルタメントは不可能だからです。┃
┃ ┃
┃ 内蔵FM音源は音程がリニアな構造をしているため発音可能範囲内であれば ┃
┃ ┃