Thoughts from the mind of litepipe, 22-04-2001:
> Hello Hendrik!! Excuse me for quoting Keroac but "I dig you man!!" I feel
>guilty for getting all of this information for free.
Yeah, you should. Deeply guilty. If it troubles you too much, I
could give you my bank-account number... And it's 'Kerouac' BTW.
:-)
>You should write a book. Although you might only sell one copy a
>year because aparently there aren't many into this side of things.
That's the problem. If I really thought there was any sort of
serious market for this stuff, I might indeed consider writing a
book... Thanks for the compliment though.
>Todays post helped me out immensely!!
>I got both SYSEX fader and SYSEX Mapper working.
Great! After all, that's what it was all about.
[14 bit faders]
>It will be clear that this is _much_ more involved than the previous
>> situation in which a 'decent' 0-127 value range was used. Describing
>> how to do this efficiently would require another few pages. I don't
>> mind writing them, but not until I know that you have use for such
>> information (after all, I _do_ have a life :-).
>
> I don't think this will be neccessary quite yet. But watch out!! I might
>just take you up on your offer in some time:))
Well, as soon as you want to modify a parameter that has a -50 to +50
range (detune or so), or a 0 - 500 range (delay in ms?) you run into
14bit faders.
> The only question I have right now is how do I get the faders to affect
>different midi channels? They seem to be universal. For example: I want to
>set up a fader to change the Pri. Instrument for every midi channel. So say
>I set up a SYSEX fader with messgae F0 18 08 00 03 17 00 04 00 F7. Then when
>I close the fader and choose the channel in the parameters box (lets say
>channel 2) I can tweak the Pri. Instrument on Cha. 2. But when I switch to
>Cha. 1 it will also work on that channel with Cha. 2 selected in the
>Parameters box. Why?
Because sysex messages don't necessarily have a channel assigned to
them. If you look at the format for e.g. a note-on event, you see
that it's (hex) "8x nn vv", where x is the midichannel (0-F), and
nn/vv are note and velocity. So the channel is an integral part of
the message, and it's _this_ part that is affected by the fader's
'channel' setting.
Now look at a generic sysex message: F0 vv vv ... F7, where 'vv' is a
data byte. No channel to be seen anywhere... and so the fader's
channel setting has no effect.
A sysex message _can_ have a channel specified, but the way this is
done depends on the manufacturer -- i.e. on the sysex
implementation. A manufacturer could e.g. decide that in his sysex
implementation, the 4th byte is always the midichannel. Another
manufacturer could use the 5th byte for that, and yet another could
decide that his machines are channel-independent and thus don't need
a channel-specifier at all.
So Logic's faders have no way of knowing where the manufacturer put
the channel info in the message -- and hence their channel parameter
has no effect.
Taking my M1 as an example again: it's syex always starts with "F0 42
3x 19.." where 'x' (0-F) is the midichannel the M1 is set to.
Given the format of your generic sysex mesages, which was
F0 18 id dd 03 3C 00 27 00 F7 ,
and comparing that to the sysex string you give above,
F0 18 08 00 03 17 00 04 00 F7 ,
I would suspect the 'dd' to be the channel specifier. In this case
the channel would be channel 1 (channels 1-16 are counted as 0 - F
(hex)).
So in order to send on a different channel, you would then change the 4th byte.
If this works or not depends on 1) if my conjecture on the meaning of
the 4th byte is right (obviously :-) -- your manual should tell you
where the channel byte is. And on 2) the 'meaning' of midichannel on
your machine. My M1 for example has a setting, called the 'global
channel'. If the global channel = 1, then sysex sent on a different
channel will be ignored. So in my case, changing the channel byte is
pointless, unless I also change the channel setting of the synth.
The only use for the channel byte in this case is to be able to
distinguish up to 16 M1's in the same midi-chain -- not something
you'll often need :-).
Oh... I suddenly realise another possibility... If I use the M1 in
multitimbral mode, I have access to 8 instruments on 8 (possibly)
different midichannels. BUT, sysex should _still_ be sent on the
machine's Global Channel, regardless of the channels on which the 8
instruments play.
If I want to change the instruments -- i.e. have a piano playing on
channel 5 instead of a synthbass -- I cannot simply send a program
change on channel 5, but have to send a sysex parameter change
instead.
So if the Global Channel is 1, I would send something like "sysex,
for an M1 on channel 1: change parameter 48 to 23", where parameter
48 happens to be "the current program playing on channel 5".
I don't know the structure of your EMU of course, and don't have a
clue as to what primary and secundary programs are :-), but something
similar might apply in your case.
> It is possible to set up faders to tweak the pri. and
>sec. instruments of every midi channel right? I couldn't get this to work
>with the SYSEX fader or SYSEX mapper.
A combination of regular (non-sysex) and sysex midi messages should
be able to accomplish _anything_ on your synth.
> I feel like I'm getting close. Basically what I'm trying to do is set up
>an environment so that I can create different sounds with the presets that I
>have on my keyboard for differnt songs.
This indeed sounds as if you use 'plain' programs to create a
multi-timbral setup -- in which case the above might apply. Maybe
it's indeed a matter of sending the right sysex parameter change,
instead of sending "channelised program changes". Probably a matter
of meditating over your manual for long enough :-).
cheers,
Hendrik Jan
--
Hendrik Jan Veenstra ( h@... )Message
Re: [L-OT] Understanding SYSEX
2001-04-22 by Hendrik Jan Veenstra
Attachments
- No local attachments were found for this message.