MIKI-D and MIKI-DX devices can be controlled via MIDI in the latest firmware versions.
An app developer can use Control Changes to set a limited set of parameters. These will not change a preset, so when the user switches the preset on the device, your settings will be overwritten. But you will receive a Sysex message with all preset parameters after the user changes the preset, so it is possible to set your own values again after that.
The MIDI Channel is always 1.
These are the MIDI Messages that a MIKI-D or DX device reponds to:
Control Change
Zero-delay Monitor On/Off
Number: 16
Value:
0 = Off
127= On
Monitor level
Number: 17
Value:
60 and higher= 0dB
59 = -1 dB
58 = -2 dB
.
.
0 = -60 dB
Microphone Gain
Number: 18
Value:
0 = 0dB
1 = 1 dB
2 = 2 dB
.
.
127 = 127 dB
Microphone Level
Number: 19
Value:
82 and higher = 12 dB
81 = 11 dB
80 = 10 dB
.
.
0 = -70 dB
Reset all values to current Preset and send Preset-values back to App via Sysex message
Number: 121 (Reset all controllers)
Value: 0
Received System Exclusive Message
Using a Sysex message, a preset is sent from the MIKI. This is sent when a user Changes the preset switch or you request it with the above mentioned Control change 121 (Reset all controllers).
Sysex ID of Technica Del Arte is: 00H 21H 4CH
So, the first MIDI bytes are F0H 00H 21H 4CH
Then 8-bit bytes packed into 7-bit MIDI data-bytes are sent. These are the bytes that follow, byte numbers with an ‘s’ are signed:
1: Preset number: 0, 1 or 2
2: Size of the Preset: 21H for MIKI-DX , 1FH for MIKI-D
3s: Monitor level(dB): -128 to 127
4s: Mic gain(dB): -128 to 127
5: Flags: 02H-Phase invert, 04H-Lo cut On, 08H-Mic Level Lock, 10H-Gate On, 20H-Headphone level Lock 40H-Monitor On, 80H-Stereo In
6: Lo Cut Frequency(Hz): 0 to 255
7: Gate Attack: 0=0 ms, 255=200 ms, linear scale
8: Gate Release: Linear, 0=0 ms, 255=1000 ms, linear scale
9s: Gate Threshold upper limit(dB): -60 to 0
10s: Gate Threshold lower limit(dB): -60 to 0
11: Gate range(dB): 0 to 100
12: EQ1 Type: 0=Off, 1=shelving, 2= parametric
13: EQ1 Frequency: Frequency(Hz) = 50.0*powf(2.0,value*7.0/255.0)
14: EQ1 Q: Q = 0.5 + 4.5*value/255.0
15s: EQ1 Gain: 0.1 dB steps, +120=+12dB, -120=-12dB
16: EQ2 Type: 0=Off, 1=shelving, 2= parametric
17: EQ2 Frequency: Frequency(Hz) = 500.0*powf(2.0,value*5.0/255.0)
18: EQ2 Q: Q = 0.5 + 4.5*value/255.0
19s: EQ2 Gain: 0.1 dB steps, +120=+12dB, -120=-12dB
20: Microphone Level:
value >=90 : Level(dB)=(value-90)*0.2 – 18.0
value between 60 and 90 : Level(dB)=(value-60)*0.4 – 30.0
value <60: Level(dB)=value/1.5 – 70.0
21: Headphone Level:
value=90 : Level(dB)=(value-90)*0.2 – 18.0
value between 60 and 90 : Level(dB)=(value-60)*0.4 – 30.0
value <60: Level(dB)=value/1.5 – 70.0
22-33: Preset Name: zero terminated when length <12
for MIKI-DX:
34s: Bus Level mixed with Mic(dB): -60 to 0
35: Not used
Send System Exclusive Message
Using a Sysex message, you can set all parameters of the MIKI. Again, this will not change a preset, so when the user switches the preset on the device, your settings will be overwritten. But you will receive a Sysex message with all preset parameters after the user changes the preset, so it is possible to set your own values again after that.
Sysex ID of Technica Del Arte is: 00H 21H 4CH
So, the first MIDI bytes are F0H 00H 21H 4CH
Then pack 8-bit bytes into 7-bit MIDI data-bytes. These are the bytes you need to send, byte numbers with an ‘s’ are signed:
1: Preset number: 0, 1 or 2. It has to be the same as the currently selected preset on the device, otherwise it’s not accepted.
2s: Monitor level(dB): -128 to 127
3s: Mic gain(dB): -128 to 127
4: Flags: 02H-Phase invert, 04H-Lo cut On, 08H-Mic Level Lock, 10H-Gate On, 20H-Headphone level Lock 40H-Monitor On, 80H-Stereo In
5 Lo Cut Frequency(Hz): 0 to 255
6: Gate Attack: 0=0 ms, 255=200 ms, linear scale
7: Gate Release: Linear, 0=0 ms, 255=1000 ms, linear scale
8s: Gate Threshold upper limit(dB): -60 to 0
9s: Gate Threshold lower limit(dB): -60 to 0
10: Gate range(dB): 0 to 100
11: EQ1 Type: 0=Off, 1=shelving, 2= parametric
12: EQ1 Frequency: Frequency(Hz) = 50.0*powf(2.0,value*7.0/255.0)
13: EQ1 Q: Q = 0.5 + 4.5*value/255.0
14s: EQ1 Gain: 0.1 dB steps, +120=+12dB, -120=-12dB
15: EQ2 Type: 0=Off, 1=shelving, 2= parametric
16: EQ2 Frequency: Frequency(Hz) = 500.0*powf(2.0,value*5.0/255.0)
17: EQ2 Q: Q = 0.5 + 4.5*value/255.0
18s: EQ2 Gain: 0.1 dB steps, +120=+12dB, -120=-12dB
19: Microphone Level:
value >=90 : Level(dB)=(value-90)*0.2 – 18.0
value between 60 and 90 : Level(dB)=(value-60)*0.4 – 30.0
value <60: Level(dB)=value/1.5 – 70.0
20: Headphone Level:
value=90 : Level(dB)=(value-90)*0.2 – 18.0
value between 60 and 90 : Level(dB)=(value-60)*0.4 – 30.0
value <60: Level(dB)=value/1.5 – 70.0
21: 1 for MIKI-D , 2 for MIKI-DX
22-33: Preset Name: zero terminated when length <12
for MIKI-DX:
34s: Bus Level mixed with Mic(dB): -60 to 0