That's pretty much what I'm envisioning. A GUI that autogenerates JavaScript that would work for many users but could still be edited manually for more advanced functions. Being able to input snippets of JS directly into the GUI will allow seemless blending of them so there shouldn't be much need to edit the script by hand.
What I do like about Traktor's system is how easy it is to select between different types of interaction with a control like toggle versus hold buttons. On 08/12/2015 10:07 AM, Ewan Colsell wrote: > I 'm not a developer but I am the kind of person who writes mappings > for things I own that aren't supported. > > what I'd like out of a controller mapping system, is the following : > > easy to get started: I don't want to learn a new programming language > just to get a controller working. > > well documented : I. want to be able to copy and paste the parts I > don't understand from the examples. and read manual when I have to. > > deep: if if have weird requirements, I want to be able to solve the > problem with rtfm. > > a long time ago I used a program called glovepie that mapps various > kinds of controllers. its has a not quite Turing complete scripting > language, with a GUI wizard that generates code, which you can then > edit by hand. things like inverting/ scaling/ filtering were really > easy without having to really know how to program. you guys should > check it out. > > > On 12/08/2015, Be <b...@gmx.com> wrote: >> None of those are an issue because Mixxx uses an actual programming >> language. :) >> >> On 08/11/2015 11:12 PM, Ferran Pujol Camins wrote: >>> 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 <mailto: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 >>> <mailto: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 >>> <mailto: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 >>> <mailto: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