YAMAHA MU1000(XG汎用)関数セット "MU1000.h" ver.1.0

YAMAHA MUシリーズのエクスクルーシブを簡単に送信する為の関数セットです。 全ての情報はエクスクルーシブによって送信されます。
コントロールチェンジによる送信には対応していません。コントロールチェンジによるデータ送信は、"GM2CC.h"(作成中)を使用してください。

対象音源はYAMAHA MUシリーズ全てです。エクスクルーシブには下位互換があります。下位の機種で使用する場合には、その機種で
使えるエクスクルーシブのみを使 えば問題ありません。

なお、ソフトウェアシンセサイザー S-YXGシリーズや、サウンドカード用チップ YMFシリーズに搭載されているXG音源(DS-XG?)は、
MIDIインプリメンテーションなどの詳細がわかりませんのでサポート致しません。一応、MU50相当の命令は認識すると思います。

現時点ではパラメータ値の解説などは記載しておりませんので、マニュアル片手に使うことになります。
まぁ、ある程度使い込めば体で覚えるはずですから大丈夫でしょう。

関数名はMIDIインプリメンテーションに記載されている名称をそのまま使っていますので、参照しやすいかと思います。
ちょっと長ったらしい関数名の物もありますが、サクラのエディターから挿入することを前提にしているので問題ないでしょう。

※重要※
当関数セットを使用する際には汎用関数セット"4neria.h"をインクルードする必要があります。
使用される際には下記の2行をMMLの出来る限り先頭(タイトル情報の後など)に記述してください。

Include(4neria.h);
Include(MU1000.h);

▼対応音源

MU2000EX R1, MU2000EX, MU2000, MU1000EX R1, MU1000EX, MU1000
MU500, MU128, MU100, MU100B, MU100Bs, MU100R, SW1000XG, SW1000XG/P, MU90, MU90B, MU90R
MU80, MU50, MU15, MU10, DB50XG, DB60XG, その他XG互換音源

▼非対応エクスクルーシブ

・MODULAR SYNTHESIS PLUG-IN SYSTEM(PLUG-IN BOARD)に関わるエクスクルーシブ
・ADインプット(装備している機種のみ)に関わるエクスクルーシブ
・MUのシステムに関わるエクスクルーシブ
・MU1000EX/MU2000EXで追加されたデジタル出力に関わるエクスクルーシブ
・ディスプレイパラメータに関わるエクスクルーシブ
・MU80のパフォーマンスモードに関わるエクスクルーシブ
・MU100以降のパフォーマンスモードに関わるエクスクルーシブ
・DB50XG, DB60XG(?), MU10に搭載されているQS300モードのエクスクルーシブ

上記のエクスクルーシブに関しては今後も対応予定はありません。プラグインボードに関するエクスクルーシブについては、
私がボードを入手すれば対応する可能性はあります(でも買ったとしてもANボードくらいだろうなぁ…)

▼音源とエクスクルーシブの対応状況

MU90以降であれば、インサーションエフェクトとポート数の設定さえ行えば(後述)、実装されている関数の99%は動作します。

MU80以下は比較するのがかなり大変なので、ユーザーさん側でマニュアルを読んで把握しておいて下さい。
例を挙げるなら、MU90以降ではパートEQやHPFが実装されたがMU80以前には無いので、MU80以前ではパートEQやHPFに関わるエクスクルーシブが動作しない…など。

マニュアルをお持ちでない方は、YAMAHA マニュアルライブラリからPDFを取得することができす。

MU2000/MU1000系以外で使用される方は、MU1000.hファイル内の下記の行を書き換えて使ってください。エラーチェックが少しだけ強化されます。

先ずは25行目の「Int PortNumberXG_MAX = 4;」で、使用される音源のポート数を記述してください。
各音源のポート数は、25行目の上にコメントで書いてあります。
次に39行目の「Int XG_InsertionType_MAX = 4;」で、使用される音源のインサーションエフェクトの数を記述してください。
各音源のエフェクト数は39行目の上にコメントで書いてあります。

また、デバイスナンバーを変更されている方は12行目を変更してください。

▼実装しているエクスクルーシブ関数一覧

■エクスクルーシブ送信

XG_EX(data)
XG仕様のエクスクルーシブを送信します。内部で下記のように展開されます。(dataはいくつでも記述できます)
> SysEx=$F0,$43,(DeviceNumberXG),$4C,(data),$F7;
デバイスナンバーは自動的に取得されます。

XG_BLK(data)
XG仕様のエクスクルーシブダンプを送信します。内部で下記のように展開されます。(dataはいくつでも記述できます)
> SysEx=$F0,$43,(DeviceNumberXG_Blk),$4C,{(_DataSizeMSB),(_DataSizeLSB),(daata)},$F7;
デバイスナンバーとデータサイズは自動的に取得されます。

