(Sorry, I replied to Be only by mistake)
Hi! On 06/07/15 22:20, Be wrote: > Yes, I am aware of Mixco. I hadn't looked into it much before because I > don't know CoffeeScript and have no experience with Node.js. It does > look capable of doing at least some of the things I put on the wiki. > However, the example scripts aren't all that straightforward to me. I > think that is both because I have never used CoffeeScript before and > something about how the examples were written. So, at least at first > glance, Mixco doesn't seem to meet the most important design goal to me, > which is reducing the barrier to entry. Maybe Mixco could be improved so > that it is more straightforward to new comers. I agree that Mixco, being very influenced by functional programming and stuff is probably not very easy at first. On the other hand, its goal is not just to write the scripts without XML, but also provide higher level "widgets" that can be reused across scripts and that take care of more things (e.g. switching LED states between modes, etc.) Btw, there are some scripts written in JavaScript, do you find this also unreadable? https://github.com/arximboldi/mixco/blob/master/script/novation_twitch.mixco.js 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 ------------------------------------------------------------------------------ Don't Limit Your Business. Reach for the Cloud. GigeNET's Cloud Solutions provide you with the tools and support that you need to offload your IT needs and focus on growing your business. Configured For All Businesses. Start Your Cloud Today. https://www.gigenetcloud.com/ _______________________________________________ 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