wiki@nothing
適当なまとめサイトというか資料庫というか。誰でも自由に編集できます。
|
|
|
MIDI Rules
をテンプレートにして作成
開始行:
*MIDI Rules日本語簡易リファレンス [#title]
#contents
**MIDI Rulesとは? [#whats_midirules]
「MIDI Rules」は高機能なテキストベースのコマンド定義型MID...
情報が少ないため、著者が独自で調査し、日本語で簡易リファ...
そのため、不明な点や間違いなどもありますが、ご了承くださ...
MIDI Rulesのダウンロードはこちら。
http://cycokraut.wordpress.com/midi-rules/
**基本的なコマンド [#command]
-''package {name}''
ルール定義ファイルの名称を定義します。
ルール定義ファイル内(*.drl)の冒頭で1つだけ記述します。
半角英数文字のみ使用可能です。
ただし、半角ハイフン「-」を使用すると実行時にエラーになり...
-''expander {filename}''
コマンド拡張用の定義ファイルのファイル名を指定します。
ルール定義ファイル内の冒頭で1つだけ記述します。
半角英数文字のみ使用可能です。
通常は「''MidiRules.dsl''」を定義しておけば問題ありません。
-''rule "{name}"''
ルール名{name}を定義します。
endとワンセットのブロックとして、ルール定義ファイル内で幾...
同じルール名を複数使用することは出来ません。
-''when''
thenで記述されたコマンドを実行するための条件を記述します。
コマンドは何行でも記述できます。
thenとワンセットで、ルール内で1つだけ記述できます。
-''then''
whenで記述された条件に基づいてコマンドを実行します。
コマンドは何行でも記述できます。
whenとワンセットで、ルール内で1つだけ記述できます。
-''end''
ルールを終了します。
Rules "{name}"とワンセットのブロックとして、ルール定義フ...
-''/* */''
コメントです。 /* と */ で囲まれた文字列は実行時に無視さ...
ルール定義ファイル内であれば、どこにでも記述可能です。
-''#''
コメントです。 #以降の文字列は実行時に無視されます。
ルール定義ファイル内であれば、どこにでも記述可能です。
**when以降で使用可能なコマンド [#command_when]
-''salience {value}''
ルールの実行優先度を設定します。
0が初期値で、-を指定すると実行優先度が下がります。
-''Initialization''
ルールの初期化を行います。
主に環境変数の初期設定を行う場合等に使用します。
-''Receive short message''
MIDIメッセージを受信します。
-''Receive short message with channel : {channel} , comma...
MIDIメッセージを受信します。 条件指定が可能です。
--{channel}=MIDIチャンネル 範囲は1-16です。
--{command}=MIDIメッセージ [[代表的なMIDIメッセージ>#mi...
--{data1}=データ1 [[代表的なMIDIメッセージ>#midi_messag...
--{data2}=データ2 [[代表的なMIDIメッセージ>#midi_messag...
-''Receive short message on midi in {midi_in_number} with...
MIDIメッセージを受信します。 入力MIDIポート番号と条件指...
--{midi_in_number}=入力MIDIポート番号 MIDI Rulesの動作...
-''midi in is equal to {value}''
入力MIDIポートの条件比較を行います。
-''channel is equal to {value}''
-''channel is greater than {value}''
-''channel is less than {value}''
MIDIチャンネルの条件比較を行います。
-''command is equal to {value}''
MIDIメッセージの条件比較を行います。
-''data1 is equal to {value}''
-''data1 is greater than {value}''
-''data1 is less than {value}''
MIDIメッセージのdata1の条件比較を行います。
-''data2 is equal to {value}''
-''data2 is greater than {value}''
-''data2 is less than {value}''
MIDIメッセージのdata2の条件比較を行います。
-''Variable "{name}" is equal to {value}''
-''Variable "{name}" is not equal to {value}''
-''Variable "{name}" is greater than {value}''
-''Variable "{name}" is less than {value}''
環境変数{name}の条件比較を行います。
--''条件比較コマンドの説明''
数学記号で言うところの「≦」「≧」は存在しません。
「is greater than」「is less than」を列挙することで範囲指...
「1から100まで」としたい場合は「is greater than 0」「is l...
---''AAA is equal to BBB''
AAAの値がBBBと等しい場合(数学記号で言うところの「AAA=BB...
---''AAA is not equal to BBB''
AAAの値がBBBと等しくない場合(数学記号で言うところの「AAA...
---''AAA is greater than BBB''
AAAの値がBBBより大きい場合(数学記号で言うところの「AAA>...
---''AAA is less than BBB''
AAAの値がBBBより小さい場合(数学記号で言うところの「AAA<...
-''tagged with {name}''
不明
-''tagged with {name} : {value}''
不明
-''time is at least {ms} later then {other_time}''
不明
-''time is at most {ms} later then {other_time}''
不明
-''Timer "{name}"''
不明
**then以降で使用可能なコマンド [#command_then]
-''Send short message to midi out {midi_out_number} with ...
MIDIメッセージを送信します。 条件指定が可能です。
--{midi_out_number}=出力MIDIポート番号 MIDI Rulesの動作...
--{channel}=MIDIチャンネル 範囲は1-16です。
--{command}=MIDIメッセージ [[代表的なMIDIメッセージ>#mi...
--{data1}=データ1 [[代表的なMIDIメッセージ>#midi_messag...
--{data2}=データ2 [[代表的なMIDIメッセージ>#midi_messag...
--{channel}、{command}、{data1}、{data2}に下記の変数を記...
また、これらの変数に対して+ nや- nなどで四則演算を行うこ...
---received_message_channel
---received_message_command
---received_message_data1
---received_message_data2
---received_message_midi_port
---received_message_time
-''Send short message in {delay}ms to midi out {midi_out_...
MIDIメッセージを送信します。 送信するまでの遅延時間と条...
--{delay}=送信するまでの遅延時間(msec)
-''Send short message "{key}" in {delay}ms to midi out {m...
MIDIメッセージを送信します。 送信するまでの遅延時間と条...
--{key}=不明
-''Pass message throu to midi out {midi_out_number}''
MIDIメッセージをスルー(そのまま送信)します。
--{midi_out_number}=出力MIDIポート番号 MIDI Rulesの動作...
-''Trigger timer "{name}" at time {time}''
不明
-''Trigger timer "{name}"''
不明
-''Trigger timer "{name}" in {delay}ms''
不明
-''Consume timer "{name}"''
不明
-''Tag received message with {name}''
不明
-''Tag received message with {name} : {tag_value}''
不明
-''Consume received message''
MIDIメッセージの受信を終了します。
-''Create variable "{name}"''
環境変数{name}を宣言(新規作成)します。
ルール定義ファイル内で環境変数を使用する場合、必ず宣言す...
ルール定義ファイル内で一度だけ宣言すれば問題ありません。
同じ環境変数名を複数宣言することは出来ません。
-''Set variable "{name}" to {value}''
環境変数{name}に値{value}をセットします。
-''Log "{message}"''
コンソール画面に文字列{message}を表示します。
**注意事項 [#attention]
-値を三桁(例えば1を001などと)で記述すると誤動作しやすく...
-不明なコマンドについてですが、おそらくMIDIメッセージの送...
whenで遅延させるための条件やタイマーの初期化、thenで実際...
**サンプル [#sample]
***サンプルその1(MIDI-THRU ルール定義ファイル全景) [#s...
/*
MIDI THRU Sample
*/
# 対応機種名(半角英数文字 ハイフン使用不可)
package MIDI_THRU
# 弄らないでください!
expander MidiRules.dsl
# ここから下はMIDI処理定義文です
# MIDI-THRU機能
rule "Midi through"
salience -100 # salience(実行優先度)のデフォルト値...
when # このルールは-100であるため、一番最後に処理さ...
Receive short message # MIDIメッセージ受信
then
Pass message throu to midi out 1 # 何もせずMIDIポート1...
Consume received message # MIDIメッセージ受信終了
end
※空のテキストファイルにこのサンプルをコピー&ペーストし、
「''midithru.drl''」等のファイル名でルール定義ファイル...
MIDI Rulesに読み込んで実行させることで、MIDIスルー機能...
ルール定義ファイルを自作する際のテンプレートに応用する...
***サンプルその2(CC#11エクスプレッションをCC#7ボリューム...
rule "CC11 to CC7"
when
Receive short message # MIDIメッセージ受信
channel is equal to 1 # MIDIチャンネルが1のとき
command is equal to 176 # MIDIメッセージがコントロー...
data1 is equal to 11 # コントロールチェンジが11のとき
then # MIDI-CC#値を7に置換してMIDIポート1に送信する...
Send short message to midi out 1 , command : 176 , dat...
Consume received message # MIDIメッセージ受信終了
end
***サンプルその3(ベロシティの最大値を100以上出ないように...
rule "Velocity Control"
when
Receive short message # MIDIメッセージ受信
channel is equal to 1 # MIDIチャンネルが1のとき
command is equal to 144 # MIDIメッセージがノートオン...
data1 is greater than 0 # ノートの範囲が1-127のとき(...
data1 is less than 128 # ノートの範囲が1-127のとき(1...
data2 is greater than 100 # ベロシティの範囲が101-127...
data2 is less than 128 # ベロシティの範囲が101-127の...
then # ベロシティを100で固定する data1(ノートNo....
Send short message to midi out 1 , command : 144 , dat...
Consume received message # MIDIメッセージ受信終了
end
***サンプルその4(初期設定にて環境変数を定義する ルール...
rule "Initaliziation"
when
Initialization
then
Create variable "test" # 変数testを定義
Set variable "test" to 1 # testに1を代入
Log "Setup Finished!" # コンソールに文字列を表示する
end
***サンプルその5(環境変数や四則演算を用いた条件動作的な...
rule "nazo"
when
Variable "test" is equal to 1 # 環境変数testが1の場合
Receive short message # MIDIメッセージ受信
command is equal to 176 # MIDIメッセージがコントロー...
data1 is equal to 120 # コントロールチェンジが120の...
then # MIDI-CC#値を-20してからMIDIポート1のチャンネ...
Set Variable "test" to 0 # 環境変数testに0を代入
Send short message to midi out 1 with channel : 4 , co...
Consume received message # MIDIメッセージ受信終了
end
**代表的なMIDIメッセージ [#midi_message_list]
,メッセージ,1バイト目(16進数),1バイト目(10進数),2バイト目...
,ノートオン(発音),0x90,144,ノート番号(0-127),ベロシテ...
,ノートオフ(消音),0x80,128,ノート番号(0-127),ベロシテ...
,コントロールチェンジ,0xB0,176,CC番号(0-127),値(0-127...
,プログラムチェンジ(音色変更),0xC0,192,音色番号(0-127...
,ピッチベンド,0xE0,224,下位7ビット,上位7ビット,0xE0 0 0
※記載にあたり、http://codezine.jp/a/article/aid/172.aspx ...
**関連サイト [#sites_link]
MIDI Rulesの動作に必要なSun Microsystems社のJavaのダウン...
http://www.java.com/download
MIDI Rulesとの併用が推奨されている仮想MIDIポートドライバ...
http://www.hurchalla.com/Maple_driver.html
仮想MIDIポートドライバ「MIDI-YOKE」とGUI型MIDIフィルター...
http://www.midiox.com
MIDI RulesとBCD2000でTraktorを快適に操作!
http://wiki.nothing.sh/page/memo/BCD2000
MIDI RulesとX-Session Proでfireflyを快適に操作!(拙作)
http://wiki.nothing.sh/page?FIRE%20CONTROL%20XSP
**これを作った奴の連絡先 [#dee_address]
Dee!(AVSS,VJ TeraBytes)
d909@music.clubbbq.com ←アットマークを半角文字にしてく...
http://mixi.jp/show_profile.pl?id=196562
**コメント等ございましたらこちらにどうぞ [#comments]
#comment
終了行:
*MIDI Rules日本語簡易リファレンス [#title]
#contents
**MIDI Rulesとは? [#whats_midirules]
「MIDI Rules」は高機能なテキストベースのコマンド定義型MID...
情報が少ないため、著者が独自で調査し、日本語で簡易リファ...
そのため、不明な点や間違いなどもありますが、ご了承くださ...
MIDI Rulesのダウンロードはこちら。
http://cycokraut.wordpress.com/midi-rules/
**基本的なコマンド [#command]
-''package {name}''
ルール定義ファイルの名称を定義します。
ルール定義ファイル内(*.drl)の冒頭で1つだけ記述します。
半角英数文字のみ使用可能です。
ただし、半角ハイフン「-」を使用すると実行時にエラーになり...
-''expander {filename}''
コマンド拡張用の定義ファイルのファイル名を指定します。
ルール定義ファイル内の冒頭で1つだけ記述します。
半角英数文字のみ使用可能です。
通常は「''MidiRules.dsl''」を定義しておけば問題ありません。
-''rule "{name}"''
ルール名{name}を定義します。
endとワンセットのブロックとして、ルール定義ファイル内で幾...
同じルール名を複数使用することは出来ません。
-''when''
thenで記述されたコマンドを実行するための条件を記述します。
コマンドは何行でも記述できます。
thenとワンセットで、ルール内で1つだけ記述できます。
-''then''
whenで記述された条件に基づいてコマンドを実行します。
コマンドは何行でも記述できます。
whenとワンセットで、ルール内で1つだけ記述できます。
-''end''
ルールを終了します。
Rules "{name}"とワンセットのブロックとして、ルール定義フ...
-''/* */''
コメントです。 /* と */ で囲まれた文字列は実行時に無視さ...
ルール定義ファイル内であれば、どこにでも記述可能です。
-''#''
コメントです。 #以降の文字列は実行時に無視されます。
ルール定義ファイル内であれば、どこにでも記述可能です。
**when以降で使用可能なコマンド [#command_when]
-''salience {value}''
ルールの実行優先度を設定します。
0が初期値で、-を指定すると実行優先度が下がります。
-''Initialization''
ルールの初期化を行います。
主に環境変数の初期設定を行う場合等に使用します。
-''Receive short message''
MIDIメッセージを受信します。
-''Receive short message with channel : {channel} , comma...
MIDIメッセージを受信します。 条件指定が可能です。
--{channel}=MIDIチャンネル 範囲は1-16です。
--{command}=MIDIメッセージ [[代表的なMIDIメッセージ>#mi...
--{data1}=データ1 [[代表的なMIDIメッセージ>#midi_messag...
--{data2}=データ2 [[代表的なMIDIメッセージ>#midi_messag...
-''Receive short message on midi in {midi_in_number} with...
MIDIメッセージを受信します。 入力MIDIポート番号と条件指...
--{midi_in_number}=入力MIDIポート番号 MIDI Rulesの動作...
-''midi in is equal to {value}''
入力MIDIポートの条件比較を行います。
-''channel is equal to {value}''
-''channel is greater than {value}''
-''channel is less than {value}''
MIDIチャンネルの条件比較を行います。
-''command is equal to {value}''
MIDIメッセージの条件比較を行います。
-''data1 is equal to {value}''
-''data1 is greater than {value}''
-''data1 is less than {value}''
MIDIメッセージのdata1の条件比較を行います。
-''data2 is equal to {value}''
-''data2 is greater than {value}''
-''data2 is less than {value}''
MIDIメッセージのdata2の条件比較を行います。
-''Variable "{name}" is equal to {value}''
-''Variable "{name}" is not equal to {value}''
-''Variable "{name}" is greater than {value}''
-''Variable "{name}" is less than {value}''
環境変数{name}の条件比較を行います。
--''条件比較コマンドの説明''
数学記号で言うところの「≦」「≧」は存在しません。
「is greater than」「is less than」を列挙することで範囲指...
「1から100まで」としたい場合は「is greater than 0」「is l...
---''AAA is equal to BBB''
AAAの値がBBBと等しい場合(数学記号で言うところの「AAA=BB...
---''AAA is not equal to BBB''
AAAの値がBBBと等しくない場合(数学記号で言うところの「AAA...
---''AAA is greater than BBB''
AAAの値がBBBより大きい場合(数学記号で言うところの「AAA>...
---''AAA is less than BBB''
AAAの値がBBBより小さい場合(数学記号で言うところの「AAA<...
-''tagged with {name}''
不明
-''tagged with {name} : {value}''
不明
-''time is at least {ms} later then {other_time}''
不明
-''time is at most {ms} later then {other_time}''
不明
-''Timer "{name}"''
不明
**then以降で使用可能なコマンド [#command_then]
-''Send short message to midi out {midi_out_number} with ...
MIDIメッセージを送信します。 条件指定が可能です。
--{midi_out_number}=出力MIDIポート番号 MIDI Rulesの動作...
--{channel}=MIDIチャンネル 範囲は1-16です。
--{command}=MIDIメッセージ [[代表的なMIDIメッセージ>#mi...
--{data1}=データ1 [[代表的なMIDIメッセージ>#midi_messag...
--{data2}=データ2 [[代表的なMIDIメッセージ>#midi_messag...
--{channel}、{command}、{data1}、{data2}に下記の変数を記...
また、これらの変数に対して+ nや- nなどで四則演算を行うこ...
---received_message_channel
---received_message_command
---received_message_data1
---received_message_data2
---received_message_midi_port
---received_message_time
-''Send short message in {delay}ms to midi out {midi_out_...
MIDIメッセージを送信します。 送信するまでの遅延時間と条...
--{delay}=送信するまでの遅延時間(msec)
-''Send short message "{key}" in {delay}ms to midi out {m...
MIDIメッセージを送信します。 送信するまでの遅延時間と条...
--{key}=不明
-''Pass message throu to midi out {midi_out_number}''
MIDIメッセージをスルー(そのまま送信)します。
--{midi_out_number}=出力MIDIポート番号 MIDI Rulesの動作...
-''Trigger timer "{name}" at time {time}''
不明
-''Trigger timer "{name}"''
不明
-''Trigger timer "{name}" in {delay}ms''
不明
-''Consume timer "{name}"''
不明
-''Tag received message with {name}''
不明
-''Tag received message with {name} : {tag_value}''
不明
-''Consume received message''
MIDIメッセージの受信を終了します。
-''Create variable "{name}"''
環境変数{name}を宣言(新規作成)します。
ルール定義ファイル内で環境変数を使用する場合、必ず宣言す...
ルール定義ファイル内で一度だけ宣言すれば問題ありません。
同じ環境変数名を複数宣言することは出来ません。
-''Set variable "{name}" to {value}''
環境変数{name}に値{value}をセットします。
-''Log "{message}"''
コンソール画面に文字列{message}を表示します。
**注意事項 [#attention]
-値を三桁(例えば1を001などと)で記述すると誤動作しやすく...
-不明なコマンドについてですが、おそらくMIDIメッセージの送...
whenで遅延させるための条件やタイマーの初期化、thenで実際...
**サンプル [#sample]
***サンプルその1(MIDI-THRU ルール定義ファイル全景) [#s...
/*
MIDI THRU Sample
*/
# 対応機種名(半角英数文字 ハイフン使用不可)
package MIDI_THRU
# 弄らないでください!
expander MidiRules.dsl
# ここから下はMIDI処理定義文です
# MIDI-THRU機能
rule "Midi through"
salience -100 # salience(実行優先度)のデフォルト値...
when # このルールは-100であるため、一番最後に処理さ...
Receive short message # MIDIメッセージ受信
then
Pass message throu to midi out 1 # 何もせずMIDIポート1...
Consume received message # MIDIメッセージ受信終了
end
※空のテキストファイルにこのサンプルをコピー&ペーストし、
「''midithru.drl''」等のファイル名でルール定義ファイル...
MIDI Rulesに読み込んで実行させることで、MIDIスルー機能...
ルール定義ファイルを自作する際のテンプレートに応用する...
***サンプルその2(CC#11エクスプレッションをCC#7ボリューム...
rule "CC11 to CC7"
when
Receive short message # MIDIメッセージ受信
channel is equal to 1 # MIDIチャンネルが1のとき
command is equal to 176 # MIDIメッセージがコントロー...
data1 is equal to 11 # コントロールチェンジが11のとき
then # MIDI-CC#値を7に置換してMIDIポート1に送信する...
Send short message to midi out 1 , command : 176 , dat...
Consume received message # MIDIメッセージ受信終了
end
***サンプルその3(ベロシティの最大値を100以上出ないように...
rule "Velocity Control"
when
Receive short message # MIDIメッセージ受信
channel is equal to 1 # MIDIチャンネルが1のとき
command is equal to 144 # MIDIメッセージがノートオン...
data1 is greater than 0 # ノートの範囲が1-127のとき(...
data1 is less than 128 # ノートの範囲が1-127のとき(1...
data2 is greater than 100 # ベロシティの範囲が101-127...
data2 is less than 128 # ベロシティの範囲が101-127の...
then # ベロシティを100で固定する data1(ノートNo....
Send short message to midi out 1 , command : 144 , dat...
Consume received message # MIDIメッセージ受信終了
end
***サンプルその4(初期設定にて環境変数を定義する ルール...
rule "Initaliziation"
when
Initialization
then
Create variable "test" # 変数testを定義
Set variable "test" to 1 # testに1を代入
Log "Setup Finished!" # コンソールに文字列を表示する
end
***サンプルその5(環境変数や四則演算を用いた条件動作的な...
rule "nazo"
when
Variable "test" is equal to 1 # 環境変数testが1の場合
Receive short message # MIDIメッセージ受信
command is equal to 176 # MIDIメッセージがコントロー...
data1 is equal to 120 # コントロールチェンジが120の...
then # MIDI-CC#値を-20してからMIDIポート1のチャンネ...
Set Variable "test" to 0 # 環境変数testに0を代入
Send short message to midi out 1 with channel : 4 , co...
Consume received message # MIDIメッセージ受信終了
end
**代表的なMIDIメッセージ [#midi_message_list]
,メッセージ,1バイト目(16進数),1バイト目(10進数),2バイト目...
,ノートオン(発音),0x90,144,ノート番号(0-127),ベロシテ...
,ノートオフ(消音),0x80,128,ノート番号(0-127),ベロシテ...
,コントロールチェンジ,0xB0,176,CC番号(0-127),値(0-127...
,プログラムチェンジ(音色変更),0xC0,192,音色番号(0-127...
,ピッチベンド,0xE0,224,下位7ビット,上位7ビット,0xE0 0 0
※記載にあたり、http://codezine.jp/a/article/aid/172.aspx ...
**関連サイト [#sites_link]
MIDI Rulesの動作に必要なSun Microsystems社のJavaのダウン...
http://www.java.com/download
MIDI Rulesとの併用が推奨されている仮想MIDIポートドライバ...
http://www.hurchalla.com/Maple_driver.html
仮想MIDIポートドライバ「MIDI-YOKE」とGUI型MIDIフィルター...
http://www.midiox.com
MIDI RulesとBCD2000でTraktorを快適に操作!
http://wiki.nothing.sh/page/memo/BCD2000
MIDI RulesとX-Session Proでfireflyを快適に操作!(拙作)
http://wiki.nothing.sh/page?FIRE%20CONTROL%20XSP
**これを作った奴の連絡先 [#dee_address]
Dee!(AVSS,VJ TeraBytes)
d909@music.clubbbq.com ←アットマークを半角文字にしてく...
http://mixi.jp/show_profile.pl?id=196562
**コメント等ございましたらこちらにどうぞ [#comments]
#comment
ページ名:
(HTML conversion costs 0.004 sec.)