Exchange tips and tricks for the Akai MPC4000

By foge1 Wed Apr 09, 2008 5:37 pm
I have been searching today for a piece of software that could do the following.
let me ramble a bit....

most buttons on the akai seem to have sysex commands.
I always use my mpc with a laptop next to it.
so in theory if I could find a piece of software that I could write in chains of sysex commands and assign them to a key on my laptop keyboard to trigger the chain the following would be possible.

I could write in multiple sysex commands in order like saving a series of key commands. Then trigger that series of commands via one keystroke.
So for example something like normalizing a sample from the main page could be done with one keystroke from a software program. I.e. program in the sysex commands for all the button presses and then save the to a key to be sent via midi to the akai.
could speed the U.I. up alot for me.

Anyone know of a program capable???, I swear I have read about things that come close to this just not sure if they could do sysex commands.
just a thought
g
User avatar

By scd Wed Apr 09, 2008 5:42 pm
foge1 wrote:I have been searching today for a piece of software that could do the following.
let me ramble a bit....

most buttons on the akai seem to have sysex commands.
I always use my mpc with a laptop next to it.
so in theory if I could find a piece of software that I could write in chains of sysex commands and assign them to a key on my laptop keyboard to trigger the chain the following would be possible.

I could write in multiple sysex commands in order like saving a series of key commands. Then trigger that series of commands via one keystroke.
So for example something like normalizing a sample from the main page could be done with one keystroke from a software program. I.e. program in the sysex commands for all the button presses and then save the to a key to be sent via midi to the akai.
could speed the U.I. up alot for me.

Anyone know of a program capable???, I swear I have read about things that come close to this just not sure if they could do sysex commands.
just a thought
g


http://www.gnmidi.com/handbook/english/sysex_dump.htm

By foge1 Wed Apr 09, 2008 6:02 pm
you don't know of a mac program that does the same?
cheers
g
User avatar

By scd Wed Apr 09, 2008 6:10 pm
foge1 wrote:you don't know of a mac program that does the same?
cheers
g


Nope. Closest I can think of is the last beta of SoundDiver. But I don't think you can assign code to knobs. Well, you can within the program, but not to your keyboard or something like that.

By renegadebliss Wed Apr 09, 2008 10:37 pm
It's not software but hardware, but the Behringer BCR2000 / BCF2000
series lets you program any series of sysex messages onto any of the knobs. You need BCManager or some other free 3rd Party Utility to program it, but you can program multiple Sysex messages to be sent from any of the knobs, buttons or sliders....



Dave

By foge1 Wed Apr 09, 2008 11:27 pm
just to clarify you can liturally program a button on the behringer to transmit multiple sys ex events all from one button?
So for instance I if I bought one I could program one button to transmit the sys ex command for say...
to go to the program window then press f3 and then move the cursor down once.
So i could put all those three commands on one button in order?

just checking.

Also does that mean you can write multiple sysex messages for most controllers, if so how do your combine two together? i.e. are there particular rules?
cheers
g
User avatar

By McSmooth Thu Apr 10, 2008 3:43 am
Any device that allows you to specify MIDI strings, doesn't know the start or end of the message, so you should be able to simply stack the messages one after another. You would be limited by how many characters that device can hold for each control. On the B3X, there is a 21 byte limit (which would only allow for 2 commands in most cases), not sure about the BCR.

What you are saying should theoretically work. I haven't tried that specifically, the only reason I can think it wouldn't work is if it sends the commands so fast that the second screen hasn't loaded up and the second button does not register properly.
User avatar

By scd Thu Apr 10, 2008 6:09 am
Yes, if you go for a hardware controller you should download the manuals. The Behringer can do it, the CME Bitstream 3X can do it and also the range of Novation Remote's. I own the last two. The Bitstream indead has not many bytes to program per controllerknob or slider. For the Novation I don't know. You'll have to look that up.
But you could also program a series of knobs?
By foge1 Fri Apr 11, 2008 9:55 pm
I am definitely looking into getting the novation SL Zero Control Surface, that looks like the one for what I want as it has so many buttons, even the midi pads can be configured to send sysex according to the manual.
I always thought akai totally wasted the fact u could plug a keyboard into the front, they hardly used any of the keys! a shortcut key editor on the 4k would have made sense.

But now I can achieve that through sysex, I am going to fly around the 4k now.
I have got most of what I want working with my edirol however as it only has 6 buttons I am having to use lots of different scenes.

this is brilliant thanks mcsmooth/scd for your help.
g
By foge1 Sat Apr 12, 2008 10:50 am
I getting there with the sysex stuff but have just hit another problem.

I am trying to get the keygroup set tune parameter to work .

What I want to be able to do is adjust the pitch of a keygroup however I am struggling to send the correct pitch range. I would really like to be able to do it in cents and also in semitones but can't manage either yet.

taken from the table

Table 16: Control Items for Section &12 {18} ó Keygroup Set Parameter

&10{16}RT SBYTE(0 +/- 3600) NA Set Cents Tune

this is the parameter i am trying to change (this is actually the one that changes a keygroups pitch??)

