>     In the later case, it could still be used internally, but get rid of it
>     for scripting purposes, where it adds a lot of noise and makes the
>     scripts
>     hard to maintain.
>
>
> Ideally if a control does not require scripts then it should be mapped
> via XML. This is the most efficient and low-latency way to process input
> from a controller. Using script add to input processing latency since
> the Javascript VM has to be invoked.

I understand that.  What I mean, a script writer should not be concerned 
with XML editing.  The same effect could be achieved by a JS function 
that installs the connection that the XML creates, yet maintaining the 
XML file as a layer that *overrides* whatever the script means.  In 
Ableton Live (sorry for mentioning non-free software here) scripts can 
wire the connections between controls and MIDI signals (by wiring I mean 
establishing the connection without manually processing the signal, like 
the XML file does) yet the user can use "remote mappings" to override 
these.  Yet the abstraction is transparent in both sides, the script 
writer does everything in the script, and the user does everything in 
the GUI, no intermediate XML file needed.

>     Also, for the performance argument, that convinces me that we really
>     need an API like this:
>
>          engine.connectMidiToControl(status, midino, group, control,
>     options);
>          engine.connectControlToMidi(group, control, status,
>     midino,options);
>
> I disagree -- the XML mappings already have tons of options for how to
> interpret messages and cover the common cases. In this case, the
> connection should be made in the XML so that it is editable by the user
> without editing the script.

Maybe I am missing something, but what I expressed can not be achieved 
with the XML settings.  I am going to try to put it in this way, a 
simple mapping that says...

     If SHIFT is pressed, KNOB 1 controls "master volume"
     else KNOB 1 controls "prehear volume"

...can not be expressed in the XML file.  Instead, one should write such 
functionality in the script, but, in the script, one can just process 
directly (with the latency it involves) the KNOB 1 signal, one can not 
"route it" to control "master volume".

In my ideal world, one could express such thing with an API resembling 
what I suggested in the previous email.

That does not conflict with customization from GUI if the XML presets 
*override* what the script says, instead of the XML presets being the 
central dispatch point as they are know.

> Well, it depends on what you imagine for generating the XML. Is this a
> utility that allows for easy authoring of scripts that generates the
> XML/JS once and then the XML/JS is distributed or is this something that
> generates the XML every time? A few tools already exist for the former
> (and that's mostly fine though if the author wants to re-integrate
> changes made by other community members then they have to do it by hand)
> but the latter is not OK since it is not editable by a user without
> changing the script that generates the XML.

It is like the former.  The XML generated is as well-formatted (indented 
and editable), yet the generated JS is a bit complicated -- it is better 
to modify the CoffeeScript in that case.

You mention there are similiar tools already existing: could you provide 
me some links to these? I would be very interested in researching them.

While it is still an ongoing development, feel free to take a look at my 
current results here:

     http://sinusoid.es/mixco/

The API is somwehat documented (interleaving it with code following 
Literate Programming) and there are some unit tests (not many now, since 
I just started using TDD after an initial exploration phase).

Cheers!

JP



------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org


Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to