mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.46k stars 1.27k forks source link

Parameter access via OSC #5082

Open mixxxbot opened 2 years ago

mixxxbot commented 2 years ago

Reported by: spam-kernelspace-deactivatedaccount Date: 2009-01-20T22:17:53Z Status: Triaged Importance: Wishlist Launchpad Issue: lp319386


Hello!

I think Mixxx is a great app! But I think there is something missing that will make it even better...

It would be great to have access to all controllers via OSC (http://en.wikipedia.org/wiki/OpenSound_Control). This would allow integration with other software and even remote controlling over networks.

Specifically I am thinking about using pd (PureData) to translate sensor input from any imaginable hardware device to OSC and then feeding the data into Mixxx. Compared to MIDI it would allow for much higher controller resolution.

mixxxbot commented 2 years ago

Commented by: kousu Date: 2009-01-21T21:40:52Z


Seconded. This has been in the back of my mind for a while. I don't think it's mentioned on the wiki anywhere, but maybe I missed it. If it's not we should spec it out (but before we can do this the controller code needs overhauling).

mixxxbot commented 2 years ago

Commented by: rryan Date: 2009-04-05T18:12:23Z


Marking wishlist -- OSC has been proposed before but we have way too little manpower to even approach this in the near term.

mixxxbot commented 2 years ago

Commented by: Pegasus-RPG Date: 2010-02-19T08:19:07Z


We looked into this a bit and OSC doesn't have any standard messaging format. We'd need to create a class structure similar to the MIDI one that includes an OSCDevice class (that really doesn't do much except passing OSC data to/from the OS) that each supported device would sub-class inside a script (using QtScript's C++ interactions) to implement all functionality. (I.e. scripting for OSC devices would be a requirement due to the lack of standard messaging.)

This sounds like it would be pretty self-contained so is a good candidate for a newer contributor.

mixxxbot commented 2 years ago

Commented by: Pegasus-RPG Date: 2010-03-08T21:06:45Z


I just came across some information that explains a standard for MIDI-over-OSC: http://www.symbolicsound.com/cgi-bin/bin/view/Learn/BidirectionalMIDIStreamsOverOSC http://opensoundcontrol.org/spec-1_0

An interested party could pretty easily write a MIDIDeviceOSC class so we could at least support those without too much effort. Again, self-contained and there's plenty to work from with the existing MIDIDevice and MIDIDeviceHSS1394 classes.

mixxxbot commented 2 years ago

Commented by: brianwredfern Date: 2012-01-26T08:27:11Z


Mixxx and Control would be a great match with OSC support, if this hasn't been tackled yet I would like to take a whack at it.

mixxxbot commented 2 years ago

Commented by: Pegasus-RPG Date: 2012-01-26T09:50:34Z


I'm working on the controllerAbstraction branch that wil allow other non-MIDI back-ends to be used, like OSC. If you want to work on it now, check out that branch and basically just copy the HID classes but change them to OSC, then implement the back-end in OSCDevice. Since the branch is still in active development, APIs might change, but probably not too much at this point.

mixxxbot commented 2 years ago

Commented by: Pegasus-RPG Date: 2014-10-31T16:41:24Z


Just an update: Mixxx 1.11.0 released with HID controller support so the API will be stable now. Feel free to copy the HID classes, rename them and replace the implementation details for OSC-specific ones.

mixxxbot commented 2 years ago

Commented by: rryan Date: 2014-10-31T17:02:16Z


The beginnings are already done here: https://github.com/rryan/mixxx/tree/osc

Anyone interested should feel free to take this over.

mixxxbot commented 2 years ago

Commented by: alexandre-quessy Date: 2016-04-23T19:26:34Z


Hi everyone, Ryan: I have been thinking about implementing this feature in Mixxx for a little while. Here are a glimpse of my skills:

So, that means I would probably need some walkthrough with someone who knows Mixxx's source code and its build system better than me. Also, I might need some help to make sure it builds on OS X and Windows. I am aalex on IRC.

As I see in https://github.com/rryan/mixxx/blob/osc/src/controllers/osc/osccontroller.h, that means that the next steps are to include the liblo.h headers and use them. I have some C++ wrapper for liblo's C API here: https://github.com/mapmapteam/mapmap/blob/develop/OscReceiver.h - though there are new liblo_cpp.h headers available nowadays: http://liblo.sourceforge.net/examples/cpp_example.cpp.html - so we should rather use that.

I think the controller approach is good at first, but then we might later add as well the possibility to subscribe to Mixxx's events, so that other application could listen to its events and act accordingly. That's for another feature request, though.

Next step: I should spend an hour or two discussing with Ryan about what work I should do, and how I can test it. Does this make sense?

Thank you!

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2018-09-09T08:18:21Z


Related: https://www.mixxx.org/forums/viewtopic.php?f=6&t=8003 https://github.com/daschuer/mixxx/tree/osc_support

mixxxbot commented 2 years ago

Commented by: macrophone Date: 2020-01-18T15:50:45Z


Hi everyone, OSC support would be great for me! My use case : In dance workshops, before my DJ set I lead a "warm-up" exercice, it's better for me to be with the people on the floor rather in the DJ booth. I want to start some music during the exercice, then go to my booth after 4 or 5 tracks and continue the DJ set seamlessly. It could be a great feature for a lot of dance teachers.