On Sun, 2006-07-23 at 13:41 +0200, Jens M Andreasen
wrote:
On Sun, 2006-07-23 at 19:36 +1000, Loki Davison
wrote:
> On 7/23/06, Jens M Andreasen <jens.andreasen(a)chello.se> wrote:
> > On Sun, 2006-07-23 at 11:52 +1000, Loki Davison wrote:
> >
> > > Yay! i want my whole app to communicate between engine and gui via
> > > midi! That's going to really be interesting... So what CC would i
use
> > > for add a new node named
"node"? Sysex i guess? ....
> >
> > CC 06 (Data Entry) would be a good candidate for entering text,
> > possibly with 96, 97 (data increment, decrement) to be used as a
> > cursor.
> >
> > The backend will "know" that you are setting the text field of a
node
> > because you immediately before have send a Non-Registered Pararameter
> > Number (CC 98 MSB, 99 LSB), setting the mode or destination to
> > whatever you have found reasonable to represent "node-name".
> >
> > Problems: Attempts at midi-merge may fail. The data-entry slider
cannot
> > be connected to two separate
destinations simultaniously in any
> > meaningful way, other than that the last connection wins and all of
the
data goes there.
> Loki
--
minor downside is that it sounds horrible and complicated and like
you've escaped to the 80's. Yay back to the future... You just can't
say in midi "set the sine osc to 440 hz." I.e you can say in your
message that you are setting a oscillator called something. You can in
osc, so much more human readable.
The implementation could be a switch on the current NRPN. Nothing
complicated or unusual here. Or with a bit of carefulness, you could
also do an array of dynamically allocated function pointers
The upside is that we can actually have (and I do have) a physical
rotary knob that sets an oscillator to, say 440Hz. As for human
readability of the message, I couldn't care less since I am not going
to read the datastream aloud to myself anyway.
To get text representations of unique NPRN's for readability in your
sources, you would typically use something like:
-- myNRPN.h ---------------
#define NODE_NAME __LINE__
#define OSC_FREQ __LINE__
... Now I know what the topic of my next nightmare is going to be :)
-DR-
same... i know deep down Jens you are actually an intelligent guy from
your other posts, but you really must think in a very different way to
me. This looks really, really horrible compared to osc and
fantastically inflexible. Especially for the original goal of this
thread, engine and gui process separation... communicating between
engine and gui in midi just doesn't seem nice...
Loki