By McSmooth
Mon Mar 24, 2008 7:36 am
I decided to dive in and figure out the system exclusive implementation to see if it could be used to get past some of the MPC's control limitations. It seems pretty clear that the documentation was developed for the Z samplers as most sampling functions are in there, but nothing for sequencing. You can tell that they must have programmed Ak.sys using these commands. It is too bad they didn't add in other features to ak.sys that were available, like FX. Figure that with a good sysex capable MIDI controller, you can make a hardware version of ak.sys to some extent.
Looking at the command set, there are quite a few parameters that are not possible to change via the sequencer with standard built in controls, modulations, or midi parameters. Without sysex, you would have to change those parameters with the screen and dial manually, which is rarely the best option.
After looking through the parameters, there are some pretty cool things that can be controlled:
-Sample loop start/end point
-glitchy effects
-synth sync effect on cyclic samples
-change the sound of held notes
-move loop points of a drum loop around
-Filter type change
-Every Envelope and LFO parameter
-Modulate modulations
-Change parameters for ALL keygroups in a program at once
-FX type, routing, and all parameters
-Use hidden parameters
-Dynamically change almost any other keygroup, program, or multi parameter that does not have built in modulation.
The 4k’s sequencer could have easily implemented more sysex control. Like q-link to sysex just like it can control MIDI CC. Also, continuous control inserts like they do for MIDI CCs in step edit. Since these features do not exist, you have to either enter the codes in manually through single step edit inserts, or use an external device/program for realtime control and sequencing.
One thing I learned after a lot of pain while trying to control sysex externally... you need to change your MIDI routing for the MIDI in to the SAMPLER, not SEQUENCER (default setting). If you are sending commands from an external device to the MPC to record in the sequencer, you will need to switch the routing back to SEQUENCER. Also, when playing back commands from the MPC's sequencer, be sure the track is set to INTA or INTB. Sending internally to a program does nothing.
To first start messing with sysex, you will want to find software that is able to send and receive sysex commands easily. MIDI-OX is a free program that does this well. It will allow you to test out commands, and receive information messages back using the SysEx View. Once you know something works, you can then assign it to a controller or drop it into the sequencer.
I recommend using midi in II for sysex so you can still run other midi stuff through midi in I. Remember to change the MIDI routing for that channel, but leave MIDI in I set to SEQUENCE so your MIDI keyboard (or other gear) still works properly. If you want to receive the confirmation messages back, you need to also run from MIDI out B back to the computer. Make sure your software does not route the MIDI in to the MIDI out on the MIDI interface or you will get a nasty loop. I found MIDI-OX was set up that way by default and needed to make a change in the routing window. Another problem I ran into is that sometimes MIDI-OX needed to be restarted to work properly. When I could not figure out what was wrong, I found that replugging the MIDI interface and restarting the program magically made things work.
Looking at the command set, there are quite a few parameters that are not possible to change via the sequencer with standard built in controls, modulations, or midi parameters. Without sysex, you would have to change those parameters with the screen and dial manually, which is rarely the best option.
After looking through the parameters, there are some pretty cool things that can be controlled:
-Sample loop start/end point
-glitchy effects
-synth sync effect on cyclic samples
-change the sound of held notes
-move loop points of a drum loop around
-Filter type change
-Every Envelope and LFO parameter
-Modulate modulations
-Change parameters for ALL keygroups in a program at once
-FX type, routing, and all parameters
-Use hidden parameters
-Dynamically change almost any other keygroup, program, or multi parameter that does not have built in modulation.
The 4k’s sequencer could have easily implemented more sysex control. Like q-link to sysex just like it can control MIDI CC. Also, continuous control inserts like they do for MIDI CCs in step edit. Since these features do not exist, you have to either enter the codes in manually through single step edit inserts, or use an external device/program for realtime control and sequencing.
One thing I learned after a lot of pain while trying to control sysex externally... you need to change your MIDI routing for the MIDI in to the SAMPLER, not SEQUENCER (default setting). If you are sending commands from an external device to the MPC to record in the sequencer, you will need to switch the routing back to SEQUENCER. Also, when playing back commands from the MPC's sequencer, be sure the track is set to INTA or INTB. Sending internally to a program does nothing.
To first start messing with sysex, you will want to find software that is able to send and receive sysex commands easily. MIDI-OX is a free program that does this well. It will allow you to test out commands, and receive information messages back using the SysEx View. Once you know something works, you can then assign it to a controller or drop it into the sequencer.
I recommend using midi in II for sysex so you can still run other midi stuff through midi in I. Remember to change the MIDI routing for that channel, but leave MIDI in I set to SEQUENCE so your MIDI keyboard (or other gear) still works properly. If you want to receive the confirmation messages back, you need to also run from MIDI out B back to the computer. Make sure your software does not route the MIDI in to the MIDI out on the MIDI interface or you will get a nasty loop. I found MIDI-OX was set up that way by default and needed to make a change in the routing window. Another problem I ran into is that sometimes MIDI-OX needed to be restarted to work properly. When I could not figure out what was wrong, I found that replugging the MIDI interface and restarting the program magically made things work.