MU_EX(data)
MU固有のパラメータを変更するエクスクルーシブを送信します。
内部で下記のように展開されます。(dataはいくつでも記述できます)
> SysEx=$F0,$43,(DeviceNumberXG),$49,(data),$F7;
デバイスナンバーは自動的に取得されます。

■MU100以降専用

VOICE_MAP(n) n:0〜1 (MU Basic/MU100 Native)
これはシステムに関わるエクスクルーシブですが、必要だと判断したので実装されています。
MU100以降で動作します。MU100以降をお使いの方はMU100 Nativeマップを使った方が良いでしょう。

■マスターパート

MASTER_TUNE(a,b,c,d)
マスターチューンの設定。パラメータは4つ必須。

MASTER_VOLUME(n) n:0〜127
マスターヴォリュームの設定。

MASTER_ATTENUATOR(n) n:0〜127
マスターアッテネータの設定。

TRANSPOSE(n) n:$28〜$40〜$58 (-24〜0〜+24)
トランスポーズの設定。全てのチャンネルに効きます。

DRUM_SETUP_RESET(n) n:0-3 (DrumSetup1〜4)
指定された番号のDrumSetupをリセットします。

XG_SYSTEM_ON()
所謂、XGリセットです。パラメータはありません。

ALL_PARAMETER_RESET()
オールリセットです。パラメータはありません。

■リバーブ

REVERB_TYPE(a,b)
リバーブタイプを設定します。パラメータは2つ必須。

REVERB_RETURN(n) n:0〜127
リバーブのリターンを設定します。

REVERB_PAN(n) n:1〜127
リバーブのパンを設定します。値に0は受け付けません。

REVERB_PARAMETER(Number,n) n:$00〜$7F
リバーブパラメータを設定します。Number1〜16までです。
Numberはマニュアルに記載されているパラメータナンバーに対応します。

REVERB_PARAMETER_ALL(data) data:総計16個
リバーブパラメータ1〜16を一気に設定します。パラメータは16個分必須
使用されないパラメータナンバーの値は受信しないので、$00で埋めてください。
(この命令はバルクダンプをマニュアル通りに送信していないので正常に動作しない可能性があります)

■コーラス

CHORUS_TYPE(a,b)
コーラスタイプを設定します。パラメータは2つ必須。

CHORUS_RETURN(n) n:0〜127
コーラスのリターンを設定します。

CHORUS_PAN(n) n:1〜127
コーラスのパンを設定します。値に0は受け付けません。

SEND_CHORUS_TO_REVERB(n) n:0〜127
コーラスからリバーブへの送り値を設定します。

CHORUS_PARAMETER(Number,n) n:$00〜$7F
コーラスパラメータを設定します。Number1〜16までです。
Numberはマニュアルに記載されているパラメータナンバーに対応します。

CHORUS_PARAMETER_ALL(data) data:総計16個
コーラスパラメータ1〜16を一気に設定します。パラメータは16個分必須。
使用されないパラメータナンバーの値は受信しないので、$00で埋めてください。
(この命令はバルクダンプをマニュアル通りに送信していないので正常に動作しない可能性があります)

■ヴァリエーション

VARIATION_TYPE(a,b)
ヴァリエーションタイプを設定します。パラメータは2つ必須。

VARIATION_RETURN(n) n:0〜127
ヴァリエーションのリターンを設定します。

VARIATION_PAN(n) n:1〜127
ヴァリエーションのパンを設定します。値に0は受け付けません。

SEND_VARIATION_TO_REVERB(n) n:0〜127
ヴァリエーションからリバーブへの送り値を設定します。

SEND_VARIATION_TO_CHORUS(n) n:0〜127
ヴァリエーションからコーラスへの送り値を設定します。

VARIATION_CONNECTION(n) n:0〜1 (INSERTION/VARIATION)
ヴァリエーションをインサーションとして使用するか、ヴァリエーションとして使うかの設定をします。

VARIATION_PART_NUMBER(n) n:0〜127 (0〜63はPart1〜64、64〜65はAD1/2、127でOFFに対応)
ヴァリエーションをインサーションとして使用した場合のエフェクトをかけるパートを設定します。
この値は音源によってパート数が異なりますので注意してください。音源毎のエラーチェックは行っていません。

MW_VARIATION_COTROL_DEPTH(n) n:$00〜$7F (-64〜0〜+64)
モジュレーションによる、ヴァリエーションの変化値を設定します。

BEND_VARIATION_COTROL_DEPTH(n) n:$00〜$7F (-64〜0〜+64)
ピッチベンドによる、ヴァリエーションの変化値を設定します。

