private knowhow
Rev. | 40901d4de83c5f5e08ebff7dfd1f905fb667dae1 |
---|---|
サイズ | 1,074,356 バイト |
日時 | 2024-11-04 23:14:31 |
作者 | hyperoga |
ログメッセージ | add trouble shoot
|
{ -- ZM0.MAN ------------------------------------------------
ZMUSIC SYSTEM Ver 3.0 MANUAL ('97/09/01,REL.5)
まえがき
X680x0をパーソナルワークステーションからミュージックワークステーションへ
発展させよう、少々大げさですが、これが今回の開発のキーワードでした。
Ver.3.0になって最も大きく進歩した点は、なんといってもMIDIの最大4系統出力と
ADPCMのメロディシーケンス機能です。前者はMIDIインターフェース(CZ6BM1/互換品)を
最大2枚、そしてRS232C-MIDI2系統(PC98用シリアルMIDIケーブル使用時)を同時に制御
できる機能であり、最大64チャンネルのMIDI出力を同時に行えます。後者は
(C)Wachoman氏に制作して頂いたMPCM.Xが完成して初めて出来るようになった機能です。
彼には今回の開発で本当に色々と助けて頂きました(この場を借りで感謝の意を表し
ます)。MPCM.XによりX680x0の内蔵ADPCM音源をあたかもFM音源のような柔軟さで制御す
ることができ、本来のADPCM音源のスペックを遙かに超越した音楽表現が行えるように
なりました。
X680x0は確かに現在では主流のパソコンとは言えなくなってきましたが、ことに音楽
情報を扱うということにおいては、割り込みアーキテクチャの完成度の観点からは
現時点の標準的なWindows95パソコンを勝っています。パソコンを一つの道具として
とらえた場合、X680x0はまだまだその道具としての役割を果たせます。
Z-MUSIC Ver.3.0が、みなさんのX680x0にその道具としての新しい機能の一つとなる
ことを期待しています。
抜けている部分は現在制作中
目次 ファイル名
MEASURE1 イントロダクション (ZM1.MAN)
MEASURE2 ZMSC3.X/ZMC.Xのオプション・スイッチ (ZM2.MAN)
MEASURE3 X-BASIC用外部関数MUSICZ3.FNC (ZM3.MAN)
MEASURE4 ZMSコマンド (ZM4.MAN)
MEASURE5 MMLコマンド (ZM5.MAN)
MEASURE6 ZPCNV3.RとZPLK.R (ZM6.MAN)
MEASURE7 ZP3.R (ZM7.MAN)
MEASURE8 ZVT.X (ZM8.MAN)
MEASURE9 スタンダードMIDIファイルとローランド・エクスクルーシブ (ZM9.MAN)
MEASURE10 ZMUSIC Ver.3.0のファンクションコール (ZM10.MAN)
MEASURE11 エラー (ZM11.MAN)
MEASURE12 ZMD/ZPDフォーマット (ZM12.MAN)
MEASURE13 ワークエリアとワークビュアZSV.R (ZM13.MAN)
MEASURE14 効果音モードと外部プログラムとの同期 (ZM14.MAN)
MEASURE15 MPCM.X (ZM15.MAN)
MEASURE16 C言語ライブラリ (ZM16.MAN)
{ -- ZM1.MAN ------------------------------------------------
MEASURE 1
イントロダクション
ここではZMUSICシステムの概要を説明します。
1.1. はじめに
コンピュータミュージックを楽しむには幾つかの方法があります。
1. 実際に弾いたものをコンピュータ、シーケンサのメモリに記憶しておくもの
2. コンピュータ、シーケンサのメモリに直接演奏データを書き込んでいくもの
3. 1. と2. の複合的な方法
などです。2.はコンピュータのキーボードを叩くことから「打ち込み」と
呼ばれます。3.はつまり、人間が弾いたものを後でコンピュータを用いて
修正するといったものです。
ちょっと昔までは3.の方法が圧倒的にメジャーでしたが、音源の進歩と
ミュージック・ツールの進化により最近は2.の方法もメジャー化してきています。
最近は譜面も起こさずに直接「打ち込み」を始める作曲者も少なくないようですし、
スタジオのマニピュレータ(平たくいえば打ち込み人)の中には実際に弾いた
ものよりも人間臭さを表現する人もいるとききます。
さて、本書でお話しするのは2.の方法です。2.の方法の魅力といえば、
自分が楽器の演奏が出来なくてもイメージ通りの演奏が可能という点でしょう。
さらに、一度仕上げた曲は、ディスクなどの記憶装置に保存しておけばいつでも
再現可能というのもこの方法の魅力です。
打ち込みの方法にも実は色々な方法があります。一番原始的なものとしては
完全な数値入力です。音階、発音時間、など全てをこまごまと入力していくものです。
最近は「ステップ入力」と呼ばれます。10数年前にMZやPC8001用に出ていた
ローランドCMU800シリーズはこの方法でした。これを進化させものが
譜面入力による「打ち込み」です。いわゆる五線譜に音符を置いていくタイプの
ものです。楽器の演奏はおろか譜面を読むことが出来ない人にでも簡単に音楽を
作ることが出来るため初心者層には圧倒的な人気を誇ります。また印刷機能が
充実していれば美しい譜面を得ることが出来ますので、プロでもこのタイプを
使っている人が多くいます。
さて、「ZMUSIC」では現在(注)MMLという「打ち込み」方式を
採用しています。これはいわば「音楽記述言語」というもので
「音楽をプログラム」するというイメージが正しいでしょう。完全な数値入力よりは
ずっとドキュメント性が高い上、入力する量も少ないのでパソコンを基盤として
音楽を楽しむ人にはピッタリのものといえます。欠点としては、小中学校程度の
音楽知識が必要なこと、ある程度コンピュータを扱える人でないと駄目なこと、
ドキュメント性が譜面入力よりは低いこと、などです。ドレミが読めて、非GUI環境で
ディスクをフォーマットしたりファイルをコピーしたことがあれば資質十分です。
MMLの利点としては、慣れればあらゆる方式よりも高速に一曲を仕上げることが
出来ること、細かいニュアンスなどに凝ることが出来るなどが挙げられます。
また、移植性が高い点も見逃せません。殆ど方言のような感覚で他の機種の
演奏データや他の音楽ドライバ用のデータを、自分の使っているMMLに
修正利用することが出来るのです。
さあ、「ZMUSIC」を懸け橋にしてあなたもコンピュータ・ミュージックの
世界に浸りませんか。
(注)今後、違った入力方式に対応した支援プログラムが発表されれば、
別の入力方式(例えば譜面入力方式)も可能です。
1.2. ZMUSICとは
ZMUSICとはX680x0本体付属のOPMDRV.Xを改造したりするもの
ではなく、全く新しくゼロから開発されたミュージックプログラム開発言語です。
X680x0の内蔵音源であるFM音源8声とADPCM1声(MPCM.X (C)Wachomanを
使用すれば16声まで)、MIDIインターフェースが接続されていれば
MIDI楽器も同時にコントロールする事が出来ます。
一般の音楽制御ドライバでは1つのMIDI楽器をコンピュータの外部音源という
位置付けで扱っていましたが「ZMUSIC」ではX680x0をホストに複数のMIDI
楽器をコントロールする事が出来るように設計されているのでどんどん自分のMIDI
システムを広げていくことが可能です。
特に今回のバージョン3は多チャンネル化するMIDI音源に対応する目的と、
一層のコンピュータ音楽ならではの芸術性や表現を具現化するために制作されました。
より高度なコンピュータ音楽を制作できるはずです。
ここでZMUSICシステムVer.3の特長を列挙してみます。
1. X680x0本体付属のOPMDRV.Xに上位コンパチ。ZMUSIC Ver.2以前の
演奏データはソース(ZMS)レベルで上位互換でそのまま演奏可能。
2. FM音源,ADPCM,MIDI楽器を同時に同期演奏可能
(もちろんMIDIシステムのない環境でもZMUSICは利用可能)
3. 複数のX680x0を相互に接続しての同期演奏も可能。
4. 汎用トラックを65534本装備。最大演奏トラック数65534本。
RS232C-MIDIを2ポートと2枚のMIDIインターフェースを同時に制御可能。
MIDIは、前バージョンの4倍に当たる64チャンネルまでを同時制御可能
最大演奏チャンネル数88チャンネル(FM8+ADPCM16+MIDI64)。
5. 独自のADPCMドライバ「MPCM.X」(C)WachomanにてADPCM音源をFM音源のように
柔軟に制御可能。
6. ポルタメントやオートベンド、和音やビブラートなどの特殊効果を内蔵音源と
MIDIの両方で使用可能。Ver.2以前からあったARCC機能も1トラックあたり
同時に4つまで独立に動作させることが出来るように拡張された。
7. コンピュータ音楽ならではの音楽情緒を作り出すアゴーギク機能やエンハンスド
ベロシティ・シーケンス機能の新設
8. 前バージョンまでの効果音モードを発展させ、2曲までテンポの異なった音楽を
同時に演奏可能。
9. 送信MIDIデータをリアルタイムで最適な送信方法を選択して送信するVTMS機構、
送信MIDIメッセージをリアルタイムに最適化するARS機構を装備。これらにより
多チャンネル演奏時でもテンポずれの最大限抑止、CPU負荷の低減を両立。
10.MT32/U220/M1/SC55/SC88/GM音源等に対応した
楽器個別の制御命令を装備
11.MIDI楽器側の音色や設定データ、ユーザーの演奏をスタンダード
MIDIファイルに出力可能。
12.オブジェクトレベルの演奏データ(ZMD)を出力可能(コンパイル機能)
13.ZMUSICが持つ機械のすべてを公開。外部プログラムから利用可能。
プログラム間通信機能も装備し、高度な連動動作機能を提供。
14.専用A/Dコンバータによってサンプリングされた高音質のADPCMデータ
ライブラリを標準装備
15.全情報公開。ライセンスフリー。
1.3. 著作権について
法律上、日本では著作権の放棄ができませんので、著作権は作者西川善司に
保留されます。しかし、プログラムの性質上、「ZMUSIC」のオリジナルを
開発した私、西川善司は「ZMUSIC」及びこれらを支援するプログラム
(サブルーチンを含む)全ての使用権に関するライセンス権を放棄します。
よってとくに断らずに商的利用が出来ます。つまり市販だろうが同人だろうが勝手に
「ZMSC3.X」を組み込んだソフトを販売してもいいということです。
ただし、一つだけ守って欲しいことがあります。それは「ZMUSIC」の
改造についてです。改造は勿論各自に自由で行って構わないのですが、
データの完全な互換性が保持されないような改造を施した際には
バージョンID番号を$F0以上にして欲しいのです(オリジナルは$30です。
ソースリストZMSC0.HAS参照)。また、オリジナルのZMUSICで演奏できない
データフォーマットにした場合はファイルの拡張子もZMD,ZMS以外に変更して下さい。
これは混乱を防止するためです。今後のバージョンアップ版との兼ね合いも
ありますので、是非ご協力下さい。
移植に関しても自由に行って構いません(ただし、完全にコンパチでない場合は
バージョン番号をやはり$F0以上にして下さい)。
1.4. ZMDとZMS
ZMUSICシステム上での作業方法や機能の仕組みについて簡単に解説します。
ZMUSICシステム Ver.3がVer.2以前と大きく異なる点はMMLコンパイラと演奏プログラ
ムを分離したところにあります。Ver.3ではコンパイラは必要な時に呼び出され、
あるいは、ユーザの意志のもとに常駐させることができ、Ver.2以前に比べて省メモリ
を実現しています。
ZMUSICの機能を直接的に言語命令化したものがZMUSICのMMLですが、ZMUSICの機能を
別な形式で結びつければZMUSICを活用したMML以外の音楽制作環境の実現も可能です。
または、独自の文法のMMLコンパイラを制作すれば、見た目まったく別の音楽データを
演奏させることもできるのです。これがコンパイラ分離のもう一つの狙いであり利点
なのです。
ZMUSICを利用するには、その演奏プログラムを常駐させなければなりません。
具体的には
A>ZMSC3 [リターン]
のようにします。ZMSC3.Xは、ZMUSICシステムでは演奏マネージャと呼ばれ音楽の実際の
演奏やZMUSICの機能の提供を司ります。ZMSC3.Xを常駐させることによってはじめて
ZMUSICシステムの機能が使えるようになります。
次に音楽データの制作手法ですが、現時点でZMUSIC ver.3で音楽データを制作する
には、X680x0本体付属のED.Xのような何等かのテキストエディタが必要です。テキスト
エディタでMEASURE 5で解説されているようなMML(音楽記述言語)を駆使して音楽プログ
ラムを作成します。MMLにて制作した音楽プログラムをZMUSICではとくにZMSと呼んで
います。
これを演奏させるには
A>ZP3 ファイル名.ZMS
のようにします。ZP3.Rは演奏演奏データとZMSC3.Xの間を取り持つ役目を果たします。
ZP3.Rは、ZP3.Rに与えるファイルがZMSの場合、MMLコンパイラZMC.Xを起動します。
これでコンパイルを行い、音楽記述言語レベルからZMSC3.Xで実際に演奏ができる
バイナリファイルに変換します。このバイナリファイルをZMUSICシステムではZMDと
呼んでいます。
ZMC.XでZMSをあらかじめZMDに変換して保存しておくことも出来ます。
具体的には
A>ZMC ファイルネーム.ZMS
のようにします。エラーがなければZMDが作成されるはずです。このZMDがディスク上に
有るのならば
A>ZP3 ファイルネーム.ZMD
として演奏させることもでき、この場合はコンパイラを呼び出したり、コンパイル
動作などのプロセスが省略されるため即演奏が開始されます。ただし、ZMDは仕様改良に
ともなって変更される場合があるためZMSは必ず保存しておくようにしてください。
ZMDの仕様変更はありえますが、ZMSレベルでは上位互換を保証していきます。よって
通信やその他のメディアで制作した音楽を公開する場合にも、必ずZMSを添付するよう
にしてください。
ただし、冒頭で述べた独自コンパイラや独自音楽制作ツールで制作した音楽データの
場合はこの限りではありません。しかしそういったコンパイラやツールにおいても
ZMD仕様変更などに対応できるようにかなり柔軟な設計にしておくべきでしょう。
1.5. その他のZMUSIC関連ファイル
ZMDとZMS以外にZMUSICが取り扱うファイルに
(1) OPMファイル
(2) ZDFファイル
(3) CNFファイル
(4) ZPDファイル
(5) MIDファイル
(6) MDDファイル
(7) JUKファイル
があります。
(1)はX680x0付属のFM音源ドライバOPMDRV.X用の音楽データです。ZMUSICはOPMDRV.X
の上位互換であるため、OPMDRV.Xの演奏データを演奏させることが出来ます。ただし
ZMUSICはエラーチェックが厳格であるため、OPMDRV.Xでは演奏出来てもZMUSICでは
エラーとなる場合があります。その場合はエラーメッセージを参考に演奏データを
ZMUSICの文法チェックをパスするように修正しなければなりません。
(2)はLZZという名の音楽データの圧縮ツールによって圧縮された音楽データです。
このLZZはMZP.XなどのZMUSIC関連ツールを数多く制作されているNOVA氏の作品で、
ZMUSICにも対応しておりZMS,ZMD,ZPD,MDDなどを圧縮することが出来ます。ZMUSICシス
テム Ver.3ではZP3.XがこのZDFをデコードして演奏/再生することが出来ます。
(3)(4)はZMUSIC上でADPCM音を扱う場合に深く関係するファイルです。(3)はユーザが
使用する任意のADPCMデータを選択しリスト化したファイルです。(4)は(3)ファイルから
ADPCMファイルコンバータZPCNV3.Rで作成したADPCMデータのアーカイヴファイルです。
(5)はスタンダードMIDIファイル(SMF)です。ZMUSIC Ver.3ではフォーマット0のSMFを
再生することが出来ます。また、レコーディング機能によって記録した演奏、もしくは
楽器などの設定ダンプデータもSMFに変換することが出来ます。
(6)はZMUSIC Ver.2以前で扱っていたMIDIダンプデータと呼ばれる楽器などの設定を
ファイル化したテキスト型MIDIデータファイルです。Ver.3ではこちらは再生のみ行え
ます。
(7)は、ZP3.Rのジュークボックス機能で演奏させる曲目を列挙したリストファイル
です。
1.5. 本マニュアルについて
本マニュアルではZMUSIC Ver.3で新設された機能や拡張された機能を中心に取り扱い
ます。Ver.2との上位互換のためだけに残っている機能に付いてはとくに解説しませんの
でご了承ください。具体的には
・MUSICZ.FNC関数命令群
(ただしVer.3のX-BASIC外部関数であるMUSICZ3.FNCについては詳しく解説します)
・MDDファイル
(スタンダードMIDIファイル(SMF)を中心的に取り扱うことになったため)
{ -- ZM2.MAN ------------------------------------------------
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_???'よりも低く設定されている。
{ -- ZM3.MAN ------------------------------------------------
MEASURE 3
X-BASIC用外部関数MUSICZ3.FNC
X680x0本体付属のBASIC「X−BASIC」からZMUSIC Ver.3.0を
使う方法について述べます。
3.1. はじめに
BASICからZMUSICを使うには外部関数「MUSICZ3.FNC」を
組み込んだX−BASICを起動する。
組み込み方は以下の通り。
1.BASICディレクトリ中のBASIC.CNFの内容のうち
FUNC=MUSIC
の部分を
FUNC=MUSICZ3
のように変更する。
2.このディレクトリにMUSICZ3.FNCをコピーする。
3.コマンドプロンプトから
A>basic
としてX−BASICを起動する。
しかし、各ユーザーのシステム環境によっては多少の食い違いもあるので
よく分からない人はX680x0付属の「BASICマニュアル」を参照してほしい。
3.2.MUSICZ.FNC(ZMUSIC Ver.2.0用X-BASIC外部関数)との違いについて
ZMUSIC Ver.2.0用のX-BASIC用外部関数「MUSICZ.FNC」の命令はZMUSIC Ver.3.0用
のX-BASIC外部関数「MUSICZ3.FNC」上で実行することは出来るがX-BASICプログラムに
記述した場合のみに限られる。コマンドをX-BASICコマンドラインに直接打ち込んでの
実行は出来ない。
また、MUSICZ.FNCの命令を使ったX-BASICプログラムは音楽演奏を行う
ミュージックプログラムに限られ、コマンド(関数)の戻り値を利用して実行制御を
行っているようなツールの動作は保証されない。また、XCでコンパイルも行えない。
逆にMUSICZ3.FNCの命令はMUSICZ.FNCのものと異なり、X-BASICコマンドラインに
直接打ち込んでの実行も行え、コンパイルも可能。コマンド(関数)の戻り値を利用
して実行制御するようなツールを制作することもできる。
MUSICZ3.FNCにおけるMUSICZ.FNCの命令実行機能は、互換性維持のためだけに
設けてあるため、曲の制作はZMSベースで行うことを奨励する。MUSICZ3.FNCは
X-BASIC上でミュージックツールなどを制作する場合等に利用するとよい。
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ MUSICZ3.FNCでは仕様変更のなされたMUSICZ.FNC命令 ┃
┃ ┃
┃ MUSICZ.FNCとMUSICZ3.FNCとでは以下の関数に置いてパラメータの与えかたや仕様 ┃
┃ ┃
┃に関して変更が加えられた。 ┃
┃ ┃
┃・m_alloc()はダミー命令となった。 ┃
┃ ┃
┃・m_stat()はパラメータ省略不可となり、さらにパラメータはチャンネルから ┃
┃ トラック番号に変更された。 ┃
┃ ┃
┃・m_rec()はI/F番号をパラメータとして取るようになった。 ┃
┃ (ほぼ同等の機能のzm_midi_rec()を新設) ┃
┃ ┃
┃・m_rstop()はI/F番号をパラメータとして取るようになった。 ┃
┃ (ほぼ同等の機能のzm_midi_rec_end()を新設) ┃
┃ ┃
┃・m_save()はダミー命令となった。 ┃
┃ ┃
┃・m_total()はダミー命令となった。(ほぼ同機能のzm_calc_total()を新設) ┃
┃ ┃
┃・zm_work()のパラメータであるトラック番号の有効範囲は1〜80から0〜65534に ┃
┃ 変更にされた。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
3.3. X-BASIC音楽プログラムをZMSへ変換する
ZMUSIC Ver.2.0用のX-BASIC用外部関数「MUSICZ.FNC」の命令を利用したX-BASIC
音楽プログラムを次の方法でZMSに変換することが出来る。
1.プログラムの先頭、あるいはX-BASICコマンドプロンプトから
zm_switch(1,"TEMP.ZMS")
を入力する。1は変換出力スイッチの設定で、'TEMP.ZMS'は出力ファイルの
ファイルネームに相当する。
2.変換したいX-BASIC音楽プログラムをRUNする。
以上の手順でZMSが出力される。
変換できるのはZMUSIC Ver.2.0用のX-BASIC用外部関数「MUSICZ.FNC」の命令のみで
ZMUSIC Ver.3.0用のX-BASIC外部関数「MUSICZ3.FNC」の命令は変換できない。
3.4. コマンドの使用にあたっての注意
MIDI楽器専用のコマンドは場合によっては楽器のメモリを書き換える。
十分に楽器側のマニュアルを読んでから実行すること。楽器側に大切なデータが
存在する場合は、楽器のメモリをファイルに保存しておくとよい(MEASURE9参照)。
3.5. MUSICZ3.FNC命令一覧
[注意]
備考欄の
setup(7):Output Assign (0〜4:Dry,Rev,Cho,Dir1,Dir2)
といった表記は実際にsetup(7)に格納すべき値が0〜4で、これに対応する
音源上でのパラメータがDry,Rev,Cho,Dir1,Dir2ということを表している。
つまりこの例でいけば、0がDryに、1がRev、2がChoに対応するということ。
*-----------------------------------------------------------------------------
zm_detect( mode )
*-----------------------------------------------------------------------------
機能 MUSICZ.FNC(Ver.2.0)命令実行におけるエラーの発生場所検出精度設定
引数 int mode:0=通常モード 1=高精度モード
戻り値 なし
備考 Ver.2.0のMUSICZ.FNCの命令でエラーが発生してもm_play()の部分で
「コンパイラでエラーを発生した」
としか報告されない。
本命例で高精度設定にすると行単位でエラーを検出できるようになるが
コンパイル時間が著しく長くなる(MUSICZ.FNC(Ver.2.0)時と比べて4〜8倍)。
(Ver.2.0以前とVer.3.0以降ではコンパイル方式がまったく違うため、その
エミュレーションに手間がかかってしまう。)
MUSICZ3.FNC(Ver.3.0)の命令のエラー検出精度はこの命令による設定とは
無関係に、常に、この命令でいう高精度モードで行われ、行単位でエラーが
検出される。
*-----------------------------------------------------------------------------
zm_switch( sw, fn )
*-----------------------------------------------------------------------------
機能 ZMSファイルの変換出力スイッチ
引数 char sw:0=出力OFF, 1=出力ON
str fn:出力ファイル名
戻り値 なし
備考 fnを省略するとデフォルトファイルネームとして'ZMUSIC.ZMS'が
カレントに作成される。
--------------------------------------------------------------------------------
zm_check_zmsc()
*-----------------------------------------------------------------------------
機能 Z-MUSICの常駐状態を検査する
引数 なし
戻り値 -1:エラー(常駐していなかった)
$3x4x:バージョンID
備考 バージョンIDはたとえばZMSC3.X Version 3.12が常駐していたならば
$3142が返ってくる。
*-----------------------------------------------------------------------------
zm_init( param )
*-----------------------------------------------------------------------------
機能 Z-MUSICと音源の初期化を行う
引数 int param:0(dummy)
戻り値 Z-MUSICのバージョンID
備考 paramは将来拡張用でかならず0を設定
バージョンIDはたとえばバージョン3.21ならば $00003241となる。
4の部分は固定値。
*-----------------------------------------------------------------------------
zm_assign( device, track)
*-----------------------------------------------------------------------------
機能 チャンネルとトラックの割り付けを設定する
引数 int device(上位16ビット):0=FM音源,1=ADPCM音源
$8000=MIDI1,$8001=MIDI2,$8002=MIDI3
-1=カレントMIDI
int device(下位16ビット):チャンネル番号0-15
int track:トラック番号0-65534
戻り値 0:正常終了
0以外:エラーコード
備考 カレントMIDIはMIDIインターフェース番号を指定しない場合の
デフォルトとなるものでzm_current_midi_out()で設定する
*-----------------------------------------------------------------------------
zm_vget( timbre, mode, buffer)
*-----------------------------------------------------------------------------
機能 FM音源音色を取り出す
引数 int timbre:0-32767
int mode:0=OPMDRV.X互換,1=AL/FB分離方式
dim char buffer(4,10):音色データ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char buffer(4,10)で表される音色データの書式(m,n)は以下のとおり。
音色フォーマット(OPMDRV.X互換方式)
(0,0):AF(フィードバック/アルゴリズム) (0〜63)
(0,1):OM(スロットマスク) (0〜15)
(0,2):WF(ウェーヴフォーム) (0〜3)
(0,3):SYC(シンクロ) (0,1)
(0,4):SPD(スピード) (0〜255)
(0,5):PMD (0〜127)
(0,6):AMD (0〜127)
(0,7):PMS (0〜7)
(0,8):AMS (0〜3)
(0,9):PAN (0〜3)
(0,10):DUMMY
(1,0):OP1, (2,0):OP2, (3,0):OP3, (4,0):OP4 AR(アタックレート) (0〜31)
(1,1):OP1, (2,1):OP2, (3,1):OP3, (4,1):OP4 1DR(1stディケイレート) (0〜31)
(1,2):OP1, (2,2):OP2, (3,2):OP3, (4,2):OP4 2DR(2ndディケイレート) (0〜31)
(1,3):OP1, (2,3):OP2, (3,3):OP3, (4,3):OP4 RR(リリースレート) (0〜15)
(1,4):OP1, (2,4):OP2, (3,4):OP3, (4,4):OP4 1DL(1stディケイレベル) (0〜15)
(1,5):OP1, (2,5):OP2, (3,5):OP3, (4,5):OP4 TL(トータルレベル) (0〜127)
(1,6):OP1, (2,6):OP2, (3,6):OP3, (4,6):OP4 KS(キースケーリング) (0〜3)
(1,7):OP1, (2,7):OP2, (3,7):OP3, (4,7):OP4 MUL(フェーズマルチプライ) (0〜15)
(1,8):OP1, (2,8):OP2, (3,8):OP3, (4,8):OP4 DT1(ディチューン1) (0〜7)
(1,9):OP1, (2,9):OP2, (3,9):OP3, (4,9):OP4 DT2(ディチューン2) (0〜3)
(1,10):OP1,(2,10):OP2,(3,10):OP3,(4,10):OP4 AME(AMSイネーブル) (0,1)
音色フォーマット(AL/FB分離方式)
(0,0):OP1, (1,0):OP2, (2,0):OP3, (3,0):OP4 AR(アタックレート) (0〜31)
(0,1):OP1, (1,1):OP2, (2,1):OP3, (3,1):OP4 1DR(1stディケイレート) (0〜31)
(0,2):OP1, (1,2):OP2, (2,2):OP3, (3,2):OP4 2DR(2ndディケイレート) (0〜31)
(0,3):OP1, (1,3):OP2, (2,3):OP3, (3,3):OP4 RR(リリースレート) (0〜15)
(0,4):OP1, (1,4):OP2, (2,4):OP3, (3,4):OP4 1DL(1stディケイレベル) (0〜15)
(0,5):OP1, (1,5):OP2, (2,5):OP3, (3,5):OP4 TL(トータルレベル) (0〜127)
(0,6):OP1, (1,6):OP2, (2,6):OP3, (3,6):OP4 KS(キースケーリング) (0〜3)
(0,7):OP1, (1,7):OP2, (2,7):OP3, (3,7):OP4 MUL(フェーズマルチプライ) (0〜15)
(0,8):OP1, (1,8):OP2, (2,8):OP3, (3,8):OP4 DT1(ディチューン1) (0〜7)
(0,9):OP1, (1,9):OP2, (2,9):OP3, (3,9):OP4 DT2(ディチューン2) (0〜3)
(0,10):OP1,(1,10):OP2,(2,10):OP3,(3,10):OP4 AME(AMSイネーブル) (0,1)
(4,0):AL(アルゴリズム) (0〜7)
(4,1):FB(フィードバック) (0〜7)
(4,2):OM(スロットマスク) (0〜15)
(4,3):PAN (0〜3)
(4,4):WF(ウェーヴフォーム) (0〜3)
(4,5):SYC(シンクロ) (0,1)
(4,6):SPD(スピード) (0〜255)
(4,7):PMD (0〜127)
(4,8):AMD (0〜127)
(4,9):PMS (0〜7)
(4,10):AMS (0〜3)
*-----------------------------------------------------------------------------
zm_vset( timbre, mode, buffer)
*-----------------------------------------------------------------------------
機能 FM音源音色を登録する
引数 int timbre:0-32767
int mode:0=OPMDRV.X互換,1=AL/FB分離方式
dim char buffer(4,10):音色データ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 音色フォーマットに付いてはzm_vget()とまったく同じ
*-----------------------------------------------------------------------------
zm_tempo( tempo, mode )
*-----------------------------------------------------------------------------
機能 テンポを設定する
引数 int tempo:テンポの値(1分間の4分音符の数),-1テンポ取得のみを行う
int mode:0=ZMUSICに登録する(通常)
-1=単なるテンポの変更でZMUSICには登録しない
戻り値 設定前のテンポとタイマ値が戻ってくる
上位16ビット:タイマ値
下位16ビット:テンポ値
備考 テンポ値の有効範囲は使用するテンポ源タイマの種類によって異なる。
TIMER-A:20〜32767
TIMER-B:20〜5000
YM3802:1〜32767
*-----------------------------------------------------------------------------
zm_set_timer_value( timer, mode )
*-----------------------------------------------------------------------------
機能 テンポをタイマ値で設定する
引数 int timer:タイマの値,-1タイマ値取得のみを行う
int mode:0=ZMUSICに登録する(通常)
-1=単なるテンポの変更でZMUSICには登録しない
戻り値 設定前のテンポとタイマ値が戻ってくる
上位16ビット:テンポ値
下位16ビット:タイマ値
備考 テンポ値の有効範囲は使用するテンポ源タイマの種類によって異なる。
TIMER-A:0〜1023
TIMER-B:0〜255
YM3802:0〜8191
*-----------------------------------------------------------------------------
zm_play( track)
*-----------------------------------------------------------------------------
機能 演奏開始制御
引数 dim int(char) track(〜):演奏を開始したいトラック番号の並び
戻り値 なし
備考 dim int track()は
{ トラック番号*65536+トラック番号, トラック番号*65536+トラック番号,…-1}
という構成を取る。ただしトラック番号は0-65534の範囲
*-----------------------------------------------------------------------------
zm_play_all()
*-----------------------------------------------------------------------------
機能 全トラック演奏開始制御
引数 なし
戻り値 なし
*-----------------------------------------------------------------------------
zm_play2()
*-----------------------------------------------------------------------------
機能 演奏開始制御
引数 なし
戻り値 なし
備考 現在ZMUSICの演奏データバッファに存在する演奏データをはじめから
(共通コマンドの実行も含めて)演奏する。
*-----------------------------------------------------------------------------
zm_play_again()
*-----------------------------------------------------------------------------
機能 演奏開始制御
引数 なし
戻り値 なし
備考 前回行われたzm_play()を再び実行する
*-----------------------------------------------------------------------------
zm_play_status_all_ch( channel_list )
*-----------------------------------------------------------------------------
機能 全チャンネル演奏状態検査
引数 dim int(char) channel_list(〜):検査結果を格納するための配列
戻り値 なし
備考 演奏状態であるチャンネルIDがdim int channel_list()に格納される。
{ チャンネルID,チャンネルID,...,-1 }
のような構成を取る
バッファサイズは演奏している(トラック数+1)*4バイト必要。
なおチャンネルIDは
(上位16ビット):0=FM音源,1=ADPCM音源
$8000=MIDI1,$8001=MIDI2,$8002=MIDI3
-1=カレントMIDI
(下位16ビット):チャンネル番号0-15
で表される。
*-----------------------------------------------------------------------------
zm_play_status_all_tr( track_list )
*-----------------------------------------------------------------------------
機能 全トラック演奏状態検査
引数 dim int(char) track_list(〜):検査結果を格納するための配列
戻り値 なし
備考 演奏状態であるトラック番号(0-65534の範囲)がdim int track_list()に
格納される。
{ トラック番号*65536+トラック番号,トラック番号*65536+トラック番号,…,-1 }
のような構成を取る
配列の要素数は演奏している(トラック数+1)必要。
*-----------------------------------------------------------------------------
zm_play_status_ch( channel )
*-----------------------------------------------------------------------------
機能 チャンネル演奏状態検査
引数 int channel(上位16ビット):0=FM音源,1=ADPCM音源
$8000=MIDI1,$8001=MIDI2,$8002=MIDI3
-1=カレントMIDI
int channel(下位16ビット):チャンネル番号0-15
戻り値 0:演奏されていない
0以外:演奏されている
*-----------------------------------------------------------------------------
zm_play_status_tr( track )
*-----------------------------------------------------------------------------
機能 トラック演奏状態検査
引数 int track:検査対象トラック番号(0-65534)
戻り値 0:演奏されていない
0以外:演奏されている
*-----------------------------------------------------------------------------
zm_stop( track )
*-----------------------------------------------------------------------------
機能 演奏停止制御
引数 dim int(char) track(〜):演奏を停止したいトラック番号の並び
戻り値 なし
備考 dim int track()は
{ トラック番号*65536+トラック番号, トラック番号*65536+トラック番号,…-1}
という構成を取る。ただしトラック番号は0-65534の範囲
*-----------------------------------------------------------------------------
zm_stop_all()
*-----------------------------------------------------------------------------
機能 全トラック演奏停止制御
引数 なし
戻り値 なし
*-----------------------------------------------------------------------------
zm_cont( track)
*-----------------------------------------------------------------------------
機能 演奏再開制御
引数 dim int(char) track(〜):演奏を再開したいトラック番号の並び
戻り値 なし
備考 dim int track()は
{ トラック番号*65536+トラック番号, トラック番号*65536+トラック番号,…-1}
という構成を取る。ただしトラック番号は0-65534の範囲
*-----------------------------------------------------------------------------
zm_cont_all()
*-----------------------------------------------------------------------------
機能 全トラック演奏再開制御
引数 なし
戻り値 なし
*-----------------------------------------------------------------------------
zm_atoi( track )
*-----------------------------------------------------------------------------
機能 演奏トラックデータの先頭アドレス取得
引数 int track:トラック番号0-65534
戻り値 0:エラー
0以外:指定演奏トラックの先頭アドレス
*-----------------------------------------------------------------------------
zm_set_master_clock( mstrclk )
*-----------------------------------------------------------------------------
機能 拍子,メトロノーム速度,調号,全音符の絶対音長の設定
引数 int side:0=音楽演奏,1=効果音
dim char(int) mstrclk(7):拍子,メトロノーム速度,調号,全音符の絶対音長を
格納した配列
戻り値 なし
備考 side=0で通常音楽演奏側の設定、side=1で効果音演奏側の設定となる。
dim char mstrclkは
dim char mstrclk(7)={
meter_n, /*拍子分子(1-255)*/
meter_d, /*拍子分母(1-255)*/
metronome, /*音楽的音長(1-255)*/
dummy,
key1, /*調号1(0:C,負値:♭の数,正値:♯の数)*/
key2, /*調号2(Major=0,Minor=1)*/
master_clock_H, /*全音符の絶対音長(1-65535)の上位16ビット*/
master_clock_L /*全音符の絶対音長(1-65535)の下位16ビット*/
};
*-----------------------------------------------------------------------------
zm_play_zmd( size, zmd )
*-----------------------------------------------------------------------------
機能 ZMDの演奏
引数 int size:ZMDのサイズ(ヘッダ$1A,'ZmuSiC',$30の分は含まれていても
含まれていなくてもどちらでもよい)
0を設定するとZMUSIC本体のバッファへ演奏データを
取り込む動作を省略する。
dim char(int) zmd(〜):ZMDを格納している配列(ヘッダを含まず)
戻り値 0:正常終了
0以外:エラーコード
備考 int size=0とするには、dim char zmd()からの領域の存在が演奏中も
保証されることを前提とする。
*-----------------------------------------------------------------------------
zm_play_zmd_se( zmd )
*-----------------------------------------------------------------------------
機能 ZMDを効果音として演奏する
引数 dim char(int) zmd(〜):ZMDの格納配列(ヘッダを含まず)
戻り値 0:正常終了
0以外:エラーコード
備考 dim char zmd()からの領域の存在は、演奏中も保証されなければならない。
*-----------------------------------------------------------------------------
zm_se_play( zmd )
*-----------------------------------------------------------------------------
機能 効果音ZMDの演奏
引数 dim char(int) zmd(〜):ZMDの格納配列(トラック・チャンネル情報テーブルから)
戻り値 0:正常終了
0以外:エラーコード
備考 dim char zmd()からの領域の存在は、演奏中も保証されなければならない。
トラック・チャンネル情報テーブルに付いてはMEASURE12を参照。
*-----------------------------------------------------------------------------
zm_se_adpcm1(data_type,volume,frq,pan,size,priority,ch,adpcm)
*-----------------------------------------------------------------------------
機能 (AD)PCM効果音の演奏
引数 char data_type:データタイプ(-1:ADPCM,1:16bitPCM,2:8bitPCM)
char volume:音量(0-127,64:標準)
char frq:再生周波数(0:3.9kHz 1:5.2kHz 2:7.8kHz 3:10.4kHz 4:15.6kHz)
char pan:パンポット(0-3 / $80+0-127)
int size:再生するADPCMのデータサイズ
int priority:効果音優先度(0-255/0が最も低い)
int ch:再生チャンネル(0-15)
dim char(int) adpcm(〜):(AD)PCMデータを格納している配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char adpcm()からの領域の存在は、演奏中も保証されなければならない。
*-----------------------------------------------------------------------------
zm_se_adpcm2(data_type,volume,frq,pan,data_number,priority,ch)
*-----------------------------------------------------------------------------
機能 ZMUSICに登録してある(AD)PCM効果音の演奏
引数 char data_type:データタイプ(-1:ADPCM,1:16bitPCM,2:8bitPCM)
char volume:音量(0-127,64:標準)
char frq:パンポット(0-3 / $80+0-127)
char pan:再生周波数(0:3.9kHz 1:5.2kHz 2:7.8kHz 3:10.4kHz 4:15.6kHz)
int data_number:PCMデータ番号(d15が1ならば音色番号($8000+0-32767),
0ならばノート番号(0-32767)指定)
int priority:効果音優先度(0-255/0が最も低い)
int ch:再生チャンネル(0-15)
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_intercept_play( mode )
*-----------------------------------------------------------------------------
機能 演奏開始制御の遮断制御
引数 int mode:-1 演奏開始の遮断を行う
0 演奏開始の遮断の解除と演奏開始
1 演奏開始の遮断の解除
戻り値 なし
備考 演奏開始の遮断を設定するとzm_play()などの演奏開始命令を実行しても
演奏が開始されなくなる。
*-----------------------------------------------------------------------------
zm_current_midi_in( port )
*-----------------------------------------------------------------------------
機能 カレントMIDI-IN端子の設定
引数 int port:MIDIポートの番号(0-3)
-1では問い合わせのみを行う
戻り値 以前のカレントMIDI-INのポート番号(0-3)
*-----------------------------------------------------------------------------
zm_current_midi_out( port )
*-----------------------------------------------------------------------------
機能 カレントMIDI-OUT端子の設定
引数 int port:MIDIポートの番号(0-3)
-1では問い合わせのみを行う
戻り値 以前のカレントMIDI-OUTのポート番号(0-3)
*-----------------------------------------------------------------------------
zm_midi_transmission( port,size,midi )
*-----------------------------------------------------------------------------
機能 MIDIデータメッセージの送信
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:送信データサイズ
0とした場合はテキスト型MIDIデータ(MDD)とみなして送信する
0以外ではバイナリデータとみなして送信する
dim char(int) midi(〜):送信するMIDIデータを格納した配列
戻り値 送信データの8ビット加算合計値
備考 MDDとはZMUSIC v2.0相当でMIDIファイルの標準としていたフォーマット。
$0d,$0aで始まり16進数のテキストでMIDIメッセージを記述したファイル。
送信データサイズを指定した場合はバイナリのMIDIメッセージと
みなして送信される。ZMUSICが扱えるバイナリのMIDIメッセージには
スタンダードMIDIファイル(FORMAT0)と単なるバイナリデータ列の
2種類がありこのデータの種類の判別はZMUSICが自動で行う。
*-----------------------------------------------------------------------------
zm_exclusive( port,size,id,midi )
*-----------------------------------------------------------------------------
機能 エクスクルーシブメッセージの送信
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:送信データサイズ
int id:d0-d7=MODEL ID(0-127)
d8-d15=DEVICE ID(0-127)
d16-d23=MAKER ID(0-127)
dim char(int) midi(〜):送信するMIDIデータを格納した配列
戻り値 なし
備考 エクスクルーシブヘッダの$F0とEOXの$F7は自動送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
MAKER IDをRoland($41)とした場合はデータ列をローランド・エクスクルーシブ
フォーマットのデータとみなし、コマンドメッセージ(DT2:$12)やチェックサム
バイト付きで送信する。
MAKER IDをYAMAHA($43)とした場合はデータ列をヤマハ・エクスクルーシブ
フォーマットのデータとみなし、データ長やチェックサムバイト付きで送信す
る。
*-----------------------------------------------------------------------------
zm_set_eox_wait( port,wait )
*-----------------------------------------------------------------------------
機能 EOX送信後のウェイトを設定する
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int wait:0-65535
戻り値 それまでのウェイト値
*-----------------------------------------------------------------------------
zm_midi_inp1( port,mode )
*-----------------------------------------------------------------------------
機能 MIDIデータの1バイト入力
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int mode:0 1回受信を試みてすぐ帰還
1 受信するまで無限ループ
戻り値 d31=1 読みこぼし発生 0:正常読みだし
d15=1 データ無し 0:データ有り
d0-d7 読みだしデータ
*-----------------------------------------------------------------------------
zm_midi_out1( port,data )
*-----------------------------------------------------------------------------
機能 MIDIデータの1バイト出力
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
char data:送信データ(0-255)
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_midi_rec( port )
*-----------------------------------------------------------------------------
機能 MIDIデータのレコーディング開始
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_midi_rec_end( port )
*-----------------------------------------------------------------------------
機能 MIDIデータのレコーディング終了
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_gs_reset( port, id )
*-----------------------------------------------------------------------------
機能 GS音源の初期化
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int id:DEVICE ID(0-127,-1:current)
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_gs_partial_reserve( port,id,rsv )
*-----------------------------------------------------------------------------
機能 GS音源のパーシャルリザーブ
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int id:DEVICE ID(0-127,-1:current)
dim char(int) rsv(15):パート1〜パート16までのパーシャルリザーブ値が
格納されている配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char rsv()にパーシャルリザーブ値を16パート分格納しておく。
また、合計が楽器の最大同時発声数以下にならなければならない。
rsv(0)=パート1,rsv(1)=パート2…,rsv(15)=パート16というふうに対応する。
なお、パート10はリズムパートに対応する。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
*-----------------------------------------------------------------------------
zm_gs_reverb( port,size,id,rvb )
*-----------------------------------------------------------------------------
機能 GS音源のリバーブ・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:リバーブパラメータ・データサイズ(1-7)
int id:DEVICE ID(0-127,-1:current)
dim char(int) rvb(0-6):リバーブパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char rvb()にリバーブパラメータを記述しておく。sizeは7以内で、
指定したsize個分のパラメータがGS音源へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される
rvb(0):REVERB MACRO 00:Room1,01:Room2,02:Room3,03:Hall1,04:Hall2
05:Plate,06:Delay,07:Panning Delay(FB)
rvb(1):REVERB CHARACTER ($00〜$07)
rvb(2):REVERB PRE-LPF ($00〜$07)
rvb(3):REVERB LEVEL ($00〜$7F)
rvb(4):REVERB TIME ($00〜$7F)
rvb(5):REVERB DELAY FEEDBACK ($00〜$7F)
rvb(6):REVERB SEND LEVEL TO CHORUS ($00〜$7F)
(SC55マニュアルp79参照)
*-----------------------------------------------------------------------------
zm_gs_chorus( port,size,id,cho )
*-----------------------------------------------------------------------------
機能 GS音源のコーラス・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:コーラスパラメータ・データサイズ(1-8)
int id:DEVICE ID(0-127,-1:current)
dim char(int) cho(0-7):コーラスパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char cho()からの領域にコーラスパラメータを記述しておく。
sizeは8以内で指定したsize個分のパラメータがGS音源へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
cho(0):CHORUS MACRO 00:Chorus1,01:Chorus2,02:Chorus3,03:Chorus4
04:Feedback Chorus,05:Flanger,06:Short Delay
07:Short Delay(FB)
cho(1):CHORUS PRE-LPF ($00〜$07)
cho(2):CHORUS LEVEL ($00〜$7F)
cho(3):CHORUS FEEDBACK ($00〜$7F)
cho(4):CHORUS DELAY ($00〜$7F)
cho(5):CHORUS RATE ($00〜$7F)
cho(6):CHORUS DEPTH ($00〜$7F)
cho(7):CHORUS SEND LEVEL TO REVERB ($00〜$7F)
(SC55マニュアルp79参照)
*-----------------------------------------------------------------------------
zm_gs_part_parameter( port,size,pt_id,param )
zm_gs_part_setup( port,size,pt_id,param )
*-----------------------------------------------------------------------------
機能 GS音源のパート・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:パートパラメータ・データサイズ(1-119)
int pt_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d31=PART NUMBER(1-16)
dim char(int) param(0-118):パートパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char param()にパートパラメータを記述しておく。sizeは119以内で
指定したsize個分のパラメータがGS音源へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
param(0):Rx CHANNEL (1〜16,17=OFF)
param(1):Rx PITCH BEND (0〜1:OFF/ON)
param(2):Rx CH PRESSURE(CAf) (0〜1:OFF/ON)
param(3):Rx PROGRAM CHANGE (0〜1:OFF/ON)
param(4):Rx CONTROL CHANGE (0〜1:OFF/ON)
param(5):Rx POLY PRESSURE(PAf) (0〜1:OFF/ON)
param(6):Rx NOTE MESSAGE (0〜1:OFF/ON)
param(7):Rx RPN (0〜1:OFF/ON)
param(8):Rx NRPN (0〜1:OFF/ON)
param(9):Rx MODURATION (0〜1:OFF/ON)
param(10):Rx VOLUME (0〜1:OFF/ON)
param(11):Rx PANPOT (0〜1:OFF/ON)
param(12):Rx EXPRESSION (0〜1:OFF/ON)
param(13):Rx HOLD1 (0〜1:OFF/ON)
param(14):Rx PORTAMENTO (0〜1:OFF/ON)
param(15):Rx SOSTENUTO (0〜1:OFF/ON)
param(16):Rx SOFT (0〜1:OFF/ON)
param(17):MONO/POLY MODE (0〜1:MONO/POLY)
param(18):ASSIGN MODE (0:SINGLE,1:LIMITED-MULTI,2:FULL-MULTI)
param(19):USE FOR RHYTHM PART (0:OFF,1:MAP1,2:MAP2)
param(20):PITCH KEY SHIFT ($28〜$58:−24〜+24[semitone])
param(21):PITCH OFFSET FINE(upper) ($08〜$F8:−12.0〜+12.0[Hz])
param(22):PITCH OFFSET FINE(lower) 〃
param(23):PART LEVEL (0〜127)
param(24):VELOCITY SENSE DEPTH (0〜127)
param(25):VELOCITY SENSE OFFSET (0〜127)
param(26):PART PANPOT (0:RANDOM,01(LEFT)〜64〜127(RIGHT))
param(27):KEY RANGE LOW (0〜127:C-1〜G9)
param(28):KEY RANGE HIGH (0〜127:C-1〜G9)
param(29):CC1 CONTROL NUMBER (0〜127)
param(30):CC2 CONTROL NUMBER (0〜127)
param(31):CHORUS SEND DEPTH (0〜127)
param(32):REVERB SEND DEPTH (0〜127)
param(33):Vibrato rate ($0E〜$72:−50〜+50)
param(34):Vibrato depth ($0E〜$72:−50〜+50)
param(35):TVF cutoff freq. ($0E〜$50:−50〜+16)
param(36):TVF resonance ($0E〜$72:−50〜+50)
param(37):TVF&TVA Env.attack ($0E〜$72:−50〜+50)
param(38):TVF&TVA Env.decay ($0E〜$72:−50〜+50)
param(39):TVF&TVA Env.release ($0E〜$72:−50〜+50)
param(40):Vibrato delay ($0E〜$72:−50〜+50)
param(41):SCALE TUNING C ($00〜$7F:−64〜+63[cent])
param(42):SCALE TUNING C# ($00〜$7F:−64〜+63[cent])
param(43):SCALE TUNING D ($00〜$7F:−64〜+63[cent])
param(44):SCALE TUNING D# ($00〜$7F:−64〜+63[cent])
param(45):SCALE TUNING E ($00〜$7F:−64〜+63[cent])
param(46):SCALE TUNING F ($00〜$7F:−64〜+63[cent])
param(47):SCALE TUNING F# ($00〜$7F:−64〜+63[cent])
param(48):SCALE TUNING G ($00〜$7F:−64〜+63[cent])
param(49):SCALE TUNING G# ($00〜$7F:−64〜+63[cent])
param(50):SCALE TUNING A ($00〜$7F:−64〜+63[cent])
param(51):SCALE TUNING A# ($00〜$7F:−64〜+63[cent])
param(52):SCALE TUNING B ($00〜$7F:−64〜+63[cent])
param(53):MOD PITCH CONTROL ($28〜$58:−24〜+24[semitone])
param(54):MOD TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
param(55):MOD AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
param(56):MOD LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(57):MOD LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(58):MOD LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(59):MOD LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
param(60):MOD LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(61):MOD LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(62):MOD LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(63):MOD LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
param(64):BEND PITCH CONTROL ($28〜$58:−24〜+24[semitone])
param(65):BEND TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
param(66):BEND AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
param(67):BEND LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(68):BEND LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(69):BEND LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(70):BEND LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
param(71):BEND LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(72):BEND LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(73):BEND LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(74):BEND LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
param(75):CAf PITCH CONTROL ($28〜$58:−24〜+24[semitone])
param(76):CAf TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
param(77):CAf AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
param(78):CAf LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(79):CAf LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(80):CAf LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(81):CAf LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
param(82):CAf LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(83):CAf LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(84):CAf LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(85):CAf LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
param(86):PAf PITCH CONTROL ($28〜$58:−24〜+24[semitone])
param(87):PAf TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
param(88):PAf AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
param(89):PAf LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(90):PAf LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(91):PAf LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(92):PAf LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
param(93):PAf LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(94):PAf LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(95):PAf LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(96):PAf LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
param(97):CC1 PITCH CONTROL ($28〜$58:−24〜+24[semitone])
param(98):CC1 TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
param(99):CC1 AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
param(100):CC1 LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(101):CC1 LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(102):CC1 LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(103):CC1 LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
param(104):CC1 LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(105):CC1 LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(106):CC1 LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(107):CC1 LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
param(108):CC2 PITCH CONTROL ($28〜$58:−24〜+24[semitone])
param(109):CC2 TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
param(110):CC2 AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
param(111):CC2 LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(112):CC2 LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(113):CC2 LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(114):CC2 LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
param(115):CC2 LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(116):CC2 LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(117):CC2 LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(118):CC2 LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
(SC55のマニュアルp75,p79〜p80参照)
*-----------------------------------------------------------------------------
zm_gs_drum_setup( port,size,dr_id,param )
*-----------------------------------------------------------------------------
機能 GS音源のドラム・セットアップ設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:ドラム・セットアップ・パラメータ・データサイズ(1-8)
int dr_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d23=NOTE NUMBER(0-127)
d24-d31=MAP NUMBER(0-1)
dim char(int) param(0-7):ドラム・セットアップ・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char param()にドラム・セットアップ・パラメータを記述しておく。
sizeは8以内で指定したsize個分のパラメータがGS音源へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
param(0):PLAY KEY NUMBER (0〜127)
param(1):LEVEL (0〜127)
param(2):ASSIGN GROUP NUMBER (0:NON,1〜127)
param(3):PANPOT (0:RANDOM,01(LEFT)〜64〜127(RIGHT))
param(4):REVERB DEPTH (0〜127:0.0〜1.0)
param(5):CHORUS DEPTH (0〜127:0.0〜1.0)
param(6):Rx NOTE OFF (0〜1:OFF/ON)
param(7):Rx NOTE ON (0〜1:OFF/ON)
(SC55マニュアルp75,p82参照)
*-----------------------------------------------------------------------------
zm_gs_drum_name( port,size,mp_id,name );
*-----------------------------------------------------------------------------
機能 GS音源のドラム・セット名設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:ドラム・セットアップ・パラメータ・データサイズ(1-8)
int mp_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d31=MAP NUMBER(0,1)
str name:ドラム・セット名文字列格納アドレス
戻り値 0:正常終了
0以外:エラーコード
備考 文字列は12文字以内でchar *nameからの領域に文字列を記述しておく。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
(SC55マニュアルp82参照)
*-----------------------------------------------------------------------------
zm_gs_print( port,size,id,mes )
*-----------------------------------------------------------------------------
機能 GS音源の画面へのメッセージ出力
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:メッセージ長(1-32)
int id:d0-d15=DEVICE ID(0-127,-1:current)
str mes:文字列
戻り値 0:正常終了
0以外:エラーコード
備考 メッセージは32文字以内でstr mesに文字列を記述しておく。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
*-----------------------------------------------------------------------------
zm_gs_display( port,id,pattern )
*-----------------------------------------------------------------------------
機能 GS音源の画面へのドットパターン出力
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int id:d0-d15=DEVICE ID(0-127,-1:current)
dim int(char) pattern(7):ドットパターン格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim int pattern()にドットパターンを記述しておく。
フォーマットは
{ 1段目のドットパターン*65536+2段目のドットパターン,
3段目のドットパターン*65536+3段目のドットパターン,
5段目のドットパターン*65536+4段目のドットパターン,
:
15段目のドットパターン*65536+16段目のドットパターン}
に従う。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
例
/*SC55の画面に"善"を表示する*/
dim int d(7)={ %0001000000010000*65536+%0000100000100000,
%0111111111111100*65536+%0000000100000000,
%0011111111111000*65536+%0000000100000000,
%0111111111111100*65536+%0001000100010000,
%0000100100100000*65536+%1111111111111110,
%0000000000000000*65536+%0011111111111000,
%0010000000001000*65536+%0010000000001000,
%0011111111111000*65536+%0010000000001000}
gs_display(-1,-1,d)
*-----------------------------------------------------------------------------
zm_gm_system_on( port )
*-----------------------------------------------------------------------------
機能 GM音源のリセット
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_sc88_mode_set( port,md_id )
*-----------------------------------------------------------------------------
機能 SC88モード設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int md_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d31=SC88 MODE(0:Single, 1:Double)
戻り値 0:正常終了
0以外:エラーコード
備考 idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
*-----------------------------------------------------------------------------
zm_sc88_reverb( port,size,id,rvb )
*-----------------------------------------------------------------------------
機能 SC88のリバーブ・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:リバーブパラメータ・データサイズ(1-8)
int id:DEVICE ID(0-127,-1:current)
dim char(int) rvb(7):リバーブパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char rvb()にリバーブパラメータを記述しておく。sizeは8以内で、
指定したsize個分のパラメータがSC88へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される
rvb(0):REVERB MACRO 00:Room1,01:Room2,02:Room3,03:Hall1,04:Hall2
05:Plate,06:Delay,07:Panning Delay(FB)
rvb(1):REVERB CHARACTER ($00〜$07)
rvb(2):REVERB PRE-LPF ($00〜$07)
rvb(3):REVERB LEVEL ($00〜$7F)
rvb(4):REVERB TIME ($00〜$7F)
rvb(5):REVERB DELAY FEEDBACK ($00〜$7F)
rvb(6):REVERB SEND LEVEL TO CHORUS ($00〜$7F/SC88ではダミー)
rvb(7):REVERB PRE-DELAY TIME ($00〜$7F)
(SC88VLマニュアルp77参照)
*-----------------------------------------------------------------------------
zm_sc88_chorus( port,size,id,cho )
*-----------------------------------------------------------------------------
機能 SC88のコーラス・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:コーラスパラメータ・データサイズ(1-9)
int id:DEVICE ID(0-127,-1:current)
dim char(int) cho(8):コーラスパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char cho()にコーラスパラメータを記述しておく。sizeは9以内で
指定したsize個分のパラメータがSC88へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
cho(0):CHORUS MACRO 00:Chorus1,01:Chorus2,02:Chorus3,03:Chorus4
04:Feedback Chorus,05:Flanger,06:Short Delay
07:Short Delay(FB)
cho(1):CHORUS PRE-LPF ($00〜$07)
cho(2):CHORUS LEVEL ($00〜$7F)
cho(3):CHORUS FEEDBACK ($00〜$7F)
cho(4):CHORUS DELAY ($00〜$7F)
cho(5):CHORUS RATE ($00〜$7F)
cho(6):CHORUS DEPTH ($00〜$7F)
cho(7):CHORUS SEND LEVEL TO REVERB ($00〜$7F)
cho(8):CHORUS SEND LEVEL TO DELAY ($00〜$7F)
(SC88VLマニュアルp78参照)
*-----------------------------------------------------------------------------
zm_sc88_delay( port,size,id,dly )
*-----------------------------------------------------------------------------
機能 SC88のディレイ・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:ディレイパラメータ・データサイズ(1-11)
int id:DEVICE ID(0-127,-1:current)
dim char dly(0-10):ディレイパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char dly()にリバーブパラメータを記述しておく。sizeは11以内で、
指定したsize個分のパラメータがSC88へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される
dly(0):DELAY MACRO 00:Delay1,01:Delay2,02:Delay3,03:Delay4,04:Pan Delay1
05:Pan Delay2,06:Pan Delay3,07:Pan Delay4
08:Delay to Reverb,09:Pan Repeat
dly(1):DELAY PRE-LPF ($00〜$07)
dly(2):DELAY TIME CENTER ($01〜$73:0.1ms〜sec)
dly(3):DELAY TIME RATIO LEFT ($01〜$78:4〜500%)
dly(4):DELAY TIME RATIO RIGHT ($01〜$78:4〜500%)
dly(5):DELAY LEVEL CENTER ($00〜$7F)
dly(6):DELAY LEVEL LEFT ($00〜$7F)
dly(7):DELAY LEVEL RIGHT ($00〜$7F)
dly(8):DELAY LEVEL ($00〜$7F)
dly(9):DELAY FEEDBACK ($00〜$7F:-64〜+63)
dly(10):DELAY SENDLEVEL TO REVERB ($00〜$7F)
(SC88VLマニュアルp78参照)
*-----------------------------------------------------------------------------
zm_sc88_equalizer( port,size,id,eql )
*-----------------------------------------------------------------------------
機能 SC88のイコライザ・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:イコライザパラメータ・データサイズ(1-4)
int id:DEVICE ID(0-127,-1:current)
dim char eql(0-3):イコライザパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char eql()にコーラスパラメータを記述しておく。sizeは4以内で
指定したsize個分のパラメータがSC88へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
eql(0):EQ LOW FREQ (0,1:200Hz,400Hz)
eql(1):EQ LOW GAIN ($34〜$4c:-12〜+12dB)
eql(2):EQ HIGH FREQ (0,1:3kHz,6kHz)
eql(3):EQ HIGH GAIN ($34〜$4c:-12〜+12dB)
(SC88VLマニュアルp78参照)
*-----------------------------------------------------------------------------
zm_sc88_part_parameter( port,size,pt_id,param )
*-----------------------------------------------------------------------------
機能 SC88のパート・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:パートパラメータ・データサイズ(1-127)
int pt_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d31=PART NUMBER(1-16)
dim char param(0-126):パートパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char param()にパートパラメータを記述しておく。sizeは127以内で
指定したsize個分のパラメータがSC88へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
param(0):Rx CHANNEL (1〜16,17=OFF)
param(1):Rx PITCH BEND (0〜1:OFF/ON)
param(2):Rx CH PRESSURE(CAf) (0〜1:OFF/ON)
param(3):Rx PROGRAM CHANGE (0〜1:OFF/ON)
param(4):Rx CONTROL CHANGE (0〜1:OFF/ON)
param(5):Rx POLY PRESSURE(PAf) (0〜1:OFF/ON)
param(6):Rx NOTE MESSAGE (0〜1:OFF/ON)
param(7):Rx RPN (0〜1:OFF/ON)
param(8):Rx NRPN (0〜1:OFF/ON)
param(9):Rx MODURATION (0〜1:OFF/ON)
param(10):Rx VOLUME (0〜1:OFF/ON)
param(11):Rx PANPOT (0〜1:OFF/ON)
param(12):Rx EXPRESSION (0〜1:OFF/ON)
param(13):Rx HOLD1 (0〜1:OFF/ON)
param(14):Rx PORTAMENTO (0〜1:OFF/ON)
param(15):Rx SOSTENUTO (0〜1:OFF/ON)
param(16):Rx SOFT (0〜1:OFF/ON)
param(17):MONO/POLY MODE (0〜1:MONO/POLY)
param(18):ASSIGN MODE (0:SINGLE,1:LIMITED-MULTI,2:FULL-MULTI)
param(19):USE FOR RHYTHM PART (0:OFF,1:MAP1,2:MAP2)
param(20):PITCH KEY SHIFT ($28〜$58:−24〜+24[semitone])
param(21):PITCH OFFSET FINE(upper) ($08〜$F8:−12.0〜+12.0[Hz])
param(22):PITCH OFFSET FINE(lower) 〃
param(23):PART LEVEL (0〜127)
param(24):VELOCITY SENSE DEPTH (0〜127)
param(25):VELOCITY SENSE OFFSET (0〜127)
param(26):PART PANPOT (0:RANDOM,01(LEFT)〜64〜127(RIGHT))
param(27):KEY RANGE LOW (0〜127:C-1〜G9)
param(28):KEY RANGE HIGH (0〜127:C-1〜G9)
param(29):CC1 CONTROL NUMBER (0〜127)
param(30):CC2 CONTROL NUMBER (0〜127)
param(31):CHORUS SEND LEVEL (0〜127)
param(32):REVERB SEND LEVEL (0〜127)
param(33):Rx BANK SELECT (0:OFF,1:ON)
param(34):Rx BANK SELECT LSB (0:OFF,1:ON)
param(35):PITCH FINE TUNE(Upper) ($00 00〜$40 00〜$7f 7f:-100〜0〜+100)
param(36):PITCH FINE TUNE(Lower)
param(37):DELAY SEND LEVEL (0〜127)
param(38):Vibrato rate ($00〜$7f:−64〜+63)
param(39):Vibrato depth ($00〜$7f:−64〜+63)
param(40):TVF cutoff freq. ($00〜$7f:−64〜+63)
param(41):TVF resonance ($00〜$7f:−64〜+63)
param(42):TVF&TVA Env.attack ($00〜$7f:−64〜+63)
param(43):TVF&TVA Env.decay ($00〜$7f:−64〜+63)
param(44):TVF&TVA Env.release ($00〜$7f:−64〜+63)
param(45):Vibrato delay ($00〜$7f:−64〜+63)
param(46):SCALE TUNING C ($00〜$7F:−64〜+63[cent])
param(47):SCALE TUNING C# ($00〜$7F:−64〜+63[cent])
param(48):SCALE TUNING D ($00〜$7F:−64〜+63[cent])
param(49):SCALE TUNING D# ($00〜$7F:−64〜+63[cent])
param(50):SCALE TUNING E ($00〜$7F:−64〜+63[cent])
param(51):SCALE TUNING F ($00〜$7F:−64〜+63[cent])
param(52):SCALE TUNING F# ($00〜$7F:−64〜+63[cent])
param(53):SCALE TUNING G ($00〜$7F:−64〜+63[cent])
param(54):SCALE TUNING G# ($00〜$7F:−64〜+63[cent])
param(55):SCALE TUNING A ($00〜$7F:−64〜+63[cent])
param(56):SCALE TUNING A# ($00〜$7F:−64〜+63[cent])
param(57):SCALE TUNING B ($00〜$7F:−64〜+63[cent])
param(58):MOD PITCH CONTROL ($28〜$58:−24〜+24[semitone])
param(59):MOD TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
param(60):MOD AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
param(61):MOD LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(62):MOD LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(63):MOD LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(64):MOD LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
param(65):MOD LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(66):MOD LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(67):MOD LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(68):MOD LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
param(69):BEND PITCH CONTROL ($40〜$58:−24〜+24[semitone])
param(70):BEND TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
param(71):BEND AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
param(72):BEND LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(73):BEND LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(74):BEND LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(75):BEND LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
param(76):BEND LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(77):BEND LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(78):BEND LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(79):BEND LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
param(80):CAf PITCH CONTROL ($28〜$58:−24〜+24[semitone])
param(81):CAf TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
param(82):CAf AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
param(83):CAf LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(84):CAf LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(85):CAf LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(86):CAf LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
param(87):CAf LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(88):CAf LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(89):CAf LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(90):CAf LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
param(91):PAf PITCH CONTROL ($28〜$58:−24〜+24[semitone])
param(92):PAf TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
param(93):PAf AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
param(94):PAf LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(95):PAf LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(96):PAf LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(97):PAf LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
param(98):PAf LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(99):PAf LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(100):PAf LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(101):PAf LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
param(102):CC1 PITCH CONTROL ($28〜$58:−24〜+24[semitone])
param(103):CC1 TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
param(104):CC1 AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
param(105):CC1 LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(106):CC1 LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(107):CC1 LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(108):CC1 LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
param(109):CC1 LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(110):CC1 LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(111):CC1 LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(112):CC1 LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
param(113):CC2 PITCH CONTROL ($28〜$58:−24〜+24[semitone])
param(114):CC2 TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
param(115):CC2 AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
param(116):CC2 LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(117):CC2 LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(118):CC2 LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(119):CC2 LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
param(120):CC2 LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
param(121):CC2 LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
param(122):CC2 LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
param(123):CC2 LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
param(124):TONE MAP NUMBER (0:SELECTED,1:SC55,2:SC88)
param(125):TONE MAP0 NUMBER (1:SC55,2:SC88)
param(126):EQ ON/OFF (0:OFF,1:ON)
(SC88VLマニュアルp79〜p81参照)
*-----------------------------------------------------------------------------
zm_sc88_drum_setup( port,size,dr_id,param )
*-----------------------------------------------------------------------------
機能 SC88のドラム・セットアップ設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:ドラム・セットアップ・パラメータ・データサイズ(1-9)
int dr_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d23=NOTE NUMBER(0-127)
d24-d31=MAP NUMBER(0-1)
dim char param(0-8):ドラム・セットアップ・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char param()にドラム・セットアップ・パラメータを記述しておく。
sizeは9以内で指定したsize個分のパラメータがSC88へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
param(0):PLAY KEY NUMBER (0〜127)
param(1):LEVEL (0〜127)
param(2):ASSIGN GROUP NUMBER (0:NON,1〜127)
param(3):PANPOT (0:RANDOM,01(LEFT)〜64〜127(RIGHT))
param(4):REVERB DEPTH (0〜127:0.0〜1.0)
param(5):CHORUS DEPTH (0〜127:0.0〜1.0)
param(6):Rx NOTE OFF (0〜1:OFF/ON)
param(7):Rx NOTE ON (0〜1:OFF/ON)
param(8):DELAY SEND LEVEL (0-127:0.0〜1.0)
(SC88VLマニュアルp82参照)
*-----------------------------------------------------------------------------
zm_sc88_drum_name( port,size,mp_id,name );
*-----------------------------------------------------------------------------
機能 SC88のドラム・セット名設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:ドラム・セットアップ・パラメータ・データサイズ(1-8)
int mp_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d31=MAP NUMBER(0,1/$80,$81)
str name:ドラム・セット名文字列格納アドレス
戻り値 0:正常終了
0以外:エラーコード
備考 文字列は12文字以内でchar *nameからの領域に文字列を記述しておく。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
MAP NUMBER=$80がユーザードラムセット65,MAP NUMBER=$81が
ユーザードラムセット66に対応する。
(SC88マニュアルp82参照)
*-----------------------------------------------------------------------------
zm_sc88_user_inst( port,size,ui_id,param )
*-----------------------------------------------------------------------------
機能 SC88のユーザー音色の設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:ユーザー音色パラメータ・データサイズ(1-11)
int dr_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d23=PROGRAM NUMBER(0-127)
d24-d31=BANK NUMBER(0-1)
dim char param(0-10):ユーザー音色・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char param()にユーザー音色・パラメータを記述しておく。
sizeは11以内で指定したsize個分のパラメータがSC88へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
param(0):SOURCE TONE#(MAP) (1,2)
param(1):BANK NUMBER MSB (0〜127)
param(2):PROGRAM NUMBER (0〜127)
param(3):Vibrato rate ($00〜$7f:−64〜+63)
param(4):Vibrato depth ($00〜$7f:−64〜+63)
param(5):TVF cutoff freq. ($00〜$7f:−64〜+63)
param(6):TVF resonance ($00〜$7f:−64〜+63)
param(7):TVF&TVA Env.attack ($00〜$7f:−64〜+63)
param(8):TVF&TVA Env.decay ($00〜$7f:−64〜+63)
param(9):TVF&TVA Env.release ($00〜$7f:−64〜+63)
param(10):Vibrato delay ($00〜$7f:−64〜+63)
(SC88VLマニュアルp82参照)
*-----------------------------------------------------------------------------
zm_sc88_user_drum( port,size,ud_id,param )
*-----------------------------------------------------------------------------
機能 SC88のユーザードラムセットの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:ユーザードラムセット・パラメータ・データサイズ(1-12)
int dr_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d23=NOTE NUMBER(0-127)
d24-d31=SET NUMBER(0-1)
dim char param(0-11):ユーザードラムセット・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 char *paramからの領域にユーザードラムセット・パラメータを記述しておく。
sizeは12以内で指定したsize個分のパラメータがSC88へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
param(0):PLAY KEY NUMBER (0〜127)
param(1):LEVEL (0〜127)
param(2):ASSIGN GROUP NUMBER (0:NON,1〜127)
param(3):PANPOT (0:RANDOM,01(LEFT)〜64〜127(RIGHT))
param(4):REVERB DEPTH (0〜127:0.0〜1.0)
param(5):CHORUS DEPTH (0〜127:0.0〜1.0)
param(6):Rx NOTE OFF (0〜1:OFF/ON)
param(7):Rx NOTE ON (0〜1:OFF/ON)
param(8):DELAY SEND LEVEL (0-127:0.0〜1.0)
param(9):SOURCE DRUM SET#(MAP) (1-2)
param(10):PROGRAM NUMBER (0-127)
param(11):SOURCE NOTE NUMBER (0-127)
(SC88VLマニュアルp82参照)
*-----------------------------------------------------------------------------
zm_mt32_reset( port,id )
*-----------------------------------------------------------------------------
機能 MT32の初期化
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int id:d0-d15=DEVICE ID(0-127,-1:current)
戻り値 0:正常終了
0以外:エラーコード
備考 idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
*-----------------------------------------------------------------------------
zm_mt32_partial_reserve( port,id,rsv )
*-----------------------------------------------------------------------------
機能 MT32のパーシャルリザーブ
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int id:DEVICE ID(0-127,-1:current)
dim char(int) rsv(8):パート1〜パート9までのパーシャルリザーブ値が
格納されている配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char rsv()にパーシャルリザーブ値を9パート分格納しておく。
また、合計が楽器の最大同時発声数以下にならなければならない。
param(0)=パート1,param(1)=パート2…,param(9)=パート9というふうに対応する。
なお、パート9はリズムパートに対応する。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
*-----------------------------------------------------------------------------
zm_mt32_reverb( port,size,id,rsv )
*-----------------------------------------------------------------------------
機能 MT32のリバーブパラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:リバーブパラメータ・データサイズ(1-3)
int id:DEVICE ID(0-127,-1:current)
dim char(int) rvb(0-2):リバーブパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char rvb()にリバーブパラメータを記述しておく。sizeは3以内で、
指定したsize個分のパラメータがMT32へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される
rvb(0):REVERB MODE (0:Room,1:Hall,2:Plate,3:Tap Delay)
rvb(1):REVERB TIME (0〜7)
rvb(2):REVERB LEVEL (0〜7)
(MT32マニュアルp35,CM64マニュアルp30参照)
*-----------------------------------------------------------------------------
zm_mt32_part_setup( port,size,id,rsv )
*-----------------------------------------------------------------------------
機能 MT32のパート・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:パートパラメータ・データサイズ(1-9)
int id:d0-d15=DEVICE ID(0-127,-1:current)
dim char(int) param(0-8):パートパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char param()にパートパラメータを記述しておく。
パートパラメータは
param(0)=パート1のMIDIチャンネル,param(1)=パート2のMIDIチャンネル…,
param(9)=リズムパートのMIDIチャンネル
という構成を取る
sizeは9以内で指定したsize個分のパラメータがMT32へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
*-----------------------------------------------------------------------------
zm_mt32_drum( port,size,dr_id,drum )
*-----------------------------------------------------------------------------
機能 MT32のドラム・セットアップ設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:ドラム・セットアップ・パラメータ・データサイズ(1-4)
int dr_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d31=NOTE NUMBER(24〜87)
dim char(int) drum(0-3):ドラム・セットアップ・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char drum()にドラム・セットアップ・パラメータを記述しておく。
sizeは4以内で指定したsize個分のパラメータがMT32へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
drum(0):TIMBRE (0〜63:i1〜64,64〜127:r1〜64)
drum(1):OUTPUT LEVEL (0〜100)
drum(2):PANPOT (0〜14)
drum(3):REVERB SWITCH (0〜1:OFF/ON)
(MT32マニュアルp35,CM64マニュアルp30参照)
*-----------------------------------------------------------------------------
zm_mt32_common( port,size,cm_id,common )
*-----------------------------------------------------------------------------
機能 MT32のコモン・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:コモン・パラメータ・データサイズ(1-4)
int cm_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d31=PROGRAM NUMBER(1-64)
dim char(int) common(0-3):コモン・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char common()にコモン・パラメータを記述しておく。
sizeは4以内で指定したsize個分のパラメータがMT32へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
common(0):Structure of Partial#1&2 (0〜12:1〜13)
common(1):Structure of Partial#3&4 (0〜12:1〜13)
common(2):PARTIAL MUTE (0〜15)
common(3):ENV MODE (0〜1:NORMAL,NO SUSTAIN)
(MT32マニュアルp34,CM64マニュアルp29参照)
*-----------------------------------------------------------------------------
zm_mt32_partial( port,size,pl_id,partial )
*-----------------------------------------------------------------------------
機能 MT32のパーシャル・パラメータ設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:パーシャル・パラメータ・データサイズ(1-58)
int pl_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d23=PARTIAL NUMBER(1-4)
d24-d31=PROGRAM NUMBER(1-64)
dim char(int) partial(0-57):パーシャル・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char partial()にパーシャル・パラメータを記述しておく。
sizeは58以内で指定したsize個分のパラメータがMT32へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
partial(0):WG PITCH COARSE (0〜96:C1,C#1,〜,C9)
partial(1):WG PITCH FINE (0〜100:−50〜+50)
partial(2):WG PITCH KEYFOLLOW (0〜16:−1,−1/2,−1/4,0,1/8,1/4,
3/8,1/2,5/8,3/4,7/8,1,
5/4,3/2,2,s1,s2)
partial(3):WG PITCH BENDER SW (0〜1:OFF/ON)
partial(4):WG WAVEFORM/PCM BANK (0〜3:SQU1,SAW1,SQU2,SAW2)
partial(5):WG PCM WAVE (0〜127:1〜128)
partial(6):WG PULSE WIDTH (0〜100)
partial(7):WG PW VELO SENS (0〜14:−7〜+7)
partial(8):P-ENV DEPTH (0〜10)
partial(9):P-ENV VELO SENS (0〜3)
partial(10):P-ENV TIME KEYF (0〜4)
partial(11):P-ENV TIME 1 (0〜100)
partial(12):P-ENV TIME 2 (0〜100)
partial(13):P-ENV TIME 3 (0〜100)
partial(14):P-ENV TIME 4 (0〜100)
partial(15):P-ENV LEVEL 0 (0〜100:−50〜+50)
partial(16):P-ENV LEVEL 1 (0〜100:−50〜+50))
partial(17):P-ENV LEVEL 2 (0〜100:−50〜+50)
partial(18):P-ENV SUSTAIN LEVEL (0〜100:−50〜+50)
partial(19):END LEVEL (0〜100:−50〜+50)
partial(20):P-LFO RATE (0〜100)
partial(21):P-LFO DEPTH (0〜100)
partial(22):P-LFO MOD SENS (0〜100)
partial(23):TVF CUTOFF FREQ (0〜100)
partial(24):TVF RESONANCE (0〜30)
partial(25):TVF KEYFOLLOW (0〜14:−1,−1/2,−1/4,0,1/8,1/4,
3/8,1/2,5/8,3/4,7/8,1,
5/4,3/2,2)
partial(26):TVF BIAS POINT/DIR (0〜127)
partial(27):TVF BIAS LEVEL (0〜14:−7〜+7)
partial(28):TVF ENV DEPTH (0〜100)
partial(29):TVF ENV VELO SENS (0〜100)
partial(30):TVF ENV DEPTH KEYF (0〜4)
partial(31):TVF ENV TIME KEYF (0〜4)
partial(32):TVF ENV TIME 1 (0〜100)
partial(33):TVF ENV TIME 2 (0〜100)
partial(34):TVF ENV TIME 3 (0〜100)
partial(35):TVF ENV TIME 4 (0〜100)
partial(36):TVF ENV TIME 5 (0〜100)
partial(37):TVF ENV LEVEL 1 (0〜100)
partial(38):TVF ENV LEVEL 2 (0〜100)
partial(39):TVF ENV LEVEL 3 (0〜100)
partial(40):TVF ENV SUSTAIN LEVEL (0〜100)
partial(41):TVA LEVEL (0〜100)
partial(42):TVA VELO SENS (0〜100:−50〜+50
partial(43):TVA BIAS POINT 1 (0〜127)
partial(44):TVA BIAS LEVEL 1 (0〜12:−12〜0)
partial(45):TVA BIAS POINT 2 (0〜127)
partial(46):TVA BIAS LEVEL 2 (0〜12:−12〜0)
partial(47):TVA ENV TIME KEYF (0〜4)
partial(48):TVA ENV TIME V_FOLLOW (0〜4)
partial(49):TVA ENV TIME 1 (0〜100)
partial(50):TVA ENV TIME 2 (0〜100)
partial(51):TVA ENV TIME 3 (0〜100)
partial(52):TVA ENV TIME 4 (0〜100)
partial(53):TVA ENV TIME 5 (0〜100)
partial(54):TVA ENV LEVEL 1 (0〜100)
partial(55):TVA ENV LEVEL 2 (0〜100)
partial(56):TVA ENV LEVEL 3 (0〜100)
partial(57):TVA ENV SUSTAIN LEVEL (0〜100)
(MT32マニュアルp34,CM64マニュアルp29参照)
*-----------------------------------------------------------------------------
zm_mt32_patch( port,size,pt_id,patch )
*-----------------------------------------------------------------------------
機能 MT32のパッチ・パラメータ設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:パッチ・パラメータ・データサイズ(1-7)
int pt_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d31=PATCH NUMBER(1-128)
dim char(int) patch(0-6):パッチ・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char patch()にパッチ・パラメータを記述しておく。
sizeは7以内で指定したsize個分のパラメータがMT32へ送信される。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
patch(0):TIMBRE GROUP (0〜3:a,b,i,r)
patch(1):TIMBRE NUMBER (0〜63)
patch(2):KEY SHIFT (0〜48:−24〜+24)
patch(3):FINE TUNE (0〜100:−50〜+50)
patch(4):BENDER RANGE (0〜24)
patch(5):ASSIGN MODE (0〜3:POLY1〜4)
patch(6):REVERB SWITCH (0〜1:OFF/ON)
(MT32マニュアルp35,CM64マニュアルp30参照)
*-----------------------------------------------------------------------------
zm_mt32_print( port,size,id,mes )
*-----------------------------------------------------------------------------
機能 MT32の画面へのメッセージ出力
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:メッセージ長(1-20)
int id:d0-d15=DEVICE ID(0-127,-1:current)
str mes:文字列
戻り値 0:正常終了
0以外:エラーコード
備考 メッセージは20文字以内でstr mesに文字列を記述しておく。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
*-----------------------------------------------------------------------------
zm_u220_setup( port,id,setup )
*-----------------------------------------------------------------------------
機能 U220のセットアップ・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int id:d0-d15=DEVICE ID(0-127,-1:current)
dim char(int) setup(6):セットアップ・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char setup()にセットアップ・パラメータを記述しておく。
dim char setup()の構成は必ず下に示す書式に従う。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
setup(0):Chorus SW (0〜1:OFF/ON)
setup(1):Reverb SW (0〜1:OFF/ON)
setup(2):Rx Cntrl Channel (1〜17:1〜16,OFF)
setup(3):Patch Change (0〜5:MAP1〜MAP4,Dir,OFF)
setup(4):Timbre Change (0〜5:MAP1〜MAP4,Dir,OFF)
setup(5):Rhythm Change (0〜5:MAP1〜MAP4,Dir,OFF)
setup(6):R.Inst Assign (0〜5:MAP1〜MAP4,Dir,OFF)
(U220マニュアルp46,p146〜148参照)
注意 U220用の命令はU20に対しても使用できる。以下同様。
*-----------------------------------------------------------------------------
zm_u220_part_setup( port,pt_id,setup )
*-----------------------------------------------------------------------------
機能 U220の(テンポラリパッチ)パートセットアップ・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int id:d0-d15=DEVICE ID(0-127,-1:current)
d16-31=PART NUMBER(1-6)
dim char(int) setup(12):パートセットアップ・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char setup()にパートセットアップ・パラメータを記述しておく。
dim char setup()の構成は必ず下に示す書式に従う。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
setup(0):Timbre Number (1〜128)
setup(1):Voice Reserve (0〜30)
setup(2):Receive Channel (1〜17:1〜16,OFF)
setup(3):Key Range Low (0〜127:C-1〜G9)
setup(4):Key Range High (0〜127:C-1〜G9)
setup(5):Velo Level (0〜1:Above/Below)
setup(6):Velo Threshold (0〜127)
setup(7):Output Assign (0〜4:Dry,Rev,Cho,Dir1,Dir2)
setup(8):Level (0〜127)
setup(9):Pan (0〜15:L7〜M〜R7)
setup(10):Rx Volume (0〜1:OFF/ON)
setup(11):Rx Pan (0〜1:OFF/ON)
setup(12):Rx Hold (0〜1:OFF/ON)
(U220マニュアルp58,p149参照)
*-----------------------------------------------------------------------------
zm_u220_common( port,id,common )
*-----------------------------------------------------------------------------
機能 U220の(テンポラリパッチ)コモン・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int id:d0-d15=DEVICE ID(0-127,-1:current)
dim char(int) common(17):コモン・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char common()にコモン・パラメータを記述しておく。
dim char common()の構成は必ず下に示す書式に従う。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
common(0):Chorus Type (0〜4:Chorus1,Chorus2,FB-Chorus,
Flanger,Short Delay)
common(1):Chorus Out Mode (0〜1:Pre Rev,Post Rev)
common(2):Chorus Level (0〜31)
common(3):Chorus Delay (0〜31)
common(4):Chorus Rate (0〜31)
common(5):Chorus Depth (0〜31)
common(6):Chorus Feedback (1〜63:−31〜0〜+31)
common(7):Reverb Type (0〜7:Room1〜3,Hall1〜2,Gate
Delay,CrossDelay)
common(8):Reverb Time (0〜31)
common(9):Reverb Level (0〜31)
common(10):Reverb Delay Feedback (0〜31)
common(11):Reverb Pre Delay Feedback (0〜31)
common(12):Param1 # (0〜63:0〜5,7〜31,64〜95,OFF)
common(13):Param1 Param (0:Timbre Level,1:Env Attack
2:Env Decay,3:Env Sustain
4:Env Release,5:A.Bend Depth
6:A.Bend Rate,7:Detune Depth
8:Vib Rate,9:Vib Wave Form
10:Vib Depth,11:Vib Delay
12:Vib Rise Time,13:Vib Mod Depth
14:Chorus Level,15:Chorus Rate
16:Chorus Feedback,17:Reverb Level
18:Delay Feedback)
common(14):Param2 # (Same as Param1 #)
common(15):Param2 Param (Same as Param1 Param)
common(16):Param3 # (Same as Param1 #)
common(17):Param3 Param (Same as Param1 Param)
(U220マニュアルp54,p149参照)
*-----------------------------------------------------------------------------
zm_u220_timbre( port,tm_id,timbre )
*-----------------------------------------------------------------------------
機能 U220のティンバー・パラメータの設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int tm_id:d0-d15=DEVICE ID(0-127,-1:current)
d16-d31=PROGRAM NUMBER(1-128)
dim char(int) timbre(25):ティンバー・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char timbre()にティンバー・パラメータを記述しておく。
dim char timbre()の構成は必ず下に示す書式に従う。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
timbre(0):Tone Media (0〜31:I,1〜31)
timbre(1):Tone Number (1〜128)
timbre(2):Timbre Level (0〜127)
timbre(3):Velocity Sens (1〜15:−7〜+7)
timbre(4):Channel Press Sens (1〜15:−7〜+7)
timbre(5):Env Attack Rate (1〜15:−7〜+7)
timbre(6):Env Decay Rate (1〜15:−7〜+7)
timbre(7):Env Sustain Level (1〜15:−7〜+7)
timbre(8):Env Release Rate (1〜15:−7〜+7)
timbre(9):Pitch Shift Coarse (8〜56:−24〜+24)
timbre(10):Pitch Shift Fine (14〜114:−50〜+50)
timbre(11):Bend Range Lower (0〜15:−36,−24,−12〜0)
timbre(12):Bend Range Upper (0〜12)
timbre(13):Channel After Sens (0〜27:−36,−24,−12〜+12)
timbre(14):Poly After Sens (0〜27:−36,−24,−12〜+12)
timbre(15):Auto Bend Depth (0〜27:−36,−24,−12〜+12)
timbre(16):Auto Bend Rate (0〜15)
timbre(17):Detune Depth (0〜15)
timbre(18):Rate (0〜63)
timbre(19):Waveform (0〜8)
timbre(20):Depth (0〜15)
timbre(21):Delay (0〜15)
timbre(22):Rise Time (0〜15)
timbre(23):Modulation Depth (0〜15)
timbre(24):Ch After Sens (0〜15)
timbre(25):Poly After Sens (0〜15)
(U220マニュアルp65,p149参照)
*-----------------------------------------------------------------------------
zm_u220_drums_setup( port,id,setup )
*-----------------------------------------------------------------------------
機能 U220の(テンポラリパッチ)パッチ・ドラム・セットアップ設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int id:d0-d15=DEVICE ID(0-127,-1:current)
dim char(int) setup(6):ドラム・セットアップ・パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char setup()にドラム・セットアップ・パラメータを
記述しておく。dim char setup()の構成は必ず下に示す書式に従う。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
setup(0):Rhythm Setup # (0〜3:1〜4)
setup(1):Voice Reserve (0〜30)
setup(2):Receive Channel (1〜17:1〜16,OFF)
setup(3):Level (0〜127)
setup(4):Level Boost Sw (0〜1:OFF/ON)
setup(5):Rx Volume (0〜1:OFF/ON)
setup(6):Rx Hold (0〜1:OFF/ON)
(U220マニュアルp63,p149参照)
*-----------------------------------------------------------------------------
zm_u220_drums_inst( int port,int dr_id,char *inst )
*-----------------------------------------------------------------------------
機能 U220の(テンポラリパッチ)ドラム音色設定
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int dr_id:d0-d15=DEVICE ID(0-127,-1:current)
:d16-d31=NOTE NUMBER(35-99)
dim char(int) inst(19):ドラム音色パラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char inst()にドラム音色パラメータを記述しておく。
dim char inst()の構成は必ず下に示す書式に従う。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
inst(0):Tone Media (0〜31:I,1〜31)
inst(1):Tone Number (1〜128)
inst(2):Source Key (0〜127:C−1〜G9)
inst(3):Mute Inst (34〜98:OFF,B1〜D7)
inst(4):Inst Level (0〜31)
inst(5):Velocity Sens (0〜15)
inst(6):Env Mode (0〜1:Sustain,No Sustain)
inst(7):Env Attack Rate (1〜15:−7〜+7)
inst(8):Env Decay Rate (1〜15:−7〜+7)
inst(9):Env Release Rate (1〜15:−7〜+7)
inst(10):Pitch Shift Coarse (0〜27:−36,−24,−12〜+12)
inst(11):Pitch Shift Fine (14〜114:−50〜+50)
inst(12):Channel After Sens (0〜27:−36,−24,−12〜+12)
inst(13):Poly After Sens (0〜27:−36,−24,−12〜+12)
inst(14):Random (0〜15)
inst(15):Auto Bend Depth (0〜27:−36,−24,−12〜+12)
inst(16):Auto Bend Rate (0〜15)
inst(17):Detune Depth (0〜15)
inst(18):Output Assign (0〜3:Dry,Rev,Cho,Dir1)
inst(19):Pan (0〜15:L7〜M〜R7)
(U220マニュアルp72,p149)
*-----------------------------------------------------------------------------
zm_u220_print( port,size,id,mes )
*-----------------------------------------------------------------------------
機能 U220の画面へのメッセージ出力
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int size:メッセージ長(1-12)
int id:d0-d15=DEVICE ID(0-127,-1:current)
str mes:文字列
戻り値 0:正常終了
0以外:エラーコード
備考 メッセージは12文字以内でstr mesに文字列を記述しておく。
idを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
*-----------------------------------------------------------------------------
zm_m1_setup( setup )
*-----------------------------------------------------------------------------
機能 M1のSEQ-SONG0のMIDIチャンネルの設定
引数 dim char(int) setup(7):8パート分のMIDIチャンネル列格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char setup()には必ず8パート分のMIDIチャンネルを
記載しておく。
setup(0):パート1のMIDIチャンネル
setup(1):パート2のMIDIチャンネル
setup(2):パート3のMIDIチャンネル
setup(3):パート4のMIDIチャンネル
setup(4):パート5のMIDIチャンネル
setup(5):パート6のMIDIチャンネル
setup(6):パート7のMIDIチャンネル
setup(7):パート8のMIDIチャンネル
注意 M1用の命令はM1EX/M1R/M1REXに対しても使用できる。以下同様。
*-----------------------------------------------------------------------------
zm_m1_part_setup( ptstup )
*-----------------------------------------------------------------------------
機能 M1のSEQ-SONG0のトラックパラメータの設定
引数 dim char(int) ptstup(39):8パート分のトラックパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char ptstup()には必ず8パート分のトラックパラメータを
記載しておく。
PART 1
ptstup(0):PROGRAM NUMBER (0〜199:I00〜C99)
ptstup(1):OUTPUT LEVEL (0〜99)
ptstup(2):KEY TRANSPOSE ($F4〜$0C:−12〜12)
ptstup(3):DETUNE ($CE〜$32:−50〜+50)
ptstup(4):PAN (0〜13:10:0〜0:10,C,C+D,D)
PART 2〜8(param(5)〜param(39))以下同様の書式構成
(M1マニュアルp126参照)
*-----------------------------------------------------------------------------
zm_m1_effect_setup( effect )
*-----------------------------------------------------------------------------
機能 M1のSEQ-SONG0のエフェクトパラメータの設定
引数 dim char(int) effect(24):エフェクトパラメータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char effect()にはダミーデータも含めて必ず25個の
エフェクトパラメータが記載されていなければならない。
effect(0):Effect 1 Pattern No. (0〜33:1〜32,Thru)
effect(1):Effect 2 Pattern No. (0〜33:1〜32,Thru)
effect(2):Effect 1 L-Ch E.Balnc (0〜100)
effect(3):Effect 1 R-Ch E.Balnc (0〜100)
effect(4):Effect 2 L-Ch E.Balnc (0〜100)
effect(5):Effect 2 R-Ch E.Balnc (0〜100)
effect(6):Output 3 Pan (0〜101:OFF,100:0〜0:100)
effect(7):Output 4 Pan (0〜101:OFF,100:0〜0:100)
effect(8):Effect I/O (BIT0:Effect 1 L-Ch 0=OFF/1=ON
BIT1:Effect 1 R-Ch 0=OFF/1=ON
BIT2:Effect 2 L-Ch 0=OFF/1=ON
BIT3:Effect 2 R-Ch 0=OFF/1=ON)
BIT4:Effect 2 0=PARALLEL/1=SERIAL)
effect(9〜16):Effect 1 Parameter
effect(17〜24):Effect 2 Parameter
Structure of Effect Parameter
(ofs=9 or 17)
1〜3:Hall (4,5:Room,6:Live Stage)
effect(ofs+0):Reverb Time (0〜97:0.2〜9.9),(0〜48:0.2〜5.0)
effect(ofs+1):Dummy 0
effect(ofs+2):High Damp (0〜99)
effect(ofs+3):Pre Delay (0〜200)
effect(ofs+4):E/R Level (0〜99)
effect(ofs+5):Dummy 0
effect(ofs+6):EQ High ($F4〜$0C:−12〜+12)
effect(ofs+7):EQ Low ($F4〜$0C:−12〜+12)
7〜9:Early Reflection 1,2,3
effect(ofs+0):E/R Time (0〜70:100〜800)
effect(ofs+1):Pre Delay (0〜200)
effect(ofs+2):Dummy 0
: :
effect(ofs+5):Dummy 0
effect(ofs+6):EQ High ($F4〜$0C:−12〜+12)
effect(ofs+7):EQ Low ($F4〜$0C:−12〜+12)
10:Stereo Delayt,11:Cross Delay
effect(ofs+0):Delay Time L (L) (0〜500)
effect(ofs+1):Delay Time L (H)
effect(ofs+2):Feedback ($9D〜$63:−99〜99)
effect(ofs+3):High Damp (0〜99)
effect(ofs+4):Delay Time R (L) (0〜500)
effect(ofs+5):Delay Time R (H)
effect(ofs+6):EQ High ($F4〜$0C:−12〜+12)
effect(ofs+7):EQ Low ($F4〜$0C:−12〜+12)
12〜13:Stereo Chorus 1〜2 (14〜15:Flanger)
effect(ofs+0):Depth (0〜99)
effect(ofs+1):Speed (0〜99:0.03〜3.00 0.03step
100〜199:3.1〜13.0 0.1step
200〜216:14.0〜30.0 1.0step)
effect(ofs+2):LFO Status (BIT0:Waveform =0:Sin,=1:Tri
BIT1:Phase =0:0.0゚,=1:180゚
BIT2:Wave Shape =0:Normal
=1:for Flanger)
effect(ofs+3):Feedback ($9D〜$63:−99〜+99)
effect(ofs+4):Delay Time (0〜200),(0〜50)
effect(ofs+5):Dummy 0
effect(ofs+6):EQ High ($F4〜$0C:−12〜+12)
effect(ofs+7):EQ Low ($F4〜$0C:−12〜+12)
16〜17:Phase Shifter 1〜2
effect(ofs+0):Depth (0〜99)
effect(ofs+1):Speed (0〜99:0.03〜3.00 0.03step
100〜199:3.1〜13.0 0.1step
200〜216:14.0〜30.0 1.0step)
effect(ofs+2):LFO Status (BIT0:Waveform =0:Sin,=1:Tri
BIT1:Phase =0:0.0゚,=1:180゚
BIT2:Wave Shape =0:Normal
=1:for Flanger)
effect(ofs+3):Feedback ($9D〜$63:−99〜+99)
effect(ofs+4):Manual (0〜99)
effect(ofs+5):Dummy 0
effect(ofs+6):Dummy 0
effect(ofs+7):Dummy 0
18〜19:Stereo Toremolo 1〜2
effect(ofs+0):Depth (0〜99)
effect(ofs+1):Speed (0〜99:0.03〜3.00 0.03step
100〜199:3.1〜13.0 0.1step
200〜216:14.0〜30.0 1.0step)
effect(ofs+2):LFO Status (BIT0:Waveform =0:Sin,=1:Tri
BIT1:Phase =0:0.0゚,=1:180゚
BIT2:Wave Shape =0:Normal
=1:for Flanger)
effect(ofs+3):Shape ($9D〜$63:−99〜+99)
effect(ofs+4):Dummy 0
effect(ofs+5):Dummy 0
effect(ofs+6):EQ High ($F4〜$0C:−12〜+12)
effect(ofs+7):EQ Low ($F4〜$0C:−12〜+12)
20:Equalizer
effect(ofs+0):Dummy 0
: :
effect(ofs+3):Dummy 0
effect(ofs+4):Low fc (0〜2:0.25k,0.50k,1.00k)
effect(ofs+5):High fc (0〜2:1k,2k,4k)
effect(ofs+6):High Gain ($F4〜$0C:−12〜+12)
effect(ofs+7):Low Gain ($F4〜$0C:−12〜+12)
21:Overdrive
effect(ofs+0):Dummy 0
effect(ofs+1):Dummy 0
effect(ofs+2):Drive (0〜99)
effect(ofs+3):Level (0〜99)
effect(ofs+4):Dummy 0
effect(ofs+5):Dummy 0
effect(ofs+6):EQ High ($F4〜$0C:−12〜+12)
effect(ofs+7):EQ Low ($F4〜$0C:−12〜+12)
22:Distortion
effect(ofs+0):Dummy 0
effect(ofs+1):Dummy 0
effect(ofs+2):Distortion (0〜99)
effect(ofs+3):Level (0〜99)
effect(ofs+4):Dummy 0
effect(ofs+5):Dummy 0
effect(ofs+6):Dummy 0
effect(ofs+7):EQ Low Gain ($F4〜$0C:−12〜+12)
23:Exciter
effect(ofs+0):Blend ($9D〜$63:−99〜+99)
effect(ofs+1):Emphatic Point (0〜9:1〜10)
effect(ofs+2):Dummy 0
: :
effect(ofs+5):Dummy 0
effect(ofs+6):EQ High ($F4〜$0C:−12〜+12)
effect(ofs+7):EQ Low ($F4〜$0C:−12〜+12)
24:Synphonic Ensamble
effect(ofs+0):Depth (0〜99)
effect(ofs+1):Dummy 0
: :
effect(ofs+5):Dummy 0
effect(ofs+6):EQ High ($F4〜$0C:−12〜+12)
effect(ofs+7):EQ Low ($F4〜$0C:−12〜+12)
25:Roteffect Speaker
effect(ofs+0):Depth (0〜99)
effect(ofs+1):Dummy 0
effect(ofs+2):Speed Rate ($F6〜$0A:−10〜+10)
effect(ofs+3):Dummy 0
: :
effect(ofs+7):Dummy 0
26:Delay/Hall
effect(ofs+0):Delay Time (L) (0〜500)
effect(ofs+1):Delay Time (H)
effect(ofs+2):Feedback ($9D〜$63:−99〜99)
effect(ofs+3):High Damp (0〜99)
effect(ofs+4):Reverb Time (0〜97:0.2〜9.9)
effect(ofs+5):Dummy 0
effect(ofs+6):High Damp (0〜99)
effect(ofs+7):Pre Delay (0〜150)
27:Delay/Room
effect(ofs+0):Delay Time (L) (0〜500)
effect(ofs+1):Delay Time (H)
effect(ofs+2):Feedback ($9D〜$63:−99〜99)
effect(ofs+3):High Damp (0〜99)
effect(ofs+4):Reverb Time (0〜97:0.2〜9.9)
effect(ofs+5):Dummy 0
effect(ofs+6):High Damp (0〜99)
effect(ofs+7):Pre Delay (0〜150)
28:Delay/Early Reflection
effect(ofs+0):Delay Time (L) (0〜500)
effect(ofs+1):Delay Time (H)
effect(ofs+2):Feedback ($9D〜$63:−99〜99)
effect(ofs+3):High Damp (0〜99)
effect(ofs+4):E/R Time (0〜30:100〜400)
effect(ofs+5):Pre Delay (0〜150)
effect(ofs+6):Dummy 0
effect(ofs+7):Dummy 0
29:Delay/Chorus
effect(ofs+0):Delay Time L (L) (0〜500)
effect(ofs+1):Delay Time L (H)
effect(ofs+2):Feedback L ($9D〜$63:−99〜99)
effect(ofs+3):High Damp L (0〜99)
effect(ofs+4):Delay Time R (L) (0〜500)
effect(ofs+5):Delay Time R (H)
effect(ofs+6):Feedback R ($9D〜$63:−99〜99)
effect(ofs+7):High Damp R (0〜99)
30:Delay/Chorus (31:Delay Flanger)
effect(ofs+0):Delay Time (L) (0〜500)
effect(ofs+1):Delay Time (H)
effect(ofs+2):Feedback ($9D〜$63:−99〜99)
effect(ofs+3):High Damp (0〜99)
effect(ofs+4):Depth (0〜99)
effect(ofs+5):Speed (0〜99:0.03〜3.00 0.03step
100〜199:3.1〜13.0 0.1step
200〜216:14.0〜30.0 1.0step)
effect(ofs+6):LFO Status (BIT0:Waveform =0:Sin,=1:Tri
BIT1:Phase =0:0.0゚,=1:180゚
BIT2:Wave Shape =0:Normal
=1:for Flanger)
effect(ofs+7):Feedback ($9D〜$63:−99〜99)
32:Delay/Phaser
effect(ofs+0):Delay Time (L) (0〜500)
effect(ofs+1):Delay Time (H)
effect(ofs+2):Feedback ($9D〜$63:−99〜99)
effect(ofs+3):High Damp (0〜99)
effect(ofs+4):Depth (0〜99)
effect(ofs+5):Speed (0〜99:0.03〜3.00 0.03step)
effect(ofs+6):Feedback ($9D〜$63:−99〜99)
effect(ofs+7):Dummy 0
33:Delay/Tremolo
effect(ofs+0):Delay Time (L) (0〜500)
effect(ofs+1):Delay Time (H)
effect(ofs+2):Feedback ($9D〜$63:−99〜99)
effect(ofs+3):High Damp (0〜99)
effect(ofs+4):Depth (0〜99)
effect(ofs+5):Speed (0〜99:0.03〜3.00 0.03step)
effect(ofs+6):Dummy 0
effect(ofs+7):Shape ($9D〜$63:−99〜99)
(M1マニュアルp127参照)
*-----------------------------------------------------------------------------
zm_m1_print( size,mes )
*-----------------------------------------------------------------------------
機能 M1のSEQ-SONG0のタイトル設定
引数 int size:メッセージ長(1-10)
str mes:文字列
戻り値 0:正常終了
0以外:エラーコード
備考 メッセージは10文字以内でstr mesに文字列を記述しておく。
*-----------------------------------------------------------------------------
zm_send_to_m1( port,id )
*-----------------------------------------------------------------------------
機能 M1へパラメータを送信する
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
int id:d0-d15=DEVICE ID(0-127,-1:current)
戻り値 0:正常終了
0以外:エラーコード
備考 DEVICE ID=&H30+(グローバルチャンネル−1)
グローバルチャンネルとはGLOBALモードのF5−1で設定出来る。
idは省略可能。省略すると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
必ず'm1_setup()'〜'm1_print()'を設定してからこの命令を実行すること。
'm1_effect_setup()'のみ省略が可能。この時はドライバのデフォルトデータが
送信される。
'm1_setup()'〜'm1_print()'の間にM1関係以外のコマンドがあると正常なデータが
送信されない。
例
dim char a(8)={2,1,4,3,6,5,8,7};
/*音色,音量,キートランスポーズ,デチューン,パンのフォーマット*/
dim char b(40)={0,99,0,0,5, /*TRACK 1*/
0,99,0,0,5, /*TRACK 2*/
0,99,0,0,5, /*TRACK 3*/
0,99,0,0,5, /*TRACK 4*/
0,99,0,0,5, /*TRACK 5*/
0,99,0,0,5, /*TRACK 6*/
0,99,0,0,5, /*TRACK 7*/
0,99,0,0,5}; /*TRACK 8*/
dim char c(25)={&H21,&H21};
m1_setup(a)
m1_part_setup(b)
m1_effect_setup(c)
m1_print(7,"Zenji.N")
send_to_m1(-1,&H30)
*-----------------------------------------------------------------------------
zm_pcm_read( num,flag,type,orig,param)
*-----------------------------------------------------------------------------
機能 PCMファイルの登録
引数 int num:登録番号 (ノート番号の場合:0〜32767)
(音色番号の場合:$8000+(0〜32767)
int flag:PCM加工コマンド(PPC)でPCMデータ加工するか(-1:YES,0:NO)
int type:登録次元(-1:ADPCM,1=16BitPCM,0=Ver.2.0互換)
int orig:オリジナルキー:0-127
dim char(int) param(〜):登録データ情報およびPPC列格納配列(備考参照)
戻り値 0以外:dim char param()処理後のアドレス
0:エラー
備考 dim char param()からはまず、最大32文字分の音色名文字列を格納する。
終端コードは0。
次にディスクからPCMファイルを読みこむ場合はそのファイル名を
格納する。終端コードは0。...(1)
ディスクからデータを読み込まずにすでにZMUSIC側に登録されている
PCMデータをコピーして加工するには音色名の後に $0000 を格納し
さらにその後に参照番号を指定する。...(2)
PPCでPCMを加工する場合には、PPC列をこの後ろに格納しておく。
また、PPCでPCMを加工する場合は必ずint flagを-1とすること。
int flagが0だとたとえPPCがあっても無視される。
PPCについてはドキュメントMEASURE12を参照。
(1)の場合
[TONE NAME...最大32文字],0,[FILENAME文字列],0,PPCコマンド列...
(2)の場合
[TONE NAME...最大32文字],0,$00,$00,参照先番号(2bytes),PPCコマンド列...
参照先番号は
ノート番号の場合:0〜32767
音色番号の場合:$8000+(0〜32767)
で表される。
*-----------------------------------------------------------------------------
zm_pcm_erase( num )
*-----------------------------------------------------------------------------
機能 PCMファイルの登録取消
引数 int num:取消したい登録番号(ノート番号の場合:0〜32767)
(音色番号の場合:$8000+(0〜32767)
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_register_zpd( zpd )
*-----------------------------------------------------------------------------
機能 ZPDの登録
引数 str zpd:登録するZPDのファイルネーム
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_set_zpd_table( ver,zpd )
*-----------------------------------------------------------------------------
機能 ZPDテーブルの登録
引数 int ver:ZPDバージョンタイプ(0:Ver.1.0〜Ver.2.0,1:Ver.3.0,2:PDX)
dim char(int) zpd(〜):登録するZPDテーブルを格納している配列(ZPDヘッダ含まず)
戻り値 0:正常終了
0以外:エラーコード
備考 ZPDのテーブルの構造に付いてはMEASURE12を参照
*-----------------------------------------------------------------------------
zm_exec_subfile( filename )
*-----------------------------------------------------------------------------
機能 サブファイルの読み込みと実行
引数 str filename:サブファイルのファイル名
戻り値 0:正常終了
0以外:エラーコード
備考 サブファイルとは演奏の際に必要となる別ファイルにまとめた
補助ファイルのことを指す。具体的には、演奏ファイル(ZMS,ZMD,OPM)、
ADPCM定義リスト(CNF),ZPDファイル、MIDIデータファイル(MDD,MID)など。
*-----------------------------------------------------------------------------
zm_transmit_midi_dump( port,filename )
*-----------------------------------------------------------------------------
機能 MIDIデータファイルの転送
引数 int port:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
str filename:MIDIデータファイルのファイル名
戻り値 0:正常終了
0以外:エラーコード
備考 MIDIデータファイルにはVer.1.0からVer.2.0で標準MIDIデータファイルと
されてきたMDDファイルとVer.3.0から採用されたスタンダードMIDI
ファイル(FORMAT0)のMIDIファイルの2タイプがあるが、
この関数ではどちらも楽器へ転送することができる。
*-----------------------------------------------------------------------------
zm_set_wave_form1( wave,data )
*-----------------------------------------------------------------------------
機能 波形メモリの登録1
引数 int wave:波形番号(8-32767)
dim char(int) data(〜):波形メモリデータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char data()で表される波形メモリデータは以下の構成を取る。
data(0〜3)(4bytes):波形のデータサイズ(必ず偶数)
data(4):ループタイプ(0:oneshot,1:repeat,2:altanative)
data(5〜8)(4bytes):ループ開始オフセット
data(9〜12)(4bytes):ループ終了オフセット
data(13〜16)(4bytes):ループ回数(0:∞,1〜)
data(17〜20)(4bytes):ダミー
data(21):波形名文字列長
data(22〜)(?bytes):文字列(終端の0無し)
偶数要素(アドレス)から実際の波形データ(signed short)
:
:
※本関数で登録された波形はZMUSICに取り込まれるため、関数実行後
波形データ本体のメモリを解放しても構わない。
*-----------------------------------------------------------------------------
zm_set_wave_form2( wave,data )
*-----------------------------------------------------------------------------
機能 波形メモリの登録2
引数 int wave:波形番号(8-32767)
dim char(int) data(〜):波形メモリデータ格納配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char data()で表される波形メモリデータは以下の構成は
zm_set_wave_form1()と同じ。
zm_set_wave_form1()とは、波形データがZMUSICに取り込まれない点が違う。
*-----------------------------------------------------------------------------
zm_obtain_events( omt,event )
*-----------------------------------------------------------------------------
機能 各種イベントの取得
引数 int omt:どのイベントに関する設定を行うかのビットマーカー
ビット=1でそのイベントの設定を更新する。
dim int(char) event(7):各種イベント発生時のジャンプ先とジャンプ条件が
記述された配列。構成は備考参照。
-1とするとint omtによらず設定は一切行わない。
戻り値 現在の設定を格納した領域のアドレス。構成は備考参照。
備考 event(0):m_playが実行された時のジャンプ先アドレス omtのd0ビット
event(1):m_stopが実行された時のジャンプ先アドレス omtのd1ビット
event(2):m_contが実行された時のジャンプ先アドレス omtのd2ビット
event(3):演奏が終了した時のジャンプ先アドレス omtのd3ビット
event(4):指定ループ回数(0:OFF,1-256) omtのd4ビット
event(5):指定回数ループした時のジャンプ先アドレス omtのd5ビット
event(6):指定クロック(0:OFF,1〜) omtのd6ビット
event(7):演奏開始後指定クロック経過した時のジャンプ先アドレス omtのd7ビット
int omtでビット=1としたパラメータのみをint event(0)から記述しておく。
int omtでビット=0としたパラメータに関しては記述しない。
たとえばint omt=$81の場合、int event(0)からは
event(0)に「m_playが実行された時のジャンプ先アドレス」
event(1)に「演奏開始後指定クロック経過した時のジャンプ先アドレス」
を記述しておけばよい。
*-----------------------------------------------------------------------------
zm_get_loop_time()
*-----------------------------------------------------------------------------
機能 現在の演奏のループ回数を取得する
引数 なし
戻り値 -1以外:現在のループ回数(1〜)
-1:エラー
*-----------------------------------------------------------------------------
zm_mask_tracks( track )
*-----------------------------------------------------------------------------
機能 トラックマスク
引数 dim int(char) track(〜):マスクするトラックとマスク・モードのペアを
格納した配列
戻り値 設定出来なかったトラック番号(short int)の並びを格納した領域のアドレス
終端コード=-1(short)
備考 dim int track()からは
トラック番号(0-65534)*65536+マスクモード(0:MASK OFF,1:REVERSE,-1:MASK ON)
の数値列を記載する。終端コードは(short)-1。
*-----------------------------------------------------------------------------
zm_mask_all_tracks( mode )
*-----------------------------------------------------------------------------
機能 全トラックマスク
引数 int mode:(0:MASK OFF,1:REVERSE,-1:MASK ON)
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_solo_track( track )
*-----------------------------------------------------------------------------
機能 ソロトラック演奏
引数 int(char) track:トラック番号(0-65534)
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_mask_channels( channel )
*-----------------------------------------------------------------------------
機能 チャンネルマスク
引数 dim int(char) channel(〜):マスクするチャンネルIDとマスク・モードのペアを
格納した配列
戻り値 設定出来なかった(int)チャンネルIDの並び,終端コード=(int)-1
備考 dim int channel()からは
チャンネルID(32ビット値),マスクモード(16ビット値)
の数値列を記載する。
なお、チャンネルIDは
チャンネルID(上位16ビット):0=FM音源,1=ADPCM音源
$8000=MIDI1,$8001=MIDI2,$8002=MIDI3
-1=カレントMIDI
チャンネルID(下位16ビット):チャンネル番号0-15
マスクモードは(0:MASK OFF,1:REVERSE,-1:MASK ON) の値をとる。
終端コードは-1。
たとえばMIDI1の15チャンネル(ID:$8000_000e)をマスク(ID:$ffff)、
ADPCMの3チャンネル(ID$0001_0002)をマスク反転(ID:$0001)する場合は
{ &h8000000e,&hffff0001,&h00020001,-1}
となる。
*-----------------------------------------------------------------------------
zm_mask_all_channels( mode )
*-----------------------------------------------------------------------------
機能 全チャンネルマスク
引数 int mode:(0:MASK OFF,1:REVERSE,-1:MASK ON)
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_solo_channel( channel )
*-----------------------------------------------------------------------------
機能 ソロチャンネル演奏
引数 int channel:(上位16ビット):0=FM音源,1=ADPCM音源
$8000=MIDI1,$8001=MIDI2,$8002=MIDI3
-1=カレントMIDI
int channel:(下位16ビット):チャンネル番号0-15
戻り値 0:正常終了
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_set_ch_output_level( out )
*-----------------------------------------------------------------------------
機能 各チャンネルの出力レベルの設定
引数 dim char(int) out(8):出力パラメータを記載した配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char out()には以下の構成の出力パラメータを格納しておく。
out(0〜1)(2bytes):デバイス(0=FM音源,1=ADPCM音源
$8000=MIDI1,$8001=MIDI2,$8002=MIDI3
-1=カレントMIDI)
out(2〜3)(2bytes):チャンネル番号(0-15)
out(4):パラメータ有効ビット(d0:移動速度,d1:開始レベル,d2:終了レベルに
それぞれ対応しビット=1でそのパラメータが後続しこれを設定する)
out(5〜6)(2bytes):移動速度(フェーダー移動速度。0で動かさない)
out(7):フェーダー移動開始レベル(0-128)
out(8):フェーダー移動終了レベル(0-128)
*-----------------------------------------------------------------------------
zm_set_tr_output_level( out )
*-----------------------------------------------------------------------------
機能 各トラックの出力レベルの設定
引数 dim char(int) out(6):出力パラメータを記載した配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char out()には以下の構成の出力パラメータを格納しておく。
out(0〜1)(2bytes):トラック番号(0-65534)
out(2):パラメータ有効ビット(d0:移動速度,d1:開始レベル,d2:終了レベルに
それぞれ対応しビット=1でそのパラメータが後続しこれを設定する)
out(3〜4)(2bytes):移動速度(フェーダー移動速度。0で動かさない)
out(5):フェーダー移動開始レベル(0-128)
out(6):フェーダー移動終了レベル(0-128)
*-----------------------------------------------------------------------------
zm_master_fader( fdr )
*-----------------------------------------------------------------------------
機能 マスターフェーダーの設定
引数 dim char(int) fdr(6):出力パラメータを記載した配列
戻り値 0:正常終了
0以外:エラーコード
備考 dim char fdr()には以下の構成の出力パラメータを格納しておく。
out(0〜1)(2bytes):デバイス(0=FM音源,1=ADPCM音源
$8000=MIDI1,$8001=MIDI2,$8002=MIDI3
-1=カレントMIDI)
out(2):パラメータ有効ビット(d0:移動速度,d1:開始レベル,d2:終了レベルに
それぞれ対応しビット=1でそのパラメータが後続しこれを設定する)
out(3〜4)(2bytes):移動速度(フェーダー移動速度。0で動かさない)
out(5):フェーダー移動開始レベル(0-128)
out(6):フェーダー移動終了レベル(0-128)
*-----------------------------------------------------------------------------
zm_get_fader_status()
*-----------------------------------------------------------------------------
機能 フェーダーの状態取得
引数 なし
戻り値 d0,d1,d6,d7ビットに検査結果が反映される。
d0:実行中のチャンネルフェーダーすべてが目的に達している(1:達成した 0:達成していない)
d1:実行中のマスターフェーダーすべてが目的に達している(1:達成した 0:達成していない)
d6:チャンネルフェーダーの状態(1:実行中 0:実行されていない)
d7:マスターフェーダーの状態(1:実行中 0:実行されていない)
*-----------------------------------------------------------------------------
zm_get_play_time()
*-----------------------------------------------------------------------------
機能 演奏時間の取得
引数 なし
戻り値 16進表現で00HHMMSSという書式で返ってくる。
なおHH:0-99,MM:0-59,SS:0-59の値を取る。
*-----------------------------------------------------------------------------
zm_get_1st_comment()
*-----------------------------------------------------------------------------
機能 演奏中の曲のコメントを取り出す
引数 なし
戻り値 文字列アドレス
終端コードは0
*-----------------------------------------------------------------------------
zm_get_timer_mode()
*-----------------------------------------------------------------------------
機能 現在のテンポソースとなっているタイマの種類を返す
引数 なし
戻り値 0:タイマ A,1:タイマ B,2:YM3802タイマ
*-----------------------------------------------------------------------------
zm_get_track_table()
*-----------------------------------------------------------------------------
機能 演奏トラックテーブルのアドレスを得る
引数 なし
戻り値 演奏トラックテーブルのアドレス
備考 演奏トラックテーブルには演奏に使用されるトラック番号(2bytes)が
-1(2bytes)を終端コードとし羅列される。
*-----------------------------------------------------------------------------
zm_get_track_table_se()
*-----------------------------------------------------------------------------
機能 効果音演奏トラックテーブルのアドレスを得る
引数 なし
戻り値 効果音演奏トラックテーブルのアドレス
備考 効果音演奏トラックテーブルには演奏に使用されるトラック番号(2bytes)が
-1(2bytes)を終端コードとし羅列される。
*-----------------------------------------------------------------------------
zm_get_play_work( track )
*-----------------------------------------------------------------------------
機能 演奏トラックワークのアドレスを得る
引数 int track:トラック番号(0-65534)
戻り値 演奏トラックワークのアドレス
備考 演奏トラックワークの内容と構成に付いてはMEASURE13を参照のこと。
*-----------------------------------------------------------------------------
zm_get_play_work_se( track )
*-----------------------------------------------------------------------------
機能 効果音演奏トラックワークのアドレスを得る
引数 int track:トラック番号(0-65534)
戻り値 効果音演奏トラックワークのアドレス
備考 効果音演奏トラックワークの内容と構成は通常の演奏トラックと
まったく同一。
*-----------------------------------------------------------------------------
zm_get_buffer_information()
*-----------------------------------------------------------------------------
機能 バッファ・アドレステーブルのアドレス
引数 なし
戻り値 バッファ・アドレステーブルのアドレス
備考 バッファ・アドレステーブルの構成に付いてはMEASURE13を参照のこと
*-----------------------------------------------------------------------------
zm_zmsc_status()
*-----------------------------------------------------------------------------
機能 ZMUSICの状態ワークのアドレス
引数 なし
戻り値 ZMUSICの状態ワークのアドレスの構成に付いてはMEASURE13を参照のこと
備考 各バッファの先頭アドレステーブルの構成に付いてはMEASURE13を
参照のこと
*-----------------------------------------------------------------------------
zm_calc_total( zmd,result )
*-----------------------------------------------------------------------------
機能 ZMDの演奏時間やトータルステップタイムなどの計算
引数 dim char zmd(〜):ZMDを格納した配列(ヘッダはあってもなくてもよい)
int result:戻り値を格納するための変数
戻り値 0:正常終了
0以外:発生したエラーの数
備考 ・戻り値が0の場合はint resultには計算結果データ列を格納した領域の
ポインタが返される。計算結果データ列の構成に付いてはMEASURE10
ファンクションZM_CALC_TOTALの項を参照のこと。
・戻り値が0以外の場合はint resultにはエラーの内容を格納した
エラーテーブルのアドレスが返される。
エラーテーブルの構成に付いてはMEASURE11を参照のこと。
・いずれの場合もint resultに返された領域は使用後free_mem()などで
解放すること。
・この関数はコンパイラに含まれる外部組み込みのファンクションと
であるため、使用前にはコンパイラの常駐を確認する必要がある。
*-----------------------------------------------------------------------------
zm_occupy_zmusic( mode )
*-----------------------------------------------------------------------------
機能 ZMUSICの占有
引数 int mode:1=占有する,0=占有を解除する,-1=占有状態の検査
戻り値 mode=0,1のとき:以前の占有状態(mode=-1の時を参照)
mode=-1のとき:0=占有されていない,1=占有されている
*-----------------------------------------------------------------------------
zm_occupy_compiler( mode )
*-----------------------------------------------------------------------------
機能 コンパイラの占有
引数 int mode:1=占有,0=占有解除,-1=占有状態検査
戻り値 mode=0,1のとき:以前の占有状態(mode=-1の時を参照)
mode=-1のとき:0=占有されていない,1=占有されている
*-----------------------------------------------------------------------------
zm_store_error( err,noferr,addr )
*-----------------------------------------------------------------------------
機能 エラーコードのストア
引数 int err(上位16):エラーの発生したファンクション番号(0-32767)
(下位16):エラーコード(0-65535)
int err=-1とした場合は問い合わせのみでストアは行わない
int noferr:エラーの合計個数値に幾つ加算するか
int addr:エラーストックバッファの先頭アドレスを格納する変数
戻り値 現在ストックしているエラーの個数
備考 ・本関数はユーザーアプリケーション側で発生したエラーをZMUSIC側に
知らせたい場合に使用する。ただしその場合、エラーコードフォーマットは
MEASURE11で示してある形式に従わなければならない。
*-----------------------------------------------------------------------------
zm_print_error( mode,lang,noferr,ZMD,srcaddr,srcname,errtbl,buff )
*-----------------------------------------------------------------------------
機能 エラーメッセージの表示
引数 int mode:メッセージの出力先(0:画面,1:バッファ)
int lang:メッセージの言語(0:英語,1:日本語)
int noferr:エラーの数
str zmd:ZMDのファイル名(無い場合はzmd="")
dim char(int) srcaddr(〜):ソース(ZMS)のアドレス(無い場合はsrcaddr(0)=0)
str srcname:ソース(ZMS)ファイル名(無い場合はsrcname="")
int errtbl:エラーストックバッファの先頭アドレス
int buff:出力バッファの先頭アドレスを格納する変数
(int mode=1の時のみ有効,バッファの終端には0)
戻り値 出力バッファのサイズ。ただし終端の0は含まない。
備考 エラーテーブルからエラーメッセージを得る場合などに使用する。
zmd〜srcnameは通常の外部アプリケーションならば0やNUL文字列でよい。
コンパイラなどの場合はそれらを正しく設定すればタグジャンプに
対応した出力を得ることが出来る。
*-----------------------------------------------------------------------------
zm_get_mem( size,emply )
*-----------------------------------------------------------------------------
機能 メモリの確保
引数 int size:確保サイズ
int emply:確保するメモリの用途ID
戻り値 0:確保に失敗した
0以外:確保したメモリブロックのアドレス
備考 メモリの用途IDはMEASURE10 ファンクションZM_GET_MEMの項を参照のこと。
ZMUSICに無関係のメモリブロックを確保する場合ならば当関数を
用いる必要はない。
*-----------------------------------------------------------------------------
zm_enlarge_mem( size,addr )
*-----------------------------------------------------------------------------
機能 メモリブロックのサイズの変更
引数 int size:変更後のサイズ
int addr:zm_get_mem()で確保したメモリのアドレス
戻り値 確保しなおしたメモリブロックのアドレス
0ならば確保に失敗した事を意味する
備考 ・メモリブロックのサイズを大きくした場合などはメモリブロックの
再配置が自動で行われる。そのためint addrで与えられたメモリブロックが
別のアドレスに移動する場合がある。よってこの関数を実行後は
int addrを戻り値のアドレス値に置き換えるべきである。
・変更に失敗した場合は、int addrのメモリブロックの内容は保証される。
*-----------------------------------------------------------------------------
zm_free_mem( addr )
*-----------------------------------------------------------------------------
機能 メモリブロックの解放
引数 int addr:zm_get_mem()で確保したメモリのアドレス
戻り値 0:解放成功
0以外:エラーコード
*-----------------------------------------------------------------------------
zm_free_mem2( emply )
*-----------------------------------------------------------------------------
機能 特定の用途IDを持ったメモリブロックの解放
引数 int emply:メモリの用途ID
戻り値 0:解放成功
0以外:エラーコード
備考 メモリの用途IDはMEASURE10 ファンクションZM_GET_MEMの項を参照のこと。
*-----------------------------------------------------------------------------
zm_exchange_memid( mode,s_emply,d_emply,addr )
*-----------------------------------------------------------------------------
機能 メモリブロックの用途IDの変更
引数 int mode:変更モード(0:チェックなしで変更,1:チェックしてから更新
-1:int s_emplyの用途IDを持つメモリブロックをすべて
int d_emplyの用途IDへ変更する)
int s_emply:更新元メモリの用途ID(int mode=0の場合は意味なし)
int d_emply:希望メモリの用途ID
int addr:zm_get_mem()で確保したメモリのアドレス
戻り値 0:変更成功
0以外:エラーコード
備考 メモリの用途IDはMEASURE10 ファンクションZM_GET_MEMの項を参照のこと。
*-----------------------------------------------------------------------------
zm_init_all()
*-----------------------------------------------------------------------------
機能 ZMUSICの全初期化を行う
引数 なし
戻り値 Z-MUSICのバージョンID
備考 通常のアプリケーションは本関数を利用する必要はない
バージョンIDはたとえばバージョン3.21ならば $00003241となる。
4の部分は固定値。
*-----------------------------------------------------------------------------
zm_int_start( tmtype )
*-----------------------------------------------------------------------------
機能 割り込み開始制御
引数 int tmtype:制御対象タイマータイプ
(-1:音楽タイマ,0:音楽+効果音タイマ,1:効果音タイマ)
戻り値 なし
備考 通常のアプリケーションは本関数を利用する必要はない
*-----------------------------------------------------------------------------
zm_int_stop( tmtype )
*-----------------------------------------------------------------------------
機能 割り込み停止制御
引数 int tmtype:制御対象タイマータイプ
(-1:音楽タイマ,0:音楽+効果音タイマ,1:効果音タイマ)
戻り値 なし
備考 通常のアプリケーションは本関数を利用する必要はない
*-----------------------------------------------------------------------------
zm_control_tempo( mode )
*-----------------------------------------------------------------------------
機能 テンポ設定の主導権設定
引数 int mode:-1=テンポ設定の主導権を外部アプリケーションに委託
0=テンポ設定の主導権をZMUSICに戻す
(このとき内部パラメタでテンポの初期化も実施する)
戻り値 0:設定正常終了
0以外:設定失敗
*-----------------------------------------------------------------------------
zm_convert_pcm( mode,size,source,destination )
*-----------------------------------------------------------------------------
機能 PCMデータの変換を行う
引数 int mode:変換モード(0:ADPCM to PCM,1:PCM TO ADPCM)
int size:変換元のPCMのデータサイズ
dim char(or int) source(〜):変換元となるPCMデータ(ADPCMデータ)の格納配列
dim char(or int) destination(〜):変換先となるPCMデータ(ADPCMデータ)の格納配列
戻り値 なし
*-----------------------------------------------------------------------------
zm_work( track,offset )
*-----------------------------------------------------------------------------
機能 演奏トラックワークの内容取得
引数 int track:トラック番号(0-65534)
int offset:演奏トラックワークオフセット
戻り値 ワーク内容(0〜255)
備考 演奏トラックワークの内容と構成に付いてはMEASURE13を参照のこと。
*-----------------------------------------------------------------------------
zm_exec_zmd( track,size,zmd )
*-----------------------------------------------------------------------------
機能 ZMD列の実行
引数 int track:トラック番号(0-65534,65535:特に指定しない場合)
int size:ZMD列の長さ
dim char zmd:ZMD列格納配列(配列自体はsize+8の大きさを必要とする)
戻り値 なし
*-----------------------------------------------------------------------------
{ -- ZM4.MAN ------------------------------------------------
MEASURE 4
ZMSコマンド
ここではCOMMAND.X上から音楽プログラムを書くための書式、
つまりZMSファイル(OPMファイル)の文法について解説します。
4.1. ZMSファイルとは
ZMUSICシステムではエディタからMMLやコマンドを記述したファイルを
演奏することが出来る。これをZMUSICシステムでは「ZMSファイル」と
呼ぶ。X68k本体に付属している「OPMDRV.X」用の「OPMファイル」と
概念的には、ほとんど同じものである。
ZMSファイルはED.Xなどのスクリーンエディタを使って、ここで解説する
「ZMSコマンド」を記述することによって作成していく。ZMSコマンドの中でも
トラックに依存しないZMSコマンドを特に「共通コマンド」と呼んでいる。
4.2. ZMSコマンド
・省略しても良いパラメータはその旨を記述してあるがそれ以外は省略不可である。
・コマンドは大文字小文字どちらで記述しても構わないが、ここでは説明の都合上
コマンド名を大文字、パラメータを小文字で記述している。
・'*'を付けたものはパラメータを複数行に渡って記述出来る。それ以外の
コマンドではその1行で全てのパラメータを記述しなければならない。
・MUSICZ3.FNCの外部関数命令と対応するものはそのコマンド名を
挙げてある。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■初期化
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●ZMUSICと音源の初期化
(I)
.INITIALIZE
Z-MUSICと音源の初期化を行う。通常はZMS先頭に書く。
(MEASURE3 zm_init()参照)
例
.INITIALIZE
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■各種モード設定
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●マスタークロックの設定
(Zn)
.MASTER_CLOCK n
・n:1-32767
全音符の絶対音長nを設定する。設定範囲は1≦n≦32767。
初期値は192。通常は設定する必要はない。
この値を大きくすればするほどシステムへの負荷は大きくなるが精細な音長表現が
可能になる。逆に小さくすればするほどシステムの負荷は軽くなるが短い音長を
使用した場合に誤差を生じることがある。
1920, 480, 192, 144, 128, 96といった数値を設定するのが一般的である。
たとえばn=1920として全音符の絶対音長を1920とした場合、4分音符は1920/4=480
で表される。
(MEASURE3 zm_set_master_clock()参照)
例
.MASTER_CLOCK 480
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●ジャンプ系コマンドの制御
.JUMP md
・md:DISABLE,ENABLE
ジャンプ系MMLコマンドの生成を抑制する。
md=DISABLEとした場合はこの生成を抑止し、md=ENABLEとした場合はこの生成を行う。
抑制対象となるMMLコマンドは以下のジャンプ系MML。
[@] 全トラック追従ジャンプ
[!] 単一トラックジャンプ
[end] 演奏停止
[JUMP] 小節ジャンプ
例
.JUMP DISABLE
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●ゲートタイム解像度の設定
.GATETIME_RESOLUTION n
・n:8,16,32,64,128
MML Qの最大値を設定する。設定値は8,16,32,64,128のいずれか。
初期設定時は8になっている。大きな値に設定すればより細かなゲートタイム
指定が行えるようになる。
例
.GATETIME_RESOLUTION 128
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●音長指定方式の選択
.LENGTH_MODE md
・md:MML,STEP
音符の解釈方式を選択する。モードは「MMLモード」と「STEPモード」がある。
MMLモードは、いわゆる一般的なMML方式で、音符を
<音符[変化記号]> [音長] [発音長] [ベロシティ]
(<>は省略不可、[]は省略可のパラメータを表している)
の順で記述するもの。音長、および発音長は、全音符を1とした音楽的音長で
指定する。
一方、STEPモードでは、ステップ入力型DTMツールの音符入力方式を模倣したもので
<キー>[変化記号][オクターブ] [ステップタイム] [ゲートタイム] [ベロシティ]
のような書式で音符を記述する。ステップタイムはMMLモードの音長に相当し、
ゲートタイムはMMLモードの発音長に相当する。ただし、両方ともMMLモードでいう
ところの絶対音長で表記する点が異なる(STEPモードでは使用できる音長が絶対音長
のみとなる)。
たとえばオクターブ4の4分音符(絶対音長=48)のド#をベロシティ100、発音長を
符点8分音符相当(絶対音長=36)で鳴らしたい場合、MMLモードでは
c#4,8.,100
となるが、STEPモードでは
c#4,48,36,100
と記述する。
例
.LENGTH_MODE STEP
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●相対ベロシティMMLの指定
.RELATIVE_VELOCITY md
・md:_~,~_,@U,U
初期状態では_ ~は相対音量のMMLであるが、これを相対ベロシティに効果を
変換することができる。本命令はこの変換についての設定を行うもの。
md=_~あるいはmd=~_とすると、相対ベロシティは _ ~で行うことができるように
なる。一方、md=@Uまたはmd=Uとすると相対ベロシティは従来どおり@U±n,U±nで
指定することになり、_~は相対音量の操作MMLとして機能する。
例
.RELATIVE_VELOCITY _~
.RELATIVE_VELOCITY @U
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●FM音源チューニング
.FM_TUNE_SETUP {t1,t2,...,t128} *
・t1〜t128:-32768〜+32768
FM音源のチューニング設定を O-1C(C-1) から O9G(G9) まで128個のノート個別に
行う(概念的にはノート個別に設定するディチューンのようなもの)。
t1〜t128はそれぞれノート番号0(C-1)から127(G9)までに対応する。
t1〜t128の設定範囲は-32768〜+32767で、64が半音の変化量に相当する。ディチューン
設定を行うMML @Kに与える数値と同次元。
t1〜t128はt1から任意の個数まで設定したあと設定を打ち切ることができる。
その場合、省略されたものについては0が設定されたと見なされる。
例
.fm_tune_setup {0,-5,3,10,-9,-1,-6,1,9,-10,9,-8
0,-5,3,10,-9,-1,-6,1,9,-10,9,-8
0,-5,3,10,-9,-1,-6,1,9,-10,9,-8
0,-5,3,10,-9,-1,-6,1,9,-10,9,-8
0,-5,3,10,-9,-1,-6,1,9,-10,9,-8
0,-5,3,10,-9,-1,-6,1,9,-10,9,-8
0,-5,3,10,-9,-1,-6,1,9,-10,9,-8
0,-5,3,10,-9,-1,-6,1,9,-10,9,-8
0,-5,3,10,-9,-1,-6,1,9,-10,9,-8
0,-5,3,10,-9,-1,-6,1,9,-10,9,-8
0,-5,3,10,-9,-1,-6,1}
(Cを主音とした平均律の例)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●ADPCM音源チューニング
.ADPCM_TUNE_SETUP {t1,t2,...,t128} *
.PCM_TUNE_SETUP {t1,t2,...,t128} *
・t1〜t128:-32768〜+32768
ADPCM(PCM)音源のチューニング設定を O-1C(C-1) から O9G(G9) まで128個の
ノート個別に行う。
t1〜t128はそれぞれノート番号0(C-1)から127(G9)までに対応する。
t1〜t128の設定範囲は-32768〜+32767で、64が半音の変化量に相当する。ディチューン
設定を行うMML @Kに与える数値と同次元。
t1〜t128はt1から任意の個数まで設定したあと設定を打ち切ることができる。
その場合、省略されたものについては0が設定されたと見なされる。
例
.pcm_tune_setup{-4,29,-1,-8,-33,-5,28,-3,-30,0,-6,-31
-4,29,-1,-8,-33,-5,28,-3,-30,0,-6,-31
-4,29,-1,-8,-33,-5,28,-3,-30,0,-6,-31
-4,29,-1,-8,-33,-5,28,-3,-30,0,-6,-31
-4,29,-1,-8,-33,-5,28,-3,-30,0,-6,-31
-4,29,-1,-8,-33,-5,28,-3,-30,0,-6,-31
-4,29,-1,-8,-33,-5,28,-3,-30,0,-6,-31
-4,29,-1,-8,-33,-5,28,-3,-30,0,-6,-31
-4,29,-1,-8,-33,-5,28,-3,-30,0,-6,-31
-4,29,-1,-8,-33,-5,28,-3,-30,0,-6,-31
-4,29,-1,-8,-33,-5,28,-3}
(アラビア音階)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■拍子/調号
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●拍子設定
.METER m/n
.m/n:1/1〜255/255
拍子の設定を行う。ただし、この設定は演奏になんら影響を与えるものではなく
あくまで、演奏データに対する1つの付加情報的な意味あいしか持たない。
m/nは音楽的な拍子をそのまま分数表現で与えることができる。
例
.METER 3/4
(4分の3拍子を設定)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●調号設定
.KEY { n,type,m }
.KEY str
・n:0-7
・type:-,+,#
・m:MAJOR,MINOR
・str:文字列
調号の設定を行う。この設定は演奏になんら影響を与えるものではなくあくまで、
演奏データに対する1つの付加情報的な意味あいしか持たない。
nは調号中の変化記号の個数で設定範囲は0〜7。
typeは調号に含まれる変化記号の個数を表し、設定項目は -,+,#のいずれか。
-は♭を表し、+または#は♯を表す。
mは長調か短調のいずれかを選択するパラメータで、設定項目はMAJOR,MINORの
いずれか。MAJORが長調、MINORが短調に対応する。
また、一般的な調は以下に示す英語表記の調名にて指定することもできる。
Cmajor,Gmajor,Dmajor,Amajor,Emajor,Bmajor,F+major,F#major,C+major,C#major
Fmajor,B-major,Bbmajor,E-major,Ebmajor,A-major,Abmajor,D-major,Dbmajor
G-major,Gbmajor,C-major,Cbmajor
Aminor,Eminor,Bminor,F+minor,F#minor,C+minor,C#minor,G+minor,G#minor
D+minor,D#minor,A+minor,A#minor,Dminor,Gminor,Cminor,Fminor,B-minor
Bbminor,E-minor,Ebminor,A-minor,Abminor
例
.KEY C#minor /嬰ハ短調
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●演奏時間
.PERFORMANCE_TIME hh:mm:ss
hh:00〜99
mm:00〜59
ss:00〜59
演奏時間を設定する。この設定は演奏になんら影響を与えるものではなくあくまで、
演奏データに対する1つの付加情報的な意味あいしか持たない。
hh,mm,ssはそれぞれ、時間、分、秒をあらわし、00:00:01〜99:59:59までの
値を取る。
例
.PERFORMANCE_TIME 00:01:32
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■トラック定義/チャンネルアサイン
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●トラック定義/チャンネルアサイン
(A dev,trk,trkv,trkf,trks,trkm,cmnt)
.ASSIGN trk {dev,trkv,trkf,trks,trkm,cmnt} *
・trk:1〜65535
・dev:FM1〜FM8,MIDI1-1〜MIDI3-16,ADPCM1〜16
・trkv:0-128
・trkf:1-256
・trks:PLAY,RECORD
・trkm:NORMAL,RHYTHM
・cmnt:文字列
演奏で使用するトラックの定義を行う。
・trk:トラック番号
trkはトラック番号で1〜65535与えることができる。
・dev:デバイス名
devはそのトラックをどの音源の演奏に用いるかを指定するもの。
FM1〜FM8はFM音源チャンネル1〜8,ADPCM1〜ADPCM16はADPCMチャンネル1〜16に
対応する。またADPCMはPCM1〜PCM16としても指定できる。
デバイス名のFMやADPCMの後ろに'-'を添付しFM-1〜FM-8,ADPCM-1〜ADPCM-16のように
定することも可能。
MIDIはデバイス名MIDIの後ろにインターフェース番号,チャンネル番号を順番に
記述して指定する。インターフェース番号を省略することもできる。省略時は
後述のカレントMIDI-OUTとして選択されているインターフェースを指定したことに
なる。
・trkv:トラックボリューム
そのトラックの出力音量を指定する。設定範囲は0〜128で、0が無音状態、128が
原音量に相当する。trkvは省略可能で省略時は128が設定される。
・trkf:トラック処理頻度
そのトラックの処理頻度を指定する。設定範囲は1〜256。
たとえば2を指定するとそのトラックは2回に1回の割合でしか処理されず、
システムに対する負荷を軽くすることができる。ただし、短い音長を
使用した音符を演奏すると演奏に誤差を生じる場合がある。
trkfは省略可能で省略時は1が設定される。
・trks:トラック状態
そのトラックの使用目的を指定する。設定項目はPLAY,RECORDのいずれか。
ただし、現在指定できるのはPLAY(演奏)のみ。trksは省略可能で省略時はPLAYが
設定される。
・trkm:トラックモード
そのトラックの演奏処理形式を指定する。設定項目はNORMALまたはRHYTHM。
NORMALはノートオン/ノートオフを通常に処理する演奏モード、一方
RHYTHMに設定するとノートオフ処理を省略する演奏モードで処理される。
RHTHM指定時は丁度MMLで@R1を設定した時と同じになる
trkmは省略可能で省略時はNORMALが設定される。
・cmnt:コメント
そのトラックに与える注釈を添付することができる。
文字列は"〜"で括る必要はなく、何文字でも可能。
(MEASURE3 zm_assign()参照)
例
.ASSIGN 1 FM1
(A MIDI10,10)
.ASSIGN 10 {MIDI2-1,128,1,PLAY,NORMAL,MELODY LINE}
(A PCM-1,1,128,2,PLAY,RHTHM,DRUM PART)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■演奏制御
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●演奏開始
(Pn1,n2,…,ni)
.PLAY {n1,n2,…,ni} *
・n1〜ni:1-65535
指定されたトラック(n1〜ni)の演奏を開始する。
n1〜niはトラック番号を表し、設定範囲は1≦ni≦65535。全パラメータを省略した
場合は全トラックの演奏を開始する。
(MEASURE3 zm_play()参照)
例
(P)
.PLAY
(P1,2,3)
.PLAY {
1,2,3,4
5,6,7,8
}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●演奏停止
(Sn1,n2,…,ni)
.STOP {n1,n2,…,ni} *
・n1〜ni:1-65535
指定されたトラック(n1〜ni)の演奏を停止する。
n1〜niはトラック番号を表し、設定範囲は1≦ni≦65535。全パラメータを省略した
場合は全トラックの演奏を停止する。
(MEASURE3 zm_stop()参照)
例
(S)
.STOP
(S1,2,3)
.STOP {
1,2,3,4
5,6,7,8
}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●演奏再開
(Cn1,n2,…,ni)
.CONTINUE {n1,n2,…,ni} *
・n1〜ni:1-65535
指定されたトラック(n1〜ni)の演奏を再開する。
n1〜niはトラック番号を表し、設定範囲は1≦ni≦65535。全パラメータを省略した
場合は全トラックの演奏を再開する。
(MEASURE3 zm_cont()参照)
例
(C)
.CONTINUE
(C1,2,3)
.CONTINUE {
1,2,3,4
5,6,7,8
}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●トラックマスク
.TRACK_MASK { trk1,mode1, trk2,mode2, ... trkX,modeX } *
・trkX:1-65535,ALL
・modeX:OFF,ON,REVERSE
演奏中の任意のトラックをリアルタイムにマスク/解除する。
trkXは操作対象とするトラック番号を表し、1〜65535を設定する。また、演奏中
すべての演奏トラックを操作対象とする場合は文字列 ALL を指定する。
modeXはtrkXで指定したトラックの演奏状態をどう変更するかを指定する。
以下にmodeXの設定項目とその効果を示す。
modeX 効果
OFF そのトラックをマスクする
ON そのトラックのマスクを解除する
REVERSE そのトラックのマスクを反転する
(MEASURE3 zm_mask_tracks()参照)
例
.TRACK_MASK {1,ON
2,OFF
3,REVERSE
}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■フェーダー制御
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●マスターフェーダー
.MASTER_FADER {dev1,spd1,st1,ed1,dev2,spd2,st2,ed2,...,devX,spdX,stX,edX} *
・devX:ALL,FM,ADPCM,MIDI1,MIDI2,MIDI3
・spdX:0-255
・stX:0-128
・edX:0-128
マスターフェーダーはZMUSICの演奏の最終的な出力制御を司るフェーダーで、
後述のトラック単位のトラックフェーダーとは独立して制御が行える。
本命令は、デバイスdevXのマスターフェーダーを速度spdXでレベルstXからedXまで
移動させるもの。
devXは操作対象デバイスで、ALL,FM,ADPCM,MIDI1,MIDI2,MIDI3のいずれかを指定する。
ALLでは全デバイスのマスターフェーダーを操作対象とする。
spdXはフェーダーの移動速度で数値が大きいほど高速に移動する。また、spdX=0では
「静止」の指定となる。
stXはフェーダー移動の開始レベルに相当し、0が無音、128が最大(原音)レベルに
対応する。
edXはフェーダー移動の終了レベルに相当し、0が無音、128が最大(原音)レベルに
対応する。
(MEASURE3 zm_master_fader()参照)
例
.MASTER_FADER {ALL,10,128,0}
.MASTER_FADER {
MIDI1,10,128,0
MIDI2,10,0,128
MIDI3,0,64,64
}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●トラックフェーダー
.TRACK_FADER {trk1,spd1,st1,ed1,trk2,spd2,st2,ed2,...,trkX,spdX,stX,edX} *
・trkX:1-65535
・spdX:0-255
・stX:0-128
・edX:0-128
トラックフェーダーはトラック単位にその演奏出力制御が行えるフェーダーである。
本命令は、トラックtrkXのトラックフェーダーを速度spdXでレベルstXからedXまで
移動させるもの。
trkXは操作対象トラック番号で、設定範囲は1-65535。
spdXはフェーダーの移動速度で数値が大きいほど高速に移動する。また、spdX=0では
「静止」の指定となる。
stXはフェーダー移動の開始レベルに相当し、0が無音、128が最大(原音)レベルに
対応する。
edXはフェーダー移動の終了レベルに相当し、0が無音、128が最大(原音)レベルに
対応する。
(MEASURE3 zm_set_ch_output_level(),zm_set_tr_output_level()参照)
例
.TRACK_FADER {
1,10,128,0
2,10,0,128
3,0,64,64
}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■テンポ
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●テンポ
(Ot)
.TEMPO t
・t:1-32767
テンポをtに設定する。1分間にt個の4分音符を演奏するようになる。
tの設定範囲は1-32767。ただし、テンポ制御タイマーにタイマーAを使用した場合の
tの設定範囲は77-32767となる。
(MEASURE3 zm_tempo()参照)
例
(o120)
.TEMPO 150
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■MMLセット
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●MMLセット
(Tn1,n2,…,n8)
.TRACK n1,n2,…,n8 { MML }
・n1〜n8:1-65535
MMLをトラックn1〜n8へセットする。設定範囲は1≦n1〜n8≦65535。
トラック番号を複数指定した場合は同一MMLを同時に複数のトラックにセットする。
また、n2以降は省略可能。
MMLをセットするトラックはあらかじめ.ASSIGN命令で宣言しておかなければならない。
なお、MMLについてはMEASURE 5を参照のこと。
例
.TRACK 1,2,3 {
c4 d4 e4
}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●パターントラック
.PATTERN name,trkf { MML } *
・name:文字列
・trkf:1-256
パターントラックを定義する。パターントラックとは曲中頻繁に使うリズムパターン
などを固有の名前を与えて定義し、曲中任意に呼び出すことができる演奏トラックの
こと。具体的には、本命令でパターントラックを定義し、MML
[PATTERN]
[EMBED]
で曲中で呼び出す。
nameはパターン名を表し、これは251文字以内の英数字文字列で指定する。
trkfは.ASSIGN命令のtrkfに相当するもので、トラック処理頻度を
表す。設定範囲は1-256で、省略可能。省略時は1が設定される。
MMLについてはMEASURE 5を参照のこと。
例
.PATTERN FUNK,1 {
o2 @u99 c4 @u120 d4 @u99c8 c8 @u127 d4
}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■FM音源の音色設定
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●FM音源の音色設定
(Vn,0,v1,v2,…,v55) *
・n:1〜32768
・v1〜v55:下記参照
FM音源の音色設定を行う。
nは定義する音色番号で1≦n≦32768。
v1〜v55の音色パラメータについては下記参照。
音色フォーマット(OPMDRV.X互換方式)
v1:AF(フィードバック/アルゴリズム) (0〜63)
v2:OM(スロットマスク) (0〜15)
v3:WF(ウェーヴフォーム) (0〜3)
v4:SYC(シンクロ) (0,1)
v5:SPD(スピード) (0〜255)
v6:PMD (0〜127)
v7:AMD (0〜127)
v8:PMS (0〜7)
v9:AMS (0〜3)
v10:PAN (0〜3)
v11:DUMMY
v12:OP1, v13:OP2, v14:OP3, v15:OP4 AR(アタックレート) (0〜31)
v16:OP1, v17:OP2, v18:OP3, v19:OP4 1DR(1stディケイレート) (0〜31)
v20:OP1, v21:OP2, v22:OP3, v23:OP4 2DR(2ndディケイレート) (0〜31)
v24:OP1, v25:OP2, v26:OP3, v27:OP4 RR(リリースレート) (0〜15)
v28:OP1, v29:OP2, v30:OP3, v31:OP4 1DL(1stディケイレベル) (0〜15)
v32:OP1, v33:OP2, v34:OP3, v35:OP4 TL(トータルレベル) (0〜127)
v36:OP1, v37:OP2, v38:OP3, v39:OP4 KS(キースケーリング) (0〜3)
v40:OP1, v41:OP2, v42:OP3, v43:OP4 MUL(フェーズマルチプライ) (0〜15)
v44:OP1, v45:OP2, v46:OP3, v47:OP4 DT1(ディチューン1) (0〜7)
v48:OP1, v49:OP2, v50:OP3, v51:OP4 DT2(ディチューン2) (0〜3)
v52:OP1, v53:OP2, v54:OP3, v55:OP4 AME(AMSイネーブル) (0,1)
(MEASURE3 zm_vset()参照)
例
(v1,0
/ AF OM WF SY SP PMD AMD PMS AMS PAN
60, 15, 2, 0,210, 40, 0, 2, 0, 3, 0
/ AR DR SR RR SL OL KS ML DT1 DT2 AME
31, 5, 0, 12, 2, 30, 1, 2, 7, 0, 0
31, 5, 0, 12, 8, 6, 1, 2, 5, 0, 0
31, 5, 0, 12, 8, 28, 1, 2, 3, 0, 0
31, 5, 0, 12, 8, 6, 1, 2, 5, 0, 0)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●FM音源の音色設定
(@n,v1,v2,…,v55) *
.FM_TIMBRE n,cmnt {v1,v2,…,v55} *
.FM_VSET n,cmnt {v1,v2,…,v55} *
・n:1-32768
・cmnt:コメント
・v1〜v55:下記参照
AL/FB分離形式によるFM音源の音色設定を行う。
nは定義する音色番号で1≦n≦32768。
cmntには音色に関するコメント文字列を与えることが出来る。ただし省略可能。
v1〜v55の音色パラメータについては下記参照。
音色フォーマット(AL/FB分離方式)
v1:OP1, v2:OP2, v3:OP3, v4:OP4 AR(アタックレート) (0〜31)
v5:OP1, v6:OP2, v7:OP3, v8:OP4 1DR(1stディケイレート) (0〜31)
v9:OP1,v10:OP2,v11:OP3,v12:OP4 2DR(2ndディケイレート) (0〜31)
v13:OP1,v14:OP2,v15:OP3,v16:OP4 RR(リリースレート) (0〜15)
v17:OP1, v18:OP2, v19:OP3, v20:OP4 1DL(1stディケイレベル) (0〜15)
v21:OP1, v22:OP2, v23:OP3, v24:OP4 TL(トータルレベル) (0〜127)
v25:OP1, v26:OP2, v27:OP3, v28:OP4 KS(キースケーリング) (0〜3)
v29:OP1, v30:OP2, v31:OP3, v32:OP4 MUL(フェーズマルチプライ) (0〜15)
v33:OP1, v34:OP2, v35:OP3, v36:OP4 DT1(ディチューン1) (0〜7)
v37:OP1, v38:OP2, v39:OP3, v40:OP4 DT2(ディチューン2) (0〜3)
v41:OP1, v42:OP2, v43:OP3, v44:OP4 AME(AMSイネーブル) (0,1)
v45:AL(アルゴリズム) (0〜7)
v46:FB(フィードバック) (0〜7)
v47:OM(スロットマスク) (0〜15)
v48:PAN (0〜3)
v49:WF(ウェーヴフォーム) (0〜3)
v50:SYC(シンクロ) (0,1)
v51:SPD(スピード) (0〜255)
v52:PMD (0〜127)
v53:AMD (0〜127)
v54:PMS (0〜7)
v55:AMS (0〜3)
(MEASURE3 zm_vset()参照)
例
.FM_TIMBRE 1,SQUARE WAVE {
/ AR DR SR RR SL OL KS ML DT1 DT2 AME
31, 0, 2, 0, 0, 21, 0, 1, 0, 0, 0
31, 0, 0, 8, 0, 3, 0, 3, 0, 0, 0
31, 0, 0, 8, 0, 3, 0, 1, 0, 0, 0
31, 0, 0, 8, 0, 3, 0, 1, 0, 0, 0
/ AL FB OM PAN WF SY SP PMD AMD PMS AMS
5, 7, 15, 3 0, 0, 0, 0, 0, 0, 0}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■ADPCM/PCMデータ加工/登録
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●PCM音色の登録
.8BITPCM_TIMBRE b,t,k,str { filename,PPC } *
.16BITPCM_TIMBRE b,t,k,str { filename,PPC } *
.ADPCM_TIMBRE b,t,k,str { filename,PPC } *
・b:0-255
・t:1-128
・k:O-1C〜O9G または C-1〜G9
・str:文字列
・filename:文字列
・PPC:後述
filenameで指定されたPCMデータを音色(TIMBRE)として登録する。
.8BITPCM_TIMBREは8BIT PCM、.16BITPCM_TIMBREは16BIT PCM,.ADPCM_TIMBREは
ADPCMをそれぞれ登録する。
b,tはそれぞれ登録先バンク番号,登録先音色番号をあらわし、設定範囲は
0≦b≦255,1≦t≦128。
kは登録するPCMデータの原音高(オリジナルキー)を設定するもので設定範囲は
O-1C〜O9G または C-1〜G9。ZMUSICがPCMの音程を変化させる場合は、このkの設定を
もとに行うことになる。
strはコメントで登録する音色に付いての簡単な注釈文などを添えることが出来る
(省略可能)。
filenameを読み込むファイルの名前でなく
.TIMBRE b,t
.TONE b,n
といった書式で指定すれば、以前に
「.TIMBRE b,t」ならば.8BITPCM_TIMBRE,.16BITPCM_TIMBRE,.ADPCM_TIMBRE
「.TONE b,t」ならば.8BITPCM_TONE,.16BITPCM_TONE,.ADPCM_TONE
を用いて登録した音色/トーンのコピーを用いて加工登録することもできる。
「.TIMBRE b,t」書式では、bがバンク番号(0-255)、tが音色番号(1-128)を、
「.TONE b,n」書式では、bがバンク番号(1-256)、nがトーン番号(0-127)を表す。
nはO-1C〜O9G または C-1〜G9といった音階MMLで指定することもできる。
PPC(PCM PROCESSING COMMAND)はfilenameで指定されたPCMデータを登録する前に
加工処理を行う命令で以下のようなものがある。各PPCは指定された順序に従い
加工を実行していく。PPCは省略、あるいは、同種PPCの複数設定も可能。
(MEASURE6参照)
例
.16BITPCM_TIMBRE 0,10,O2C,BASS {SLAP.P16,.VOLUME 120}
.ADPCM_TIMBRE 1,10,O2C,BASS2 {.TIMBRE 0,10,.BEND 15600,22000}
本命令でバンクb、音色番号tで登録したPCMは[PCM_MODE TIMBRE]にしたトラックで
MML Iでバンク番号b、MML @で音色番号を指定すると使用することが出来る。
例
.ADPCM_TIMBRE 1,10,O2C,BASS2 {.TIMBRE 0,10,.BEND 15600,22000}
で登録した音色は
(t1)[PCM_MODE TIMBRE] i0,1 @10
で、またはMML @のみで
(t1)[PCM_MODE TIMBRE] @1:10
と指定することも出来る。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●PCMトーンの登録
.8BITPCM_TONE t,k,str { filename,PPC } *
.16BITPCM_TONE t,k,str { filename,PPC } *
.ADPCM_TONE t,k,str { filename,PPC } *
・t:1-256
・k:0-127 あるいは O-1C〜O9G または C-1〜G9
・str:文字列
・filename:文字列
・PPC:後述
filenameで指定されたPCMデータをトーン(TONE)として登録する。
.8BITPCM_TONEは8BIT PCM、.16BITPCM_TONEは16BIT PCM,.ADPCM_TONEはADPCMを
それぞれ登録する。
tは登録先トーンセット番号をあらわし、設定範囲は1≦t≦256。
kは登録するノート番号を指し示すもので設定範囲は0-127あるいは、音階MMLを
用いてO-1C〜O9G または C-1〜G9と指定することも出来る。
strはコメントで登録する音色に付いての簡単な注釈文などを添えることが出来る
(省略可能)。
filenameを読み込むファイルの名前でなく
.TIMBRE b,t
.TONE b,n
といった書式で指定すれば、以前に
「.TIMBRE b,t」ならば.8BITPCM_TIMBRE,.16BITPCM_TIMBRE,.ADPCM_TIMBRE
「.TONE b,t」ならば.8BITPCM_TONE,.16BITPCM_TONE,.ADPCM_TONE
を用いて登録した音色/トーンのコピーを用いて加工登録することもできる。
「.TIMBRE b,t」書式では、bがバンク番号(0-255)、tが音色番号(1-128)を、
「.TONE b,n」書式では、bがバンク番号(1-256)、nがトーン番号(0-127)を表す。
nはO-1C〜O9G または C-1〜G9といった音階MMLで指定することもできる。
PPC(PCM PROCESSING COMMAND)はfilenameで指定されたPCMデータを登録する前に
加工処理を行う命令で以下のようなものがある。各PPCは指定された順序に従い
加工を実行していく。PPCは省略、あるいは、同種PPCの複数設定も可能。
(MEASURE6参照)
例
.16BITPCM_TONE 0,36,BASS {BD.P16,.VOLUME 120}
.ADPCM_TONE 10,o2d,SNARE {.TIMBRE 0,10,.BEND 15600,22000}
本命令でトーンセットt、ノート番号kに登録したPCMは[PCM_TIMBRE TONE]にした
トラックで(デフォルト状態)MML @でトーンセット番号を指定し、希望のノートを
キーオンさせることで鳴らすことが出来る。
例
.ADPCM_TONE 10,o2d,SNARE {.TIMBRE 0,10,.BEND 15600,22000}
で登録した音色は
(t1)[PCM_MODE TONE] @10 o2 d
として演奏させることが出来る。
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ PCM PROCESSING COMMAND ┃
┃ ┃
┃----------------------------------------------------------------------------┃
┃●音程の変更(その1) ┃
┃.PITCH k,o,s ┃
┃・k:O-1C〜O9G,C-1〜G9,-144〜+144 ┃
┃・o:0-4294967295 ┃
┃・s:0-4294967295 ┃
┃ ┃
┃ 音高を半音単位で変更する ┃
┃ ┃
┃・k:変更先音高 ┃
┃ kで音程変更先の音高を音階MML(O-1C〜O9G,C-1〜G9)で指定する。 ┃
┃ 相対数値(-144〜+144)で指定した場合は原音高からの半音単位の指定となる。 ┃
┃ ┃
┃・o:変更開始位置 ┃
┃ 音高変更をデータ先頭から何カウント目から行うかを設定するオフセット値。 ┃
┃ 設定範囲は0-4294967295。省略時は0が採択される。 ┃
┃ ┃
┃・s:変更サイズ ┃
┃ 音高変更を何カウント分行うかを指定する。設定範囲は0-4294967295。 ┃
┃ 省略時は、o以降すべてを変更範囲とする。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ .PITCH O4A,0,1200 ┃
┃ .PITCH -8,80,1200 ┃
┃----------------------------------------------------------------------------┃
┃●音程の変更(その2) ┃
┃.TUNE t1,t2,o,s ┃
┃・t1:1-65535 ┃
┃・t2:1-65535 ┃
┃・o:0-4294967295 ┃
┃・s:0-4294967295 ┃
┃ ┃
┃ 音高の変更をサンプリング周波数比で指定する。 ┃
┃ ┃
┃・t1:変更元サンプリング周波数 ┃
┃・t2:変更先サンプリング周波数 ┃
┃ sが変換元のサンプリング周波数、dが変更目的のサンプリング周波数。値の単位は┃
┃ [Hz]でs,d共に設定範囲は1〜65535。 ┃
┃ ┃
┃・o:変更開始位置 ┃
┃ 音高変更をデータ先頭から何カウント目から行うかを設定するオフセット値。 ┃
┃ 設定範囲は0-4294967295。省略時は0が採択される。 ┃
┃ ┃
┃・s:変更サイズ ┃
┃ 音高変更を何カウント分行うかを指定する。設定範囲は0-4294967295。 ┃
┃ 省略時は、o以降すべてを変更範囲とする。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ .TUNE 15600,22000,0,1200 ┃
┃----------------------------------------------------------------------------┃
┃●ポルタメント ┃
┃.PORTAMENT k,o,s ┃
┃・k:O-1C〜O9G,C-1〜G9,-144〜+144 ┃
┃・o:0-4294967295 ┃
┃・s:0-4294967295 ┃
┃ ┃
┃ ポルタメントを行う。 ┃
┃ ┃
┃・k:ポルタメント先音高 ┃
┃ kでポルタメント先の音高を音階MML(O-1C〜O9G,C-1〜G9)で指定する。 ┃
┃ 相対数値(-144〜+144)で指定した場合は原音高からの半音単位の指定となる。 ┃
┃ ┃
┃・o:ポルタメント開始位置 ┃
┃ ポルタメントをデータ先頭から何カウント目から行うかを設定するオフセット値。┃
┃ 設定範囲は0-4294967295。省略時は0が採択される。 ┃
┃ ┃
┃・s:ポルタメント範囲 ┃
┃ ポルタメントを何カウント内で行うかを指定する。設定範囲は0-4294967295。 ┃
┃ 省略時は、o以降すべてをポルタメント範囲とする。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ .PORTAMENT O4A,0,1200 ┃
┃ .PORTAMENT -8,80,1200 ┃
┃----------------------------------------------------------------------------┃
┃●ピッチベンド ┃
┃.BEND t1,t2,o,s ┃
┃・t1:1-65535 ┃
┃・t2:1-65535 ┃
┃・o:0-4294967295 ┃
┃・s:0-4294967295 ┃
┃ ┃
┃ ポルタメントをサンプリング周波数次元で実行する。 ┃
┃ ┃
┃・t1:ピッチベンド元サンプリング周波数 ┃
┃・t2:ピッチベンド先サンプリング周波数 ┃
┃ sがピッチベンド元のサンプリング周波数、dがピッチベンド先のサンプリング ┃
┃ 周波数。値の単位は[Hz]でs,d共に設定範囲は1〜65535。 ┃
┃ ┃
┃・o:ピッチベンド開始位置 ┃
┃ ピッチベンドをデータ先頭から何カウント目から行うかを設定するオフセット値。┃
┃ 設定範囲は0-4294967295。省略時は0が採択される。 ┃
┃ ┃
┃・s:ピッチベンド範囲 ┃
┃ ピッチベンドを何カウント内で行うかを指定する。設定範囲は0-4294967295。 ┃
┃ 省略時は、o以降すべてをピッチベンド範囲とする。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ .BEND O4A,0,1200 ┃
┃ .BEND -8,80,1200 ┃
┃----------------------------------------------------------------------------┃
┃●音量の変更 ┃
┃.VOLUME v,o,s ┃
┃・v:0-65535 ┃
┃・o:0-4294967295 ┃
┃・s:0-4294967295 ┃
┃ ┃
┃ 原音量を100とした音量変更を行う。 ┃
┃ ┃
┃・v:変更先音量 ┃
┃ 原音量を100とし、変更目的の音量vを0-65535の範囲で指定する。 ┃
┃ 0が無音、65535が最大音量に相当する。 ┃
┃ ┃
┃・o:変更開始位置 ┃
┃ 音量変更をデータ先頭から何カウント目から行うかを設定するオフセット値。 ┃
┃ 設定範囲は0-4294967295。省略時は0が採択される。 ┃
┃ ┃
┃・s:変更サイズ ┃
┃ 音量変更を何カウント分行うかを指定する。設定範囲は0-4294967295。 ┃
┃ 省略時は、o以降すべてを変更範囲とする。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ .VOLUME 150,480,1800 ┃
┃----------------------------------------------------------------------------┃
┃●反転指定 ┃
┃.REVERSE o,s ┃
┃・o:0-4294967295 ┃
┃・s:0-4294967295 ┃
┃ ┃
┃ 逆転を行う。 ┃
┃ ┃
┃・o:逆転開始位置 ┃
┃ 逆転処理をデータ先頭から何カウント目から行うかを設定するオフセット値。 ┃
┃ 設定範囲は0-4294967295。省略時は0が採択される。 ┃
┃ ┃
┃・s:変更サイズ ┃
┃ 逆転処理を何カウント分行うかを指定する。設定範囲は0-4294967295。 ┃
┃ 省略時は、o以降すべてを逆転処理する。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ .REVERSE 0,1800 ┃
┃----------------------------------------------------------------------------┃
┃●フェードイン/フェードアウト ┃
┃.FADE v1,v2,o,s ┃
┃・v1:0-65535 ┃
┃・v2:0-65535 ┃
┃・o:0-4294967295 ┃
┃・s:0-4294967295 ┃
┃ ┃
┃ フェードイン/フェードアウトを行う。 ┃
┃ ┃
┃・v1:変更元音量 ┃
┃・v2:変更先音量 ┃
┃ 原音量を100とし変化元音量v1から目的音量v2までの音量変化を線形に行う。 ┃
┃ v1,v2共に設定範囲は0-65535。0が無音、65535が最大音量に相当する。 ┃
┃ ┃
┃・o:音量操作開始位置 ┃
┃ 音量操作をデータ先頭から何カウント目から行うかを設定するオフセット値。 ┃
┃ 設定範囲は0-4294967295。省略時は0が採択される。 ┃
┃ ┃
┃・s:音量操作範囲 ┃
┃ 音量操作を何カウント内で行うかを指定する。設定範囲は0-4294967295。 ┃
┃ 省略時は、o以降すべてをフェード操作範囲とする。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ .FADE 100,50,480,1800 ┃
┃ (オフセットカウント480から1800カウント内で音量100から50へ変化させる。) ┃
┃----------------------------------------------------------------------------┃
┃●ディストーション ┃
┃.DISTORTION v,c,o,s ┃
┃・v:0-65535 ┃
┃・c:0-65535 ┃
┃・o:0-4294967295 ┃
┃・s:0-4294967295 ┃
┃ ┃
┃ ディストーション(歪み)効果を与える。 ┃
┃ ┃
┃・v:増幅倍率 ┃
┃ 原音量を100とし音量をv倍に増幅する。設定範囲は0-65535。0が無音、65535が ┃
┃ 最大増幅に相当する。 ┃
┃ ┃
┃・c:切り捨て音量レベル ┃
┃ v倍して出来た波形に対しのピークレベルc内に音量を丸め込む。 ┃
┃ 設定範囲は0-65535。 ┃
┃ ┃
┃・o:ディストーション操作開始位置 ┃
┃ ディストーション操作をデータ先頭から何カウント目から行うかを設定する ┃
┃ オフセット値。設定範囲は0-4294967295。省略時は0が採択される。 ┃
┃ ┃
┃・s:ディストーション効果適用範囲 ┃
┃ ディストーション操作を何カウント行うかを指定する。設定範囲は0-4294967295。┃
┃ 省略時は、o以降すべてをディストーション操作範囲とする。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ .DISTORTION 500,100,480,1800 ┃
┃ (オフセットカウント480から1800カウント内でディストーション処理を行う。 ┃
┃ 音量を500%に増幅したものを音量100に丸め込む。) ┃
┃----------------------------------------------------------------------------┃
┃●スムージング ┃
┃.SMOOTH r,o,s ┃
┃・r:1-65535 ┃
┃・o:0-4294967295 ┃
┃・s:0-4294967295 ┃
┃ ┃
┃ スムージング(平滑化)を行う。処理後の音はやや曇った感じになる。 ┃
┃ ┃
┃・r:平滑化処理回数 ┃
┃ 平滑化を連続何回行うかを設定する。設定範囲は1-65535。 ┃
┃ ┃
┃・o:スムージング操作開始位置 ┃
┃ スムージング操作をデータ先頭から何カウント目から行うかを設定する ┃
┃ オフセット値。設定範囲は0-4294967295。省略時は0が採択される。 ┃
┃ ┃
┃・s:スムージング効果適用範囲 ┃
┃ スムージング操作を何カウント行うかを指定する。設定範囲は0-4294967295。 ┃
┃ 省略時は、o以降すべてをスムージング操作範囲とする。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ .SMOOTH 10,480,1800 ┃
┃ (オフセットカウント480から1800カウント内でスムージング処理を10回行う) ┃
┃----------------------------------------------------------------------------┃
┃●切り出し ┃
┃.TRUNCATE o,s ┃
┃・o:0-4294967295 ┃
┃・s:0-4294967295 ┃
┃ ┃
┃ 指定した領域を切り出す。 ┃
┃ ┃
┃・o:切り出し開始位置 ┃
┃ 切り出し操作をデータ先頭から何カウント目から行うかを設定するオフセット値。┃
┃ 設定範囲は0-4294967295。省略時は0が採択される。 ┃
┃ ┃
┃・s:切り出しサイズ ┃
┃ 切り出しサイズを何カウントにするかを指定する。設定範囲は0-4294967295。 ┃
┃ 省略時は、o以降すべてを切り出す指定になる。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ .TRUNCATE 1200 (オフセットカウント1200以降を切り出す) ┃
┃ .TRUNCATE ,1200 (先頭から1200カウント切り出す) ┃
┃----------------------------------------------------------------------------┃
┃●削除 ┃
┃.DELETE o,s ┃
┃・o:0-4294967295 ┃
┃・s:0-4294967295 ┃
┃ ┃
┃ 指定した領域を削除する。 ┃
┃ ┃
┃・o:削除開始位置 ┃
┃ 削除をデータ先頭から何カウント目から行うかを設定するオフセット値。 ┃
┃ 設定範囲は0-4294967295。省略時は0が採択される。 ┃
┃ ┃
┃・s:削除サイズ ┃
┃ 削除を何カウント行うかを指定する。設定範囲は0-4294967295。 ┃
┃ 省略時は、o以降すべてを削除する指定になる。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ .DELETE 1200 (オフセットカウント1200以降を削除する) ┃
┃ .DELETE ,1200 (先頭から1200カウント削除する) ┃
┃----------------------------------------------------------------------------┃
┃●合成 ┃
┃.MIX filename,o ┃
┃(.MIX filename,o,PPC) ┃
┃・filename:文字列 ┃
┃・o:-2147483648〜2147483647 ┃
┃ ┃
┃ filenameで表されるADPCM/PCMデータを合成する ┃
┃ ┃
┃・filename:合成データ名 ┃
┃ 合成するADPCM/PCMデータのファイル名を設定する。拡張子の省略は不可。 ┃
┃ また、filenameを合成するファイルの名前でなく、 ┃
┃ ┃
┃ .TIMBRE b,t ┃
┃ .TONE b,t ┃
┃ ┃
┃ といった書式で指定すれば、以前に、PCMデータの登録コマンドで登録した ┃
┃ 音色/トーンのコピーを合成することもできる。 ┃
┃ 「.TIMBRE b,t」書式では、bがバンク番号(0-255)、tが音色番号(1-128)を、 ┃
┃ 「.TONE b,n」書式では、bがバンク番号(0-255)、nがトーン番号(0-127)を表す。 ┃
┃ nはO-1C〜O9G または C-1〜G9といった音階MMLで指定することもできる。 ┃
┃ ┃
┃・o:合成開始位置 ┃
┃ 合成操作を被合成データの先頭から何カウント目から行うかを設定する ┃
┃ オフセット値。設定範囲は-2147483648〜2147483647。負値を設定した場合は ┃
┃ その絶対値カウント分、合成データの方を先行させて合成する。 ┃
┃ 省略時は0が採択される。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ .MIX CYMBAL.P16,-1200 ┃
┃ .MIX .TONE 4,O3D,4800 ┃
┃ ┃
┃ なお、PPC「.MIX」はその他のPPCと違い(...)で括れば.MIX自体もPPCを局所的に ┃
┃設定することができる。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ (.MIX .TIMBRE 10,10,1000,.VOLUME 150,.PITCH -8) ┃
┃ ┃
┃ (後続の「V120」「P-8」は合成するデータに対して有効となる。 ┃
┃ つまりこの例では、TIMBRE 10,10の音量を150%化、8半音分の音程を下げた ┃
┃ ものを被合成データ先頭から1000カウント後の位置から合成する設定となる。)┃
┃----------------------------------------------------------------------------┃
┃●接合 ┃
┃.CONNECT filename,o ┃
┃(.CONNECT filename,o,PPC) ┃
┃・filename:文字列 ┃
┃・o:0-4294967295 ┃
┃ ┃
┃ filenameで表されるADPCM/PCMデータを接合する。 ┃
┃ ┃
┃・filename:接合データ名称 ┃
┃ 接合するADPCM/PCMデータのファイル名を設定する。拡張子の省略は不可。 ┃
┃ また、filenameを接合するファイルの名前でなく、 ┃
┃ ┃
┃ .TIMBRE b,t ┃
┃ .TONE b,t ┃
┃ ┃
┃ といった書式で指定すれば、以前に、PCMデータの登録コマンドで登録した ┃
┃ 音色/トーンのコピーを接合することもできる。 ┃
┃ 「.TIMBRE b,t」書式では、bがバンク番号(0-255)、tが音色番号(1-128)を、 ┃
┃ 「.TONE b,n」書式では、bがバンク番号(0-255)、nがトーン番号(0-127)を表す。 ┃
┃ nはO-1C〜O9G または C-1〜G9といった音階MMLで指定することもできる。 ┃
┃ ┃
┃・o:接合開始位置 ┃
┃ 接合操作を被接合データの先頭から何カウント目から行うかを設定する ┃
┃ オフセット値。設定範囲は0-4294967295。 ┃
┃ 省略時は被接合データの再後尾位置が採択される。 ┃
┃ PPC「.LOOP」が未設定の場合は接続したデータを無限ループさせるような設定を ┃
┃ デフォルトで行う。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ .CONNECT CYMBAL.P16,-1200 ┃
┃ .CONNECT .TONE 4,O3D,4800 ┃
┃ ┃
┃ なお、PPC「.CONNECT」はその他のPPCと違い(...)で括れば.CONNECT自体もPPCを ┃
┃局所的に設定することができる。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ (.CONNECT .TIMBRE 10,10.VOLUME 150, .PITCH -8) ┃
┃ ┃
┃ (後続の「V120」「P-8」は合成するデータに対して有効となる。 ┃
┃ つまりこの例では、TIMBRE 10,10の音量を150%化、8半音分の音程を下げた ┃
┃ ものを被合成データの後に接合する設定となる。) ┃
┃----------------------------------------------------------------------------┃
┃●ループ領域の設定 ┃
┃.LOOP t,r,o,s ┃
┃・t:0 ┃
┃・r:0-4294967295 ┃
┃・o:0-4294967295 ┃
┃・s:0-4294967295 ┃
┃ ┃
┃ ループ領域を設定する。 ┃
┃ ┃
┃・t:ループタイプ ┃
┃ ループの仕方を設定する。現在のところ設定出来るのは0の順方向(FORWARD)のみ。┃
┃ ┃
┃・r:繰り返し回数 ┃
┃ ループ領域を何回繰り返して再生するかを設定する。0は半永久的に、発音が ┃
┃ 終了するまで繰り返し続ける設定となる。1〜4294967296はその数の回数分 ┃
┃ 繰り返しを行い、ループ領域外の再生に移る。 ┃
┃ ┃
┃・o:ループ開始位置 ┃
┃ ループ開始ポイントをデータ先頭から何カウント目に設定するかのオフセット値。┃
┃ 設定範囲は0-4294967295。省略時は0が採択される。 ┃
┃ ┃
┃・s:ループサイズ ┃
┃ ループ領域のサイズを何カウントにするかを指定する。設定範囲は0-4294967295。┃
┃ 省略時は、o以降すべてをループ領域と設定する指定になる。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ .LOOP 0,10,480,4000 (オフセットカウント480から4000カウント分を順方向に ┃
┃ 10回繰り返し再生する。) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ TIMBREとTONEの違い ┃
┃ ┃
┃ ZMUSIC Ver.2.0ではADPCMデータの利用方と言えば、0-127個の鍵盤に1音1音割り ┃
┃ ┃
┃当てて利用する、ドラムマシンのような使い方しかありませんでした。この方法は ┃
┃ ┃
┃ドラムパートやパーカッションパートには向いた使用方法でしたが、1つの楽器で ┃
┃ ┃
┃メロディを演奏する時には、使用する音高の全音を個別に鍵盤毎に登録する必要が ┃
┃ ┃
┃あり、非常に面倒な上、ZPDが肥大化するという問題がありました。 ┃
┃ ┃
┃ そこでVer.3.0からは1音を原音程とともに登録すれば、希望の音高をZMUSIC(MPCM)┃
┃ ┃
┃側でリアルタイムに自動的に演奏してくれるモードが新設されました。 ┃
┃ ┃
┃ Ver.2.0からのドラムマシン的なADPCM利用方法をTONEモード、そしてVer.3.0から ┃
┃ ┃
┃新設されたモードをTIMBREモード呼びます。 ┃
┃ ┃
┃ TONEモードでは1-256の256個の音色番号(Ver2.0では1〜4の4個まで)があり、 ┃
┃ ┃
┃その1つ1つの音色番号に対して0-127の128個のノート毎に任意のADPCM/PCMデータを ┃
┃ ┃
┃割り当てることが可能です。 ┃
┃ ┃
┃ TIMBREモードではバンクが0-255の256バンク、音色番号1-128の128個のうちの任意┃
┃ ┃
┃の音色番号に割り当てることが出来ます。 ┃
┃ ┃
┃ TIMBRE,TONE共に登録出来るPCMデータ数は最大256x128=32768となります。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●登録したPCM音色の削除
.ERASE_TIMBRE b,t
・b:0-255
・t:1-128
登録済みのPCM音色のうち不要なものを削除する。
パラメータb,tはPCM音色登録コマンドの同名パラメータと同じ書式。
bはバンク番号で0-255、tは音色番号で1-128の値を取る。
(MEASURE6参照)
例
.16BITPCM_TIMBRE 2,10,O2C,BASS {SLAP.P16,.VOLUME 120}
.ERASE_TIMBRE 2,10
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●登録したPCMトーンの削除
.ERASE_TONE t,k
・t:1-256
・k:0-127 あるいは O-1C〜O9G または C-1〜G9
登録済みのPCMトーンのうち不要なものを削除する。
パラメータt,kはPCMトーン登録コマンドの同名パラメータと同じ書式。
tはトーンセット番号で1-256、kはノート番号で0-127、あるいは音階MMLを用いて
O-1C〜O9G または C-1〜G9のような指定も可能。。
(MEASURE6参照)
例
.ADPCM_TONE 10,o2d,SNARE {.TIMBRE 0,10,.BEND 15600,22000}
.ERASE_TONE 10,o2d
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●ADPCMデータ定義ファイルの読み込み
.ADPCM_LIST filename
.CNF filename
・filename:文字列
filenameで指定したADPCMデータの定義ファイル(CNFファイル)を読み込み
実行する。filenameで与えるファイルネームは拡張子が省略可能。省略時は
.CNFが自動添付され処理される。
(MEASURE3 zm_exec_subfile(), MEASURE6参照)
例
.ADPCM_LIST orchestra.cnf
.ADPCM_LIST standard (standard.CNFが読み込まれる)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ CNFファイル、ZPDファイルとは ┃
┃ ┃
┃ ADPCMデータ登録/削除を行う共通コマンドのみを記述したZMSを特にCNFファイル ┃
┃ ┃
┃とよんでいます。CNFファイルはZMUSICシステムに含まれる標準PCMファイルコンバー┃
┃ ┃
┃タZPCNV3.RでコンバートするとZPDファイルに変換することが出来ます。 ┃
┃ ┃
┃ CNFファイルに用いることの出来る共通コマンドは以下の通りです。 ┃
┃ ┃
┃.16BITPCM_TIMBRE,.16BITPCM_TONE,.8BITPCM_TIMBRE,.8BITPCM_TONE, ┃
┃.ADPCM_TIMBRE,.ADPCM_TONE,.ADPCM_BANK,.ERASE_TIMBRE,.ERASE_TONE,.ERASE ┃
┃ ┃
┃ CNFファイル中に指定されたADPCMデータに対する加工処理等をあらかじめ行い ┃
┃ ┃
┃結果を1つのファイルにまとめたものをZPDファイルと呼びます。このためZPDファイ ┃
┃ ┃
┃ルはCNFファイルに比べて実際のADPCMデータ登録を高速にまとめて行うことが出来 ┃
┃ ┃
┃ます。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●ZPDの読み込み
.ADPCM_BLOCK_DATA filename
.ZPD filename
・filename:文字列
filenameで指定されたZPDファイルの読み込みを行う。
filenameの拡張子は省略が可能で、省略時は'.ZPD'が自動添付される。
(MEASURE3 zm_register_zpd(),MEASURE6参照)
例
.ADPCM_BLOCK_DATA SFX.ZPD
.ZPD JAZZ_DRUM (JAZZ_DRUM.ZPDが読み込まれる)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■Ver.2.0式ADPCMデータ登録
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●ADPCMデータ登録先バンクの設定
.ADPCM_BANK n
ADPCM音の登録先のバンクを指定する。
n=バンク番号。1≦n≦4。
初期化共通コマンド'(I)'命令でデフォルト値1が設定される
(MEASURE6参照)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●Ver.2.0式ADPCMデータ登録
n filename,PPC
n=filename,PPC
.Ook filename,PPC
.Ook=filename,PPC
・n:0-32767
・Ook:O-1C〜O9G
・filename:文字列
・PPC:後述
ADPCMデータの加工/登録を行う。
filenameで指定されたADPCMファイルをトーン番号n、または.Ookで表す
ノートに登録する。
PPC(PCM PROCESSING COMMAND)が指定してあればこれを実行し加工を施した
ADPCMデータをnへ登録する。PPCは省略、あるいは複数設定可能。
なおnの設定範囲は0-32767となる。n(0-32767)による指定は.ADPCM_BANKの
設定を無視して絶対的に行われる。
.Ookの指定はオクターブ値をo、音階kを文字列であらわす、MML形式で
指定する。なお、oの設定範囲は-1〜9、kはC,C#,D,D#,E,F,F#,G,G#,A,A#,B
のうちいずれか。
PPCはADPCMデータを加工するコマンドで、以下のようなものがある。
ZMUSIC Ver.2.0以前では各PPCの設定順序が無視されたが、Ver.3.0以降では
指定された順序に従い加工を実行していく。また、同種PPCの複数設定も可能。
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ V2形式のPPC ┃
┃ ┃
┃・Pp ┃
┃ ±1オクターブの範囲で音程変更を行う。変更幅は半音単位でpにて行う。 ┃
┃ pの設定範囲は-12〜+12。 ┃
┃ ┃
┃・Vv ┃
┃ 原音量を100とした音量の増減をvで指定する。vの設定範囲は0-65535。 ┃
┃ 数値が大きければ大きいほど音量が大きくなり、100より小さければ ┃
┃ 元の音量よりも小さくなる。 ┃
┃ ┃
┃・Mm,d ┃
┃ トーン番号mのトーンと今回トーン番号nで登録するトーンとを合成する。 ┃
┃ その際、トーンnよりもPCMデータdカウント分送らせて合成させることが ┃
┃ 出来る。mの設定範囲は0-32767。dはトーンの先頭からのオフセット値で ┃
┃ 設定範囲は0-4294967295。 ┃
┃ ┃
┃・Cc,s ┃
┃ 指定位置cから指定サイズsを切り出す。 ┃
┃ cはトーンの先頭アドレスからのオフセット値で設定範囲は0-4294967295。 ┃
┃ sは切り出すサイズで設定範囲は0-4294967295。 ┃
┃ ┃
┃・R ┃
┃ 再生方向を逆転させる処理を行う。 ┃
┃ ┃
┃・Ff,l ┃
┃ フェードインまたはフェードアウトを行う。 ┃
┃ フェードインはオフセットを負値で与えることによって選択される。 ┃
┃ 初期音量lから始まり、先頭からオフセット-fカウントの時点で原音量に ┃
┃ なるような音量変化になる。 ┃
┃ フェードアウトはオフセットを正値で与えることで選択される。 ┃
┃ 初め、原音量から演奏が始まり、最後尾からオフセットfカウントの ┃
┃ 時点から徐々に音量が下がり始め最終的には音量lに落ち着く。 ┃
┃ fの設定範囲は-2147483648〜2147483647。lの設定範囲は0-127。 ┃
┃ lは0が無音、127が原音量より微妙に小さい音量に相当する。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
filenameを、読み込むファイルの名前でなく、数値(0-32767)や音階MML(O-1C〜O9G
またはC-1〜G9)を設定した場合は、ディスクからADPCMデータを読み出すのではなく
以前に同種のADPCM加工/登録コマンドを用いて登録したトーンのコピーを用いて
加工登録することになる。
登録先ノートやミキシングノートをOok書式で指定する場合、.ADPCM_BANKの設定による
バンク番号が考慮される。
(MEASURE6参照)
例
12 SNARE.PCM,P3,V150,M13,120,C0,1200,R,F-600,40
(SNARE.PCMの音程を3半音上に、音量を150%に増加させ、
ディレイカウント120でトーン13を合成、
オフセット0カウントから1200カウント分を切り出し、
これを反転再生に設定、
オフセットカウント600まで音量40%からフェードインさせる。
以上の加工処理を行ってトーン番号12へ登録する)
SNARE.PCMの部分をたとえば14に変更したとすると
12 14,P3,V150,M13,120,C0,1200,R,F-600,40
加工登録対象を外部デバイスから読み込まず、登録済みの
トーン番号14のデータを加工登録対象とする設定になる。
.ADPCM_BANK 3
.O4C CYMBAL.PCM,V130,MO3D
音量を150%上げたCYMBAL.PCMとバンク番号3のオクターブ3のDのトーンとを合成し
これをバンク番号3のオクターブ4のCのノートに登録する。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●登録したADPCMデータの削除
.ERASE n
.ERASE .Ook (.Oの'.'はあってもなくてもいい)
・n:0-32767
・Ook:O-1C〜O9G
登録済みのADPCMトーンのうち不要なものを削除する。
パラメータnやOokはADPCM登録コマンドの同名パラメータと同じ書式。
Ook書式は.ADPCM_BANKの設定によるバンク番号が考慮される。
(MEASURE6参照)
例
.ADPCM_BANK 3
.ERASE O4C (バンク番号3のオクターブ4のCのトーンを削除する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■外部ファイル読み込み
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●外部ファイル読み込み
.CALL filename
・filename:文字列
filenameで指定したファイルを演奏時に読み込み実行する。filenameで指定出来る
ファイルはZPD,CNF,ZMD,ZMS(ZMC),MID,MDDで、拡張子の省略は出来ない。
後述の.INCLUDEとの違いはファイルの実行のされ方。.CALLでは演奏時に
読み込んだファイル種別に応じて実行する。たとえばZPDファイルならばZPDを組み込み
MIDならばMIDIポートへ出力する。
一方、.INCLUDEは読み込んだファイルをZMSとしてその場でコンパイルしZMD化する。
例
.CALL CM64TIMBRE.MID
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●ZMSファイル読み込み
.INCLUDE filename
・filename:文字列
filenameで指定したファイルを読み込み、ZMSとしてコンパイルする。
filenameで指定出来るファイルはZMS(ZMC),CNFで、拡張子省略時は'ZMC'が自動添付
される。
前述の.CALLとの違いはファイルの実行のされ方。.CALLでは演奏時に
読み込んだファイル種別に応じて実行する。たとえばZPDファイルならばZPDを組み込み
MIDならばMIDIポートへ出力する。
一方、.INCLUDEは読み込んだファイルをZMSとしてその場でコンパイルしてZMD化する。
例
.INCLUDE FMTONE.ZMS
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■入出力MIDIポート選択
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●カレントMIDI入力ポート選択
.CURRENT_MIDI_IN if
・if:1-4
MIDI入力を行う際のデフォルトインターフェースを選択する。MIDI入出力関連命令の
ほぼすべてに送受対象インターフェースを指定出来るようになっているが、この指定
を省略した場合やVer.2.0 ZMSコマンドなどの一部の送受対象インターフェースを指定
出来ない命令を使用した時に、本命令によって設定されたインターフェースが
デフォルトとして選択される。ZMUSIC Ver.3.0では.CURRENT_MIDI_INで設定した
インターフェースをカレントMIDI-INインターフェースと呼ぶ。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
例
.CURRENT_MIDI_IN 3
(MEASURE3 zm_current_midi_in()参照)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●カレントMIDI出力ポート選択
.CURRENT_MIDI_OUT if
・if:1-4
MIDI出力入力を行う際のデフォルトインターフェースを選択する。MIDI入出力関連命令の
ほぼすべてに送受対象インターフェースを指定出来るようになっているが、この指定
を省略した場合やVer.2.0 ZMSコマンドなどの一部の送受対象インターフェースを指定
出来ない命令を使用した時に、本命令によって設定されたインターフェースが
デフォルトとして選択される。ZMUSIC Ver.3.0では.CURRENT_MIDI_OUTで設定した
インターフェースをカレントMIDI-OUTインターフェースと呼ぶ。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
例
.CURRENT_MIDI_OUT 3
(MEASURE3 zm_current_midi_out()参照)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■MIDIデータ出力
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●MIDIデータ出力
(Xn1,n2,…,ni) *
・n1〜ni:0-255
.current_midi_outで選択したMIDIポートへデータn1〜niを送信する。
データn1〜niの有効範囲は0〜255。256以上のデータも与えることができるが
その場合はその値を7ビットごとに分けて下位から送信する。たとえば8192は$2000だが
7ビットごとに分割するので$40,$00となる。これを下位から送信するので実際には
$00,$40の順番でMIDI送信される。同様に32700は$3C,$7F,$01のように送信される。
例
(X $b0,$79,$00)
(MEASURE3 zm_midi_transmission()参照)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●MIDIデータ出力
.MIDI_DATA if,comment {n1,n2,…ni} *
・if:1-4
・comment:文字列
MIDIポートifへデータn1〜niを送信する。データn1〜niの有効範囲は0〜255。
256以上のデータも与えることができるがその場合はその値を7ビットごとに分けて
下位から送信する。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
commentは注釈で、'{'以外の255文字を用いて与えることが出来る。
commentは省略可能。
例
.MIDI_DATA 2,PANPOT_CH1 {$b0,$0a,64}
(MEASURE3 zm_midi_transmission()参照)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●エクスクルーシブ・メッセージ送信
.EXCLUSIVE if,comment {n1,n2,…,ni} *
・if:1-4
・comment:文字列
MIDIポートifへデータn1〜niをエクスクルーシブメッセージとしてMIDI送信する。
データn1〜niの有効範囲は0〜127。128以上のデータも与えることができるが
その場合はその値を7ビットごとに分けて下位から送信する。
例
255→$01,$7F
8192→$00,$40
32700→$3C,$7F,$01
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
commentは注釈で、'{'以外の255文字を用いて与えることが出来る。
commentは省略可能。
例
.EXCLUSIVE 2,GM_ON {$7e,$7f,$09,$01}
(MEASURE3 zm_exclusive()参照)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●ローランド・エクスクルーシブ・メッセージ送信
.ROLAND_EXCLUSIVE dev,mdl,if,comment {n1,n2,…,ni} *
・dev:0-127
・mdl:0-127
・if:1-4
・comment:文字列
ローランド製のMIDI機器へエクスクルーシブメッセージを送信する。
エクスクルーシブ・ヘッダやチェックサム・バイトは送信メッセージ内容から
自動算出し自動送信する。
なお、送信の際、使用するローランド・エクスクルーシブ・コマンドはDT1($12)。
・dev:デバイスID
同一機器間で区別をするためのID。通常は$10とすることが多い。
・mdl:モデルID
ローランドが同社製品に対して固有に与えた識別ID。たとえばGS音源は$42が
与えられている。
・if:
送信を行うifを設定する。設定範囲は1-4。MIDIインターフェースの個数が
少ない場合は4より小さくなる。ifを省略した場合は.current_midi_outで
選択したカレントMIDIポートへ出力される。
・comment:コメント
'{'以外の255文字を用いて送信内容に関する注釈を与えることが出来る。
省略可能。
・n1〜ni:エクスクルーシブデータ
送信するエクスクルーシブデータを与える。有効範囲は0≦ni≦127。128以上は
その値を7ビットごとに分けて下位から送信する。
例
.ROLAND_EXCLUSIVE $10,$42,0,MASTERVOLUME=100 {$40,$00,$04$,$64}
(MEASURE3 zm_exclusive()参照)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●ヤマハ・エクスクルーシブ・メッセージ送信
.YAMAHA_EXCLUSIVE dev,mdl,if,comment {n1,n2,…,ni} *
・dev:0-127
・mdl:0-127
・if:1-4
・comment:文字列
ヤマハ製のMIDI機器へエクスクルーシブメッセージを送信する。
エクスクルーシブ・ヘッダや転送バイト数、チェックサム・バイトは送信メッセージ
内容から自動算出し自動送信する。
なお、送信の際、使用するヤマハ・エクスクルーシブ・タイプはバルク・ダンプ。
・dev:デバイスID
同一機器間で区別をするためのID。通常は$00とすることが多い。
・mdl:モデルID
ヤマハが同社製品に対して固有に与えた識別ID。たとえばXG音源は$4cが
与えられている。
・if:
送信を行うifを設定する。設定範囲は1-4。MIDIインターフェースの個数が
少ない場合は4より小さくなる。ifを省略した場合は.current_midi_outで
選択したカレントMIDIポートへ出力される。
・comment:コメント
'{'以外の255文字を用いて送信内容に関する注釈を与えることが出来る。
省略可能。
・n1〜ni:エクスクルーシブデータ
送信するエクスクルーシブデータを与える。有効範囲は0≦ni≦127。128以上は
その値を7ビットごとに分けて下位から送信する。
例
.YAMAHA_EXCLUSIVE $00,$4c,1,XG SYSTEM ON { $00,$00,$7E,$00 }
(MEASURE3 zm_exclusive()参照)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●スタンダードMIDIファイルの送信
.MIDI_DUMP if,filename
.SMF if,filename
・if:1-4
・filename:文字列
ファイルネームfilenameのFORMAT0のスタンダードMIDIファイルをMIDIポートifに
送信する。FORMAT1,FORMAT2のスタンダードMIDIファイルを送信することはできない。
また、ZMUSIC Ver.2.0で扱われていたMIDIダンプデータ(MDD)も送信することも
できる。
filenameの拡張子省略時には(互換性保持のため)'.MDD'が自動添付される。
スタンダードMIDIファイルの場合は'.MID'や'.SMF'といった拡張子を明記する必要が
ある。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
例
.MIDI_DUMP CM64TIMBRE.MID
(MEASURE3 zm_transmit_midi_dump()参照)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■SC55/mkII(SC155/CM300/CM500)専用命令
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●SC55初期化
.SC55_INIT id,if
.SC55_RESET id,if
.GS_INIT id,if
.GS_RESET id,if
・id:$00〜$7f
・if:$01〜$04
MIDIポートifに接続されたSC55の初期化を行なう。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
idはSC55のデバイスIDで省略可能、省略時は$10。
例
.SC55_INIT $10
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●SC55の各パートのボイスリザーブ
.SC55_V_RESERVE id,if {n1,n2,…,n16} *
.SC55_PARTIAL_RESERVE id,if {n1,n2,…,n16} *
.GS_V_RESERVE id,if {n1,n2,…,n16} *
.GS_PARTIAL_RESERVE id,if {n1,n2,…,n16} *
・id:$00〜$7f
・n1〜n16:0〜127
・if:$01〜$04
MIDIポートifに接続されたSC55の各パートのボイスリザーブを行う。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
idはSC55のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n16)は必ず16個設定しなくてはならない。
またパラメータ各値の総和は音源の同時発音数以内に収める必要がある。
n1〜n16はそれぞれパート1〜16のボイスリザーブ値に対応し、10番目の
パラメータはリズムパートに対応する。
(SC55マニュアルp79, またはMEASURE3 zm_gs_partial_reserve()参照))
例
.SC55_PARTIAL_RESERVE $10 {
2,4,2,2,0,0,0,0,0,5,0,0,0,0,0,0
}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●SC55のリバーブパラメータの設定
.SC55_REVERB id,if {n1,n2,…,n7} *
.GS_REVERB id,if {n1,n2,…,n7} *
・id:$00〜$7f
・n1〜n7:0-127
・if:$01〜$04
MIDIポートifに接続されたSC55のリバーブパラメータの設定を行う。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
idはSC55のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n7)は7個まで任意の個数設定可能。
n1:REVERB MACRO 00:Room1,01:Room2,02:Room3,03:Hall1,04:Hall2
05:Plate,06:Delay,07:Panning Delay(FB)
n2:REVERB CHARACTER ($00〜$07)
n3:REVERB PRE-LPF ($00〜$07)
n4:REVERB LEVEL ($00〜$7F)
n5:REVERB TIME ($00〜$7F)
n6:REVERB DELAY FEEDBACK ($00〜$7F)
n7:REVERB SEND LEVEL TO CHORUS ($00〜$7F)
(SC55マニュアルp79参照)
例
.SC55_REVERB $10 ={4,4,0,88,70,0,0}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●SC55のコーラスパラメータの設定
.SC55_CHORUS id,if {n1,n2,…,n8} *
.GS_CHORUS id,if {n1,n2,…,n8} *
・id:$00〜$7f
・n1〜n8:0-127
・if:$01〜$04
MIDIポートifに接続されたSC55のコーラスパラメータの設定を行う。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
idはSC55のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n8)は8個まで任意の個数設定可能。
n1:CHORUS MACRO 00:Chorus1,01:Chorus2,02:Chorus3,03:Chorus4
04:Feedback Chorus,05:Flanger,06:Short Delay
07:Short Delay(FB)
n2:CHORUS PRE-LPF ($00〜$07)
n3:CHORUS LEVEL ($00〜$7F)
n4:CHORUS FEEDBACK ($00〜$7F)
n5:CHORUS DELAY ($00〜$7F)
n6:CHORUS RATE ($00〜$7F)
n7:CHORUS DEPTH ($00〜$7F)
n8:CHORUS SEND LEVEL TO REVERB ($00〜$7F)
(SC55マニュアルp79参照)
例
.SC55_CHORUS $10 ={2,0,100,8,80,3,19,0}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●SC55のパートのパラメータを設定
.SC55_PART_SETUP pt,id,if {n1,n2,…,n119} *
.GS_PART_SETUP pt,id,if {n1,n2,…,n119} *
.SC55_PART_PARAMETER pt,id,if {n1,n2,…,n119} *
.GS_PART_PARAMETER pt,id,if {n1,n2,…,n119} *
・pt:1〜16
・id:0-127
・if:$01〜$04
・n1〜n119:0-127
MIDIポートifに接続されたSC55のパートのパラメータを設定する。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
ptはパートナンバーを表し、1≦pt≦16で省略は不可。またパートナンバー=10は
リズムパートに対応する。
idはSC55のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n119)は119個まで任意の個数設定可能。
n1:Rx CHANNEL (1〜16,17=OFF)
n2:Rx PITCH BEND (0〜1:OFF/ON)
n3:Rx CH PRESSURE(CAf) (0〜1:OFF/ON)
n4:Rx PROGRAM CHANGE (0〜1:OFF/ON)
n5:Rx CONTROL CHANGE (0〜1:OFF/ON)
n6:Rx POLY PRESSURE(PAf) (0〜1:OFF/ON)
n7:Rx NOTE MESSAGE (0〜1:OFF/ON)
n8:Rx RPN (0〜1:OFF/ON)
n9:Rx NRPN (0〜1:OFF/ON)
n10:Rx MODURATION (0〜1:OFF/ON)
n11:Rx VOLUME (0〜1:OFF/ON)
n12:Rx PANPOT (0〜1:OFF/ON)
n13:Rx EXPRESSION (0〜1:OFF/ON)
n14:Rx HOLD1 (0〜1:OFF/ON)
n15:Rx PORTAMENTO (0〜1:OFF/ON)
n16:Rx SOSTENUTO (0〜1:OFF/ON)
n17:Rx SOFT (0〜1:OFF/ON)
n18:MONO/POLY MODE (0〜1:MONO/POLY)
n19:ASSIGN MODE (0:SINGLE,1:LIMITED-MULTI,2:FULL-MULTI)
n20:USE FOR RHYTHM PART (0:OFF,1:MAP1,2:MAP2)
n21:PITCH KEY SHIFT ($28〜$58:−24〜+24[semitone])
n22:PITCH OFFSET FINE(upper) ($08〜$F8:−12.0〜+12.0[Hz])
n23:PITCH OFFSET FINE(lower) 〃
n24:PART LEVEL (0〜127)
n25:VELOCITY SENSE DEPTH (0〜127)
n26:VELOCITY SENSE OFFSET (0〜127)
n27:PART PANPOT (0:RANDOM,01(LEFT)〜64〜127(RIGHT))
n28:KEY RANGE LOW (0〜127:C-1〜G9)
n29:KEY RANGE HIGH (0〜127:C-1〜G9)
n30:CC1 CONTROL NUMBER (0〜127)
n31:CC2 CONTROL NUMBER (0〜127)
n32:CHORUS SEND DEPTH (0〜127)
n33:REVERB SEND DEPTH (0〜127)
n34:Vibrato rate ($0E〜$72:−50〜+50)
n35:Vibrato depth ($0E〜$72:−50〜+50)
n36:TVF cutoff freq. ($0E〜$50:−50〜+16)
n37:TVF resonance ($0E〜$72:−50〜+50)
n38:TVF&TVA Env.attack ($0E〜$72:−50〜+50)
n39:TVF&TVA Env.decay ($0E〜$72:−50〜+50)
n40:TVF&TVA Env.release ($0E〜$72:−50〜+50)
n41:Vibrato delay ($0E〜$72:−50〜+50)
n42:SCALE TUNING C ($00〜$7F:−64〜+63[cent])
n43:SCALE TUNING C# ($00〜$7F:−64〜+63[cent])
n44:SCALE TUNING D ($00〜$7F:−64〜+63[cent])
n45:SCALE TUNING D# ($00〜$7F:−64〜+63[cent])
n46:SCALE TUNING E ($00〜$7F:−64〜+63[cent])
n47:SCALE TUNING F ($00〜$7F:−64〜+63[cent])
n48:SCALE TUNING F# ($00〜$7F:−64〜+63[cent])
n49:SCALE TUNING G ($00〜$7F:−64〜+63[cent])
n50:SCALE TUNING G# ($00〜$7F:−64〜+63[cent])
n51:SCALE TUNING A ($00〜$7F:−64〜+63[cent])
n52:SCALE TUNING A# ($00〜$7F:−64〜+63[cent])
n53:SCALE TUNING B ($00〜$7F:−64〜+63[cent])
n54:MOD PITCH CONTROL ($28〜$58:−24〜+24[semitone])
n55:MOD TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n56:MOD AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n57:MOD LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n58:MOD LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n59:MOD LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n60:MOD LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n61:MOD LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n62:MOD LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n63:MOD LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n64:MOD LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
n65:BEND PITCH CONTROL ($28〜$58:−24〜+24[semitone])
n66:BEND TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n67:BEND AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n68:BEND LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n69:BEND LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n70:BEND LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n71:BEND LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n72:BEND LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n73:BEND LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n74:BEND LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n75:BEND LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
n76:CAf PITCH CONTROL ($28〜$58:−24〜+24[semitone])
n77:CAf TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n78:CAf AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n79:CAf LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n80:CAf LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n81:CAf LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n82:CAf LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n83:CAf LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n84:CAf LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n85:CAf LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n86:CAf LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
n87:PAf PITCH CONTROL ($28〜$58:−24〜+24[semitone])
n88:PAf TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n89:PAf AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n90:PAf LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n91:PAf LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n92:PAf LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n93:PAf LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n94:PAf LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n95:PAf LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n96:PAf LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n97:PAf LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
n98:CC1 PITCH CONTROL ($28〜$58:−24〜+24[semitone])
n99:CC1 TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n100:CC1 AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n101:CC1 LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n102:CC1 LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n103:CC1 LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n104:CC1 LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n105:CC1 LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n106:CC1 LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n107:CC1 LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n108:CC1 LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
n109:CC2 PITCH CONTROL ($28〜$58:−24〜+24[semitone])
n110:CC2 TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n111:CC2 AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n112:CC2 LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n113:CC2 LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n114:CC2 LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n115:CC2 LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n116:CC2 LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n117:CC2 LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n118:CC2 LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n119:CC2 LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
(SC55マニュアルp75,p79〜80参照)
例
.SC55_PART_SETUP 16 {17,1,1,1}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●SC55のドラムセットの設定
.SC55_DRUM_SETUP map,key,id,if {n1,n2,…,n8} *
.GS_DRUM_SETUP map,key,id,if {n1,n2,…,n8} *
・map:0,1
・key:0-127
・id:0-127
・if:$01〜$04
・n1〜n8:0-127
MIDIポートifに接続されたSC55のドラムセットの設定を変える。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
mapはマップナンバーを表し設定範囲は0,1。
keyはノートナンバーを表し設定範囲は0≦key≦127。
idはSC55のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n8)は8個まで任意の個数設定可能。
n1:PLAY KEY NUMBER (0〜127)
n2:LEVEL (0〜127)
n3:ASSIGN GROUP NUMBER (0:NON,1〜127)
n4:PANPOT (0:RANDOM,01(LEFT)〜64〜127(RIGHT))
n5:REVERB DEPTH (0〜127:0.0〜1.0)
n6:CHORUS DEPTH (0〜127:0.0〜1.0)
n7:Rx NOTE OFF (0〜1:OFF/ON)
n8:Rx NOTE ON (0〜1:OFF/ON)
(SC55マニュアルp82参照)
例
.GS_DRUM_SETUP 0,24,$10 {24,127,0,0,10,15,0,1}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●SC55のドラムセット名の設定
.SC55_DRUM_NAME map,id,if str
.GS_DRUM_NAME map,id,if str
・map:0,1
・id:0-127
・if:$01〜$04
・str:文字列
MIDIポートifに接続されたSC55のドラムセット名の設定を行う。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
mapはマップナンバーを表し設定範囲は0,1。
idはSC55のデバイスIDで省略可能、省略時は$10。
strはドラセット名を表す文字列で、"〜"で括り12文字以内で指定する。
(SC55マニュアルp82参照)
例
.GS_DRUM_NAME 0,$10 "USER SET"
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●SC55コンソールへの文字列表示
.SC55_PRINT id,if str
.GS_PRINT id,if str
・id:0-127
・if:$01〜$04
・str:文字列
MIDIポートifに接続されたSC55のコンソールに文字列を表示する。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
文字列strは"〜"で括り32文字以内に収めなければならない。
idはSC55のデバイスIDで省略可能、省略時は$10。
例
.GS_PRINT $10 "HELLO"
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●SC55グラフィックディスプレイへのドットパターン表示
.SC55_DISPLAY id,if {n1,n2,…,n16} *
.GS_DISPLAY id,if {n1,n2,…,n16} *
・id:0-127
・if:$01〜$04
・n1〜n16:%0000000000000000〜%1111111111111111
MIDIポートifに接続されたSC55のグラフィックディスプレイにドットパターン
(16x16)を表示する。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
idはSC55のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n16)は必ず16個。
n1:1段目のドットパターン
n2:2段目のドットパターン
:
:
n16:16段目のドットパターン
例
.GS_DISPLAY $10 { %0001000000010000
%0000100000100000
%0111111111111100
%0000000100000000
%0011111111111000
%0000000100000000
%0111111111111100
%0001000100010000
%0000100100100000
%1111111111111110
%0000000000000000
%0011111111111000
%0010000000001000
%0010000000001000
%0011111111111000
%0010000000001000}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■GM音源専用命令
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●GM音源初期化
.GM_SYSTEM_ON if
・if:$01〜$04
MIDIポートifに接続されたGM音源を初期化状態にリセットする。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
例
.GM_SYSTEM_ON
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■SC88/SC88VL専用命令
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●SC88モード設定
.SC88_MODE md,id,if
.SC88_MODE_SET md,id,if
・md:1,2
・id:0-127
・if:$01〜$04
MIDIポートifに接続されたSC88のモードの設定を行う。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
idはSC88のデバイスIDで省略可能、省略時は$10。
mdはモード値を表し、md=1でSingleモード、md=2でDoubleモードが設定される。
(SC88VLマニュアルp77参照)
例
.SC88_MODE 1,$10
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●SC88リバーブ・パラメータの設定
.SC88_REVERB id,if {n1,n2,...,n8} *
・id:0-127
・if:$01〜$04
・n1〜n8:下記参照
MIDIポートifに接続されたSC88のリバーブ・パラメータの設定を行う。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n8)は8個以内で任意の個数設定可能。
n1:REVERB MACRO 00:Room1,01:Room2,02:Room3,03:Hall1,04:Hall2
05:Plate,06:Delay,07:Panning Delay(FB)
n2:REVERB CHARACTER ($00〜$07)
n3:REVERB PRE-LPF ($00〜$07)
n4:REVERB LEVEL ($00〜$7F)
n5:REVERB TIME ($00〜$7F)
n6:REVERB DELAY FEEDBACK ($00〜$7F)
n7:REVERB SEND LEVEL TO CHORUS ($00〜$7F/SC88ではダミー)
n8:REVERB PRE-DELAY TIME ($00〜$7F)
(SC88VLマニュアルp77参照)
例
.SC88_REVERB $10 {0,0,127,10,10,0,127}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●SC88コーラス・パラメータの設定
.SC88_CHORUS id,if {n1,n2,...,n9}
・id:0-127
・if:$01〜$04
・n1〜n9:下記参照
MIDIポートifに接続されたSC88のコーラス・パラメータの設定を行う。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n9)は9個以内で任意の個数設定可能。
n1:CHORUS MACRO 00:Chorus1,01:Chorus2,02:Chorus3,03:Chorus4
04:Feedback Chorus,05:Flanger,06:Short Delay
07:Short Delay(FB)
n2:CHORUS PRE-LPF ($00〜$07)
n3:CHORUS LEVEL ($00〜$7F)
n4:CHORUS FEEDBACK ($00〜$7F)
n5:CHORUS DELAY ($00〜$7F)
n6:CHORUS RATE ($00〜$7F)
n7:CHORUS DEPTH ($00〜$7F)
n8:CHORUS SEND LEVEL TO REVERB ($00〜$7F)
n9:CHORUS SEND LEVEL TO DELAY ($00〜$7F)
(SC88VLマニュアルp78参照)
例
.SC88_CHORUS $10 {0,3,60,10,10,10,24,30,30}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●SC88ディレイ・パラメータの設定
.SC88_DELAY id,if {n1,n2,...,n11} *
・id:0-127
・if:$01〜$04
・n1〜n11:下記参照
MIDIポートifに接続されたSC88のディレイ・パラメータの設定を行う。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n11)は11個以内で任意の個数設定可能。
n1:DELAY MACRO 00:Delay1,01:Delay2,02:Delay3
03:Delay4,04:Pan Delay1
05:Pan Delay2,06:Pan Delay3,07:Pan Delay4
08:Delay to Reverb,09:Pan Repeat
n2:DELAY PRE-LPF ($00〜$07)
n3:DELAY TIME CENTER ($01〜$73:0.1ms〜sec)
n4:DELAY TIME RATIO LEFT ($01〜$78:4〜500%)
n5:DELAY TIME RATIO RIGHT ($01〜$78:4〜500%)
n6:DELAY LEVEL CENTER ($00〜$7F)
n7:DELAY LEVEL LEFT ($00〜$7F)
n8:DELAY LEVEL RIGHT ($00〜$7F)
n9:DELAY LEVEL ($00〜$7F)
n10:DELAY FEEDBACK ($00〜$7F:-64〜+63)
n11:DELAY SENDLEVEL TO REVERB ($00〜$7F)
(SC88VLマニュアルp78参照)
例
.SC88_DELAY $10 {0,3,10,22,22,64,64,64,64,64,30}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●SC88イコライザ・パラメータの設定
.SC88_EQUALIZER id,if {n1,n2,n3,n4} *
・id:0-127
・if:$01〜$04
・n1〜n4:下記参照
MIDIポートifに接続されたSC88のイコライザ・パラメータの設定を行う。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n4)は4個以内で任意の個数設定可能。
n1:EQ LOW FREQ (0,1:200Hz,400Hz)
n2:EQ LOW GAIN ($34〜$4c:-12〜+12dB)
n3:EQ HIGH FREQ (0,1:3kHz,6kHz)
n4:EQ HIGH GAIN ($34〜$4c:-12〜+12dB)
(SC88VLマニュアルp78参照)
例
.SC88_EQUALIZER $10 {0,$40,1,$40}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●SC88パート・パラメータの設定
.SC88_PART_SETUP pt,id,if {n1,n2,...,n127} *
.SC88_PART_PARAMETER pt,id,if {n1,n2,...,n127} *
・pt:1〜16
・id:0-127
・if:$01〜$04
・n1〜n127:下記参照
MIDIポートifに接続されたSC88パート・パラメータの設定する。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
ptはパートナンバーを表し、1≦pt≦16で省略は不可。またパートナンバー=10は
リズムパートに対応する。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n127)は127個まで任意の個数設定可能。
n1:Rx CHANNEL (1〜16,17=OFF)
n2:Rx PITCH BEND (0〜1:OFF/ON)
n3:Rx CH PRESSURE(CAf) (0〜1:OFF/ON)
n4:Rx PROGRAM CHANGE (0〜1:OFF/ON)
n5:Rx CONTROL CHANGE (0〜1:OFF/ON)
n6:Rx POLY PRESSURE(PAf) (0〜1:OFF/ON)
n7:Rx NOTE MESSAGE (0〜1:OFF/ON)
n8:Rx RPN (0〜1:OFF/ON)
n9:Rx NRPN (0〜1:OFF/ON)
n10:Rx MODURATION (0〜1:OFF/ON)
n11:Rx VOLUME (0〜1:OFF/ON)
n12:Rx PANPOT (0〜1:OFF/ON)
n13:Rx EXPRESSION (0〜1:OFF/ON)
n14:Rx HOLD1 (0〜1:OFF/ON)
n15:Rx PORTAMENTO (0〜1:OFF/ON)
n16:Rx SOSTENUTO (0〜1:OFF/ON)
n17:Rx SOFT (0〜1:OFF/ON)
n18:MONO/POLY MODE (0〜1:MONO/POLY)
n19:ASSIGN MODE (0:SINGLE,1:LIMITED-MULTI,2:FULL-MULTI)
n20:USE FOR RHYTHM PART (0:OFF,1:MAP1,2:MAP2)
n21:PITCH KEY SHIFT ($28〜$58:−24〜+24[semitone])
n22:PITCH OFFSET FINE(upper) ($08〜$F8:−12.0〜+12.0[Hz])
n23:PITCH OFFSET FINE(lower) 〃
n24:PART LEVEL (0〜127)
n25:VELOCITY SENSE DEPTH (0〜127)
n26:VELOCITY SENSE OFFSET (0〜127)
n27:PART PANPOT (0:RANDOM,01(LEFT)〜64〜127(RIGHT))
n28:KEY RANGE LOW (0〜127:C-1〜G9)
n29:KEY RANGE HIGH (0〜127:C-1〜G9)
n30:CC1 CONTROL NUMBER (0〜127)
n31:CC2 CONTROL NUMBER (0〜127)
n32:CHORUS SEND LEVEL (0〜127)
n33:REVERB SEND LEVEL (0〜127)
n34:Rx BANK SELECT (0:OFF,1:ON)
n35:Rx BANK SELECT LSB (0:OFF,1:ON)
n36:PITCH FINE TUNE(Upper) ($00 00〜$40 00〜$7f 7f:-100〜0〜+100)
n37:PITCH FINE TUNE(Lower)
n38:DELAY SEND LEVEL (0〜127)
n39:Vibrato rate ($00〜$7f:−64〜+63)
n40:Vibrato depth ($00〜$7f:−64〜+63)
n41:TVF cutoff freq. ($00〜$7f:−64〜+63)
n42:TVF resonance ($00〜$7f:−64〜+63)
n43:TVF&TVA Env.attack ($00〜$7f:−64〜+63)
n44:TVF&TVA Env.decay ($00〜$7f:−64〜+63)
n45:TVF&TVA Env.release ($00〜$7f:−64〜+63)
n46:Vibrato delay ($00〜$7f:−64〜+63)
n47:SCALE TUNING C ($00〜$7F:−64〜+63[cent])
n48:SCALE TUNING C# ($00〜$7F:−64〜+63[cent])
n49:SCALE TUNING D ($00〜$7F:−64〜+63[cent])
n50:SCALE TUNING D# ($00〜$7F:−64〜+63[cent])
n51:SCALE TUNING E ($00〜$7F:−64〜+63[cent])
n52:SCALE TUNING F ($00〜$7F:−64〜+63[cent])
n53:SCALE TUNING F# ($00〜$7F:−64〜+63[cent])
n54:SCALE TUNING G ($00〜$7F:−64〜+63[cent])
n55:SCALE TUNING G# ($00〜$7F:−64〜+63[cent])
n56:SCALE TUNING A ($00〜$7F:−64〜+63[cent])
n57:SCALE TUNING A# ($00〜$7F:−64〜+63[cent])
n58:SCALE TUNING B ($00〜$7F:−64〜+63[cent])
n59:MOD PITCH CONTROL ($28〜$58:−24〜+24[semitone])
n60:MOD TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n61:MOD AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n62:MOD LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n63:MOD LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n64:MOD LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n65:MOD LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n66:MOD LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n67:MOD LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n68:MOD LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n69:MOD LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
n70:BEND PITCH CONTROL ($40〜$58:−24〜+24[semitone])
n71:BEND TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n72:BEND AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n73:BEND LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n74:BEND LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n75:BEND LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n76:BEND LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n77:BEND LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n78:BEND LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n79:BEND LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n80:BEND LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
n81:CAf PITCH CONTROL ($28〜$58:−24〜+24[semitone])
n82:CAf TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n83:CAf AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n84:CAf LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n85:CAf LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n86:CAf LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n87:CAf LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n88:CAf LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n89:CAf LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n90:CAf LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n91:CAf LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
n92:PAf PITCH CONTROL ($28〜$58:−24〜+24[semitone])
n93:PAf TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n94:PAf AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n95:PAf LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n96:PAf LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n97:PAf LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n98:PAf LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n99:PAf LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n100:PAf LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n101:PAf LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n102:PAf LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
n103:CC1 PITCH CONTROL ($28〜$58:−24〜+24[semitone])
n104:CC1 TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n105:CC1 AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n106:CC1 LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n107:CC1 LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n108:CC1 LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n109:CC1 LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n110:CC1 LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n111:CC1 LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n112:CC1 LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n113:CC1 LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
n114:CC2 PITCH CONTROL ($28〜$58:−24〜+24[semitone])
n115:CC2 TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n116:CC2 AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n117:CC2 LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n118:CC2 LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n119:CC2 LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n120:CC2 LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n121:CC2 LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n122:CC2 LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n123:CC2 LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n124:CC2 LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
n125:TONE MAP NUMBER (0:SELECTED,1:SC55,2:SC88)
n126:TONE MAP0 NUMBER (1:SC55,2:SC88)
n127:EQ ON/OFF (0:OFF,1:ON)
(SC88VLマニュアルp79〜p81参照)
例
.SC88_PART_SETUP 16 {17,1,1,1}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●SC88のドラム・セットアップ設定
.SC88_DRUM_SETUP map,key,id,if {n1,n2,...,n9} *
・map:0,1
・key:0-127
・id:0-127
・if:$01〜$04
・n1〜n8:0-127
MIDIポートifに接続されたSC88のドラム・セットアップの設定を行う。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
mapはマップナンバーを表し設定範囲は0,1。
keyはノートナンバーを表し設定範囲は0≦key≦127。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n9)は9個まで任意の個数設定可能。
n1:PLAY KEY NUMBER (0〜127)
n2:LEVEL (0〜127)
n3:ASSIGN GROUP NUMBER (0:NON,1〜127)
n4:PANPOT (0:RANDOM,0(LEFT)〜64〜127(RIGHT))
n5:REVERB DEPTH (0〜127:0.0〜1.0)
n6:CHORUS DEPTH (0〜127:0.0〜1.0)
n7:Rx NOTE OFF (0〜1:OFF/ON)
n8:Rx NOTE ON (0〜1:OFF/ON)
n9:DELAY SEND LEVEL (0-127:0.0〜1.0)
(SC88VLマニュアルp82参照)
例
.SC88_DRUM_SETUP $10 {42,127,0,64,64,64,1,1,24}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●SC88のドラムセット名の設定
.SC88_DRUM_NAME map,id,if str
・map:0,1 または USER65,USER66
・id:0-127
・if:$01〜$04
・str:文字列
MIDIポートifに接続されたSC88のドラムセット名の設定を行う。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
mapはマップナンバーを表し設定範囲は0,1。ユーザードラムセットの名前を設定する
場合にはUSER65,またはUSER66という文字列を与えて指定する。
idはSC88のデバイスIDで省略可能、省略時は$10。
strはドラセット名を表す文字列で、"〜"で括り12文字以内で指定する。
(SC88マニュアルp82参照)
例
.SC88_DRUM_NAME USER66,$10 "USER SET"
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●SC88ユーザー音色の設定
.SC88_USER_INST bk,pgm,id,if {n1,n2,...,n11} *
・bk:0-1
・pgm:1-128
・id:0-127
・if:$01〜$04
・n1〜n11:下記参照
MIDIポートifに接続されたSC88ユーザー音色の設定を行う。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
bkは設定先音色バンク番号を表し、設定範囲は0,1。bk=0がバリエーション番号64,
bk=1がバリエーション番号65に対応する。
pgmは設定先音色番号で、設定範囲は1〜128。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n11)は11個まで任意の個数設定可能。
n1:SOURCE TONE#(MAP) (1,2)
n2:BANK NUMBER MSB (0〜127)
n3:PROGRAM NUMBER (1〜128)
n4:Vibrato rate ($00〜$7f:−64〜+63)
n5:Vibrato depth ($00〜$7f:−64〜+63)
n6:TVF cutoff freq. ($00〜$7f:−64〜+63)
n7:TVF resonance ($00〜$7f:−64〜+63)
n8:TVF&TVA Env.attack ($00〜$7f:−64〜+63)
n9:TVF&TVA Env.decay ($00〜$7f:−64〜+63)
n10:TVF&TVA Env.release ($00〜$7f:−64〜+63)
n11:Vibrato delay ($00〜$7f:−64〜+63)
(SC88VLマニュアルp82参照)
例
.SC88_USER_INST 0,4,$10 {1,0,10,64,64,64,64,64,64,64,64}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●SC88のユーザードラムセットの設定
.SC88_USER_DRUM st,nt,id,if {n1,n2,...,n12} *
・st:0-1
・nt:0-127
・id:0-127
・if:$01〜$04
・n1〜n12:下記参照
MIDIポートifに接続されたSC88のユーザードラムセットの設定を行う。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
stは設定先ドラムセット番号で設定範囲は0,1。st=0がドラムセット番号65、
st=1がドラムセット番号66に対応する。
ntは登録先ノート番号で設定範囲は0-127。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n12)は12個まで任意の個数設定可能。
n1:PLAY KEY NUMBER (0〜127)
n2:LEVEL (0〜127)
n3:ASSIGN GROUP NUMBER (0:NON,1〜127)
n4:PANPOT (0:RANDOM,01(LEFT)〜64〜127(RIGHT))
n5:REVERB DEPTH (0〜127:0.0〜1.0)
n6:CHORUS DEPTH (0〜127:0.0〜1.0)
n7:Rx NOTE OFF (0〜1:OFF/ON)
n8:Rx NOTE ON (0〜1:OFF/ON)
n9:DELAY SEND LEVEL (0-127:0.0〜1.0)
n10:SOURCE DRUM SET#(MAP) (1-2)
n11:PROGRAM NUMBER (0-127)
n12:SOURCE NOTE NUMBER (0-127)
(SC88VLマニュアルp82参照)
例
.SC88_USER_DRUM 0,32,$10 {24,127,0,64,10,10,0,1,10,1,10,24}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■MT32/CM32L/CM64/CM500専用命令
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●MT32の初期化
.MT32_INIT id,if
.MT32_RESET id,if
・id:0-127
・if:$01〜$04
MIDIポートifに接続されたMT32の初期化を行なう
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
idはMT32のデバイスIDで省略可能、省略時は$10。
例
.MT32_INIT $10
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●MT32の各パートのパーシャルリザーブ
.MT32_P_RESERVE id,if {n1,n2,…,n9} *
.MT32_PARTIAL_RESERVE id,if {n1,n2,…,n9} *
・id:0-127
・if:$01〜$04
・n1〜n9:0-127
MIDIポートifに接続されたMT32の各パートのパーシャルリザーブを行う。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
idはMT32のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n9)は必ず9個なければならない。パラメータ各値の総和は32以内。
n1〜n8はパート1〜8のパーシャルリザーブ値に対応し、n9はリズムパートに対応する。
例
.MT32_PARTIAL_RESERVE $10 {2,2,2,2,0,0,1,2,4}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●MT32リバーブパラメータの設定
.MT32_REVERB id,if {n1,n2,n3} *
・id:0-127
・if:$01〜$04
・n1〜n3:0-127
MIDIポートifに接続されたMT32のリバーブパラメータを設定する。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
idはMT32のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n3)は3個まで任意の個数設定可能。
n1:REVERB MODE (0:Room,1:Hall,2:Plate,3:Tap Delay)
n2:REVERB TIME (0〜7)
n3:REVERB LEVEL (0〜7)
(MT32マニュアルp35, CM64マニュアルp30参照)
例
.MT32_REVERB $10 {3,3,5}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●MT32各パートのMIDIチャンネル設定
.MT32_PART_SETUP id,if {n1,n2,…,n9} *
・id:0-127
・if:$01〜$04
・n1〜n9:0-127
MIDIポートifに接続されたMT32の各パートのMIDIチャンネルを設定する。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
idはMT32のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n9)は9個まで任意の個数設定可能。
n1〜n8はパート1〜8のMIDIチャンネル値に対応し、n9はリズムパートに対応する。
パラメータ(n1〜n9)はMIDIチャンネル値なので1〜16まで有効。
ただし、0あるいは17以上を与えた場合はそのパートを無効(OFF)とみなす。
(MT32マニュアルp35, CM64マニュアルp30参照)
例
.MT32_PART_SETUP $10 {2,3,4,5,6,7,8,9,10}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●MT32リズムキットの設定
.MT32_DRUM_SETUP n,id,if {n1,n2,n3,n4} *
.MT32_RHYTHM_SETUP n,id,if {n1,n2,n3,n4} *
・n:24〜87
・id:0-127
・if:$01〜$04
MIDIポートifに接続されたMT32のリズムキットの設定を変更する。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
nは変更対象ノートナンバーを表し、設定範囲は24≦n≦87。
idはMT32のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n4)は4個まで任意の個数設定可能。
n1:TIMBRE (0〜63:i1〜64,64〜127:r1〜64)
n2:OUTPUT LEVEL (0〜100)
n3:PANPOT (0〜14)
n4:REVERB SWITCH (0〜1:OFF/ON)
(MT32マニュアルp35, CM64マニュアルp30参照)
例
.MT32_DRUM_SETUP 24,$10 {10,100,12,1}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●MT32コモンパラメータの設定
.MT32_COMMON n,id,if {str,n1,n2,n3,n4} *
・n:1-64
・id:0-127
・if:$01〜$04
・str:文字列
・n1〜n4:0-127
MIDIポートifに接続されたMT32の音色のコモンパラメータを設定する。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
nは設定対象ティンバー番号で、設定範囲は1〜64。
idはMT32のデバイスIDで省略可能、省略時は$10。
strは音色名で、"〜"で括り、10文字以内(省略不可)の文字列で指定する。
パラメータ(n1〜n4)は4個まで任意の個数設定可能。
n1:Structure of Partial#1&2 (0〜12:1〜13)
n2:Structure of Partial#3&4 (0〜12:1〜13)
n3:PARTIAL MUTE (0〜15)
n4:ENV MODE (0〜1:NORMAL,NO SUSTAIN)
(MT32マニュアルp34, CM64マニュアルp29参照)
例
.MT32_COMMON 1,$10 {1,1,0,0}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●MT32パーシャルパラメータの設定
.MT32_PARTIAL n,p,id,if {n1,n2,…,n58} *
・n:1-64
・p:1-4
・id:0-127
・if:$01〜$04
・n1〜n58:0-127
MIDIポートifに接続されたMT32の音色のパーシャルパラメータを設定する。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
nは設定対象ティンバー番号で設定範囲は1≦n≦64。
pは設定対象パーシャルナンバーで設定範囲は1≦p≦4。
idはMT32のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n58)は58個まで任意の個数設定可能。
n1:WG PITCH COARSE (0〜96:C1,C#1,〜,C9)
n2:WG PITCH FINE (0〜100:−50〜+50)
n3:WG PITCH KEYFOLLOW (0〜16:−1,−1/2,−1/4,0,1/8,1/4,
3/8,1/2,5/8,3/4,7/8,1,
5/4,3/2,2,s1,s2)
n4:WG PITCH BENDER SW (0〜1:OFF/ON)
n5:WG WAVEFORM/PCM BANK (0〜3:SQU1,SAW1,SQU2,SAW2)
n6:WG PCM WAVE (0〜127:1〜128)
n7:WG PULSE WIDTH (0〜100)
n8:WG PW VELO SENS (0〜14:−7〜+7)
n9:P-ENV DEPTH (0〜10)
n10:P-ENV VELO SENS (0〜3)
n11:P-ENV TIME KEYF (0〜4)
n12:P-ENV TIME 1 (0〜100)
n13:P-ENV TIME 2 (0〜100)
n14:P-ENV TIME 3 (0〜100)
n15:P-ENV TIME 4 (0〜100)
n16:P-ENV LEVEL 0 (0〜100:−50〜+50)
n17:P-ENV LEVEL 1 (0〜100:−50〜+50))
n18:P-ENV LEVEL 2 (0〜100:−50〜+50)
n19:P-ENV SUSTAIN LEVEL (0〜100:−50〜+50)
n20:END LEVEL (0〜100:−50〜+50)
n21:P-LFO RATE (0〜100)
n22:P-LFO DEPTH (0〜100)
n23:P-LFO MOD SENS (0〜100)
n24:TVF CUTOFF FREQ (0〜100)
n25:TVF RESONANCE (0〜30)
n26:TVF KEYFOLLOW (0〜14:−1,−1/2,−1/4,0,1/8,1/4,
3/8,1/2,5/8,3/4,7/8,1,
5/4,3/2,2)
n27:TVF BIAS POINT/DIR (0〜127)
n28:TVF BIAS LEVEL (0〜14:−7〜+7)
n29:TVF ENV DEPTH (0〜100)
n30:TVF ENV VELO SENS (0〜100)
n31:TVF ENV DEPTH KEYF (0〜4)
n32:TVF ENV TIME KEYF (0〜4)
n33:TVF ENV TIME 1 (0〜100)
n34:TVF ENV TIME 2 (0〜100)
n35:TVF ENV TIME 3 (0〜100)
n36:TVF ENV TIME 4 (0〜100)
n37:TVF ENV TIME 5 (0〜100)
n38:TVF ENV LEVEL 1 (0〜100)
n39:TVF ENV LEVEL 2 (0〜100)
n40:TVF ENV LEVEL 3 (0〜100)
n41:TVF ENV SUSTAIN LEVEL (0〜100)
n42:TVA LEVEL (0〜100)
n43:TVA VELO SENS (0〜100:−50〜+50
n44:TVA BIAS POINT 1 (0〜127)
n45:TVA BIAS LEVEL 1 (0〜12:−12〜0)
n46:TVA BIAS POINT 2 (0〜127)
n47:TVA BIAS LEVEL 2 (0〜12:−12〜0)
n48:TVA ENV TIME KEYF (0〜4)
n49:TVA ENV TIME V_FOLLOW (0〜4)
n50:TVA ENV TIME 1 (0〜100)
n51:TVA ENV TIME 2 (0〜100)
n52:TVA ENV TIME 3 (0〜100)
n53:TVA ENV TIME 4 (0〜100)
n54:TVA ENV TIME 5 (0〜100)
n55:TVA ENV LEVEL 1 (0〜100)
n56:TVA ENV LEVEL 2 (0〜100)
n57:TVA ENV LEVEL 3 (0〜100)
n58:TVA ENV SUSTAIN LEVEL (0〜100)
(MT32マニュアルp34, CM64マニュアルp29参照)
例
.MT32_PARTIAL 1,1,$10 {64,50,11,1,1,127,50,7}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●MT32パッチの設定
.MT32_PATCH n,id,if {n1,n2,…,n7} *
・n:1-128
・id:0-127
・if:$01〜$04
・n1〜n7:0-127
MIDIポートifに接続されたMT32のパッチを設定する。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
nは設定対象パッチナンバーで、設定範囲は1≦n≦128。
idはMT32のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n7)は7個まで任意の設定個数設定可能。
n1:TIMBRE GROUP (0〜3:a,b,i,r)
n2:TIMBRE NUMBER (0〜63)
n3:KEY SHIFT (0〜48:−24〜+24)
n4:FINE TUNE (0〜100:−50〜+50)
n5:BENDER RANGE (0〜24)
n6:ASSIGN MODE (0〜3:POLY1〜4)
n7:REVERB SWITCH (0〜1:OFF/ON)
(MT32マニュアルp35, CM64マニュアルp30参照)
例
.MT32_PATCH 1,$10 {0,0,0,50,12,1,1}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●MT32コンソール文字列表示
.MT32_PRINT id,if str
・id:0-127
・if:$01〜$04
・str:文字列
MIDIポートifに接続されたMT32のコンソールに文字列を表示する。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
idはMT32のデバイスIDで省略可能、省略時は$10。
strは文字列で、"〜"でくくり20文字以内で指定する。
(MEASURE3 zm_mt32_print()参照)
例
.MT32_PRINT $10 "HELLO!"
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■U220/U20専用命令
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●U220セットアップパラメータの設定
.U220_SETUP id,if {n1,n2,…,n7} *
・id:0-127
・if:$01〜$04
・n1〜n7:0-127
MIDIポートifに接続されたU220のセットアップパラメータを設定する。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
idはU220のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n7)は必ず7個指定しなければならない。
n1:Chorus SW (0〜1:OFF/ON)
n2:Reverb SW (0〜1:OFF/ON)
n3:Rx Cntrl Channel (1〜17:1〜16,OFF)
n4:Patch Change (0〜5:MAP1〜MAP4,Dir,OFF)
n5:Timbre Change (0〜5:MAP1〜MAP4,Dir,OFF)
n6:Rhythm Change (0〜5:MAP1〜MAP4,Dir,OFF)
n7:R.Inst Assign (0〜5:MAP1〜MAP4,Dir,OFF)
(U220マニュアルp46,p146,p148)
例
.U220_SETUP $10 {1,1,1,5,4,4,4}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●U220パートパラメータの設定
.U220_PART_SETUP pt,id,if {n1,n2,…,n13} *
・pt:1-6
・id:0-127
・if:$01〜$04
・n1〜n13:0-127
MIDIポートifに接続されたU220のテンポラリ・パッチのパートパラメータを
設定する。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
ptはパートナンバーを表し、設定範囲は1≦pt≦6。
idはU220のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n13)は必ず13個指定しなければならない。
n1:Timbre Number (1〜128)
n2:Voice Reserve (0〜30)
n3:Receive Channel (1〜17:1〜16,OFF)
n4:Key Range Low (0〜127:C-1〜G9)
n5:Key Range High (0〜127:C-1〜G9)
n6:Velo Level (0〜1:Above/Below)
n7:Velo Threshold (0〜127)
n8:Output Assign (0〜4:Dry,Rev,Cho,Dir1,Dir2)
n9:Level (0〜127)
n10:Pan (0〜15:L7〜M〜R7)
n11:Rx Volume (0〜1:OFF/ON)
n12:Rx Pan (0〜1:OFF/ON)
n13:Rx Hold (0〜1:OFF/ON)
(U220マニュアルp58,p149参照)
例
.U220_PART_SETUP 1,$10 {1,3,1,0,127,1,127,0,0,8,0,0,0}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●U220コモンパラメータの設定
.U220_COMMON id,if {n1,n2,…,n18}
・id:0-127
・if:$01〜$04
・n1〜n18:0-127
MIDIポートifに接続されたU220のテンポラリ・パッチのコモンパラメータを
設定する。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
idはU220のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n18)は必ず18個指定しなければならない。
n1:Chorus Type (0〜4:Chorus1,Chorus2,FB-Chorus,
Flanger,Short Delay)
n2:Chorus Out Mode (0〜1:Pre Rev,Post Rev)
n3:Chorus Level (0〜31)
n4:Chorus Delay (0〜31)
n5:Chorus Rate (0〜31)
n6:Chorus Depth (0〜31)
n7:Chorus Feedback (1〜63:−31〜0〜+31)
n8:Reverb Type (0〜7:Room1〜3,Hall1〜2,Gate
Delay,CrossDelay)
n9:Reverb Time (0〜31)
n10:Reverb Level (0〜31)
n11:Reverb Delay Feedback (0〜31)
n12:Reverb Pre Delay Feedback (0〜31)
n13:Param1 # (0〜63:0〜5,7〜31,64〜95,OFF)
n14:Param1 Param (0:Timbre Level,1:Env Attack
2:Env Decay,3:Env Sustain
4:Env Release,5:A.Bend Depth
6:A.Bend Rate,7:Detune Depth
8:Vib Rate,9:Vib Wave Form
10:Vib Depth,11:Vib Delay
12:Vib Rise Time,13:Vib Mod Depth
14:Chorus Level,15:Chorus Rate
16:Chorus Feedback,17:Reverb Level
18:Delay Feedback)
n15:Param2 # (Same as Param1 #)
n16:Param2 Param (Same as Param1 Param)
n17:Param3 # (Same as Param1 #)
n18:Param3 Param (Same as Param1 Param)
(U220マニュアルp54,p149参照)
例
.U220_COMMON $10 {0,1,20,20,20,20,32,0,2,2,2,2,63,0,63,0,63,0}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●U220音色パラメータ設定
.U220_TIMBRE n,id,if {str,n1,n2,…,n26} *
・n:1-128
・id:0-127
・if:$01〜$04
・str:文字列
・n1〜n26:0-127
MIDIポートifに接続されたU220に音色パラメータを設定する。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
nは登録先音色番号を表し、設定範囲は1≦n≦128。
idはU220のデバイスIDで省略可能、省略時は$10。
strは音色名を表す文字列で、"〜"で括り、12文字以内で指定する。
パラメータ(n1〜n26)は必ず26個指定しなければならない。
n1:Tone Media (0〜31:I,1〜31)
n2:Tone Number (1〜128)
n3:Timbre Level (0〜127)
n4:Velocity Sens (1〜15:−7〜+7)
n5:Channel Press Sens (1〜15:−7〜+7)
n6:Env Attack Rate (1〜15:−7〜+7)
n7:Env Decay Rate (1〜15:−7〜+7)
n8:Env Sustain Level (1〜15:−7〜+7)
n9:Env Release Rate (1〜15:−7〜+7)
n10:Pitch Shift Coarse (8〜56:−24〜+24)
n11:Pitch Shift Fine (14〜114:−50〜+50)
n12:Bend Range Lower (0〜15:−36,−24,−12〜0)
n13:Bend Range Upper (0〜12)
n14:Channel After Sens (0〜27:−36,−24,−12〜+12)
n15:Poly After Sens (0〜27:−36,−24,−12〜+12)
n16:Auto Bend Depth (0〜27:−36,−24,−12〜+12)
n17:Auto Bend Rate (0〜15)
n18:Detune Depth (0〜15)
n19:Rate (0〜63)
n20:Waveform (0〜8)
n21:Depth (0〜15)
n22:Delay (0〜15)
n23:Rise Time (0〜15)
n24:Modulation Depth (0〜15)
n25:Ch After Sens (0〜15)
n26:Poly After Sens (0〜15)
(U220マニュアルp72,p149参照)
例
.U220_TIMBRE 1,$10 {"SYNTHE-2",
0,1,127,8,8,8,8,8,8,32,64,2,2,
14,14,14,0,0,0,0,0,0,0,0,0,0
}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●U220ドラム・パラメータの設定
.U220_DRUM_SETUP id,if {n1,n2,…,n7} *
・id:0-127
・if:$01〜$04
・n1〜n7:0-127
MIDIポートifに接続されたU220のテンポラリ・パッチのドラム・パラメータを
設定する。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
idはU220のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n7)は必ず7個指定しなければならない。
n1:Rhythm Setup # (0〜3:1〜4)
n2:Voice Reserve (0〜30)
n3:Receive Channel (1〜17:1〜16,OFF)
n4:Level (0〜127)
n5:Level Boost Sw (0〜1:OFF/ON)
n6:Rx Volume (0〜1:OFF/ON)
n7:Rx Hold (0〜1:OFF/ON)
(U220マニュアルp63,p149参照)
例
.U220_DRUM_SETUP $10 {0,5,10,127,0,1,0}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●U220ドラムセット・ノートパラメータの設定
.U220_DRUM_INST n,id,if {n1,n2,…,n20} *
・n:35-99
・id:0-127
・if:$01〜$04
・n1〜n20:0-127
MIDIポートifに接続されたU220のテンポラリ・ドラムセットの各ノートにおける
パラメータを設定する。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
nは設定先のノート番号で、設定範囲は35≦n≦99。
idはU220のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n20)は20個以内任意の個数設定可能。
n1:Tone Media (0〜31:I,1〜31)
n2:Tone Number (1〜128)
n3:Source Key (0〜127:C−1〜G9)
n4:Mute Inst (34〜98:OFF,B1〜D7)
n5:Inst Level (0〜31)
n6:Velocity Sens (0〜15)
n7:Env Mode (0〜1:Sustain,No Sustain)
n8:Env Attack Rate (1〜15:−7〜+7)
n9:Env Decay Rate (1〜15:−7〜+7)
n10:Env Release Rate (1〜15:−7〜+7)
n11:Pitch Shift Coarse (0〜27:−36,−24,−12〜+12)
n12:Pitch Shift Fine (14〜114:−50〜+50)
n13:Channel After Sens (0〜27:−36,−24,−12〜+12)
n14:Poly After Sens (0〜27:−36,−24,−12〜+12)
n15:Random (0〜15)
n16:Auto Bend Depth (0〜27:−36,−24,−12〜+12)
n17:Auto Bend Rate (0〜15)
n18:Detune Depth (0〜15)
n19:Output Assign (0〜3:Dry,Rev,Cho,Dir1)
n20:Pan (0〜15:L7〜M〜R7)
(U220マニュアルp72,p149参照)
例
.U220_DRUM_INST 42,$10 {0,1,24,34,31,
15,1,8,8,8,14,64,14,14,
0,14,0,0,0,8}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●U220ディスプレイ文字列表示
.U220_PRINT id,if str
・id:0-127
・if:$01〜$04
・str:文字列
MIDIポートifに接続されたU220のディスプレイに文字列を表示する。
具体的にはU220のテンポラリ・パッチの名前を設定することで行う。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
idはU220のデバイスIDで省略可能、省略時は$10。
strは表示文字列を表し、"〜"で括り、12文字以内で指定する。
例
.U220_PRINT $10 "APPLE TREE"
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■M1/M1EX/M1R/M1REX専用命令
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●M1受信チャンネル設定
.M1_SETUP {ch1,ch2,…,ch8} *
.M1_MIDI_CH {ch1,ch2,…,ch8} *
・ch1〜ch8:1-16
M1のSEQ0の各パートの受信チャンネルを設定する。
パラメータ(ch1〜ch8)は必ず8個指定しなければならない。設定範囲は1≦chi≦17で
1〜16はMIDIチャンネルの1〜16を表し、17は「そのパートは受信しない」を意味する
設定となる。
n1:パート1の受信MIDIチャンネル
n2:パート1の受信MIDIチャンネル
:
:
n8:パート1の受信MIDIチャンネル
例
.M1_SETUP {1,2,3,4,5,6,17,10}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●M1パートパラメータの設定
.M1_PART_SETUP {n1,n2,…,n40} *
・n1〜n40:
M1のSEQ0の各パートのパラメータを設定する。
パラメータ(n1〜n40)は必ず40個(5×8パート分)設定しなければならない。
PART 1
n1:PROGRAM NUMBER (0〜199:I00〜C99)
n2:OUTPUT LEVEL (0〜99)
n3:KEY TRANSPOSE ($F4〜$0C:−12〜12)
n4:DETUNE ($CE〜$32:−50〜+50)
n5:PAN (0〜13:10:0〜0:10,C,C+D,D)
PART 2〜8(n6〜n40)以下同様の書式構成
(M1マニュアルp126参照)
例
.M1_PART_SETUP {0,99,0,0,5
0,99,0,0,5
0,99,0,0,5
0,99,0,0,5
0,99,0,0,5
0,99,0,0,5
0,99,0,0,5
0,99,0,0,5
}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●M1エフェクトパラメータの設定
.M1_EFFECT_SETUP {n1,n2,…,n25} *
・n1〜n25:
M1のSEQ0のエフェクトパラメータの設定を行う。
パラメータ(n1〜n25)は必ず25個指定しなければならない。
n1:Effect 1 Pattern No. (0〜33:1〜32,Thru)
n2:Effect 2 Pattern No. (0〜33:1〜32,Thru)
n3:Effect 1 L-Ch E.Balnc (0〜100)
n4:Effect 1 R-Ch E.Balnc (0〜100)
n5:Effect 2 L-Ch E.Balnc (0〜100)
n6:Effect 2 R-Ch E.Balnc (0〜100)
n7:Output 3 Pan (0〜101:OFF,100:0〜0:100)
n8:Output 4 Pan (0〜101:OFF,100:0〜0:100)
n9:Effect I/O (BIT0:Effect 1 L-Ch 0=OFF/1=ON
BIT1:Effect 1 R-Ch 0=OFF/1=ON
BIT2:Effect 2 L-Ch 0=OFF/1=ON
BIT3:Effect 2 R-Ch 0=OFF/1=ON)
BIT4:Effect 2 0=PARALLEL/1=SERIAL)
n10〜n17:Effect 1 Parameter
n18〜n25:Effect 2 Parameter
Structure of Effect Parameter
(ofs=10 or 18)
1〜3:Hall (4,5:Room,6:Live Stage)
n(ofs+0):Reverb Time (0〜97:0.2〜9.9),(0〜48:0.2〜5.0)
n(ofs+1):Dummy 0
n(ofs+2):High Damp (0〜99)
n(ofs+3):Pre Delay (0〜200)
n(ofs+4):E/R Level (0〜99)
n(ofs+5):Dummy 0
n(ofs+6):EQ High ($F4〜$0C:−12〜+12)
n(ofs+7):EQ Low ($F4〜$0C:−12〜+12)
7〜9:Early Reflection 1,2,3
n(ofs+0):E/R Time (0〜70:100〜800)
n(ofs+1):Pre Delay (0〜200)
n(ofs+2):Dummy 0
: :
n(ofs+5):Dummy 0
n(ofs+6):EQ High ($F4〜$0C:−12〜+12)
n(ofs+7):EQ Low ($F4〜$0C:−12〜+12)
10:Stereo Delayt,11:Cross Delay
n(ofs+0):Delay Time L (L) (0〜500)
n(ofs+1):Delay Time L (H)
n(ofs+2):Feedback ($9D〜$63:−99〜99)
n(ofs+3):High Damp (0〜99)
n(ofs+4):Delay Time R (L) (0〜500)
n(ofs+5):Delay Time R (H)
n(ofs+6):EQ High ($F4〜$0C:−12〜+12)
n(ofs+7):EQ Low ($F4〜$0C:−12〜+12)
12〜13:Stereo Chorus 1〜2 (14〜15:Flanger)
n(ofs+0):Depth (0〜99)
n(ofs+1):Speed (0〜99:0.03〜3.00 0.03step
100〜199:3.1〜13.0 0.1step
200〜216:14.0〜30.0 1.0step)
n(ofs+2):LFO Status (BIT0:Waveform =0:Sin,=1:Tri
BIT1:Phase =0:0.0゚,=1:180゚
BIT2:Wave Shape =0:Normal
=1:for Flanger)
n(ofs+3):Feedback ($9D〜$63:−99〜+99)
n(ofs+4):Delay Time (0〜200),(0〜50)
n(ofs+5):Dummy 0
n(ofs+6):EQ High ($F4〜$0C:−12〜+12)
n(ofs+7):EQ Low ($F4〜$0C:−12〜+12)
16〜17:Phase Shifter 1〜2
n(ofs+0):Depth (0〜99)
n(ofs+1):Speed (0〜99:0.03〜3.00 0.03step
100〜199:3.1〜13.0 0.1step
200〜216:14.0〜30.0 1.0step)
n(ofs+2):LFO Status (BIT0:Waveform =0:Sin,=1:Tri
BIT1:Phase =0:0.0゚,=1:180゚
BIT2:Wave Shape =0:Normal
=1:for Flanger)
n(ofs+3):Feedback ($9D〜$63:−99〜+99)
n(ofs+4):Manual (0〜99)
n(ofs+5):Dummy 0
n(ofs+6):Dummy 0
n(ofs+7):Dummy 0
18〜19:Stereo Toremolo 1〜2
n(ofs+0):Depth (0〜99)
n(ofs+1):Speed (0〜99:0.03〜3.00 0.03step
100〜199:3.1〜13.0 0.1step
200〜216:14.0〜30.0 1.0step)
n(ofs+2):LFO Status (BIT0:Waveform =0:Sin,=1:Tri
BIT1:Phase =0:0.0゚,=1:180゚
BIT2:Wave Shape =0:Normal
=1:for Flanger)
n(ofs+3):Shape ($9D〜$63:−99〜+99)
n(ofs+4):Dummy 0
n(ofs+5):Dummy 0
n(ofs+6):EQ High ($F4〜$0C:−12〜+12)
n(ofs+7):EQ Low ($F4〜$0C:−12〜+12)
20:Equalizer
n(ofs+0):Dummy 0
: :
n(ofs+3):Dummy 0
n(ofs+4):Low fc (0〜2:0.25k,0.50k,1.00k)
n(ofs+5):High fc (0〜2:1k,2k,4k)
n(ofs+6):High Gain ($F4〜$0C:−12〜+12)
n(ofs+7):Low Gain ($F4〜$0C:−12〜+12)
21:Overdrive
n(ofs+0):Dummy 0
n(ofs+1):Dummy 0
n(ofs+2):Drive (0〜99)
n(ofs+3):Level (0〜99)
n(ofs+4):Dummy 0
n(ofs+5):Dummy 0
n(ofs+6):EQ High ($F4〜$0C:−12〜+12)
n(ofs+7):EQ Low ($F4〜$0C:−12〜+12)
22:Distortion
n(ofs+0):Dummy 0
n(ofs+1):Dummy 0
n(ofs+2):Distortion (0〜99)
n(ofs+3):Level (0〜99)
n(ofs+4):Dummy 0
n(ofs+5):Dummy 0
n(ofs+6):Dummy 0
n(ofs+7):EQ Low Gain ($F4〜$0C:−12〜+12)
23:Exciter
n(ofs+0):Blend ($9D〜$63:−99〜+99)
n(ofs+1):Emphatic Point (0〜9:1〜10)
n(ofs+2):Dummy 0
: :
n(ofs+5):Dummy 0
n(ofs+6):EQ High ($F4〜$0C:−12〜+12)
n(ofs+7):EQ Low ($F4〜$0C:−12〜+12)
24:Synphonic Ensamble
n(ofs+0):Depth (0〜99)
n(ofs+1):Dummy 0
: :
n(ofs+5):Dummy 0
n(ofs+6):EQ High ($F4〜$0C:−12〜+12)
n(ofs+7):EQ Low ($F4〜$0C:−12〜+12)
25:Roteffect Speaker
n(ofs+0):Depth (0〜99)
n(ofs+1):Dummy 0
n(ofs+2):Speed Rate ($F6〜$0A:−10〜+10)
n(ofs+3):Dummy 0
: :
n(ofs+7):Dummy 0
26:Delay/Hall
n(ofs+0):Delay Time (L) (0〜500)
n(ofs+1):Delay Time (H)
n(ofs+2):Feedback ($9D〜$63:−99〜99)
n(ofs+3):High Damp (0〜99)
n(ofs+4):Reverb Time (0〜97:0.2〜9.9)
n(ofs+5):Dummy 0
n(ofs+6):High Damp (0〜99)
n(ofs+7):Pre Delay (0〜150)
27:Delay/Room
n(ofs+0):Delay Time (L) (0〜500)
n(ofs+1):Delay Time (H)
n(ofs+2):Feedback ($9D〜$63:−99〜99)
n(ofs+3):High Damp (0〜99)
n(ofs+4):Reverb Time (0〜97:0.2〜9.9)
n(ofs+5):Dummy 0
n(ofs+6):High Damp (0〜99)
n(ofs+7):Pre Delay (0〜150)
28:Delay/Early Reflection
n(ofs+0):Delay Time (L) (0〜500)
n(ofs+1):Delay Time (H)
n(ofs+2):Feedback ($9D〜$63:−99〜99)
n(ofs+3):High Damp (0〜99)
n(ofs+4):E/R Time (0〜30:100〜400)
n(ofs+5):Pre Delay (0〜150)
n(ofs+6):Dummy 0
n(ofs+7):Dummy 0
29:Delay/Chorus
n(ofs+0):Delay Time L (L) (0〜500)
n(ofs+1):Delay Time L (H)
n(ofs+2):Feedback L ($9D〜$63:−99〜99)
n(ofs+3):High Damp L (0〜99)
n(ofs+4):Delay Time R (L) (0〜500)
n(ofs+5):Delay Time R (H)
n(ofs+6):Feedback R ($9D〜$63:−99〜99)
n(ofs+7):High Damp R (0〜99)
30:Delay/Chorus (31:Delay Flanger)
n(ofs+0):Delay Time (L) (0〜500)
n(ofs+1):Delay Time (H)
n(ofs+2):Feedback ($9D〜$63:−99〜99)
n(ofs+3):High Damp (0〜99)
n(ofs+4):Depth (0〜99)
n(ofs+5):Speed (0〜99:0.03〜3.00 0.03step
100〜199:3.1〜13.0 0.1step
200〜216:14.0〜30.0 1.0step)
n(ofs+6):LFO Status (BIT0:Waveform =0:Sin,=1:Tri
BIT1:Phase =0:0.0゚,=1:180゚
BIT2:Wave Shape =0:Normal
=1:for Flanger)
n(ofs+7):Feedback ($9D〜$63:−99〜99)
32:Delay/Phaser
n(ofs+0):Delay Time (L) (0〜500)
n(ofs+1):Delay Time (H)
n(ofs+2):Feedback ($9D〜$63:−99〜99)
n(ofs+3):High Damp (0〜99)
n(ofs+4):Depth (0〜99)
n(ofs+5):Speed (0〜99:0.03〜3.00 0.03step)
n(ofs+6):Feedback ($9D〜$63:−99〜99)
n(ofs+7):Dummy 0
33:Delay/Tremolo
n(ofs+0):Delay Time (L) (0〜500)
n(ofs+1):Delay Time (H)
n(ofs+2):Feedback ($9D〜$63:−99〜99)
n(ofs+3):High Damp (0〜99)
n(ofs+4):Depth (0〜99)
n(ofs+5):Speed (0〜99:0.03〜3.00 0.03step)
n(ofs+6):Dummy 0
n(ofs+7):Shape ($9D〜$63:−99〜99)
(M1マニュアルp127参照)
例
.M1_EFFECT_SETUP {1,3,50,50,50,50,50,50,%11111,
50,0,50,100,50,0,0,0,50,0,50,
100,50,0,0,0
}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●M1ディスプレイ文字列表示
.M1_PRINT str
・str:文字列
M1のディスプレイに文字列を表示する。具体的にはM1のSEQ0のソングネーム
の設定をすることで行う。
strは表示文字列で、"〜"で括り、10文字以内で指定する。
例
.M1_PRINT "MY WAY"
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●M1へ設定を送信する
.SEND_TO_M1 id,if
・id:0-127
・if:$01〜$04
.M1_SETUP
.M1_PART_SEUP
.M1_EFFECT_SETUP
.M1_PRINT
で設定したパラメータ群をMIDIポートifに接続されたM1へ送信する。
ifの設定範囲は1-4。MIDIインターフェースの個数が少ない場合は4より小さくなる。
ifを省略した場合は.current_midi_outで選択したカレントMIDIポートへ出力される。
idはM1のデバイスIDで省略可能、省略時は$30。
なお、M1のデバイスIDは$30+グローバルチャンネル(0〜$f)で求められる。
(グローバルチャンネルとはGLOBALモードのF5−1で設定出来る)
必ず
.M1_SETUP
.M1_PART_SEUP
.M1_EFFECT_SETUP
.M1_PRINT
を設定してからこの命令を実行すること。'.M1_EFFECT_SETUP'のみ省略が可能。
省略時はZMUSICが持つデフォルト設定がM1へ送信され設定されることになる。
.M1_SETUP
.M1_PART_SEUP
.M1_EFFECT_SETUP
.M1_PRINT
の間にM1関係以外のコマンドがあると正常なデータが送信されないので注意
すること。
例
.SEND_TO_M1 $30
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■波形メモリ
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●波形メモリの登録
.WAVE_FORM wv,lm,ls,le,lt,comment {d0,d1,d2,…,d4294967295}
.WAVEFORM wv,lm,ls,le,lt,comment {d0,d1,d2,…,d4294967295}
・wv:8-255
・lm:0-2 または 1SHOT,REPEAT,ALTERNATE
・ls:0-4294967295
・le:0-4294967295
・lt:0-4294967295
・comment:文字列
・d0,d1,d2,…,d4294967295
波形メモリを登録する。定義した波形はピッチモジュレーション(MML @M)、
ARCC(MML @A)、エンハンスドベロシティシーケンス(MML [VELOCITY.DEPTH])、
アゴーギク(MML [AGOGIK.DEPTH])にて利用可能。波形は整数で表し、各要素は
離散的な波形構成値とみなされる。
・wv:定義先波形番号
定義先波形番号を指定する。0〜7はプリセット波形用に予約されているため
ユーザー定義波形である波形メモリは8〜255に定義することになる。
・lm:ループモード
後述するループ領域を度のようにループさせるかを設定する。なおループモード
0〜2と実際の波形処理のされ方の対応は以下の通り。0〜2はそれぞれ
1SHOT,REPEAT,ALTERNATEといった文字列で指定することも可能。
省略時はlm=0 1SHOTが選択される。
lm数値 lm文字列 動作イメージ
0 1SHOT → 波形を一度実行したら最後の値を継続する
1 REPEAT →→→→.... ループ終点に到達したらループ開始点に戻る
2 ALTERNATE →←→←.... ループ開始点からループ終点まで
交互に反復する
・ls:ループ開始点
ループ開始位置を波形データの何番目にするかを設定する。設定範囲は
0-4294967295。省略時は0が選択される。
・le:ループ終了点
ループ終了位置を波形データの何番目にするかを設定する。設定範囲は
0-4294967295。省略時は最後の波形データの位置が自動設定される。
・lt:ループ回数
ループ領域を何回ループさせるかを設定する。設定範囲は0-4294967295。
なお0は無限ループとして設定される。
・comment:コメント
'{'以外の255文字を用いて波形に対する注釈を与えることが出来る。
・d1〜d4294967295:波形データ
波形データは符号付き16ビット整数−32768〜+32767で構成する。
最大4294967296個。
波形データは波形を利用する機能の種別に関係無く直値が利用される。
値が大きすぎる時や小さすぎる時は、その効果が現れなかったり
大きすぎたりするため、そういう場合は、振幅制御の命令を駆使する
などして適宜調整する必要がある。
例
.wave_form 8,REPEAT,800,1200,0,ORG_WAVE001 {0,5,-5,10,3,-300,10,6,80,10}
(MEASURE3 zm_set_wave_form1(),zm_set_wave_form2()参照)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■マクロ定義
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●マクロ定義
.DEFINE macro p1,p2,...,p255 { contents } *
・macro:文字列
・p1〜p255:文字列
・contents:文字列
マクロ定義を行う。ZMUSICには初めから備わっていないオリジナルのZMSコマンドを
作成したり、頻繁に登場する演奏パターンをコマンド化してZMSを見やすくしたりする
ことが出来る。ただし、定義したマクロの数に応じてコンパイル処理は遅くなる。
(ただし、コンパイルして出来たZMDは通常のZMDと同様の処理速度で演奏される)
マクロ名はmacroで与え、'{'を除く英数字、全角の240文字以内の文字列で与える
ことが出来る。
p1〜p255はマクロに与えるパラメータで、%でマクロに与えたいパラメータの
個数だけ、記述する。
contentsはマクロの内容で、任意の文字列を与えることが出来る。p1〜p255で
設定したパラメータを内容中に挿入したい時には%を添付する。
例
.define DRUM1 %,%,%,% {
c%d%c%d%
}
%の後ろに数値を付けてパラメータの対応を判り易く記述することも出来るが、
その場合数値指定なしの記述とは混在出来ない。
例
○
.define DRUM1 %1,%2 {
c%2d%1
}
×
.define DRUM1 %1,% {
c%d%2
}
なお、.DEFINE命令には以下のような制限事項がある。
1. マクロ名に全角文字は全文字使えるが、半角文字の場合は英字の
大文字小文字の区別はない。
2. ZMS中のありとあらゆるテキストがマクロ変換対象になる。
3. マクロの変換対象となるソースは親ソースのみで、includeしたファイルや
ADPCM定義ファイルなどのサブ・ファイルはマクロの変換対象にならない。
4.マクロ内容にパラメータに相当しない%記号を用いられない。
たとえば
.define ABC %,%,% {c%d%e%001}
としたとき最後の%001は2進数値とみなされずにマクロパラメータ識別子%と
10進数の'001'としてみなされる。
5. .DEFINE文で与えたパラメータの数とマクロ内容で参照するパラメータの数は
必ず同一でなければならない。たとえば
.define ABC %,%,% {c%d%e}
はエラーとなる。
ただし、使用する時は与えるパラメータが少なくても構わない。足りない
パラメータに付いてはなにも与えないで処理される。たとえば上のような
定義のもとで
ABC 1,2
とすると
c1d2e
として処理される。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■コメント/注釈文
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●コメント
/str
・str:文字列
'/'以後、改行までをコメントとして無視する。
コンパイル後のZMDにはその内容は反映されない。
例
/ ORGAN SOLO
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●コメント
.COMMENT str
・str:文字列
改行までの文字列strをコメントとして無視する。
'/'とは、コンパイル後のZMDにその内容が出力される点が違う。
曲のタイトル、制作日時、データ制作者の名前等をZMSファイル先頭に記述する
のが一般的な用途。
*タイトル文字は
* 1行目は曲のタイトル。それ以降はコメント。
* また、曲名/作曲者/編曲者/データ作成者の様な一般的な情報を複数行にわたって
* 記述する場合は以下の文字列で表される情報タイトルの後に記載することと規定する。
* (情報タイトルの日本語は全角、英字は半角英数大文字のみ、また : は必須)
*曲名: TITLE:
*作曲者: COMPOSER:
*編曲者: ARRANGER:
*作成者: MANIPULATER:
*作成日: DATE: (原曲の作曲年月日はCOPYRIGHT:)
*録音場所 STUDIO:
*使用機器: INSTRUMENTS:
*ジャンル: CATEGORY:
*例)
*.comment {
*TITLE: I am a boy, therefore I have balls.
*作曲者:西川善司
*STUDIO:自宅
*ジャンル:童謡
*}
例
.comment STAGE 1 BGM VERSION 1.10 (c)1992/11 XVI
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●文字列表示
.PRINT str
・str:文字列
改行までの文字列strを画面に出力する。
いかなる方法で演奏しても文字列を出力してしまうので、通常は用いない。
例
.PRINT HERE WE GO!
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●ダミー命令
.DUMMY
なにも実行しないダミー命令。ただし、ZMDに1バイト分のダミーコードが
出力される。コンパイル後のZMDに手を加える時などに有効。通常は使用する
必要はない。
例
.DUMMY
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
{ -- ZM5.MAN ------------------------------------------------
MEASURE 5
MMLコマンド
ここではZMUSICのMMLについて解説します。
5.1. MMLの文法について
ZMUSICは基本的にはシャープ/Hudson製のOPMDRV.Xに
上位コンパチです。つまりOPMDRV.Xに存在したMMLはほぼ共通に
使用することができ、OPMDRV.X用のデータをほとんど変更無しで演奏が
可能です。
ZMUSICではMMLの小文字、大文字の区別を一切していません。
よって状況、ユーザー各位の趣味に応じて自由に使いわけが行えます。
(本節では説明の都合上、MMLを大文字で、パラメータを小文字で記述してい
ます。)
省略しても良いパラメータはその旨を記述していますがそれ以外の場合は
省略できません。また、数値パラメータは頭に'$'をつければ16進数が、'%'を
つければ2進数を設定することができます。何もつけなければ10進数とみなされます。
各コマンドの頭についている印は各音源の種類を表しています。全てのコマンドが
全ての音源に対応しているわけではないので注意してください。対応していない
デバイスに対してそのコマンドを用いると無視されます。
[FM] 内蔵FM音源パート
[ADPCM] 内蔵ADPCMパート
[MIDI] MIDI音源パート
5.2. 基本MML
ここではZMUSIC Ver.2.0以前から存在するMMLコマンドの仕様について解説します。
Ver.3.0になって機能が拡張されたものも存在します。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■音符、休符
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 音符
As,l,g,v
Bs,l,g,v
Cs,l,g,v
Ds,l,g,v
Es,l,g,v
Fs,l,g,v
Gs,l,g,v
・s:#,+,-
・l:1-32767
・g:1-32767
・v:0-127
ABC〜Gはハ長調のラシド〜ソに対応する。
・s:#,+,-
変化記号。#,+を付ければ半音上がり、−を付けると半音下がる。
!はナチュラルを表し、後述の[K.SIGN]([KEY_SIGNATURE])で調号設定を行った場合でも、
調号を無効にした音高でその音符を演奏する。
・l:1〜32767
lは音長を表し、1が全音符、2が2分音符、4が4分音符...となる。
・g:1〜32767
ゲートタイム。実際の消音までの時間。lと同じく1が全音符、2が2分音符、
4が4分音符...となる。
・v:0〜127
ベロシティ。127が最も音圧が大きく、1が最も小さい。0は消音と見なされる。
lはマスタークロック設定コマンド'.MASTER_CLOCK'によって設定範囲が変動する。
具体的には
1≦l≦マスタークロックの値
が設定範囲となる。以下にデフォルトのマスタークロック=192のときの
音楽的音長と絶対音長との対応を示す。
音楽的音長 絶対音長 音楽的音長 絶対音長
1 192 12 16
2 96 16 12
3 64 24 8
4 48 32 6
6 32 64 3
8 24 192 1
絶対音長=int(マスタークロック/音楽的音長)。
パラメータs,l,g,vはいずれもが省略可能。
lが省略されている場合は後述のL/@Lで設定したデフォルト音長が採択される。
gが省略されている場合はlの値をもとに後述のQ/@Qで指定したゲートタイムパラメータ
をもとにゲートタイムが計算される。
vが省略された場合は後述のU/@Uで指定したデフォルトベロシティが採択される。
l及びgの前に'*'をつけると絶対音長指定になる。絶対音長とはZMUSICが処理
する音長カウンタのことでデフォルトでは全音符が192になっている。このとき例えば
C4とC*48は同時間発音される。'*'の後ろには0〜37267までの数値を指定することがで
きる。
例1
a#4,2 (ステップタイムを4分音符長で、ゲートタイムが2分音符長、
ベロシティはデフォルトが採択され、A#が演奏される)
b*386,,125 (ステップ=386,ベロシティ=125でBが演奏される)
音長の後ろに'.'を設定すると付点音符と見なされる。
例2
g4. (付点4分音符)
e4..,*24. (ステップ=二重付点4分音符,ゲート=絶対音長36(=24+24*0.5)
共通コマンド.LENGTH_MODEで「ステップタイムモード」とした場合は'*'が付いてい
る、付いていないに関係無く絶対音長指定となる。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 休符
Rl,g
・l:1〜32767
・g:1〜32767
休符。
l,gの意味については音符と同じ。省略時は音符と同じようにデフォルトパラメータが起用
される。
例
r8
r*96
休符におけるゲートタイムgは通常の音符から休符へ後述の'&'によるタイ指定が
行われた時のみ意味をなす。たとえば
c4&r4,8
とした時はc4は4分音符音長分発音し続け、休符に差し掛かる。
休符の長さは4分音符音長だがゲートタイムは8分音符に設定されているので
前の音の c の音は休符が始まってから8分音符音長後に消音されることとなる。
共通コマンド.LENGTH_MODEで「ステップタイムモード」とした場合は'*'が付いてい
る、付いていないに関係無く絶対音長指定となる。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] ウェイト
@Wl
・l:1〜32767
指定時間、前の状態を保存する。lは音長を表し、音符や休符と役割は同じ。
l省略時はデフォルトが起用される。
例
@w*64
@w4..
休符とはゲートタイムが有るか無いかの違い。たとえば
c4&@w4
とした場合、@w4が終了してもcの音は鳴り続けてしまう。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■調号
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 調号
[K.SIGN k1,k2,…,kn]
・k1〜kn:文字列
調号を設定する。どの音階にどの変化記号(♯,♭)がつくのかを設定する。
kn部分は変化記号、音階の順に設定し、1個ずつ , で区切る。
例
[K.SIGN +c,+d,+f,+g] (ホ長調)
cdfgに自動的に#(シャープ)がつく
[K.SIGN -a,-b,-d,-e] (変イ長調)
abdeに自動的に♭(フラット)がつく
[K.SIGN -a,+b]
aに♭(フラット)が、bに#(シャープ)が自動的につく
また以下の調名を記述することによって、一般的な調号の設定を行うこともできる。
Cmajor,Gmajor,Dmajor,Amajor,Emajor,Bmajor,F+major,F#major,C+major,C#major
Fmajor,B-major,Bbmajor,E-major,Ebmajor,A-major,Abmajor,D-major,Dbmajor
G-major,Gbmajor,C-major,Cbmajor
Aminor,Eminor,Bminor,F+minor,F#minor,C+minor,C#minor,G+minor,G#minor
D+minor,D#minor,A+minor,A#minor,Dminor,Gminor,Cminor,Fminor,B-minor
Bbminor,E-minor,Ebminor,A-minor,Abminor
例
[K.SIGN G-Major] 変ト長調(cdegabに♭)
ナチュラル記号である '!' を使用すれば一時的に調号の効力をなくすことができる。
また、調号の効力をなす音階に対してさらに#,+(#)や-(♭)が付いた場合は調号と
両方考慮した音階になる。
例
[K.SIGN G-Major] b! (この調だとbには通常ならば♭が付き、b-になる)
(半音下がる)のだが ! のためナチュラル指定
となりbで演奏される)
[K.SIGN G-Major] b- (この調だとbには通常ならば♭が付き、b-になる)
(半音下がる)のだが♭のためb--(=a)で 演奏される)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■オクターブ
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] オクターブ
On
・n:-1〜9
オクターブを設定する。初期値は4。nは−1〜9まで設定可能。
実際の発音可能域は各デバイスによって異なる。
・FM音源
オクターブ0のD#からオクターブ8のDまで。
・ADPCM
登録しなければ発音はしないが、セレクトバンク内の(@コマンド、MEASURE6参照)
オクターブ−1のCからオクターブ9のGまで対応。
・MIDI
オクターブ−1のCからオクターブ9のGまで。実際は各楽器によって違う。
詳しくは各MIDI楽器のマニュアルのインプリメンテーション・チャートなどを
参照のこと。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 相対オクターブ
<
>
オクターブを相対的に変更する。<はオクターブを+1し、>はオクターブを
−1する。設定範囲を越えた場合はエラーとなる。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■音長制御
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] デフォルト音長設定
Ln
・n:1〜32767
@Ln
・n:1〜32767
デフォルト音長を設定する。音長をパラメータに持つMMLにおいて音長が省略され
た場合、この命令で設定した値がパラメータとして与えられる。
Lのパラメータnは音楽的音長、絶対音長のいずれかを書くことができる。
音楽的音長の場合はn分音符といった意味となる(設定範囲については音符MMLの
説明を参照)。絶対音長による指定は音名の時と同じように数値の前に'*'を記述して
設定できる。設定範囲は0≦n≦32767。
@Lのパラメータnは絶対音長のみで設定範囲は0≦n≦32767。
初期値はL4(=@L48)である。
L,@Lいずれの場合も音長数値の後ろに符点が設定可能。
例
l16.
@l96
l*2000.
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] ゲートタイム設定
Qn
・n:-8〜8
1音中で実際に発音している時間を音長のn/8時間単位で設定する
初期値 n=8、設定範囲は-8〜8。
値が正の場合、1が発音時間がもっとも短く、8が最も長い(テヌート)。
値が負の場合はステップタイムよりもゲートタイムを長くすることができる。
たとえばq-8とするとゲートタイムはステップタイムの2倍に設定され、
q-4ならばゲートタイムはステップタイムの1.5倍に設定される。
分母の値はデフォルトでは8だが共通コマンド.GATETIME_RESOLUTIONにて
8,16,32,64,128のいずれかへ変更が可能。
例
q4 cdefg (スタッカート気味になる)
q-4 cdefg (前の音がこれから鳴る音と重なるようになる)
@Qを設定した時はQは機能せず、逆にQを設定した時は@Qは機能しない。
後に設定したものが有効となる。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] ゲートタイム設定
@Qn
・n:-32767〜32767
ノートオフ(キーオフ,発音をやめること)を絶対音長でnカウント早める。
発音音長より大きい値の場合、@Qは機能せずQ8の状態で演奏される。
例えば
@Q96 C*16
の場合は発音長が 16−96<0 となるので
@Qの処理はされず発音長は16カウントとなる。
nを負値に設定した場合は絶対音長で-nカウント、ノートオフを遅らせることが
できる。たとえば
@Q-12 c*48
とするとcのゲートタイムは60(=12+48)となる。
初期値は@Q0に相当し設定範囲は-32767〜32767。
@Qを設定した時はQは機能せず、逆にQを設定した時は@Qは機能しない。
後に設定したものが有効となる。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■タイ/スラー
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] タイ/スラー
&
前後の音をつなぐ。同音高の場合は全デバイスにおいてタイとなる。
例
a4&a16.
異音名の場合は、各デバイスによって対応が異なる。
・FM音源パート
スラーとなる
例
a4&a#4 (なめらかにaからa#へつながる)
・ADPCMパート
後述のPCMモード([PCM_MODE]コマンドにより設定)によって対応が異なる。
通常モード時([PCM_MODE RHYTHM])
'&'を除いた時のように処理される
例
a4&a#4 → a4a#4のように演奏される
楽器PCMモード時([PCM_MODE TIMBRE])
例
a4&a#4 (なめらかにaからa#へつながる)
・MIDI
後述のタイ・モード(@Jコマンドにより設定)によって対応が異なる。
通常モード時(@J0)
'&'を除いた時のように処理される
例
a4&a#4 → a4a#4のように演奏される
FM音源部互換モード時(@J1)
スラーとなる。
例
a4&a#4 (なめらかにaからa#へつながる)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 加算式タイ
^n
・n:1〜
音符の直後に書くことによって、nで指定した音長分をその音符の音長に加算する。
nの後ろに符点を書けば、符点を考慮した音長が加算される。nには前に'*'を付けて
絶対音長を記述することもできる。
例
c4^16
d^*1000.
'ceg4^16'
(d2^8,e)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] MIDIパート・タイモード
@Jn
・n:0,1
MIDI部のタイの処理モードを設定する。
n=0で通常モード(初期値)、n=1でFM音源部互換モードになる。
c&d
とした場合、通常(@J0時)はMIDIでは & のない
c d
として処理される。
一方@J1時ではFM音源部と同様に、ある音の発音後、その音の持続音(減衰音)で
つぎの音の音程へ変化するようになる。よって、FM音源部での
(c<d)&(d>c)
といった表現や、後のコラムで「動作の相違がある」と書かれている
(g,e)24&e
@b0,683 c4&c+4
のような表記もFM音源部と同様に機能するようになる(ただし、最初に発音した
音高から1オクターブを超えることはできない)。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■連符
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 連符
{〜}n
・n:1〜32767
{〜}で囲まれたMML群を合計の音長がn分音符音長になるように演奏する。
nには符点を付けたり、'*'を付けて絶対音長による指定も行なえる。
{〜}の中には音長を操作するMMLを書くことは出来ない。(符点,L,@Lなど)
n省略時はデフォルト音長が起用される。
例
{cdef}2
{abc}4..
{cd&de}*192
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■和音
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 和音
'MML…'n,dly(&)
・n:1-32767
・dly:1-32767
'に囲まれた音符を同一タイミングで発音する。
'〜'間に書けるMMLは以下に限られる。
音符 c〜b(16個まで)
調号 # + - !
音長 1〜(符点も可)
絶対音長 *1〜*32767
オクターブコマンド O-1〜O9
オクターブスイッチ < >
1度に16和音まで発音が可能。16音以上音階を書くとエラーとなる。
音長は'〜'内で最後に設定されたものが和音の音長として採用される。
オクターブコマンド、オクターブスイッチは'〜'(シングルコーテーション)内だけ
有効。
'〜'内に音長を書かずに外に数値nを書くと、これは'*'を付ける付けないに変わらず
絶対音長の指定になる。この場合の設定範囲は0≦n≦32767で全音符以上の発音時間も
設定できる。
ディレイパラメータdlyを設定することによって、和音を一度に発音せず、各音を
絶対音長dlyずつ時間的にずらして1音ずつ発声する(アルペジオ奏法)。
ディレイは初期値0で、省略可能だが省略時は以前設定した値がそのまま起用される。
例
'c4eg'
ドミソを4分音符で演奏する。
o4'gb<d'96
ソシレを絶対音長96で演奏する。和音発音後のデフォルトオクターブは4に
変わり無いことに注意。
'c4eg<c',6
まずcが発音され、その6カウント後にeが発音され、更に6カウント後ずつ
g, <cが発音される。
ディレイ値は必ず全部の音が発声可能な値でなければエラーとなる。
例えば
'c4eg',30
などはgが発音出来ないのでエラーとなる。
同構成音の和音〜和音間、異構成音の和音〜和音間、単音〜和音間、和音〜単音間を
'&'で結んでのタイ/スラーが可能。ただし処理の関係上、タイでつながれた和音の
ディレイは強制的に0に設定される。つまり
'c4eg',6&'e4gb-',6
は
'c4eg',6&'e4gb-',0
として処理される。
また、オートベンドやモジュレーション、アフタータッチ・シーケンス、ARCCなど
全ての特殊コマンドが和音においても有効である。もちろん同時にこれらを和音に対して
使用出来る。
FM音源部での和音を用いた場合、チャンネルが競合すると正常に発音されないので
注意。例えば
.assign TR1,FM1
.assign TR2,FM2
.assign TR3,FM3
.track1 'ceg'48
.track2 b- ←正常に演奏されない
.track3 f+ ←正常に演奏されない
のような場合、.track1から発音する'ceg'48の和音はFM音源チャンネル1,2,3が使用さ
れるが、.track2と.track3がこのときそれぞれ b-とf+をチャンネル2,3で演奏している
ためにチャンネルの競合が発生している。この場合、トラック1の和音を正常に発音さ
せるには
.assign TR1,FM1
.assign TR2,FM4
.assign TR3,FM5
.track1 'ceg'48
.track2 b- ←正常に演奏されない
.track3 f+ ←正常に演奏されない
のようにしてチャンネル2,3をあけるようにしなければならない。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 絶対音長0 ┃
┃ ┃
┃ ┃
┃ ZMUSICでは休符、ウェイト、和音とポルタメントを除いて、絶対音長0 ┃
┃ ┃
┃も使用可能になっています(音楽的音長0は使用不可)。音長がゼロの ┃
┃ ┃
┃音符は発音処理を行うだけです。操作対象デバイスによって多少の効果の相違が ┃
┃ ┃
┃ありますので注意して下さい。 ┃
┃ ┃
┃●MIDI ┃
┃ ┃
┃ c*0e*0g*0 ┃
┃ ┃
┃ではcegの和音が鳴りっぱなしになります。 ┃
┃ ┃
┃ MIDI楽器のでリズムパートを持つものは、大抵、ノートオンのメッセージ ┃
┃ ┃
┃のみで演奏可能です(ノートオフの処理を省略しても演奏に影響しない)。 ┃
┃ ┃
┃こういったリズムパートをシーケンスする場合に絶対音長0は有用です。 ┃
┃ ┃
┃ たとえばO2C=バスドラム, O2D=スネアドラム, O3C+=クラッシュシンバルの ┃
┃ ┃
┃ような ローランド系リズムキットで ┃
┃ ┃
┃ L4 o3c+*0 |:4 o2 cdcd :| ┃
┃ ┃
┃とすると、最初の小節の頭だけシンバルが鳴り、2回目以降は鳴らないといった ┃
┃ ┃
┃シーケンスができます。 ┃
┃ ┃
┃ 絶対音長0の音符は楽器の最大同時発声数内で1トラックにつきいくつでも ┃
┃ ┃
┃設定可能です。 ┃
┃ ┃
┃ 絶対音長0の音符はそのままでは鳴りっぱなし状態になりますが、これを ┃
┃ ┃
┃('&'をつけて)タイで通常音符へつなぐとその通常音符が鳴り終わった時点で ┃
┃ ┃
┃絶対音長0の音もノートオフすることができます。 ┃
┃ ┃
┃ c*0&e*0&g4 ┃
┃ ┃
┃とするとcegの和音が4分音符長で鳴ります。 ┃
┃ ┃
┃ この'&'で結ぶ書式では最大16和音までが記述できます。16和音の時は ┃
┃ ┃
┃音長ゼロの音符が15個と通常音長の音符が1つという構成になることになります。 ┃
┃ ┃
┃音長ゼロの音符を15個以上記述した場合は古い順にノートオフされない音が出て ┃
┃ ┃
┃きます。また、従来の和音コマンドとの混在は可能であるため、状況状況に応じて ┃
┃ ┃
┃使い分けができます。また、この2種類の和音書式間のタイ/スラーも可能です。 ┃
┃ ┃
┃●FM音源/ADPCM音源 ┃
┃ ┃
┃ 基本的にモノフォニックですので ┃
┃ ┃
┃ c*0e*0g*0 ┃
┃ ┃
┃のような表記で和音を発音させることはできません。ただし、[VOICE_RESERVE]命令 ┃
┃ ┃
┃でそのトラック内で複数の発音を宣言した場合には、その範囲内で複数音の発音が ┃
┃ ┃
┃可能になります。その場合は、MIDIパートと同じように ┃
┃ ┃
┃ c*0&e*0&g4 ┃
┃ ┃
┃ v10c*0& v12e*0& v11g4 ┃
┃ ┃
┃のような記述で和音の発音が可能です。従来の和音コマンドとの混在もでき、この ┃
┃ ┃
┃2つの書式間のタイ/スラーも可能です。 ┃
┃ ┃
┃ ADPCM音源の場合はMPCM.Xが組み込まれている場合にのみ,以上の動作が保証されま┃
┃ ┃
┃す。組み込まれていない時は完全に単声仕様になります。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■音量/ベロシティ
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 音量
Vn
・n:0-16
音量の設定を行う。設定範囲は0≦n≦16。初期値は8。
数値が大きいほど音量が大きくなる。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
例
V11 cde
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 音量
@Vn
・n:0-127
音量の設定を細かく行う(絶対音量と呼ぶ)。設定範囲は0≦n≦127。
初期値はMIDI,ADPCMで64、FM音源では106。数値が大きいほど音量が大きくなる。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
例
@v100 c
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 相対音量
_n
 ̄n
・n:0-127
音量の相対指定を行う。~は音量増加を表し、_は音量減少を表す。設定範囲は
0≦n≦127で、演算の結果、アンダーフローを起こした場合は0へ、オバーフローを
起こした場合は127へ修正される。また計算は@Vnで表される絶対音量レベルで
行われる。
nを省略した場合は以前に設定したものが起用される。nの初期値は1。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
例
@v120 _10 c _ d ~ e (cは@120−10=@v110で、dは@v110−10=@v100で、
eは@v100+10=@v110で演奏される)
|:10 _10 c :| (段々と音量が下がりながらcが演奏される)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Vと@V ┃
┃ ┃
┃ ┃
┃ FM音源とADPCM(MPCM組み込み時)、MIDI音源では@VとVの対応関係が ┃
┃ ┃
┃異なります。これはFM音源の出力音量が指数関数的に増減するのに対してMIDI┃
┃ ┃
┃とADPCM音源では線形に増減するからです。以下に音源別にに@VとVの対応表┃
┃ ┃
┃を示します。 ┃
┃ ┃
┃ FM音源 ┃
┃ ┃
┃ Vn 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ┃
┃ @Vn 85 87 90 93 95 98 101 103 106 109 111 114 117 119 122 125 127 ┃
┃ ┃
┃ ┃
┃ ┃
┃ MIDI音源,ADPCM音源 ┃
┃ ┃
┃ Vn 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ┃
┃ @Vn 0 8 16 24 32 40 48 56 64 72 80 88 96 104 112 120 127 ┃
┃ ┃
┃ ┃
┃ 以上のことから相対ボリューム_n ~nの使用結果においても結果が異なります。 ┃
┃ ┃
┃例えば ┃
┃ ┃
┃ v8 _1 ┃
┃ ┃
┃とした場合FM音源パートでは結果が@V105(=106-1)に相当しますが、MIDIパー ┃
┃ ┃
┃トでは@V63(=64-1)になります。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] ベロシティ
@Un
Un
・n:0-127
ベロシティの設定を行う。ベロシティとは鍵盤を押す強さ、すなわち音量に相当する。
MIDI楽器によってはこれによって音のニュアンスを変えることが出来る。
設定範囲は0≦n≦127。数値が大きいほど音量が大きくなる。
FM音源パート,ADPCM音源パートでは@Vと同じに扱われる。
初期値はMIDIパートのみ127で、FM音源,ADPCM音源では@Vの初期値と同じ。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 相対ベロシティ
@U±n
U±n
・n:-127〜+127
ベロシティの相対指定を行う。設定範囲は−127≦n≦+127。演算によって
アンダーフローを起こした場合は0、オーバーフローを起こした場合は127に
修正される。
初期値は+1。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
例
@u127c @u-10d @u+5e
u127c u-10d u+5e
(c, d, eはそれぞれベロシティ127, 117, 122で発音する。)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 相対ベロシティ再設定
@U
以前設定した@U相対ベロシティを再び実行する。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
例
@u127 c @u-10 d @u e
(最後の@uもまた@u-10で機能するため e は@U107(=127-10-10)で発音する。)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] ベロシティ再設定
U
以前設定した@Uの値を再設定する。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
例
@u127 c u-10 d u e (c,d,eがそれぞれベロシティ127, 117, 127で発音する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ベロシティのはたらきについて ┃
┃ ┃
┃ FM音源パートとADPCM音源パートではベロシティと音量が全く同じ機能として ┃
┃ ┃
┃取り扱われます。例えば、FM音源パートで ┃
┃ ┃
┃ V8 @U106 @V106 ┃
┃ ┃
┃は同じ機能を果たします。 ┃
┃ ┃
┃ MIDI音源パートでは発音音量はベロシティと音量の2つの関係で決定されます。 ┃
┃ ┃
┃ベロシティと音量を、ともに最大値を設定した時、最大音量となります。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Uと@U ┃
┃ ┃
┃ ┃
┃ 機能的にはまったく同じですが、演奏時にリアルタイムに考慮されるか否かの ┃
┃ ┃
┃相違があります。 ┃
┃ ┃
┃ @u100|:4 @u+5 c :| ┃
┃ ┃
┃としたとき4回とも@u105でcが演奏されますが ┃
┃ ┃
┃ @u100|:4 u+5 c :| ┃
┃ ┃
┃としたときは@u105, @u110, @u115, @u120でそれぞれ演奏されます。 ┃
┃ ┃
┃ なお、管理は@uとuはまったく別です。ですから ┃
┃ ┃
┃ @u5 |:3 @u+50 c u-5:| d ┃
┃ ┃
┃としたとき@u55で3回cが演奏され@u50でdが演奏されます。 ┃
┃ ┃
┃ uのみの指定は、それまでに最後に設定した@uをもう1回設定するので ┃
┃ ┃
┃ @u110|:10 u-2 c :|u e ┃
┃ ┃
┃のように、ループで変化してしまったベロシティを元に戻すことが出来ます。 ┃
┃ ┃
┃この例では、直前のベロシティ値によらずeは@u110で演奏されます。 ┃
┃ ┃
┃ ただし ┃
┃ ┃
┃ @u110 c @u-2 d u e ┃
┃ ┃
┃のように、@U相対ベロシティを使用した場合は@Uの値自体が変化してしまうので、 ┃
┃ ┃
┃Uのみの設定は余り意味を持たなくなります。この例ならば e は d と同じく ┃
┃ ┃
┃@U108(110-2)で演奏されます。 ┃
┃ ┃
┃ このようにU,@Uを使い分ければ、複雑で高度なシーケンスをすることが出来ます。┃
┃ ┃
┃ @uは、ループなどの影響を受けない大局的な設定、uはループ等の影響を受ける ┃
┃ ┃
┃局所的な設定というわけです。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] ベロシティ・シーケンス
Zn1,…,n128
・ni:0〜127
ベロシティのばらつきを設定する。これをZMUSICでは
ベロシティー・シーケンスと呼ぶ。各値の設定範囲は0≦ni≦127。
これは最大128個の音符MML、和音MML、ポルタメントMMLの
ベロシティを先に設定するものである。
例えば
z127,99,80 cdefg
とするとcはベロシティ127で、dはベロシティ99で、eはベロシティ80で、
ここでfは再びベロシティ127で、gはベロシティ99で発音される。
値は最大128個まで記述することができ、1個のみ指定した時は@Uと全く同様に
機能する。数値の頭に±を記述すれば相対指定が可能である。
数値を全く書かずに'Z'のみ記述するとベロシティ・シーケンスのOFFと解釈される。
また、ベロシティコマンド@U/Uを使用してもベロシティ・シーケンスは解除される。
ベロシティ・シーケンスはループコマンドを無視して処理されるので
z99,100,127 |:100 c :| d e
とした場合cが100回ベロシティ99で、ループ外のdがベロシティ100で、
eがベロシティ127で演奏される。
FM音源では音量とベロシティが同義に扱われるので、設定された値に対応した
絶対音量で発音されることになる。
MIDIパートでは、楽器によってはベロシティの変化にともなって音色の
ニュアンスや音色を切り変えることが出来るのでそういった機能と合わせて
使えばかなり興味深い効果を得ることができる。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■キートランスポーズ/ディチューン/オートベンド
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] キートランスポーズ
Kn
・n:-127〜127
音程を半音単位で上下させる(キートランスポーズ)。nはn半音を意味し、
設定範囲は-127≦n≦127(±10オクターブ程度に相当)。
初期値は0、またニュートラル(中央値)も0である。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] ディチューン
@Kn
・n:-7680〜+7680
キートランスポーズを1/64半音単位で行う(いわゆるディチューン)。
設定可能範囲は-7680≦n≦7680(±10オクターブ程度に相当)。
初期値は0、またニュートラルも0である。
Kと@Kは全く管理が別である。例えば
@k10 cdefg
の頭に k1 をつけて
k1 @k10 cdefg
としたとすると1半音と10/64半音上にピッチシフトされてcdefgが演奏される。
いちいちMMLを書き直すこと無く各パートのMMLの頭にKコマンドを書くだけで
ディチューン等も考慮した転調が実現出来る。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] ディチューン
@Bn
・n:-8192〜+8191
ベンド値(ディチューン)を設定する。@Kと全く同じ機能をすると考えて良いが
1オクターブ≒8192で換算される点が違う。ユーザーがMIDI音源に
慣れている場合は@Bを、FM音源に慣れている場合は@Kを使うと良い。
設定範囲は−8192≦n≦8191で、初期値は0、ニュートラルも0である。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] オートベンド
@Kn1,n2,dly,bnd
・n1:-7680〜+7680 開始ディチューン値(64:半音)
・n2:-7680〜+7680 終端ディチューン値(64:半音)
・dly:0〜32767 遅延時間
・bnd:-32767〜+32767 (正)変化所用時間,(負)継続時間,(0)いずれも設定しない
@Kの後ろに2つ以上のパラメータを書くとオートベンドの設定となる。
オートベンドとはディチューンを一定時間内になめらかに変化指せる表現方法のこと。
n1はベンド開始ディチューン値
n2はベンド終了ディチューン値、
dlyはディレイ値でベンドの開始までの遅延時間に相当する。
bndは正値の場合は変化にかける時間を表す。負値の場合でベンドを完了してどの
くらいの時間、ベンド終了ディチューンを継続するかを設定する。0にするとディレイ
以後、発音する音符の音長のすべてを使ってベンド終了ディチューンまで変化する設定
となる。
dlyとbndは省略可能。省略時は以前の設定値が起用される。
初期値はn1,n2,dly,bndともに0である。
@Kおよび@Bにてディチューンを設定した場合はオートベンドは以降、強制的に
OFFとなる。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
例) (ベンドレンジ(*1)が1オクターブになっている場合)
@k0,-64,24 c1
発音後、24カウント後から音程が下がり始めキーオフまでに半音(64=1半音)下がる。
@k0,128,12,24 c*64
では発音後12カウント後音程が上がり始め、ここから24カウントで目的の音高に
たどり着き、28(64-12-24)カウント分、+128の音高を保ち続ける。
(*1)ベンドレンジはFMは1オクターブ(12半音)に固定、MIDIは後述の
@Gコマンドで変更可能である。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] オートベンド
@Bn1,n2,dly,bnd
・n1:-8192〜+8191 開始ディチューン値(半音≒683)
・n2:-8192〜+8191 終端ディチューン値(半音≒683)
・dly:0〜32767 遅延時間
・bnd:-32767〜+32767 (正)変化所用時間,(負)継続時間,(0)いずれも設定しない
@Bの後ろに2つ以上のパラメータを書くとオートベンドの設定となる。
パラメータn1,n2の変化レートが異なるだけで機能自体は @Kn1,n2,dly,bndと同じ。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] ポルタメント
(k1,k2)n,dly,prt
[k1,k2]n,dly,prt
・k1:c,d,e,f,g,a,b ポルタメント開始音階
・k2:c,d,e,f,g,a,b ポルタメント終了音階
・n:1〜32767 絶対音長
・dly:0〜32767 遅延時間
・prt:-32767〜+32767 (正)変化所用時間,(負)継続時間,(0)いずれも設定しない
ポルタメントを行う。
k1はポルタメント開始音階MML。
k2はポルタメント終了音階MML。
この他、以下のMMLを(),[]内に記述できる。
調号 # + - !
音長 1〜(符点も可)
絶対音長 *1〜*32767
オクターブコマンド O-1〜O9
オクターブスイッチ < >
和音コマンドとは違いオクターブスイッチは(〜),[〜]外へも影響する。
音長は(〜),[〜]の外に絶対音長で書くこともできる。外に書いた場合は'*'を付ける
付けないに関わらず絶対音長とみなされる。絶対音長指定ではnは0≦n≦32767まで
設定可能なので全音符以上の発音時間を設定することもできる。
音長は省略するとデフォルトの音長(Lまたは@Lコマンドで指定したもの)が起用
される。
dlyはディレイで絶対音長単位でポルタメントが始まるまでの遅延時間を設定する
ことができる。設定可能範囲は0≦dly≦32767。dlyは省略すると以前の設定値が起用
される。
prtは正値の場合はポルタメントにかける時間を表す。負値の場合はポルタメントを
完了してからどのくらいの時間、終了音高を継続させるかの設定となる。0にすると
ディレイ以後、発音する音符の音長のすべてを使って目的の音高までポルタメントを
実行する。
dlyとprtはともに省略可能。省略時は以前の設定値が起用される。
MIDI楽器において、後述の@Gコマンドでベンドレンジを12(1オクターブ)以外に
変更したとき、あるいはMIDI楽器のベンドレンジが12に設定されていない時の
動作は表記通りにならない。
例1
o4(g2<g)
o4[g2<g]
オクターブ4のgで発音し、2分音符分鳴り終えるまでにオクターブ5のgまで
なめらかに音程を変化させていく。コマンド終了後はデフォルトオクターブは
5になっていることに注意。
例2
(o3d*96,e),48
[o3d*96,e],48
オクターブ3のdで発音し、このピッチで48カウント分演奏し、それ以降
絶対音長96で消音するまでにオクターブ3のeまで音程をシフトしていく。
例3
(o3eo4d)48,24,-8
[o3eo4d]48,24,-8
オクターブ3のeで発音し、24カウント分、元の音高を持続し、
16カウント(=48-24-8)の時間内でオクターブ4のdまでポルタメントする。
そしてオクターブ4のdの音高を8カウント分保持して消音する。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 2つのポルタメントコマンド(〜),[〜]の相違点 ┃
┃ ┃
┃ ┃
┃ ZMUSIC Ver.3.0から新設された[〜]によるポルタメントはMIDIパートのみで ┃
┃ ┃
┃その違いが現れます。FM音源やADPCMパートではまったく同機能として働きます。 ┃
┃ ┃
┃ これに対してMIDIパートでは、ある音程から目的の音程へ変化させる場合、 ┃
┃ ┃
┃始まりの音程を基準にするか、目的の音程を基準にするかを選ぶことが出来ます。 ┃
┃ ┃
┃たとえば ┃
┃ ┃
┃ (c,e) ┃
┃ [c,e] ┃
┃ ┃
┃というようなドからミへのポルタメントを考えた場合をみてみます。 ┃
┃ ┃
┃ 前者(c,e)ではcを発音後、これの音程を徐々に上げていき、目的のeの音程に ┃
┃ ┃
┃達した時を処理を止めます。つまりeの音はcの音を3度上げた音なのです。これを ┃
┃ ┃
┃分解して表記すると(半音≒683とする) ┃
┃ ┃
┃ @b0c& .... @b2732c ┃
┃ ┃
┃のようになります。 ┃
┃ ┃
┃ これに対して後者[c,e]は、目的の音程eを3度下げたcの音程で発音し、 ┃
┃ ┃
┃音程を上げてe本来の音程に達すると処理を停止します。こちらは ┃
┃ ┃
┃分解して表記すると(半音≒683とする) ┃
┃ ┃
┃ @b-2732e& .... @b0e ┃
┃ ┃
┃のようになります。 ┃
┃ ┃
┃ これらになんの違いがあるかは楽器の性質に依存します。たとえばPCM系の ┃
┃ ┃
┃音源の場合は、サンプリングしたベースノートの音高付近がもっともリアルに ┃
┃ ┃
┃聴こえますのでポルタメント前後でもっとも長くならす音程がベースノートに ┃
┃ ┃
┃近くなるようにする、などの細かい工夫が行えます。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] ベンドレンジ変更
@Gn
・n:0-127
ベンドレンジの設定を行う。nの有効範囲はMIDI楽器によって異なる。
また、外部からベンドレンジを操作出来ないものや、プログラムチェンジ
(音色切り換え)時に初期化されてしまうものなどがあるので、手持ちの楽器の
マニュアルをよく読み、仕様を理解してからの使用をお勧めする。ベンドレンジ
を変更すればオートベンドコマンドを用いて1オクターブ以上のベンドを行うことも
できるが、ポルタメントの効果も変化してくるので注意すること。
初期値はn=12を設定しているが楽器側がベンドレンジを変更出来ないものであれば
不定である。
FM音源パートやADPCM音源パートでは常に12に固定である。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ オートベンドとポルタメント ┃
┃ ┃
┃ ┃
┃ オートベンドとポルタメントの具体例と両コマンドの対象デバイスにおける ┃
┃ ┃
┃効果の相違点について少し解説します。 ┃
┃ ┃
┃ (c+4<<c+),8 ┃
┃ ┃
┃はc+をディレイで指定した8カウント分演奏した後、4分音符−8カウントの時間内に┃
┃ ┃
┃2オクターブ上のc+まで上昇します。オクターブスイッチの影響で以降2オクターブ┃
┃ ┃
┃上になることに注意してください。 ┃
┃ ┃
┃ (g,e)24&e ┃
┃ ┃
┃は絶対カウント24の時間内にgからeへピッチダウンを行いキーオフせずeへ ┃
┃ ┃
┃つなぐことになります。 ┃
┃ ┃
┃ ここで注意が1つあります。以上2つの例はFM音源においてのみ有効です。 ┃
┃ ┃
┃ 1つ目が実現不可能なのは、MIDIでは楽器側のベンドレンジが1オクターブと┃
┃ ┃
┃想定して処理しているため1オクターブを超えたポルタメントは不可能だからです。┃
┃ ┃
┃ 内蔵FM音源は音程がリニアな構造をしているため発音可能範囲内であれば ┃
┃ ┃
┃任意の音程を出力可能ですがMIDIにおいてはポルタメントは(オートベンドも) ┃
┃ ┃
┃ベンダーホイールの上げ下げでピッチをコントロールしているため2つ目の例を ┃
┃ ┃
┃MIDIに対して行うとFMとは違った動作を示してしまいます。2つ目の例を ┃
┃ ┃
┃FMと同じ効果をMIDIで実現したい場合は ┃
┃ ┃
┃ (g,e)24&g ┃
┃ ┃
┃ということになります。つまりMIDIにおいてのタイはキーオフせず、 ┃
┃ ┃
┃ベンダー値を以前のまま保持する事を意味しているのです。同様に ┃
┃ ┃
┃ o4 (c<c)&c ┃
┃ ┃
┃はFM音源ではo4のcから1オクターブ上のo5のcへポルタメントを実行し ┃
┃ ┃
┃o5のcへ音をつなぐ事が出来ますがこれと同じ事をMIDIで実現するためには ┃
┃ ┃
┃ o4 (c<c)&>c ┃
┃ ┃
┃あるいは ┃
┃ ┃
┃ o4 (c<c)&o4c ┃
┃ ┃
┃としなければなりません。MIDIの場合は発音後どれくらいベンダーホイールを ┃
┃ ┃
┃動かしたかで音程をコントロールするのでタイの場合はポルタメントの開始音程を ┃
┃ ┃
┃書かなければならないのです。 ┃
┃ ┃
┃ このような相違点はオートベンドコマンドにも見られます。 ┃
┃ ┃
┃ @b0,683,0 c4 (683≒8192/12≒1半音) ┃
┃ ┃
┃ではFM音源ではc4がc+4へ向かって上昇しますがc+4を持続したい場合は ┃
┃ ┃
┃FMの場合は ┃
┃ ┃
┃ @b0,683,0 c4&c+4 ┃
┃ ┃
┃とすれば良いのですがMIDIの場合は ┃
┃ ┃
┃ @b0,683,0 c4&c4 ┃
┃ ┃
┃としなければならないわけです。 ┃
┃ ┃
┃ ところがMIDIパートも前述のタイモード設定命令@Jで@J1としてFM音源互換モード ┃
┃ ┃
┃に設定すればMIDIパートでもまったくFM音源と同じ感覚で使用することが出来ます。┃
┃ ┃
┃ ┃
┃ オートベンド、ホルタメント共にQコマンドの影響を受ける点にも注意して ┃
┃ ┃
┃ください。例えば ┃
┃ ┃
┃ q4 (b-<b-) ┃
┃ ┃
┃とした場合は1オクターブ上のb-に達する前にキーオフしてしまいます。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■パンポット
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] パンポット
Pn
・n:0〜3
パンポットの設定を行う。設定範囲は0≦n≦3。初期値は3。
0は出力停止、1は左、2は右、3は中央。
FM音源ではP0はミュートに相当するがMIDIではこれに対応する機能がないので
便宜上@V0 @U0を行う。通常はMIDIではP0は用いないこと。
例
P1 cde P2 fga P3 b (cdeが左から,fgaが右から,bが中央から演奏される)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] パンポット
@Pn
・n:0〜127
パンポットを多段階指定する。一応MIDI専用だがFM/ADPCMに
設定した場合は値に応じて3段階の左/中央/右に変換される。
設定範囲は0≦n≦127であるがMIDI楽器によっては無効となる場合がある
(M1,SY77など)ため各MIDI楽器のマニュアルでパンポットが可変かどうか
確認すること。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 相対パンポット
@P±n
・n:-127〜+127
パンポット(@P)を相対的に設定する。設定範囲は-127≦n≦+127で、演算の結果、
アンダーフローを起こした場合は0へ、オーバーフローを起こした場合は127へ
修正される。
例
@p64|:10 @p+5 c16 :| (音が中央からだんだん右へ鳴るようになっていく)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ パンポット ┃
┃ ┃
┃ ┃
┃ ローランドMT−32系(CM32L,CM32P,CM64L,CM500)の ┃
┃ ┃
┃パンポットは実はMIDI規格とは正反対の値で音場が切り換わります。 ┃
┃ ┃
┃よってP1,P2,P3はそれぞれMT32系においてはR,M,Lと音場が切り換わります。┃
┃ ┃
┃ ZMUSICはMIDI規格にしたがって左を@P0、中央を@P64、右を ┃
┃ ┃
┃@P127としています。 ┃
┃ ┃
┃ FM音源やその他のMIDI楽器と同じ音場を得るためにMT32系をご使用の ┃
┃ ┃
┃方は背面のアウトプットを左右入れ換えて接続することをお勧めします。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■テンポ
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] テンポ
Tn
・n:1〜32767
テンポを設定する。設定範囲は使用タイマーやマスタークロックの値により
変動する。
nは1分間の4分音符の数に相当する。
初期値は120。1つのトラックで指定すると全トラックに影響する。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 相対テンポ
T±n
・n:-32768〜32767
テンポを相対的に設定する。演算の結果有効範囲を超えてしまった場合は
設定可能範囲内に自動修正される。
1つのトラックで指定すると全トラックに影響する。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] タイマ設定
@Tn
・n:0〜16383
割り込み周期を割り込みタイマーへ直接設定する。機能的にはTコマンドと
同じだがパラメータnが割り込み周期である点が違う。通常の音楽制作では使用
しない。
以下に各タイマーとテンポの相関を表す。(マスタークロック=192の時)
タイマA=1024−(78125/テンポ)
タイマB=256−(78125/テンポ)/16
MIDIタイマ=30,000,000/(192*テンポ)
1つのトラックで指定すると全トラックに影響する。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 相対タイマ設定
@T±n
・n:-32768〜32767
タイマー値を相対的に設定する。@T同様通常の音楽制作には用いない。
演算の結果有効範囲を超えてしまった場合は設定可能範囲内に自動修正される。
1つのトラックで指定すると全トラックに影響する。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■音色/バンク切り換え
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 音色切り換え
@n 音色番号
・n:1〜32768
音色を音色番号nに設定する。初期値なし。
MIDIでは129以上の値を設定すると音色バンク切り換えのメッセージも同時に
送出される。
バンク上位値=((n >> 14).and.$7f)
バンク下位値=((n >> 7).and.$7f)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 音色切り換え
@n1,n2
・n1:0〜16383(255) バンク番号
・n2:1〜128 音色番号
音色を、バンクn1,音色番号n2に設定する。初期値なし。
FM音源、ADPCM音源パートのバンクは0-255が有効範囲。
MIDIでは音色バンク切り換えのメッセージも同時に送出される。
バンク上位値=((n1 >> 7).and.$7f)
バンク下位値=(n1.and.$7f)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 音色切り換え
@n1:n2,n3
・n1:0〜127 バンク上位
・n2:0〜127 バンク下位
・n3:1〜128 音色番号
音色を、バンクn1:n2,音色番号n3に設定する。初期値なし。
FM音源、ADPCM音源パートのバンクはn1*128+n2で与えられる。
MIDIでは音色バンク切り換えのメッセージをn1を上位バンク値として、
n2を下位バンク値として送出する。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] バンク切り換え
In1,n2
・n1:0〜127 バンク上位
・n2:0〜127 バンク下位
音色のバンク切り換えを行う。
KORGのWAVESTATION、ROLANDのGS音源などでは音色がバンク毎に分かれており、
音色切り換えはこの命令でバンクを指定してから行う。同一バンク内で切り換えを
行う場合は一度設定すれば以降設定する必要はない。
n1はバンク番号上位、n2はバンク番号下位を表す。パラメータは省略すると
強制的に0になる。
GS音源ではバンク切り換えパラメータの上位のみ有効としているので
In1
のみでバンク(GS音源ではバリエーションと呼んでいるが)n1へ切り換える
ことが出来る。
WAVESTATIONではバンク切り換えパラメータの下位のみ有効としているので
I0,n2
でバンクn2へ切り換えることが出来る。
例
i0 @128
i0,12 @11
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ FM音源,ADPCM音源パートのバンク ┃
┃ ┃
┃ FM音源パートの音色はリニアに1〜32768まで存在しこれらを直接任意の音色に ┃
┃ ┃
┃切り換えることができる。しかし、MIDIパートと同じように音色番号を1〜128 ┃
┃ ┃
┃までとし、これらが0〜255のバンクに分かれていると想定して取り扱うことも可能 ┃
┃ ┃
┃である。たとえば ┃
┃ ┃
┃ @221 ┃
┃ ┃
┃はユーザの好み次第で ┃
┃ ┃
┃ i0,1 @93 ┃
┃ ┃
┃とすることもできる。(0*16384+1*128+93=221) ┃
┃ ┃
┃ ADPCM音源パートの場合は後述の[PCM_MODE]の設定に寄って扱いが多少異なる。 ┃
┃ ┃
┃[PCM_MODE TIMBRE]の時はFM音源/MIDIパートと同じで0〜255のバンク、1〜128の ┃
┃ ┃
┃音色番号で管理することが出来ます。 ┃
┃ ┃
┃ 一方[PCM_MODE TONE]ではバンクの設定はバンクという概念はなく、音色番号 ┃
┃ ┃
┃1〜256でトーンセットを切り換えます。MMLでは@1〜256はもちろん、I0〜255でも ┃
┃ ┃
┃便宜上切り換えることが出来ます。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
■アフタータッチ・シーケンス
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] アフタータッチ・シーケンス
@Zn1,…,n8
・ni:0〜127
アフタータッチを音長の1/8時間単位で設定する。これをZMUSICでは
アフタータッチ・シーケンスと呼ぶ。発音後の音のニュアンスを細かく
変化させることができる。例えば
@z127,120,110,127,80,60,50,10
として絶対音長192の音長でキーオンしたとすると、キー音直後から24(=192/8)カウ
ント毎に、アフタータッチが127,120,110,...と変化していく。
MIDI楽器によっては発音後の鍵盤を押す強さ(即ちアフタータッチ)によって
音色ののニュアンス等を変えることができ、サンプラーなどでは全く別の音色を
発音させることも可能なので使用方法によってはかなり興味深い効果を得ることが
出来る。
FM音源やADPCM音源パートでこの機能を使用した場合は発音後の絶対音量を
設定値で変化させることができる。ソフトエンベロープなどを実現したい場合に
威力を発揮する。(もちろんMIDI楽器の設定でアフタータッチに対応する効果を
音量に設定しておけばFM音源パートなどと同じようにソフトエンベロープ的な
効果を得ることが出来る。)
パラメータは任意の位置で省略可能で、数値の頭に±を付けることによって
相対的な値の指定も可能である。例えば
@z127,,,10
@z,,,,120,,1
@z,,120,,-10,+5
といった記述が可能である。省略した部分は前の値を持続するということになり、
その間はアフタータッチの情報は送信されない。
相対指定時にオーバーフロー/アンダーフローを起こした値は有効範囲内の
最大値,最小値に修正される。
値を全て省略した場合はアフタータッチ・シーケンス解除と解釈される。
例
@z
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■ビブラート(ピッチ・モジュレーション)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] ビブラート・デプス
@Mn1,…,n8 ...(1)
または
@Mn ...(2)
・n,n1〜n8:-32768〜32767
ピッチ・モジュレーション(音程を細かく震わせる)の振幅設定を行う。
(1)1/8モード ピッチ・モジュレーション
発音後、音長の1/8時間単位で振幅(モジュレーション・デプス)を変化させることが
出来る。設定可能範囲はFM音源は-32768≦n1〜n8≦32767、MIDIのノーマル
モードは0≦n1〜n8≦127、拡張モード時は-768≦n1〜n8≦768(-8192≦n1〜n8≦8191)。
値は任意の位置で省略可能、8個まで記述でき、相対指定も可能で
例
@m60,,,50,127
@m,,,,127
@m,,120,-10,+5
といった記述が行える。
1/8モードを指定した場合は後述のディレイ・コマンドで設定したディレイ値は
無視される。
(2)ディレイ・モード ピッチ・モジュレーション
振幅(モジュレーション・デプス)を1つだけ設定する。振幅の設定範囲は
−32768≦n≦32767。
後述のディレイ・コマンドで設定したディレイの後nの深さで
ピッチ・モジュレーションを実行する。
初期値はいずれのモードにおいても0。また全ての値を省略した場合は
モジュレーション解除のスイッチとなる。
例
@m
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■ARCC(Assignable real time control change)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] ARCCコントロール設定
@Cn,r,m
・n:0〜127 コントロール番号
・r:0〜127 リセット値
・m:0〜127 波形基準値
任意のコントロール・チェンジnを選び、これを本命令で登録しておくと、後述の@A
コマンドにて、そのコントロール・チェンジで音源をリアルタイムにコントロールする
ことができる。これをZMUSICではアサイナブル・リアルタイム・コントロール・
チェンジ(Assignable realtime control change)と呼ぶ(以後ARCC)。
MIDIの場合はコントロール・チェンジ番号の有効値はMIDI楽器によって異なるので
各楽器のマニュアルのインプリメンテーション・チャートを参考のこと。
FM音源では独自の
$80=PANPOT (0-127) *1
$81=PMS (0-7)
$82=AMS (0-3)
$84=AMD (0-127)
$85=PMD (0-127)
$86=LFO SPEED (0-127) *2
$87=NOISE (0-63)
*1 パラメータ的には0-127で行われるが実際の効果は左、中央、右の
3段階にしかならない
*2 FM音源のレジスタには0-127の2倍の値(0-254)が書き込まれる
が選択可能となっている。なお()内の数値は各コントロールの有効範囲を表している。
ADPCMにおいてはコントロール番号はMIDIに準拠しているものの、現在では以下の
7=VOLUME 10=PANPOT 11=EXPRESSION
の3つのみしかサポートされていない。
rは、ARCCの実行を解除した時に登録したコントロール・チェンジnに対して
行うリセット値。省略時は0となる。
mは、後述の拡張ARCCモード使用時に使用可能となるプリセット波形や
ユーザー波形の基準値となる値(拡張MML[ARCCn.WAVEFORM]を参照)。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI][ADPCM] ARCCデプス
@An1,…,n8 ...(1)
または
@An ...(2)
・n,n1〜n8:-128〜127
(1)1/8モード ARCC
発音後音長の1/8時間単位で先述の@Cで登録したコントロール・チェンジへ値を
送信し音源を制御することが出来る。値の設定範囲は0≦n1〜n8≦127。
(拡張ARCCモード時には設定範囲は−127≦n1〜n8≦127)
値は任意の位置で省略可能、8個まで記述でき、相対指定も可能で
例
@a60,,,50,127
@a,,,,127
@a,,120,-10,+5
といった記述が出来る。
こちらのモードを指定した場合は後述のディレイ・コマンドで設定したディレイ値は
無視される。
(2)ディレイモード ARCC
ARCCの設定値を1つのみ設定する。設定範囲は0≦n≦127。
(拡張ARCCモード時には設定範囲は−127≦n≦127)
後述のディレイ・コマンドで設定したディレイの後、nの値で@C命令で登録した
コントロール・チェンジを実行する。
初期値はいずれのケースにおいても0。また全ての値を省略した場合は
ARCC解除のスイッチとなる。
例
@a
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■アンプリチュード・モジュレーション(トレモロ)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM] トレモロ操作対象オペレータ設定
@Cm
・m:%0000〜%1111
X680x0のFM音源は4つのオペレータ(発信器)によって構成されているが
その1〜4の4つのオペレータのうちどのオペレータに対してアンプリチュード・
モジュレーションの処理を施すかを設定できる。特殊な効果(例えばワウワウ効果)を
表現したい時など以外は特に設定する必要はない。
パラメータのmはビット構成を取っており
d3d2d1d0
□□□□■■■■
↑↑↑↑
|||オペレータ1
||オペレータ2
|オペレータ3
オペレータ4
ビット=1に対応するオペレータに対してモジュレーション処理を施す。
なお、このコマンドで設定した設定値は次回の音色切り換えまで有効である。
音色切り換え時にはその音色のキャリア・オペレータに対してモジュレーション処理を
施すような設定値が自動的に設定される。
本命令はFM音源に対しての知識を必要とする。
例
@c%1001 (オペレータ1と4にモジュレーション処理をする)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM] トレモロデプス
@An1,…,n8 ...(1)
または
@An ...(2)
・n,n1〜n8:-128〜127
アンプリチュード・モジュレーション(音量を細かく震わせる)の振幅設定を行う。
(1)1/8モード アンプリチュード・モジュレーション
発音後音長の1/8時間単位で振幅(モジュレーション・デプス)を変化させることが
出来る。値の設定範囲は−127≦n1〜n8≦127。値は任意の位置で省略可能、8個まで
記述でき、相対指定も可能で
例
@a60,,,50,127
@a,,,,127
@a,,120,-10,+5
といった記述が出来る。
こちらのモードを指定した場合は後述のディレイ・コマンドで設定したディレイ値は
無視される。
(2)ディレイモード アンプリチュード・モジュレーション
振幅を1つのみ設定する。設定範囲は−127≦n≦127。
後述のディレイ・コマンドで設定したディレイの後、nの振幅でモジュレーションを
開始する。
初期値はいずれのケースにおいても0。また全ての値を省略した場合は
アンプリチュード・モジュレーションの解除スイッチとなる。
例
@a
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■モジュレーション・サブ・パラメータ
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ディレイ
@Hn1,n2
・n1:0〜32767
・n2:0〜32767
FM音源のピッチ・モジュレーション、アンプリチュード・モジュレーション、
またはMIDIのピッチ・モジュレーション、ARCC、拡張ピッチ・モジュレーション、
拡張ARCCのディレイモード用のディレイを設定する。
n1はピッチ・モジュレーション用のディレイ。
n2はアンプリチュード・モジュレーション/ARCC用のディレイ。
値はどちらか一方の省略は可能。初期値は共に0。
例
@h24,10 (両方同時に設定)
@h,10 (アンプリチュード・モジュレーション/ARCC/拡張ARCCの
ディレイのみ設定する)
@h24 (ピッチ・モジュレーションのディレイのみ設定する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] スピード
@Sn1,n2
・n1:1〜32767
・n2:1〜32767
FM音源のピッチ・モジュレーション、アンプリチュード・モジュレーション
(またはMIDIの拡張ピッチ・モジュレーション、拡張ARCCモード時)の
モジュレーション・スピードを設定する。設定範囲は1≦n1,n2≦32767。
本命令はMIDIのノーマル・モジュレーション・モードでは全く
考慮されないもので、拡張モードの時のみ有効である。
実際の波形にどう影響するかは拡張MML[VIBRATO.WAVEFORM],[ARCCn.WAVEFORM]の項で
解説するが、値が小さいほど高速に、値が大きいほど低速に音が振動する。
値はどちらか一方の省略は可能。初期値は共に6。
例
@s24,10 (両方同時に設定)
@s,10 (アンプリチュード・モジュレーション/拡張ARCCのスピードのみ設定する)
@s24 (ピッチ・モジュレーションのスピードのみ設定する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] 波形タイプ選択
Sn1,n2
・n1:0〜4,8〜32767 (5〜7は未定義、使用不可)
・n2:0〜4,8〜32767 (5〜7は未定義、使用不可)
FM音源のピッチ・モジュレーション、アンプリチュード・モジュレーション
(またはMIDIの拡張ピッチ・モジュレーション、拡張ARCCモード時)の
モジュレーション波形をセレクトする。
n1がピッチ・モジュレーション用の波形、n2がアンプリチュード・モジュレーション用
(または拡張ARCC)の波形に対応する。
波形は波形番号0〜4がプリセット波形で、波形番号8〜32767がユーザー定義波形となる。
スピードや振幅パラメータの波形への影響については拡張MML[VIBRATO.WAVEFORM],
[ARCCn.WAVEFORM]の項で図解する。
プリセット波形
0:鋸歯波 1:矩形波 2:三角波 3:ワンショット鋸歯波 4:ランダム波
値はどちらか一方の省略は可能。初期値は共に2の三角波。
例
s1,1 (両方同時に設定)
s,2 (アンプリチュード・モジュレーション/拡張ARCCの波形のみ設定する)
s3 (ピッチ・モジュレーションの波形のみ設定する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 波形メモリの効能 ┃
┃ ┃
┃ ┃
┃ ZMUSICではユーザーが定義したユーザー波形(波形メモリ)を使ってピッチモジュレ┃
┃ ┃
┃ーション(以下PM)、アゴーギク、アンプリチュード・モジュレーション(以下AM)、 ┃
┃ ┃
┃ARCC、エンハンスド・ベロシティ・シーケンスを実行する事ができます。 ┃
┃ ┃
┃ ZMUSIC Ver.2.0では、波形メモリを使用した場合、振幅値は意味を持ちませんでし┃
┃ ┃
┃たがVer.3.0以降では、振幅値が有効となります。ピッチモジュレーション、アゴー ┃
┃ ┃
┃ギクでの原波形振幅値は256に相当し、効能値は ┃
┃ ┃
┃ 波形値×振幅÷256 ┃
┃ ┃
┃で求められます。また、アンプリチュード・モジュレーション、ARCC、エンハンスド┃
┃ ┃
┃ベロシティ・シーケンスでの原波形振幅値は32に相当し、効能値は ┃
┃ ┃
┃ 波形値×振幅÷32 ┃
┃ ┃
┃で求められます。よって、Ver.2.0で波形メモリを用いた演奏データをVer.3.0で ┃
┃ ┃
┃演奏させた場合は、やや演奏のニュアンスが異なってくる場合がありえます。万が一┃
┃ ┃
┃そう感じた場合はVer3.0を ┃
┃ ┃
┃ A>ZMSC3 -2 ┃
┃ ┃
┃ように'-2'オプションを付けて常駐させてから演奏させるとVer.2.0と同等の演奏が ┃
┃ ┃
┃得られます。 ┃
┃ ┃
┃ 以下に音源パート別にその効能を示します。 ┃
┃ ┃
┃ ┃
┃●FM音源/ADPCM音源パートのピッチ・モジュレーションで使う場合 ┃
┃ ┃
┃ 波形データは半音を64とした値で処理されます。各値がそのチャンネルの ┃
┃ ┃
┃ディチューンと加算されて、それがその瞬間のピッチとして決定されます。 ┃
┃ ┃
┃例えばディチューンが10の時に波形メモリのデータが0,5,−5の時、振幅が原波形 ┃
┃ ┃
┃指定(=256)だったとすると10+0=10, 10+5=15, 10−5=5がそれぞれその瞬間の ┃
┃ ┃
┃ピッチになります。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ (t1) @m256 @s6 s8 @h40 順位相で波形メモリ8番をFM・PMで実行 ┃
┃ (t1) @m-256 @s6 s8 @h40 逆位相で波形メモリ8番をFM・PMで実行 ┃
┃ ┃
┃ ┃
┃●FM音源/ADPCM音源パートのアンプリチュード・モジュレーション(ARCC)で使う場合┃
┃ ┃
┃ 波形データはそのチャンネルのボリューム値に加算され、その和がその瞬間の ┃
┃ ┃
┃音量として決定されます。音量の範囲は0〜127ですがこの範囲を越えた場合は ┃
┃ ┃
┃この範囲内に修正されます。例えば音量が@V125のとき波形メモリのデータが ┃
┃ ┃
┃0,5,−5の時、振幅が原波形指定(=32)だったとすると125+0=125,125+5=127(130)┃
┃ ┃
┃125−5=120がそれぞれその瞬間の音量になります。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ (t1) @a32 @s,6 s,8 @h,40 順位相で波形メモリ8番をFM・ARCCで実行 ┃
┃ (t1) @a-32 @s,6 s,8 @h,40 逆位相で波形メモリ8番をFM・ARCCで実行 ┃
┃ ┃
┃ ┃
┃●MIDIパートの拡張ピッチ・モジュレーションで使う場合 ┃
┃ ┃
┃ 拡張モジュレーション・モード時にはFM音源パートと同様な効果を得ることが ┃
┃ ┃
┃できます。拡張モジュレーション・モードには振幅を半音=64にするか半音≒683 ┃
┃ ┃
┃(ベンドレンジ=12の時)にするかの2つのモードがありますが波形データはこの影響┃
┃ ┃
┃を受けます。たとえば波形データが683で、振幅が原波形指定(=256)だったとすると ┃
┃ ┃
┃半音=64モード時には683/64≒10半音分 の変化量になりますが半音≒683モード時 ┃
┃ ┃
┃には1半音分の変化量となります。用途に合わせて使い分けて下さい。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ (t1) m1 @m256 @s6 s8 @h40 順位相で波形メモリ8番をMIDI・拡張PMで実行┃
┃ (t1) m1 @m-256 @s6 s8 @h40 逆位相で波形メモリ8番をMIDI・拡張PMで実行┃
┃ ┃
┃ ┃
┃●MIDIパートの拡張ARCCで使う場合 ┃
┃ ┃
┃ 各波形データはARCCニュートラル値(@Cの第3パラメータ)と加算して、 ┃
┃ ┃
┃その和がコントロールチェンジへ出力されます。応用次第で疑似ランダム・オート・┃
┃ ┃
┃パンポットやFM音源のような自由波形による音量モジュレーションなども実現でき┃
┃ ┃
┃ます。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ (t1) m,1 @a32 @s,6 s,8 @h,40 順位相で波形メモリ8番をMIDI・拡張ARCCで実行┃
┃ (t1) m,1 @a-32 @s,6 s,8 @h,40 逆位相で波形メモリ8番をMIDI・拡張ARCCで実行┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] モジュレーションホールド(同期設定)
Hn1,n2
・n1:0〜1
・n2:0〜1
FM音源のピッチ・モジュレーション、アンプリチュード・モジュレーション
(またはMIDIの拡張ピッチ・モジュレーション、拡張ARCCモード時)の
モジュレーション波形を、キーオンと同期して初期化させるか(同期モード)、
キーオンと同期して初期化せずに波形タイプの切り換えが起こるまで
継続(ホールド)させるか(非同期モード)を設定する。
n1がピッチ・モジュレーション用、n2がアンプリチュード・モジュレーション用
(または拡張ARCC)の同期/非同期設定パラメータとなる。
値はどちらか一方の省略は可能。初期値は共に0の同期モードが設定されている。
例
h1,1 (両方同時に設定)
h,1 (アンプリチュード・モジュレーション/拡張ARCCの波形を非同期モードに
設定する)
h1 (ピッチ・モジュレーションの波形を非同期モードに設定する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 特殊効果機能の併用について ┃
┃ ┃
┃ ┃
┃ ZMUSICではさまざまな特殊機能を同時に複数使うことが出来ますが、 ┃
┃ ┃
┃オートベンドとポルタメントは同種機能のため同時使用は出来ません。万一、オート┃
┃ ┃
┃ベンド時にポルタメントを実行した場合にはポルタメントのみ機能し、オートベンド┃
┃ ┃
┃は実行されません。 ┃
┃ ┃
┃ しかし、これ以外の組み合わせは可能です。たとえばポルタメントする音に対して┃
┃ ┃
┃ピッチ・モジュレーション、ARCC/アンプリチュード・モジュレーションをかけ┃
┃ ┃
┃てさらにアフタータッチ・シーケンスを実行する....といった複数の効果を1つの音┃
┃ ┃
┃に対して同時にかけることも可能です。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■モジュレーション・モード
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] モジュレーションモード
Mp,a
・p:0〜2
・a:0〜1
MIDIにはモジュレーションのモードが2つあり、ひとつは、ある指定された
タイミングにのみMIDI楽器へ制御メッセージを送信するモードで、これを
ノーマルモードと呼ぶ。
もうひとつはリアルタイムに絶えずMIDI楽器へ制御メッセージを送るモードで
こちらを拡張モードと呼ぶ。
ノーマルモードは楽器側のハードウェア的な処理によって特殊効果を実現するので
ZMUSIC側の負荷は少ない。一方、拡張モードは絶えず制御メッセージを送るため
多少の負荷はあるものの、FM音源部のようにMML Sコマンドでセレクトされる波形に
従って制御できるためノーマルモードよりも豊かな情緒表現が行える。
本命令はピッチ・モジュレーションとARCCをノーマルモードと拡張モードの
どちらで実行するかを決定するもの。
・p:0 ノーマルモードの設定。@Mで設定された値を指定のタイミングで
コントロール・チェンジ1番のピッチ・モジュレーションに書き込む。
@Mで指定できる振幅の範囲は0≦@M≦127。
・p:1 拡張モード1の設定。設定された振幅の効用をFM音源の@Mと同じにして、
(@Mで指定される振幅は半音=64ということになる)Sでセレクトした波形で
ピッチ・モジュレーションを実現する。
@Mで指定できる振幅の範囲は−768≦@M≦768。
・p:2 拡張モード2の設定。設定された振幅の値はそのまま14ビットのMIDIの
ピッチベンダー直値に該当する。この振幅で、Sコマンドでセレクトした波形で
ピッチ・モジュレーションを実現する(ベンドレンジ=12のとき、
半音≒683)。@Mで指定できる振幅の範囲は−8192≦@M≦8191。
・a:0 ノーマルモードの設定。@Aで設定した値を指定されたタイミングで書き込む。
・a:1 拡張モードの設定。@Aで−127〜127までの振幅を設定すると、
Sコマンドでセレクトした波形に従って生成される値を@Cで登録した
コントロールチェンジに対して出力出来る。
パラメータはどちらか一方の省略は可能。初期値はともに0(ノーマルモード)。
例
m2,1 (両方同時に設定)
m,1 (ARCCのモードのみ設定する)
m1 (ピッチ・モジュレーションのモードのみ設定する)
※注意
本命例を実行するとそれまで設定されていた振幅(@M及び@Aの値)は
無効となる。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■特殊機能スイッチング
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI] 特殊機能スイッチング
=n
・n:0〜%11111111111 (0〜2047)
ピッチ・モジュレーション、ARCC、オートベンド、アフタータッチ・シーケンス、
ベロシティ・シーケンスの各機能のスイッチングを行う。
nは各ビット毎に意味を持ち、対応は以下の通りである。
10 9 8 7 6 5 4 3 2 1 0
■■■ ■■■■■■■■
│││ │││││││└ピッチ・モジュレーション
│││ ││││││└─ARCC1
│││ │││││└──オート・ベンド
│││ ││││└───アフタータッチ・シーケンス
│││ │││└────ベロシティ・シーケンス
│││ ││└─────エンハンスド・ベロシティ・シーケンス
│││ │└──────アゴーギク
│││ └───────オートポルタメント
││└────────-ARCC2
│└─────────-ARCC3
└──────────-ARCC4
各ビットを0にするとオフ、1にするとオンとなる。
初期値は0(全機能OFF)である。
例
=%00011 (ピッチ・モジュレーション/ARCC0をON。それ以外をOFF)
※ARCC1〜3はMML @Aや@Cでは制御出来ない。ARCC1〜3の制御については後述。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ スイッチング・オフについて ┃
┃ ┃
┃ ┃
┃ 各特殊機能の制御MMLにパラメータなしや0を設定するとその機能は停止する ┃
┃ ┃
┃ことになります。例えば @M または @M0 でピッチ・モジュレーション機能を ┃
┃ ┃
┃解除することが出来ます。またはスイッチング・コマンド'='を使って制御すること┃
┃ ┃
┃も出来ます。この2つのスイッチングには微妙な違いがあるので注意して下さい。 ┃
┃ ┃
┃ まず、前者の場合では機能停止時になんらかの初期化措置を音源/楽器側に対して┃
┃ ┃
┃実行します。たとえばMIDIで@M0とした場合はモジュレーション処理を終了 ┃
┃ ┃
┃するともに楽器側へモジュレーションデプス0を送信しています。 ┃
┃ ┃
┃ 一方後者の場合は純粋にZMUSICがモジュレーション処理を中断するだけで ┃
┃ ┃
┃楽器に対しては、なんら特殊な処置をしません。ですから例えばMIDIで ┃
┃ ┃
┃ @h40 @m127 c1 @m d1 ┃
┃ @h40 @m127 c1 =0 d1 ┃
┃ ┃
┃とした場合を考えてみます。両者ともcがディレイ40クロックの後モジュレーション ┃
┃ ┃
┃を開始します。そして、次のdが前者と後者では食い違いが出てきます。 ┃
┃ ┃
┃ 前者ではdはモジュレーションなしで演奏されます。しかし、後者の方は ┃
┃ ┃
┃ZMUSICが「ディレイ40クロックのあとモジュレーションを開始」という処理を┃
┃ ┃
┃止めただけで前の音符のcのモジュレーションがそのまま残ることになりdは ┃
┃ ┃
┃モジュレーションがかかったまま演奏されてしまうのです。 ┃
┃ ┃
┃ こうしたことから'='によるスイッチングは前の状態を保存しつつ、特殊機能を ┃
┃ ┃
┃停止したいという時に用いるとよいでしょう。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■発音制御
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] ホールド(ダンパーペダル)
@Dn
・n:0〜1
ダンパーペダルの状態の設定を行う。設定範囲は0がダンパーペダルオフ、
1がダンパーペダルオンである。
ダンパーオンの状態では発音はされるがダンパーオフになるまでキーオフされない。
各楽器の最大同時発音数を超えた時には各楽器に処理が委ねられる。通常は
一番過去に発音された音がキーオフされそのボイスを用いて新たな音がキーオン
されることになる。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI]
@Rn ノートオフ省略モード
・n:0〜1
n=1とするとそのトラックは「ノートオフ省略モード」になり、以後ノートオフ
処理をしない。リズムマシンや一部の楽器のリズムキットは発音すればキーオフを送らずとも
よいものがあり(そういった楽器には「ノートオフモード」とか「ノーサスティン」
といったパラメータがあるはず)、こういった楽器やチャンネルに対して「ノートオフ
省略モード」にするとZMUSICのノートオフ処理を省略でき、割り込み演奏処理が幾分軽くなる。
ノートオフ省略モードではゲートタイムという概念がなくなり、MML Qコマンドの
影響を受けず、エンベロープを最後まで実行するため、音を細かく区切ったりなどという
ニュアンスは再現不可能になる。
n=0でノートオフ処理をする、n=1でノートオフ処理をしない。
省略時、及び初期状態は@R0、つまり「ノートオフをする」モードに設定されている。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 強制消音
`
強制的にキーオフを行う。そのトラック内において発音中の音を全て消音(ミュート)
する。ただし、ダンパーONやキーオフ無しモードに設定されている場合はノートオフ
できない。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ FM音源トラックの最大同時発声数 ┃
┃ ┃
┃ ┃
┃ 内蔵FM音源の和音とダンパーにおいての同時発声数は最大8音です。 ┃
┃ ┃
┃ただし、その割り当ては動的ではなく静的です。たとえばチャンネル1から4和音 ┃
┃ ┃
┃発音した場合、チャンネル1,2,3,4が使用されます。もし、他のトラックでこれらの ┃
┃ ┃
┃チャンネルを使用していた場合、競合が起こり正しく演奏されません。 ┃
┃ ┃
┃FM音源で1音以上の発音を行わせる場合には、この「チャンネルの競合」に注意して ┃
┃ ┃
┃ください。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■フェードイン/フェードアウト
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] フェードイン/フェードアウト
¥n
・n:-128〜127
フェードインまたは、フェードアウトを行う。
nは音量増減スピードを表し絶対値が大きいほど増減スピードが速くなる。
−128≦n≦−1 フェードイン
n=0 フェードイン/フェードアウトモード解除
1≦n≦127 フェードアウト
各トラックごとに設定可能なので、各トラック違った速度でフェードインや
フェードアウトが実行可能。
各音源の特性の相違から均等な音量バランスではフェードアウトされない
場合もある。
n=0のフェードイン/フェードアウト解除は処理そのものを中止するだけなので
元の演奏状態に戻したい場合は音量などの再設定を行う必要がある。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■繰り返し/反復記号
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 繰り返し
|:n … |r1 … :| |r2 … :| :| ...(1)
または
|:n … | … :| ...(2)
・n,r1,r2:1〜65535
(1)のケース
|:n〜:|で囲まれたMMLをn回演奏する(n省略時はn=2が自動設定される)。
|riを|:n〜:|の中に挿入すると、|riから:|までの演奏データを繰り返しri回目に
演奏させることが出来る。|:〜:|はメモリの有る限り何重まででも括ることが可能で
複雑なシーケンスも可能。
各値の設定可能範囲は1≦n, ri≦65535である。
例
|:3 a |:2 b :| c:| (abbc abbc abbcの様に演奏される)
|:2 a |1 b :| |2 c:| (ab ac の様に演奏される)
(2)のケース
|riのriを省略した|を|:n〜:|の中に挿入すると|以降に書かれた演奏データは
最後の繰り返し時には演奏はしないといった特殊例になる。
例
|:5 a | b :| (ab ab ab ab aの様に演奏される)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 多重ループ構造について ┃
┃ ┃
┃ ┃
┃ ZMUSICでは多重の繰り返し構造が設定可能ですが、必ずネスト構造に ┃
┃ ┃
┃なっていなければ希望通りの繰り返しを得ることが出来ません。 ┃
┃ ┃
┃例えば ┃
┃ ┃
┃ |: a |: b |1 c :||2 d e :| ┃
┃ ┃
┃という記述では正常に演奏することが出来ません。 ┃
┃ ┃
┃これは ┃
┃ ┃
┃ |: a |: b |1 c :||2 d e :| :| ┃
┃ ┃
┃としなくてはなりません。 ┃
┃ ┃
┃ 多重ループを使用する際は|:に対応した:|が必ず必要ということなのです。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 反復記号
[〜]コマンド
[DO] 〜 [LOOP] 囲まれた間を半永久的にループ演奏する。
[D.C.] 始めに飛ぶ(1回のみ有効)。
[D.S.] [SEGNO]または[$]へ飛ぶ(1回のみ有効)。
[SEGNO](または[$])
[TOCODA](または[*]) [CODA]へ飛ぶ(1回以上有効)。
[CODA]
[FINE](または[^]) [D.C.],[D.S.]を実行した後にここで演奏終了する。
この他に演奏データ作成を支援するコマンドがある。
これらのコマンドは共通コマンド(D1)の時のみ有効となる。
(D0)のときは無視される。(MEASURE4 (Dn)コマンド参照)
[!] 次の[!]までジャンプする。ジャンプ後の音源やZMUSICの
内部パラメータはそこまで通常に演奏を行った時と同じに
なっている。[!]が遇数個設定されなかった場合は、正常に
動作しない。
[@] 次の[@]までジャンプする。ジャンプ後の音源やZMUSICの
内部パラメータはそこまで通常に演奏を行った時と同じに
なっている。ほぼ[!]と同機能だが、あるひとつのトラックで
設定すると他のトラックも同時にジャンプを開始する点が違う。
[@]が遇数個設定されなかった場合は、正常に動作しない。
[end] 演奏を中断する。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ [!]/[@]の動作 ┃
┃ ┃
┃ ┃
┃ [!]/[@]の動作手順を以下に示します。 ┃
┃ ┃
┃ 1. 音階/和音/ポルタメント以外の「発音しない」コマンドを実行 ┃
┃ 2. [!]/[@]を見付けるまで1. を繰り返す ┃
┃ 3. [!]/[@]を発見 ┃
┃ 4. 通常演奏へ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■MIDI楽器制御命令
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] MIDI楽器タイプ登録命令
@In1,n2,n3
・n1:0〜127
・n2:0〜127
・n3:0〜127
ZMUSICにそのトラックを演奏する楽器のメーカーID、デバイスID、
モデルIDを設定する(所有しているMIDI楽器の各値にいては楽器の
マニュアルを参照)。これは特に設定しなくても通常のコマンドの動作には
全く影響しない。ただし、MMLの
X
@E
に関しては楽器個別の動作をするため、これらのコマンドを使用する前には必ず
設定しなければならない。
n1=メーカーID(例:ROLAND=$41, KORG=$42, YAMAHA=$43)
n2=デバイスID(各ユーザーが楽器に設定した値。特に設定した覚えのない
場合はその楽器のデフォルトのデバイスIDを設定する)
n3=モデルID(例:MT32=$16, SC55=$42 or $45)
初期値なし。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] MIDIデータ送信
@Xn1,…,xi
・xi:0〜255
MIDIデータの送信を行う。メーカーや楽器の種類には無関係でチェックサム等も
発信しない。
データはいくつでも記述可能。各値の設定範囲は0≦xi≦255であるが、256以上の値を
設定した場合は7ビットずつに分割されて送信される。(8ビットでない点に注意)
(例:8192→$00,40の様に一般的なMIDI慣例に従い、下位、上位の順に送信される)
楽器のメモリーを書き換える場合もあるので各自の責任のもとで使用すること。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] ローランド・エクスクルーシブ送信
Xn1,…,ni
・ni:0〜127
ローランド系の楽器にエクスクルーシブ・メッセージ送信を行う。
@IコマンドでメーカーIDにローランドを設定しておくことが前提。
データの転送方式は「ワン・ウェイ・コミュニケーションのデータセット」
(コマンドID=$12)。
データはいくつでも記述可能。各値の設定範囲は0≦ni≦127であるが、128以上の値を
設定した場合は7ビットずつに分割されて送信される。
(例:8192→$00,40の様に一般的なMIDI慣例に従い、下位、上位の順に送信される)
ローランドエクスクルーシブに不可欠なチェックサム値は自動的に送信される。
本命例はリバーブパラメータの書き換えや音色のパラメータ単位の書き換えを
行うのに有効だが、楽器のメモリーを直接操作するものなので、各自の責任のもとで
使用すること。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] 汎用エフェクト設定
@Er,c,d
・r:0-127 (GS音源系ではリバーブ)
・c:0-127 (GS音源系ではコーラス)
・d:0-127 (GS音源系ではディレイ)
MIDI楽器のエフェクトを制御する。コントロールチェンジの
エフェクト1(GSではREVERB)へrを、エフェクト3(GSではCHORUS)へcを、
エフェクト4(GSではDELAY)へdを出力する。
ただし、楽器側がこれらのエフェクト制御に対応していない場合は、無意味。
パラメータは任意のものを省略できる。パラメータの有効範囲は0≦r,c,d≦127。
初期値は不定。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] MT32エフェクト設定
@En1,n2
・n1:1〜8
・n2:0〜1
@IコマンドにてIDをローランドMT32に設定してある事が前提。
パートn1のエフェクトのスイッチを設定する。n1はパートナンバーを表し
設定範囲は1≦n1≦8。n2はスイッチを表しn2=0がOFF、1がONに相当する。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] NRPN設定
@Ya1,a2,d1,d2
・a1:0〜127
・a2:0〜127
・d1:0〜127
・d2:0〜127
MIDI楽器のNRPNを設定する。
MIDI楽器には、MIDI規格には定められていない機能レジスタを持つことが
許されており、このコマンドはそのレジスタへの設定を行う。
a1,a2はそれぞれNRPNのレジスタ番号(アドレス)上位下位を表し、d1,d2はそれぞれ
データの上位下位を表す。設定範囲は全て0〜127でd1,d2のみ省略可能。
SC55では音色パラメータの設定をここで行うことが出来る
(SC55マニュアルp75参照,SC88VLマニュアルp72参照)。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■ADPCM制御命令
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[ADPCM] 再生周波数設定
@Fn
・n:0〜6
内蔵ADPCM音源の再生周波数を変更する。設定範囲は0≦n≦6で、各値は
n= 0: 3.9kHz
1: 5.2kHz
2: 7.8kHz
3:10.4kHz
4:15.6kHz
5:20.8kHz *1
6:31.2kHz *1
に対応する。初期値は4で値省略時は4に自動設定される。
*1の周波数はADPCMチップに対して改造を行ったX680x0に対してのみ有効。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■FM音源レジスタ設定
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM] FM音源レジスタ設定
Ya,d
・a:0-255
・d:0-255
FM音源のレジスタaへ値dの書き込みを行う。ADPCM音源部で使用した場合も
FM音源のレジスタへの書き込みが行なわれる。使用にはFM音源に関しての
知識と十分な理解が必要。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■ノイズ発生
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM] FM音源ノイズの設定
@On
・n:0-31
FM音源のチャンネル8のオペレータ4(スロット32)からノイズを発生する。
nとノイズの周波数とは
n=4000/(32×ノイズ周波数[kHz])
の関係があり、設定範囲は0≦n≦31。値を省略した場合はノイズモード解除とみなす。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■コントロール・チェンジ
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] コントロールチェンジ設定
Ya,d
・a:0-127
・d:0-127
コントロールチェンジa番に値dを書き込む。パラメータa,dの設定範囲は
共に0≦a,d≦127。コントロールチェンジについての詳細は各MIDI楽器の
マニュアルのインプリメンテーション・チャートを参照。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■演奏制御
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 同期待ち
W
他のトラックから同期信号が来るまで演奏処理を一時中断する。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 同期信号送信
Wn
・n:1〜65534
同期待ちしているトラックに対して同期信号を送る。設定範囲は1≦n≦65534。
同期信号を送られたトラックは直ちに演奏を再開する。
例
(t1) @1 v15 o4 q8 cdef w2 ←トラック2へ同期送信
(t2) w @1 v15 o4 q8 gab<c
↑どこからか同期信号が来るまで演奏を中断。
この例では結果的にはcdefgab<cが演奏される。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 演奏強制再開
Jn
・n:1〜65535
トラックnを強制的に初めから演奏開始にする。演奏が終了していても、演奏中で
あっても演奏開始を受けたトラックは最初から演奏を始める。
設定範囲は1≦n≦65535。
例
(t1) @1 v15 o4 q8 j2r2j2
(t2) @1 v15 o4 q8 l8cdef
この例では結果的にはcdef cdefが演奏される。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■コメント
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] コメント
/str
・str:文字列
コメントを与える。/以降その行の改行までをコメントとみなしコンパイル時には
無視される。またコメントはコンパイル後のZMDには埋め込まれない。
例
/This is a pen.
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■特権命令
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] ZMD埋め込み
;n
・n:0-255
直接ZMDコードnを埋め込む。使用にはZMDの十分な理解を必要とする。
使用方法によっては最悪、暴走してしまう。設定範囲は0≦n≦255。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] ワーク直接書き換え
?a,d
・a:-2147483648〜2147483647
・d:0〜4294967296 または -2147483648〜2147483647。
そのトラックの演奏ワークのa番に値dを書き込む。dは数値の頭に±を付けて
相対値の設定も可能。
使用にはZMUSICのワークエリアについての十分な理解を必要とする。
使用方法によっては最悪、暴走してしまうので注意。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ OPMDRV.Xとの互換性について ┃
┃ ┃
┃ ┃
┃ ZMUSICシステムは初代のOPMDRV.Xと互換性がありますが以下の点に┃
┃ ┃
┃注意して下さい(OPMDRV3.Xとは互換性はありません)。 ┃
┃ ┃
┃1. レジスタ番号48〜55(KF:キーフラクション)を操作するYコマンドは処理の ┃
┃ ┃
┃都合上、MML @K相当に変換してしまうため、そのトラックにアサインされた ┃
┃ ┃
┃チャンネル以外のキーフラクションを操作していた場合は動作がOPMDRV.Xとは異なっ┃
┃ ┃
┃てきます。 ┃
┃ ┃
┃2. OPMDRV.Xは、'm_play()'や'm_cont()','m_stop()'などの演奏制御命令┃
┃ ┃
┃における操作対象パートをチャンネル番号で指定するような仕様でした。 ┃
┃ ┃
┃ZMUSICではトラック番号で指定するように変更されています。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
5.3. 拡張MML
ここではZMUSIC Ver.3.0になって新たに追加されたMML群について解説します。
Ver.3.0になって新たに追加されたMMLは
[〜]
で囲まれた中に英単語列を入れる形態を取っています。テキスト音楽ソースの
可読性を高めることが狙いでこうなりました。そのためほとんどの基本MMLコマンドが
この形態にも存在します。音楽ソース(ZMS)の可読性向上を図るならば、なるべく
この形式を利用するようにしてください。
なお、Ver.2.0以前から存在した[〜]形態のコマンド([DO],[LOOP]など)については
5.2.節で解説してありますのでそちらを参照してください。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■音色
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 音色切り換え
[TIMBRE n]
[PROGRAM n]
・n:1〜32768
音色を音色番号nに設定する。初期値なし。
基本MML @とほぼ同等の機能(相違点に付いては囲み参照)。
MIDIでは129以上の値を設定すると音色バンク切り換えのメッセージも同時に
送出される。
バンク上位値=((n >> 14).and.$7f)
バンク下位値=((n >> 7).and.$7f)
例
[TIMBRE 25] (音色番号25を設定)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 音色切り換え
[TIMBRE n1,n2]
[PROGRAM n1,n2]
・n1:0〜16383 (FM音源ADPCM音源パートでは0〜255)
・n2:1〜128
音色を、バンクn1,音色番号n2に設定する。初期値なし。
基本MML @とほぼ同等の機能(相違点に付いては囲み参照)。
FM音源、ADPCM音源パートのバンクは0-255が有効範囲。
MIDIでは音色バンク切り換えのメッセージも同時に送出される。
バンク上位値=((n1 >> 7).and.$7f)
バンク下位値=(n1.and.$7f)
例
[TIMBRE 4,25] (バンク4の音色番号25を設定)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 音色切り換え
[TIMBRE n1:n2,n3]
[PROGRAM n1:n2,n3]
・n1:0〜127 バンク上位
・n2:0〜127 バンク下位
・n3:1〜128 音色番号
音色を、バンクn1:n2,音色番号n3に設定する。初期値なし。
基本MML @とほぼ同等の機能(相違点に付いては囲み参照)。
FM音源、ADPCM音源パートのバンクはn1*128+n2で与えられる。
MIDIでは音色バンク切り換えのメッセージをn1を上位バンク値として、
n2を下位バンク値として送出する。
例
[TIMBRE 4:4,25] (バンク4:4の音色番号25を設定)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 基本MML @と拡張MML [TIMBRE]の相違点について ┃
┃ ┃
┃ MIDIパートおよびADPCMパートにおいては両者間に相違点はまったく無いがFM音源 ┃
┃ ┃
┃パートにおいては微妙な違いがある。基本MML @による音色切り換えでは音色パラメ ┃
┃ ┃
┃ータのハードウェアLFO、パンポットまでも音色パラメータとして更新してしまうが ┃
┃ ┃
┃[TIMBRE]ではこれら2のパラメータは以前の状態を保持し、音色の本質的なパラメー ┃
┃ ┃
┃タのみを切り換える。 ┃
┃ ┃
┃ たとえば ┃
┃ ┃
┃/ AR DR SR RR SL OL KS ML D1 D2 AM SQU ┃
┃(@1 31 0 0 15 0 25 0 2 0 0 0 ┃
┃ 31 29 0 15 0 35 0 3 0 0 0 ┃
┃ 31 29 0 15 0 35 0 5 0 0 0 ┃
┃ 31 29 0 15 0 0 0 1 0 0 0 ┃
┃/ AL FB OM PAN ┃
┃ 5 7,15, 3) ┃
┃.Assign tr1,FM1 ┃
┃(t1)p1 @1 c ┃
┃(p) ┃
┃ ┃
┃とした場合はcは、p1(左)ではなく@1により音色パラメータのPAN=3が設定された ┃
┃ ┃
┃関係でp3(中央)で演奏される。これに対して ┃
┃ ┃
┃/ AR DR SR RR SL OL KS ML D1 D2 AM SQU ┃
┃(@1 31 0 0 15 0 25 0 2 0 0 0 ┃
┃ 31 29 0 15 0 35 0 3 0 0 0 ┃
┃ 31 29 0 15 0 35 0 5 0 0 0 ┃
┃ 31 29 0 15 0 0 0 1 0 0 0 ┃
┃/ AL FB OM PAN ┃
┃ 5 7,15, 3) ┃
┃.Assign tr1,FM1 ┃
┃(t1)p1 [timbre 1] c ┃
┃(p) ┃
┃ ┃
┃とした場合はcは、[TIMBRE 1]が実行されてもパンポットのパラメータは更新され ┃
┃ ┃
┃ないので、これ以前の設定p1(左)で演奏される。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] バンク切り換え
[TIMBRE_BANK n1,n2]
[PROGRAM_BANK n1,n2]
・n1:0〜127 バンク上位
・n2:0〜127 バンク下位
音色のバンク切り換えを行う。基本MML Iと同等の機能。
n1はバンク番号上位、n2はバンク番号下位を表す。パラメータは省略すると
強制的に0になる。
GS音源ではバンク切り換えパラメータの上位のみ有効としているので
[TIMBRE_BANK n1]
のみでバンク(GS音源ではバリエーションと呼んでいるが)n1へ切り換える
ことが出来る。
WAVESTATIONではバンク切り換えパラメータの下位のみ有効としているので
[TIMBRE_BANK 0,n2]
でバンクn2へ切り換えることが出来る。
例
[TIMBRE_BANK 0] @128 (バンク0の音色番号128に設定)
[TIMBRE_BANK 0,12] @11 (バンク0,12の音色番号12に設定)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 音色振り分け
[TIMBRE_SPLIT sw b1,t1,m1,n1, b2,t2,m2,n2, ... b8,t8,m8,n8]
[PROGRAM_SPLIT sw b1,t1,m1,n1, b2,t2,m2,n2, ... b8,t8,m8,n8]
・sw:OFF,ON
・b1〜b8:0-16383 (あるいは00:00〜127:127)
・t1〜t8:1-32768
・m1〜m8:0-127,128 または O-1C〜O9G,C-1〜G9
・n1〜n8:0-127,128 または O-1C〜O9G,C-1〜G9
発音する音高に応じて、音色を自動的に切り換える機能TIMBRE SPLITの設定を行う。
ノート番号0〜127(O-1C〜O9G)までを最大8つのブロックに分割し、1つのブロック毎に
別々の音色を対応づけることができる。実際の演奏時には、発音する音符のノート番号
が特定のブロックに属する場合は、その対応付けられた音色に切り換えてから発音を
行う。
・sw:スイッチ
TIMBRE SPLIT機能の制御を行う。sw=OFFで機能解除、sw=ONで機能有効に設定する。
省略して、これ以降のパラメータ(b1〜b8,t1〜t8,m1〜m8,n1〜n8)を記述した
場合はONが指定されたとみなす。また、OFFを指定した場合には以降のパラメータを
記述する必要はない。なお、swには数値は与えられない点に注意。
・b1〜b8:バンク番号
切り換える音色のバンク番号を設定する。設定範囲は0≦b1〜b8≦16383。
また、mm:nnのような表記で指定することも可能でこのときはmmがBANK MSB,
nnがBANK LSBに対応し、設定範囲は0≦mm≦127,0≦nn≦127。
・t1〜t8:音色番号
切り換える音色番号を設定する。設定範囲はFM音源,ADPCMパートでは1≦t1〜t8≦32768。
MIDIパートでは1≦t1〜t8≦128。
・m1〜m8:範囲開始ノート番号
分割ブロックの開始ノート番号を設定する。設定範囲は0≦m1〜m8≦127。
MMLを使ってO-1C〜O9G、C-1〜G9といった指定も可能。
・n1〜n8:範囲終端ノート番号
分割ブロックの終端ノート番号を設定する。設定範囲は0≦m1〜m8≦127。
MMLを使ってO-1C〜O9G、C-1〜G9といった指定も可能。
例
[TIMBRE_SPLIT ON,0,32,o4c,o5c, 8,32,o2c,o3b ]
O4C〜O5Cの音符はバンク0,音色番号32で
O2C〜O3Bの音符はバンク8,音色番号32で
演奏する。その他の音域の音符に関してはそれまでに設定されている
音色で演奏する。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 音色振り分けスイッチ
[TIMBRE_SPLIT.SWITCH sw]
[PROGRAM_SPLIT.SWITCH sw]
・sw:0,1 または ON,OFF
TIMBRE SPLIT機能の制御を行う。sw=0で機能解除、sw=1で機能有効。
[TIMBRE_SPLIT]のswと同様に文字パラメータを与えることもできる。この場合は
sw=OFFで機能解除、sw=ONで機能有効となる。
例
[TIMBRE_SPLIT.SWITCH off] (TIMBRE_SPLITを機能解除する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■キートランスポーズ/ディチューン/オートベンド
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] オートベンド
[BEND src,dst,dly,hold time(or bend time)]
dst..........._
/| |
/ hold time
src..._/bend time
| |← →|
dly
・src:-16384〜+16383
・dst:-16384〜+16383
・dly:0〜32767
・hold time:-32768〜0 または bend time:1〜32767
オートベンドの設定を行う。この設定以降に発音する音はこの設定の音程変化に
従う。
まず、絶対音長dlyの間、ピッチsrcを持続し、目的のピッチdstに向けて音程を
変化させていく。変化時間はhold time/bend timeにて行う。値を負にした場合は
hold timeの設定となり、その絶対値の絶対音長分目的のピッチdstを持続するような
音程変化を行う。逆に、正にした場合はbend timeの設定となり、その値の絶対音長の
間に音程変化を行う。
機能的には基本MMLである@Bと同等のもので、1オクターブの変化量を8192として
いる。ただし、MIDIパートでのパラメータ有効範囲は -8192≦src,dst≦8191。
例
[BEND -65,765,24,48 ]
(ピッチ-65から765までの音程変化を行う。ピッチ-65を絶対音長24持続し、
ピッチ765までの音程変化を絶対音長48内で行う。)
[BEND 0,683,24,-48 ] c*192
(ピッチ0から683までの音程変化を行う。ピッチ0を絶対音長24持続してから、
ピッチ683までの音程変化を行い始める。そしてピッチ683の音程を絶対音長48
持続する。この例では音程変化にかける時間は絶対音長120(=192-24-48)になる。)
設定を解除するには
[BEND OFF]
とするか後述の[BEND.SWITCH]コマンドを利用する。解除した場合も変化開始ピッチsrc
はそのまま設定されているのでオートベンドを解除しつつピッチも変更したい場合は
[BEND 0]
のように変化開始ピッチのみを設定し直す。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] オートベンドのスイッチ
[BEND.SWITCH sw]
・sw:0,1 または OFF,ON
オートベンドの動作のON,OFFを行う。swは0がOFF,1がONに対応する。
また、文字列 ON,OFFを直接与えることもできる。
例
[BEND.SWITCH 0] [BEND.SWITCH OFF] (スイッチオフ)
[BEND.SWITCH 1] [BEND.SWITCH ON] (スイッチオン)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] ベンドレンジ設定
[BEND.RANGE n]
・n:0-127
MIDI楽器に対してベンドの変化量領域を設定する。MIDIでは14ビット(-8192〜8191)
のピッチベンドの変化を与えることができるが、この変化 -8192〜0, 0〜8191 が
実際にどのような音程変化をもたらすかを設定できる。基本コマンドの@Gに同等の
もの。初期値は12(1オクターブ)
例
[BEND.RANGE 12]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ピッチ指定(ディチューン)
[PITCH n]
・n:-8192〜+8191
ピッチベンダーホイールの値を設定する。機能的には基本MMLである@Bと同等のもので、
1オクターブの変化量を8192としている。ただし、MIDIパートでのパラメータ有効範囲は
-8192≦src,dst≦8191。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] 相対ピッチ指定(ディチューン)
[@PITCH n]
・n:-8192〜+8191
ピッチベンダーホイルの値設定を相対指定で行う。機能的には基本MMLである@Bと
同等のもので、1オクターブの変化量を8192としている。ただし、MIDIパートでの
パラメータ有効範囲は -8192≦src,dst≦8191。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■ポルタメント
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ポルタメント
[PUSH_PORTAMENT src,dest,step,gate,velo,dly,hold time(or port time)]
[PULL_PORTAMENT src,dest,step,gate,velo,dly,hold time(or port time)]
[PORTAMENT src,dest,step,gate,velo,dly,hold time(or port time)]
dst..........._
/| |
/ hold time
src..._/bend time
| |← →|
dly
・src:o-1c〜o9g
・dst:o-1c〜o9g
・step:0-32767
・gate:0-32767
・velo:0-127 (相対指定-63〜+63も可能)
・dly:0-32767
・hold time:-32768〜0 または port.time:1〜32767
ポルタメントを行う。基本MMLの(〜)によるポルタメントほぼ同等の機能。
・src:開始キー
ポルタメント開始ノート。オクターブ-1のcからオクターブ9のgまでのノートを
指定することができる。
・dest:終端キー
ポルタメント終了ノート。オクターブ-1のcからオクターブ9のgまでのノートを
指定することができる。
・step:ステップタイム
ポルタメント音符の音長を指定する。値は絶対音長指定で行い、その有効範囲は
0-32767。
・gate:ゲートタイム
ポルタメント音符のゲートタイムを指定する。値は絶対音長指定で行い、その
有効範囲は0-32767。
・velo:ベロシティ
ポルタメント音符の発音ベロシティを設定する。値の有効範囲は0-127で、
数値前に±をつけて指定すれば相対指定となる。ただし、この時の有効範囲は
-63〜+63となる。
・ dly:ディレイ(遅延時間)
発音後、ポルタメントを開始するまでの遅延時間を設定する。値は絶対音長指定で
行い、その有効範囲は0-32767。
・hold time or port.time:持続時間または変化時間
負値を与えた場合は、ポルタメントにおける音程変化を行ったあと最終的に、
どのくらいの時間これを持続するかの設定を行う(hold time)。また正値を与えた
場合はポルタメントにおける音程変化を絶対音長でどれくらいかけるかの設定を
行う(port.time)。
それぞれ有効範囲はhold time:-32768〜0,port.time:1〜32767。
なお、[PUSH_PORTAMENT]と[PORTAMENT]はまったく同一機能。
また、[PUSH_PORTAMENT]と[PULL_PORTAMENT]の違いは基本MMLで言うところの
(〜)のポルタメントと[〜]のポルタメントの違いがある。なお、[PUSH_PORTAMENT]が
基本MML(〜)に相当し、[PULL_PORTAMENT]が基本MML[〜]によるポルタメントに
対応する。
例
[PORTAMENT o4c,o4e,48,46,120,8,24]
(オクターブ4のcからeに向けてポルタメントを開始する。ポルタメントノートは
ステップタイムは48、ゲートタイムは46、ベロシティ120で発音する。発音後、
絶対音長8の遅延時間の後、絶対音長24かけて目的のノートへポルタメントする。
残った時間、絶対音長14(=48-8-24)の間、変化先音程であるオクターブ4のeを
持続する。)
[PULL_PORTAMENT o4c,o4e,48,46,120,8,-24]
(オクターブ4のcからeに向けてポルタメントを開始する。ポルタメントノートは
ステップタイムは48、ゲートタイムは46、ベロシティ120で発音する。発音後、
絶対音長8の遅延時間の後、絶対音長16(=48-8-24)かけて目的のノートへ
ポルタメントする。絶対音長24の間、変化先音程であるオクターブ4のeを
持続する。)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] オートポルタメント
[AUTO_PORTAMENT sw,dly,hold time(or port.time)]
_
/| |
/ hold time
_/port.time
| |← →|
dly
・sw:0,1 または OFF,ON
・dly:0-32767
・hold time:-32768〜0 または port.time:1〜32767
オートポルタメントを制御する。有効にするとある音から次に発音する音符までの
音程を断続的に変化させる。
・sw:スイッチ
オートポルタメントを有効にするか無効にするかを設定する。0がOFF,1がONに対応
する。またはOFF,ONといった文字列を与えることも可能。
・dly:ディレイ(遅延時間)
オートポルタメントを開始するまでのチェンジ間を絶対音長で与える。
有効範囲は0〜32767。
・hold.time or port.time:持続時間または変化時間
負値を与えた場合は、オートポルタメントにおける音程変化を行ったあと最終的に、
どのくらいの時間これを持続するかの設定を行う(hold time)。また正値を与えた
場合はオートポルタメントにおける音程変化を絶対音長でどれくらいかけるかの
設定を行う(port.time)。
それぞれ有効範囲はhold time:-32768〜0,port.time:1〜32767。
※MIDIでオートポルタメントを実行すると暗黙のうちに
@J1相当のタイモードに変更されます。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] オートポルタメントスイッチ
[AUTO_PORTAMENT.SWITCH sw]
・sw:0,1 または OFF,ON
オートポルタメントの動作のON,OFFを行う。swは0がOFF,1がONに対応する。
また、文字列 ON,OFFを直接与えることもできる。
例
[AUTO_PORTAMENT.SWITCH 0] [AUTO_PORTAMENT.SWITCH OFF] (スイッチオフ)
[AUTO_PORTAMENT.SWITCH 1] [AUTO_PORTAMENT.SWITCH ON] (スイッチオン)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■アフタータッチ・シーケンス
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] アフタータッチシーケンス設定
[AFTERTOUCH.LEVEL mode, v1,v2,…,v8]
・mode:OFF,1/8,OPTIONAL,ON
・v1〜v8:0-127
アフタータッチシーケンスにおけるアフタータッチ値v1〜v8の設定を行う。
基本MMLの@Zとほぼ同等の機能だが mode が設定できるのが特徴。modeとは
アフタータッチシーケンスの動作方式を設定するもの。以下にmodeと対応する
動作を示す。
・mode:ON
アフタータッチシーケンスを以前の設定で再開する。
・mode:OFF
アフタータッチシーケンスを停止する。
・mode:1/8
発音する音符の音長の1/8単位毎でv1からv8のアフタータッチを次々に設定していく。
ちょうど基本MMLが提供するアフタータッチシーケンスの機能と同等。
・mode:OPTIONAL
発音する音符の音長とは無関係に、任意の時間区間毎でv1からv8のアフタータッチを
次々に設定していく。時間区間のシーケンスは後述の[AFTERTOUCH.DELAY]で行う。
modeは省略するとスイッチはそれまでの設定を保持したままとなる。)
v1〜v8のアフタータッチ値は任意の位置で省略可能で、数値の頭に±を付けることに
よって相対的な値の指定も可能。例えば
[AFTERTOUCH.LEVEL optional 127,,-10,+5]
といった記述ができる。省略した部分は前の値を持続するということになり、
その間はアフタータッチの情報は送信されない。
相対指定時にオーバーフロー/アンダーフローを起こした値は有効範囲内の
最大値,最小値に修正される。
例
[AFTERTOUCH.LEVEL 1/8 0,0,10,20,30]
modeを1/8とし、v1=0,v2=0,v3=10,v4=20,v5=30と設定した。v6,v7,v8は省略(未設定)。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] アフタータッチシーケンス・ディレイ
[AFTERTOUCH.DELAY dl0,dl1,…,dl8]
発音
↓
____
........|___
v1 | |___.......
........| | |.......v2
←──-→←-→←→
dl0 dl1 dl2 v1,v2はdl1,dl2に対応する
[AFTERTOUCH.LEVEL]のアフタータッチ値
・dl0:0〜32767
・dl1〜dl8:1〜65535
アフタータッチシーケンスの動作モードの一つである「OPTIONAL」モードにおける
アフタータッチ出力タイミングを決定する区間時間の設定を行う。
dl0は最初のアフタータッチがかかるまでのディレイ(遅延時間)に相当し、
絶対音長値で指定する。有効範囲は0〜32767。初期値は0。
dl1〜dl8は次のアフタータッチ出力までの区間時間で、これも絶対音長値で指定
する。有効範囲は0〜65535。初期値は無し。
dl0〜dl8の任意のものを省略可能だが、dl1〜dl8は初期値を持たないので注意。
例
[AFTERTOUCH.DELAY 10,24,12,12,12,28,28,12,12]
dl0=10,dl1=24,dl2=12,dl3=12,dl4=12,dl5=28,dl6=28,dl7=12,dl8=12が設定される。
上を設定したあとで、たとえば
[AFTERTOUCH.DELAY 22,33,,,,,,,44]
とした場合、省略したパラメータについては前の値が保存され、指定された
パラメータのみ書き変わるので、設定は
dl0=22,dl1=33,dl2=12,dl3=12,dl4=12,dl5=28,dl6=28,dl7=12,dl8=44のようになる。
^^ ^^ ^^
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] アフタータッチシーケンス・スイッチ
[AFTERTOUCH.SWITCH mode]
・mode:-1〜2 または OFF,1/8,OPTIONAL,ON
アフタータッチの動作制御を行う。modeは[AFTERTOUCH.LEVEL]のパラメータの
modeと同等。modeは数値で与えることもでき、この時は
0=OFF,-1=1/8,1=OPTIONAL,2=ON
に対応する。
例
[AFTERTOUCH.SWITCH OPTIONAL]
(OPTIONALモードでONにする)
[AFTERTOUCH.SWITCH 2]
(以前のモード(1/8かOPTIONALのいずれか)でONにする)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] アフタータッチシーケンス同期モード設定
[AFTERTOUCH.SYNC m,c]
・m:0=非同期 1=同期 または OFF,ON
・c:1〜65535
アフタータッチシーケンスの初期化(リセット)タイミングの設定を行う。
mは同期モードの設定値。0は非同期,1は同期に対応し、0と1はそれぞれ文字列
OFF,ONにも対応する。mをON,OFFといった文字列にて設定することも可能。
「同期」に設定した場合は新しく発音するたびに、アフタータッチシーケンスを
最初から行う。「非同期」にした場合は発音と無関係にアフタータッチシーケンスを
続行する。
mは数値指定では0,1以外に、以下のように2進数で設定すればより高度な
同期化設定が行える。[]は初期設定を表す。
第0ビット 発音と同時にリセット 0:しない [1]:する
第1ビット タイでもリセット [0]:しない 1:する
第2ビット 休符でもリセット [0]:NO 1:YES
上から分かるようにmの初期値は1となっている。
cは同期ディレイにあたり、実際にはmで指定した条件がc回成立すると波形が初期化
されることになる。cの初期値は1。
例
[AFTERTOUCH.SYNC %011] (発音と同時、タイ指定においても初期化する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■ビブラート(ピッチモジュレーション)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ビブラート振幅
[VIBRATO.DEPTH mode,dp1,dp2,…,dp8]
・mode:OFF,1/8,OPTIONAL,ON
・dp1〜dp8:-32768〜+32767
ビブラートの振幅の設定をdp1〜dp8において行う。基本MMLの@Mとほぼ同等の
機能だが mode が設定できるのが特徴。modeとはビブラートの動作方式を設定するもの。
以下にmodeと対応する動作を示す。
・mode:ON
ビブラートを以前の設定で再開する。
・mode:OFF
ビブラートを停止する。
・mode:1/8
発音する音符の音長の1/8単位毎でdp1からdp8のビブラート振幅を次々に変化していく。
・mode:OPTIONAL
発音する音符の音長とは無関係に、任意の時間区間毎でdp1からdp8のビブラート振幅を
次々に設定していく。時間区間のシーケンスは後述の[VIBRATO.DELAY]で行う。
modeは省略するとスイッチはそれまでの設定を保持したままとなる。
dp1〜dp8のビブラート振幅は任意の位置で省略可能で、数値の頭に±を付けることに
よって相対的な値の指定も可能。例えば
[VIBRATO.DEPTH optional 64,,-10,+5]
といった記述ができる。省略した部分は前の値を持続するということになり、
その間は振幅の変更は行われない。
相対指定時にオーバーフロー/アンダーフローを起こした値は有効範囲内の
最大値,最小値に修正される。
例
[VIBRATO.DEPTH 1/8 0,0,10,20,30]
modeを1/8とし、dp1=0,dp2=0,dp3=10,dp4=20,dp5=30と設定した。
dp6,dp7,dp8は省略(未設定)。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ビブラート振幅増加
[VIBRATO.DEEPEN sw,spd,dpn,rpt]
・sw:OFF,ON
・spd:1〜65535
・dpn:-32768〜+32767
・rpt:0〜32767
ビブラートの振幅の増加/減少を設定する。
・sw:OFF,ON
ビブラートの振幅増減機能を有効にするか無効にするかを設定する。
OFFで無効に、ONで有効に設定される。
・spd:増減速度
ビブラートの振幅の増減速度を設定する。1がもっとも速く、65535がもっとも
遅い。0はエラー。値は絶対音長に相当し、有効範囲は1〜65535。
・dpn:振幅増加量
振幅の増減量を設定する。負値は振幅減少、正値は振幅増加に対応する。
値の有効範囲は-32768〜+32767。絶対値が大きければ大きいほど、増減は
急激となる。
・rpt:増減回数
振幅はspdの速度でdpn幅増減するが、この処理を何回繰り返すかを設定する。
rpt=0とすると振幅が初期化されるまで無限に増減を繰り返す設定になる。
値の有効範囲は1〜32767。
例
[VIBRATO.DEEPEN ON,6,+8,10]
(増減スピード6で10回振幅を8増加させる)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ビブラート・スピード(周期)
[VIBRATO.SPEED sp1,sp2,…,sp8]
・sp1〜sp8:1〜32767
ビブラートの振動速度を設定する。基本MMLの@Sとほぼ同等の機能を持つが
最大8つの振幅変化に対応した振動速度変化の設定が行えるのが特長。
設定範囲は1≦sp1〜sp8≦32767。
実際の波形にどう影響するかは拡張MML[VIBRATO.WAVEFORM]の項で
解説するが、値が小さいほど高速に、値が大きいほど低速に音が振動する。
sp1〜sp8の振動速度は任意の位置で省略可能だが、初期値を持たないので注意。
例
[VIBRATO.SPEED 10,8,20]
(sp1=10,sp2=8,sp3=20,sp4〜sp8は省略(未設定))
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ビブラートディレイ
[VIBRATO.DELAY dl0,dl1,…,dl8]
・dl0:0〜32767
・dl1〜dl8:0〜65535
ビブラートの動作モードの一つである「OPTIONAL」モードにおけるビブラートの振幅
切り換えタイミングを決定する区間時間の設定を行う。基本MML @Hに相当する機能。
dl0は最初のビブラートがかかるまでのディレイ(遅延時間)に相当し、
絶対音長値で指定する。有効範囲は0〜32767。初期値は0。
dl1〜dl8は次の振幅切り換えまでの区間時間で、これも絶対音長値で指定
する。有効範囲は0〜65535。初期値は無し。
dl0〜dl8の任意のものを省略可能だが、dl1〜dl8は初期値を持たないので注意。
例
[VIBRATO.DELAY 10,24,12,12,12,28,28,12,12]
dl0=10,dl1=24,dl2=12,dl3=12,dl4=12,dl5=28,dl6=28,dl7=12,dl8=12が設定される。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ビブラート波形選択
[VIBRATO.WAVEFORM w]
・w:0-32767
ビブラート波形を選択する。基本MMLのSと同等の機能。
w=0〜4はプリセット波形に割り当てられている。
・w=0:鋸歯波
・w=1:矩形波
・w=2:三角波
・w=3:ワンショット鋸歯波
・w=4:ランダム波
またはプリセット波形は
SAW (w=0:鋸歯波に対応)
SQUARE (w=1:矩形波に対応)
TRIANGLE (w=2:三角波に対応)
S.SAW (w=3:ワンショット鋸歯波に対応)
RANDOM (w=4:ランダム波に対応)
という文字パラメータを用いて指定することもできる。
初期値はw=2の三角波。
w=5〜7はリザーブ。w=8〜32767はユーザー定義波形となる。
ユーザー波形の登録についてはMEASURE3 zm_set_wave_from1(),MEASURE4 「.WAVE_FORM」参照。
以下に波形と各パラメータとの関係を示す。
@M:振幅 [VIBRATO.DEPTH]
@H:ディレイ [VIBRATO.DELAY]
@K:ディチューン [VIBRATO.DETUNE]
@S:速度 [VIBRATO.SPEED]
波形番号0:鋸歯波(SAW) (振幅が正の時)
_
/ / / / /↑@M
@K→____/ / / / / ↓
←──→ / / / /  ̄
@H / / / /|
| |
@S
波形番号0:鋸歯波 (振幅が負の時)
\ \ \ \
@K→____ \ \ \ \ _
←──→\ \ \ \ \ ↑
@H \ \ \ \ |\↓@M
| | ̄
@S
波形番号1:矩形波 (振幅が正の時)
 ̄ ̄  ̄ ̄  ̄ ̄  ̄ ̄
@K→____ _
←──→ ↑@M
@H __ __ __ __↓
| |  ̄
@S
波形番号1:矩形波 (振幅が負の時)
_
 ̄ ̄  ̄ ̄  ̄ ̄↑@M
@K→____ ↓
←──→  ̄
@H __ __ __
| |
@S
波形番号2:三角波 (振幅が正の時)
_
/\ /\ /↑@M
@K→____/ \ / \ / ↓
←──→ \ / \ /|  ̄
@H \/ \/ |
| |
@S
波形番号2:三角波 (振幅が負の時)
/\ /\
@K→____ / \ / \ _
←──→\ / \ / |\ ↑@M
@H \/ \/ | \↓
| | ̄
@S
波形番号3:鋸歯波シングル (振幅が正の時)
_____________
/↑@M
@K→____/| ↓
←──→| |  ̄
@H @S
波形番号3:鋸歯波シングル (振幅が負の時)
@K→____ _
←──→\ ↑
@H |\↓@M
| | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
@S
波形番号4:ランダム波 (振幅が正の時)
波形番号8〜32767:ユーザー波形 (振幅が正の時)
波形データ列が+5,−5,+10,+3,0の場合・・・
+10*@M/256
+5*@M/256 ̄ ̄
 ̄ ̄ __+3*@M/256
@K→──── ──
←──→ __ 0*@M/256
@H -5*@M/256
←→
@S
波形番号4:ランダム波 (振幅が負の時)
波形番号8〜32767:ユーザー波形 (振幅が負の時)
波形データ列が+5,−5,+10,+3,0の場合・・・
+5*@M/256
 ̄ ̄ 0*@M/256
@K→──── ──
←──→__  ̄ ̄-3*@M/256
@H -5*@M/256__
-10*@M/256
←→
@S
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ビブラートスイッチ
[VIBRATO.SWITCH mode]
・mode:-1〜2 または OFF,1/8,OPTIONAL,ON
ビブラートの動作制御を行う。modeは[VIBRATO.DEPTH]のパラメータの
modeと同等。modeは数値で与えることもでき、この時は
0=OFF,-1=1/8,1=OPTIONAL,2=ON
に対応する。
例
[VIBRATO.SWITCH 1/8]
(1/8モードでONにする)
[VIBRATO.SWITCH 2]
(以前のモード(1/8かOPTIONALのいずれか)でONにする)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ビブラート同期モード
[VIBRATO.SYNC m,c]
・m:0=非同期 1=同期 または OFF,ON
・c:1〜65535
ビブラート波形の初期化(リセット)タイミングの設定を行う。基本MML Hに
相当する機能を持つ。
mは同期モードの設定値。0は非同期,1は同期に対応し、0と1はそれぞれ文字列
OFF,ONにも対応する。mをON,OFFといった文字列にて設定することも可能。
「同期」に設定した場合は新しく発音するたびにビブラート波形の初期化を行う。
「非同期」にした場合は発音と無関係にビブラートを続行する。
mは数値指定では0,1以外に、以下のように2進数で設定すればより高度な
初期化設定が行える。[]は初期設定を表す。
第0ビット 発音と同時にリセット 0:しない [1]:する
第1ビット タイでもリセット [0]:しない 1:する
第2ビット 休符でもリセット [0]:NO 1:YES
第3ビット 波形はキーオン毎に進行する [0]:NO 1:YES
第4ビット 波形は休符でも進行する [0]:NO 1:YES
上から分かるようにmの初期値は1となっている。
cは同期ディレイにあたり、実際にはmで指定した条件がc回成立すると波形が初期化
されることになる。cの初期値は1。
例
[VIBRATO.SYNC %011] (発音と同時、タイ指定においても初期化する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] ビブラートモード
[VIBRATO.MODE mode]
・mode:0〜2 または NORMAL,FM,MIDI
MIDIにはビブラートモードが2つあり本命例はこのモード選択をするもので、
基本MML Mに相当する。ビブラートに付いての詳解は基本MML Mの項を参照のこと。
・mode=0,NORMAL
ノーマルモードの設定。
「[VIBRATO.DEPTH]で指定できる振幅の範囲は0≦@M≦127。
・mode=1,FM
拡張モード1の設定。[VIBRATO.DEPTH]で指定される振幅は半音=64として
作用する。[VIBRATO.DEPTH]で指定できる振幅の範囲は−768≦@M≦768。
・mode=2,MIDI
拡張モード2の設定。設定された振幅の値はそのまま14ビットのMIDIの
ピッチベンダー直値に該当する。(ベンドレンジ=12のとき半音≒683)。
[VIBRATO.DEPTH]で指定できる振幅の範囲は−8192≦@M≦8191。
※注意
本命例を実行するとそれまで設定されていた振幅([VIBRATO.DEPTH]の値)は無効となる。
例
[VIBRATO.MODE NORMAL] (ビブラートモードを通常モードに設定する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■ARCC(Assignable Realtime Control Change)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ARCC振幅
[ARCCn.LEVEL mode,lv1,lv2,…,lv8]
[ARCCn.DEPTH mode,lv1,lv2,…,lv8]
・n:1-4
・mode:OFF,1/8,OPTIONAL,ON
・lv1〜lv8:-128〜+127
ARCCの振幅設定を行う。基本MMLの@Aほぼの機能だが@AはARCC1に対しての
設定しか行えないのに対して、本命例は各トラック独立動作させることのできる
4つのARCCコントローラーに対して個別にパラメータを設定できる。
nはARCC番号で設定範囲は1〜4。
modeとはARCCの動作方式を設定するもの。以下にmodeと対応する動作を示す。
・mode:ON
ARCCを以前の設定で再開する。
・mode:OFF
ARCCを停止する。
・mode:1/8
発音する音符の音長の1/8単位毎でlv1からlv8のARCC値を次々に設定していく。
・mode:OPTIONAL
発音する音符の音長とは無関係に、任意の時間区間毎でlv1からlv8のARCC振幅を
次々に設定していく。時間区間のシーケンスは後述の[ARCCn.DELAY]で行う。
modeは省略するとスイッチはそれまでの設定を保持したままとなる。
lv1〜lv8のARCC振幅は任意の位置で省略可能で、数値の頭に±を付けることに
よって相対的な値の指定も可能。例えば
[ARCCn.LEVEL optional 64,,-10,+5]
といった記述ができる。省略した部分は前の値を持続するということになり、
その間は振幅の変更は行われない。
相対指定時にオーバーフロー/アンダーフローを起こした値は有効範囲内の
最大値,最小値に修正される。
例
[ARCC1.LEVEL 1/8 0,0,10,20,30]
modeを1/8とし、lv1=0,lv2=0,lv3=10,lv4=20,lv5=30と設定した。lv6,lv7,lv8は
省略(未設定)。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ARCC振幅増加
[ARCCn.DEEPEN sw,spd,dpn,rpt]
・n:1-4
・sw:OFF,ON
・spd:1〜65535
・dpn:-32768〜+32767
・rpt:0〜32767
ARCCの振幅の増加/減少を設定する。
・sw:OFF,ON
ARCCの振幅増減機能を有効にするか無効にするかを設定する。
OFFで無効に、ONで有効に設定される。
・spd:増減速度
ARCCの振幅の増減速度を設定する。1がもっとも速く、65535がもっとも
遅い。0はエラー。値は絶対音長に相当し、有効範囲は1〜65535。
・dpn:振幅増加量
振幅の増減量を設定する。負値は振幅減少、正値は振幅増加に対応する。
値の有効範囲は-32768〜+32767。絶対値が大きければ大きいほど、増減は
急激となる。
・rpt:増減回数
振幅はspdの速度でdpn幅増減するが、この処理を何回繰り返すかを設定する。
rpt=0とすると振幅が初期化されるまで無限に増減を繰り返す設定になる。
値の有効範囲は1〜32767。
例
[ARCC1.DEEPEN ON,6,+8,10]
(ARCC1を増減スピード6で10回振幅を8増加させる)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ARCCコントロール設定
[ARCCn.CONTROL ctrl]
・n=:1-4
・ctrl:0-127
ARCCの制御対象コントロールを設定する。基本MMLの@Cほぼの機能だが@Cは
ARCC1に対しての設定しか行えないのに対して、本命例は各トラック独立動作
させることのできる4つのARCCコントローラーに対して個別にパラメータを
設定できる。
nはARCC番号で設定範囲は1〜4。
ctrlは制御対象コントロール番号。MIDIパートならばARCCで制御したいコントロール
チェンジ番号を与えることになる。MIDIパートのコントロールは以下の文字列を
設定することでも行える。
0=BANK_MSB 1=VIBRATO 2=CTRL2 3=CTRL3 4=CTRL4 5=PORTAMENT_TIME 6=DATA_ENTRY_MSB
7=VOLUME 8=CTRL8 9=CTRL9 10=PANPOT 11=EXPRESSION 12=CTRL12 13=CTRL13 14=CTRL14
15=CTRL15 16=CTRL16 17=CTRL17 18=CTRL18 19=CTRL19 20=CTRL20 21=CTRL21 22=CTRL22
23=CTRL23 24=CTRL24 25=CTRL25 26=CTRL26 27=CTRL27 28=CTRL28 29=CTRL29 30=CTRL30
31=CTRL31 32=BANK_LSB 33=CTRL33 34=CTRL34 35=CTRL35 36=CTRL36 37=DATA_ENTRY_LSB
38=CTRL31 39=CTRL39 40=CTRL40 41=CTRL41 42=CTRL42 43=CTRL43 44=CTRL44 45=CTRL45
46=CTRL46 47=CTRL47 48=CTRL48 49=CTRL49 50=CTRL50 51=CTRL51 52=CTRL52 53=CTRL53
54=CTRL54 55=CTRL55 56=CTRL56 57=CTRL57 58=CTRL58 59=CTRL59 60=CTRL60 61=CTRL61
62=CTRL62 63=CTRL63 64=DAMPER 65=PORTAMENT 66=SOSTENUTO 67=SOFT 68=CTRL68
69=FREEZE 70=CTRL70 71=CTRL71 72=CTRL72 73=CTRL73 74=CTRL74 75=CTRL75 76=CTRL76
77=CTRL77 78=CTRL78 79=CTRL79 80=CTRL80 81=CTRL81 82=CTRL82 83=CTRL83
84=PORTAMENT_CONTROL 85=CTRL85 86=CTRL86 87=CTRL87 88=CTRL88 89=CTRL89
90=CTRL90 91=REVERB 92=TREMOLO 93=CHORUS 94=DELAY 95=PHASER 96=DATA_INCREMENT
97=DATA_DECREMENT 98=NRPN_LSB 99=NRPN_MSB 100=RPN_LSB 101=RPN_MSB 102=CTRL102
103=CTRL103 104=CTRL104 105=CTRL105 106=CTRL106 107=CTRL107 108=CTRL108
109=CTRL109 110=CTRL110 111=CTRL111 112=CTRL112 113=CTRL113 114=CTRL114
115=CTRL115 116=CTRL116 117=CTRL117 118=CTRL118 119=CTRL119 120=ALL_SOUND_OFF
121=RESET_ALL_CONTROLLERS 122=LOCAL 123=ALL_NOTES_OFF 124=OMNI_OFF 125=OMNI_ON
126=MONO 127=POLY
例
[ARCC1.CONTROL EXPRESSION]
[ARCC1.CONTROL 11]
(上記2つはは同義)
FM音源パートのctrlは%0000〜%1111で操作対象オペレータの登録となる。
それぞれビット0〜3までがOPMのオペレータ1〜4に対応する。また以下の文字列で
コントロール設定を行えばFM音源の特殊パラメータに対してのARCCが行える。
()内の数値はモジュレート有効範囲を表す。たとえばFM.AMSに対して-128〜127の
振幅でモジュレートしても実際に有効となる値は0-3のみ。
$80=FM.PANPOT (0-127) *1
$81=FM.PMS (0-7)
$82=FM.AMS (0-3)
$84=FM.AMD (0-127)
$85=FM.PMD (0-127)
$86=FM.LFO (0-127) *2
$87=FM.NOISE (0-63)
*1 パラメータ的には0-127で行われるが実際の効果は左、中央、右の
3段階にしかならない
*2 FM音源のレジスタには0-127の2倍の値(0-254)が書き込まれる
例
[ARCC1.CONTROL FM.AMD]
[ARCC1.CONTROL $84]
(上記2つはは同義)
ADPCMパートのctrlはMIDIに準拠するが、現時点でサポートされているのは
7=VOLUME 10=PANPOT 11=EXPRESSION
の3つのみ。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ARCC波形の原点設定
[ARCCn.ORIGIN org]
・org:0-127
ARCC波形の基準値を設定する。この値を振幅の上限値として[ARCCn.DEPTH]
([ARCCn.LEVEL])で設定した振幅で振動する。この値は[ARCCn.WAVEFORM]の図解中の
@Cに相当する。初期値は127。
例
[ARCC1.ORIGIN 64] (ARCC1の波形の基準値を64に設定する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ARCC波形の初期化値の設定
[ARCCn.RESET rst]
・rst:0-127
ARCC波形の初期化値を設定する。後述の[ARCCn.MODE]の設定によって多少作用が
異なる。初期値は0。
・[ARCCn.MODE]がNORMALのとき
ARCC開始時にこの値でコントローラが初期化される(ただし[ARCCn.DELAY]のdl≠0
のとき)。またARCC解除時にもこの値でコントローラが初期化される。
・[ARCCn.MODE]がSPECIAL(ENHANCED)のとき
ARCC解除時にもこの値でコントローラが初期化される。
例
[ARCC1.RESET 0] (ARCC1の初期化値を0に設定する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ARCCスピード(周期)
[ARCCn.SPEED sp1,sp2,…,sp8]
・n:1-4
・sp1〜sp8:1〜32767
ARCCの振動速度を設定する。基本MMLの@Sとほぼ同等の機能を持つが
最大8つの振幅変化に対応した振動速度変化の設定が行えるのが特長。
nは設定先ARCC番号で設定範囲は1〜4。
sp1〜8は速度値で設定範囲は1≦sp1〜sp8≦32767。
実際の波形にどう影響するかは拡張MML[ARCCn.WAVEFORM]の項で
解説するが、値が小さいほど高速に、値が大きいほど低速に音が振動する。
sp1〜sp8の振動速度は任意の位置で省略可能だが、初期値を持たないので注意。
例
[ARCC1.SPEED 10,8,20]
(ARCC1の速度をsp1=10,sp2=8,sp3=20と設定,sp4〜sp8は省略(未設定))
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ARCCディレイ
[ARCCn.DELAY dl0,dl1,…,dl8]
・n:1-4
・dl0:0〜32767
・dl1〜8:0〜65535
ARCCの動作モードの一つである「OPTIONAL」モードにおけるARCCの振幅
切り換えタイミングを決定する区間時間の設定を行う。基本MML @Hに相当する機能。
nは設定先ARCC番号で設定範囲は1〜4。
dl0は最初のARCCが実行されるまでのディレイ(遅延時間)に相当し、
絶対音長値で指定する。有効範囲は0〜32767。初期値は0。
dl1〜dl8は次の振幅切り換えまでの区間時間で、これも絶対音長値で指定
する。有効範囲は0〜65535。初期値は無し。
dl0〜dl8の任意のものを省略可能だが、dl1〜dl8は初期値を持たないので注意。
例
[ARCC1.DELAY 10,24,12,12,12,28,28,12,12]
(ARCC1のディレイをdl0=10,dl1=24,dl2=12,dl3=12,dl4=12,dl5=28,dl6=28,
dl7=12,dl8=12と設定する。)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ARCC波形
[ARCCn.WAVEFORM w]
・n:1-4
・w:0-32767
ARCC波形を選択する。基本MMLのSと同等の機能。
nは設定先ARCC番号で設定範囲は1〜4。
wの0〜4はプリセット波形に割り当てられている。
・w=0:鋸歯波
・w=1:矩形波
・w=2:三角波
・w=3:ワンショット鋸歯波
・w=4:ランダム波
またはプリセット波形は
SAW (w=0:鋸歯波に対応)
SQUARE (w=1:矩形波に対応)
TRIANGLE (w=2:三角波に対応)
S.SAW (w=3:ワンショット鋸歯波に対応)
RANDOM (w=4:ランダム波に対応)
という文字パラメータを用いて指定することもできる。
初期値はw=2の三角波。
w=5〜7はリザーブ。w=8〜32767はユーザー定義波形となる。
ユーザー波形の登録についてはMEASURE3 zm_set_wave_from1(),MEASURE4 「.WAVE_FORM」参照。
以下に波形と各パラメータとの関係を示す。
@A:振幅 [ARCCn.DEPTH]([ARCCn.LEVEL])
@H:ディレイ [ARCCn.DELAY]
@C:波形基準値※ [ARCCn.ORIGIN] (ARCCn.CONTROL/@Cの第3パラメータ)
@S:速度 [ARCCn.SPEED]
※FM音源パートおよびADPCMパートでは[ARCCn.CONTROL]を設定していない場合、ARCCは
アンプリチュードモジュレーションとして動作する。この場合は上記の@Cで
表される波形基準値はその時点での設定音量に相当する。
FM音源パートおよびADPCMパートでも[ARCCn.CONTROL]を設定している場合は、
MIDIパートと同様のARCCとして機能する。
波形番号0:鋸歯波 (振幅が正の時)
@C→____ _
←──→\ \ \ \ ↑
@H \ \ \ \ |
\ \ \ \ |@A
\ \ \ |\↓
| | ̄
@S
波形番号0:鋸歯波 (振幅が負の時)
@C→____ _
←──→ / / / /↑
@H / / / / |@A
/ / / / |
/ / / /| ↓
| |  ̄
@S
波形番号1:矩形波 (振幅が正の時)
@C→____ _
←──→ ̄ ̄  ̄ ̄  ̄ ̄  ̄ ̄ ↑
@H |
|@A
__ __ __ __↓
| |  ̄
@S
波形番号1:矩形波 (振幅が負の時)
@C→____ _
←──→  ̄ ̄  ̄ ̄  ̄ ̄  ̄ ̄ ↑
@H |@A
|
__ __ __ __ ↓
| |  ̄
@S
波形番号2:三角波 (振幅が正の時)
@C→____ _
←──→\ /\ / ↑
@H \ / \ / |
|\ / \ / |@A
| \/ \/ ↓
|←→|  ̄
@S
波形番号2:三角波 (振幅が負の時)
@C→____ _
←──→ /\ /\ ↑
@H / \ / \ |
/| \ / \ |@A
/ | \/ \ ↓
|←→|  ̄
@S
波形番号3:鋸歯波シングル (振幅が正の時)
@C→____ _
←──→\ ↑
@H \ |
\ |@A
|\↓
| | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
@S
波形番号3:鋸歯波シングル (振幅が負の時)
@C→____ _____________
←──→ /↑
@H / |@A
/ |
/| ↓
| |  ̄
@S
波形番号4:ランダム波 (振幅が正の時)
波形番号8〜32767:ユーザー波形 (振幅が正の時)
波形データ列が+5,−5,+10,+3,0の場合・・・
+10*@A/32
+5*@A/32 ̄ ̄
 ̄ ̄ __+3*@A/32
@C→──── ──
←──→ __ 0*@A/32
@H -5*@A/32
←→
@S
波形番号4:ランダム波 (振幅が負の時)
波形番号8〜32767:ユーザー波形 (振幅が負の時)
波形データ列が+5,−5,+10,+3,0の場合・・・
+5*@A/32
 ̄ ̄ 0*@A/32
@C→──── ──
←──→__  ̄ ̄-3*@A/32
@H -5*@A/32 __
-10*@A/32
←→
@S
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ARCCスイッチ
[ARCCn.SWITCH mode]
・n:1-4
・mode:-1〜2 または OFF,1/8,OPTIONAL,ON
ARCCの動作制御を行う。
nは設定先ARCC番号で設定範囲は1〜4。
modeは[ARCCn.DEPTH]([ARCCn.LEVEL])のパラメータのmodeと同等。modeは数値で
与えることもでき、この時は
0=OFF,-1=1/8,1=OPTIONAL,2=ON
に対応する。
例
[ARCC2.SWITCH 1/8]
(ARCC2を1/8モードでONにする)
[ARCC4.SWITCH 2]
(ARCC4を以前のモード(1/8かOPTIONALのいずれか)でONにする)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ARCC同期モード
[ARCCn.SYNC m,c]
・n:1-4
・m:0=非同期 1=同期 または OFF,ON
・c:1〜65535
ARCC波形の初期化(リセット)タイミングの設定を行う。基本MML Hに
相当する機能を持つ。
nは設定先ARCC番号で設定範囲は1〜4。
mは同期モードの設定値。0は非同期,1は同期に対応し、0と1はそれぞれ文字列
OFF,ONにも対応する。mをON,OFFといった文字列にて設定することも可能。
「同期」に設定した場合は新しく発音するたびにARCC波形の初期化を行う。
「非同期」にした場合は発音と無関係にARCCを続行する。
mは数値指定では0,1以外に、以下のように2進数で設定すればより高度な
初期化設定が行える。[]は初期設定を表す。
第0ビット 発音と同時にリセット 0:しない [1]:する
第1ビット タイでもリセット [0]:しない 1:する
第2ビット 休符でもリセット [0]:NO 1:YES
第3ビット 波形はキーオン毎に進行する [0]:NO 1:YES
第4ビット 波形は休符でも進行する [0]:NO 1:YES
上から分かるようにmの初期値は1となっている。
cは同期ディレイにあたり、実際にはmで指定した条件がc回成立すると波形が初期化
されることになる。cの初期値は1。
例
[ARCC2.SYNC %011] (ARCC2を発音と同時、タイ指定においても初期化する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ARCCモード
[ARCCn.MODE mode]
・n:1-4
・mode:0〜2 または NORMAL,SPECIAL(ENHANCED)
MIDIにはARCCモードが2つあり本命例はこのモード選択をするもので、
基本MML Mに相当する。ARCCについての詳解は基本MML Mの項を参照のこと。
nは設定先ARCC番号で設定範囲は1〜4。
・mode=0,NORMAL
ノーマルモードの設定。
[ARCCn.DEPTH]([ARCCn.LEVEL])で指定できる振幅の範囲は0≦@A≦127。
・mode=1,SPECIAL
拡張モード1の設定。ARCCは選択した波形にそって実行される。
[ARCCn.DEPTH]([ARCCn.LEVEL])で指定できる振幅の範囲は−128≦@A≦127。
※注意
本命例を実行するとそれまで設定されていた振幅([ARCCn.DEPTH],[ARCCn.LEVEL])
は無効となる。
例
[ARCC3.MODE NORMAL] (ARCC3のARCCモードを通常モードに設定する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ARCC波形位相制御
[ARCCn.PHASE mode]
・n:1-4
・mode:0〜1 または NORMAL,REVERSE(INVERSE)
ARCCの波形の位相を制御する。通常とデフォルト状態ではmode=0(NORMAL)に相当し、
[ARCCn.WAVEFORM]の項で図解した波形が実行される。一方mode=1(REVERSE)では
[ARCCn.WAVEFORM]の項で図解した波形において@Cを中心に反転した波形が実行される。
例
[ARCC3.PHASE REVERSE] (ARCC3のARCC波形を逆位相モードにする)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■音量/ベロシティ
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] 音量
[VOLUME v]
・v:0-127 あるいは -127〜+127 (+,-の符号を明記すると相対指定になる)
音量の設定を行う。基本MML @Vに相当する。vの設定範囲は0≦v≦127。数値の頭に
+,-の符号を付記すると相対指定になる。この場合のvの設定範囲は-127≦v≦+127。
例
[VOLUME 42] (音量42を設定)
[VOLUME -12] (それまでの音量を12下げる)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] 相対音量
[@VOLUME v]
・v:-127〜127
音量の設定を相対指定で行う。基本MML @Vに相当する。vの設定範囲は-127≦v≦+127。
[VOLUME]とは違い先頭に+,-をつけなくても相対指定としてみなされる。
例
[@VOLUME 12] (それまでの音量を12上げる)
[@VOLUME -12] (それまでの音量を12下げる)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ベロシティ
[VELOCITY u]
・u:-127〜+127 あるいは -127〜+127 (+,-の符号を明記すると相対指定になる)
ベロシティの設定を行う。基本MML @Uに相当する。uの設定範囲は0≦u≦127。
数値の頭に+,-の符号を付記すると相対指定になる。この場合のuの設定範囲は
-127≦u≦+127。
例
[VELOCITY 42] (ベロシティを42に設定)
[VELOCITY -12] (それまでのベロシティを12下げる)
FM音源パート,ADPCM音源パートでは音量とベロシティの区別はなく同一の効果
として扱われる点に注意。たとえば以下に示す設定はまったく同一の効果を
もたらす設定となる。
例
[VELOCITY 42] (ベロシティを42に設定)
[VOLUME 42] (音量を42に設定)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] 相対ベロシティ
[@VELOCITY u]
・u:-127〜127
ベロシティの設定を相対指定で行う。基本MML @Uに相当する。uの設定範囲は
-127≦u≦+127。[VELOCITY]とは違い先頭に+,-をつけなくても相対指定として
みなされる。
例
[@VELOCITY 12] (それまでのベロシティを12上げる)
[@VELOCITY -12] (それまでのベロシティを12下げる)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■EVS(Enhanced Velocity Sequence)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] EVS振幅
[VELOCITY.DEPTH mode,lv1,lv2,…,lv8]
[VELOCITY.LEVEL mode,lv1,lv2,…,lv8]
・mode:OFF,OPTIONAL,ON
・lv1〜lv8:-128〜+127
EVSとはZMUSIC Ver.1.0からの機能であるベロシティ・シーケンスを拡張したもので、
発音音符のベロシティをビブラートやARCCのように算術波形やユーザー波形に沿って
変化させる機能である。本命令は、このEVSの変化振幅を設定するもの。
modeとはEVSの動作方式を設定するパラメータ。以下にmodeと対応する動作を示す。
・mode:ON
EVSを以前の設定で再開する。
・mode:OFF
EVSを停止する。
・mode:OPTIONAL
[VELOCITY.DELAY]で設定された音符数毎にlv1からlv8のEVS振幅を切り換えていく。
※EVSは音長という概念がないのでビブラートやARCCのような1/8モードはない。
modeは省略するとスイッチはそれまでの設定を保持したままとなる。
lv1〜lv8のEVS振幅は任意の位置で省略可能で、数値の頭に±を付けることに
よって相対的な値の指定も可能。例えば
[VELOCITY.LEVEL optional 64,,-10,+5]
といった記述ができる。省略した部分は前の値を持続するということになり、
その間は振幅の変更は行われない。
相対指定時にオーバーフロー/アンダーフローを起こした値は有効範囲内の
最大値,最小値に修正される。
例
[VELOCITY.LEVEL 1/8 0,0,10,20,30]
( modeを1/8とし、lv1=0,lv2=0,lv3=10,lv4=20,lv5=30と設定した。lv6,lv7,lv8は
省略(未設定))。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] EVSスピード(周期)
[VELOCITY.SPEED sp1,sp2,…,sp8]
・sp1〜sp8:1〜32767
EVSの振動速度を設定する。最大8つの振幅変化に対応した振動速度変化の設定を行う。
sp1〜8は速度値で設定範囲は1≦sp1〜sp8≦32767。
実際の波形にどう影響するかは拡張MML[VELOCITY.WAVEFORM]の項で
解説するが、値が小さいほど高速に、値が大きいほど低速に音が振動する。
sp1〜sp8の振動速度は任意の位置で省略可能だが、初期値を持たないので注意。
例
[VELOCITY.SPEED 10,8,20]
(EVSの速度をsp1=10,sp2=8,sp3=20と設定,sp4〜sp8は省略(未設定))
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] EVSディレイ
[VELOCITY.DELAY dl0,dl1,…,dl8]
・dl0:0〜65535
・dl1〜8:0〜65535
EVSの動作モードの一つである「OPTIONAL」モードにおけるEVSの振幅切り換え
タイミングを決定する区間時間の設定を行う。
dl0は最初のEVSが実行されるまでのディレイ(遅延時間)に相当し、
音符個数値で指定する。有効範囲は0〜65535。初期値は0。
dl1〜dl8は次の振幅切り換えまでの区間時間で、これも音符個数値で指定
する。有効範囲は0〜65535。初期値は無し。
dl0〜dl8の任意のものを省略可能だが、dl1〜dl8は初期値を持たないので注意。
例
[VELOCITY.DELAY 10,24,12,12,12,28,28,12,12]
(EVSのディレイをdl0=10,dl1=24,dl2=12,dl3=12,dl4=12,dl5=28,dl6=28,
dl7=12,dl8=12と設定する。つまり音符dl=10個分はEVSの影響なく発音し11個目から
dl1=24個分最初の振幅値でEVS開始となる。以下同様)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] EVS波形
[VELOCITY.WAVEFORM w]
・w:0-32767
EVS波形を選択する。
wの0〜4はプリセット波形に割り当てられている。
・w=0:鋸歯波
・w=1:矩形波
・w=2:三角波
・w=3:ワンショット鋸歯波
・w=4:ランダム波
またはプリセット波形は
SAW (w=0:鋸歯波に対応)
SQUARE (w=1:矩形波に対応)
TRIANGLE (w=2:三角波に対応)
S.SAW (w=3:ワンショット鋸歯波に対応)
RANDOM (w=4:ランダム波に対応)
という文字パラメータを用いて指定することもできる。
初期値はw=2の三角波。
w=5〜7はリザーブ。w=8〜32767はユーザー定義波形となる。
ユーザー波形の登録についてはMEASURE3 zm_set_wave_from1(),MEASURE4 「.WAVE_FORM」参照。
以下に波形と各パラメータとの関係を示す。
VL:振幅 [VELOCITY.DEPTH]([VELOCITY.LEVEL])
VD:ディレイ [VELOCITY.DELAY]
VO:波形基準値 [VELOCITY.ORIGIN]
VS:速度 [VELOCITY.SPEED]
波形番号0:鋸歯波 (振幅が正の時)
VO→____ _
←──→\ \ \ \ ↑
VD \ \ \ \ |
\ \ \ \ |VL
\ \ \ |\↓
| | ̄
VS
波形番号0:鋸歯波 (振幅が負の時)
VO→____ _
←──→ / / / /↑
VD / / / / |VL
/ / / / |
/ / / /| ↓
| |  ̄
VS
波形番号1:矩形波 (振幅が正の時)
VO→____ _
←──→ ̄ ̄  ̄ ̄  ̄ ̄  ̄ ̄ ↑
VD |
|VL
__ __ __ __↓
| |  ̄
VS
波形番号1:矩形波 (振幅が負の時)
VO→____ _
←──→  ̄ ̄  ̄ ̄  ̄ ̄  ̄ ̄ ↑
VD |VL
|
__ __ __ __ ↓
| |  ̄
VS
波形番号2:三角波 (振幅が正の時)
VO→____ _
←──→\ /\ / ↑
VD \ / \ / |
|\ / \ / |VL
| \/ \/ ↓
|←→|  ̄
VS
波形番号2:三角波 (振幅が負の時)
VO→____ _
←──→ /\ /\ ↑
VD / \ / \ |
/| \ / \ |VL
/ | \/ \ ↓
|←→|  ̄
VS
波形番号3:鋸歯波シングル (振幅が正の時)
VO→____ _
←──→\ ↑
VD \ |
\ |VL
|\↓
| | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
VS
波形番号3:鋸歯波シングル (振幅が負の時)
VO→____ _____________
←──→ /↑
VD / |VL
/ |
/| ↓
| |  ̄
VS
波形番号4:ランダム波 (振幅が正の時)
波形番号8〜32767:ユーザー波形 (振幅が正の時)
波形データ列が+5,−5,+10,+3,0の場合・・・
+10*VL/32
+5*VL/32 ̄ ̄
 ̄ ̄ __+3*VL/32
VO→──── ──
←──→ __ 0*VL/32
VD -5*VL/32
←→
VS
波形番号4:ランダム波 (振幅が負の時)
波形番号8〜32767:ユーザー波形 (振幅が負の時)
波形データ列が+5,−5,+10,+3,0の場合・・・
+5*VL/32
 ̄ ̄ 0*VL/32
VO→──── ──
←──→__  ̄ ̄-3*VL/32
VD -5*VL/32 __
-10*VL/32
←→
VS
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] EVS波形の原点設定
[VELOCITY.ORIGIN org]
・org:0-127
EVS波形の基準値を設定する。この値を中心に[VELOCITY.DEPTH]([VELOCITY.LEVEL])で
設定した振幅で振動する。この値は[VELOCITY.WAVEFORM]の図解中のVOに相当する。
初期値は127。
例
[VELOCITY.ORIGIN 100] (EVSの波形の基準値を100に設定する)
上の設定で(基準点=100)たとえば振幅10のとき
波形=TRIANGLE(三角波)
にするとベロシティは100〜90(100-10)区間を交互に変化する
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] EVSスイッチ
[VELOCITY.SWITCH n]
・mode:-1〜2 または OFF,OPTIONAL,ON
EVSの動作制御を行う。
modeは[VELOCITY.DEPTH]([VELOCITY.LEVEL])のパラメータのmodeと同等。modeは数値で
与えることもでき、この時は
0=OFF,1=OPTIONAL,2=ON
に対応する。
例
[VELOCITY.SWITCH OPTIONAL]
(EVSをOPTIONALモードでONにする)
[VELOCITY.SWITCH 2]
(EVSを以前のモードでONにする)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] EVS同期モード
[VELOCITY.SYNC m,c]
・m:0=非同期 1=同期 または OFF,ON
・c:1〜65535
EVS波形の初期化(リセット)タイミングの設定を行う。
mは同期モードの設定値。0は非同期,1は同期に対応し、0と1はそれぞれ文字列
OFF,ONにも対応する。mをON,OFFといった文字列にて設定することも可能。
「同期」に設定した場合は小節線([BAR])のときにEVS波形の初期化を行う。
「非同期」にした場合は発音と無関係にEVSを続行する。
mは数値指定では0,1以外に、以下のように2進数で設定すればより高度な
初期化設定が行える。[]は初期設定を表す。
第0ビット 小節線に同期して初期化 [0]:しない 1:する
第1ビット ベロシティが指定されている音符 [0]:しない 1:する
があっても波形は進行する
第2ビット 休符があっても波形は進行する [0]:しない 1:する
上から分かるようにmの初期値は0となっている。
cは同期ディレイにあたり、実際にはmで指定した条件がc回成立すると波形が初期化
されることになる。cの初期値は1。
例
[VELOCITY.SYNC %011] (EVSを小節線同期、ベロシティが指定されている音符が
あっても波形は進行する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] EVS波形位相制御
[VELOCITY.PHASE mode]
・mode:0〜1 または NORMAL,REVERSE(INVERSE)
EVS波形の位相を制御する。通常とデフォルト状態ではmode=0(NORMAL)に相当し、
[VELOCITY.WAVEFORM]の項で図解した波形が実行される。一方mode=1(REVERSE)では
[VELOCITY.WAVEFORM]の項で図解した波形においてVOを中心に反転した波形が実行される。
例
[VELOCITY.PHASE REVERSE] (EVSの実行波形を逆位相モードにする)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■パンポット
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] パンポット
[PANPOT p]
・p:0-127 あるいは -127〜+127 (+,-の符号を明記すると相対指定になる)
パンポット(定位)を設定する。p=0が最左、p=64が中央、p=127が最右に対応する。
pの設定範囲は0≦p≦127。数値の頭に+,-の符号を付記すると相対指定になる。
この場合のpの設定範囲は-127≦p≦+127。
またpに文字列
L63〜L1 M R1〜R63
を与えることもできる。文字列パラメータと数値パラメータとの対応は以下に示す。
数値 L63〜L1 M R1〜R63
文字列 0 〜63 64 65〜127
例
[PANPOT R20] (基本MMLの@P84に相当)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] 相対パンポット
[@PANPOT p]
・p:-127〜127
パンポットの設定を相対指定で行う。基本MML @Pに相当する。pの設定範囲は
-127≦p≦+127。[PANPOT]とは違い先頭に+,-をつけなくても相対指定として
みなされる。
例
[@PANPOT 12] (それまでのパンポットを12上げる)
[@PANPOT -12] (それまでのパンポットを12下げる)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■操作チャンネル切り換え
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] チャンネル切り換え
[CH_ASSIGN ch]
[ASSIGN ch]
・ch:FM1〜FM8
ADPCM1〜ADPCM16(またはPCM1〜PCM16)
MIDI1-1〜MIDI1-16,MIDI2-1〜MIDI2-16,MIDI3-1〜MIDI3-16,MIDI4-1〜MIDI4-16
そのトラックに割り当てられているデバイス、チャンネルを変更する。
ZMUSIC Ver.2.0のMMLであるNや@Nの機能に相当する。
例
[CH_ASSIGN MIDI3-1] (そのトラックをMIDI3-1に変更する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■パターン
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] パターン展開
[PATTERN id]
・id:パターン名文字列
共通コマンド.PATTERN(MEASURE4参照)で登録したパターン名idの
演奏データにリンクする。idにはパターン名を記述する。
例
(i)
.pattern ABC { cdefgab<c> }
.assign TR1,MIDI1
(t1)[PATTERN ABC]
(p)
(cdefgab<c>が演奏される)
なお、PATTERN内のMMLに含まれる音量コマンド(MML:@V,V)は.ASSIGN(MEASURE4)で
指定することができるトラックボリュームの影響を受けない。
例
.assign 1 {MIDI1,60}
^^ ←トラックボリューム
.PATTERN HELLO { @V120 c4 }
.track 1 {
[PATTERN HELLO] ←このときパターンHELLO内のc4は
} トラックボリュームに無関係に
@V120で発音される。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] パターン展開(埋め込み)
[EMBED id]
・id:パターン名文字列
共通コマンド.PATTERN(MEASURE4参照)で登録したパターン名idの
演奏データを展開する。idにはパターン名を記述する。
[PATTERN]は演奏実行時にパターン部にジャンプする形で演奏されるが
[EMBED]はパターンの内容そのものをそのトラックに埋め込むので、演奏時は
通常の演奏データとまったく変わらない方法で演奏される。
つまり、[PATTERN]は処理速度的には[EMBED]よりも劣るが、演奏データサイズを
削減できる。逆に[EMBED]は処理速度的に[PATTERN]より優れるが演奏データサイズは
大きくなる。
例
(i)
.pattern ABC { cdefgab<c> }
.assign TR1,MIDI1
(t1)[EMBED ABC]
(p)
(cdefgab<c>が演奏される)
なお、PATTERN内のMMLに含まれる音量コマンド(MML:@V,V)は.ASSIGN(MEASURE4)で
指定することができるトラックボリュームの影響を受けない。
例
.assign 1 {MIDI1,60}
^^ ←トラックボリューム
.PATTERN HELLO { @V120 c4 }
.track 1 {
[EMBED HELLO] ←このときパターンHELLO内のc4は
} トラックボリュームに無関係に
@V120で発音される。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■テンポ
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] テンポ
[TEMPO t]
・t:1〜32767
テンポを設定する。設定範囲は使用タイマーやマスタークロックの値により
変動する。
tは1分間の4分音符の数に相当する。
初期値は120。1つのトラックで指定すると全トラックに影響する。
例
[TEMPO 200] (テンポ200を設定)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] 相対テンポ
[@TEMPO t]
・t:-32768〜32767
テンポを相対的に設定する。演算の結果有効範囲を超えてしまった場合は
設定可能範囲内に自動修正される。
1つのトラックで指定すると全トラックに影響する。
例
[@TEMPO -20] (現在のテンポに20を引いた値を設定)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] タイマ設定
[TIMER t]
・t:0〜16383
割り込み周期を割り込みタイマーへ直接設定する。基本MMLの@Tに相当する。
以下に各タイマーとテンポの相関を表す。(マスタークロック=192の時)
タイマA=1024−(78125/テンポ)
タイマB=256−(78125テンポ)/16
MIDIタイマ=30,000,000/(192*テンポ)
1つのトラックで指定すると全トラックに影響する。
例
[TIMER 38] (タイマ値を38に設定する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■アゴーギク
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] アゴーギク振幅
[AGOGIK.DEPTH mode,lv1,lv2,…,lv8]
[AGOGIK.LEVEL mode,lv1,lv2,…,lv8]
・mode:OFF,1/8,OPTIONAL,ON
・lv1〜lv8:-32768〜+32767
アゴーギクとは演奏速度(テンポ)を一定の法則にしたがって変動させる効果のことを
いう。ZMUSIC Ver.3.0では、ビブラートやARCCのような算術波形やユーザー波形に
沿ってテンポを変化させることができ、これをアゴーギク機能と呼ぶ。
[AGOGIK.DEPTH]([AGOGIK.LEVEL])はアゴーギクの振幅の設定をlv1〜lv8において行う。
modeはアゴーギクの動作方式を設定するパラメータ。以下にmodeと対応する動作を示す。
・mode:ON
アゴーギクを以前の設定で再開する。
・mode:OFF
アゴーギクを停止する。
・mode:1/8
発音する音符の音長の1/8単位毎でlv1からlv8のアゴーギク振幅を次々に変化していく。
・mode:OPTIONAL
発音する音符の音長とは無関係に、任意の時間区間毎でlv1からlv8のアゴーギク振幅を
次々に設定していく。時間区間のシーケンスは後述の[AGOGIK.DELAY]で行う。
modeは省略するとスイッチはそれまでの設定を保持したままとなる。
lv1〜lv8のアゴーギク振幅は任意の位置で省略可能で、数値の頭に±を付けることに
よって相対的な値の指定も可能。例えば
[AGOGIK.LEVEL optional 64,,-10,+5]
といった記述ができる。省略した部分は前の値を持続するということになり、
その間は振幅の変更は行われない。
相対指定時にオーバーフロー/アンダーフローを起こした値は有効範囲内の
最大値,最小値に修正される。
例
[AGOGIK.LEVEL 1/8 0,0,10,20,30]
modeを1/8とし、lv1=0,lv2=0,lv3=10,lv4=20,lv5=30と設定した。
lv6,lv7,lv8は省略(未設定)。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] アゴーギク振幅増加
[AGOGIK.DEEPEN sw,spd,dpn,rpt]
・sw:OFF,ON
・spd:1〜65535
・dpn:-32768〜+32767
・rpt:0〜32767
アゴーギクの振幅の増加/減少を設定する。
・sw:OFF,ON
アゴーギクの振幅増減機能を有効にするか無効にするかを設定する。
OFFで無効に、ONで有効に設定される。
・spd:増減速度
アゴーギクの振幅の増減速度を設定する。1がもっとも速く、65535がもっとも
遅い。0はエラー。値は絶対音長に相当し、有効範囲は1〜65535。
・dpn:振幅増加量
振幅の増減量を設定する。負値は振幅減少、正値は振幅増加に対応する。
値の有効範囲は-32768〜+32767。絶対値が大きければ大きいほど、増減は
急激となる。
・rpt:増減回数
振幅はspdの速度でdpn幅増減するが、この処理を何回繰り返すかを設定する。
rpt=0とすると振幅が初期化されるまで無限に増減を繰り返す設定になる。
値の有効範囲は1〜32767。
例
[AGOGIK.DEEPEN ON,6,+8,10]
(増減スピード6で10回振幅を8増加させる)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] アゴーギク・スピード(周期)
[AGOGIK.SPEED sp1,sp2,…,sp8]
・sp1〜sp8:1〜32767
アゴーギクの振動速度を設定する。最大8つの振幅変化に対応した振動速度変化の
設定が行える。設定範囲は1≦sp1〜sp8≦32767。
実際の波形にどう影響するかは拡張MML[AGOGIK.WAVEFORM]の項で
解説するが、値が小さいほど高速に、値が大きいほど低速に音が振動する。
sp1〜sp8の振動速度は任意の位置で省略可能だが、初期値を持たないので注意。
例
[AGOGIK.SPEED 10,8,20]
(sp1=10,sp2=8,sp3=20,sp4〜sp8は省略(未設定))
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] アゴーギクディレイ
[AGOGIK.DELAY dl0,dl1,…,dl8]
・dl0:0〜65535
・dl1〜dl8:0〜65535
アゴーギクの動作モードの一つである「OPTIONAL」モードにおけるアゴーギクの振幅
切り換えタイミングを決定する区間時間の設定を行う。
dl0は最初のアゴーギクが実行されるまでのディレイ(遅延時間)に相当し、
絶対音長値で指定する。有効範囲は0〜65535。初期値は0。
dl1〜dl8は次の振幅切り換えまでの区間時間で、これも絶対音長値で指定
する。有効範囲は0〜65535。初期値は無し。
dl0〜dl8の任意のものを省略可能だが、dl1〜dl8は初期値を持たないので注意。
例
[AGOGIK.DELAY 10,24,12,12,12,28,28,12,12]
dl0=10,dl1=24,dl2=12,dl3=12,dl4=12,dl5=28,dl6=28,dl7=12,dl8=12が設定される。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] アゴーギク波形選択
[AGOGIK.WAVEFORM w]
・w:0-32767
アゴーギク波形を選択する。
w=0〜4はプリセット波形に割り当てられている。
・w=0:鋸歯波
・w=1:矩形波
・w=2:三角波
・w=3:ワンショット鋸歯波
・w=4:ランダム波
またはプリセット波形は
SAW (w=0:鋸歯波に対応)
SQUARE (w=1:矩形波に対応)
TRIANGLE (w=2:三角波に対応)
S.SAW (w=3:ワンショット鋸歯波に対応)
RANDOM (w=4:ランダム波に対応)
という文字パラメータを用いて指定することもできる。
初期値はw=2の三角波。
w=5〜7はリザーブ。w=8〜32767はユーザー定義波形となる。
ユーザー波形の登録についてはMEASURE3 zm_set_wave_from1(),MEASURE4 「.WAVE_FORM」参照。
以下に波形と各パラメータとの関係を示す。
AL:振幅 [AGOGIK.DEPTH]([AGOGIK.LEVEL])
AD:ディレイ [AGOGIK.DELAY]
T:テンポ [TEMPO]([@TEMPO],T,@T)
AS:速度 [AGOGIK.SPEED]
波形番号0:鋸歯波(SAW) (振幅が正の時)
_
/ / / / /↑AL
T→____/ / / / / ↓
←──→ / / / /  ̄
AD / / / /|
| |
AS
波形番号0:鋸歯波 (振幅が負の時)
\ \ \ \
T→____ \ \ \ \ _
←──→\ \ \ \ \ ↑
AD \ \ \ \ |\↓AL
| | ̄
AS
波形番号1:矩形波 (振幅が正の時)
 ̄ ̄  ̄ ̄  ̄ ̄  ̄ ̄
T→____ _
←──→ ↑AL
AD __ __ __ __↓
| |  ̄
AS
波形番号1:矩形波 (振幅が負の時)
_
 ̄ ̄  ̄ ̄  ̄ ̄↑AL
T→____ ↓
←──→  ̄
AD __ __ __
| |
AS
波形番号2:三角波 (振幅が正の時)
_
/\ /\ /↑AL
T→____/ \ / \ / ↓
←──→ \ / \ /|  ̄
AD \/ \/ |
| |
AS
波形番号2:三角波 (振幅が負の時)
/\ /\
T→____ / \ / \ _
←──→\ / \ / |\ ↑AL
AD \/ \/ | \↓
| | ̄
AS
波形番号3:鋸歯波シングル (振幅が正の時)
_____________
/↑AL
T→____/| ↓
←──→| |  ̄
AD AS
波形番号3:鋸歯波シングル (振幅が負の時)
T→____ _
←──→\ ↑
AD |\↓AL
| | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
AS
波形番号4:ランダム波 (振幅が正の時)
波形番号8〜32767:ユーザー波形 (振幅が正の時)
波形データ列が+5,−5,+10,+3,0の場合・・・
+10*AL/256
+5*AL/256 ̄ ̄
 ̄ ̄ __+3*AL/256
T→──── ──
←──→ __ 0*AL/256
AD -5*AL/256
←→
AS
波形番号4:ランダム波 (振幅が負の時)
波形番号8〜32767:ユーザー波形 (振幅が負の時)
波形データ列が+5,−5,+10,+3,0の場合・・・
+5*AL/256
 ̄ ̄ 0*AL/256
T→──── ──
←──→__  ̄ ̄-3*AL/256
AD -5*AL/256__
-10*AL/256
←→
AS
例
[AGOGIK.WAVEFORM TRIANGLE] (AGOGIKの波形を三角波に設定する)
上の設定でテンポ=100で、たとえば振幅が10のとき
テンポはアゴーギク作用により90〜110間を交互に変化する。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] アゴーギクスイッチ
[AGOGIK.SWITCH mode]
・mode:-1〜2 または OFF,1/8,OPTIONAL,ON
アゴーギクの動作制御を行う。modeは[AGOGIK.DEPTH]([AGOGIK.LEVEL])のパラメータ
のmodeと同等。modeは数値で与えることもでき、この時は
0=OFF,-1=1/8,1=OPTIONAL,2=ON
に対応する。
例
[AGOGIK.SWITCH 1/8]
(1/8モードでONにする)
[AGOGIK.SWITCH 2]
(以前のモード(1/8かOPTIONALのいずれか)でONにする)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] アゴーギク同期モード
[AGOGIK.SYNC m,c]
・m:0=非同期 1=同期 または OFF,ON
・c:1〜65535
アゴーギク波形の初期化(リセット)タイミングの設定を行う。
mは同期モードの設定値。0は非同期,1は同期に対応し、0と1はそれぞれ文字列
OFF,ONにも対応する。mをON,OFFといった文字列にて設定することも可能。
「同期」に設定した場合は新しく発音するたびにアゴーギク波形の初期化を行う。
「非同期」にした場合は発音と無関係にアゴーギクを続行する。
mは数値指定では0,1以外に、以下のように2進数で設定すればより高度な
初期化設定が行える。[]は初期設定を表す。
第0ビット 発音と同時にリセット 0:しない [1]:する
第1ビット タイでもリセット [0]:しない 1:する
第2ビット 休符でもリセット [0]:NO 1:YES
第3ビット 波形はキーオン毎に進行する [0]:NO 1:YES
第4ビット 波形は休符でも進行する [0]:NO 1:YES
第5ビット 小節線でリセット [0]:NO 1:YES
上から分かるようにmの初期値は1となっている。
cは同期ディレイにあたり、実際にはmで指定した条件がc回成立すると波形が初期化
されることになる。cの初期値は1。
例
[AGOGIK.SYNC %011] (発音と同時、タイ指定においても初期化する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■各種モード設定
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] タイモード
[TIE_MODE n]
・n:0〜1 または NORMAL,SPECIAL(ENHANCED)
MIDIパートのタイの処理モードを設定する。基本MML @Jの機能に相当する。
・n=0 または NORMAL
通常モードに設定する。
c&d
とした場合、通常モードでは & のない
c d
として処理され演奏される。
・n=1 または SPECIAL(ENHANCED)
FM音源パートと互換の動作をするモードに設定される。
c&d
とした場合、FM音源部と同様に、ある音の発音後、その音の持続音(減衰音)で
つぎの音の音程へ変化するようになる。よって、FM音源部での
(c<d)&(d>c)
といった表現や、
(g,e)24&e
@b0,683 c4&c+4
のような表記もFM音源部と同様に機能するようになる(ただし、最初に発音した
音高から1オクターブを超えることはできない)。
初期値はn=0(NORMAL)。
例
[TIE_MODE ENHANCED] (タイモードをFM音源互換モードに設定する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] トラックモード
[TRACK_MODE n]
・n:0,1 または NORMAL,RHYTHM
そのトラックのノートオフ処理を行うか省略するかどうかの設定を行う。
基本MML @Rの機能に相当する。
・n=1 または RHYTHM
そのトラックは「ノートオフ省略モード」になり、以後ノートオフ処理をしない。
(詳細は基本MML @Rの項を参照)
ノートオフ省略モードではゲートタイムという概念がなくなるため
基本MML Qコマンドなどの影響を受けず、エンベロープを最後まで実行する。
よって、音を細かく区切ったりなどというニュアンスは再現不可能になる。
・n=0 または NORMAL
ノートオフ処理をする通常のモードに設定する。
初期状態は[TRACK_MODE NORMAL]、つまり「ノートオフをする」モードに
設定されている。
例
[TRACK_MODE RHYTHM] (ノートオフ処理を省略する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] トラックディレイ
[TRACK_DELAY n]
・n:0-32768
そのトラックの演奏をnで与える絶対音長分遅らせる。基本MMLの@Wとほぼ同機能の
命令。初期値はn=0で、遅れ無し。
例
[TRACK_DELAY 10] (そのトラックを絶対音長10分演奏を遅らせる)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] トラック同時発音数設定
[VOICE_RESERVE n]
・n:1〜8 (FM音源パート)
・n:1〜16 (ADPCM音源パート)
そのトラックで同時に発音する音数を設定する。n>2に設定した場合は、単音を
発音する場合でも別のチャンネルで発音するようになり、MIDI音源のPOLYモードの
ような効果を得ることができる。
FM音源パートはn=1〜8、ADPCM音源パートではn=1〜16。初期値はFM音源パート,
ADPCM音源パートともにn=1。
例
[VOICE_RESERVE 4] (最大同時発音数を4に設定する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] 強制消音
[ALL_SOUND_OFF]
その時点で発音している音を強制的にすべて消音する。
ただし、ダンパーONやキーオフ無しモードに設定されている場合はノートオフ
できない。
例
[ALL_SOUND_OFF]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 最大同時発音数について ┃
┃ ┃
┃ FM音源パートとADPCM音源の最大同時発音数設定はMIDI音源のDVA(動的音源確保 ┃
┃ ┃
┃方式)とは異なり、シーケンシャルにチャンネルをトラックに割り当てる。 ┃
┃ ┃
┃ たとえば、あるトラックがチャンネル1に割り当てられており、このとき、この ┃
┃ ┃
┃トラックの最大同時発音数を4にした場合、チャンネル1,2,3,4が発音に用いられる。┃
┃ ┃
┃ また、FM音源パートにおいて、あるトラックがチャンネル7に割り当てられており ┃
┃ ┃
┃このとき、このトラックの最大同時発音数を4にした場合はチャンネル7,8,1,2が ┃
┃ ┃
┃発音に用いられる。 ┃
┃ ┃
┃ 以上のことからチャンネルの競合に注意しないと発音した音が途切れしまう ┃
┃ ┃
┃場合がある。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■エコー
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] エコー
[ECHO itv,dec,lpt]
・itv:音長
・dec:-128〜127
・lp time:0〜65535
設定後の音符をitv単位に分割して演奏する。分割した音符1つ1つに対して
線形な元音量との増減decを与えることができる。1チャンネルで疑似的な
エコー効果を与える時などに使用する。
・itv:音楽的音長
音符を分割する単位を音長(1〜32767)で指定する。音長は音楽的音長で指定するが、
数値の頭に'*'を記述すれば絶対音長(1〜32767)を指定することもできる。
・dec:減衰相対音量値
分割した音符1つ1つに対して元音量との相対的な差を与えることができる。
分割後n番目の音符の音量の変位はn*decになる。設定範囲は-128〜127。
・lp:くりかえし回数
分割を何回繰り返すかを指定する。設定範囲は0〜65535。0は無限回を意味する。
また無限回は文字列LOOPでも指定することができる。
例
[ECHO 8,-10,3] c1,,127
この例ではc1は c8 単位に 3回分割される。そして音量変位は-10なので
結果的には
c8,,-10&c8,,-20&c2.,,-30
のように演奏される。
例
[ECHO 8,-10,LOOP] c1
では、分割回数が無限回になっているので c1 をできる限り分割する。よって
演奏結果は
c8,,-10&c8,,-20&c8,,-30&c8,,-40&c8,,-50&c8,,-60&c8,,-70&c8,,-80
のようになる。
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ エコー機能の仕様制限事項 ┃
┃ ┃
┃1.連符コマンド({...}の中)に対しては効力を発揮せず ┃
┃ ┃
┃2.音量操作は具体的にはベロシティを対象としている ┃
┃ ┃
┃3.音符に対してのベロシティが省略されている場合は ┃
┃ その音符の直前のベロシティ値が基準となりこの値から ┃
┃ 減衰する(この場合は直前のベロシティから±63の変化に限定される)。 ┃
┃ ┃
┃4.音符にベロシティを絶対値設定している場合はその値を基準として ┃
┃ 減衰する(0〜127の範囲内で増減)。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■調号/拍子
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] 調号
[KEY_SIGNATURE k1,k2,…,kn]
・kn:文字列
調号を設定する。どの音階にどの変化記号(♯,♭)がつくのかを設定する。
基本MML [K.SIGN]とまったく同等の機能。
kn部分は変化記号、音階の順に設定し、1個ずつ , で区切る。
例
[K.SIGN +c,+d,+f,+g] (ホ長調)
cdfgに自動的に#(シャープ)がつく
[K.SIGN -a,-b,-d,-e] (変イ長調)
abdeに自動的に♭(フラット)がつく
[K.SIGN -a,+b]
aに♭(フラット)が、bに#(シャープ)が自動的につく
また以下の調名を記述することによって、一般的な調号の設定を行うこともできる。
Cmajor,Gmajor,Dmajor,Amajor,Emajor,Bmajor,F+major,F#major,C+major,C#major
Fmajor,B-major,Bbmajor,E-major,Ebmajor,A-major,Abmajor,D-major,Dbmajor
G-major,Gbmajor,C-major,Cbmajor
Aminor,Eminor,Bminor,F+minor,F#minor,C+minor,C#minor,G+minor,G#minor
D+minor,D#minor,A+minor,A#minor,Dminor,Gminor,Cminor,Fminor,B-minor
Bbminor,E-minor,Ebminor,A-minor,Abminor
例
[K.SIGN G-Major] 変ト長調(cdegabに♭)
ナチュラル記号である '!' を使用すれば一時的に調号の効力をなくすことができる。
また、調号の効力をなす音階に対してさらに#,+(#)や-(♭)が付いた場合は調号と
両方考慮した音階になる。
例
[K.SIGN G-Major] b! (この調だとbには通常ならば♭が付き、b-になる)
(半音下がる)のだが ! のためナチュラル指定
となりbで演奏される)
[K.SIGN G-Major] b- (この調だとbには通常ならば♭が付き、b-になる)
(半音下がる)のだが♭のためb--(=a)で 演奏される)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM]
[KEY ky]
・ky:文字列
曲全体の調を設定する。ただし演奏トラックに調号のような効果や機能はなく、
あくまで表向きの設定となる。
kyには以下の調名を与える。
Cmajor,Gmajor,Dmajor,Amajor,Emajor,Bmajor,F+major,F#major,C+major,C#major
Fmajor,B-major,Bbmajor,E-major,Ebmajor,A-major,Abmajor,D-major,Dbmajor
G-major,Gbmajor,C-major,Cbmajor
Aminor,Eminor,Bminor,F+minor,F#minor,C+minor,C#minor,G+minor,G#minor
D+minor,D#minor,A+minor,A#minor,Dminor,Gminor,Cminor,Fminor,B-minor
Bbminor,E-minor,Ebminor,A-minor,Abminor
例
[KEY D#Minor] (嬰二短調)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] 拍子の設定
[METER m]
・1/1〜255/255
曲全体の拍子を設定する。ただし演奏トラックに対してなんの効果ももたらさない。
あくまで表向きの設定となる。設定値mは分数表記を取る。
例
[METER 6/8] (8分の6拍子と設定)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■小節
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] 小節線
[---------------] ('-'は幾つでもよい)
[BAR str]
[MEASURE str]
・str:コメント文字列
五線譜でいう小節線に相当する。命令自体に機能はない。
strはZMSを見やすくするためにコメント文字列を与えることができる。
(ただしstrの情報はZMDには残らない)
トラックの初期状態は第0小節に相当する。
例
[MEASURE Aパート]
[----------------]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] 小節ジャンプ
[JUMP m]
・m:1〜
mで表される小節の先頭へジャンプする。ジャンプ後の音源やZMUSICの
内部パラメータはそこまで通常に演奏を行った時と同じになっている。基本MMLの[@]
とほぼ同等の機能を持つ。該当小節がない場合は正常に演奏されない。
例
(i)
.assign TR1,MIDI1
(t1)@1 v12
(t1)[jump2] /第2小節から演奏
(t1)cde /第0小節
(t1)[bar]
(t1)fga /第1小節
(t1)[bar]
(t1)b<cd /第2小節
(t1)[bar]
(p)
(この例では b<cd のみが演奏される。)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■演奏制御
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] 再演奏
[REPLAY t]
・t:1-65535
トラックtを強制的に初めから演奏開始にする。基本MML Jに相当する。
演奏が終了していても、演奏中であっても演奏開始を受けたトラックは
最初から演奏を始める。設定範囲は1≦t≦65535。
例
(t1) @1 v15 o4 q8 [REPLAY 2]r2[REPLAY2]
(t2) @1 v15 o4 q8 l8cdef
この例では結果的にはcdef cdefが演奏される。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] 同期
[SYNCHRONIZE t]
・t:1-65535
トラック間同期通信を行う。基本MML Wに相当する機能を持つ。
tはトラック番号を表し、この値の有効範囲は1〜65535。トラックtに対して
同期信号を送信する。同期信号を送られたトラックは直ちに演奏を再開する。
値tを省略すると、これは「同期待ち」の指示となり、直ちに演奏をひとまず中断し
他のトラックから同期信号が送られるまで演奏処理を停止する。
例
(t1) @1 v15 o4 q8 cdef [synchronize 2] ←トラック2へ同期送信
(t2) [synchronize] @1 v15 o4 q8 gab<c
↑どこからか同期信号が来るまで演奏を中断。
この例では結果的にはcdefgab<cが演奏される。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■ワーク書き換え
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ワーク書き換え
[POKE a,d]
・a:-2147483648〜2147483647
・d:0〜4294967296 または -2147483648〜2147483647。
そのトラックの演奏ワークのa番に値dを書き込む。ZMUSICの演奏トラックワークaに
値dを設定する。基本MMLの?に相当する。dは数値の頭に±を付けて相対値の設定も可能。
使用にはZMUSICのワークエリアについての十分な理解を必要とする。
使用方法によっては最悪、暴走してしまうので注意。
例
[POKE -10,+50] (演奏トラックワークの先頭-10の内容に+50加算する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■ダミー
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ダミー
[DUMMY]
何も行わない命令。ZMSコンパイル後のZMDに1バイトの空きスペースを作ることが
できる。通常の音楽制作には用いる必要はない。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■コメント
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] コメント
[COMMENT str]
・str:文字列
コメントを与える。コンパイル後のZMDにもコメント文字列が内部的に埋め込まれる
点が基本MML /と違う。
例
[COMMENT This is a pen.]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■イベント
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] イベント
[EVENT category,class,data]
・category:WORD,PICTURE,SOUND
・class:文字列
・data:文字列
演奏データに外部プレイヤー向けのイベント情報を盛り込む時に使用する。
ZMUSIC Ver.3.0自身は本命令の実行は行わないず無視する。
・category:イベント種類
イベントの種類を指定する。現在定められているのは
WORD:歌詞などの文字列データ
PICTURE:グラフィックデータ
SOUND:効果音など
の3つ。
・class:具体的なデータフォーマットタイプ
categoryで指定したイベントの種類を具体的にどのようなデータ形式を用いて
表現するかを文字列で指定する。現時点では各categoryにつき1種類のclass
のみ定義されている。以下にそれらを示す。
category=WORDの時 class=STRING 歌詞文字列
category=PICTUREの時 class=PIC PIC画像ファイルのファイル名文字列
category=SOUNDの時 class=ADPCM ADPCMファイルのファイル名文字列
例
[EVENT WORD,STRING,"豚もおだてりゃ木に登る"] (歌詞設定)
[EVENT PICTURE,PIC,FISH.PIC] (画像データ設定)
[EVENT SOUND,ADPCM,BOMB.PCM] (ADPCMデータ設定)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■アフタータッチメッセージ
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] チャンネルプレッシャー
[CH_PRESSURE n]
・n:0〜127 または -127〜+127 (+,-の符号を明記すると相対指定になる)
チャンネルプレッシャーとはチャンネル単位で設定するアフタータッチ機能をいう。
本命令はMIDIパートにおいてこのチャンネルプレッシャーのMIDIメッセージを送信する
もの。(チャンネルプレッシャーの設定値に対応する効果はMID音源側であらかじめ
設定しておく必要がある。)
設定範囲は0〜127,数値の頭に±を書いて相対指定を行うこともできる。この場合の
設定範囲は-127〜+127。
なお、FM音源パート、ADPCM音源パートではベロシティの設定(拡張MML [VELOCITY])と
同等の機能を果たす。
例
[CH_PRESSURE 64] (チャンネルプレッシャーを64に設定する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] ポリフォニックプレッシャー
[POLYPHONIC_PRESSURE ky,vl]
・ky:0-127 または O-1C〜O9G,C-1〜G9
・vl:0-127 または -127〜+127 (+,-の符号を明記すると相対指定になる)
ポリフォニックプレッシャーとはノート別に設定することができるアフタータッチ
機能のことをいう。本命令はMIDIパートにおいて、このポリフォニックプレッシャーの
MIDIメッセージを送信するもの。(ポリフォニックプレッシャーの設定値に対応する
効果はMID音源側であらかじめ設定しておく必要がある。)
ポリフォニックプレッシャーを与えるノートはkyにて指定する。kyの設定範囲は
0〜127。kyはO-1C〜O9G,C-1〜G9といったMMLで与えることもできる。
ポリフォニックプレッシャー値であるvlの設定範囲は0〜127。数値の頭に±を書いて
相対指定を行うこともできる。この場合の設定範囲は-127〜+127。
なお、FM音源,音源パートではその時点で発音している指定ノートkyに対して
音量(ベロシティ)vlを設定する動作をする。
例
[POLYPHONIC_PRESSURE o4c,64]
(ノートO4Cにポリフォニックプレッシャー値64を設定する。)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■コントロールチェンジ/NRPN
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI]([FM][ADPCM]) コントロールチェンジ設定
[CONTROL c,d]
・c:0-127
・d:0-127
MIDI楽器のコントロールチェンジcにデータdを送信する。基本MMLのYに相当する。
FM音源パート,ADPCM音源パートではFM音源レジスタcにデータdを設定する。
例
[CONTROL 11,127]
(コントロールチェンジ11番(EXPRESSION)に127を設定する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] NRPN設定
[NRPN MSB,LSB,d1,d2]
・MSB:0-127
・LSB:0-127
・d1:0-127
・d2:0-127
MSB,LSBで表されるMIDI楽器のNRPNアドレスにデータd1,d2を送信する。
基本MMLの@Yに相当する。MSB,LSBはそれぞれNRPNのアドレス上位下位を表す。
d1,d2はデータの上位下位を表す。FM音源パート,ADPCM音源パートでは無視される。
データの下位バイトd2のみ省略が可能。
例
[NRPN 1,8, $40]
(NRPN $0108にデータ$40**を設定。下位バイトは省略)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■ホールド(ダンパーペダル)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][ADPCM][MIDI] ホールド(ダンパーペダル)
[DAMPER d]
・d:0-127
ダンパーペダルの設定を行う。基本MMLの@Dに相当する。
設定範囲は0-127。一般のMIDI楽器では0-63をダンパーOFF,64-127をダンパーONと
している。ダンパーON,OFFは文字列ON,OFFでも設定が可能。このときはONがd=127,
OFFがd=0に対応する。
例
[DAMPER OFF] (ダンパー解除する)
[DAMPER 68] (ダンパーを値68でONに設定する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■フェーダー
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] トラック・フェーダー
[TRACK_FADER spd,src,dst]
・spd:0-65535
・src:0-128
・dst:0-128
トラックフェーダーの動きを設定する。基本MML \とほぼ同等の機能を持つ。
・spd:移動速度
フェーダーの移動速度を指定する。spd=1がもっとも遅く、spd=65535がもっとも早い。
spd=0は移動解除に相当する。また、移動解除指定はOFFという文字パラメータでも指
定可能。
・src:移動元フェーダーレベル
移動元のフェーダーレベルを設定する。設定範囲は0≦src≦128で、0が無音状態、
128は原音量に相当する。
・src:移動先フェーダーレベル
移動先のフェーダーレベルを設定する。設定範囲は0≦src≦128で、0が無音状態、
128は原音量に相当する。
例
[TRACK_FADER 10,128,0]
(速度10で原音量から無音状態へフェーダーを移動する(いわゆるFADEOUT))
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] チャンネル・フェーダー
[CH_FADER dev ch,spd,src,dst]
・dev:ALL,FM,ADPCM,MIDI1-,MIDI2-,MIDI3-,MIDI4-
・ch:1-16 または ALL
・spd:0-65535
・src:0-128
・dst:0-128
指定したチャンネルのフェーダーの動きを設定する。
・dev:デバイス
操作の対象となる音源デバイス名を文字列にて指定する。デバイス名と対応音源は
以下の通り。
パラメータ 操作対象音源
ALL 全デバイス
FM FM音源
ADPCM(PCM) ADPCM音源
MIDI1- MIDI出力ポート1
MIDI2- MIDI出力ポート2
MIDI3- MIDI出力ポート3
MIDI4- MIDI出力ポート4
・ch:操作対象チャンネル番号
上記のデバイスと合わせて指定する。FM音源パートのチャンネル設定範囲は1≦ch≦8。
ADPCM音源パート、MIDI音源パートのチャンネル設定範囲は1≦ch≦16。
全チャンネルを対象としたい場合は文字列 ALL を指定する。
なお、全デバイスの全チャンネルを操作対象とする場合は ALL-ALLではなく、
ALLと指定する。
・spd:移動速度
フェーダーの移動速度を指定する。spd=1がもっとも遅く、spd=65535がもっとも早い。
spd=0は移動解除に相当する。また、移動解除指定はOFFという文字パラメータでも指
定可能。
・src:移動元フェーダーレベル
移動元のフェーダーレベルを設定する。設定範囲は0≦src≦128で、0が無音状態、
128は原音量に相当する。
・src:移動先フェーダーレベル
移動先のフェーダーレベルを設定する。設定範囲は0≦src≦128で、0が無音状態、
128は原音量に相当する。
例
[CH_FADER MIDI1-10,10,128,0]
(MIDI出力ポート1の10チャンネルを速度10で原音量から無音状態へ
フェーダーを移動する(いわゆるフェードアウト))
[CH_FADER FM-ALL,0,64,64]
(FM音源全チャンネルをフェーダーレベル64に設定し固定する)
[CH_FADER ALL-2,0,64,64]
(全デバイスのチャンネル2をフェーダーレベル64に設定し固定する)
[CH_FADER ALL,10,0,128]
(全デバイスの全チャンネルを無音状態から原音量までフェーダーを
移動させる。(いわゆるフェードイン))
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM][MIDI][ADPCM] マスター・フェーダー
[MASTER_FADER dev,spd,src,dst,...]
・dev:ALL,FM,ADPCM,MIDI1,MIDI2,MIDI3,MIDI4
・spd:0〜65535
・src:0-128
・dst:0-128
マスターフェーダーの動きを設定する。
・dev:デバイス
操作の対象となる音源デバイス名を文字列にて指定する。デバイス名と対応音源は
以下の通り。
パラメータ 操作対象音源
ALL 全デバイス
FM FM音源
ADPCM(PCM) ADPCM音源
MIDI1 MIDI出力ポート1
MIDI2 MIDI出力ポート2
MIDI3 MIDI出力ポート3
MIDI4 MIDI出力ポート4
・spd:移動速度
フェーダーの移動速度を指定する。spd=1がもっとも遅く、spd=65535がもっとも早い。
spd=0は移動解除に相当する。また、移動解除指定はOFFという文字パラメータでも指
定可能。
・src:移動元フェーダーレベル
移動元のフェーダーレベルを設定する。設定範囲は0≦src≦128で、0が無音状態、
128は原音量に相当する。
・src:移動先フェーダーレベル
移動先のフェーダーレベルを設定する。設定範囲は0≦src≦128で、0が無音状態、
128は原音量に相当する。
例
[MASTER_FADER MIDI1,10,128,0]
(MIDI出力ポート1を速度10で原音量から無音状態へ
フェーダーを移動する(いわゆるフェードアウト))
[MASTER_FADER FM,0,64,64]
(FM音源をフェーダーレベル64に設定し固定する)
[MASTER_FADER ALL,10,0,128]
(全デバイスを無音状態から原音量までフェーダーを
移動させる。(いわゆるフェードイン))
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ フェーダーについて ┃
┃ ┃
┃ ZMUSIC Ver.3.0ではトラックフェーダー、チャンネルフェーダー、、マスター ┃
┃ ┃
┃フェーダーの3つのフェーダーがあります。このうちトラックフェーダーとチャンネ ┃
┃ ┃
┃ルフェーダーは、操作対象とするフェーダーの指定方法が違うだけで、処理方式も ┃
┃ ┃
┃機能も同一です。つまり、たとえばトラックフェーダーが実行されているトラックの┃
┃ ┃
┃チャンネルに対してフェーダー制御を行うとそれまで実行されていたトラックフェー┃
┃ ┃
┃ダーは無効となりチャンネルフェーダーとして新たな設定で制御されるようになり ┃
┃ ┃
┃ます。 ┃
┃ ┃
┃ 一方マスターフェーダーはまったく前者2つのフェーダーとは無縁で独立した ┃
┃ ┃
┃処理系で実行されます。よってトラックフェーダー/チャンネルフェーダーと ┃
┃ ┃
┃同時に独立した制御を行うことができます。 ┃
┃ ┃
┃ このことからトラックフェーダー/チャンネルフェーダーは、トラック毎の演奏 ┃
┃ ┃
┃表現の一手段として使用し、マスターフェーダーは曲全体の音量制御に利用するのが┃
┃ ┃
┃効果的な使用法といえます。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■FM音源専用命令
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM] FM音源レジスタ書き込み
[OPM name,d]
・name:レジスタ名文字列
・d:0-255
nameで表されるFM音源レジスタに値dを書き込む。以下にレジスタ名一覧を示す。
グローバルレジスタ名 NFRQ,NE,LFRQ,PMD,AMD,WF
チャンネルレジスタ名 CON,FB,PAN,AMS,PMS
オペレータレジスタ名 MUL,DT1,TL,AR,KS,1DR,AMS,2DR,DT2,RR,1DL
なお、オペレータ名は OP1.xxx〜OP4.xxxのように指定する。
[ADPCM][MIDI]パートで指定された場合は無視される。
例
[OPM LFRQ,150] (FM音源レジスタFRQ($18)に値150を書き込む)
[OPM OP2.TL,10] (FM音源レジスタOP2のTLに値10を書き込む)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM] FM音源ハードウェアLFO設定
[OPM.LFO wf,sync,spd,pmd,amd,pms,ams]
・wf:0〜3 または SAW,SQUARE,TRIANGLE,RANDOM
・sync:0,1 または OFF,ON
・spd:0-255
・pmd:0-127
・amd:0-127
・pms:0-7
・ams:0-3
FM音源のハードウェアLFOのパラメータの設定を行う。ZMUSIC Ver.3.0が提供する
ソフトウェアLFOとは独立してかけることができる。
設定は基本MMLの音色切り換えコマンドである @ で音色パラメータの値に更新
されてしまう。
・wf:波形番号
波形タイプを設定する。設定範囲は0〜3。またはSAW,SQUARE,TRIANGLE,RANDOMの
文字パラメータを設定することもできる。以下に数値と文字パラメータの対応を
示す。
wf 文字パラメータ 波形名
0 SAW 鋸歯波
1 SQUARE 矩形波
2 TRIANGLE 三角波
3 RANDOM ランダム波
・sync:LFO初期化設定
キーオンと同期してLFOを初期化するかどうかを設定する。0で初期化しない、
1で初期化する。またOFF,ONの文字パラメータで設定することもできる。
OFFが初期化しない、ONが初期化するに対応する。
・spd:LFO速度
ハードウェアLFOの速度の設定を行う。値の有効範囲は0〜255。
・pmd:ピッチモジュレーション振幅
ハードウェアLFOのピッチモジュレーションの振幅の設定を行う。
値の有効範囲は0〜127。
・amd:アンプリチュードモジュレーション振幅
ハードウェアLFOのアンプリチュードモジュレーションの振幅の設定を行う。
値の有効範囲は0〜127。
・pms:ピッチモジュレーション感度
ハードウェアLFOのピッチモジュレーションの感度の設定を行う。
値の有効範囲は0〜7。
・ams:アンプリチュードモジュレーション振幅感度
ハードウェアLFOのアンプリチュードモジュレーションの感度の設定を行う。
値の有効範囲は0〜7。
パラメータsync,pms,amsはチャンネル毎に独立した設定が行えるが、
これ以外パラメータ(spd,pmd,amd)の設定は、FM音源の制限仕様から、
全チャンネルに影響してしまう。
例
[OPM.LFO SQUARE,ON,120,88,50,5,2]
波形タイプを矩形波、速度を120,pmd=88,amd=50,pms=5,ams=2として設定する。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM] FM音源スロットモード設定
[SLOT_SEPARRATION s]
・s=%0000〜%1111
FM音源は1チャンネルにつき4つのオペレータを持っておりこの4つのオペレータを
組み合わせて音を作り出している。本命令はそのトラックに割り当てられている
チャンネルの4つのオペレータのうち、どれを発音に用いるかを設定する。この機能を
ZMUSIC Ver.3.0ではスロット・セパレーション(SLOT_SEPARRATION)と呼んでいる。
応用次第によってはFM音源1チャンネルで各オペレータ別々に発音させることも
できる。
パラメータsの設定範囲は%0000〜%1111。第0ビットがオペレータ1、第1ビットが
オペレータ2、第2ビットがオペレータ3、第3ビットがオペレータ4に対応する。
ビット=1のオペレータをそのトラックで使用する。s=%0000あるいは、文字列でOFF
を指定した場合は、スロット・セパレーション機能を解除する設定となる。
例
[SLOT_SEPARRATION %1010] (発音にOP2,OP4を使用する)
[SLOT_SEPARRATION OFF] (スロットセパレーション機能を解除)
サンプル
(i)
/ AR DR SR RR SL OL KS ML D1 D2 AM SQU
(@1 31 0 0 15 0 25 0 2 0 0 0
31 29 0 15 0 35 0 3 0 0 0
31 29 0 15 0 35 0 5 0 0 0
31 29 0 15 0 0 0 1 0 0 0
/ AL FB
5 7)
.assign tr1 {fm1,128,1}
.assign tr2 {fm1,128,1}
(t1)@1v16 [slot_separation %1001] cde
(t2)@1v16 [slot_separation %0110] r8cde
(p)
使用しているチャンネルはFM音源のチャンネル1だけだが、あたかも
2チャンネル使用しているような感じが表現できる。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[FM] FM音源ノイズ設定
[NOISE n]
・n:0-31 または OFF
FM音源のチャンネル8のオペレータ4(スロット32)からノイズを発生する。
nとノイズの周波数とは
n=4000/(32×ノイズ周波数[kHz])
の関係があり、設定範囲は0≦n≦31。OFFを指定した場合はノイズモード解除とみなす。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■ADPCM(PCM)関連
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[ADPCM] PCMモード設定
[PCM_MODE n]
・n:0〜1 または RHYTHM,TONE,TIMBRE
ZMUSIC Ver.3.0ではMPCM.X使用時、ADPCM(PCM)音を楽器音(TIMBRE)として登録する
ことで、FM音源,MIDIパートのように旋律を演奏することができるようになった。この
モードをZMUSIC Ver.3.0ではTIMBREモードと呼ぶ。
本命令はADPCMパートを従来通り各ノートに割り振りって使用するか(これをリズム
モードあるいはトーンモードと呼ぶ)、楽器音として使用するかを選択設定するもの。
・n=0 または RHTHM,TONE
ADPCM音源をリズムモード(トーンモード)で使用する。
・n=1 または TIMBRE
ADPCM音源をティンバーモードで使用する。
初期設定はn=0(RHYTHM,TONE)のリズムモード(トーンモード)。
例
[PCM_MODE TIMBRE] (トラックをTIMBREモードに設定)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[ADPCM] 周波数切り換え
[FREQUENCY n]
・n:0〜6
内蔵ADPCM音源の再生周波数を変更する。基本MMLの@Fの機能に相当する。
設定範囲は0≦n≦6で、各値は
n= 0: 3.9kHz
1: 5.2kHz
2: 7.8kHz
3:10.4kHz
4:15.6kHz
5:20.8kHz *1
6:31.2kHz *1
に対応する。初期値は4で値省略時は4に自動設定される。
*1の周波数はADPCMチップに対して改造を行ったX680x0に対してのみ有効。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■エフェクト
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] エフェクト
[EFFECT rvb,cho,dly]
・rvb:0-127
・cho:0-127
・dly:0-127
・ef2:0-127
・ef5:0-127
MIDI楽器のエフェクトを制御する。基本MML `Eに相当する機能。
コントロールチェンジのエフェクト1(GSではREVERB)へrvbを、
エフェクト3(GSではCHORUS)へchoを、エフェクト4(GSではDELAY)へdlyを出力する。
この他、MIDI規格で定められているエフェクト2,エフェクト5にも値が設定可能。
(よく使われるエフェクト1,3,4を先頭に先頭に持ってきてある)
ただし、楽器側がこれらのエフェクト制御に対応していない場合は、無意味。
パラメータは任意のものを省略できる。パラメータの有効範囲は0〜127。
初期値は不定。
FM音源ハートやADPCMパートで使用しても無視される。
例
[EFFECT 0,10,5] (REVERBを0,CHORUSを10,DELAYを5に設定する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] リバーブ
[EFFECT.REVERB rvb]
・rvb:0-127
リバーブ(エフェクト1)のかかり具合を設定する。値の設定範囲は0〜127。
MIDI楽器側がこれらのエフェクト制御に対応していない場合は、無意味。
また、FM音源ハートやADPCMパートで使用しても無視される。
例
[EFFECT.REVERB 127] (リバーブの設定を127にする)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] コーラス
[EFFECT.CHORUS cho]
・cho:0-127
コーラス(エフェクト3)のかかり具合を設定する。値の設定範囲は0〜127。
MIDI楽器側がこれらのエフェクト制御に対応していない場合は、無意味。
また、FM音源ハートやADPCMパートで使用しても無視される。
例
[EFFECT.CHORUS 127] (コーラスの設定を127にする)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] ディレイ
[EFFECT.DELAY dly]
・dly:0-127
ディレイ(エフェクト4)のかかり具合を設定する。値の設定範囲は0〜127。
MIDI楽器側がこれらのエフェクト制御に対応していない場合は、無意味。
また、FM音源ハートやADPCMパートで使用しても無視される。
例
[EFFECT.DELAY 127] (ディレイの設定を127にする)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■MIDIデータ送信
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] MIDIデータ送信
[MIDI_DATA n1,n2,…]
・ni:0-127
MIDIデータの送信を行う。基本MML @Xに相当する機能。
メーカーや楽器の種類には無関係でチェックサム等も発信しない。
データはいくつでも記述可能。各値の設定範囲は0≦xi≦255であるが、256以上の値を
設定した場合は7ビットずつに分割されて送信される。(8ビットでない点に注意)
(例:8192→$00,40の様に一般的なMIDI慣例に従い、下位、上位の順に送信される)
また、"〜"で括ればその文字コードを送信できる。ただし、同機能の共通コマンド
.MIDI_DATAとは異なり複数行にパラメータを分けて書くことはできない。
楽器のメモリーを書き換える場合もあるので各自の責任のもとで使用すること。
例
[MIDI_DATA $b0,11,127] ($b0,11,127を送信する)
[MIDI_DATA "ABC"] ($41,$42,$43を送信する)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] ローランド・エクスクルーシブ
[ROLAND_EXCLUSIVE n1,n2,…]
・ni:0-127
ローランド系の楽器にエクスクルーシブ・メッセージ送信を行う。基本MML Xと同等の
機能。
後述の[INSTRUMENT_ID]でメーカーIDをローランド($41)に設定しておくことが前提。
データの転送方式は「ワン・ウェイ・コミュニケーションのデータセット」
(コマンドID=$12)。
データはいくつでも記述可能。各値の設定範囲は0≦ni≦127であるが、128以上の値を
設定した場合は7ビットずつに分割されて送信される。
(例:8192→$00,40の様に一般的なMIDI慣例に従い、下位、上位の順に送信される)
また、"〜"で括ればその文字コードを送信できる。ただし、同機能の共通コマンド
.ROLAND_EXCLUSIVEとは異なり複数行にパラメータを分けて書くことはできない。
ローランドエクスクルーシブに不可欠なチェックサム値は自動的に送信される。
本命例はリバーブパラメータの書き換えや音色のパラメータ単位の書き換えを
行うのに有効だが、楽器のメモリーを直接操作するものなので、各自の責任のもとで
使用すること。
例
[ROLAND_EXCLUSIVE $40,$00,$7f,$00]
[ROLAND_EXCLUSIVE "ABC"]
(ローランドエクスクルーシブとして$40,$00,$7f,$00をMIDI楽器へ送信)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] ヤマハ・エクスクルーシブ
[YAMAHA_EXCLUSIVE n1,n2,…]
・ni:0-127
ヤマハ系の楽器にエクスクルーシブ・メッセージ送信を行う
後述の[INSTRUMENT_ID]でメーカーIDをヤマハ($43)に設定しておくことが前提。
データの転送方式は「バルク・ダンプ」が使用される。
データはいくつでも記述可能。各値の設定範囲は0≦ni≦127であるが、128以上の値を
設定した場合は7ビットずつに分割されて送信される。
(例:8192→$00,40の様に一般的なMIDI慣例に従い、下位、上位の順に送信される)
また、"〜"で括ればその文字コードを送信できる。ただし、同機能の共通コマンド
.YAMAHA_EXCLUSIVEとは異なり複数行にパラメータを分けて書くことはできない。
ヤマハ・エクスクルーシブに不可欠な転送バイト数、チェックサム値は自動的に
送信される。
本命例はリバーブパラメータの書き換えや音色のパラメータ単位の書き換えを
行うのに有効だが、楽器のメモリーを直接操作するものなので、各自の責任のもとで
使用すること。
例
[YAMAHA_EXCLUSIVE $00,$00,$7e,$00]
(ヤマハ・エクスクルーシブとして$00,$00,$7e,$00をMIDI楽器へ送信)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] MIDI楽器IDの登録
[INSTRUMENT_ID n1,n2,n3]
・n1:0〜127
・n2:0〜127
・n3:0〜127
ZMUSICにそのトラックを演奏する楽器のメーカーID、デバイスID、
モデルIDを設定する(所有しているMIDI楽器の各値にいては楽器のマニュアル
を参照)。これは特に設定しなくても通常のコマンドの動作には全く影響しない。
ただし、
[ROLAND_EXCLUSIVE]
[EFFECT]
に関しては楽器個別の動作をするため、これらのコマンドを使用する前には必ず
設定しなければならない。
n1=メーカーID(例:ROLAND=$41, KORG=$42, YAMAHA=$43)
n2=デバイスID(各ユーザーが楽器に設定した値。特に設定した覚えのない
場合はその楽器のデフォルトのデバイスIDを設定する)
n3=モデルID(例:MT32=$16, SC55=$42 or $45)
初期値なし。
例
[INSTRUMENT_ID $41,$10,$42] (ROLAND,DEV-ID=$10,SC55に設定)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■SC55/mkII(SC155/CM300/CM500)専用命令
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] SC55初期化
[SC55_INIT id]
[SC55_RESET id]
[GS_INIT id]
[GS_RESET id]
・id:$00〜$7f
SC55の初期化を行なう。
idはSC55のデバイスIDで省略可能、省略時は$10。
例
[SC55_INIT $10]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] SC55の各パートのボイスリザーブ
[SC55_V_RESERVE id {n1,n2,…,n16}]
[SC55_PARTIAL_RESERVE id {n1,n2,…,n16}]
[GS_V_RESERVE id {n1,n2,…,n16}]
[GS_PARTIAL_RESERVE id {n1,n2,…,n16}]
・id:$00〜$7f
・n1〜n16:0〜127
SC55の各パートのボイスリザーブを行う。
idはSC55のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n16)は必ず16個設定しなくてはならない。
またパラメータ各値の総和は音源の同時発音数以内に収める必要がある。
n1〜n16はそれぞれパート1〜16のボイスリザーブ値に対応し、10番目の
パラメータはリズムパートに対応する。
同機能の共通コマンド.GS_PARTIAL_RESERVEとは異なり複数行にパラメータを
分けて書くことはできない。
(SC55マニュアルp79, またはMEASURE3 zm_gs_partial_reserve()参照))
例
[SC55_PARTIAL_RESERVE $10 {2,4,2,2,0,0,0,0,0,5,0,0,0,0,0,0}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] SC55のリバーブパラメータの設定
[SC55_REVERB id {n1,n2,…,n7}]
[GS_REVERB id {n1,n2,…,n7}]
・id:$00〜$7f
・n1〜n7:0-127
SC55のリバーブパラメータの設定を行う。
idはSC55のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n7)は7個まで任意の個数設定可能。同機能の共通コマンド
.GS_REVERBとは異なり複数行にパラメータを分けて書くことはできない。
n1:REVERB MACRO 00:Room1,01:Room2,02:Room3,03:Hall1,04:Hall2
05:Plate,06:Delay,07:Panning Delay(FB)
n2:REVERB CHARACTER ($00〜$07)
n3:REVERB PRE-LPF ($00〜$07)
n4:REVERB LEVEL ($00〜$7F)
n5:REVERB TIME ($00〜$7F)
n6:REVERB DELAY FEEDBACK ($00〜$7F)
n7:REVERB SEND LEVEL TO CHORUS ($00〜$7F)
(SC55マニュアルp79参照)
例
[SC55_REVERB $10 ={4,4,0,88,70,0,0}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] SC55のコーラスパラメータの設定
[SC55_CHORUS id {n1,n2,…,n8}]
[GS_CHORUS id {n1,n2,…,n8}]
・id:$00〜$7f
・n1〜n8:0-127
SC55のコーラスパラメータの設定を行う。
idはSC55のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n8)は8個まで任意の個数設定可能。同機能の共通コマンド
.GS_CHORUSとは異なり複数行にパラメータを分けて書くことはできない。
n1:CHORUS MACRO 00:Chorus1,01:Chorus2,02:Chorus3,03:Chorus4
04:Feedback Chorus,05:Flanger,06:Short Delay
07:Short Delay(FB)
n2:CHORUS PRE-LPF ($00〜$07)
n3:CHORUS LEVEL ($00〜$7F)
n4:CHORUS FEEDBACK ($00〜$7F)
n5:CHORUS DELAY ($00〜$7F)
n6:CHORUS RATE ($00〜$7F)
n7:CHORUS DEPTH ($00〜$7F)
n8:CHORUS SEND LEVEL TO REVERB ($00〜$7F)
(SC55マニュアルp79参照)
例
[SC55_CHORUS $10 ={2,0,100,8,80,3,19,0}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] SC55のパートのパラメータを設定
[SC55_PART_SETUP pt,id {n1,n2,…,n119}]
[GS_PART_SETUP pt,id {n1,n2,…,n119}]
[SC55_PART_PARAMETER pt,id {n1,n2,…,n119}]
[GS_PART_PARAMETER pt,id {n1,n2,…,n119}]
・pt:1〜16
・id:0-127
・n1〜n119:0-127
SC55のパートのパラメータを設定する。
ptはパートナンバーを表し、1≦pt≦16で省略は不可。またパートナンバー=10は
リズムパートに対応する。
idはSC55のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n119)は119個まで任意の個数設定可能。ただし、同機能の
共通コマンド.GS_PART_SETUPとは異なり複数行にパラメータを分けて書くことは
できない。
n1:Rx CHANNEL (1〜16,17=OFF)
n2:Rx PITCH BEND (0〜1:OFF/ON)
n3:Rx CH PRESSURE(CAf) (0〜1:OFF/ON)
n4:Rx PROGRAM CHANGE (0〜1:OFF/ON)
n5:Rx CONTROL CHANGE (0〜1:OFF/ON)
n6:Rx POLY PRESSURE(PAf) (0〜1:OFF/ON)
n7:Rx NOTE MESSAGE (0〜1:OFF/ON)
n8:Rx RPN (0〜1:OFF/ON)
n9:Rx NRPN (0〜1:OFF/ON)
n10:Rx MODURATION (0〜1:OFF/ON)
n11:Rx VOLUME (0〜1:OFF/ON)
n12:Rx PANPOT (0〜1:OFF/ON)
n13:Rx EXPRESSION (0〜1:OFF/ON)
n14:Rx HOLD1 (0〜1:OFF/ON)
n15:Rx PORTAMENTO (0〜1:OFF/ON)
n16:Rx SOSTENUTO (0〜1:OFF/ON)
n17:Rx SOFT (0〜1:OFF/ON)
n18:MONO/POLY MODE (0〜1:MONO/POLY)
n19:ASSIGN MODE (0:SINGLE,1:LIMITED-MULTI,2:FULL-MULTI)
n20:USE FOR RHYTHM PART (0:OFF,1:MAP1,2:MAP2)
n21:PITCH KEY SHIFT ($28〜$58:−24〜+24[semitone])
n22:PITCH OFFSET FINE(upper) ($08〜$F8:−12.0〜+12.0[Hz])
n23:PITCH OFFSET FINE(lower) 〃
n24:PART LEVEL (0〜127)
n25:VELOCITY SENSE DEPTH (0〜127)
n26:VELOCITY SENSE OFFSET (0〜127)
n27:PART PANPOT (0:RANDOM,01(LEFT)〜64〜127(RIGHT))
n28:KEY RANGE LOW (0〜127:C-1〜G9)
n29:KEY RANGE HIGH (0〜127:C-1〜G9)
n30:CC1 CONTROL NUMBER (0〜127)
n31:CC2 CONTROL NUMBER (0〜127)
n32:CHORUS SEND DEPTH (0〜127)
n33:REVERB SEND DEPTH (0〜127)
n34:Vibrato rate ($0E〜$72:−50〜+50)
n35:Vibrato depth ($0E〜$72:−50〜+50)
n36:TVF cutoff freq. ($0E〜$50:−50〜+16)
n37:TVF resonance ($0E〜$72:−50〜+50)
n38:TVF&TVA Env.attack ($0E〜$72:−50〜+50)
n39:TVF&TVA Env.decay ($0E〜$72:−50〜+50)
n40:TVF&TVA Env.release ($0E〜$72:−50〜+50)
n41:Vibrato delay ($0E〜$72:−50〜+50)
n42:SCALE TUNING C ($00〜$7F:−64〜+63[cent])
n43:SCALE TUNING C# ($00〜$7F:−64〜+63[cent])
n44:SCALE TUNING D ($00〜$7F:−64〜+63[cent])
n45:SCALE TUNING D# ($00〜$7F:−64〜+63[cent])
n46:SCALE TUNING E ($00〜$7F:−64〜+63[cent])
n47:SCALE TUNING F ($00〜$7F:−64〜+63[cent])
n48:SCALE TUNING F# ($00〜$7F:−64〜+63[cent])
n49:SCALE TUNING G ($00〜$7F:−64〜+63[cent])
n50:SCALE TUNING G# ($00〜$7F:−64〜+63[cent])
n51:SCALE TUNING A ($00〜$7F:−64〜+63[cent])
n52:SCALE TUNING A# ($00〜$7F:−64〜+63[cent])
n53:SCALE TUNING B ($00〜$7F:−64〜+63[cent])
n54:MOD PITCH CONTROL ($28〜$58:−24〜+24[semitone])
n55:MOD TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n56:MOD AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n57:MOD LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n58:MOD LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n59:MOD LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n60:MOD LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n61:MOD LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n62:MOD LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n63:MOD LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n64:MOD LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
n65:BEND PITCH CONTROL ($28〜$58:−24〜+24[semitone])
n66:BEND TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n67:BEND AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n68:BEND LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n69:BEND LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n70:BEND LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n71:BEND LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n72:BEND LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n73:BEND LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n74:BEND LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n75:BEND LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
n76:CAf PITCH CONTROL ($28〜$58:−24〜+24[semitone])
n77:CAf TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n78:CAf AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n79:CAf LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n80:CAf LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n81:CAf LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n82:CAf LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n83:CAf LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n84:CAf LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n85:CAf LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n86:CAf LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
n87:PAf PITCH CONTROL ($28〜$58:−24〜+24[semitone])
n88:PAf TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n89:PAf AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n90:PAf LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n91:PAf LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n92:PAf LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n93:PAf LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n94:PAf LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n95:PAf LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n96:PAf LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n97:PAf LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
n98:CC1 PITCH CONTROL ($28〜$58:−24〜+24[semitone])
n99:CC1 TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n100:CC1 AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n101:CC1 LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n102:CC1 LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n103:CC1 LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n104:CC1 LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n105:CC1 LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n106:CC1 LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n107:CC1 LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n108:CC1 LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
n109:CC2 PITCH CONTROL ($28〜$58:−24〜+24[semitone])
n110:CC2 TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n111:CC2 AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n112:CC2 LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n113:CC2 LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n114:CC2 LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n115:CC2 LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n116:CC2 LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n117:CC2 LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n118:CC2 LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n119:CC2 LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
(SC55マニュアルp75,p79〜80参照)
例
[SC55_PART_SETUP 16 {17,1,1,1}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] SC55のドラムセットの設定
[SC55_DRUM_SETUP map,key,id {n1,n2,…,n8}]
[GS_DRUM_SETUP map,key,id {n1,n2,…,n8}]
・map:0,1
・key:0-127
・id:0-127
・n1〜n8:0-127
SC55のドラムセットの設定を変える。
mapはマップナンバーを表し設定範囲は0,1。
keyはノートナンバーを表し設定範囲は0≦key≦127。
idはSC55のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n8)は8個まで任意の個数設定可能。同機能の共通コマンド
.GS_DRUM_SETUPとは異なり複数行にパラメータを分けて書くことはできない。
n1:PLAY KEY NUMBER (0〜127)
n2:LEVEL (0〜127)
n3:ASSIGN GROUP NUMBER (0:NON,1〜127)
n4:PANPOT (0:RANDOM,01(LEFT)〜64〜127(RIGHT))
n5:REVERB DEPTH (0〜127:0.0〜1.0)
n6:CHORUS DEPTH (0〜127:0.0〜1.0)
n7:Rx NOTE OFF (0〜1:OFF/ON)
n8:Rx NOTE ON (0〜1:OFF/ON)
(SC55マニュアルp82参照)
例
[GS_DRUM_SETUP 0,24,$10 {24,127,0,0,10,15,0,1}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] SC55のドラムセット名の設定
[SC55_DRUM_NAME map,id str]
[GS_DRUM_NAME map,id str]
・map:0,1
・id:0-127
・str:文字列
SC55のドラムセット名の設定を行う。
mapはマップナンバーを表し設定範囲は0,1。
idはSC55のデバイスIDで省略可能、省略時は$10。
strはドラセット名を表す文字列で、"〜"で括り12文字以内で指定する。
(SC55マニュアルp82参照)
例
[GS_DRUM_NAME 0,$10 "USER SET"]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] SC55コンソールへの文字列表示
[SC55_PRINT id,str]
[GS_PRINT id,str]
・id:0-127
・str:文字列
SC55のコンソールに文字列を表示する。
文字列strは"〜"で括り32文字以内に収めなければならない。
idはSC55のデバイスIDで省略可能、省略時は$10。
例
[GS_PRINT $10,"HELLO"]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] SC55グラフィックディスプレイへのドットパターン表示
[SC55_DISPLAY id {n1,n2,…,n16}]
[GS_DISPLAY id {n1,n2,…,n16}]
・id:0-127
・n1〜n16:%0000000000000000〜%1111111111111111
SC55のグラフィックディスプレイにドットパターン(16x16)を表示する。
idはSC55のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n16)は必ず16個。同機能の共通コマンド.GS_DISPLAYとは異なり
複数行にパラメータを分けて書くことはできない。
n1:1段目のドットパターン
n2:2段目のドットパターン
:
:
n16:16段目のドットパターン
例
[GS_DISPLAY $10 {$ffff,9,8,7,65,40,0,0,0,1,2,3,4,5,$8000,$ffff}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■GM音源専用命令
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] GM音源初期化
[GM_SYSTEM_ON]
GM音源を初期化状態にリセットする。パラメータは無し。
例
[GM_SYSTEM_ON]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■SC88/SC88VL専用命令
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] SC88モード設定
[SC88_MODE md,id]
[SC88_MODE_SET md,id]
・md:1,2
・id:0-127
SC88のモードの設定を行う。
idはSC88のデバイスIDで省略可能、省略時は$10。
mdはモード値を表し、md=1でSingleモード、md=2でDoubleモードが設定される。
(SC88VLマニュアルp77参照)
例
[SC88_MODE 1,$10]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] SC88リバーブ・パラメータの設定
[SC88_REVERB id {n1,n2,...,n8}]
・id:0-127
・n1〜n8:下記参照
SC88のリバーブ・パラメータの設定を行う。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n8)は8個以内で任意の個数設定可能。同機能の共通コマンド
.SC88_REVERBとは異なり複数行にパラメータを分けて書くことはできない。
n1:REVERB MACRO 00:Room1,01:Room2,02:Room3,03:Hall1,04:Hall2
05:Plate,06:Delay,07:Panning Delay(FB)
n2:REVERB CHARACTER ($00〜$07)
n3:REVERB PRE-LPF ($00〜$07)
n4:REVERB LEVEL ($00〜$7F)
n5:REVERB TIME ($00〜$7F)
n6:REVERB DELAY FEEDBACK ($00〜$7F)
n7:REVERB SEND LEVEL TO CHORUS ($00〜$7F/SC88ではダミー)
n8:REVERB PRE-DELAY TIME ($00〜$7F)
(SC88VLマニュアルp77参照)
例
[SC88_REVERB $10 {0,0,127,10,10,0,127}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] SC88コーラス・パラメータの設定
[SC88_CHORUS id {n1,n2,...,n9}]
・id:0-127
・n1〜n9:下記参照
SC88のコーラス・パラメータの設定を行う。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n9)は9個以内で任意の個数設定可能。同機能の共通コマンド
.SC88_CHORUSとは異なり複数行にパラメータを分けて書くことはできない。
n1:CHORUS MACRO 00:Chorus1,01:Chorus2,02:Chorus3,03:Chorus4
04:Feedback Chorus,05:Flanger,06:Short Delay
07:Short Delay(FB)
n2:CHORUS PRE-LPF ($00〜$07)
n3:CHORUS LEVEL ($00〜$7F)
n4:CHORUS FEEDBACK ($00〜$7F)
n5:CHORUS DELAY ($00〜$7F)
n6:CHORUS RATE ($00〜$7F)
n7:CHORUS DEPTH ($00〜$7F)
n8:CHORUS SEND LEVEL TO REVERB ($00〜$7F)
n9:CHORUS SEND LEVEL TO DELAY ($00〜$7F)
(SC88VLマニュアルp78参照)
例
[SC88_CHORUS $10 {0,3,60,10,10,10,24,30,30}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] SC88ディレイ・パラメータの設定
[SC88_DELAY id {n1,n2,...,n11}]
・id:0-127
・n1〜n11:下記参照
SC88のディレイ・パラメータの設定を行う。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n11)は11個以内で任意の個数設定可能。同機能の共通コマンド
.SC88_DELAYとは異なり複数行にパラメータを分けて書くことはできない。
n1:DELAY MACRO 00:Delay1,01:Delay2,02:Delay3
03:Delay4,04:Pan Delay1
05:Pan Delay2,06:Pan Delay3,07:Pan Delay4
08:Delay to Reverb,09:Pan Repeat
n2:DELAY PRE-LPF ($00〜$07)
n3:DELAY TIME CENTER ($01〜$73:0.1ms〜sec)
n4:DELAY TIME RATIO LEFT ($01〜$78:4〜500%)
n5:DELAY TIME RATIO RIGHT ($01〜$78:4〜500%)
n6:DELAY LEVEL CENTER ($00〜$7F)
n7:DELAY LEVEL LEFT ($00〜$7F)
n8:DELAY LEVEL RIGHT ($00〜$7F)
n9:DELAY LEVEL ($00〜$7F)
n10:DELAY FEEDBACK ($00〜$7F:-64〜+63)
n11:DELAY SENDLEVEL TO REVERB ($00〜$7F)
(SC88VLマニュアルp78参照)
例
[SC88_DELAY $10 {0,3,10,22,22,64,64,64,64,64,30}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] SC88イコライザ・パラメータの設定
[SC88_EQUALIZER id {n1,n2,n3,n4}]
・id:0-127
・n1〜n4:下記参照
SC88のイコライザ・パラメータの設定を行う。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n4)は4個以内で任意の個数設定可能。同機能の共通コマンド
.SC88_EQUALIZERとは異なり複数行にパラメータを分けて書くことはできない。
n1:EQ LOW FREQ (0,1:200Hz,400Hz)
n2:EQ LOW GAIN ($34〜$4c:-12〜+12dB)
n3:EQ HIGH FREQ (0,1:3kHz,6kHz)
n4:EQ HIGH GAIN ($34〜$4c:-12〜+12dB)
(SC88VLマニュアルp78参照)
例
[SC88_EQUALIZER $10 {0,$40,1,$40}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] SC88パート・パラメータの設定
[SC88_PART_SETUP pt,id {n1,n2,...,n127}]
[SC88_PART_PARAMETER pt,id {n1,n2,...,n127}]
・pt:1〜16
・id:0-127
・n1〜n127:下記参照
SC88パート・パラメータの設定する。
ptはパートナンバーを表し、1≦pt≦16で省略は不可。またパートナンバー=10は
リズムパートに対応する。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n127)は127個まで任意の個数設定可能。ただし、同機能の
共通コマンド.SC88_PART_SETUPとは異なり複数行にパラメータを分けて書くことは
できない。
n1:Rx CHANNEL (1〜16,17=OFF)
n2:Rx PITCH BEND (0〜1:OFF/ON)
n3:Rx CH PRESSURE(CAf) (0〜1:OFF/ON)
n4:Rx PROGRAM CHANGE (0〜1:OFF/ON)
n5:Rx CONTROL CHANGE (0〜1:OFF/ON)
n6:Rx POLY PRESSURE(PAf) (0〜1:OFF/ON)
n7:Rx NOTE MESSAGE (0〜1:OFF/ON)
n8:Rx RPN (0〜1:OFF/ON)
n9:Rx NRPN (0〜1:OFF/ON)
n10:Rx MODURATION (0〜1:OFF/ON)
n11:Rx VOLUME (0〜1:OFF/ON)
n12:Rx PANPOT (0〜1:OFF/ON)
n13:Rx EXPRESSION (0〜1:OFF/ON)
n14:Rx HOLD1 (0〜1:OFF/ON)
n15:Rx PORTAMENTO (0〜1:OFF/ON)
n16:Rx SOSTENUTO (0〜1:OFF/ON)
n17:Rx SOFT (0〜1:OFF/ON)
n18:MONO/POLY MODE (0〜1:MONO/POLY)
n19:ASSIGN MODE (0:SINGLE,1:LIMITED-MULTI,2:FULL-MULTI)
n20:USE FOR RHYTHM PART (0:OFF,1:MAP1,2:MAP2)
n21:PITCH KEY SHIFT ($28〜$58:−24〜+24[semitone])
n22:PITCH OFFSET FINE(upper) ($08〜$F8:−12.0〜+12.0[Hz])
n23:PITCH OFFSET FINE(lower) 〃
n24:PART LEVEL (0〜127)
n25:VELOCITY SENSE DEPTH (0〜127)
n26:VELOCITY SENSE OFFSET (0〜127)
n27:PART PANPOT (0:RANDOM,01(LEFT)〜64〜127(RIGHT))
n28:KEY RANGE LOW (0〜127:C-1〜G9)
n29:KEY RANGE HIGH (0〜127:C-1〜G9)
n30:CC1 CONTROL NUMBER (0〜127)
n31:CC2 CONTROL NUMBER (0〜127)
n32:CHORUS SEND LEVEL (0〜127)
n33:REVERB SEND LEVEL (0〜127)
n34:Rx BANK SELECT (0:OFF,1:ON)
n35:Rx BANK SELECT LSB (0:OFF,1:ON)
n36:PITCH FINE TUNE(Upper) ($00 00〜$40 00〜$7f 7f:-100〜0〜+100)
n37:PITCH FINE TUNE(Lower)
n38:DELAY SEND LEVEL (0〜127)
n39:Vibrato rate ($00〜$7f:−64〜+63)
n40:Vibrato depth ($00〜$7f:−64〜+63)
n41:TVF cutoff freq. ($00〜$7f:−64〜+63)
n42:TVF resonance ($00〜$7f:−64〜+63)
n43:TVF&TVA Env.attack ($00〜$7f:−64〜+63)
n44:TVF&TVA Env.decay ($00〜$7f:−64〜+63)
n45:TVF&TVA Env.release ($00〜$7f:−64〜+63)
n46:Vibrato delay ($00〜$7f:−64〜+63)
n47:SCALE TUNING C ($00〜$7F:−64〜+63[cent])
n48:SCALE TUNING C# ($00〜$7F:−64〜+63[cent])
n49:SCALE TUNING D ($00〜$7F:−64〜+63[cent])
n50:SCALE TUNING D# ($00〜$7F:−64〜+63[cent])
n51:SCALE TUNING E ($00〜$7F:−64〜+63[cent])
n52:SCALE TUNING F ($00〜$7F:−64〜+63[cent])
n53:SCALE TUNING F# ($00〜$7F:−64〜+63[cent])
n54:SCALE TUNING G ($00〜$7F:−64〜+63[cent])
n55:SCALE TUNING G# ($00〜$7F:−64〜+63[cent])
n56:SCALE TUNING A ($00〜$7F:−64〜+63[cent])
n57:SCALE TUNING A# ($00〜$7F:−64〜+63[cent])
n58:SCALE TUNING B ($00〜$7F:−64〜+63[cent])
n59:MOD PITCH CONTROL ($28〜$58:−24〜+24[semitone])
n60:MOD TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n61:MOD AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n62:MOD LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n63:MOD LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n64:MOD LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n65:MOD LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n66:MOD LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n67:MOD LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n68:MOD LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n69:MOD LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
n70:BEND PITCH CONTROL ($40〜$58:−24〜+24[semitone])
n71:BEND TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n72:BEND AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n73:BEND LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n74:BEND LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n75:BEND LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n76:BEND LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n77:BEND LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n78:BEND LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n79:BEND LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n80:BEND LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
n81:CAf PITCH CONTROL ($28〜$58:−24〜+24[semitone])
n82:CAf TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n83:CAf AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n84:CAf LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n85:CAf LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n86:CAf LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n87:CAf LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n88:CAf LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n89:CAf LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n90:CAf LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n91:CAf LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
n92:PAf PITCH CONTROL ($28〜$58:−24〜+24[semitone])
n93:PAf TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n94:PAf AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n95:PAf LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n96:PAf LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n97:PAf LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n98:PAf LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n99:PAf LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n100:PAf LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n101:PAf LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n102:PAf LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
n103:CC1 PITCH CONTROL ($28〜$58:−24〜+24[semitone])
n104:CC1 TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n105:CC1 AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n106:CC1 LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n107:CC1 LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n108:CC1 LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n109:CC1 LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n110:CC1 LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n111:CC1 LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n112:CC1 LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n113:CC1 LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
n114:CC2 PITCH CONTROL ($28〜$58:−24〜+24[semitone])
n115:CC2 TVF CUTOFF CONTROL ($00〜$7F:−9600〜+9600[CENT])
n116:CC2 AMPLITUDE CONTROL ($00〜$7F:−100.0〜+100.0[%])
n117:CC2 LFO1 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n118:CC2 LFO1 PITCH DEPTH ($00〜$7F:0〜600[cent])
n119:CC2 LFO1 TVF DEPTH ($00〜$7F:0〜2400[cent])
n120:CC2 LFO1 TVA DEPTH ($00〜$7F:0〜100.0[%])
n121:CC2 LFO2 RATE CONTROL ($00〜$7F:−10.0〜+10.0[Hz])
n122:CC2 LFO2 PITCH DEPTH ($00〜$7F:0〜600[cent])
n123:CC2 LFO2 TVF DEPTH ($00〜$7F:0〜2400[cent])
n124:CC2 LFO2 TVA DEPTH ($00〜$7F:0〜100.0[%])
n125:TONE MAP NUMBER (0:SELECTED,1:SC55,2:SC88)
n126:TONE MAP0 NUMBER (1:SC55,2:SC88)
n127:EQ ON/OFF (0:OFF,1:ON)
(SC88VLマニュアルp79〜p81参照)
例
[SC88_PART_SETUP 16 {17,1,1,1}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] SC88のドラム・セットアップ設定
[SC88_DRUM_SETUP map,key,id {n1,n2,...,n9}]
・map:0,1
・key:0-127
・id:0-127
・n1〜n8:0-127
SC88のドラム・セットアップの設定を行う。
mapはマップナンバーを表し設定範囲は0,1。
keyはノートナンバーを表し設定範囲は0≦key≦127。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n9)は9個まで任意の個数設定可能。同機能の共通コマンド
.SC88_DRUM_SETUPとは異なり複数行にパラメータを分けて書くことはできない。
n1:PLAY KEY NUMBER (0〜127)
n2:LEVEL (0〜127)
n3:ASSIGN GROUP NUMBER (0:NON,1〜127)
n4:PANPOT (0:RANDOM,0(LEFT)〜64〜127(RIGHT))
n5:REVERB DEPTH (0〜127:0.0〜1.0)
n6:CHORUS DEPTH (0〜127:0.0〜1.0)
n7:Rx NOTE OFF (0〜1:OFF/ON)
n8:Rx NOTE ON (0〜1:OFF/ON)
n9:DELAY SEND LEVEL (0-127:0.0〜1.0)
(SC88VLマニュアルp82参照)
例
[SC88_DRUM_SETUP $10 {42,127,0,64,64,64,1,1,24}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] SC88のドラムセット名の設定
[SC88_DRUM_NAME map,id str]
・map:0,1 または USER65,USER66
・id:0-127
・str:文字列
SC88のドラムセット名の設定を行う。
mapはマップナンバーを表し設定範囲は0,1。ユーザードラムセットの名前を設定する
場合にはUSER65,またはUSER66という文字列を与えて指定する。
idはSC88のデバイスIDで省略可能、省略時は$10。
strはドラセット名を表す文字列で、"〜"で括り12文字以内で指定する。
(SC88マニュアルp82参照)
例
[SC88_DRUM_NAME USER66,$10 "USER SET"]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] SC88ユーザー音色の設定
[SC88_USER_INST bk,pgm,id {n1,n2,...,n11}]
・bk:0-1
・pgm:1-128
・id:0-127
・n1〜n11:下記参照
SC88ユーザー音色の設定を行う。
bkは設定先音色バンク番号を表し、設定範囲は0,1。bk=0がバリエーション番号64,
bk=1がバリエーション番号65に対応する。
pgmは設定先音色番号で、設定範囲は1〜128。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n11)は11個まで任意の個数設定可能。同機能の共通コマンド
.SC88_USER_INSTとは異なり複数行にパラメータを分けて書くことはできない。
n1:SOURCE TONE#(MAP) (1,2)
n2:BANK NUMBER MSB (0〜127)
n3:PROGRAM NUMBER (1〜128)
n4:Vibrato rate ($00〜$7f:−64〜+63)
n5:Vibrato depth ($00〜$7f:−64〜+63)
n6:TVF cutoff freq. ($00〜$7f:−64〜+63)
n7:TVF resonance ($00〜$7f:−64〜+63)
n8:TVF&TVA Env.attack ($00〜$7f:−64〜+63)
n9:TVF&TVA Env.decay ($00〜$7f:−64〜+63)
n10:TVF&TVA Env.release ($00〜$7f:−64〜+63)
n11:Vibrato delay ($00〜$7f:−64〜+63)
(SC88VLマニュアルp82参照)
例
[SC88_USER_INST 0,4,$10 {1,0,10,64,64,64,64,64,64,64,64}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] SC88のユーザードラムセットの設定
[SC88_USER_DRUM st,nt,id {n1,n2,...,n12}]
・st:0-1
・nt:0-127
・id:0-127
・n1〜n12:下記参照
stは設定先ドラムセット番号で設定範囲は0,1。st=0がドラムセット番号65、
st=1がドラムセット番号66に対応する。
ntは登録先ノート番号で設定範囲は0-127。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n12)は12個まで任意の個数設定可能。同機能の共通コマンド
.SC88_DRUM_INSTとは異なり複数行にパラメータを分けて書くことはできない。
n1:PLAY KEY NUMBER (0〜127)
n2:LEVEL (0〜127)
n3:ASSIGN GROUP NUMBER (0:NON,1〜127)
n4:PANPOT (0:RANDOM,01(LEFT)〜64〜127(RIGHT))
n5:REVERB DEPTH (0〜127:0.0〜1.0)
n6:CHORUS DEPTH (0〜127:0.0〜1.0)
n7:Rx NOTE OFF (0〜1:OFF/ON)
n8:Rx NOTE ON (0〜1:OFF/ON)
n9:DELAY SEND LEVEL (0-127:0.0〜1.0)
n10:SOURCE DRUM SET#(MAP) (1-2)
n11:PROGRAM NUMBER (0-127)
n12:SOURCE NOTE NUMBER (0-127)
(SC88VLマニュアルp82参照)
例
[SC88_USER_DRUM 0,32,$10 {24,127,0,64,10,10,0,1,10,1,10,24}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■MT32/CM32L/CM64/CM500専用命令
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] MT32の初期化
[MT32_INIT id]
[MT32_RESET id]
・id:0-127
MT32の初期化を行なう
idはMT32のデバイスIDで省略可能、省略時は$10。
例
[MT32_INIT $10]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] MT32の各パートのパーシャルリザーブ
[MT32_P_RESERVE id {n1,n2,…,n9}]
[MT32_PARTIAL_RESERVE id {n1,n2,…,n9}]
・id:0-127
・n1〜n9:0-127
MT32の各パートのパーシャルリザーブを行う。
idはMT32のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n9)は必ず9個なければならない。パラメータ各値の総和は32以内。
n1〜n8はパート1〜8のパーシャルリザーブ値に対応し、n9はリズムパートに対応する。
同機能の共通コマンド.MT32_PARTIAL_RESERVEとは異なり複数行にパラメータを分けて
書くことはできない。
例
[MT32_PARTIAL_RESERVE $10 {2,2,2,2,0,0,1,2,4}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] MT32リバーブパラメータの設定
[MT32_REVERB id {n1,n2,n3}]
id:0-127
n1〜n3:0-127
MT32のリバーブパラメータを設定する。
idはMT32のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n3)は3個まで任意の個数設定可能。同機能の共通コマンド
.MT32_REVERBとは異なり複数行にパラメータを分けて書くことはできない。
n1:REVERB MODE (0:Room,1:Hall,2:Plate,3:Tap Delay)
n2:REVERB TIME (0〜7)
n3:REVERB LEVEL (0〜7)
(MT32マニュアルp35, CM64マニュアルp30参照)
例
[MT32_REVERB $10 {3,3,5}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] MT32各パートのMIDIチャンネル設定
[MT32_PART_SETUP id {n1,n2,…,n9}]
・id:0-127
・n1〜n9:0-127
MT32の各パートのMIDIチャンネルを設定する。
idはMT32のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n9)は9個まで任意の個数設定可能。
n1〜n8はパート1〜8のMIDIチャンネル値に対応し、n9はリズムパートに対応する。
同機能の共通コマンド.MT32_PART_SETUPとは異なり複数行にパラメータを分けて書く
ことはできない。
パラメータ(n1〜n9)はMIDIチャンネル値なので1〜16まで有効。
ただし、0あるいは17以上を与えた場合はそのパートを無効(OFF)とみなす。
(MT32マニュアルp35, CM64マニュアルp30参照)
例
[MT32_PART_SETUP $10 {2,3,4,5,6,7,8,9,10}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] MT32リズムキットの設定
[MT32_DRUM_SETUP n,id {n1,n2,n3,n4}]
[MT32_RHYTHM_SETUP n,id {n1,n2,n3,n4}]
・n:24〜87
・id:0-127
MT32のリズムキットの設定を変更する。
nは変更対象ノートナンバーを表し、設定範囲は24≦n≦87。
idはMT32のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n4)は4個まで任意の個数設定可能。同機能の共通コマンド
.MT32_DRUM_SETUPとは異なり複数行にパラメータを分けて書くことはできない。
n1:TIMBRE (0〜63:i1〜64,64〜127:r1〜64)
n2:OUTPUT LEVEL (0〜100)
n3:PANPOT (0〜14)
n4:REVERB SWITCH (0〜1:OFF/ON)
(MT32マニュアルp35, CM64マニュアルp30参照)
例
[MT32_DRUM_SETUP 24,$10 {10,100,12,1}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] MT32コモンパラメータの設定
[MT32_COMMON n,id {str,n1,n2,n3,n4}]
・n:1-64
・id:0-127
・str:文字列
・n1〜n4:0-127
MT32の音色のコモンパラメータを設定する。
nは設定対象ティンバー番号で、設定範囲は1〜64。
idはMT32のデバイスIDで省略可能、省略時は$10。
strは音色名で、"〜"で括り、10文字以内(省略不可)の文字列で指定する。
パラメータ(n1〜n4)は4個まで任意の個数設定可能。同機能の共通コマンド
.MT32_COMMONとは異なり複数行にパラメータを分けて書くことはできない。
n1:Structure of Partial#1&2 (0〜12:1〜13)
n2:Structure of Partial#3&4 (0〜12:1〜13)
n3:PARTIAL MUTE (0〜15)
n4:ENV MODE (0〜1:NORMAL,NO SUSTAIN)
(MT32マニュアルp34, CM64マニュアルp29参照)
例
[MT32_COMMON 1,$10 {1,1,0,0}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] MT32パーシャルパラメータの設定
[MT32_PARTIAL n,p,id {n1,n2,…,n58}]
・n:1-64
・p:1-4
・id:0-127
・n1〜n58:0-127
MT32の音色のパーシャルパラメータを設定する。
nは設定対象ティンバー番号で設定範囲は1≦n≦64。
pは設定対象パーシャルナンバーで設定範囲は1≦p≦4。
idはMT32のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n58)は58個まで任意の個数設定可能。同機能の共通コマンド
MT32_PARTIALとは異なり複数行にパラメータを分けて書くことはできない。
n1:WG PITCH COARSE (0〜96:C1,C#1,〜,C9)
n2:WG PITCH FINE (0〜100:−50〜+50)
n3:WG PITCH KEYFOLLOW (0〜16:−1,−1/2,−1/4,0,1/8,1/4,
3/8,1/2,5/8,3/4,7/8,1,
5/4,3/2,2,s1,s2)
n4:WG PITCH BENDER SW (0〜1:OFF/ON)
n5:WG WAVEFORM/PCM BANK (0〜3:SQU1,SAW1,SQU2,SAW2)
n6:WG PCM WAVE (0〜127:1〜128)
n7:WG PULSE WIDTH (0〜100)
n8:WG PW VELO SENS (0〜14:−7〜+7)
n9:P-ENV DEPTH (0〜10)
n10:P-ENV VELO SENS (0〜3)
n11:P-ENV TIME KEYF (0〜4)
n12:P-ENV TIME 1 (0〜100)
n13:P-ENV TIME 2 (0〜100)
n14:P-ENV TIME 3 (0〜100)
n15:P-ENV TIME 4 (0〜100)
n16:P-ENV LEVEL 0 (0〜100:−50〜+50)
n17:P-ENV LEVEL 1 (0〜100:−50〜+50))
n18:P-ENV LEVEL 2 (0〜100:−50〜+50)
n19:P-ENV SUSTAIN LEVEL (0〜100:−50〜+50)
n20:END LEVEL (0〜100:−50〜+50)
n21:P-LFO RATE (0〜100)
n22:P-LFO DEPTH (0〜100)
n23:P-LFO MOD SENS (0〜100)
n24:TVF CUTOFF FREQ (0〜100)
n25:TVF RESONANCE (0〜30)
n26:TVF KEYFOLLOW (0〜14:−1,−1/2,−1/4,0,1/8,1/4,
3/8,1/2,5/8,3/4,7/8,1,
5/4,3/2,2)
n27:TVF BIAS POINT/DIR (0〜127)
n28:TVF BIAS LEVEL (0〜14:−7〜+7)
n29:TVF ENV DEPTH (0〜100)
n30:TVF ENV VELO SENS (0〜100)
n31:TVF ENV DEPTH KEYF (0〜4)
n32:TVF ENV TIME KEYF (0〜4)
n33:TVF ENV TIME 1 (0〜100)
n34:TVF ENV TIME 2 (0〜100)
n35:TVF ENV TIME 3 (0〜100)
n36:TVF ENV TIME 4 (0〜100)
n37:TVF ENV TIME 5 (0〜100)
n38:TVF ENV LEVEL 1 (0〜100)
n39:TVF ENV LEVEL 2 (0〜100)
n40:TVF ENV LEVEL 3 (0〜100)
n41:TVF ENV SUSTAIN LEVEL (0〜100)
n42:TVA LEVEL (0〜100)
n43:TVA VELO SENS (0〜100:−50〜+50
n44:TVA BIAS POINT 1 (0〜127)
n45:TVA BIAS LEVEL 1 (0〜12:−12〜0)
n46:TVA BIAS POINT 2 (0〜127)
n47:TVA BIAS LEVEL 2 (0〜12:−12〜0)
n48:TVA ENV TIME KEYF (0〜4)
n49:TVA ENV TIME V_FOLLOW (0〜4)
n50:TVA ENV TIME 1 (0〜100)
n51:TVA ENV TIME 2 (0〜100)
n52:TVA ENV TIME 3 (0〜100)
n53:TVA ENV TIME 4 (0〜100)
n54:TVA ENV TIME 5 (0〜100)
n55:TVA ENV LEVEL 1 (0〜100)
n56:TVA ENV LEVEL 2 (0〜100)
n57:TVA ENV LEVEL 3 (0〜100)
n58:TVA ENV SUSTAIN LEVEL (0〜100)
(MT32マニュアルp34, CM64マニュアルp29参照)
例
[MT32_PARTIAL 1,1,$10 {64,50,11,1,1,127,50,7}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] MT32パッチの設定
[MT32_PATCH n,id {n1,n2,…,n7}]
・n:1-128
・id:0-127
・n1〜n7:0-127
MT32のパッチを設定する。
nは設定対象パッチナンバーで、設定範囲は1≦n≦128。
idはMT32のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n7)は7個まで任意の設定個数設定可能。同機能の共通コマンド
MT32_PATCHとは異なり複数行にパラメータを分けて書くことはできない。
n1:TIMBRE GROUP (0〜3:a,b,i,r)
n2:TIMBRE NUMBER (0〜63)
n3:KEY SHIFT (0〜48:−24〜+24)
n4:FINE TUNE (0〜100:−50〜+50)
n5:BENDER RANGE (0〜24)
n6:ASSIGN MODE (0〜3:POLY1〜4)
n7:REVERB SWITCH (0〜1:OFF/ON)
(MT32マニュアルp35, CM64マニュアルp30参照)
例
[MT32_PATCH 1,$10 {0,0,0,50,12,1,1}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] MT32コンソール文字列表示
[MT32_PRINT id str]
・id:0-127
・str:文字列
MT32のコンソールに文字列を表示する。
idはMT32のデバイスIDで省略可能、省略時は$10。
strは文字列で、"〜"でくくり20文字以内で指定する。
(MEASURE3 zm_mt32_print()参照)
例
[MT32_PRINT $10 "HELLO!"]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■U220/U20専用命令
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] U220セットアップパラメータの設定
[U220_SETUP id {n1,n2,…,n7}]
・id:0-127
・n1〜n7:0-127
U220のセットアップパラメータを設定する。
idはU220のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n7)は必ず7個指定しなければならない。また同機能の共通コマンド
U220_SETUPとは異なり複数行にパラメータを分けて書くことはできない。
n1:Chorus SW (0〜1:OFF/ON)
n2:Reverb SW (0〜1:OFF/ON)
n3:Rx Cntrl Channel (1〜17:1〜16,OFF)
n4:Patch Change (0〜5:MAP1〜MAP4,Dir,OFF)
n5:Timbre Change (0〜5:MAP1〜MAP4,Dir,OFF)
n6:Rhythm Change (0〜5:MAP1〜MAP4,Dir,OFF)
n7:R.Inst Assign (0〜5:MAP1〜MAP4,Dir,OFF)
(U220マニュアルp46,p146,p148)
例
[U220_SETUP $10 {1,1,1,5,4,4,4}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] U220パートパラメータの設定
[U220_PART_SETUP pt,id {n1,n2,…,n13}]
・pt:1-6
・id:0-127
・n1〜n13:0-127
U220のテンポラリ・パッチのパートパラメータを設定する。
ptはパートナンバーを表し、設定範囲は1≦pt≦6。
idはU220のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n13)は必ず13個指定しなければならない。また同機能の共通コマンド
U220_PART_SETUPとは異なり複数行にパラメータを分けて書くことはできない。
n1:Timbre Number (1〜128)
n2:Voice Reserve (0〜30)
n3:Receive Channel (1〜17:1〜16,OFF)
n4:Key Range Low (0〜127:C-1〜G9)
n5:Key Range High (0〜127:C-1〜G9)
n6:Velo Level (0〜1:Above/Below)
n7:Velo Threshold (0〜127)
n8:Output Assign (0〜4:Dry,Rev,Cho,Dir1,Dir2)
n9:Level (0〜127)
n10:Pan (0〜15:L7〜M〜R7)
n11:Rx Volume (0〜1:OFF/ON)
n12:Rx Pan (0〜1:OFF/ON)
n13:Rx Hold (0〜1:OFF/ON)
(U220マニュアルp58,p149参照)
例
[U220_PART_SETUP 1,$10 {1,3,1,0,127,1,127,0,0,8,0,0,0}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] U220コモンパラメータの設定
[U220_COMMON id {n1,n2,…,n18}]
・id:0-127
・n1〜n18:0-127
U220のテンポラリ・パッチのコモンパラメータを設定する。
idはU220のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n18)は必ず18個指定しなければならない。また同機能の共通コマンド
U220_COMMONとは異なり複数行にパラメータを分けて書くことはできない。
n1:Chorus Type (0〜4:Chorus1,Chorus2,FB-Chorus,
Flanger,Short Delay)
n2:Chorus Out Mode (0〜1:Pre Rev,Post Rev)
n3:Chorus Level (0〜31)
n4:Chorus Delay (0〜31)
n5:Chorus Rate (0〜31)
n6:Chorus Depth (0〜31)
n7:Chorus Feedback (1〜63:−31〜0〜+31)
n8:Reverb Type (0〜7:Room1〜3,Hall1〜2,Gate
Delay,CrossDelay)
n9:Reverb Time (0〜31)
n10:Reverb Level (0〜31)
n11:Reverb Delay Feedback (0〜31)
n12:Reverb Pre Delay Feedback (0〜31)
n13:Param1 # (0〜63:0〜5,7〜31,64〜95,OFF)
n14:Param1 Param (0:Timbre Level,1:Env Attack
2:Env Decay,3:Env Sustain
4:Env Release,5:A.Bend Depth
6:A.Bend Rate,7:Detune Depth
8:Vib Rate,9:Vib Wave Form
10:Vib Depth,11:Vib Delay
12:Vib Rise Time,13:Vib Mod Depth
14:Chorus Level,15:Chorus Rate
16:Chorus Feedback,17:Reverb Level
18:Delay Feedback)
n15:Param2 # (Same as Param1 #)
n16:Param2 Param (Same as Param1 Param)
n17:Param3 # (Same as Param1 #)
n18:Param3 Param (Same as Param1 Param)
(U220マニュアルp54,p149参照)
例
[U220_COMMON $10 {0,1,20,20,20,20,32,0,2,2,2,2,63,0,63,0,63,0}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] U220音色パラメータ設定
[U220_TIMBRE n,id {str,n1,n2,…,n26}]
・n:1-128
・id:0-127
・str:文字列
・n1〜n26:0-127
U220に音色パラメータを設定する。
nは登録先音色番号を表し、設定範囲は1≦n≦128。
idはU220のデバイスIDで省略可能、省略時は$10。
strは音色名を表す文字列で、"〜"で括り、12文字以内で指定する。
パラメータ(n1〜n26)は必ず26個指定しなければならない。また同機能の共通コマンド
U220_TIMBREとは異なり複数行にパラメータを分けて書くことはできない。
n1:Tone Media (0〜31:I,1〜31)
n2:Tone Number (1〜128)
n3:Timbre Level (0〜127)
n4:Velocity Sens (1〜15:−7〜+7)
n5:Channel Press Sens (1〜15:−7〜+7)
n6:Env Attack Rate (1〜15:−7〜+7)
n7:Env Decay Rate (1〜15:−7〜+7)
n8:Env Sustain Level (1〜15:−7〜+7)
n9:Env Release Rate (1〜15:−7〜+7)
n10:Pitch Shift Coarse (8〜56:−24〜+24)
n11:Pitch Shift Fine (14〜114:−50〜+50)
n12:Bend Range Lower (0〜15:−36,−24,−12〜0)
n13:Bend Range Upper (0〜12)
n14:Channel After Sens (0〜27:−36,−24,−12〜+12)
n15:Poly After Sens (0〜27:−36,−24,−12〜+12)
n16:Auto Bend Depth (0〜27:−36,−24,−12〜+12)
n17:Auto Bend Rate (0〜15)
n18:Detune Depth (0〜15)
n19:Rate (0〜63)
n20:Waveform (0〜8)
n21:Depth (0〜15)
n22:Delay (0〜15)
n23:Rise Time (0〜15)
n24:Modulation Depth (0〜15)
n25:Ch After Sens (0〜15)
n26:Poly After Sens (0〜15)
(U220マニュアルp72,p149参照)
例
[U220_TIMBRE 1,$10 {"SYNTHE-2",0,1,127,8,8,8,8,8,8,32,64,2,2,
14,14,14,0,0,0,0,0,0,0,0,0,0}]
(本来はコマンドライン途中で改行することはできないがレイアウトの都合上
改行している)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] U220ドラム・パラメータの設定
[U220_DRUM_SETUP id {n1,n2,…,n7}]
・id:0-127
・n1〜n7:0-127
U220のテンポラリ・パッチのドラム・パラメータを設定する。
idはU220のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n7)は必ず7個指定しなければならない。また同機能の共通コマンド
U220_DRUM_SETUPとは異なり複数行にパラメータを分けて書くことはできない。
n1:Rhythm Setup # (0〜3:1〜4)
n2:Voice Reserve (0〜30)
n3:Receive Channel (1〜17:1〜16,OFF)
n4:Level (0〜127)
n5:Level Boost Sw (0〜1:OFF/ON)
n6:Rx Volume (0〜1:OFF/ON)
n7:Rx Hold (0〜1:OFF/ON)
(U220マニュアルp63,p149参照)
例
[U220_DRUM_SETUP $10 {0,5,10,127,0,1,0}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] U220ドラムセット・ノートパラメータの設定
[U220_DRUM_INST n,id {n1,n2,…,n20}]
・n:35-99
・id:0-127
・n1〜n20:0-127
U220のテンポラリ・ドラムセットの各ノートにおけるパラメータを設定する。
nは設定先のノート番号で、設定範囲は35≦n≦99。
idはU220のデバイスIDで省略可能、省略時は$10。
パラメータ(n1〜n20)は20個以内任意の個数設定可能。同機能の共通コマンド
U220_DRUM_INSTとは異なり複数行にパラメータを分けて書くことはできない。
n1:Tone Media (0〜31:I,1〜31)
n2:Tone Number (1〜128)
n3:Source Key (0〜127:C−1〜G9)
n4:Mute Inst (34〜98:OFF,B1〜D7)
n5:Inst Level (0〜31)
n6:Velocity Sens (0〜15)
n7:Env Mode (0〜1:Sustain,No Sustain)
n8:Env Attack Rate (1〜15:−7〜+7)
n9:Env Decay Rate (1〜15:−7〜+7)
n10:Env Release Rate (1〜15:−7〜+7)
n11:Pitch Shift Coarse (0〜27:−36,−24,−12〜+12)
n12:Pitch Shift Fine (14〜114:−50〜+50)
n13:Channel After Sens (0〜27:−36,−24,−12〜+12)
n14:Poly After Sens (0〜27:−36,−24,−12〜+12)
n15:Random (0〜15)
n16:Auto Bend Depth (0〜27:−36,−24,−12〜+12)
n17:Auto Bend Rate (0〜15)
n18:Detune Depth (0〜15)
n19:Output Assign (0〜3:Dry,Rev,Cho,Dir1)
n20:Pan (0〜15:L7〜M〜R7)
(U220マニュアルp72,p149参照)
例
[U220_DRUM_INST 42,$10 {0,1,24,34,31,15,1,8,8,8,14,64,14,14,
0,14,0,0,0,8}]
(本来はコマンドライン途中で改行することはできないがレイアウトの都合上
改行している)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] U220ディスプレイ文字列表示
[U220_PRINT id str]
・id:0-127
・str:文字列
U220のディスプレイに文字列を表示する。具体的にはU220の
テンポラリ・パッチの名前を設定することで行う。
idはU220のデバイスIDで省略可能、省略時は$10。
strは表示文字列を表し、"〜"で括り、12文字以内で指定する。
例
[U220_PRINT $10 "APPLE TREE"]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■M1/M1EX/M1R/M1REX専用命令
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] M1受信チャンネル設定
[M1_SETUP {ch1,ch2,…,ch8}]
[M1_MIDI_CH {ch1,ch2,…,ch8}]
・ch1〜ch8:1-16
M1のSEQ0の各パートの受信チャンネルを設定する。
パラメータ(ch1〜ch8)は必ず8個指定しなければならない。設定範囲は1≦chi≦17で
1〜16はMIDIチャンネルの1〜16を表し、17は「そのパートは受信しない」を意味する
設定となる。
n1:パート1の受信MIDIチャンネル
n2:パート1の受信MIDIチャンネル
:
:
n8:パート1の受信MIDIチャンネル
例
[M1_SETUP {1,2,3,4,5,6,17,10}]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] M1パートパラメータの設定
[M1_PART_SETUP {n1,n2,…,n40}]
・n1〜n40:
M1のSEQ0の各パートのパラメータを設定する。
パラメータ(n1〜n40)は必ず40個(5×8パート分)設定しなければならない。
また同機能の共通コマンドM1_PART_SETUPとは異なり複数行にパラメータを分けて
書くことはできない。
PART 1
n1:PROGRAM NUMBER (0〜199:I00〜C99)
n2:OUTPUT LEVEL (0〜99)
n3:KEY TRANSPOSE ($F4〜$0C:−12〜12)
n4:DETUNE ($CE〜$32:−50〜+50)
n5:PAN (0〜13:10:0〜0:10,C,C+D,D)
PART 2〜8(n6〜n40)以下同様の書式構成
(M1マニュアルp126参照)
例
[M1_PART_SETUP {0,99,0,0,5,0,99,0,0,5,0,99,0,0,5,0,99,0,0,5
0,99,0,0,5,0,99,0,0,5,0,99,0,0,5,0,99,0,0,5}]
(本来はコマンドライン途中で改行することはできないがレイアウトの都合上
改行している)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[MIDI] M1エフェクトパラメータの設定
[M1_EFFECT_SETUP {n1,n2,…,n25}]
・n1〜n25:
M1のSEQ0のエフェクトパラメータの設定を行う。
パラメータ(n1〜n25)は必ず25個指定しなければならない。
同機能の共通コマンドM1_EFFECT_SETUPとは異なり複数行にパラメータを
分けて書くことはできない。
n1:Effect 1 Pattern No. (0〜33:1〜32,Thru)
n2:Effect 2 Pattern No. (0〜33:1〜32,Thru)
n3:Effect 1 L-Ch E.Balnc (0〜100)
n4:Effect 1 R-Ch E.Balnc (0〜100)
n5:Effect 2 L-Ch E.Balnc (0〜100)
n6:Effect 2 R-Ch E.Balnc (0〜100)
n7:Output 3 Pan (0〜101:OFF,100:0〜0:100)
n8:Output 4 Pan (0〜101:OFF,100:0〜0:100)
n9:Effect I/O (BIT0:Effect 1 L-Ch 0=OFF/1=ON
BIT1:Effect 1 R-Ch 0=OFF/1=ON
BIT2:Effect 2 L-Ch 0=OFF/1=ON
BIT3:Effect 2 R-Ch 0=OFF/1=ON)
BIT4:Effect 2 0=PARALLEL/1=SERIAL)
n10〜n17:Effect 1 Parameter
n18〜n25:Effect 2 Parameter
Structure of Effect Parameter
(ofs=10 or 18)
1〜3:Hall (4,5:Room,6:Live Stage)
n(ofs+0):Reverb Time (0〜97:0.2〜9.9),(0〜48:0.2〜5.0)
n(ofs+1):Dummy 0
n(ofs+2):High Damp (0〜99)
n(ofs+3):Pre Delay (0〜200)
n(ofs+4):E/R Level (0〜99)
n(ofs+5):Dummy 0
n(ofs+6):EQ High ($F4〜$0C:−12〜+12)
n(ofs+7):EQ Low ($F4〜$0C:−12〜+12)
7〜9:Early Reflection 1,2,3
n(ofs+0):E/R Time (0〜70:100〜800)
n(ofs+1):Pre Delay (0〜200)
n(ofs+2):Dummy 0
: :
n(ofs+5):Dummy 0
n(ofs+6):EQ High ($F4〜$0C:−12〜+12)
n(ofs+7):EQ Low ($F4〜$0C:−12〜+12)
10:Stereo Delayt,11:Cross Delay
n(ofs+0):Delay Time L (L) (0〜500)
n(ofs+1):Delay Time L (H)
n(ofs+2):Feedback ($9D〜$63:−99〜99)
n(ofs+3):High Damp (0〜99)
n(ofs+4):Delay Time R (L) (0〜500)
n(ofs+5):Delay Time R (H)
n(ofs+6):EQ High ($F4〜$0C:−12〜+12)
n(ofs+7):EQ Low ($F4〜$0C:−12〜+12)
12〜13:Stereo Chorus 1〜2 (14〜15:Flanger)
n(ofs+0):Depth (0〜99)
n(ofs+1):Speed (0〜99:0.03〜3.00 0.03step
100〜199:3.1〜13.0 0.1step
サイズ上限により省略されました