Control Change Message
MIDIの各チャンネルを制御する為のメッセージです。
Program(Sound, Voice Tone, Preset, Patch)のバンクを選択するメッセージです。
このメッセージの送信後、
プログラム・チェンジ・メッセージを送信する事で、
選択したバンクのプログラムの音色を鳴らすことが出来ます。
バンクセレクトでは音色は変わらず、その後に
プログラム・チェンジ・メッセージが必要です。
General MIDI Level.2(GM2)では、
バンク$78/$00が指定されその後にプログラム・チェンジする事でリズム・チャンネルになります。
又、バンク$79/xxが指定されその後にプログラム・チェンジする事でメロディー・チャンネルになります。
サクラの@命令及びvoice()命令は、バンクセレクトを指定してからプログラム・チェンジを指定する仕様になっています。
従って、ユーザーが特に意識する必要はありません。
命令一覧 (Sakura標準命令)
- @INT Program_No[,INT Bank_LSB,INT Bank_MSB]
- Voice(INT Program_No[,INT Bank_LSB,INT Bank_MSB])
- 音色(INT Program_No[,INT Bank_LSB,INT Bank_MSB])
ビブラート(音程LFO)の深さを変化させます。
最大値を指定したときのビブラートの深さは、
Registered Paramete No.5の
Modlation Depthで指定します。
指定値と深さはcent単位で比例します。
命令一覧 (Sakura標準命令)
- M(INT Depth)
- Modulation(INT Depth)
- ビブラート
- ビブラートオフ
息を吹き込む強さを送出する為のコントロールで、MIDIリコーダーや、MIDIサックス等に使われます。
この操作による効果は、MIDI規格では標準化されていません。
このコントローラーに対応している楽器の多くの場合は、音の明るさ及び音量が変化します。
ペダルの押し込み量を送出する為のコントロールで、MIDIキーボード等に使われます。
この操作による効果は、MIDI規格では標準化されていません。
このコントローラーに対応している楽器の多くの場合は、音の明るさが変化します。
チャンネルの音量を変化させるメッセージで、各チャンネル間との音量バランスを設定する目的として使われます。
音量の式は、以下のとおりです。
gain [dB] = 40 × log(
Volume ÷ 127 )
命令一覧 (Sakura標準命令)
- V(INT Volume)
- MainVolume(INT Volume)
2つの異なるプログラム(音色、プリセット、パッチ等)を鍵盤上にアサインして演奏する場合等に、そのバランスを設定します。
値が0のとき左(ロワー)の音量が最大になり、64で等バランス、127で右(アッパー)の音量が最大となります。
チャンネルのステレオの音場位置を設定します。
リズムチャンネルの場合は、相対的に変化します。
リズムチャンネルの各パーカッションの音場を設定する為には、
Universal Real Time Exclusive Messageの
Key-Based Instrument Controllers(Sub ID#1=$0A)を使用します。
General MIDI Level.2(GM2)で推奨される、左右の音量の計算式は以下の通りです。
Gain(Left) [dB] = 20 × log( cos( π ÷ 2 × max( 0,
Panpot − 1 ) ÷ 126 ) )
Gain(Right) [dB] = 20 × log( sin( π ÷ 2 × max( 0,
Panpot − 1 ) ÷ 126 ) )
命令一覧 (Sakura標準命令)
- P(INT Panpot)
- Panpot(INT Panpot)
- 方向左
- 方向左前
- 方向前
- 方向右前
- 方向右
- 方向回す
チャンネルの音量を変化させるメッセージで、
クレッシェンド、デクレッシェンド等の音楽表現を行う為に使用されます。
音量の式は、以下のとおりです。
gain [dB] = 40 × log(
Expression ÷ 127 )
命令一覧 (Sakura標準命令)
- EP(INT Expression)
- Expression(INT Expression)
- Cresc([[[INT length], INT start_Expression], INT end_Expression])
- Decresc([[[INT length], INT start_Expression], INT end_Expression])
- 大きく(INT length, INT end_Expression)
- 小さく(INT length, INT end_Expression)
- クレッシェンド(INT length, INT end_Expression)
- デクレッシェンド(INT length, INT end_Expression)
- 音量戻す
このパラメータの動作は、MIDI規格では標準化されておらず、楽器固有のパラメータを操作する為に用いられます。
これは、楽器固有のパラメータをSystem Exclusive Messageにて送信した場合に、通信量が大きくなるデメリットがあり、
この汎用操作子で簡単にコントロールできるようにしたものです。
General MIDI Level.2(GM2)では、
Universal Real Time Exclusive Messageの
Controller Destination Setting(Sub ID#1=$09)にて、
特定のコントロールNo.に機能を設定する事が可能で、通常はこのコントロールに割り当てて利用します。
汎用操作子 | CC No. |
General Purpose Control 1 | 16 |
General Purpose Control 2 | 17 |
General Purpose Control 3 | 18 |
General Purpose Control 4 | 19 |
General Purpose Control 5 | 80 |
General Purpose Control 6 | 81 |
General Purpose Control 7 | 82 |
General Purpose Control 8 | 83 |
ポルタメント時のピッチの変化の早さを指定します。
General MIDI Level.2(GM2)では、モノ・モード(モード4)の時に使用する事ができます。
また、ポリ・モード(モード3)の時でも、使用できる楽器もあります。
General MIDI Level.2(GM2)では、指定値によるピッチの変化のレートは、以下の表の通りとする事が推奨されています。
縦軸は変化のスピード(単位[cent/msec])で、横軸は指定値です。
命令一覧 (Sakura標準命令)
- PT(INT Time)
- PortamentoTime(INT Time)
指定値は、0〜63がOff,64〜127がOnとなります。
このメッセージは、ポルタメントのOn/Offを指定します。
ポルタメントがOnの状態では、全てのノート・オンされた音について、
ポルタメントコントローラーにて指定されたノートNo.の音程から
ノートオンした音程まで、ポルタメントタイムで指定した速度でポルタメントします。
命令一覧 (Sakura標準命令)
- PS(INT switch)
- PortamentoSwitch(INT switch)
どの音程からポルタメントするか、ノートナンバーで指定します。
このコントロールをMIDIデバイスに送出した場合、次にノートオンする音はポルタメントon/offの状態に関わらずポルタメントします。
又、ポルタメントコントロールにて指定したノートナンバーと同一の音が既に発音されていた場合は、次にノートオンされる音は現在鳴っている音がノートオンされたノートナンバーの音程へポルタメントします。
ハーフペダルを導入しない場合は、0〜63がOff,64〜127がOnとします。
このメッセージは、ダンパーペダル(若しくは、サスティンペダル)のOn/Offをします。
General MIDI Level.2(GM2)のピアノ系の音色では、リダンパーに対応しています。
命令一覧 (Sakura標準命令)
指定値は、0〜63がOff,64〜127がOnとなります。
ダンパーペダルの効果と似ているが、このメッセージは、
Onになったときにノートオンされていた音のみを保持します。
命令一覧
指定値は、0〜63がOff,64〜127がOnとなります。
このメッセージは、発音する音を柔らかくする為に用います。
具体的には、音量を小さくし、カットオフ周波数を下げる等の操作がMIDI内部で行われます。
General MIDI Level.2(GM2)では、ピアノ系の音色のみの対応が義務つけられています。
命令一覧
ローパスフィルタのレゾナンスの強さを指定します。
64を標準とし、値が小さい程効果が弱くなり、大きいほど効果が大きくなります。
命令一覧
エンベロープのリリースタイムを指定します。
64を標準とし、値が小さい程効果が短くなり、大きいほど効果が長くなります。
命令一覧
エンベロープのアタックタイムを指定します。
64を標準とし、値が小さい程効果が短くなり、大きいほど効果が長くなります。
命令一覧
ローパスフィルタのカットオフ周波数を指定します。
64を標準とし、値が小さい程周波数が低くなり、大きいほど周波数が高くなります。
命令一覧
エンベロープのディケイタイムを指定します。
64を標準とし、値が小さい程効果が短くなり、大きいほど効果が長くなります。
命令一覧
ビブラートの周期を指定します。
64を標準とし、値が小さい程周期が長くなり、大きいほど周期が短くなります。
命令一覧
ビブラートの深さを指定します。
64を標準とし、値が小さい程効果が弱くなり、大きいほど効果が大きくなります。
命令一覧
ビブラートのディケイタイムを指定します。
64を標準とし、値が小さい程効果が短くなり、大きいほど効果が長くなります。
命令一覧
リバーブへのセンド・レベルを設定します。
指定値とセンド・レベルは比例関係です。
細かいを設定する為には、
Universal Real Time Exclusive Messageの
Device Control(Sub ID#1=$04)を使用します。
命令一覧 (Sakura標準命令)
- REV(INT value)
- Reverb(INT value)
指定値とセンド・レベルは比例関係で、127の時に100%となります。
細かいを設定する為には、
Universal Real Time Exclusive Messageの
Device Control(Sub ID#1=$04)を使用します。
命令一覧 (Sakura標準命令)
- CHO(INT value)
- Chorus(INT value)
指定値とセンド・レベルは比例関係です。
Celeste(セレステ)は、3相のLFOにより音にうねりと広がりを与える、より重厚なコーラスです。
Roland GS規格
Delay(ディレイ)と呼ばれるエフェクトが割当てられています。
これは、音を遅延させて原音に加える処理で、エコーみたいな残響音が得られます。
YAMAHA XG規格
Variation(バリエーション)と呼ばれるエフェクトが割当てられています。
XG規格専用の命令により、様々な機能を割り当てる事ができます。
命令一覧 (Sakura標準命令)
各MIDIデバイス個別に規定されている各パラメータの設定を行います。
このパラメータは、各メーカが独自に設計する為、各MIDIデバイスで互換性が無い場合があります。
パラメータを設定する方法は、
Non Registered Parameter LSB(cc98)及び、Non Registered Parameter MSB(cc99)を指定し、
Data Entry MSB(cc6)及び、Data Entry LSB(cc38)を送信する事で可能です。
又、Data Increment(cc96)及びData Decrement(cc97)にて、MSB単位で値のインクリメント(+1)及びデクリメント(-1)する事が可能です。
この2つのコントロールは、第2Byteは意味を持ちません。
命令一覧 (Sakura標準命令)
- NRPN(INT No_MSB, INT No_LSB, INT Data_MSB)
- DataMSB(INT Data_MSB)
- DataLSB(INT Data_LSB)
- Y(INT Data_MSB)
MIDI規格によって標準化されている、全てのMIDIデバイスに共通する各パラメータの設定を行います。
パラメータを設定する方法は、
Registered Parameter LSB(cc100)及び、Registered Parameter MSB(cc101)を指定し、
Data Entry MSB(cc6)及び、Data Entry LSB(cc38)を送信する事で可能です。
又、Data Increment(cc96)及びData Decrement(cc97)にて、MSB単位で値のインクリメント(+1)及びデクリメント(-1)する事が可能です。
この2つのコントロールは、第2Byteは意味を持ちません。
命令一覧 (Sakura標準命令)
- RPN(INT No_MSB, INT No_LSB, INT Data_MSB)
- DataMSB(INT Data_MSB)
- DataLSB(INT Data_LSB)
- Y(INT Data_MSB)
現在、MIDI規格にて標準化されているパラメータは以下のとおりです。
Registered Parameter
Parameter | MSB | LSB | GM1 | GM2 | Command | Define |
Pitch Bend Sensitivity | 0 | 0 | ○ | ○ |
PitchBendSensitivity BR | stdmsg.h |
Fine Tuning | 0 | 1 | × | ○ |
FineTune | stdmsg.h |
Corse Tuing | 0 | 2 | × | ○ |
CoarseTune | stdmsg.h |
Tuning Preset | 0 | 3 | × | × |
No Defined | No Defined |
Tuning Bank | 0 | 4 | × | × |
No Defined | No Defined |
Modlation Depth | 0 | 5 | × | ○ |
No Defined | No Defined |
Null | 127 | 127 | ○ | ○ |
No Defined | No Defined |
Pitch Bend Change Messageでの感度の量を指定します。
Data EntryのMSBが半音単位、LSBがcent単位となります。
General MIDI Level.1及び2(GM1,GM2)では、±12以上の対応が義務つけられています。
命令一覧 ("stdmsg.h"にて定義されています。)
- PitchBendSensitivity(INT Range_MSB)
- BR(INT Range_MSB)
チャンネルのチューニングを、細かいレベルで設定します。
MSB=$40, LSB=$00で中央となり、100/8192[cent]単位で調整可能です。
命令一覧 ("stdmsg.h"にて定義されています。)
チャンネルのチューニングを、粗いレベルで設定します。
LSBは無効で、MSB=$40で中央となります。半音単位で調整可能です。
General MIDI Level.2(GM2)では、±12以上の対応が義務つけられています。
キーシフトとしても利用可能です。
命令一覧 ("stdmsg.h"にて定義されています。)
チューニング・プログラムのPreset No及びBank No.を指定します。
チューニング・プログラムについての詳細は、
MIDI Tuning Standardを参照して下さい。
Modlation(Control Change No.1)で最大値が指定されたときビブラートの深さを設定します。
Data EntryのMSBが半音単位、LSBがcent単位となります。
General MIDI Level.1及び2(GM1,GM2)では、±12以上の対応が義務つけられています。
$7F/ $7F:Null
Data Entryで指定された値は無視されます。