CAT_VARIATION_COTROL_DEPTH(n) n:$00〜$7F (-64〜0〜+64)
チャンネルアフタータッチによる、ヴァリエーションの変化値を設定します。

AC1_VARIATION_COTROL_DEPTH(n) n:$00〜$7F (-64〜0〜+64)
アサイナブルコントローラ1による、ヴァリエーションの変化値を設定します。

AC2_VARIATION_COTROL_DEPTH(n) n:$00〜$7F (-64〜0〜+64)
アサイナブルコントローラ2による、ヴァリエーションの変化値を設定します。

VARIATION_PARAMETER(Number,n) n:$00〜$7F
ヴァリエーションパラメータを設定します。Number1〜16までです。
Numberはマニュアルに記載されているパラメータナンバーに対応します。
ヴァリエーションパラメータ1〜10のパラメータ値は、MSB,LSBを送信する必要があるので2個必須です。
ヴァリエーションパラメータ11〜16のパラメータ値は、LSBだけを送信するので1個です。

VARIATION_PARAMETER_ALL(data) data:総計26個
ヴァリエーションパラメータ1〜16を一気に設定します。パラメータは26個分必須
使用されないパラメータナンバーの値は受信しないので、$00で埋めてください。
ヴァリエーションパラメータ1〜10のパラメータ値は、MSB,LSBを送信する必要があるので合計20個必須です。
ヴァリエーションパラメータ11〜16のパラメータ値は、LSBだけを送信するので合計6個必須です。
(この命令はバルクダンプをマニュアル通りに送信していないので正常に動作しない可能性があります)

■EQ

EQ_TYPE(n) n:0〜4
EQタイプを設定します。

EQ_GAIN1(n) n:$34〜$40〜$4C (-12〜0〜+12)
EQゲイン1を設定します。

EQ_FREQUENCY1(n) n:$04〜$28
EQ FREQUENCY1を設定します。

EQ_Q1(n) n:$01〜$78
EQ Q1を設定します。

EQ_SHAPE1(n) n:$00〜$01 (shelving/peaking)
EQ SHAPE1を設定します。

EQ_GAIN2(n) n:$34〜$40〜$4C (-12〜0〜+12)
EQゲイン2を設定します。

EQ_FREQUENCY2(n) n:$0E〜$36
EQ FREQUENCY2を設定します。

EQ_Q2(n) n:$01〜$78
EQ Q2を設定します。

EQ_GAIN3(n) n:$34〜$40〜$4C (-12〜0〜+12)
EQゲイン3を設定します。

EQ_FREQUENCY3(n) n:$0E〜$36
EQ FREQUENCY3を設定します。

EQ_Q3(n) n:$01〜$78
EQ Q3を設定します。

EQ_GAIN4(n) n:$34〜$40〜$4C (-12〜0〜+12)
EQゲイン4を設定します。

EQ_FREQUENCY4(n) n:$0E〜$36
EQ FREQUENCY4を設定します。

EQ_Q4(n) n:$01〜$78
EQ Q4を設定します。

EQ_GAIN5(n) n:$34〜$40〜$4C (-12〜0〜+12)
EQゲイン5を設定します。

EQ_FREQUENCY5(n) n:$1C〜$3A
EQ FREQUENCY5を設定します。

EQ_Q5(n) n:$01〜$78
EQ Q5を設定します。

EQ_SHAPE5(n) n:$00〜$01 (shelving/peaking)
EQ SHAPE5を設定します。

EQ_ALL(data) data:総計17個
上記のEQの設定を一気に設定します。パラメータは17個必須です。パラメータの順番は上記の通りですが
EQタイプは自動で0が挿入されますのでEQ GAIN1〜EQ SHAPE5までのパラメータが必要です。

■インサーション

インサーションに関するエクスクルーシブには共通のパラメータINumberを設定します。
INumberは変更したいインサーションエフェクトの番号を設定します。

INSERTION_EFFECT_TYPE(INumber,a,b)
インサーションタイプを設定します。

INSERTION_EFFECT_PART_NUMBER(INumber,n) n:0〜127 (0〜63はPart1〜64、64〜65はAD1/2、127でOFFに対応)
インサーションエフェクトをかけるパートを設定します。
この値は音源によってパート数が異なりますので注意してください。音源毎のエラーチェックは行っていません。

MW_INSERTION_CONTROL_DEPTH(INumber,n)
モジュレーションによる、インサーションの変化値を設定します。

BEND_INSERTION_CONTROL_DEPTH(INumber,n)
ピッチベンドによる、インサーションの変化値を設定します。

CAT_INSERTION_CONTROL_DEPTH(INumber,n)
チャンネルアフタータッチによる、インサーションの変化値を設定します。

