-
Notifications
You must be signed in to change notification settings - Fork 1
/
HE386_UTF8.TXT
2201 lines (1688 loc) · 112 KB
/
HE386_UTF8.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
======================================================================
system“Pride”
Super Technical Multi Text Sound Tool
High-EUP active tool
HEat version.1.02b
(c) Copyright 1990,1991,1992 -- TaroPYON
======================================================================
**********************************************************************
386|High−EUP Compiler説明書
**********************************************************************
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
☆
☆ 第1章 イントロダクション
☆
386|High-EUP CompilerとはFMTOWNSの標準音楽演奏データEUPHO-
NY形式の演奏ファイルを生成するためのコンパイラです。
386|High-EUP Compiler はテキストファイルとして作成されたMML (
Music Macro Language)をEUPHONY 形式に変換します。MML は当然HEat
のテキストエディタによって入力・作成可能です。
386|High-EUP Compiler のMML はF-BASIC386や8ビット機のMML (HE-
PLAY,EDPLAY等)をベースに拡張したものです。
また,ミュージカルプランのシーケンスソフト『MUSIC PRO TOWNS』ま
たは『MUSIC PRO TOWNS [MIDI] 』 の「MML SAVE」で作成したMML デー
タもコンパイル可能です。
386|High-EUP Compiler の装備するMML は従来のものより大幅に拡張
されており,EUPHONY 形式のサポートする機能を100% 引き出します。
F-BASIC386やMUSIC PRO TOWNS では作成不可能だった演奏データも386|
High-EUP Compiler を使えば簡単に作成可能です。
対応する音源も内蔵のFM音源,PCM 音源はもちろんのこと,MIDIにも
フル対応しています(ミュージカルプランのRS-232C MIDIアダプタにも
対応しています)。
この高機能EUPHONY 演奏データ生成コンパイラを使いこなすため,こ
のマニュアルを活用してください。
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
☆
☆ 第2章 コンパイラの起動
☆
2.1 コンパイラの起動
386|High-EUP Compiler (以下HE386 と略)はHEatに内蔵されていますので
特別なプログラムを用意しなくともHEat上からそのまま利用できます。
テキスト編集状態より[PF-4]+[M]キーの「MML compiler MMLコンパイル」
を実行すると画面はコンソールモードと同じ状態となり,HE386 用のメニュー
が表示されます。
HE386 メニューでは以下の操作が可能です。
「Source」
HE386 メニューの1番目の項目には入力ファイル名が表示されて
います。
通常はHE386 を起動したときの現在編集中のテキストファイル名
が設定されていますが,この項目を実行すると編集中のテキストの
中から入力ファイル名を選択できます。
なお,HE386 は入力ファイル名から拡張子を取り除いたファイル
名をマクロ名に設定するため,組み込みマクロと同じ名前のファイ
ル名は使用できません(詳しくは「第7章 マクロ展開」見てくだ
さい)。
「Euphony」
生成される演奏データのファイル名が表示されています。
通常は入力ファイル名の拡張子を.EUPに変更したファイル名が設
定されています。この項目を実行すると出力ファイル名の変更が可
能です。
「output Level」
HE386 が表示する各種メッセージのレベルを決定します。
実行する毎に次のように切り替わります。
[-----] 最小限のメッセージのみ
[コメント] 上記に加え入力テキストのコメント行を表
示
[コメント、マクロ&コントロール] 上記に加えコンパイラ制御行,コントロー
ル行を表示
[input all] 上記に加え入力行をすべて表示
[output all] すべてのメッセージを表示
「Auto play コンパイル後 演奏」
コンパイルが正常に終了した場合,演奏を自動的に行いたい場合
に実行しておきます。
実行する毎に次のように切り替わります。
[OFF] 演奏は行いません
[BGM] BGM として演奏します
[HEPLAY] HEPLAYによって演奏します
「auto error Jump エラー行自動ジャンプ」
この設定を有効(ON)にすると,コンパイル中にエラーが発生し
た場合,エラーが発生した箇所に自動的にジャンプします(編集状
態となる)。
「Macro listing マクロの表示」
この設定を有効(ON)にすると,コンパイル後(エラーが発生し
た場合でも)使用されたマクロ名とマクロ内容の一覧を表示します。
「auto Text load MMLテキスト自動読込」
この設定を有効(ON)にすると,インクルードされるファイルは
テキスト編集に読み込みます。
「Velocity error ベロシティ・エラー」
この設定を有効(ON)にすると,ベロシティが相対指定によって
制限範囲を越えた場合にはエラーとします。
無効(OFF )な場合は,相対指定によってベロシティが制限範囲
を越えてもエラーとはせずに上限を上回った場合は最大値を,下限
を下回った場合には最小値をとります。
「Optimize 最適化」
この設定を有効(ON)な場合は,演奏データの最適化を行います。
「Compile コンパイル開始」
コンパイルを開始します。
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
☆
☆ 第3章 MMLテキストの形式
☆
386|High-EUP Compiler のソースは『MML テキスト』と呼ばれます。
MML テキストは行単位に処理され,「コメント行」,「コントロール行」,
「コンパイラ制御行」,「MML 行」の4つに分類できます。
MML テキスト中,コマンドや命令はすべて半角文字で指定します。特別な場
合をのぞいてアルファベットの大文字・小文字は区別せずに同じものとして扱
われます。
日本語・漢字等の全角文字はコメントでしか使用できません。
3.1 コメント行
行頭の文字がスラッシュ「/」だった場合,その行はコメント行とみなされ
ます。
文字どおりコメントですので,コンパイルの実行には何の影響もあたえませ
ん。
【コメント行の例】
┌───────────────────────────────┐
│/* filename "test.mml" │
│/------ Block 1 ------ │
└───────────────────────────────┘
3.2 コントロール行
行頭の文字がピリオド「. 」だとその行はコントロール行とみなされます。
コントロール行に指定できる「コントールコマンド」には以下のものがあり
EUPHONY 演奏ファイルのヘッダ情報を設定したり,音色のファイル名指定,M
ML コマンドの設定などを行います。
個々の詳しい解説は「第4章 コンロール行」で行います。
《表 3.2.1》 コントロールコマンド一覧
┌───────┬───────────────────────┐
│コントロール行│ 内 容 │
├───────┼───────────────────────┤
│.title │タイトルの設定 │
│.fm │FM 音源音色ファイル名の指定 │
│.pcm │PCM音源音色ファイル名の指定 │
│.mmltype │MML タイプの指定 │
│.partmax │使用パート数の指定 │
│.part │パートとトラックの設定 │
│.next │次ブロック指定 │
│.end │コンパイルの終了指定 │
│.nulline │空行をスキップするかどうかの指定 │
│.subpart │マクロ名とパートの対応設定 │
│.playsub │疑似MML 展開 │
│.ssg │SSG パート変換を行うかどうかの指定 │
│.trkport │トラックポートの設定 │
│.trkch │トラックMIDIチャンネルの設定 │
│.fmch │FM 音源MIDIチャンネルの設定 │
│.pcmch │PCM 音源MIDIチャンネルの設定 │
│.vdef │Vコマンドとベロシティ設定 │
│.veltie │ベロシティが違うとタイを中断するか継続するか │
│.chbase │チャンネルベースの指定 │
│.z_cmd │Zコマンド有効・無効の設定 │
│.noteasn │ノートアサインの設定 │
│.filter │フィルター設定 │
│.meas │拍子の固定モード指定 │
└───────┴───────────────────────┘
【コントロール行の例】
┌───────────────────────────────┐
│.title ***** Music No.02 ***** │
│.fm fmtone2 │
└───────────────────────────────┘
3.3 コンパイラ制御行
行頭の文字がナンバ記号「# 」だとその行はコンパイラ制御行とみなされま
す。
コンパイラ制御行はマクロの定義/解除,外部ファイルのインクルード等を
行います。
個々の詳しい解説は「第5章 コンパイラ制御行」で行います。
《表 3.3.1》 コンパイラ制御コマンド一覧
┌───────┬───────────────────────┐
│コンパイラ制御行 │ 内 容 │
├───────┼───────────────────────┤
│#define │マクロの定義 │
│#undef │マクロの定義解除 │
│#ifdef │条件判断ブロック制御 │
│#else │条件判断ブロック制御 │
│#endif │条件判断ブロック制御 │
│#include │外部ファイル取り込み │
└───────┴───────────────────────┘
【コンパイラ制御行の例 】
┌───────────────────────────────┐
│#include "drums.def" │
│#define BSD n24 │
└───────────────────────────────┘
3.4 MML行
「コメント行」,「コントロール行」,「コンパイラ制御行」のいずれにも
当てはまらない行がMML となります。
コントロール行に「.nulline skip 」が指定されていない場合には改行だけ
の空行もMML 行とみなされます。
セミコロン「; 」で区切ることで1行中に複数のMML 行を指定することも可
能です。
MML 行の中にも,
/* <コメント> */
という形式でコメントを指定できますが,行頭の文字がスラッシュ「/ 」だ
と,その行全体がコメントとみなされるので注意してください(行頭にスラッ
シュ以外の文字が1つで指定されていればコメント行にはなりません)。
MML 行は以下の表にあげたMML コマンドによって構成されます。
MML コマンドの個々の詳しい解説は「第6章 MML コマンド」で行います。
《表 3.4.1》 MMLコマンド一覧
┌───────┬───────────────────────┐
│コメンド名 │ 内 容 │
├───────┼───────────────────────┤
│r │休符 │
│a〜g │音程 │
│n │特殊音程 │
│l │音長 │
│q │音長の割合 │
│' │スタカート │
│o │オクターブ │
│>, < │オクターブ・アップ/ダウン │
│^ │1オクターブアップ │
│v, @v │ベロシティ,ボリューム │
│], [ │ベロシティ・アップ/ダウン │
│! │アクセント │
│@ │プログラムチェンジ │
│t │テンポ指定 │
│%s │拍子 │
│u │ピッチベンド │
│%c,%l,%r │パンポット │
│%d │ディレイ │
│k │キートランスポーズ │
│h │MIDIチャンネル │
│%o │出力ポート │
│? │拡張コマンド │
│@c │コントロールチェンジ │
│%e │エクスクルーシブメッセージ │
│* │モジュレーション │
│~, _ │モジュレーション・オン/オフ │
│z │直接データ指定 │
│{, } │連符 │
│(, ) │リピート │
│$ │マクロ展開 │
└───────┴───────────────────────┘
【MML 行の例】
┌───────────────────────────────┐
│o4v#118q8 l8e4.c&c4<a │
│o4v#86q6 l8aaaaaaaa │
└───────────────────────────────┘
******************************************************
☆ 第4章 コントロール行
******************************************************
MML テキスト中,行頭の文字がピリオド「. 」の行はコントロール行とみな
されます。
この章ではコントロール行に指定するコントロールコマンドについて解説い
たします。
4.1 コントロール行について,
コントロール行はコントロールコマンドを指定するもので,演奏ファイルの
ヘッダ情報や音色ファイル名,ノートアサイン,などの各種設定を行います。
コントロール行は,
┌───────────────────────────────┐
│ [ピリオド(. )]+[コマンド名]+[空白]+[パラメータ]│
└───────────────────────────────┘
という形式で使用されます。
パラメータにはMML 行と同じマクロ展開処理が施されます。よってMML 行と
同じように,
┌───────────────────────────────┐
│ $<マクロ名> │
└───────────────────────────────┘
という形式でマクロの使用が可能です。
また,MML の,
┌───────────────────────────────┐
│ ( … )<n> │
└───────────────────────────────┘
という形式のリピート指定もマクロ展開ですので,コントロール行でも同じ
ようにマクロ展開されます。
これらの仕様により「$ 」,「( 」,「) 」は単独の文字としては使用でき
ません。
4.2 タイトルの指定
■ TITLE:タイトルの指定
┌───────────────────────────────┐
│.title <文字列> │
└───────────────────────────────┘
【パラメータ】
<文字列> 32文字以内(全角16文字以内)
【解説】
EUPHONY 演奏ファイルのヘッダ情報に埋め込むタイトルを指定します。
タイトルは半角32文字,全角で16文字以内の文字列で指定します。
4.3 音色ファイルの指定
■ FM:FM音源音色ファイル名の指定
┌───────────────────────────────┐
│.fm <ファイル名> │
└───────────────────────────────┘
【パラメータ】
<ファイル名> 8文字以内(拡張子は不要)
【解説】
FM音源用の音色ファイル名を指定します。
拡張子「.FMB」は指定する必要ありません。
■ PCM:PCM音源音色ファイル名の指定
┌───────────────────────────────┐
│.pcm <ファイル名> │
└───────────────────────────────┘
【パラメータ】
<ファイル名> 8文字以内(拡張子は不要)
【解説】
PCM 音源用の音色ファイル名を指定します。
拡張子「.PMB」は指定する必要ありません。
4.4 MMLパートに関する設定
■ MMLTYPE:MMLタイプの指定
┌───────────────────────────────┐
│.mmltype <タイプ名> │
└───────────────────────────────┘
【パラメータ】
<タイプ名> FB386 …F-BASIC 386
M_PRO …MUSIC PRO TOWNS
MIDI …MIDI
【解説】
MML テキストのMML タイプを指定します。
MML タイプを指定することで,以下のように初期設定が行われます。
《表 4.4.1》 MMLタイプと初期設定
┌─────┬───┬──────┬──────┬─────┐
│タイプ名 │パート数│ FM 音源パート│PCM 音源パート│MIDIパート │
├─────┼───┼──────┼──────┼─────┤
│ FB386 │ 14 │ 0〜5 │ 6〜13 │ なし │
│ M_PRO │ 14 │ 0〜5 │ 6〜13 │ なし │
│ MIDI │ 16 │ なし │ なし │ 0〜15 │
└─────┴───┴──────┴──────┴─────┘
MML タイプによる初期設定は固定化された設定内容をユーザーが設定す
る手間を省くために行われており,上記以外の設定を行う場合にはユーザ
ーが自分で初期設定を行わなければなりません。
■ PARTMAX:MMLパート数の指定
┌───────────────────────────────┐
│.partmax <パート数> │
└───────────────────────────────┘
【パラメータ】
<パート数> 1〜128
【解説】
MML の使用パート数を指定します。
■ PART:パートの設定
┌───────────────────────────────┐
│.part <パート> <トラック> │
└───────────────────────────────┘
【パラメータ】
<パート> パート番号 (0〜127)
<トラック> トラック番号(0〜31)
【解説】
パートとトラック番号の対応を指定します。
■ NEXT:次ブロックの指定
┌───────────────────────────────┐
│.next │
└───────────────────────────────┘
【パラメータ】
なし
【解説】
次のMML 行を小節の先頭として指定します。
■ END:コンパイル終了
┌───────────────────────────────┐
│.end │
└───────────────────────────────┘
【パラメータ】
なし
【解説】
コンパイルを終了します。
■ NULLINE:空行を無効にする
┌───────────────────────────────┐
│.nulline {skip|rest} │
└───────────────────────────────┘
【パラメータ】
skip 空行を無効にする
rest 空行は休符とする(デフォルト)
【解説】
MML 行のうち空行を無効にするか休符とするか指定します。
■ SUBPART:マクロとパートの対応設定
┌───────────────────────────────┐
│.subpart <マクロ名> <パート> │
└───────────────────────────────┘
【パラメータ】
<マクロ名> 任意のマクロ名
<パート> パート番号(0〜127)
【解説】
マクロとパートの対応を設定します。
■ PLAYSUB:マクロMML 展開
┌───────────────────────────────┐
│.playsub │
└───────────────────────────────┘
【パラメータ】
なし
【解説】
.subpartで定義されたマクロ名のマクロ内容をMML として展開します。
.subpartで定義されたマクロは.playsub実行後は未定義状態となります。
4.5 トラックに関する設定
■ TRKPORT:トラックポートの設定
┌───────────────────────────────┐
│.trkport <トラック>:<ポート> [<トラック>:<ポート>…] │
└───────────────────────────────┘
【パラメータ】
<トラック> 設定トラック番号(0〜31)
<ポート> 出力ポート
【解説】
指定トラックの出力ポートを設定します。
<トラック>と<ポート>の設定は空白またはタブで区切ることで1行中に
いくつでも指定可能です。
<トラック>の指定はハイフン「- 」によって範囲を指定することも可能
です。
出力ポートは「ポート名」または「ポート番号」で指定しますが,その
内容と以下のとおりです。
《表 4.5.1》 出力ポート
┌────┬──┬───────────────┐
│ポート名│番号│出力先 │
├────┼──┼───────────────┤
│ INT │ 255│内蔵音源 │
│ A │ 0│MIDIポートA │
│ B │ 1│MIDIポートB │
│ C │ 2│MIDIポートC │
│ D │ 3│MIDIポートD │
│ E │ 4│MIDIポートE │
│ F │ 5│MIDIポートF │
│ G │ 6│MIDIポートG │
│ H │ 7│MIDIポートH │
│ RS │ 16│RS-232C MIDIアダプタ │
└────┴──┴───────────────┘
【使用例】
.trkport 0-31:A
.trkpirt 0:A 1:B 2-5:INT
■ TRKCH:トラックMIDIチャンネルの設定
┌───────────────────────────────┐
│.trkch <トラック>:<チャンネル> [<トラック>:<チャンネル>…] │
└───────────────────────────────┘
【パラメータ】
<トラック> 設定トラック番号(0〜31)
<チャンネル> MIDIチャンネル (0〜15,255)
【解説】
指定トラックのMIDIチャンネルを設定します。
<トラック>と<チャンネル>の設定は空白またはタブで区切ることで1行
中にいくつでも指定可能です。
MIDIチャンネルに255 が指定された場合,オムニモードとなり演奏デー
タ中のMIDIチャンネルがそのまま出力されます(演奏データ中のMIDIチャ
ンネルは%hコマンドで指定可能)。
<トラック>の指定はハイフン「- 」によって範囲を指定することも可能
です。
【使用例】
.trkch 0:1 1:2 2:3 3:4 4:5 5:6
.trkch 6-11:10
■ FMCH:FM MIDIチャンネルの設定
┌───────────────────────────────┐
│.fmch <ボイス>:<チャンネル> [<ボイス>:<チャンネル>…] │
└───────────────────────────────┘
【パラメータ】
<ボイス> 設定ボイス番号(0〜5)
<チャンネル> MIDIチャンネル(0〜15)
【解説】
FMTOWNS本体内蔵のFM音源で発音させる指定ボイスのMIDIチャンネ
ルを設定します。
<ボイス>と<チャンネル>の設定は空白またはタブで区切ることで1行中
にいくつでも指定可能です。
<ボイス>の指定はハイフン「- 」によって範囲を指定することも可能で
す。
■ PCMCH:PCM MIDIチャンネルの設定
┌───────────────────────────────┐
│.pcmh <ボイス>:<チャンネル> [<ボイス>:<チャンネル>…] │
└───────────────────────────────┘
【パラメータ】
<ボイス> 設定ボイス番号(0〜7)
<チャンネル> MIDIチャンネル(0〜15)
【解説】
FMTOWNS本体内蔵のPCM 音源で発音させる指定ボイスのMIDIチャン
ネルを設定します。
<ボイス>と<チャンネル>の設定は空白またはタブで区切ることで1行中
にいくつでも指定可能です。
<ボイス>の指定はハイフン「- 」によって範囲を指定することも可能で
す。
4.6 MMLコマンドに関する設定
■ VDEF:Vコマンドのベロシティ設定
┌───────────────────────────────┐
│.vdef <Vn>:<ベロシティ> │
└───────────────────────────────┘
【パラメータ】
<Vn> Vコマンドの値(0〜15)
<ベロシティ> ベロシティ値(0〜127 )
【解説】
MML のVコマンドに各値に設定するベロシティ値を設定します。
デフォルトでは次のように設定されています。
《表 4.6.1》 Vコマンド初期設定
┌────┬────┐ ┌────┬────┐
│ Vn │ベロシティ │ │ Vn │ベロシティ │
├────┼────┤ ├────┼────┤
│ 0 │ 7 │ │ 8 │ 71 │
│ 1 │ 15 │ │ 9 │ 79 │
│ 2 │ 23 │ │ 10 │ 87 │
│ 3 │ 31 │ │ 11 │ 95 │
│ 4 │ 39 │ │ 12 │ 103 │
│ 5 │ 47 │ │ 13 │ 111 │
│ 6 │ 55 │ │ 14 │ 119 │
│ 7 │ 63 │ │ 15 │ 127 │
└────┴────┘ └────┴────┘
■ VELTIE:タイの中断
┌───────────────────────────────┐
│.veltine {cont|stop} │
└───────────────────────────────┘
【パラメータ】
cont そのまま発音する
stop 発音を中断する
【解説】
タイ処理中にベロシティを変更した場合に,タイ処理中の発音を中断す
るか,そのままタイ処理を続けるかどうか指定するものです。
パラメータには「cont」(タイ継続)または「stop」(タイ中断)のど
ちらかを指定します。
【使用例】
.veltie stop
■ CHBASE:MIDIチャンネルベースの指定
┌───────────────────────────────┐
│.chbase {0|1} │
└───────────────────────────────┘
【パラメータ】
0 MIDIチャンネル指定を0〜15にする
(デフォルト)
1 MIDIチャンネル指定を1〜16にする
【解説】
MML のHコマンドで指定するMIDIチャンネルを0〜15で指定するか,1
〜16で指定するかきめるものです。
■ Z_CMD:Zコマンドを有効にする
┌───────────────────────────────┐
│.z_cmd {on|off} │
└───────────────────────────────┘
【パラメータ】
on Z コマンドを有効にする
off Z コマンドを無効にする(デフォルト)
【解説】
MML のZコマンドを有効にするか無効にするか指定するコマンドです。
4.7 ノートアサインに関する設定
■ NOTEASN:形式1 音程の設定
┌───────────────────────────────┐
│.noteasn <トラック> note <音程>:<音程2> │
└───────────────────────────────┘
【パラメータ】
<トラック> トラック番号(0〜31)
<音程> 0〜127
<音程2> 0〜127
【解説】
<トラック>で指定されたトラックの<音程>で指定された音程を実際には
<音程2> で指定した音程で発音するための設定です。
これによりMML 中の音程と実際に発音される音程の対応を任意に設定で
きます。
<音程>の指定はハイフン「- 」によって範囲を指定することも可能です。
【使用例】
.noteasn 0 note 24:36
.noteasn 1 note 60-71:64
■ NOTEASN:形式2 パンポットの設定
┌───────────────────────────────┐
│.noteasn <トラック> pan <音程>:<オフセット> │
└───────────────────────────────┘
【パラメータ】
<トラック> トラック番号(0〜31)
<音程> 0〜127
<オフセット> パンポットのオフセット(−127〜+127)
【解説】
<トラック>で指定されたトラックの<音程>で指定された音程が発音され
るさいにパンポットに<オフセット>で指定された値を加えます。
これにより音程毎にパンポットが指定可能となります。
<音程>の指定はハイフン「- 」によって範囲を指定することも可能です。
■ NOTEASN:形式3 ピッチベンドの設定
┌───────────────────────────────┐
│.noteasn <トラック> bend <音程>:<オフセット> │
└───────────────────────────────┘
【パラメータ】
<トラック> トラック番号(0〜31)
<音程> 0〜127
<オフセット> ピッチベンドのオフセット(−8191〜+8191)
【解説】
<トラック>で指定されたトラックの<音程>で指定された音程が発音され
るさいにピッチベンドに<オフセット>で指定された値を加えます。
これにより音程毎にピッチベンドが指定可能となります。
<音程>の指定はハイフン「- 」によって範囲を指定することも可能です。
■ NOTEASN:形式4 ベロシティの設定
┌───────────────────────────────┐
│.noteasn <トラック> vel <音程>:<オフセット> │
└───────────────────────────────┘
【パラメータ】
<トラック> トラック番号(0〜31)
<音程> 0〜127
<オフセット> ベロシティのオフセット(−127〜+127)
【解説】
<トラック>で指定されたトラックの<音程>で指定された音程が発音され
るさいにベロシティに<オフセット>で指定された値を加えます。
これにより音程毎にベロシティを変化させることが可能です。
<音程>の指定はハイフン「- 」によって範囲を指定することも可能です。
■ NOTEASN:形式5 ボリュームの設定
┌───────────────────────────────┐
│.noteasn <トラック> vol <音程>:<オフセット> │
└───────────────────────────────┘
【パラメータ】
<トラック> トラック番号(0〜31)
<音程> 0〜127
<オフセット> ベロシティのオフセット(−127〜+127)
【解説】
<トラック>で指定されたトラックの<音程>で指定された音程が発音され
るさいにボリュームに<オフセット>で指定された値を加えます。
これにより音程毎にボリュームを変化させることが可能です。
<音程>の指定はハイフン「- 」によって範囲を指定することも可能です。
■ NOTEASN:形式6 プログラムチェンジの設定
┌───────────────────────────────┐
│.noteasn <トラック> prog <音程>:<プログラム値> │
└───────────────────────────────┘
【パラメータ】
<トラック> トラック番号(0〜31)
<音程> 0〜127
<プログラム値> プログラム値(1〜128)
【解説】
<トラック>で指定されたトラックの<音程>で指定された音程が発音され
るさいにプログラムチェンジを発生させます。
<音程>の指定はハイフン「- 」によって範囲を指定することも可能です。
■ NOTEASN:形式7 ピッチベンド幅の設定
┌───────────────────────────────┐
│.noteasn <トラック> bdif <音程>:<ピッチベンド幅> │
└───────────────────────────────┘
【パラメータ】
<トラック> トラック番号(0〜31)
<音程> 0〜127
<ピッチベンド幅> 音程間のピッチベンド幅(1〜8192)
【解説】
各音程間のピッチベンド幅を指定します。
初期設定ではすべて 682 (≒8192÷12)に設定されています。
この設定はMML のu%コマンドで使用されます。
■ PROGASN プログラムアサイン
┌───────────────────────────────┐
│.progasn <トラック> <プログラム値1>:<プログラム値2> │
└───────────────────────────────┘
【パラメータ】
<トラック> トラック番号(0〜31)
<プログラム値1> 変更元プログラム値(1〜128)
<プログラム値2> 新プログラム値(1〜128)
【解説】
プログラムチェンジと実際に生成されるプログラム値との対応を設定し
ます。
■ FILTER:形式1 ベロシティフィルター
┌───────────────────────────────┐
│.filter <トラック> vel <タイプ>:<値> [<タイプ>:<値>...] │
└───────────────────────────────┘
【パラメータ】
<トラック> トラック番号(0〜31)
<タイプ> <値>
max 1〜127 最大値
min 1〜127 最小値
bit 0〜7 有効ビット数
add 0〜127 オフセット(増)
sub 0〜127 オフセット(減)
rnd 0〜64 ランダム
rate 0〜200 比率(パーセンテージ)
【解説】
<トラック>で指定されたトラックのベロシティに各種フィルターを設定
します。
■ FILTER:形式2 ボリュームフィルター
┌───────────────────────────────┐
│.filter <トラック> vol <タイプ>:<値> [<タイプ>:<値>...] │
└───────────────────────────────┘
【パラメータ】
<トラック> トラック番号(0〜31)
<タイプ> <値>
max 0〜127 最大値
min 0〜127 最小値
bit 0〜7 有効ビット数
add 0〜127 オフセット(増)
sub 0〜127 オフセット(減)
rnd 0〜64 ランダム
rate 0〜200 比率(パーセンテージ)
【解説】
<トラック>で指定されたトラックのボリュームに各種フィルターを設定
します。
■ FILTER:形式3 パンポットフィルター
┌───────────────────────────────┐
│.filter <トラック> pan <タイプ>:<値> [<タイプ>:<値>...] │
└───────────────────────────────┘
【パラメータ】
<トラック> トラック番号(0〜31)
<タイプ> <値>
max -64〜63 最大値
min -64〜63 最小値
bit 0〜7 有効ビット数
add 0〜127 オフセット(増)
sub 0〜127 オフセット(減)
rnd 0〜64 ランダム
rate 0〜200 比率(パーセンテージ)
【解説】
<トラック>で指定されたトラックのパンポットに各種フィルターを設定
します。
■ FILTER:形式4 ピッチベンドフィルター
┌───────────────────────────────┐
│.filter <トラック> bnd <タイプ>:<値> [<タイプ>:<値>...] │
└───────────────────────────────┘
【パラメータ】
<トラック> トラック番号(0〜31)
<タイプ> <値>
max -8192〜8191 最大値
min -8192〜8191 最小値
bit 0〜14 有効ビット数
add 0〜16383 オフセット(増)
sub 0〜16383 オフセット(減)
rnd 0〜8192 ランダム
rate 0〜200 比率(パーセンテージ)
【解説】
<トラック>で指定されたトラックのピッチベンドに各種フィルターを設
定します。
※ 「.filter 」はHEat ver.1.02b以降のみ存在する機能です。
【補足】
フィルターはノートアサインによって変化した値に更に加わる形となり
ます。
各種フィルターは複合して使用できますが(ただしadd とsub はどちら
か一方のみ),
《図 4.7.1》 フィルター機能の動作概要
┌──────────────────────────────┐
│ ┌────┐ ┌────┐ ┌────┐ │
│┌──┐ │add/sub │ │ min │ │ │ ┌──┐│
││入力│→│rnd │→│ │→│ bit │→│出力││
│└──┘ │rate │ │ max │ │ │ └──┘│
│ └────┘ └────┘ └────┘ │
└──────────────────────────────┘
という順にフィルターにかかります。
つまり,入力値に対してオフセットやランダムオフセットなどの変化が
加えられ,次に最大/最小値内に収まるように値が修正されます。最後に
有効なビット以外は切捨てます。
4.8 その他のコントロールコマンド
これまでの解説の中には登場しなかったコントロールコマンドもいくつかあ
りますが,それらはほとんど使われる機会はないと思われますので説明は省き
ます。
4.9 パートとトラックに関して
通常,パートとトラックの関係は以下のようになっています。
┌───────────────────────────────┐
│ [パート 0] → [トラック 0] │
│ [パート 1] → [トラック 1] │
│ [パート 2] → [トラック 2] │
│ : : │
│ : [トラック31] │
│(最大128パート) (32トラック使用可能) │
└───────────────────────────────┘
最大パート数は「.partmax」で指定します。
パートとトラックの対応は「.part」 で指定します。複数のパートを1つの
トラックに割り当てることも可能です。
「.subpart」というのは,マクロとパートの対応を設定します。
「.subpart」は使わなくても曲データを作ることは可能ですが,たくさんの
パートを使う場合は「.subpart」と「.playsub」を使ってほうが便利です。
「.subpart」を使用する場合の対応は以下のようになります。
┌───────────────────────────────┐
│ [マクロ名(任意)] → [パート 0] → [トラック 0] │
│ [マクロ名(任意)] → [パート 1] → [トラック 1] │
│ : : : │
└───────────────────────────────┘
たとえば,以下のようなMML テキストがあったとします。
┌───────────────────────────────┐
│.partmax 5 │
│.part 0 0 │
│.part 1 0 │
│.part 2 1 │
│.part 3 1 │
│.part 4 2 │
│/* │
│ c1 /* part #0 │
│ e1 /* part #1 │
│ r1 /* part #2 │
│ r1 /* part #3 │
│ l4cccc /* part #4 │
│/* │
│ r1 /* part #0 │
│ r1 /* part #1 │
│ d1 /* part #2 │
│ f1 /* part #3 │
│ l4ddd /* part #4 │
│.end │
└───────────────────────────────┘
これを「.subpart」と「.playsub」を使って表現すると,
┌───────────────────────────────┐
│.partmax 5 │
│.part 0 0 │
│.part 1 0 │
│.part 2 1 │
│.part 3 1 │
│.part 4 2 │
│.subpart MELODY_1 0 │
│.subpart MELODY_2 1 │
│.subpart BACK_1 2 │
│.subpart BACK_2 3 │
│.subpart BASS_1 4 │
│.next │
│#define MELODY_1 c1 │
│#define MELODY_2 e1 │
│#define BASS_1 l4cccc │
│.playsub │
│#define BACK_1 d1 │
│#define BACK_2 f1 │
│#define BASS_1 l4ddd │
│.playsub │
│.end │
└───────────────────────────────┘
となります。