On a fine day, 08-05-2004, nilknarfnimajneb wrote:
>checked out your webpage. found some wonderful (& some playful)
>envrmt. patches.
Thx. Glad you liked them.
>Now it's got me thinking
That's what it's all about :-)
>seeing as the envrmt. is so flexible,
>isn't there some way to, say, go from a channel splitter to
>transformers (8 for each channel), select 1/8 of the 128 possible
>instrument range for each transformer (transformer 1 [cha1] gets
>instr. 1-16, transf.2 gets 17-32, etc.), then transform the 16step-
>range of program change numbers (e.g. 17-32) to somehow choose the
>channel on the multichannel exs24 (is that possible?).
>
>So for ex. program change 18 would be transformed to cha2 on the
>second in a row of 8 exs24 (mc).
Yes, possible.
>I know thst means you'd be runnin a whole LOAD of exs 24
>multichannel instances
Wouldn't that be 16 x 8 = 128 EXS's? See my previous post: isn't the
limit 64 virtual instruments? Too lazy to fire up Logic and check
for myself :-). Of course if you use the EXSP, which is
multitimbral, you could get away with just 8 EXSP's, each having a
full set of 16 instruments loaded.
>but there must be a way to work with certain SMF standards to cut
>that down (eg cha10 - drums - never need to set that one, except to
>look for a choice from amongst drum sets, but that wouldn't matter,
>you'd have to do that anyway.)
>
>Plus you'd have to find a way to automatically bypass the exs24
>instances you're not actually using. I mean it sounds like quite an
>undertaking, but... if it's possible, why not?
Again: should be possible, but tricky.
>My question: If i take off down this road, do i have any reasonable
>chance of success, or is this a completely harebrained idea and just
>a waste of time?
Well, you would roughly have to do something like this:
Have 16 tracks in Arrange, each assigned to an environment patch (16
identical patches). Such an environment patch would have to be able
to use program changes to select one of 128 EXS instances.
Your remark that the patch would have to bypass the unused EXS
doesn't hold. What if track 1 plays strings, then later track 2
starts playing strings as well, and even later track 2 starts playing
piano? In that case, track 2 would bypass the strings-EXS as soon as
it switches to piano, but that would mean that track 1 (which also
plays strings) gets muted.
The environment patch would be something like: start with a neutral
object (e.g. Monitor). Cable into 2 transformers which both are
cabled into a Cable Switcher. The 1st (top) transformer transformers
prog-changes to the appropriate message to flip the switch (i.e.
corresponding to the In definition of the switch - default is CC7).
Furthermore this transformer's Operations -2- flip menu is set to
"Use Map". The Map maps prog-change 0-15 to 0, 16-31 to 1 ...
112-127 to 7. This way an arriving prog-change will flip the switch
in one of 8 positions. The 2nd transformer has a "Use Map" on the
Operations Cha part, and the Map is "0 1 2 3 ... 15 0 1 2 .. 15 0 1
.. 15 0 1 .. 15 0 ..." etc. This way prog-change 0-15 get their
channel transformed to channel 0-15, prog-change 16-31 get their
channel transformed to 0-15... etc.
Finally connect the 8 outputs of the Cable Switcher to 8 Channel
Splitters. Connect the 8 x 16 = 128 outputs of the Channel Splitters
to 128 EXS mixer strips. Done.
And then repeat 16 times for each of the 16 Arrange tracks.
If you _do_ want to bypass unused EXS's, things get a bit more
complicated. Start out with a song where all 128 EXS's are bypassed.
Then: an arriving prog-change should un-bypass the required EXS and
bypass the most recently used EXS (if any). That means you have to
somehow remember which EXS was last used (i.e. un-bypassed by the
previous program change), bypass it, un-bypass the newly requested
instrument, and remember (store) which instrument that is.
(Un-)bypassing is done by sending an appropriate Fader Event into the
mixer strip.
This needn't be very complicated but _is_ a bit tricky and requires
some careful planning. What I would do is: use a fader for each of
the 16 tracks to store the value of the most recently received
prog-change. Then if a new prog-change arrives: flip a switch in
position A, bang the fader (meta-99), and send the fader value
through the switch to a patch that produces a 'bypass' Fader Event
and send it to the proper EXS. Then flip the switch to position B,
send the prog-change to the fader (storing the prog-change value
_and_ sending it out the fader), send the fader value through the
switch and produce an 'un-bypass' Fader Event and send it to the
proper EXS.
Conceptually rather straightforward, but in practice possibly tricky
to make -- esp. if you don't want to get drowned in hundreds of
objects.
Well, if you really want to give this a go, the above should at least
give you some ideas :-).
--
Hendrik Jan Veenstra h @ k n o w a r e . n l
Omega Art: http://www.omega-art.com/