AC1_INSERTION_CONTROL_DEPTH(INumber,n)
アサイナブルコントローラ1による、インサーションの変化値を設定します。
AC2_INSERTION_CONTROL_DEPTH(INumber,n)
アサイナブルコントローラ2による、インサーションの変化値を設定します。

INSERTION__EFFECT_PARAMETER(INumber,PNumber,n) n:$00〜$7F
インサーションパラメータを設定します。PNumber1〜16までです。
PNumberは、マニュアルに記載されているパラメータナンバーに対応します(以下同様)
この命令では、パラメータ値はLSBしか送信しません
パラメータナンバー1〜10に、MSB,LSBが必要なエフェクトを使う時は下記の命令を使ってください。

INSERTION__EFFECT_PARAMETER_DOUBLE(INumber,data) data:$00〜$7F
インサーションパラメータを設定します。PNumber1〜10までです。
この命令では、MSB,LSBが必要なパラメータナンバー1〜10のパラメータ値を設定します。
パラメータ値は2つ必須になります。

INSERTION__EFFECT_PARAMETER_ALL(INumber,data) data:総計17個
インサーションパラメータ1〜16を一気に設定します。パラメータは17個分必須
使用されないパラメータナンバーの値は受信しないので、$00で埋めてください。
インサーションパラメータ1〜10のパラメータには、LSBだけを送信するので合計10個必須です。
インサーションパラメータ11〜16のパラメータは、LSBだけで良いので合計6個必須です。
(この命令はバルクダンプをマニュアル通りに送信していないので正常に動作しない可能性があります)

INSERTION__EFFECT_PARAMETER_DOUBLE_ALL(INumber,data) data:総計27個
インサーションパラメータ1〜16を一気に設定します。パラメータは27個分必須
使用されないパラメータナンバーの値は受信しないので、$00で埋めてください。
この命令ではパラメータナンバー1〜10の値は、MSB,LSBを送信します
インサーションパラメータ1〜10のパラメータには、MSB,LSBを送信する必要があるので合計20個必須です。
インサーションパラメータ11〜16のパラメータは、LSBだけで良いので合計6個必須です。
(この命令はバルクダンプをマニュアル通りに送信していないので正常に動作しない可能性があります)

■パート情報

パート情報に関するエクスクルーシブは送信先チャンネルとポートを指定する事ができます。
デフォルトでは関数が呼び出されたトラックのチャンネル、ポートを自動的に読みとって送信先を取得します。
これらを変更するには、下記の変数を変更します(これらの変数はMU1000.h内で定義済みです)

> PortNumberXG
> ChannelNumberXG

ポートを変更するにはPortNumberXGの値を変更します。"0"で自動取得になります。"1"以降でポート1以降を指定できます。
サクラのPort()命令は"0"から定義できますが、"0"でポート1に対応する事に注意してください。以後も1つずつズレます。
チャンネルを変更するにはChannelNumberXGの値を変更します。"0"で自動取得になります。"1〜16"でチャンネル1-16に対応します。

> Track(1) Channel(1) Port(0)
> ELEMENT_RESERVE(2);
 この場合、ELEMENT_RESERVEはポート1のチャンネル1に送信されます(デフォルト状態)

> Track(1) Channel(1) Port(0)
> PortNumberXG = 2; ChannelNumberXG = 3;
> ELEMENT_RESERVE(2);
 この場合、ELEMENT_RESERVEはポート2のチャンネル3に送信されます。

PortNumberXGChannelNumberXGの値を変更した時は、必要がなくなったら"0"の自動取得に戻す事を忘れないでください。
忘れると以後のエクスクルーシブはずっとそのポートとチャンネルに送信されてしまいます。

※上記の変数とRCV_CHANNELを活用することで、1ポートだけで複数のポート/チャンネルを操ることができます。


ELEMENT_RESERVE(n) n:0〜64
ヴォイスエレメントリサーブを設定します。この命令は同時発音数が64音以下の音源で有効です。
MU2000/MU1000/MU128では受信しても動作しないハズです(マニュアルではNOT USEDになっている)
また、値nは同時発音数が32音の音源では最大値が32に制限されます。

BANK_SELECT_MSB(n) n:$00-$7F
バンクセレクトのMSBを設定します。

BANK_SELECT_LSB(n) n:$00-$7F
バンクセレクトのLSBを設定します。

PROGRAM_NUMBER(n) n:$00-$7F
プログラムチェンジを行います。

RCV_CHANNEL(n) n:$00-$3F,$7F (Part1-64,off)
レシーブチャンネルを変更します。この値は音源のポート数によって変動します。

