-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathzm01.txt
304 lines (148 loc) · 13.2 KB
/
zm01.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
MEASURE 1
イントロダクション
ここではZMUSICシステムの概要を簡単に説明します。
1.1. はじめに
コンピュータミュージックを楽しむには幾つかの方法があります。
1. 実際に弾いたものをコンピュータ、シーケンサのメモリに記憶しておくもの
2. コンピュータ、シーケンサのメモリに直接演奏データを書き込んでいくもの
3. 1. と2. の複合的な方法
などです。2.はコンピュータのキーボードを叩くことから「打ち込み」と
呼ばれます。3.はつまり、人間が弾いたものを後でコンピュータを用いて
修正するといったものです。
ちょっと昔までは3.の方法が圧倒的にメジャーでしたが、音源の進歩と
ミュージック・ツールの進化により最近は2.の方法もメジャー化してきています。
最近は譜面も起こさずに直接「打ち込み」を始める作曲者も少なくないようですし、
スタジオのマニピュレータ(平たくいえば打ち込み人)の中には実際に弾いた
ものよりも人間臭さを表現する人もいるとききます。
さて、本書でお話しするのは2.の方法です。2.の方法の魅力といえば、
自分が楽器の演奏が出来なくてもイメージ通りの演奏が可能という点でしょう。
さらに、一度仕上げた曲は、ディスクなどの記憶装置に保存しておけばいつでも
再現可能というのもこの方法の魅力です。
打ち込みの方法にも実は色々な方法があります。一番原始的なものとしては
完全な数値入力です。音階、発音時間、など全てをこまごまと入力していくものです。
最近は「ステップ入力」と呼ばれます。数年前にMZやPC8001用に出ていた
ローランドCMU800シリーズはこの方法でした。これを進化させものが
譜面入力による「打ち込み」です。要するに五線譜に音符を置いていくタイプの
ものですね。楽器の演奏はおろか譜面を読むことが出来ない人にでも簡単に音楽を
作ることが出来るため初心者層には圧倒的な人気を誇ります。また印刷機能が
充実していれば美しい譜面を得ることが出来ますので、プロでもこのタイプを
使っている人が多くいます。
さて、「ZMUSIC」では現在(注)MMLという「打ち込み」方式を
採用しています。これはいわば「音楽記述言語」というもので
「音楽をプログラム」するというイメージが正しいでしょう。完全な数値入力よりは
ずっとドキュメント性が高い上、入力する量も少ないのでパソコンを基盤として
音楽を楽しむ人にはピッタリのものといえます。欠点としては、小中学校程度の
音楽知識が必要なこと、ある程度コンピュータを扱える人(DIRやCOPYが
分かればOK!)でないと駄目なこと、ドキュメント性が譜面入力よりは低いこと、
などです。まあ、ドレミが読めて、ディスクをフォーマットしたことが
あれば素質十分です。
MMLの利点としては、慣れればあらゆる方式よりも高速に一曲を仕上げることが
出来ること、細かいニュアンスなどに凝ることが出来るなどが挙げられます。
また、移植性が高い点も見逃せません。殆ど方言のような感覚で他の機種の
演奏データや他の音楽ドライバ用のデータを、自分の使っているMMLに
修正利用することが出来るのです。
さあ、「ZMUSIC」を懸け橋にしてあなたもコンピュータ・ミュージックの
世界に浸りませんか。
(注)今後、違った入力方式に対応した支援プログラムが発表されれば、
別の入力方式(例えば譜面入力方式)も可能です。
1.2. ZMUSIC.Xとは
ZMUSIC.XとはX68k本体付属のOPMDRV.Xを改造したりするもの
ではなく、全く新しくゼロから開発されたミュージックプログラム開発言語です。
X68kの内蔵音源であるFM音源8声とADPCM1声(PCM8.X (C) H.ETOHを
使用すれば8声まで)、MIDIインターフェースが接続されていれば
MIDI楽器も同時にコントロールする事が出来ます。
一般の他のドライバでは1つのMIDI楽器をX68kの外部音源という感じで
扱っていましたが「ZMUSIC.X」ではX68kをホストに複数の
MIDI楽器をコントロールする事が出来るように設計されているのでどんどん
自分のMIDIシステムを広げていくことが可能です。
ここでZMUSIC.Xの特長を列挙してみます。
1. OPMDRV.Xに上位コンパチ
2. FM音源,ADPCM,MIDI楽器を同時に演奏可能
3. もちろんMIDI楽器を持っていない人でも多彩なコマンドを内蔵音源に
対して使用可能
4. 汎用トラックを80本持ち、その内最大32トラックを同時に演奏可能
5. ADPCMを音階MMLでコントロール可能。独自のADPCMドライバ搭載
6. ポルタメントやオートベンド、和音やLFOなどの特殊コマンド系が
FM/MIDIの両方で使用可能
7. ADPCMコンフィギュレーションファイルで、ADPCMデータの音程と
ボリュームが変更可能。合成、エンベロープの変更も可能
8. 任意の時間に演奏中の任意のトラックに任意の演奏データを割り込ませて
演奏することが可能(効果音モード)
9. 演奏処理がOPMDRV.Xの平均3倍以上高速。さらにテンポずれが
起こりにくい設計
10.MT32の他にU220/M1/SC55等に対応した楽器個別の
コマンドを装備
11.MIDI楽器側の音色や設定をファイルに吸い出す機能を装備
12,オブジェクトレベルの演奏データを得ることが可能(コンパイル機能)
13.あらゆる命令が機械語レベルで操作可能。ゲーム等のBGMドライバとして
威力を発揮
14.専用A/Dコンバータによってサンプリングされた高音質のADPCMデータ
ライブラリの標準装備
15.全情報公開。ライセンスフリー
16.PCM8.X (C)江藤 啓に完全対応。ADPCM音を最大同時に8声まで
シーケンス可能
17.複数のX68000による同期演奏
とまあ、大袈裟なところもありますがこんな感じてす。
同人ソフトなどの製作者やグループにとっては8, 9, 12, 13, 15辺りが
魅力でしょうか。
1.3. 著作権について
法律上、日本では著作権の放棄ができませんので、著作権は作者西川善司に
保留されます。しかし、プログラムの性質上、「ZMUSIC.X」のオリジナルを
開発した私西川善司は「ZMUSIC.X」及びこれらを支援するプログラム
(サブルーチンを含む)全ての使用権に関するライセンス権を放棄します。
よってとくに断らずに商的利用が出来ます。つまり市販だろうが同人だろうが勝手に
「ZMUSIC.X」を組み込んだソフトを売ってもいいということです。
ただし、一つだけ守って欲しいことがあります。それは「ZMUSIC.X」の
改造についてです。改造は勿論各自に自由で行って構わないのですが、
データの完全な互換性が保持されないような改造を施した際には
バージョンID番号を$F0以上にして欲しいのです(オリジナルは$20です。
ソースリストZMSC.HAS参照)。また、オリジナルのZMUSIC.Xで演奏できない
データフォーマットにした場合はファイルの拡張子も変更しておいて下さい。
これは混乱を防止するためです。今後のバージョンアップ版との兼ね合いも
ありますし、とにかく改造を施したものではオリジナルバージョン用のデータを
頭っからはじいて欲しいのです。是非ご協力下さい。
移植に関しても自由に行って構いません(ただし、完全にコンパチでない場合は
バージョン番号をやはり$F0以上にして下さい)。移植版をOh!X編集部へ
送ってくれればUSER’S WORK等のコーナーで紹介したいと思います。
1.4. ZMUSIC.Xの概要(ZMD,ZMSとは)
ZMUSIC.X上で演奏するデータを作るためには2通りの開発方法が
あります。
1つは「MUSICZ.FNC」を組み込んだX-BASIC上で
開発する方法です(MEASURE3参照)。基本的には「MUSICZ.FNC」に
設けられたZMUSIC.X制御命令を記述していくことにより演奏プログラムを
作成していきます。同じ処理を繰り返したい時は「for~next」、条件分岐を
させたいなら「if ~ then ~」…‥というようにX-BASICに用意された
多彩な命令を折り混ぜて開発を行うことができます。また、文字変数などを
うまく使えば少ない手間で長い曲も作れそうです。さらに、曲データ以外の
音楽関係のツール、たとえば音色エディタ等も作ることができるでしょう。
2番目の方法はCOMMAND.X上からエディタを使ってMMLファイルを作成する
方式です(MEASURE4参照)。ZMUSICシステムではこのMMLファイルを、
拡張子'.ZMS'を付けることを前提に特にZMSファイルと呼ぶことにします。
この形式ではZMSコマンド(MEASURE4参照)と呼ばれるZMUSIC.X制御命令を
一行一行に記述していくことで演奏プログラムを作成していきます。
X-BASICのような制御文はないので一見開発が不便そうですが、
エディタに備えられたマクロ機能や複写機能を駆使すればBASIC以上の
開発環境になりえます。また、X-BASICで作られた演奏プログラムも
このZMSファイルに変換することができます。これには'm_switch()'命令を
使用します(MEASURE3参照)。
実はX-BASICで記述された演奏プログラム、エディタによって記述された
ZMSファイルがZMUSIC.Xへ受け渡されるとZMUSIC.Xは内部で
$47,$30,$30…のような16進数のデータ列で構成されたオブジェクトに変換しています。
演奏しながらいちいち命令語を認識していたのでは処理が追い付きませんから、演奏直前に
必要な計算を全て済ませてしまうわけです。X-BASICで記述された
演奏プログラム、エディタによって記述されたZMSファイルを演奏する時、
ほんの一瞬ですが待たされますが、この時そのオブジェクト・データへ変換して
いるのです。ZMUSICシステムではこのオブジェクト・データを特に
ZMDデータと呼ぶことにします。
通常はZMDデータを意識する必要はないのですが、あえてこのZMDデータを
取り出す方法があります。ZMUSIC.Xに備わっているコンパイル機能がそれです。
具体的には
A>zmusic -c ZMSファイル名
のようにします(ZMUSIC.XはアセンブラやCコンパイラのようにも機能します)。
するとZMSファイルの主ファイル名に拡張子'.ZMD'を添付したファイルが
生成されます。これをZMUSICシステムでは特にZMDファイルと呼びます。
このZMDファイルも演奏可能で、その際は当然ZMDデータに変換する作業が
ありませんので全く待たされずに演奏が開始されます。高速応答が要求される場合
(たとえば自作ゲームに曲を入れる場合など)は演奏データをZMDデータで
管理した方がよいでしょう。ただし、データや環境の変更が困難ですので、
音楽データの配布を目的とした場合はZMDデータ形式は避けるべきです。