|
Korg Forums A forum for Korg product users and musicians around the world. Moderated Independently. Owned by Irish Acts Recording Studio & hosted by KORG USA
|
View previous topic :: View next topic |
Author |
Message |
jaz000
Joined: 18 Mar 2010 Posts: 3
|
Posted: Thu Mar 18, 2010 11:15 am Post subject: EMX1 mute/unmute and MIDI NPRN |
|
|
Can I mute/unmute parts via MIDI?
Pressing the button sends NPRN messages but they don't work when sent back (it's quite possible part is missing due to the way nprn works it requires 4 midi messages to make sure all the info is there).
Is there a description of nprn implimentation anywhere? The manual states that nprn can be used to modify drum parts but without the implimentation map it's a bit difficult. |
|
Back to top |
|
|
mbncp Senior Member
Joined: 23 May 2008 Posts: 277
|
Posted: Thu Mar 18, 2010 1:50 pm Post subject: |
|
|
Look for EMX1midiimp.txt on the korg site. |
|
Back to top |
|
|
jaz000
Joined: 18 Mar 2010 Posts: 3
|
Posted: Thu Mar 18, 2010 10:47 pm Post subject: |
|
|
awesom thanks! - that's exacly what I'm looking for.
Although to help future readers I will post this correction as the data in the file is not quite correct for the mute/unmute nrpn.
here are my notes:
TABLE1 : NON REGISTERED PARAMETER NUMBER (NRPN)
+---------+----------------------------------+---------+------------+---------------------------------------+
| nm nl | Parameter | MIDI Ch | Data Entry | dd (Data Entry Value) |
| [H] [H] | | | | [D] |
+---------+----------------------------------+---------+------------+---------------------------------------+
| 0B 76 | Mute 1 | Global | MSB,LSB | MSB= Bit0=1 SoloSts LSB= Bit4~0(S5~S1)=1 : Mute |
| 0B 77 | Mute 2 | Global | MSB,LSB | MSB=Bit1~0(P7B~P7A)=1 LSB=Bit6~0(P6B~P1)=1 : Mute |
Send all this to midi channel 1 (global) or whatever channel you set syth 1 to
but this is WRONG
Mute 1 is MSB = 0B LSB = 77
Mute 2 is MSB = 0B LSB = 78
And you must set all 4 bytes inc the solo one (to 0 id=f not solo) for it to take effect
*** Mute 1 MSB - solo
set cc #99 (x63) (msb) to 11 (x0b)
set cc #98 (x62) (lsb) to 119 (x77)
set cc #06 (x06) (lsb) set this to 0 unless you are setting solo
*** Mute 1 LSB = synth 1-5
set cc #99 (x63) (msb) to 11 (x0b)
set cc #98 (x62) (lsb) to 119 (x77)
set cc #38 (x26) (lsb) to 0-31 (0+values below for part to be "mute/off")
s5=16
s4=8
s3=4
s2=2
s1=1
*** Mute 2 MSB = drum7a/7b
set cc #99 (x63) (msb) to 11 (x0b)
set cc #98 (x62) (lsb) to 120 (x78)
set cc #06 (x06) (msb) to 0-3 (0+values below for part to be "mute")
7b=2
7a=1
*** Mute 2 LSB = drum1-6
set cc #99 (x63) (msb) to 11 (x0b)
set cc #98 (x62) (lsb) to 120 (x78)
set cc #38 (x26) (lsb) to 0-31 (0+values below for part to be "mute/off", 0=all on x7f = all off)
6b=64
6a=32
5=16
4=8
3=4
2=2
1=1 |
|
Back to top |
|
|
jaz000
Joined: 18 Mar 2010 Posts: 3
|
Posted: Thu Mar 18, 2010 10:48 pm Post subject: |
|
|
of course all this would be easier if my DAW didn't fail to record the perfectly correct "flurry" of nrpn data that is sent when you mute/unmute a part |
|
Back to top |
|
|
insenico
Joined: 09 Jan 2016 Posts: 12
|
Posted: Sun Mar 11, 2018 1:55 am Post subject: Explained for dummies? |
|
|
Hi,
I hate to bring this old thread back to life, but after fighting with this for a while I wanted to share my findings.
First, we'll have binary numbers, decimal and hex. We'll have to convert a lot. I am writing binary between [ ] , hex between ( ) and decimals straight.
As described above, the MIDI chart is wrong. MUTE 1 is NRPN (0b) (77) and MUTE 2 is (0b) (78 ). An important comment here. You have to send both! If you just send one it will be ignored. So basically, to control MUTE externally you have to send all the MUTE switches in one batch, for all drums and synth parts.
I wanted to add a few details on things I struggled with.
NRPN numbers
You send a 14 bit NRPN for MUTE1 and a 14 bit for MUTE2, basically a 28 bit signal.
There are 2 ways. Straight NRPN or using CC. I'll explain NRPN first, CC is very straightforward after you get NRPN.
NRPN has 2 pieces of information, WHERE you send to and WHAT you send . Where is the 14bit address, which is identified by two 7bit parts, MSB and LSB. For MUTE 1 is (0b) (77) in hexadecimal, or 1527 in decimal.
How do you get from (0b) (77) to 1527?. Well, (0b) hex converted to binary is [1011] or 11 in decimal. Let's use the 7bit, it is [0001011]. On the other hand, (77) in hex is [1110111] or 119 decimal. If you now put both pieces together, [0001011] [1110111] is (5F7) in hex or 1527 in decimal. Some daws use decimal (I use MIDI OUT from FL Studio for example, is decimal) which makes using NRPN so dificilt until you get it right.
OK, so that was one conversion, for the address. Then you need to send the data. Emx uses binary switches, plus the solo, as described above. But remember to send both.
A complete MUTE command sends
To MUTE1 address (0b) (77) in hex, 1527 in decimal: send 14 bits of data. The first 7 (known as MSB) are [0000000], or [0000001] if you use SOLO, basically 0 or 1 in decimal. The other 7 (known as LSB) are based on binary switches depending on what synth part is MUTE ON or OFF. The instructions above are clear. Examples: Just S5 would be [0010000] or 16 in decimal. S4 & S1 would be [0001001] or 9 in decimal, etc.
YOU HAVE TO SEND MUTE 2 TOO! MUTE 2 is very similar to MUTE 1 but the information is about Drum part mute switches. The address is (0b) (78 ) or 1528 in decimal.
Final example: you want to mute everything but S5 and S1.
MUTE1 goes to 0b 77 (1527) and data is [0000000] (0) [0010001] (17)
MUTE2 goes to 0b 78 (1528 ) and data is [0000000] (0) [0000000] (0)
Remember to send both, one after the other.
Second tip: NRPN as CC. The post above actually explains this, but I just couldn't understand it at first. Remember the NRPNs have both address and data, each being a 7 bit number MSB and LAB. Well you can send those using CC.
CC99 sends the NRPN address MSB.
CC98 sends the NRPN address LSB.
CC06 sends the NRPN data MSB
CC38 sends the NRPN data LSB.
Same example: you want to mute everything but S5 and S1.
MUTE1 goes to 0b 77 (1527) and data is [0000000] (0) [0010001] (17)
MUTE2 goes to 0b 78 (1528 ) and data is [0000000] (0) [0000000] (0)
If you use CC, then:
MUTE1
Set CC99 to (0b) or 11 in decimal for the address MSB
Set CC98 to (77) or 119 in decimal for the address LSB
Set CC06 to (0) or 0 in decimal for the data MSB
Set CC38 to [0010001] or (11) in hex or 17 in decimal for the data LSB.
Right after this, send MUTE2 as well, in the same shape.
MUTE2
Set CC99 to (0b) or 11 in decimal for the address MSB
Set CC98 to (78 ) or 120 in decimal for the address LSB
Set CC06 to (0) or 0 in decimal for the data MSB
Set CC38 to [0000000] or (0) in hex or 0 in decimal for the data LSB.
All these 8 CCs commands will be needed for just one MUTE command, the first 4 are MUTE1, the second 4 are MUTE2. From the first group, these 4 CCs are actually 2 for the address and 2 for the transmitted data.
After figuring this out, I decided not to use it Basically your command sends all MUTE switches simultaneously, as a big array, there is no way you can just toggle 1 at a time. It was still a fun challenge to figure it out... some engineer in korg overcomplicated something that could have been very easy...
I hope this helps....
_________________ Electribe EMX-1
Kaossilator Pro+
Roland A-800 PRO
Hercules RMX2
Novation Launchkey Mini
FL Studio12
Traktor2 |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|