MONO_POLY_MODE(n) n:0-1 (MONO/POLY)
モノフォニック/ポリフォニックを設定します。

SAME_NOTE_NUMBER_KEY_ON_ASSIGN(n) n:0-2 (SINGLE,MULTI,INST(forDrum))
セームノートナンバーキーオンアサインを設定します。

PART_MODE(n) n:0-5 (NORMAL,DRUM,DRUMS1-4)
パートモードを設定します。

NOTE_SHIFT(n) n:$28〜$40〜$58 (-24〜0〜+24)
ノートシフトを設定します。該当パートのみ変動します。

DETUNE(a,b)
ディチューンを設定します。

VOLUME(n) n:0-127
ヴォリュームを設定します。

VELOCITY_SENSE_DEPTH(n) n:0-127
ヴェロシティセンスデプスを設定します。

VELOCITY_SENSE_OFFSET(n) n:0-127
ヴェロシティセンスオフセットを設定します。

PAN(n) n:0-127 (0:RND,L63〜0〜R63)
パンを設定します。

NOTE_LIMIT_LOW(n) n:$00-$7F (C-2〜G8)
発音可能なノートの下限を設定します。

NOTE_LIMIT_HIGH(n) n:$00-$7F (C-2〜G8)
発音可能なノートの上限を設定します。

DRY_LEVEL(n) n:0-127
ヴァリエーションがインサーションとして機能している場合のDRY/WET LEVELを設定します。

CHORUS_SEND(n) n:0-127
コーラスへの送り値を設定します。

REVERB_SEND(n) n:0-127
リバーブへの送り値を設定します。

VARIATION_SEND(n) n:0-127
ヴァリエーションへの送り値を設定します。

VIBRATO_RATE(n) n:$00〜$40〜$7F (-64〜0〜+63)
ヴィブラートレートの設定をします。

VIBRATO_DEPTH(n) n:$00〜$40〜$7F (-64〜0〜+63)
ヴィブラートデプスの設定をします。

VIBRATO_DELAY(n) n:$00〜$40〜$7F (-64〜0〜+63)
ヴィブラートディレイの設定をします。

LOW_PASS_FILTER_CUTOFF_FREQUENCY(n) n:$00〜$40〜$7F (-64〜0〜+63)
ローパスフィルターの設定をします。

LOW_PASS_FILTER_RESONANCE(n) n:$00〜$40〜$7F (-64〜0〜+63)
レゾナンスの設定をします。

EG_ATTACK_TIME(n) n:$00〜$40〜$7F (-64〜0〜+63)
アタックタイムの設定をします。

EG_DECAY_TIME(n) n:$00〜$40〜$7F (-64〜0〜+63)
ディケイタイムの設定をします。

EG_RELEASE_TIME(n) n:$00〜$40〜$7F (-64〜0〜+63)
リリースタイムの設定をします。

MW_PITCH_COTROL(n) n:$28〜$40〜$58 (-24〜0〜+24)
モジュレーションによるピッチコントロールの設定をします。

MW_LOW_PASS_FILTER_COTROL(n) n:$00-$7F
モジュレーションによるフィルターコントロールの設定をします。

MW_AMPLITUDE_COTROL(n) n:$00-$7F
モジュレーションによるアンプリチュードの設定をします。

MW_LFO_PMOD_DEPTH(n) n:0-127
モジュレーションによるピッチ変化の深さの設定をします。

MW_LFO_FMOD_DEPTH(n) n:0-127
モジュレーションによるフィルター変化の深さの設定をします。

MW_LFO_AMOD_DEPTH(n) n:0-127
モジュレーションによる音量変化の深さの設定をします。

BEND_PITCH_COTROL(n) n:$28〜$40〜$58 (-24〜0〜+24)
ピッチベンドによるピッチコントロールの設定をします。

BEND_LOW_PASS_FILTER_COTROL(n) n:$00-$7F
ピッチベンドによるフィルターコントロールの設定をします。

BEND_AMPLITUDE_COTROL(n) n:$00-$7F
ピッチベンドによるアンプリチュードの設定をします。

BEND_LFO_PMOD_DEPTH(n) n:0-127
ピッチベンドによるピッチ変化の深さの設定をします。

BEND_LFO_FMOD_DEPTH(n) n:0-127
ピッチベンドによるフィルター変化の深さの設定をします。

BEND_LFO_AMOD_DEPTH(n) n:0-127
ピッチベンドによる音量変化の深さの設定をします。

RCV_PITCH_BEND(n) n:0-1 (OFF/ON)
ピッチベンドを受信するか否かの設定をします。

RCV_CH_AFTER_TOUCH(n) n:0-1 (OFF/ON)
チャンネルアフタータッチを受信するか否かの設定をします。