The part I am struggling with is the DATA1 range which in the table is written as SBYTE(0 +/- 3600)

I have looked up sbyte in the front of the sysex manual and its written as

"SBYTE 2 <sign><value> signed byte (±127)

Note: Data bytes sent within SysEx messages must not exceed a value of 127 (or &7F). This
limitation is imposed by the MIDI specification. Failure to observe this limit may lead to undefined
behaviour!"


I have tried sending various data ranges to the mpc but can't get one to work over +-3600 cents the tune parameter works over.
I am not really sure what the difference is between sbyte and byte other than sbyte is a signed version of the same thing.

So here is my confusion I can send byte commands fine and they work over the whole range, however now I am trying to send an sbyte command I can't seem to get it to work over the whole range.

what keeps happening is I set a data range say 0to127 or -127 to +127 and only the first part of the knob movement changes anything on the mpc and then rather than changing gradually it jumps from one extreme value to another. This problem only happens when I am trying to control this tune parameter, all other parameters I have tried work fine for me. So I am wondering if there is something I am not understanding about sending commands in sbyte form or sending commands to parameters whose ranges aren't simply 0to127.


confused.
Any guidance appreciated.
g
By foge1 Sat Apr 12, 2008 6:15 pm
to summarize I have failed to send anything meaningful to any parameter that doesn't use 0-127 or 0-100.
damn!
g
By foge1 Sat Apr 12, 2008 6:55 pm
at last the light bulb I understand sword!
arrrggghhh! that was hideous!
g
User avatar
By McSmooth Sat Apr 12, 2008 11:51 pm
I bet SBYTE is a typo for that command. I use the cents tune parameter for the sample section which should be the same (+/- 3600) and this is an SWORD. Figure any value over 127 cannot possibly fit in a byte.

SWORD goes: <sign> (0 for positive, 1 for negative) <LSB> <MSB>
unless you have a really advanced controller, it is not easy to set this up ideally with one knob. I just used 2 controls, one for positive control and one for negative.

00 00 XX
01 00 XX
then I have XX limited to 0-28 (1C) since anything past that will go past the 3600 limit. You don't get the best resolution there, but it works fine for fast pitch sweeps. If you need finer changes you can modify the LSB.

*edit: oops, didn't see you figured it out, but hopefully that describes it better.
By foge1 Sun Apr 13, 2008 2:53 pm
[quote="McSmooth"]I bet SBYTE is a typo for that command. I use the cents tune parameter for the sample section which should be the same (+/- 3600) and this is an SWORD. Figure any value over 127 cannot possibly fit in a byte.

SWORD goes: <sign> (0 for positive, 1 for negative) <LSB> <MSB>
unless you have a really advanced controller, it is not easy to set this up ideally with one knob. I just used 2 controls, one for positive control and one for negative.


Thats exactly what I found, I am also using to controls which seems like a bit of a waste, but not its okay.
Do you know of a way of changing the tune parameter in just semitones?
You can click a button to do this on aksys but this maybe just so it send the right increments to achieve this. Just thought I would aks as I haven't been able to figure out a way yet.

In terms of finding a controller that is more advanced, I have done every thing so far on a edirol pcr30 and I was wondering if there are more advanced controllers you know of that would allow better sysex control i.e. that would enable me to use one knob for tune, to set how a knob increments its different steps etc. I am looking at the novation/bitstream etc. but let me no if theres anything you know is light years ahead.

For me this sysex enables me to do on the mpc what I always wanted an mpc to do i.e. do what it does already just with a more immediate U.I I remember spending weeks when I first got it trying to get the sysex to work and now I have alot of what I wanted.

I intend to buy the best sysex controller I can find as this improves the mpc experience 400% for me. I want to get one with loads of buttons so I can set up keygroup select commands for pads, keygroup copy etc. like a load of shortcut keys.

If anyone has any recommendations for the best sysex controllers please let me know.
This thread has been so helpful.
cheers
g

p.s. can anyone think of a way to record the sysex in the sequencer, somehow??? even if it means routing leads back into the mpc.
User avatar
By McSmooth Sun Apr 13, 2008 8:03 pm
Unfortunately, I doubt any hardware is capable of what you want to achieve unless you are able to write code yourself. The only thing I can think of that allows you to process MIDI is the Nord G2, but I don't know its full capabilities. Basically you need something that can do math and process sent messages to take full advantage of the sysex implementation. This is very easy to do with software since it is all based off programming and why we have ak.sys. So to work with just semitones, you would need to be able to make the knob send increments of 100 in a 14 bit value. This is one of those instances where you start looking into something like a midibox to develop your own custom controller.

Sysex CAN be recorded on the MPC, thats one of the reasons why this thread is important. You should be able to just hit record like you would for any other incoming MIDI device. The easiest way to test to make sure it is working is to go into step sequence record and see if the commands show up. To play the commands back properly you have to set that track to output on an INT channel.

On a side note, when I am recording a lot of sysex, I see a bug where other random MIDI messages will show up in the step sequencer. I haven't nailed down exactly what is happening, but I am pretty sure it is bleed through from other tracks because when I start deleteing these messages, parts of the sequence start disapearing (like the snare on another track).