I've now well Traktor mapping system. It wouldn't be that bad (provided we have scripting anyway) if:
1-Execution order of sentences could be determined. 2-Modifiers could have an arbitrary value (double, text, etc...) instead of just 0,..7. 3-More than two conditionals could be defined for a sentence. 4-The number of modifiers wasn't limited to 8. 5-Modifiers could have a name. 2015-08-11 19:14 GMT+02:00 Be <b...@gmx.com>: > I actually played around with Traktor's mapping system last night and it > isn't that great. Complex mappings quickly get messy. We can do better. :) > > On 08/10/2015 04:29 PM, Be wrote: > > > > > > On 07/07/2015 10:14 AM, raskolni...@es.gnu.org wrote: > >> > >> On the OP topic: I think your proposed sintaxes look good and could be > >> useful, it's nice that you open this discussion! > >> > >> On the other hand, I have the impression that what we really need is a > >> two simple functions `map[Output,Input]Control(channel, value, group, > >> name, options)` that allows to define a MIDI mapping at run-time. This > >> would be the JS equivalent of the <control> tags. > >> > >> On top of this low-level API many richer high-level APIs can be > >> explored, including your JSON-style formats, Mixco, and further. But > >> most importantly, it would be possible to write advanced controllers > >> with JS mode switching, that are as performant as the pure XML scripts. > >> Right now, a important limitation in the framework is that it's all > or > >> nothing, either you bind a MIDI signal statically in the XML, or handle > >> the MIDI events completely in JS -- an interesting approach is to be > >> able to create direct binding for Mixxx controls from JS that then > >> bypass the script for the individual events, providing better > performance. > >> > >> Cheers! > >> > >> JP > >> > >> > > > > I think this is the most reasonable way forward from where Mixxx is. > > This could facilitate a smooth phasing out of the XML format and a > > transition to JSON. All the info contained in the header of XML files > > could be defined in JSON with a metadata object. > > > > Looking into other programs' mapping systems, it looks like Traktor and > > possibly Ableton are the only ones that have mapping systems worth > > taking ideas from. Serato's system is primitive (at least the > > user-definable part; no one knows the secrets of how official, > > unmodifiable Serato certified mappings work). VirtualDJ has its own > > clunky mini-scripting language. Ableton allows scripting with Python but > > at first glace I don't see much documentation for it and I've heard > > there is no debugging output. Traktor's mapping system is flexible but > > tries to do so much in GUI that it ends up being cumbersome. I think it > > would be awesome to implement a GUI interface similar to Traktor's but > > allow direct input of JavaScript snippets from the GUI. For example, > > instead of selecting [Channel1] as the group for a mapping in the GUI, a > > user could type in a JS variable that could be toggled between > > [Channel1] and [Channel3]. Also, custom JS functions could be typed into > > the GUI. This could combine the best of a GUI interface and the > > flexibility of JavaScript. > > > > I got another idea that I think would be both powerful and > > straightforward: mappings could be built from layers, which would be JS > > objects containing groups of input and output mappings. In the GUI, > > layers would be presented as tabs at the top of the mapping editor. > > Button presses (or whatever) would be mapped to switch between layers. > > By default, activating a layer would overwrite active mappings that > > overlap with the layer being activated. Mixxx could remember the > > previously active mappings and revert to that when a layer is disabled, > > which would make implementing shift button layers trivially easy. Would > > it make more sense to implement layering functionality in C++ or as a > > JavaScript library making use of a new mapping (dis)connection function? > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > > 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 > > > > > ------------------------------------------------------------------------------ > _______________________________________________ > 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 >
------------------------------------------------------------------------------
_______________________________________________ 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