RCV_PROGRAM_CHANGE(n) n:0-1 (OFF/ON)
プログラムチェンジを受信するか否かの設定をします。

RCV_COTROL_CHANGE(n) n:0-1 (OFF/ON)
コントロールチェンジを受信するか否かの設定をします。

RCV_POLY_AFTER_TOUCH(n) n:0-1 (OFF/ON)
ポリフォニックアフタータッチを受信するか否かの設定をします。

RCV_NOTE_MESSAGE(n) n:0-1 (OFF/ON)
ノートメッセージを受信するか否かの設定をします。

RCV_RPN(n) n:0-1 (OFF/ON)
RPNを受信するか否かの設定をします。

RCV_NRPN(n) n:0-1 (OFF/ON)
NRPNを受信するか否かの設定をします。

RCV_MODURATION(n) n:0-1 (OFF/ON)
モジュレーションを受信するか否かの設定をします。

RCV_VOLUME(n) n:0-1 (OFF/ON)
ヴォリュームを受信するか否かの設定をします。

RCV_PAN(n) n:0-1 (OFF/ON)
パンを受信するか否かの設定をします。

RCV_EXPRESSION(n) n:0-1 (OFF/ON)
エクスプレッションを受信するか否かの設定をします。

RCV_HOLD1(n) n:0-1 (OFF/ON)
ホールド1を受信するか否かの設定をします。

RCV_PORTAMENTO(n) n:0-1 (OFF/ON)
ポルタメントを受信するか否かの設定をします。

RCV_SOSTENUTO(n) n:0-1 (OFF/ON)
ソステヌートを受信するか否かの設定をします。

RCV_SOFT_PEDAL(n) n:0-1 (OFF/ON)
ソフトペダルを受信するか否かの設定をします。

RCV_BANK_SELECT(n) n:0-1 (OFF/ON)
バンクセレクトを受信するか否かの設定をします。

SCALE_TUNING_C(n) n:$00-$7F
ドのスケールチューニングを設定します。

SCALE_TUNING_C_Sharp(n) n:$00-$7F
ド#のスケールチューニングを設定します。

SCALE_TUNING_D(n) n:$00-$7F
レのスケールチューニングを設定します。

SCALE_TUNING_D_Sharp(n) n:$00-$7F
レ#のスケールチューニングを設定します。

SCALE_TUNING_E(n) n:$00-$7F
ミのスケールチューニングを設定します。

SCALE_TUNING_F(n) n:$00-$7F
ファのスケールチューニングを設定します。

SCALE_TUNING_F_Sharp(n) n:$00-$7F
ファ#のスケールチューニングを設定します。

SCALE_TUNING_G(n) n:$00-$7F
ソのスケールチューニングを設定します。

SCALE_TUNING_G_Sharp(n) n:$00-$7F
ソ#のスケールチューニングを設定します。

SCALE_TUNING_A(n) n:$00-$7F
ラのスケールチューニングを設定します。

SCALE_TUNING_A_Sharp(n) n:$00-$7F
ラ#のスケールチューニングを設定します。

SCALE_TUNING_B(n) n:$00-$7F
シのスケールチューニングを設定します。

CAT_PITCH_COTROL(n) n:$28〜$40〜$58 (-24〜0〜+24)
チャンネルアフタータッチによるピッチコントロールの設定をします。

CAT_LOW_PASS_FILTER_COTROL(n) n:$00-$7F
チャンネルアフタータッチによるフィルターコントロールの設定をします。

CAT_AMPLITUDE_COTROL(n) n:$00-$7F
チャンネルアフタータッチによるアンプリチュードの設定をします。

CAT_LFO_PMOD_DEPTH(n) n:0-127
チャンネルアフタータッチによるピッチ変化の深さの設定をします。

CAT_LFO_FMOD_DEPTH(n) n:0-127
チャンネルアフタータッチによるフィルター変化の深さの設定をします。

CAT_LFO_AMOD_DEPTH(n) n:0-127
チャンネルアフタータッチによる音量変化の深さの設定をします。

PAT_PITCH_COTROL(n) n:$28〜$40〜$58 (-24〜0〜+24)
ポリフォニックアフタータッチによるピッチコントロールの設定をします。

PAT_LOW_PASS_FILTER_COTROL(n) n:$00-$7F
ポリフォニックアフタータッチによるフィルターコントロールの設定をします。

PAT_AMPLITUDE_COTROL(n) n:$00-$7F
ポリフォニックアフタータッチによるアンプリチュードの設定をします。

PAT_LFO_PMOD_DEPTH(n) n:0-127
ポリフォニックアフタータッチによるピッチ変化の深さの設定をします。

