Exchange tips and tricks for the Akai MPC4000
User avatar

By feline1 Wed Jun 13, 2007 6:03 pm
Stop GUESSING, instead carefully READ the PDF and type what it tells you!!

Another hint:
get a MIDI diagnostic analyser programme for your computer (eg MIDI-OX for PC ... which google will find for you).
This will let you be 100% sure that you are sending the SysEx string you think you are.

Also - make sure you are physically sending the SysEx to the correct input port on the MPC4000.

By foge1 Sun Jun 24, 2007 10:41 pm
Hi again still battling with this.
I have a midi diagnostic and it confirms that I am outputing what I believe are the correct sys ex stuff.
for the filter cutoff
00 F0 47 5F 00 12 21 00 0D F7
where (0D) bit is the bit that varies i.e changes as I change the control knob its assigned too.
For the attack (amplifier)
00 F0 47 5F 00 12 30 00 42 F7
Once again the (42) is the data2 part that is the variable in hex.

However these seem to do nothing! I am moving the controllers whilst playing notes on the keyboard in the Program>keygroup>zone window.

I have made sure that I am editing 'ALL' or 'ADD' in terms of the keygroup.
I am using port A but have also tried port B
I have tried rouyting this through the sequencer or to the ampler in the midi routing page, no difference.
I believe I have the sys ex messages correctly now, or so my midi monitor seems to indicate however I still can't get anything to work.
Any further guidance appreciated.
geoff

By foge1 Sun Jun 24, 2007 11:03 pm
Can anyone verify that these two messages are indeed correct? and work with their mpc4000??
cheers
geoff
User avatar

By rookie Mon Jun 25, 2007 12:06 am
the world is changing! feline had a decent conversation,he must have gotten some lastnight :D :D :D :D save this thread,it might never happen again!oh and he shared g-o-o-o-d info.keep up the good work feline!
User avatar

By feline1 Mon Jun 25, 2007 8:18 am
Foge1,
I'll try and check those ones for you ...
...but you may well find they just plain don't work -
that's what I found so frustrating about the MPC4000 SysEx... there
seem to be a couple on each page that just plain don't work!

By foge1 Mon Jun 25, 2007 8:59 am
Thanks appreciate that.
geoff

By foge1 Wed Jun 27, 2007 4:53 pm
Anyone know a sys ex command that definetly works.?
Still trying to makesome progress here.
geoff
User avatar

By feline1 Thu Jun 28, 2007 9:11 am
The one's for changing the date and time and Ak.Sys name work

By foge1 Fri Jun 29, 2007 8:49 pm
ha!
Have you got any of the synthesiser parameters to work i.e. attack release etc. filter cuttoff ??
As I still have made no progress.
geoff
By foge1 Wed Sep 03, 2008 11:33 pm
damn that shows how long its taken.

I started off with a simple aim just to control basic parameters without having to press what I thought was a ludicrous amount of buttons to get there.

over a year later....
I am there.

For me the only real aspect of the 4k I didn't like to the u.i. the way the parameters all seem to be too scattered. I really don't need to upgrade my mpc now. I am not at all interested in the 5k etc.

I got what I wanted a 4k with a simple u.i.

The thing that drive me crazy as a user of music tech gear is that manufacturers design gear with great on paper specs but often terrible ergonomics and often for no good reason.

I just glad I can design my own user interface now.

And there is so far to push it and so many interesting angles to approach it from all of which make a bigger difference to me than more "features".
:)
g
By illiac Wed Sep 17, 2008 1:17 pm
Hi,

I've been digging around inside the MIDI files that the MPC4k produces, because I'm trying to convert them for use with Logic. They contain a few Akai-specific message types -- Sysex and Proprietary MIDI messages -- that I've worked out the encodings for.

Track Descriptor

Every track in an MPC4k MIDI file has a track descriptor in the form of a Proprietary MIDI message. The message has this format:

[FF 7F] 14 47 61 01 trnum mute type portI partI chI portII partII chII ?? ?? ?? PC 01 dur% vel% transpose


All the numbers are in hex.

FF is the status byte, and 7F is the substatus byte for proprietary message types. 14 is the message size (20 decimal). There are 20 bytes following the size.

47 is the Akai vendor code, and 61 01 indicates the type of message (track descriptor). All the fixed hex values above are just that -- fixed values -- as far as I can tell. That is, I've wiggled all the track parameters, and the fixed values above never moved.

trnum is the track number; it's zero-based.

mute is 0 or 1, according to whether or not the track is muted.

type is 0 for DRUM tracks and 1 for INST tracks.

portI partI and chI describe the MIDI port that the track is routed to. Port is a number from 1 to 7, where
1 = PART (i.e., current MULTI)
2 - 5 = OUTA - OUTD (i.e., MIDI OUT ports)
6 - 7 = INTA and INTB respectively

partI is nonzero only if portI is 1. It indicates the particular part (within the current multi) that the track plays to.

chI is nonzero if portI is a value from 2-7. It indicates MIDI channel, and it is zero-based. That is, MIDI channel 1 is encoded as 0 here. chI = 16 means "ANY".

portII, partII and chII are the same, except that portII can also be 0, which means that the second destination port for the track is off.

If PC is nonzero, it means that the track has a program change selected; PC encodes the program (patch) number, in the range 1-128.

vel% and dur% encode the velocity and duration percentage adjustments that you can make in the track. The center value is 100 (hex 64).

Finally, transpose is a signed byte that encodes the transpose value.

Note that many of these values can have the high bit set. (This is a little different than a typical sysex string where only the leading and trailing status bytes can have the high bit set.)

detuned notes

One of my favorite features of the MPC4000 is the 'T' field of notes in an instrument track -- you can tune notes up or down in 10cent increments using this field.

This doesn't correspond to a normal MIDI note event. It is encoded as a sysex string. This is probably already documented somewhere in this thread, but just in case not, here's how it is encoded in the MPC4000's MIDI files:

F0 0E 47 5F 00 7F 01 chan note velo 00 durhi7 durlo7 pitchbendhi7 pitchbendlo7 F7

As before, all numbers are in hex, and the fixed hex fields are just that, as far as I know.

F0 and F7 indicate begin and end of sysex of course. The length field is 0E (14).

chan indicates channel
note indicates note number
velo indicates velocity

durhi7 and durlo7 together make up a 14-bit value that indicates the duration. Note that this sysex event effectively includes both a note-on and a note-off.

pitchbendhi7 and pitchbendlo7 together make up a 14-bit pitchbend value that is centered at 0x2000. This is exactly how ordinary pitch bend values are encoded. That is, values above 0x2000 are 'bend up' and values below 0x2000 are 'bend down'. Note that the byte ordering here is backwards from the order of an ordinary pitch bend however. Here, the most significant byte comes first.

-illiac
By foge1 Wed Sep 17, 2008 8:31 pm
It would be really interesting if the mpc4k had a range of sysex commands that never made it into the sysex documentation. Not infront of my music computer at the moment so can't check the manual.

if you find anything else please post
cheers
geoff
By illiac Wed Sep 17, 2008 10:34 pm
It would be really interesting if the mpc4k had a range of sysex commands that never made it into the sysex documentation.


Yeah, agreed. The sysex manual doesn't document the format of an MPC4K .mid file, at least I don't think it does. There are a bunch of proprietary MIDI messages in those files (like the track descriptor in my post above) that are not sysex per se (sysex messages are of the form 0xF0 ... 0xF7) but that are proprietary MIDI messages nonetheless. There is for example one in the first track of the file that contains the user-defined labels for the MIDI OUT channels. If I work out the encodings for any more of these messages, I'll post them here.

-illiac