-
Notifications
You must be signed in to change notification settings - Fork 0
/
zm02.txt
617 lines (341 loc) · 23.6 KB
/
zm02.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
MEASURE 2
ZMSC3.X/ZMC.Xのオプション・スイッチ
ここではZMUSICプログラムのコマンドオプションについて解説します。
2.1. はじめに
ZMUSICシステム Ver.2.0の中核であった音楽制御ドライバZMUSIC.Xは
今回のVer.3.0へのバージョンアップにともない、音楽演奏制御ドライバと
MMLコンパイラに分離された。
音楽演奏制御ドライバだけではZMDしか演奏することが出来ないが、
音楽演奏制御ドライバを組み込んだ上でMMLコンパイラを組み込むと
音楽演奏制御ドライバにMMLコンパイル機能を持たせることができる。
コンパイラはそれ単体で実行が出来るため、予めZMSをコンパイラで
ZMDにコンパイルおけば、コンパイラの常駐は不要となり、省メモリに
つながる。また、たとえ演奏したい演奏データがZMSであっても後述の
ZMUSIC Ver.3.0標準プレイヤZP3.Rを使えば自動的にコンパイラをチャイルド
プロセスで呼びだしコンパイルしてからZMDの演奏を行ってくれるので
コンパイラを常駐していなくても、あたかもZMSの演奏ができるかのように
演奏を行ってくれる。
本章では音楽演奏制御ドライバ「ZMSC3.X」とMMLコンパイラ「ZMC.X」の
コマンドオプションについて解説する。
各スイッチは半角文字の「/」「-」の後ろにコマンドスイッチの半角
アルファベットを記述し、さらに必要であればその直後に数値/文字等の
パラメータを記述することによって指定する。
各スイッチは(例外を除いて)順不同でいくつでも記述することができる。
2.2. ZMSC3.Xのコマンドオプション
[注意]
説明の都合上、見出しのコマンドオプションは全角英字になっているが
実際は半角(大文字/小文字いずれも可)を用いて指定する。
同じく説明の都合上、コマンドオプションのパラメータは英字小文字で
表記してある。
-------------------------------------------------------------------------------
-2
ZMSC3.Xの動作をZMUSIC.X Ver.2.0xの動作に近づける。
Ver.2.0とVer.3.0では機能拡張にともない以下の仕様変更がなされている。
・波形メモリの波形に対して振幅を与えることが出来る。(Ver.2.0では原波形の
再生のみ)
・PCMの周波数切り換えMMLコマンド@F5,@F6が別の周波数(MEASURE5参照)に割り当て
られた。(Ver.2.0では@F5が16bitPCM,@F6が8bitPCMをあらわす)
・絶対音長1の音符は通常の音符として扱われる。(Ver.2.0では絶対音長1の音符は
いかなる時もタイが点撫されて処理される)
本オプションを設定すると以上の点の動作をVer.2.0と同じように実行するように
なる。
通常は設定する必要はない。
-------------------------------------------------------------------------------
-A
音楽演奏割り込みにFM音源タイマAを使用する。デフォルトでは、MIDIインター
フェース装着時はMIDIタイマ(YM3802タイマ)を利用するが、未装着時はFM音源タイマB
を使用する。
FM音源タイマAはマスタークロック(*1)192時、テンポ77から300までを有効範囲とし、
かなり正確なテンポをキープ出来る。外部シーケンサ/リズムマシンとの同期演奏には
こちらのモードを奨励する。
よく分からない人は特に設定する必要はない。
(*1)マスタークロックについてはMEASURE3 zm_set_master_clock(),
MEASURE4 .MASTER_CLOCKを参照。
-------------------------------------------------------------------------------
-B
音楽演奏割り込みにFM音源タイマBを使用する。デフォルトでは、MIDIインター
フェース装着時はMIDIタイマ(YM3802タイマ)を利用するが、未装着時はFM音源タイマB
を使用する。
FM音源タイマBはマスタークロック(*1)192時、テンポ20から32767までを有効範囲と
する。
よく分からない人は特に設定する必要はない。
-------------------------------------------------------------------------------
-En
外部シーケンサ/リズムマシンとの同期演奏を行う。1台のX680x0をホストにした
MIDIシステムならばこのスイッチは設定する必要はない。複数のX680x0を
同期させて演奏させたり、外部のシーケンサとX680x0を同期させて演奏させる場合に
このコマンドオプションを設定する。(通常の使用で設定する必要はない)
同期演奏モードには、X680x0をホストに外部シーケンサを同期させるモードと
外部シーケンサをホストにX680x0をこれに同期させるモードの2つがあり、それぞれ
「X680x0ホストモード」「外部シーケンサ・ホストモード」と呼ぶ。
なお、2モードとも実行には最低1枚のCZ-6BM1相当MIDIインターフェースボードを
必要とする。
・X680x0ホストモード
コマンドオプション'-E'の後の数値を0あるいは省略した場合にこのモードに
なる。Z-MUSIC Ver.3.0が提供する音楽演奏機能に変わりはないが、演奏開始時に
スタートメッセージ$FA、演奏再開時にコンティニューメッセージ$FB、
演奏停止時にストップメッセージ$FCをMIDI-OUT端子より送信するようになる。
また、演奏データ中で指定したテンポに合わせてタイミングクロック$F8を
送信する。
・外部シーケンサ・ホストモード
コマンドオプション'-E'の後の数値を1~15に設定した場合にこのモードになる。
MIDIシステムでは各機器の同期を取るためにシステム・リアルタイム・メッセージ
のタイミング・クロック($F8)を使用している。$F8は四分音符あたり24個送信される
決まりがあり、このモードではX680x0に装着されたMIDIボードのMIDI-IN端子に
入力される$F8に従い、Z-MUSIC側のテンポを生成する。
すなわち、外部シーケンサ・ホストモードでは、Z-MUSIC側で設定したいかなる
テンポ設定も無効になり、テンポ(演奏速度)は完全にMIDI-IN端子に入力される$F8に
委ねられる。
コマンドオプションで設定する数値nは入力される$F8の何倍で音楽演奏割り込みを
発生させるかを指定するもの。通常は1で構わないが、2以上の値を設定し、
MUSICZ3.FNCコマンド「zm_set_master_clock( mstrclk )」(MEASURE3参照)
ZMSコマンド「.MASTER_CLOCK n」(MEASURE4参照)
をさらに高解像な値を設定することにより、より精度の高い演奏を行うことも
できる。
-------------------------------------------------------------------------------
-Fn
効果音モード用にトラックをn本確保する。効果音モードを利用する時は
nに1~65534を設定する。デフォルトではn=0で「効果音モードを利用しない」
設定となる。効果音トラックに何トラック割り当てても音楽演奏のトラック数の
最大数には影響無い。
例
A>ZMSC3 -F4 (効果音トラックに4トラック確保)
-------------------------------------------------------------------------------
-G
ZMSC3.X起動時のロゴ表示や常駐を報告するメッセージを表示しない。
-------------------------------------------------------------------------------
-H
簡易ヘルプを表示する。-Hでなく、-?としても同様の簡易ヘルプを表示する。
また、後述の-Jと併用して日本語簡易ヘルプを表示することも出来る。
-------------------------------------------------------------------------------
-In
MIDIインターフェースの配列を設定する。ZMUSIC Ver.3.0ではMIDIインター
フェースには絶対的なIDを以下のように定めてある。
ID インターフェース名
1 CZ-6BM1 1枚目 (CZ-6BM1とはシャープ純正MIDI I/Fのこと。
2 CZ-6BM1 2枚目 互換品も、説明の都合上これで表すとする)
3 RS232C-MIDI A
4 RS232C-MIDI B
-IオプションではこのIDを列記して、ZMUSICシステム上で扱うMIDIインターフェース
番号との対応付けを行う。IDを書いた順番にMIDIインターフェース番号が割り当て
られていく。例えば一番初めに書いたIDのMIDIインターフェースにはMIDIインター
フェース番号1が割り当てられる。
ID=4は後述のオプション-WでデュアルRS232C-MIDIに設定しないと利用出来ない。
例
A>ZMSC3.X -I3412
この例ではMIDIインターフェース番号1にRS232C-MIDI A,MIDIインターフェース番号2
にRS232C-MIDI B,MIDIインターフェース番号3にCZ-6BM1 1枚目,MIDIインターフェース
番号3にCZ-6BM1 2枚目を割り当てている。
-------------------------------------------------------------------------------
-J
出力するメッセージを日本語にする。
この設定を行って常駐すると常駐後のメッセージも全て日本語になる。
またZMSC3.Xのヘルプメッセージはデフォルトでは英語だが
A>ZMSC3.X -J -H
とすると日本語で表示させることが出来る。
-------------------------------------------------------------------------------
-N
初期化処理を簡略化する。この設定を行ってZMSC3.Xを常駐させると以後、
演奏開始時に最低限の初期化処理しか行わなくなる。ゲームなどのBGMを
機械語レベルで演奏制御する場合に、曲の変り目の処理を軽くする事が出来る。
通常は設定する必要はない。
-------------------------------------------------------------------------------
-P
ポリフォニックプレッシャーの送信を抑制する。
ZMSC3.Xでは同一ノート番号に対して異なるベロシティで発音要求がなされると
ポリフォニックプレッシャーを自動的に発進する。MMLでは例えば
C*0,48,110 C4,4,120
とするとベロシティ110のCとCに対してポリフォニックプレッシャー120が送信
される。このオプションを設定するとこのポリフォニックプレッシャーの送信を
行わなくなる。
通常は設定する必要がない。
-------------------------------------------------------------------------------
-R
常駐しているZMSC3.Xをシステムから削除する。コマンドラインから
常駐させた場合のみ有効で'CONFIG.SYS'から'DEVICE='で組み込んだ場合は
常駐解除はできない。
-------------------------------------------------------------------------------
-Sfilename
スタンダードMIDIファイル(MID,SMF)、PCMデータのコンフィギュレーション
ファイル(CNF)といったセットアップファイルを読み込みドライバ起動時に実行する。
ファイルネームの拡張子等の省略は認められない。
ここにZMDのファイル名を書けばZMSC3.X起動時に曲を演奏させることも可能。
コンパイラが現在分離してしまっている関係上、-SでZMSファイルを演奏させる
ことは出来ません。
例
A>ZMSC3.X -Smusic.zmd
-------------------------------------------------------------------------------
-W
RS232C-MIDIをデュアルRS232C-MIDIとして使用する。デュアルRS232C-MIDIモード
ではMIDIインターフェース2枚分としてRS232C-MIDIを利用することが出来る。
COME ON MUSIC社のMA01のようなRS232C MIDI変換アダプタをもちいて接続するので
はなく、Roland製RSC-15N(¥3,500)などのシリアルMIDIケーブルでこれでX680x0の
RS232CポートとMIDIモジュール側の「COMPUTER-IN」端子を接続して使用する。
このオプションを指定しないとシリアルMIDIケーブルで接続していたとしても
MIDI 1ポートとしてしかRS232Cを利用出来ない。
-------------------------------------------------------------------------------
-Xn
MIDIメッセージ$F7(EOX/エンド・オブ・エクスクルーシブ)メッセージを送信後、
n
──
60 秒
のウェイトを与える。デフォルトは3で通常は設定する必要はないが、
極端に応答の遅いMIDI楽器に対しては設定するとよい(U110/220,D70…など)。
-------------------------------------------------------------------------------
-Yn
RS232C-MIDIの転送速度をSCCの時定数で設定する。通常はMIDI規格の転送レート
である31,250bpsが設定される(-Y3と同じ)。無改造マシンの場合これに2をあたえると
39062.5bpsになる。小さい数値を与えると早い転送レートになるが通常は設定する
必要はない。ただしクロックアップ改造を施したマシンではこの設定を行う必要が
ある場合もある。
例
A>ZMSC3.X -Y2
-------------------------------------------------------------------------------
-Zfilename
filenameで与えられるADPCM BLOCK DATA「ZPD」をZMSC3.X常駐時に読み込む。
ファイル名拡張子を省略すると自動的に'.ZPD'が添付される。
例
A>ZMSC3.X -Zstandard.zpd
-------------------------------------------------------------------------------
2.3. ZMC.Xのコマンドオプション
[注意]
説明の都合上、見出しのコマンドオプションは全角英字になっているが
実際は半角(大文字/小文字いずれも可)を用いて指定する。
同じく説明の都合上、コマンドオプションのパラメータは英字小文字で
表記してある。
-------------------------------------------------------------------------------
-Cfilename1 filename2
filename1で表されるZMSファイルをZMDへコンパイルしfilename2で保存します。
filename2は省略可能で省略時はfilenam1に拡張子'.ZMD'を付けたファイル名で
保存される。
この'-C'オプションは記述しなくてもfilename1とfilename2を続けてコマンド
ラインの最後に記述されれば設定されたと見なされる。
例
A>zmc -c music.zms (music.ZMDが出力される)
A>zmc -c music.zms ABC (ABC.ZMDが出力される)
-------------------------------------------------------------------------------
-D
現在コンパイルしている行をリアルタイムで表示する。
このオプションを設定すると多少コンパイル速度が低下する。
-------------------------------------------------------------------------------
-En
エラーがn個発生した時点でコンパイル処理を打ち切る。デフォルトではエラー
発生個数に関わらず最後までコンパイルを行う設定になっている。
-------------------------------------------------------------------------------
-G
ZMC.X起動時のロゴ表示や常駐を報告するメッセージを表示しない。
-------------------------------------------------------------------------------
-H
簡易ヘルプを表示する。-Hでなく、-?としても同様の簡易ヘルプを表示する。
また、後述の-Jと併用して日本語簡易ヘルプを表示することも出来る。
-------------------------------------------------------------------------------
-J
出力するメッセージを日本語にする。
この設定を行って常駐すると常駐後のメッセージも全て日本語になる。
またZMC.Xのヘルプメッセージはデフォルトでは英語だが
A>ZMC.X -J -H
とすると日本語で表示させることが出来る。
-------------------------------------------------------------------------------
-L
ZMSC3.Xが既に常駐している場合、このコマンドオプションを設定してZMC.Xを
実行するとZMSC3.Xにリンク常駐し、コンパイラ機能を追加させることが出来る。
ZMSC3.Xにコンパイラ機能を持たせると、ZMSの演奏を
A>COPY filename.ZMS ZMS
といったファイルコピーコマンドで実行出来るようになる。また、ZP3.Rなどの
プレイヤーで演奏させる場合もコンパイラを呼び出す処理が省略出来るため、
演奏開始までの時間が短縮させることができる。
-------------------------------------------------------------------------------
-R
常駐しているZMC.Xをシステムから削除する。
-------------------------------------------------------------------------------
-T
デフォルトではコンパイル中にエラーが発生すると、そのエラー箇所を表示する
レポート機能が働くが、このコマンドオプションを設定すると、このレポート機能を
省略させることが出来る。
-------------------------------------------------------------------------------
-W
デフォルトではステップタイム等の計算で誤差が発生すると、警告を促すが、
このコマンドオプションを設定すると、これを省略させることが出来る。
-------------------------------------------------------------------------------
2.4. 環境変数について
環境変数'zmsc3_opt'と'zmc_opt'に通常よく設定するコマンドオプションを
予め設定しておくことが出来る。
例えば、常にエラーメッセージなどを日本語で表示させておきたい場合は
AUTOEXEC.BATなどに
SET zmsc3_opt=-J
と設定しておけば
A>ZMSC3.X
と実行しただけでも -J が追加された
A>ZMSC3.X -J
として実行される。同様に環境変数'zmc_opt'はZMC.Xに対してのコマンドオプション
設定を行うもの。
2.5. MPCM.Xについて
MPCM.Xは渡邊孝行氏制作のポリフォニックADPCMドライバでX680x0本体の改造を
せずにADPCM音を最大24和音、うち16音についてはリアルタイムに音程音量変換を可能
にする(*1)。
ZMUSIC Ver.3.0ではこのMPCM.Xを事前に常駐させておくことにより、ADPCM音源を
あたかもFM音源やMIDIのようなメロディ音源として扱うことが出来る。
ポリフォニック発音をさせる場合や、メロディなどを演奏させる場合は
多大なCPUパワーを消費する。
以下にMPCM.Xが持つ代表的な機能を挙げる
1. 音楽演奏用16チャンネル、効果音用8チャンネル、合計24音同時発音可能。
2. 音楽演奏用16チャンネルはオクターブ-1のCからオクターブ9のGまで
半音の1/64単位の解像度で音程を変化させて発音させることが出来る。
ADPCM音声に対してビブラートやポルタメントといったピッチエフェクトを
掛けることも可能。
3. 音楽演奏用16チャンネルは音量を0-127(原音は64)まで変化させることが出来る。
ADPCM音声に対してトレモロやエンベロープ変化などの音量エフェクトを掛ける
ことも可能。
(*1)ZMUSIC Ver.2.0以前では江藤啓氏制作のPCM8.Xを標準のポリフォニックADPCM
ドライバとしてきたが、ZMUSIC Ver.3.0ではこのMPCM.Xを標準のものとしている。
またZMUSIC Ver.3.0ではPCM8.Xを使用することは出来ない。
2.6 ZMUSIC Ver.3.0におけるファイルの検索プロセス
ZMUSIC Ver.3.0では、カレントよりファイルが見つからない場合は環境変数
'zmusic_???'に書かれたパスにしたがってファイルを検索する。
???の部分にはファイルの拡張子が対応する。例えばZMSファイルを読み込む場合は
環境変数'zmusic_ZMS'に書かれたパスを検索する。ファイル名に与えた拡張子が
たとえ小文字のzmsでも参照される環境変数は'zmusic_ZMS'である点に注意。
なお、ZMUSIC Ver.3.0では一部の例外を除いてファイルを読み込む時には必ずこの
ルールに従うので、ハードディスク上の多くのディレクトリに分散されて必要ファイル
が収められている時は、なるべく設定しておいたほうがよい。
例
set zmusic_ZPD=a:\drums;a:\pcmfiles;b:\rythm\snare;
↑小文字のみ可
上の例ではZPDファイルを探す場合に、a:\drums a:\pcmfiles b:\rythm\snare
の3つのディレクトリを順番に検索するようになる。
なお、環境変数はHuman68kの仕様から255文字を超えて設定することはできない。
255文字を超えて検索パスを記述したい場合には、環境変数'zmusic_???0'~
'zmusic_???9'に分けて設定する。この時、環境変数'zmusic_???'は木でいう幹に、
環境変数'zmusic_???0'~'zmusic_???9'は枝の扱いになる。幹から枝への参照は、
環境変数'zmusic_???'中に'/'とその後ろに補助環境変数'zmusic_???0'~
'zmusic_???9'までを表す数値'0'~'9'を書き、さらにその後ろにベースとなるパスを
書くことによって指定できる。
今ここで
ZMUSIC Ver.3.0標準のADPCMライブラリのディレクトリ名である
BASS, SNARE, TOMTOM, CYMBAL, ETHNIC, EFFECTS, ACCENT, ORCH, RAP, ADDITION
を検索させる場合を考えるとする。各ファイルのファイル名拡張子は'PCM'であるため
設定する環境変数は'zmusic_PCM'および、'zmusic_PCM0'~'zmusic_PCM9'ということに
なる。
例えば、今、これらのディレクトリが、FドライブのADPCM_LIBの下に存在するとき
SET zmusic_PCM=/0 F:\ADPCM_LIB;
↑↑zmusic_PCM0を指し示す数値
補助環境変数の検索を指示するコマンド記号'/'。('-'で代用も可能)
SET zmusic_PCM0=BASS;SNARE;TOMTOM;CYMBAL;ETHNIC;EFFECTS;ACCENT;ORCH;RAP;ADDITION
と指定すればよいことになる。なお、この設定で
F:\ADPCM_LIB\BASS, F:\ADPCM_LIB\SNARE, F:\ADPCM_LIB\TOMTOM,
F:\ADPCM_LIB\CYMBAL, F:\ADPCM_LIB\ETHNIC, F:\ADPCM_LIB\EFFECTS,
F:\ADPCM_LIB\ACCENT, F:\ADPCM_LIB\ORCH, F:\ADPCM_LIB\RAP,
F:\ADPCM_LIB\ADDITION
を検索するようになる。補助環境変数を用いた場合でも、環境変数'zmusic_PCM'は
通常の検索パス表記との混在は可能。
例
SET zmusic_PCM=/0 F:\ADPCM_LIB;A:\ZPD_DATA;A:\PCMFILES;F:\BOSPCM;
SET zmusic_PCM0=BASS;SNARE;TOMTOM;CYMBAL;ETHNIC;EFFECTS;ACCENT;ORCH;RAP;ADDITION
この例では
F:\ADPCM_LIB\BASS, F:\ADPCM_LIB\SNARE, F:\ADPCM_LIB\TOMTOM,
F:\ADPCM_LIB\CYMBAL, F:\ADPCM_LIB\ETHNIC, F:\ADPCM_LIB\EFFECTS,
F:\ADPCM_LIB\ACCENT, F:\ADPCM_LIB\ORCH, F:\ADPCM_LIB\RAP,
F:\ADPCM_LIB\ADDITION
を検索した後、A:\ZPD_DATA A:\PCMFILES F:\BOSPCMを検索する。
なお、ZMUSIC Ver.2.0から利用することが出来た環境変数'zmusic'の検索プロセスは
そのまま利用出来るが、優先順位は環境変数'zmusic_???'よりも低く設定されている。