-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathzm03.txt
1757 lines (1386 loc) · 78.9 KB
/
zm03.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 3
X-BASIC用外部関数MUSICZ.FNC
X68k本体付属のBASIC「X-BASIC」からZMUSICを
使う方法について述べます。
3.1. はじめに
BASICからZMUSICを使うには外部関数「MUSICZ.FNC」を
組み込んだX-BASICを起動しなければならない。具体的には、
BASICディレクトリ中のBASIC.CNFの内容のうち
FUNC=MUSIC
の部分を
FUNC=MUSICZ
のように変更し、さらにこのディレクトリにMUSICZ.FNCをコピーする。そして
A>basic
でX-BASICを起動すればよい。しかし、各自のシステムの環境によっては
多少の食い違いもあるのでよく分からない人は「BASICマニュアル」を参照すること。
また、1990年10月号のOh!Xに発表された「ZMUSIC.FNC」とは
全く無関係である。このZMUSICシステムは「ZMUSIC.FNC」とは
全く関係ない。互換性もない。
MEASURE1で述べたようにZMUSIC.Xは一部を除いて
X68k本体付属の「OPMDRV.X」と「MUSIC.FNC」との互換性を
保っている。このことからMUSICZ.FNCのコマンドの一部は
MUSIC.FNCのものと仕様が同じである。そのため、ここでは
「X-BASICマニュアル」にあるコマンドも重複して説明がなされている。
しかし、MUSICZ.FNCでは仕様が拡張変更されたものもあるので
注意すること。
また、従来のMUSIC.FNCでもZMUSICは操作可能である。
その場合もちろんZMUSIC.Xの100%の性能を発揮することは出来ない。
逆にMUSICZ.FNCでOPMDRV.Xは操作出来ないので注意すること。
3.2. コマンドの使用にあたっての注意
MIDI楽器専用のコマンドは場合によっては楽器のメモリを書き換える。
よく楽器側のマニュアルを読んでから実行すること。楽器側に大切なデータが
存在する場合は、楽器のメモリをファイルに保存しておくとよい(MEASURE9参照)。
3.3. MUSICZ.FNC命令一覧
●初期化
--------------------------------------------------------------------------------
関数名 m_init()
機能 音源の初期化、ドライバのワークの初期化
引数 なし
戻り値 なし
備考 MIDIボード装着時MIDI楽器に対して以下のコマンドメッセージを送出する。
システムリセット($FF)
リセットオールコントローラーズ($Bn,$79,$00)
オムニモードオン($Bn,7D,$00)
モノモードオフ($Bn,$7F,$00)
ローカルオン($Bn,$7A,$7F)
マスターチューン・微調整=中央($Bn,$65,$00,$Bn,$64,$01,$Bn,$06,$40,$Bn,$26,$00)
マスターチューン・コース=中央($Bn,$65,$00,$Bn,$64,$02,$BN,$06,$40)
--------------------------------------------------------------------------------
関数名 m_count(n)
機能 全音符の絶対音長指定
引数 n=全音符の絶対音長(char:1≦n≦254)
戻り値 なし
備考 'm_init()'でデフォルト値である192が設定される。
通常は設定する必要無し。
ゲーム用のBGM等を作成する時など、割り込み回数を減らす目的で使うとよい。
192, 144, 128, 96といった数値が一般的。
--------------------------------------------------------------------------------
●トラック確保/チャンネルアサイン
--------------------------------------------------------------------------------
関数名 m_alloc(tr,size)
機能 トラックバッファの確保
引数 tr:トラック番号(char:1~80)
size:バッファサイズ(int:100~65535)
戻り値 なし
--------------------------------------------------------------------------------
関数名 m_assign(ch,tr)
機能 チャンネル番号chをトラック番号trに割り当てる
引数 ch:チャンネル番号(char:1~32)
tr:トラック番号(char:1~80)
戻り値 なし
備考 複数のトラックを1つのチャンネルに割り当てることも出来る。
チャンネル番号は後述の'm_ch()'コマンドによって対象デバイスが変化する
ただし、PCM8.X組み込み時は'm_ch()'によらずチャンネル番号26~32が
ADPCM2~8になる。
--------------------------------------------------------------------------------
関数名 m_assign2(ch,tr)
機能 チャンネル番号chをトラック番号trに割り当てる
引数 ch:チャンネル番号(str:"FM1~8","MIDI1~16","ADPCM","ADPCM1~8")
tr:トラック番号(char:1~80)
戻り値 なし
備考 1つのチャンネルを複数のトラックに割り当てることが出来る。
例 m_assign2(1,"fm1")
m_assign2(1,"midi10")
"adpcm2~8"が実用できるのはPCM8モード時のみである。
--------------------------------------------------------------------------------
関数名 m_ch(dv)
機能 ベースチャンネルを変更する
引数 dv:デバイス名(str:"FM" or "MIDI")
戻り値 なし
備考 "FM"を設定するとチャンネル番号1~8がFM音源, 9がADPCMチャンネル1
10~25がMIDIになる。
"MIDI"を設定するとチャンネル番号1~16がMIDI17~24がFM音源,
25がADPCMチャンネル1になる
また、PCM8.X組み込み時は'm_ch()'によらずチャンネル番号26~32が
ADPCM2~8になる。
例 m_ch("midi")
m_ch("fm")
--------------------------------------------------------------------------------
関数名 m_free(tr)
機能 トラックバッファのフリーエリアを得る
引数 tr=トラック番号(char:1~80)
戻り値 int
--------------------------------------------------------------------------------
●演奏制御
--------------------------------------------------------------------------------
関数名 m_play(tr1,tr2,…,tr10)
機能 演奏の開始
引数 tr1~10:トラック番号(char:1~80)
全て省略すると全トラックを演奏する
戻り値 なし
--------------------------------------------------------------------------------
関数名 m_stop(tr1,tr2,…,tr10)
機能 演奏の停止
引数 tr1~10:トラック番号(char:1~80)
全て省略すると全トラックの演奏を停止する
戻り値 なし
--------------------------------------------------------------------------------
関数名 m_cont(tr1,tr2,…,tr10)
機能 演奏の再開
引数 tr1~10:トラック番号(char:1~80)
全て省略すると全トラックの演奏を再開する
戻り値 なし
--------------------------------------------------------------------------------
関数名 m_solo(ch1,ch2,…ch10)
機能 演奏チャンネルのマスク(その1)
引数 ch1~10=チャンネル番号(char)
戻り値 なし
備考 指定したチャンネルのみを演奏しそれ以外のチャンネル演奏を一時停止する。
演奏中に実行可能。またパラメータを省略し
m_solo()
とすると通常演奏に戻る。
m_ch("FM")の時はチャンネル番号1~8がFM音源,9がADPCMチャンネル1
10~25がMIDIに対応する。
m_ch("MIDI")の時はチャンネル番号1~16がMIDI,17~24がFM音源,
25がADPCMチャンネル1に対応する。
また、PCM8.X組み込み時は'm_ch()'によらずチャンネル番号26~32が
ADPCM2~8に対応する。
演奏が停止したトラックも内部処理は続行するため、マスクを解除した時は
他のトラックに遅れを取らずに何事も無かったように演奏が再開される。
ただし、このコマンド実行時は効果音モードが正常に動作しない。
------------------------------------------------------------------------------
関数名 m_mute(ch1,ch2,…ch10)
機能 演奏チャンネルのマスク(その2)
引数 ch1~10=チャンネル番号(char)
戻り値 なし
備考 指定したチャンネルの演奏を一時停止し、それ以外のチャンネルは通常に
演奏を行う。演奏中に実行可能。またパラメータを省略し
m_mute()
とすると通常演奏に戻る。
m_ch("FM")の時はチャンネル番号1~8がFM音源,9がADPCMチャンネル1
10~25がMIDIに対応する。
m_ch("MIDI")の時はチャンネル番号1~16がMIDI,17~24がFM音源,
25がADPCMチャンネル1に対応する
また、PCM8.X組み込み時は'm_ch()'によらずチャンネル番号26~32が
ADPCM2~8に対応する。
演奏が停止したトラックも内部処理は続行するため、マスクを解除した時は
他のトラックに遅れを取らずに何事も無かったように演奏が再開される。
ただし、このコマンド実行時は効果音モードが正常に動作しない。
--------------------------------------------------------------------------------
関数名 m_fadeout(spd)
機能 演奏中のデータをフェードアウト/インする
引数 spd=フェードアウト/イン・スピード(int:-85~85)
戻り値 なし
備考 spdを省略するとデフォルト値16が設定される。
spdは正値がフェードアウト、負値がフェードインの指定となる。
絶対値が大きいほど音量の増減スピードは速くなる。
--------------------------------------------------------------------------------
関数名 m_stat(ch)
機能 演奏状態のチェック
引数 チャンネル番号(char:1~25) (注1)
全て省略すると全チャンネルの演奏状態をチェック出来る
戻り値 int
チャンネル番号を指定した場合、そのチャンネルが演奏中ならば1、
演奏中でないなら0。チャンネル番号を省略した場合は演奏中の
チャンネル番号に対応したビットが1に、演奏していないチャンネル番号に
対応したビットが0になる。
m_ch("FM")の場合はビット0~7がFMチャンネル1~8に、ビット8が
ADPCMチャンネル1に、ビット9~24がMIDIチャンネル1~16に
対応する。
m_ch("MIDI")の場合はビット0~15がMIDIチャンネル1~16に
ビット16~23がFMチャンネル1~8に、ビット24が
ADPCMチャンネル1に対応する。
また、PCM8.Xを組み込み時には'm_ch()'によらずビット25~31が
ADPCM2~8チャンネルに対応する。
--------------------------------------------------------------------------------
●開発補助
--------------------------------------------------------------------------------
関数名 m_debug(sw)
機能 MMLの'[@]','[!]','[end]'コマンドの有効/無効化
引数 sw=数値(char:0=off,nz=on)
戻り値 なし
--------------------------------------------------------------------------------
関数名 m_total()
機能 各トラックにセットされたMMLの総ステップタイム数を計算し
結果を画面に出力する
引数 なし
戻り値 なし
備考 トラック番号:ループ外の総カウント数 ループ内の総カウント数
というフォーマットで出力される。
X-BASICは独自の仮想画面で画面を管理しているのに対して
本命令はむりやり表示を行っているため画面下部で本命令を実行すると
表示の一部がずれることがある。
--------------------------------------------------------------------------------
●テンポ
--------------------------------------------------------------------------------
関数名 m_tempo(tm)
機能 テンポの設定
引数 tm=トラック番号(int:20~300)
戻り値 tmを省略すると現在のテンポ値を返す
備考 タイマAモード(MEASURE2参照)で動作中時はテンポ77以下は強制的に77になる。
--------------------------------------------------------------------------------
●MMLの書き込み
--------------------------------------------------------------------------------
関数名 m_trk(tr,str)
機能 MMLをトラックへ書き込む
引数 tr:トラック番号(char:1~80)
str:MMLデータ(str)
戻り値 なし
備考 MMLに関してはMEASURE5を参照のこと。
--------------------------------------------------------------------------------
関数名 m_trk2(str,tr1,tr2,tr3,tr4,tr5,tr6,tr7,tr8)
機能 MMLを複数のトラックへ書き込む
引数 str:MMLデータ(str)
tr1~8:トラック番号(char:1~80)
戻り値 なし
備考 tr2~tr8は省略可能。
MMLに関してはMEASURE5を参照のこと。
--------------------------------------------------------------------------------
●FM音源の音色設定
--------------------------------------------------------------------------------
関数名 m_vset(vn,ary)
機能 FM音源の音色登録
引数 vn:音色番号(char:1~200)
ary:音色データ(dim char ary(4,10))
戻り値 なし
備考
10 /*設定例
20 dim char v(4,10)
30 /* AF OM WF SYC SPD PMD AMD PMS AMS PAN
40 v={59, 15, 2, 1,200,127, 0, 0, 0, 3, 0,
50 /* AR DR SR RR SL OL KS ML DT1 DT2 AME
60 31, 8, 1, 8, 7, 20, 2, 1, 5, 3, 0,
70 31, 8, 8, 7, 5, 24, 1, 2, 1, 1, 0,
80 31, 3, 7, 8, 1, 21, 1, 1, 3, 0, 0,
90 31, 0, 0, 9, 0, 0, 2, 8, 5, 2, 0}
100 m_vset(1,v)
パラメータ概説
0 1~4(オペレータ)
0 AF(フィードバック/アルゴリズム) (0~63) | AR(アタックレート) (0~31)
1 OM(スロットマスク) (0~15) | 1DR(1stディケイレート) (0~31)
2 WF(ウェーヴフォーム) (0~3) | 2DR(2ndディケイレート) (0~31)
3 SYC(シンクロ) (0,1) | RR(リリースレート) (0~15)
4 SPD(スピード) (0~255) | 1DL(1stディケイレベル) (0~15)
5 PMD (0~127) | TL(トータルレベル) (0~127)
6 AMD (0~127) | KS(キースケーリング) (0~3)
7 PMS (0~7) | MUL(フェーズマルチプライ) (0~15)
8 AMS (0~3) | DT1(ディチューン1) (0~7)
9 PAN (0~3) | DT2(ディチューン2) (0~3)
10 DUMMY | AME(AMSイネーブル) (0,1)
パラメータの機能や詳しい解説は専門書や「BASICマニュアル」の
M_VSET()やM_VGET()の項を参照。
--------------------------------------------------------------------------------
関数名 m_vget(vn,ary)
機能 FM音源の音色データの取り出し
引数 vn:音色番号(char:1~200)
ary:音色バッファ(dim char ary(4,10))
戻り値 ary(4,10)に音色データが格納される
--------------------------------------------------------------------------------
関数名 m_fmvset(vn,ary)
機能 FM音源の音色登録(AL/FB分離形式)
引数 vn:音色番号(char:1~200)
ary:音色データ(dim char ary(4,10))
戻り値 なし
例
10 dim char v(4,10)
20 /* AR 1DR 2DR RR 1DL TL RS MUL DT1 DT2 AME
30 v={ 31, 0, 2, 0, 0, 21, 0, 1, 0, 0, 0,
40 31, 0, 0, 8, 0, 3, 0, 3, 0, 0, 0,
50 31, 0, 0, 8, 0, 3, 0, 1, 0, 0, 0,
60 31, 0, 0, 8, 0, 3, 0, 1, 0, 0, 0,
70 /* CON FBL OM PAN WF SYC SPD PMD AMD PMS AMS
80 5, 7,15, 3 0, 0, 0, 0, 0, 0, 0}
90 m_fmvset(1,v)
備考 AL/FB(CON/FB)分離形式とはFM音源のパラメータである
アルゴリズム(またはコネクション)とフィードバックレベルを
従来の書式では1つにまとめていたのを分かりやすく分割して
指定できるようにしたもの。
--------------------------------------------------------------------------------
●ADPCMコンフィギュレーション
--------------------------------------------------------------------------------
関数名 m_pcmset(nt,fn,pt,vl,mx,dl,ct,rv,fd)
機能 ノート番号ntにファイルネームfnのADPCM音をセットする
引数 nt=ノート番号(int:0~511)
fn=ファイルネーム(str)
pt=ピッチシフトパラメータ(int:0~11=ピッチダウン,12=ニュートラル,13~24=ピッチアップ)
vl=ボリュームパラメータ(int:1%~300%)
mx=ミックス対象ノート番号(int:0~511)
dl=ミックスディレイパラメータ(int:0~65535)
ct=カットパラメータ(int:0~$ffffffff)
rv=リバーススイッチ(char:0=normal/1=reverse)
fd=フェード イン/アウトパラメータ(int:0~$ffffffff)
戻り値 なし
備考 カットパラメータ=オフセット(0~65535)×65536+カットサイズ(0~65535)
フェードイン/アウト・パラメータ=オフセット(0~65535)×65536
+モード(-1=フェードイン,+1=フェードアウト)×256
+フェードイン/アウト・レベル(0~127)
fnがカレントより見つからない場合は環境変数'zmusic'のパスを参照する。
pt,vl,mx,dl,ct,rv,fdはそれぞれ省略可能。
pt,vl,mx,dl,ct,rv,fdのいずれかを設定した場合はADPCMデータの加工を
行うので多少の時間を要する。
また、加工には相当量のメモリを必要とするためドライバ起動時の'-W'スイッチ
でワークエリアを十分に確保していないとエラーとなる。
パラメータの具体的な説明はMEASURE6を参照のこと。
例 m_pcmset(10,"snare.pcm",13,120,8,1000,&h10001000,1,&h1000ff01)
--------------------------------------------------------------------------------
関数名 m_pcmcnf(fn)
機能 ADPCMコンフィギュレーションファイルで
ADPCM音をドライバに登録する
引数 fn=ファイルネーム(str)
戻り値 なし
備考 fnがカレントより見つからない場合は環境変数'zmusic'のパスを参照する。
--------------------------------------------------------------------------------
関数名 m_adpcm_block(fn)
機能 ADPCMブロックデータを読み込む
引数 fn=ファイルネーム(str)
戻り値 なし
備考 fnがカレントより見つからない場合は環境変数'zmusic'のパスを参照する。
ADPCMバッファがブロックデータの大きさより小さい場合はエラーとなる。
--------------------------------------------------------------------------------
●MIDIデータ出力
--------------------------------------------------------------------------------
関数名 m_out(data1,data2,…,data10)
機能 MIDIデータを送信する
引数 data1~10=MIDIデータ(char)
戻り値 なし
備考 data2以降は省略可,X-BASICの制約からデータは10個まで。
例 m_out(&HC0,10)
--------------------------------------------------------------------------------
関数名 m_dirout(ary,size)
機能 1次元配列に格納されたデータを送信する
引数 ary=1次元配列(dim char ary(n))
size=送信データ数(int:1~65536)
戻り値 なし
備考 sizeを省略した場合は配列内全てのデータを送信する。
--------------------------------------------------------------------------------
関数名 m_exc(ary,size)
機能 1次元配列に格納されたデータをエクスクルーシブデータとして送信する
引数 ary=1次元配列(dim char ary(n))
size=送信データ数(int:1~65536)
戻り値 なし
備考 sizeを省略した場合は配列内全てのデータを送信する。
頭に$f0、後尾に$f7を自動的に付けて送信するだけで機能的には
ほとんど'm_dirout()'と同じ。
--------------------------------------------------------------------------------
関数名 m_roland(dev,mdl,ary,size)
機能 1次元配列に格納されたデータを
ローランドエクスクルーシブデータと見なし送信する
引数 dev=転送先の楽器のデバイスID(char)
mdl=転送先の楽器のモデルID(char)
ary=1次元配列(dim char ary(n))
size=送信データ数(int:1~65536)
戻り値 なし
備考 sizeを省略した場合は配列内全てのデータを送信する。
エクスクルーシブヘッダやチェックサムのデータは自動発信する。
--------------------------------------------------------------------------------
関数名 m_trans(fn)
機能 MIDIダンプデータファイルをMIDI楽器へ送信する
引数 fn=ファイルネーム(str)
戻り値 なし
備考 fnがカレントより見つからない場合は環境変数'zmusic'のパスを参照する。
MEASURE9参照。
--------------------------------------------------------------------------------
●MIDIデータ入力
--------------------------------------------------------------------------------
関数名 m_inp(mode)
機能 MIDIデータを送信する
引数 mode=入力モード(char:0,1~255)
mode=0 入力データがない場合はエラーコードを持って帰還
mode=1~255 データが受信されるまでmode×(1/60)秒間待つ
戻り値 0~255:入力されたデータ
-1:エラー
--------------------------------------------------------------------------------
関数名 m_rec()
機能 MIDI楽器よりデータを受信するモードにする
引数 なし
戻り値 なし
備考 MEASURE9参照。
--------------------------------------------------------------------------------
関数名 m_rstop()
機能 MIDI楽器からのデータを受信するモードを解除する
引数 なし
戻り値 なし
備考 MEASURE9参照。
--------------------------------------------------------------------------------
関数名 m_save(fn)
機能 m_rec()で受信したMIDIデータをセーブする
引数 fn=ファイルネーム(str)
戻り値 なし
備考 MEASURE9参照。
--------------------------------------------------------------------------------
●SC55/SC155/CM300/CM500のGSパート専用命令
パラメータの意味などは楽器のマニュアルを参照のこと
--------------------------------------------------------------------------------
関数名 sc55_init(id)
機能 SC55の初期化を行なう
引数 id=SC55のデバイスID(char)
戻り値 なし
備考 IDは省略可能。省略すると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
--------------------------------------------------------------------------------
関数名 sc55_v_reserve(ary,id)
機能 SC55のボイスリザーブ
引数 ary=各パートのボイスリザーブ値(dim char ary(15)={vr1,…,vr16})
id=SC55のデバイスID(char)
戻り値 なし
備考 配列は必ず1次元、添え字は15でリザーブ値は16パート分書かなければならない。
また、合計が楽器の最大同時発生数である24以下にならなければならない。
ary(0)=パート1,ary(1)=パート2…,ary(15)=パート16というふうに対応する。
IDは省略可能。省略すると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
--------------------------------------------------------------------------------
関数名 sc55_reverb(ary,id)
機能 SC55のリバーブパラメータ設定
引数 ary=リバーブパラメータ(dim char ary(6)={rv1,…,rv7})
id=SC55のデバイスID(char)
戻り値 なし
備考 配列は必ず1次元、添え字は6以内で配列の内容全部がSC55へ送信される。
IDは省略可能。省略すると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される
ary(0):REVERB MACRO 00:Room1,01:Room2,02:Room3,03:Hall1,04:Hall2
05:Plate,06:Delay,07:Panning Delay(FB)
ary(1):REVERB CHARACTER ($00~$07)
ary(2):REVERB PRE-LPF ($00~$07)
ary(3):REVERB LEVEL ($00~$7F)
ary(4):REVERB TIME ($00~$7F)
ary(5):REVERB DELAY FEEDBACK ($00~$7F)
ary(6):REVERB SEND LEVEL TO CHORUS ($00~$7F)
(SC55マニュアルp79参照)
--------------------------------------------------------------------------------
関数名 sc55_chorus(ary,id)
機能 SC55のコーラスパラメータ設定
引数 ary=コーラスパラメータ(dim char ary(7)={co1,…,co8})
id=SC55のデバイスID(char)
戻り値 なし
備考 配列は必ず1次元、添え字は7以内で配列の内容全部がSC55へ送信される。
IDは省略可能。省略すると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
ary(0):CHORUS MACRO 00:Chorus1,01:Chorus2,02:Chorus3,03:Chorus4
04:Feedback Chorus,05:Flanger,06:Short Delay
07:Short Delay(FB)
ary(1):CHORUS PRE-LPF ($00~$07)
ary(2):CHORUS LEVEL ($00~$7F)
ary(3):CHORUS FEEDBACK ($00~$7F)
ary(4):CHORUS DELAY ($00~$7F)
ary(5):CHORUS RATE ($00~$7F)
ary(6):CHORUS DEPTH ($00~$7F)
ary(7):CHORUS SEND LEVEL TO REVERB ($00~$7F)
(SC55マニュアルp79参照)
--------------------------------------------------------------------------------
関数名 sc55_part_setup(pt,ary,id)
機能 SC55のパートパラメータ設定
引数 pt=パートナンバー(char:1~16)
ary=パートパラメータ(dim char ary(118)={pp1,…,pp119})
id=SC55のデバイスID(char)
戻り値 なし
備考 配列は必ず1次元、添え字は118以内で配列の内容全部がSC55へ送信される。
IDは省略可能。省略すると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
ary(0):Rx CHANNEL (1~16,17=OFF)
ary(1):Rx PITCH BEND (0~1:OFF/ON)
ary(2):Rx CH PRESSURE(CAf) (0~1:OFF/ON)
ary(3):Rx PROGRAM CHANGE (0~1:OFF/ON)
ary(4):Rx CONTROL CHANGE (0~1:OFF/ON)
ary(5):Rx POLY PRESSURE(PAf) (0~1:OFF/ON)
ary(6):Rx NOTE MESSAGE (0~1:OFF/ON)
ary(7):Rx RPN (0~1:OFF/ON)
ary(8):Rx NRPN (0~1:OFF/ON)
ary(9):Rx MODURATION (0~1:OFF/ON)
ary(10):Rx VOLUME (0~1:OFF/ON)
ary(11):Rx PANPOT (0~1:OFF/ON)
ary(12):Rx EXPRESSION (0~1:OFF/ON)
ary(13):Rx HOLD1 (0~1:OFF/ON)
ary(14):Rx PORTAMENTO (0~1:OFF/ON)
ary(15):Rx SOSTENUTO (0~1:OFF/ON)
ary(16):Rx SOFT (0~1:OFF/ON)
ary(17):MONO/POLY MODE (0~1:MONO/POLY)
ary(18):ASSIGN MODE (0:SINGLE,1:LIMITED-MULTI,2:FULL-MULTI)
ary(19):USE FOR RHYTHM PART (0:OFF,1:MAP1,2:MAP2)
ary(20):PITCH KEY SHIFT ($28~$58:-24~+24[semitone])
ary(21):PITCH OFFSET FINE(upper) ($08~$F8:-12.0~+12.0[Hz])
ary(22):PITCH OFFSET FINE(lower) 〃
ary(23):PART LEVEL (0~127)
ary(24):VELOCITY SENSE DEPTH (0~127)
ary(25):VELOCITY SENSE OFFSET (0~127)
ary(26):PART PANPOT (0:RANDOM,01(LEFT)~64~127(RIGHT))
ary(27):KEY RANGE LOW (0~127:C-1~G9)
ary(28):KEY RANGE HIGH (0~127:C-1~G9)
ary(29):CC1 CONTROL NUMBER (0~127)
ary(30):CC2 CONTROL NUMBER (0~127)
ary(31):CHORUS SEND DEPTH (0~127)
ary(32):REVERB SEND DEPTH (0~127)
ary(33):Vibrato rate ($0E~$72:-50~+50)
ary(34):Vibrato depth ($0E~$72:-50~+50)
ary(35):TVF cutoff freq. ($0E~$50:-50~+16)
ary(36):TVF resonance ($0E~$72:-50~+50)
ary(37):TVF&TVA Env.attack ($0E~$72:-50~+50)
ary(38):TVF&TVA Env.decay ($0E~$72:-50~+50)
ary(39):TVF&TVA Env.release ($0E~$72:-50~+50)
ary(40):Vibrato delay ($0E~$72:-50~+50)
ary(41):SCALE TUNING C ($00~$7F:-64~+63[cent])
ary(42):SCALE TUNING C# ($00~$7F:-64~+63[cent])
ary(43):SCALE TUNING D ($00~$7F:-64~+63[cent])
ary(44):SCALE TUNING D# ($00~$7F:-64~+63[cent])
ary(45):SCALE TUNING E ($00~$7F:-64~+63[cent])
ary(46):SCALE TUNING F ($00~$7F:-64~+63[cent])
ary(47):SCALE TUNING F# ($00~$7F:-64~+63[cent])
ary(48):SCALE TUNING G ($00~$7F:-64~+63[cent])
ary(49):SCALE TUNING G# ($00~$7F:-64~+63[cent])
ary(50):SCALE TUNING A ($00~$7F:-64~+63[cent])
ary(51):SCALE TUNING A# ($00~$7F:-64~+63[cent])
ary(52):SCALE TUNING B ($00~$7F:-64~+63[cent])
ary(53):MOD PITCH CONTROL ($28~$58:-24~+24[semitone])
ary(54):MOD TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
ary(55):MOD AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
ary(56):MOD LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
ary(57):MOD LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
ary(58):MOD LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
ary(59):MOD LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
ary(60):MOD LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
ary(61):MOD LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
ary(62):MOD LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
ary(63):MOD LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
ary(64):BEND PITCH CONTROL ($28~$58:-24~+24[semitone])
ary(65):BEND TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
ary(66):BEND AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
ary(67):BEND LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
ary(68):BEND LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
ary(69):BEND LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
ary(70):BEND LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
ary(71):BEND LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
ary(72):BEND LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
ary(73):BEND LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
ary(74):BEND LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
ary(75):CAf PITCH CONTROL ($28~$58:-24~+24[semitone])
ary(76):CAf TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
ary(77):CAf AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
ary(78):CAf LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
ary(79):CAf LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
ary(80):CAf LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
ary(81):CAf LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
ary(82):CAf LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
ary(83):CAf LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
ary(84):CAf LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
ary(85):CAf LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
ary(86):PAf PITCH CONTROL ($28~$58:-24~+24[semitone])
ary(87):PAf TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
ary(88):PAf AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
ary(89):PAf LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
ary(90):PAf LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
ary(91):PAf LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
ary(92):PAf LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
ary(93):PAf LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
ary(94):PAf LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
ary(95):PAf LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
ary(96):PAf LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
ary(97):CC1 PITCH CONTROL ($28~$58:-24~+24[semitone])
ary(98):CC1 TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
ary(99):CC1 AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
ary(100):CC1 LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
ary(101):CC1 LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
ary(102):CC1 LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
ary(103):CC1 LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
ary(104):CC1 LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
ary(105):CC1 LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
ary(106):CC1 LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
ary(107):CC1 LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
ary(108):CC2 PITCH CONTROL ($28~$58:-24~+24[semitone])
ary(109):CC2 TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
ary(110):CC2 AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
ary(111):CC2 LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
ary(112):CC2 LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
ary(113):CC2 LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
ary(114):CC2 LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
ary(115):CC2 LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
ary(116):CC2 LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
ary(117):CC2 LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
ary(118):CC2 LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
(SC55のマニュアルP75,P79~P80参照)
--------------------------------------------------------------------------------
関数名 sc55_drum_setup(mp,nt,ary,id)
機能 SC55のドラムパラメータ設定
引数 mp=マップナンバー(char:0~1)
nt=ノート番号(char:0~127)
ary=ドラムパラメータ(dim char ary(7)={dr1,…,dr8})
id=SC55のデバイスID(char)
戻り値 なし
備考 配列は必ず1次元、添え字は7以内で配列の内容全部がSC55へ送信される。
IDは省略可能。省略すると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
ary(0):PLAY KEY NUMBER (0~127)
ary(1):LEVEL (0~127)
ary(2):ASSIGN GROUP NUMBER (0:NON,1~127)
ary(3):PANPOT (0:RANDOM,01(LEFT)~64~127(RIGHT))
ary(4):REVERB DEPTH (0~127:0.0~1.0)
ary(5):CHORUS DEPTH (0~127:0.0~1.0)
ary(6):Rx NOTE OFF (0~1:OFF/ON)
ary(7):Rx NOTE ON (0~1:OFF/ON)
(SC55マニュアルp75,p82参照)
--------------------------------------------------------------------------------
関数名 sc55_print(ms,id)
機能 SC55のディスプレイに文字列を表示する
引数 ms=文字列(str:32文字以内)
id=SC55のデバイスID(char)
戻り値 なし
備考 IDは省略可能。省略すると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
--------------------------------------------------------------------------------
関数名 sc55_display(ary,id)
機能 SC55のディスプレイにドットパターン(16×16)を表示する
引数 ary=ドットパターンデータ(dim int a(15)={dt1,…,dt16})
id=SC55のデバイスID(char)
戻り値 なし
備考 配列は必ず1次元、int型で添え字は必ず15でなければならない。
IDは省略可能。省略すると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
例
5 /*SC55の画面に"善"を表示する
10 dim int d(a5)={ %0001000000010000,
20 %0000100000100000,
30 %0111111111111100,
40 %0000000100000000,
50 %0011111111111000,
60 %0000000100000000,
70 %0111111111111100,
80 %0001000100010000,
90 %0000100100100000,
100 %1111111111111110,
110 %0000000000000000,
120 %0011111111111000,
130 %0010000000001000,
140 %0010000000001000,
150 %0011111111111000,
160 %0010000000001000}
170 sc55_display(d,&h10)
--------------------------------------------------------------------------------
●MT32/CM32L/(CM64/CM500のLAパート)専用命令
パラメータの意味などは楽器のマニュアルを参照のこと
--------------------------------------------------------------------------------
関数名 mt32_init(id)
機能 MT32の初期化を行なう
引数 id=MT32のデバイスID(char)
戻り値 なし
備考 IDは省略可能。省略すると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
注意 MT32用の命令はCM32L/CM64/CM500にも使用できる。以下同様。
--------------------------------------------------------------------------------
関数名 mt32_p_reserve(ary,id)
機能 MT32のパーシャルリザーブを行う
引数 ary=各パートのパーシャルリザーブ値(dim char ary(8)={pr1,…,pr9})
id=MT32のデバイスID(char)
戻り値 なし
備考 配列は必ず1次元、char型で添え字は必ず8でなければならない。
9番目のデータ(添え字で8番目)はリズムパートに相当する。
IDは省略可能。省略すると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
--------------------------------------------------------------------------------
関数名 mt32_reverb(ary,id)
機能 MT32のリバーブパラメータの設定
引数 ary=リバーブパラメータ(dim char ary(2)={pr1,pr2,pr3})
id=MT32のデバイスID(char)
戻り値 なし
備考 配列は必ず1次元、添え字は2以内で配列の内容全部がMT32へ送信される。
IDは省略可能。省略すると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
ary(0):REVERB MODE (0:Room,1:Hall,2:Plate,3:Tap Delay)
ary(1):REVERB TIME (0~7)
ary(2):REVERB LEVEL (0~7)
(MT32マニュアルp35,CM64マニュアルp30参照)
--------------------------------------------------------------------------------
関数名 mt32_part_setup(ary,id)
機能 MT32の各パートのMIDIチャンネルの設定
引数 ary=各パートのMIDIチャンネル値(1~16,17:OFF)
(dim char ary(8)={pr1,…,pr9})
id=MT32のデバイスID(char)
戻り値 なし
備考 配列は必ず1次元、添え字は8以内で配列の内容全部がMT32へ送信される。
9番目のデータ(添え字で8番目)はリズムパートに相当する。
IDは省略可能。省略すると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
--------------------------------------------------------------------------------
関数名 mt32_drum_setup(nt,ary,id)
機能 MT32のリズムパートの設定
引数 nt=設定を変更するリズムノートナンバー(char:24~87)
ary=リズムパートのセットアップパラメータ(dim char ary(3)={pr1,…,pr4})
id=MT32のデバイスID(char)
戻り値 なし
備考 配列は必ず1次元、添え字は3以内で配列の内容全部がMT32へ送信される。
IDは省略可能。省略すると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
ary(0):TIMBRE (0~63:i1~64,64~127:r1~64)
ary(1):OUTPUT LEVEL (0~100)
ary(2):PANPOT (0~14)
ary(3):REVERB SWITCH (0~1:OFF/ON)
(MT32マニュアルp35,CM64マニュアルp30参照)
--------------------------------------------------------------------------------
関数名 mt32_common(tm,nm,ary,id)
機能 MT32のティンバーコモンパラメータの設定
引数 tm=ティンバーの番号(char:1~64)
nm=ティンバーの名前(str:10文字以内)
ary=コモンパラメータ(dim char ary(3)={pr1,…,pr4})
id=MT32のデバイスID(char)
戻り値 なし
備考 配列は必ず1次元、添え字は3以内で配列の内容全部がMT32へ送信される。
IDは省略可能。省略すると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
ary(0):Structure of Partial#1&2 (0~12:1~13)
ary(1):Structure of Partial#3&4 (0~12:1~13)
ary(2):PARTIAL MUTE (0~15)
ary(3):ENV MODE (0~1:NORMAL,NO SUSTAIN)
(MT32マニュアルp34,CM64マニュアルp29参照)
--------------------------------------------------------------------------------
関数名 mt32_patch(pt,ary,id)
機能 MT32のパッチパラメータの設定
引数 pt=パッチ(program)番号(char:1~128)
ary=パッチパラメータ(dim char ary(6)={pr1,…,pr7})
id=MT32のデバイスID(char)
戻り値 なし
備考 配列は必ず1次元、添え字は6以内で配列の内容全部がMT32へ送信される。
IDは省略可能。省略すると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
ary(0):TIMBRE GROUP (0~3:a,b,i,r)
ary(1):TIMBRE NUMBER (0~63)
ary(2):KEY SHIFT (0~48:-24~+24)
ary(3):FINE TUNE (0~100:-50~+50)
ary(4):BENDER RANGE (0~24)
ary(5):ASSIGN MODE (0~3:POLY1~4)
ary(6):REVERB SWITCH (0~1:OFF/ON)
(MT32マニュアルp35,CM64マニュアルp30参照)
--------------------------------------------------------------------------------
関数名 mt32_partial(tm,pt,ary,id)
機能 MT32の音色のパーシャル・パラメータの設定
引数 tm=ティンバーの番号(char:1~64)
pt=パーシャル番号(char:1~4)
ary=パッチパラメータ(dim char ary(57)={pr1,…,pr58})
id=MT32のデバイスID(char)
戻り値 なし