PAT_LFO_FMOD_DEPTH(n) n:0-127
ポリフォニックアフタータッチによるフィルター変化の深さの設定をします。

PAT_LFO_AMOD_DEPTH(n) n:0-127
ポリフォニックアフタータッチによる音量変化の深さの設定をします。

AC1_COTROLLER_NUMBER(n) n:$00-$5F (0-95)
アサイナブルコントローラ1に割り当てるコントロールチェンジの番号を設定します。

AC1_PITCH_COTROL(n) n:$28〜$40〜$58 (-24〜0〜+24)
アサイナブルコントローラ1によるピッチコントロールの設定をします。

AC1_LOW_PASS_FILTER_COTROL(n) n:$00-$7F
アサイナブルコントローラ1によるフィルターコントロールの設定をします。

AC1_AMPLITUDE_COTROL(n) n:$00-$7F
アサイナブルコントローラ1によるアンプリチュードの設定をします。

AC1_LFO_PMOD_DEPTH(n) n:0-127
アサイナブルコントローラ1によるピッチ変化の深さの設定をします。

AC1_LFO_FMOD_DEPTH(n) n:0-127
アサイナブルコントローラ1によるフィルター変化の深さの設定をします。

AC1_LFO_AMOD_DEPTH(n) n:0-127
アサイナブルコントローラ1による音量変化の深さの設定をします。

AC2_COTROLLER_NUMBER(n) n:$00-$5F (0-95)
アサイナブルコントローラ2に割り当てるコントロールチェンジの番号を設定します。

AC2_PITCH_COTROL(n) n:$28〜$40〜$58 (-24〜0〜+24)
アサイナブルコントローラ2によるピッチコントロールの設定をします。

AC2_LOW_PASS_FILTER_COTROL(n) n:$00-$7F
アサイナブルコントローラ2によるフィルターコントロールの設定をします。

AC2_AMPLITUDE_COTROL(n) n:$00-$7F
アサイナブルコントローラ2によるアンプリチュードの設定をします。

AC2_LFO_PMOD_DEPTH(n) n:0-127
アサイナブルコントローラ2によるピッチ変化の深さの設定をします。

AC2_LFO_FMOD_DEPTH(n) n:0-127
アサイナブルコントローラ2によるフィルター変化の深さの設定をします。

AC2_LFO_AMOD_DEPTH(n) n:0-127
アサイナブルコントローラ2による音量変化の深さの設定をします。

PORTAMENTO_SWITCH(n) n:0-1 (OFF/ON)
ポルタメントをON/OFFします。

PORTAMENTO_TIME(n) n:0-127
ポルタメントタイムの設定をします。

PITCH_EG_INITIAL_LEVEL(n) n:$00〜$40〜$7F (-64〜0〜+63)
ピッチEGのイニシャルレベルの設定をします。

PITCH_EG_ATTACK_TIME(n) n:$00〜$40〜$7F (-64〜0〜+63)
ピッチEGのアタックタイムの設定をします。

PITCH_EG_RELEASE_LEVEL(n) n:$00〜$40〜$7F (-64〜0〜+63)
ピッチEGのリリースレベルの設定をします。

PITCH_EG_RELEASE_TIME(n) n:$00〜$40〜$7F (-64〜0〜+63)
ピッチEGのリリースタイムの設定をします。

VELOCITY_LIMIT_LOW(n) n:1-127
発音するヴェロシティの下限を設定します。

VELOCITY_LIMIT_HIGH(n) n:1-127
発音するヴェロシティの上限を設定します。

EQ_BASS_GAIN(n) n:$00-$7F (-12〜0〜+12)
EQ BASSゲインを設定します。

EQ_TREBLE_GAIN(n) n:$00-$7F (-12〜0〜+12)
EQ TREBLEゲインを設定します。

EQ_BASS_FREQUENCY(n) n:$04-$28
EQ BASS FREQUENCYを設定します。

EQ_TREBLE_FREQUENCY(n) n:$1C-$3A
EQ TREBLE FREQUENCTを設定します。

HIGH_PASS_FILTER_CUTOFF_FREQUENCY(n) n:$00〜$40〜$7F (-64〜0〜+63)
ハイパスフィルターの設定をします。

■ドラムセット

ドラムセットに関するエクスクルーシブには共通のパラメータ"DNumber","NNumber"を設定します。
DNumberはパラメータを変更したいDrumSetupのナンバーを記述します。値は1〜4の範囲です。
NNumberはパラメータを変更したいノートナンバーを記述します値の範囲は"$0D-$5B"(o1c+〜o7gに対応)です。
また、{}で括ってo4cなどと記述すると自動的にノートナンバーに変換します。

> DRUM_PITCH_COARSE(1,{o2c},$40)
> DRUM_PITCH_COARSE(1,24,$40)

