せっかくKORG nanoKONTROL BLACKを買ったのだし、自分でRemote用の設定ファイルを作ろう、と思ったのですが、どうせなら、Remote用設定ファイルの編集ツールでも作ろうと考え、Remote用設定ファイルの仕様について調べています。
Reason 3についてくるControl Surface Details.PDFファイルの情報では少なすぎるので(Reason 4にはこのファイルが付いてない?見付けられなかったのだが…)、Reason 4付属のRemoteファイルを見て、不足部分の仕様を推測してみました。
でもこれ、ツールを作るのは想像以上に面倒そうだな…。よく分からない点も多いし…。
以下、備忘録。※一部修正(2009/7/4、2009/7/5)
■.midicodec/.remotemap共通
ファイル名は、どちらも「サーフェス名」であると、Control Surface Details.PDFファイルには書かれている。
しかし、Control Surface Modelで定義されているモデル名が.remotemapファイルのファイル名になっているのではないかと思われるものが存在する。
たとえば、「ControlFreak.midicodec」ファイルと対応するのは「Control Freak.remotemap」ファイルだと思われるが、ControlとFreakの間に半角スペースが入っている。これはControl Surface Modelで定義されている名前である。
各ファイルは、各カラムをタブ文字で区切ったテキストファイル。
文字コードは、UTF-8?
※.midicodecファイルには、BOMがついたファイルはない。
※.remotemapファイルには、BOM(EF BB BF)がついているファイルとついていないファイルがある。
1カラム目が、その行の意味(機能)を示している。
※改行だけの行や、「//」からはじまるコメントアウトされているらしい行が見付かる。
※「//」がコメントを意味する仕様なのかは不明。単に解釈できない行は無視される?
各カラムの値は、前後についている空白文字が無視(削除)される?
※.remotemapファイルの1カラム目には、値が「Map」と「Map(空白文字)」の2種類見付かる。
※空白文字だけのカラムが見付かる。
コントロールのイメージを.midicodecファイルと同名のpngファイルとして用意できるらしい。
イメージの大きさは、96×96。
■.midicodecファイル
●1カラム目の種類(//から始まる場合を無視)
Universal MIDI Codec Control Surface Definition File
File Format Version
Control Surface Manufacturer
Control Surface Model
Codec Version
Identity Request
Identity Response
Item
Item Header
Map
Map Header
MIDI Input Ports
Setup Info Text
Setup User Action Text
Setup Warning Text
Setup
●Item
[1]"Item" [2]Name [3]Type [4]Min [5]Max
≫Type, Min, Maxの組み合わせの種類
button 0 1
delta -8 6
delta 0 1
keyboard 0 127
value 0 127
value 0 16383
deltaの詳細は不明だが、動かした値(差分値)を出力するコントロール?
●Map
[1]"Map" [2]Pattern [3]Name [4]Value1 [5]Value2 [6]Value3
Value1,Value2,Value3の正確な意味(使い分け)は不明。
コントロールチェンジでLSBが送られてきたときの処理方法は不明。(MSBしか使わない?)
●その他
Identity Request行、Identity Response行の意味は不明。バイナリデータ。
MIDI Input Ports行の正確な意味は不明。
この行がある場合、Codec Version行の次に記載されている。
[例] MIDI Input Ports 2
Setup Info Text行は、Reasonでコントロールを選択したときに出るメッセージ…だと思われる。
Setup User Action Text行とSetup Warning Text行の正確な意味は不明。
Setup行の意味は不明。バイナリデータ。
■.remotemapファイル
●1カラム目の種類(//から始まる場合を無視)
Propellerhead Remote Mapping File
File Format Version
Control Surface Manufacturer
Control Surface Model
Map Version
Scope
Define Group
Map
●Scope行
[1]"Scope" [2]メーカー名?("Propellerheads") [3]機能名
[例] Scope Propellerheads Malstrom Graintable Synthesizer
≫機能名の種類
BV512 Digital Vocoder
CF-101 Chorus/Flanger
Combinator
COMP-01 Compressor/Limiter
D-11 Foldback Distortion
DDL-1 Digital Delay Line
Dr.REX Loop Player
ECF-42 Envelope Controlled Filter
Line Mixer 6:2
Malstrom Graintable Synthesizer
Master Keyboard
Matrix Pattern Sequencer
MClass Compressor
MClass Equalizer
MClass Maximizer
MClass Stereo Imager
Mixer 14:2
NN19 Digital Sampler
NN-XT Advanced Sampler
PEQ-2 Two Band Parametric EQ
PH-90 Phaser
Reason Document
ReBirth Input Machine
Redrum Drum Computer
RPG-8 Monophonic Arpeggiator
RV-7 Digital Reverb
RV7000 Advanced Reverb
Scream 4 Distortion
Spider Audio Merger & Splitter
Spider CV Merger & Splitter
SubTractor Analog Synthesizer
Thor Polysonic Synthesizer
UN-16 Unison
●Define Group行
Define Groupで、設定をグループ分けできる?
[1]"Define Group" [2]グループ変数名(?) [3]グループ名1 [4] グループ名2...
[例] Define Group Variation Filter Osc/Mod A Osc/Mod B
●Map行
[1]"Map" [2]Control Surface Item [3]Key [4]Remotable Item [5]Scale [6] Mode [7]グループ名(?)
≫4カラム目
4カラム目(Remotable Item)の値に「=」が使われている場合は、グループ選択の切り替え?
(変数名=グループ名)
[例] Map [tab] Hex Lock Button [tab] [tab] Variation=Filter [tab] [tab] [tab] Osc/Mod A
現在有効なグループが「Osc/Mod A」で、「Hex Lock Button」が操作された場合、有効なグループを「Filter」に変更するという動作だと思われる。
また、4カラム目(Remotable Item)の値を「"」で囲むことで、文字列を設定できるらしい。利用法不明。
≫7カラム目
所属グループ名を、Map行の7カラム目に設定できる?
●Scope行3カラム目(機能名)と、Map行4カラム目(Remotable Item)の組み合わせ