Akai Z4 sampler system ex and bcr 2000

7 posts / 0 new
Last post
Aldred411's picture
Akai Z4 sampler system ex and bcr 2000


thank you for this great program , I’ve been able to set up the bcr2000 to control Roland mv-1/zenbeats editor with system exclusive , I was able to do this after reading through some Roland threads here , and by using a midi monitor.

I would now like to control a part of the akai z4 sampler , I’m finding this a little difficult as it doesn’t seem to output sysex msg for the individual controls .

basically at first I’d like to control the value (big wheel) control on the front panel , mainly because when using the ak sys app , you have to use the mouse and scroll doesn’t work 

The sys ex manual is here 


on page 7 is the table for section , front panel control is 2C 

on page  46 is the table for the front panel, the big wheel is 03 

So far I’ve got this

<Start of SysEx> <AKAI ID> <Z4/Z8 ID> <User-selectable Device ID> <User-Refs..> 

F0 47 5F 00 00 [2C 03] - that takes me up to [sec and item]  , now I need the data 1 data 2 checksum , I think I can turn off  the checksum (page 4) and I’ve set user selectable device - user ref at 00 00  page 3 


if anyone can help me out , it would be much appreciated 


Aldred411's picture

The address to the value knob is F0 47 5F 00 2C 03,  all I need is the data value type and value , I can move the knob just not correctly, in the manual it says it’s a signed byte ( from page 9 table 5 ) , so how would I set that up in bc manager message window 

Mark van den Berg
Mark van den Berg's picture

in the manual it says it’s a signed byte ( from page 9 table 5 ) , so how would I set that up in bc manager message window

In my understanding Table 5 states that a signed byte ("SBYTE") must be sent as a sequence of two bytes, the first indicating the sign (0=positive, 1=negative), the second being the absolute value (0..127).

Table 44 states that parameter &03 in section &2C "[m]ove[s] the data wheel forwards or backwards a certain amount". So if I'm not mistaken, this parameter doesn't set the data wheel to a specific value, but only provides relative changes.

If my above interpretations are correct, to move the data wheel forward by 1, you'd need:
F0 47 5F 00 2C 03 00 01 F7
And backward by 1:
F0 47 5F 00 2C 03 01 01 F7

You can make a BCR encoder send the above-mentioned forward message when you turn it clockwise, and the backward message when you turn it counterclockwise, by the following "custom output" line:
$F0 $47 $5F $00 $2C $03 ifn $01 $01 $F7 ifp $00 $01 $F7
(See section 14.6.4 in "BC MIDI Implementation.pdf" for discussion of ifn/ifp.)

A BCR encoder itself can only have a value from 0 to 16383, so negative values are not allowed. However, this is not a problem in this case, since we're not sending the actual value here (via val, val0.6 etc.) For this reason you can leave the encoder's min and max values ("Value 1" and "Value 2" on the "custom output" tab in BC Manager) at 0: the BCR will output the forward and backward messages anyway when you turn the encoder.
On the General tab in BC Manager, enabling "Show value" is probably not very useful, nor is selecting anything but "Off" under "LEDs". It doesn't even seem to matter what you choose for Default (though it won't harm to set it to 0).
However, you do have to set one or more sensible values for Resolutions: try the default 96 [96 96 96] for a start: lower values decrease the frequency at which the forward/backward messages are sent, higher values increase the frequency.

Hope this helps,

Aldred411's picture

Thanks Mark , I will try this later today 

Aldred411's picture


thank you  , that worked , I set the knob resolution as low as 6 and it works perfectly.

I’ll map some more controls now , Can I mapped Virtual ASCII codes too?

Mark van den Berg
Mark van den Berg's picture

Can I mapped Virtual ASCII codes too?

Table 5 specifies that a "WORD" (a 14-bit unsigned number in the range of 0..16383) must be encoded as <LSB><MSB>.

According to table 44, item &10 in section &2C indicates an ASCII Key Press, and requires two WORD parameters: the first WORD indicates the ASCII code (either a standard ASCII character or one of the virtual ASCII codes specified in table 46), the second WORD indicates the modifier flags as specified in table 47.
So for instance, the following message emulates pressing DELETE:
F0 47 5F 00 2C 10 7F 00 00 00 F7
Here "7F 00" stands for DELETE: its keycode of  &7F completely fits in the LSB (the first byte), so the second byte (MSB) must be zero. The final two "00" bytes indicate the flags: none in this case. (Would it be possible to leave out the two flag bytes if they are 00? Incidentally, it's curious that the MSB of the flags is always 00; so why have they defined the parameters for item &10 this way? Or am I missing something here?)

Similarly, item &11 indicates a Key Release, so the following message emulates releasing DELETE:
F0 47 5F 00 2C 11 7F 00 00 00 F7

If you want to make a BCR button send the Key Press message for DELETE when you press the button and the Key Release message when you release the button, probably the easiest way in BC Manager is this:
Show value: On
Default: 17
Custom output: $F0 $47 $5F $00 $2C val $7F $00 $00 $00 $F7
Value 1: 17
Value 2: 16
Mode: Up/down

(Alternatively, you could probably use ifn/ifp, but that seems clumsy here.)

By the way, I think that table 46 is ambiguous about the proper representation of the items in table 46 higher than &7F in Key Press/Release messages:
For instance, you would think that "CURSOR UP", with keycode &103, must simply be represented as "03 01": table 5 specifies that the LSB (03) must come first, and the MSB (01) must come second.
However, table 46 states that &103 is equivalent to the decimal value of 259. But that's only true if the &-representation uses eight bits (instead of seven ), and in that case "CURSOR UP" would have to be represented in Key Press/Release messages as "03 02". That's because the highest bit of any MIDI data byte must be 0 and therefore cannot be used for the actual value; thus, the "1" in "&103" must shift up by one bit, hence the "02".
It should be easy for you to find out which representation is the correct one. I suspect that the former representation ("03 01") is the one to be used, but in that case I think the SysEx document is formally incorrect.

Hope this helps,

Aldred411's picture

Hello mark 

I didn’t have any luck with that msg , so I tried the table above for panel controls , using the same method for key hold and release , ( I’m a system exclusive noob tbh , but I see what you did , the VAL is changing the item address , I didn’t know you could do that )  , and they all work 

tbh panel controls are all I need , I should be ok doing most of the msg I want now , if not I’ll drop you a reply ,

thx again