どちらもDrumSetup1のノートナンバー24のピッチコースを$40に設定します。

※重要※
NNumberを{o4c}のような形式で指定した場合、NoteNo()関数を用いて数値に変換します。
NoteNo()関数はKeyFlagの影響などを受けますので注意して使用してください。


DRUM_PITCH_COARSEM(DNumber,NNumber,n) n:$00〜$40〜$7F (-64〜0〜+63)
ピッチコースの設定をします。

DRUM_PITCH_FINE(DNumber,NNumber,n) n:$00〜$40〜$7F (-64〜0〜+63)
ピッチファインチューニングの設定をします。

DRUM_LEVEL(DNumber,NNumber,n) n:0-127
ヴォリュームの設定をします。

DRUM_ALTERNATE_GROUP(DNumber,NNumber,n) n:0-127 (OFF,1-127)
オルタネートグループの設定をします。

DRUM_PAN(DNumber,NNumber,n) n:0-127 (RND,L63〜C〜R63)
パンの設定をします。

DRUM_REVERB_SEND(DNumber,NNumber,n) n:0-127
リバーブへの送り値の設定をします。

DRUM_CHORUS_SEND(DNumber,NNumber,n) n:0-127
コーラスへの送り値の設定をします。

DRUM_VARIATION_SEND(DNumber,NNumber,n) n:0-127
ヴァリエーションへの送り値の設定をします。

DRUM_KEY_ASSIGN(DNumber,NNumber,n) n:0-1 (SINGLE/MULTI)
キーアサインの設定をします。

DRUM_RCV_NOTE_OFF(DNumber,NNumber,n) n:0-1 (OFF/ON)
ノートオンを受信するか否かの設定をします。

DRUM_RCV_NOTE_ON(DNumber,NNumber,n) n:0-1 (OFF/ON)
ノートオフを受信するか否かの設定をします。

DRUM_LOW_PASS_FILTER_CUTOFF_FREQUENCY(DNumber,NNumber,n) n:$00〜$40〜$7F (-64〜0〜+63)
ローパスフィルターの設定をします。

DRUM_LOW_PASS_FILTER_RESONANCE(DNumber,NNumber,n) n:$00〜$40〜$7F (-64〜0〜+63)
レゾナンスの設定をします。

DRUM_EG_ATTACK_RATE(DNumber,NNumber,n) n:$00〜$40〜$7F (-64〜0〜+63)
アタックレートの設定をします。

DRUM_EG_DECAY1_RATE(DNumber,NNumber,n) n:$00〜$40〜$7F (-64〜0〜+63)
ディケイ1レートの設定をします。

DRUM_EG_DECAY2_RATE(DNumber,NNumber,n) n:$00〜$40〜$7F (-64〜0〜+63)
ディケイ2レートの設定をします。

DRUM_EQ_BASS_GAIN(DNumber,NNumber,n) n:$00-$7F (-12〜0〜+12)
EQ BASSゲインの設定をします。

DRUM_EQ_TREBLE_GAIN(DNumber,NNumber,n) n:$00-$7F (-12〜0〜+12)
EQ TREBLEゲインの設定をします。

DRUM_EQ_BASS_FREQUENCY(DNumber,NNumber,n) n:$04-$28
EQ BASS FREQUENCYの設定をします。

DRUM_EQ_TREBLE_FREQUENCY(DNumber,NNumber,n) n:$1C-$3A
EQ TREBLE FREQUENCYの設定をします。

DRUM_HIGH_PASS_FILTER_CUTOFF_FREQUENCY(DNumber,NNumber,n) n:$00〜$40〜$7F (-64〜0〜+63)
ハイパスフィルターの設定をします。

DRUM_VELOCITY_SENSE_PITCH(DNumber,NNumber,n) n:$30-$50 (-16〜0〜+16)
ヴェロシティセンスピッチの設定をします。

DRUM_VELOCITY_SENSE_LPF_CUTOFF(DNumber,NNumber,n) n:$30-$50 (-16〜0〜+16)
ヴェロシティセンスローパスフィルターの設定をします。

SPECIAL THANKS

制作の際にお手伝いして頂いた、Mizinco foundryのみじんこさん。
またこちらの要望に何度も応えてくださった、テキスト音楽「サクラ」の作者、クジラ飛行机さん。

お二人に感謝いたします。この関数セットがサクラの発展に少しでも貢献できることを願っております。

サポート

当関数セットのサポートは、4neriaが行います。
バグ情報や要望などは、メールでお願いいたします(サクラの掲示板だと見落とす可能性があるかもしれません…)

なお、HTMLメールは送らないでください。メーラーの設定により表示せずに削除されます(ウィルス対策です)