[A6] sysex editing
Paul Evenblij
prauz at lycos.com
Wed Feb 4 15:50:41 PST 2004
--------- Original Message ---------
DATE: Wed, 4 Feb 2004 13:10:09
From: The Dope Robot <doperobot at yahoo.com>
To: prauz at lycos.com
Cc: a6 at code404.com
>[..]
>For example, to get the values for turning off ENV1 amount to both OSC's, I
>pressed the button and read the input from MIDI-OX. MIDI-OX has 8 columns, but
>the column that has the info i wat is in the data2 column, but i'll list the
>data1, data2, and event column:
>
>data1 data2 event
> 63 10 NRPN MSB
> 62 31 NRPN LSB
> 06 00 data entry MSB
> 26 00 data entry LSB
Right. A6 sends these front panel messages as NRPNs. This means you get 4 consecutive CC messages for one parameter:
63 10 means CC# 63h parent id 10h (=OSC2)
62 31 means CC# 62h child id 31h (=ENV_OSC12BUTTON SWITCH)
06 00 means CC# 06h data msb (value=0)
26 00 means CC# 26h data lsb (value=0)
So this says: in OSC2, give the ENV12 switch a value of 0.
This way of sending (using NRPN instead of SysEx) limits the data to 14-bit values (2 x 7 bits), so the resolution you get is not as high as mentioned in the Alesis doc. (Which does say "SysEx only" on those fields.) Unless I'm mistaken, there isn't anything you can do about that.
>When I send the sysex header, followed by 10 31 00 00 00 F7, it turns off both
>OSC sends to ENV1, which is what I want. 10 is the parent ID (NRPN MSB), 31 is
>the child ID (NRPN LSB), the first 00 is the data entry MSB, and the last 00 is
>the data entry LSB. The middle 00 I just guessed on and it worked.
Partly correct. See below.
>The sysex document gives the following example:
>"set filter 2 offset to -0.02"
>[sysex header] 13 08 07 7F 70 [F7]
>so, hex 13 is 19 decimal, hex 08 is 8. i looked up Parent ID 19, child ID 8,
>which, appropriately, corresponds to 'FILT_2ENV2_OFS_POT POT'. So how do i get
>the three data values (07 7F 70) from the value range (-65534 to 65534)?
This gets somewhat arcane. Those 3 data bytes are composed of two values: the mix number (just use 0 when in program mode), and the parameter value. You'll have to do some bit-fiddling to get this right, but it's all written down in the Alesis doc. The value range (-65534 to 65534) is a 17-bit number, and the 3 most significant bits go in the first data byte sent, i.e. data2.
07 7F 70 should be read as 77F70, which is a 17-bit two's complement number which I don't have the energy to convert to decimal right now :), which is mapped to the -0.02 you see in the A6 display.
>converted the values to decimal (7, 127, 112), but i don't think that helps me
>much. how do i translate the values to a 3 byte hex number?
Easy, if you know a bit of C:
// let <value> be 77F70, and <mix> be 0
// shift bits 14-16 into data2
data2 = (((mix) & 0x0F) << 3) | ((value >> 14) & 0x07);
// shift bits 7-13 into data1
data1 = (value >> 7) & 0x7F;
// shift bits 0-6 into data0
data0 = value & 0x7F;
>[..]
>these pots seem to send out two
>separate NRPN messages for each on/off setting (LFO1 trig LED as an example):
>
>trig LED off (enable off): 08 03 0F 7D, then 08 03 00 00
>
>trig LED on (enable on): 08 03 10 09, then 08 03 1F 7F
>
>How do I convert the two data values the A6 sends out to values I can
>understand? and where is the value for bits 7-13? the A6 seems to send only the
>most and least significant bits.
I don't know how these values are determined. This is not documented in the Alesis doc, afaik. I would assume that for on/off settings only the least significant bit of the last message sent is important. (0/1, i.e. on/off)
I think it's important here not to confuse the NRPN messages you receive from the A6 with the MIDI Edit messsages described in the sysex doc. Obviously they don't match. I haven't tried sending NRPNs, I just use MIDI Edit, calculating values and shifting them into the 3 data bytes as described above.
Paul
__________________________________________________
andromizer - a6 patch randomizer for macintosh
http://www.knoware.nl/users/paulpaul/dm/andromizer
____________________________________________________________
Get advanced SPAM filtering on Webmail or POP Mail ... Get Lycos Mail!
http://login.mail.lycos.com/r/referral?aid=27005
More information about the a6
mailing list