[Mixxx-devel] PR#667 review merge

2015-08-10 Thread Sébastien Blaisot

Hi,

Can someone merge or comment PR#667 
https://github.com/mixxxdj/mixxx/pull/667 please ?


I missed HID mapping script in new mapping for Hercules DJ Control MP3 
e2. This PR corrects this.
MIDI driver for this controller is a real pain under Linux, so I think 
it is important to have correct HID support for it before 1.12 release.


Thanks in advance,

sb
--
___
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

Re: [Mixxx-devel] brainstorming for future mapping format

2015-08-10 Thread Be
Also, layers could have custom loading and unloading functions. As an 
example use case, in my Electrix Tweaker mapping, MIDI messages have to 
be sent to toggle the encoders between absolute EQ mode and relative 
mode with scripted control of the LED rings for loop mode (see 
https://github.com/mixxxdj/mixxx/blob/master/res/controllers/Electrix-Tweaker-scripts.js#L381
 
).

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


Re: [Mixxx-devel] brainstorming for future mapping format

2015-08-10 Thread Be


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