-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathzm02.txt
497 lines (247 loc) · 17.7 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
MEASURE 2
ZMUSIC.Xのオプション・スイッチ解説
ここではZMUSIC.Xのコマンドオプションについて解説します。
2.1. はじめに
ZMUSIC.Xというプログラムには大きく分けて2つの機能が
ある。1つはシステムに常駐して音楽演奏をする機能、もう1つは前章で
述べたZMDファイルの生成機能である。よってZMUSIC.Xの
コマンドオプション/コマンドスイッチも大きく2つの機能に分けられる。
1つは常駐する際のパラメータとしての機能、もう1つは演奏データを
コンパイルする際にこれを支援するものである。
各スイッチは「/」「-」の後ろにこれから解説するコマンドスイッチの
アルファベットを記述し、さらに必要であればその直後に数値等のパラメータを
記述することによって指定する。具体的には
A>zmusic -または/[各スイッチの英数字][パラメータ]
のようになる。スイッチは(例外を除いて)順不同でいくつでも記述することが
できる。また、
A>zmusic -h または -?
でコマンドスイッチの簡単な説明を見ることができる。
それではそれぞれのスイッチを解説することにする。
2.2. ドライバ組み込み時のスイッチ
-A
割り込みにタイマAを使用する。デフォルトではタイマBを使用する。
タイマAはテンポ77から300までを有効範囲とし、かなり正確なテンポを
キープ出来る。外部シーケンサ/リズムマシンとの同期演奏にはこちらの
モードを勧める。
よく分からない人は特に設定する必要はない。
-Bファイルネーム
ADPCMブロックデータ(ZPDデータ)をドライバ起動時に読み込む。
後述の'-P'スイッチでADPCMバッファのサイズを指定していない場合は自動的に
そのブロックデータのサイズがバッファサイズになる。ファイルネームの
拡張子を省略すると自動的に'.ZPD'が添付される(MEASURE6参照)。
-E
外部シーケンサ/リズムマシンとの同期演奏を行う。X68kをホストにした
MUSICシステムならばこのスイッチは設定する必要はない。複数のX68kを
同期させて演奏させるにはこのスイッチを設定すること。
具体的には、演奏開始時にスタートメッセージ$FA、演奏再開時にコンティニュー
メッセージ$FB、演奏停止時にストップメッセージ$FCを送信するようになる。
また、演奏データ中で指定したテンポに合わせてタイミングクロック$F8を
送信する。
-G
ZMUSIC.X起動時にロゴや常駐を報告するメッセージを表示しない。
-M
MFPの多重割り込み対応モードにする。ラスタースクロール等の処理を
ジャマしない。高度な割り込みを駆使したアプリケーションと併用する場合には
このスイッチを指定すると良いだろう。通常やよく意味の分からない人は
設定する必要は全くない。
-N
初期化なしモードにする。このスイッチを指定してZMUSIC.Xを
常駐させると以後、演奏データの変り目等で楽器等やワークの初期化を
行わない。これはゲーム等のBGMを機械語レベルで演奏する時に
曲の変り目の処理を軽くするためのものである。通常は設定する必要は
ない。
-On
PCM8.Xが先に組み込んであることが前提のスイッチ。従来の
ADPCM1声の曲データをPCM8.Xを用いてむりやりポリフォニックで
鳴らしてしまおうというものである。ただし、本来のPCM8モードとは
違うものなので注意すること(2.5.参照)。パラメータのnは音楽演奏に8声ある
ADPCMチャンネルを何声音楽用に確保するかを設定するものである。
nは1≦n≦8でn省略時は自動的にn=8が採択される。余ったチャンネル数は
効果音専用とみなして音楽演奏には使用しない。例えば
A>zmusic -o6
とした場合、BGM演奏用にチャンネル1~6をBGM専用にし
チャンネル7,8を効果音専用とする。
-Pn
ADPCMデータバッファとしてnキロバイト確保する。'-P'スイッチを
設定しないとADPCMバッファサイズは256となる。0と設定した場合は、
ADPCMに関係するコマンドは無効になる(MEASURE6参照)。
-R
常駐しているZMUSIC.Xをシステムから削除する。コマンドラインから
常駐させた場合のみ有効で'CONFIG.SYS'から'DEVICE='で組み込んだ場合は
常駐解除はできない。
-Sファイルネーム
MIDIのダンプデータ、ADPCMデータのコンフィギュレーションファイル
などのセットアップファイルを読み込みドライバ起動時に実行する。
ADPCMコンフィギュレーションファイル中、データの加工を行うように
設定してある場合には必要分のワークを確保しないといけない(MEASURE6参照)。
ファイルネームは拡張子等の省略は認められず、さらにMIDIダンプデータは
拡張子'.MDD'の時のみ有効である。
さて、ここに演奏データのファイル名を書けばドライバ起動時に曲を演奏させる
ことも可能。もちろんその際、ADPCMを使用していたりするならば
それらに関係するバッファも確保しなければならない。
例
A>zmusic -bdrum.zpd -w30 -p100 -s music.zmd
-Tn
#n
トラックバッファをnキロバイト確保する。デフォルトでは128キロバイト確保する。
サイズの大きいデータを演奏する際には状況に応じて設定すべきである。
-Wn
ワークエリアとしてnキロバイト確保する。ワークエリアはADPCMデータの加工や
コンフィギュレーションファイルのバッファ、MIDI楽器の設定の取り込み用
バッファ、波形メモリバッファと多目的に使用されるため、作業内容に応じて
設定すべきである。ADPCMのデータ加工用のワークとして設定する場合の目安は、
加工するデータのうち最長のものの長さを4倍した大きさである。
-Xn
EOX(エンド・オブ・エクスクルーシブ)メッセージを送った後、
n
──
60 秒
のウェイトを与える。デフォルトは3で通常は設定する必要はないが、
極端に応答の遅いMIDI楽器に対しては設定するとよい(U110/220,D70…など)。
2.3. CONFIG.SYSからの組み込み
ZMUSIC.Xはデバイスドライバでもあるので、もちろん
CONFIG.SYSから組み込むことが出来る。書式は他のデバイスドライバ
同様に
DEVICE=ZMUSIC.X オプションスイッチ…
のようにする。
また
DEVICE=ZMUSIC.X -s曲ファイル名
のようにすればデバイスドライバ組み込み時から曲を流すことが出来る。
もちろん演奏に必要なバッファは取る必要がある。
2.4. コンパイル支援系
-C ファイルネーム1 ファイルネーム2
ファイルネーム1をコンパイルし生成されるオブシェクトをファイルネーム2で
セーブする。ファイルネーム2は省略可能で省略時はファイルネーム1に
拡張子'.ZMD'を付けたファイルネームでセーブされる。
例
A>zmusic -c music.opm → music.ZMD
この’-C’スイッチは必ずコマンドラインの最後に書かなければならない。
'-C'スイッチの後ろに書かれたスイッチは無視される。
例
A>zmusic -c music.opm -w100 ←'-w100'は無視される。
また、大文字の’C’でこのスイッチを設定した場合は最適化処理
(空トラックの削除処理)を行なわずに動作を行なう。
-Q ファイルネーム1 ファイルネーム2
コンパイル後その演奏データのトータルステップカウントを計算する。
MML命令[do]~[loop]以外(例えば[coda]~[tocoda]など)を用いて無限ループを
構成していると半永久的に計算を繰り返してしまうので注意。チェックサム的な
役割を果たすためOh!Xなどの雑誌メディアに投稿する際はこのトータルステップ
カウントを原稿等に添えること。
-Tn
#n
トラックバッファを確保する。デフォルトで128キロバイト確保するが
コンパイル中'out of memory'が出た時設定すると良いだろう。常駐時と
同じイメージでコンパイルが行えるよう敢えてこういう仕様にした。
-Wn
コンパイルされたデータを整理する際にこのエリアを使用する。デフォルトで
128キロバイト確保しているので殆どの場合は設定する必要はない。
極端に長い曲をコンパイルする際には設定の必要がある。
2.5. PCM8.Xモードについて
PCM8.Xとは江藤 啓氏により作成されたX68k本体の改造をせずに
ADPCM音を8和音までリアルタイムに発音できるアプリケーションである。
このPCM8.Xを事前に組み込んでからZMUSIC.Xを組み込むと
ZMUSIC.Xは自動的にPCM8.Xモードで動作する。
ZMUSIC.Xを組み込んだ後にPCM8.Xを組み込むことはできない(
エラーが発生する)。
さて、ZMUSIC.XのPCM8モードには2通りある。
1つはADPCM音源を8つのほぼ独立したチャンネルとして使用する
モードである。このモードにするにはZMUSIC.Xを組み込む時に特別な
スイッチ等を設定する必要はない。このモードを特にPCM8独立チャンネル
モードと呼ぶことにする。
もう1つはPCM8.Xを組み込んだあと'-O'スイッチをつけて
ZMUSIC.Xを組み込むと設定されるモードである。これは
PCM8.X用ではない曲、つまりADPCM1声用の曲データのADPCM音を
むりやりポリフォニックに演奏するモードである。例えばシンバルを
叩いた後このシンバルが鳴り終らないうちにスネアを叩いたとすると、
ADPCM1声の従来の曲ではシンバルの音がブツリと切れてスネアの音に
切り替わっていた。ここをブツ切りにしないで(PCM8.Xを用いて)
ちゃんと前後の音を重ねて演奏してしまおうというのがこのモードである。
このモードはPCM8ポリモードと呼ぶことする。
PCM8独立チャンネルモード時の具体的な操作方法に関しては後述する。
2.6. 3タイプのZMUSIC.X
ZMUSICには
●シャープ純正(または互換)のMIDIインターフェースに対応した標準的な
UNIVERSALバージョン
●RS232Cポートを使ってMIDI出力を行うRS232Cバージョン
●ネオ・コンピュータ・システム(NCS)製のサブボード、ポリフォンを使用して
MIDI出力を行うPOLYPHONバージョン
の3つのタイプが存在する。
3タイプとも内蔵音源(FM音源、ADPCM音源)の制御部分は、全く同じ
プログラムで構成されており、違うのはMIDI出力に関する点のみである。
3タイプともX68000/X68030の両方に対応している。
●RS232Cバージョン
RS232CバージョンはX68本体後面パネルのRS232C端子に市販の
RS232C-MIDIアダプタ(例:COME ON MUSIC製 MA01 ¥10,000)を装着し、
これを使用してMIDI制御を行うZMUSICである。標準のUNIVERSAL
バージョンとは以下の相違点がある。
・MIDI出力の処理速度がUNIVERSALバージョンと比べて少し遅い。
・純正MIDIインターフェース・ボードを装着していてもRS232C-MIDIを
強制的に選択する。
・外部同期モード(オプション'-E')がない。
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ RS232C版の注意 ┃
┃ ┃
┃ RS232C版はRS232C関連の割り込みベクタ等を占有する ┃
┃ ┃
┃アプリケーションとは共存できません。(RSDRV.SYSなど) ┃
┃ ┃
┃ ベクタが占有されている時は ┃
┃ ┃
┃The interrupt-vector has already been occupied by some other applications. ┃
┃ ┃
┃というエラーメッセージが表示され、ZMUSICは起動されません。 ┃
┃ ┃
┃ベクタを占有しているアプリケーションを一度解除してからもう一度 ┃
┃ ┃
┃ZMUSICを起動してください。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
●POLYPHONバージョン
POLYPHONバージョンはサブボード「ポリフォン」をポリフォンに同梱の
プログラム「PCM8SB.X」で制御し、MIDI出力を行うZMUSICである。
ZMUSICの組み込みよりも先にポリフォンに同梱のプログラム「PCM8SB.X」を
組み込まなくてはMIDI制御が行えない。PCM8SB.Xを組み込まずにZMUSIC
のみを組み込んだ場合は内蔵音源の制御のみ可能となる。標準のUNIVERSAL
バージョンとは以下の相違点がある。
・MIDI出力の処理速度がUNIVERSALバージョンと比べて少し遅い。
・MIDIインターフェース・ボードを装着していてもPOLYPHON-MIDIを
強制的に選択する。
・ポリフォン-MIDIによるMIDI-INはサポートされない。
・外部同期モード(オプション'-E')がない。
2.7. 機能縮小版ZMSC.X
MMLコンパイル処理部分などを省いたZMD再生専用のZMUSICが、
ZMSC.Xである。ZMSを扱う機能は全く持っていないため、ZMSファイルを
演奏したりすることはできない。しかし、常駐サイズはZMUSIC.Xの半分程度で
済むため、ゲームやその他のアプリケーションから使用する場合には適している。
ZMUSIC.X同様にUNIVERSALバージョン、RS232Cバージョン、
POLYPHONバージョンの3タイプがある。
以下にZMUSIC.XとZMSC.Xとの相違点を述べる。
・ファンクション$01 m_alloc
ファンクション$02 m_assign
ファンクション$03 m_vget
ファンクション$06 m_trk
ファンクション$07 m_free
ファンクション$3e set_fm_master_vol
はなんの機能も実行しない(削除されている)。
ファンクション$3c get_play_workは、戻り値のd0.lが意味をなさなくなる
(a0.lにはZMUSIC.X同様の正しい戻り値を返す)。
・ファイル名'OPM'への出力による制御も行なえるが、ZMDまたはZPD以外を
出力した場合は何の機能も実行しない(ZMSコマンドの使用もできない)。
・ファイル名'MIDI'によるMIDI楽器のデータ吸い取り機能はそのまま使用できる。
MDDの転送も行なえる。
・IOCS _OPMDRVによるコントロールはできない。TRAP #3でのみファンクション
コールを実行できる。
・ZMDの演奏やZPDの変更登録はZMUSIC.X同様にZP.Rで行なえる。
ただし、ZMSの再生は行なえない。
・MUSICZ.FNCは使用できるが
'm_alloc'
'm_assign'
'm_vget'
'm_trk'
'm_trk2'
'm_free'
'fm_master'
'm_debug'
は、なんの機能も実行しない(削除されている)。
・デフォルトでトラックバッファを32キロバイト、ワークエリアを0キロバイト、
ADPCMバッファを256キロバイト確保して常駐する。ZMUSIC.Xとは
デフォルトが違うので注意すること。