|
Forum Index | Read LUG: Policy/Rules Messages Threads Digests | Post New Message | Search!
On a fine day, 02-08-2004, Andy M. wrote:
>Hi all, I'm trying to create a Sysex Fader object that will tell my
>Proteus 2000 to change it's arpeggiator mode. I downloaded the sysex
>docs from EMU and tried to follow them, but got nowhere.
>
>According to their docs, the parameter edit commands follow this
>format.
>
>EXAMPLE:> {F0h, 18h, 0Fh, dd, 55h, 01h, 02h, <xx, xx, yy, yy>,
F7h}
>F0h = sysex message
>18h = EMU ID
>0Fh = Proteus ID
>dd = Device ID
>55h = Special Editor designator byte
>01h = Command::Parameter Value Edit
>02h = Byte count(number of Byte pairs)
>{xx, xx} = Parameter ID (LSB first)
>{yy, yy} = Parameter Data
>F7h = EOX
>
>And the parameter id is...
>
>id = 134 (06h,01h)
>
>min = -2; max = 1
>-2 = off
>-1 = on
>0 = P (Preset Arp)
>1 = G (Global Arp)
>
>I can't figure out where to put the paramater id. I've followed the
>above format, but it doesn't seem to work - apart from the MIDI
>receive LED on the Proteus flashing to show it's getting something.
The parameter ID isn't the problem (AFAIC see), but the parameter
data is, since it uses negative numbers. It seems to me you're
better off using a transformer set to Sysex Mapper instead of a
fader. In the following I'll suppose negative numbers are dealt with
by counting backwards from 0. So -1 would be 7Fh (127 decimal), and
-2 would be 7Eh (126 decimal). In a LSB-MSB system (as you seem to
need), the numbers -2, -1, 0, 1 would then be 7E 7F, 7E 7F, 00 00, 01
00.
Something along these lines should then work:
Create a fader and 3 transformers (T1, T2, T3). Cable the 1st outlet
of the fader into T1, and the 2nd outlet into T2 (order matters
here). Cable both T1 and T2 into T3. Set the fader range to 0-3
(i.e. 4 values).
Open T3 and set the top popup to "Sysex Mapper". Set the length
parameter to 12 (total length, including F0 and F7). Enter the
required sysex string (in hex that would be "F0 18 FF xx 55 01 02 06
01 00 00 F7", where xx is the device ID and the '00 00' is the
parameter data we'll deal with later). Not counting the starting F0,
your data bytes are no's 9 and 10. We'll remember that.
Now open T1. Set the Operations part of the transformer to: Fix
Control - Fix 2 - Fix 10 - Use Map. The Map entries for input values
0-3 should be set to 127, 127, 0, 0 respectively. This takes care of
the MSB of your data. Controller 10 will set the 10th byte of the
message (not counting F0 here). Channel 2 sets the byte but doesn't
send the message.
Next open T2. Set the Operations part of the transformer to: Fix
Control - Fix 1 - Fix 9 - Use Map. Set map entries 0-3 to 126, 127,
0, 1 respectively. This one takes care of the 9th byte (the LSB),
and channel=1 will cause the sysex mapper to send its message.
Because of the order of cabling from the fader to T1 and T2, T1 will
first update the 10th byte, before T2 will alter the 9th byte and
cause T3 to send out its message.
If you set the fader's style to "Text" you can type in meaningful
entries, like 'Off', 'On', 'Preset' and 'Global'.
Obviously, T3 should be connected to a midiport object or your
Proteus 2000's Multi Instrument.
If you want to know more about this stuff, you're welcome to dig into
the set of tutorials I wrote on the use of sysex faders and sysex
mappers. They're to be found in the Logic section of my website,
Tutorials subsection.
--
Hendrik Jan Veenstra h @ k n o w a r e . n l
Omega Art: http://www.omega-art.com/
Forum Index | Read LUG: Policy/Rules Messages Threads Digests | Post New Message | Search! © 1994-2008, All Rights Reserved. |