Re: [Mixxx-devel] Ctlra library with Mixxx @ Sonoj
On Wed, Nov 22, 2017 at 7:41 PM, Владимир Новиков wrote: > Good afternoon! > > Periodically I look through correspondence and here I saw a mention of remix desks and immediately I remember a luppp, similar to the ableton live. Perhaps your projects can be combined? > > Best regards DJ Dancenoise Yes of course - Luppp has had the Ctlra library v0.1 integrated (about this time one year ago...) as a proof-of-concept. Based on the learnings from integrating with Luppp, I re-designed the APIs, and integrated with Mixxx. Based on that, (and LAC presentation, Sonoj presentation, and discussions on list here, #IRC, and others..) we are finally reaching a stable and good API I think :) Thanks for the reminder though - I should get screen support into Luppp for a test too! Cheers, -Harry -- http://www.openavproductions.com -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot___ 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] Ctlra library with Mixxx @ Sonoj
On Wed, Nov 22, 2017 at 12:24 AM, Sean M. Pappalardo - D.J. Pegasus < spappala...@mixxx.org> wrote: > On 11/20/2017 03:42 PM, Harry van Haaren wrote: > > Developers, checkout 17:15, where the "Virtual Devices" concept is > > introduced. > > That /would/ be very handy in allowing users up the expertise chain (so > to speak) troubleshoot/develop mappings with the hardware owners. The > only thing I would suggest to make that process work well is to create a > bonehead-easy way for a very non-technical user to create a virtual > representation of their controller. (I'm thinking a GUI with a wizard > that walks them through the process, automating as much as possible. > Like have them take a photo of the device with their cell phone or Web > cam, then try to auto-identify controls in the image so the user needs > only edit their properties and move them around a bit instead of having > to create them all manually.) That also lessens the responsibility for > you and the OpenAV team to have to create virtual devices yourselves > from every controller ever made. Yes I like the idea of "making it easy to support new controllers" - we might argue about image-detection or user-input or ... or ... but we're on the same page :) > > > it > > hopes to allow accessing HD screens on > > all Ctlra supported devices, and get tight integration to the next level. > > That sounds good on the surface, but wouldn't that then restrict the > ability of applications to style the information on the screens to a set > of pre-defined designs/layouts Ctrla supplies? The Ctlra API for screens is not finished yet. Currently it exposes the *native* data format that is required to be pushed down the USB cable to the device. This does not scale at all, and is a nightmare for applications (trust me - there are some *wacky* encodings out there :) Long term goal: 1) Provide "raw access" pointer to data structure if application *demands* it - but strongly advise against using it, as it renders work 1:1 as Software : Controller, which will benefit very few people in general. 2) Provide a generic RGB interface. which should work with all colour screens. Note that different screen sizes / layouts are still going to require some kind of implementation, similarly with the "what to display". (Techie note: yes this requires mushing RGB into whatever data format the device requires. Performance wise, modern CPUs easily handle this - and if a specific low-CPU-power device and Controller *must* be supported, then option (1) allows that). > I imagine a DJ > application like Mixxx will want to use the screens quite differently > than an audio editing application like Audacity or a DAW like Ardour. Yes correct. Or a live-performance looper / FX / virtual-instrument / etc. Long term goal is to use AVTKA (same as virtual controllers - so many projects will be building/shipping it already), and use that to "generate" interfaces somehow. I'm not sure on the details yet, but there's a lot of options and flexibility possible. AVKTA is very dynamic and easy to add new widget types, and it is intentionally simple to code simple-ish UIs. Ctlra will not *force* AVTKA usage, but provide it as a helper to get things done quickly, and provide good UX for users: or that's the goal anyway. > Another argument for not having another translation layer is > performance, especially where low-latency response is expected from a DJ > application with a moving-platter controller for example that sends over > 1000 messages per second. How much latency does Ctrla add at the moment? Ctlra works inline (aka, the CPU checks for events, and handles them immediately). There is no buffering longer than the time between the CPU checking for events. As such, Ctlra doesn't *add* any latency. It uses the minimum required buffering to function, and apart from that it depends on the Application on how frequently it requests events. I have a device that sends a huge number of URBs to transmit pad pressure values which are filtered into note-on/off events by SW. The note-on/off event is converted into a LED message, and toggles the LED on when the pad is pressed. This "round trip" from pad -> CPU -> light under pad "feels" instantanous. Of course, its hard to measure the latency here being physical / light feedback.. but don't worry about this - just compile the PR at some point and test it :) > Sincerely, > Sean M. Pappalardo > "D.J. Pegasus" > Mixxx Developer - Controller Specialist Thanks for your input! -Harry -- http://www.openavproductions.com -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot___ 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] Ctlra library with Mixxx @ Sonoj
On Tue, Nov 21, 2017 at 7:56 PM, Be wrote: > Thank you for the update. This idea of virtualizing controllers is interesting and I like that you're trying to make it easier for communities to support controllers. Cool - me too :) > However, I'm a bit skeptical that it will practically make much of a difference in how well various applications support controllers unless we can get hardware manufacturers to support Ctlra with a virtual version of their controller. Yes, its a chicken-egg problem: we can't make applications support Ctlra unless there is supported hardware, and we can't (easily) get all hardware supported without software that would be enabled by it. Long story short - OpenAV is working towards enabling a bunch of fancy USB HID controllers, and then plans to write some fancy live-performance software to integrate with them. (Aka: just jump in and get coding on HW + SW). > Could you say a bit more about that application you are using with the Kontrol D2? Sure - perhaps on another thread, I'd prefer keep this for Ctlra (and not get too side-tracked into awesome new features :) > I hope to spend more time looking at your code and helping out with Ctlra after we release 2.1 beta in late December. No stress - there's lots of changes to be made in Ctlra for user-friendlyness yet.. and API changes! All being tracked here: https://github.com/openAVproductions/openAV-Ctlra/issues/49 > On 11/20/2017 05:42 PM, Harry van Haaren wrote: >> >> Hey Mixxx folks! >> >> I've recently used Mixxx to demonstrate the Ctlra library I've been working on, which integrates fancy HW devices with Mixxx. >> The video is an hour long, but the demo starts here: https://youtu.be/qHt-AQHcBXg?t=332 >> >> The event was Sonoj[2], a convention on open-source audio software for musicians, held in Koln in Germany. >> The goal of the talk was to demonstrate "tight integration" between Ctlra library and "other software" (eg Mixxx :) >> >> Developers, checkout 17:15, where the "Virtual Devices" concept is introduced. Please think of "how to >> enable everybody in the community", as the virtual devices hopes to solve how to enable and assist beginner >> users in creating customized controller maps. More than only that - it hopes to allow accessing HD screens on >> all Ctlra supported devices, and get tight integration to the next level. >> >> Note also that Ctlra hopes to integrate with all DAWs and Software projects - not just Mixxx. Some will (accurately) >> note that the Mixxx project has ControlProxy APIs, and with that the JS based controller mappings APIs. Correct, >> and from that point of view I totally understand that this library might not add much value to Mixxx (yet..). Once >> we integrate HD screens, and devices that require lots of complex logic to support, it would be great if not every >> open-source project duplicated this effort - hence Ctlra library. >> >> Feedback and suggestions welcome, for those interested in code, please see the references below! >> >> Regards, -Harry >> >> [1] https://www.youtube.com/watch?v=qHt-AQHcBXg >> [2] https://sonoj.org/ >> >> Code references: >> Ctlra library: https://github.com/openAVproductions/openAV-Ctlra/ >> Ctlra "manual" explains the concept: http://openavproductions.com/doc/ctlra.html >> Avtka (virtual device UI) library: https://github.com/openAVproductions/openAV-avtka >> >> -- >> >> http://www.openavproductions.com >> >> >> -- >> Check out the vibrant tech community on one of the world's most >> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >> >> >> >> ___ >> 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 >> > > -- > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > ___ > 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 -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot___ 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] Ctlra library with Mixxx @ Sonoj
Good afternoon! Periodically I look through correspondence and here I saw a mention of remix desks and immediately I remember a luppp, similar to the ableton live. Perhaps your projects can be combined? Best regards DJ Dancenoise -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot___ 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] Ctlra library with Mixxx @ Sonoj
On 11/22/17 01:24, Sean M. Pappalardo - D.J. Pegasus wrote: That /would/ be very handy in allowing users up the expertise chain (so to speak) troubleshoot/develop mappings with the hardware owners. The only thing I would suggest to make that process work well is to create a bonehead-easy way for a very non-technical user to create a virtual representation of their controller. (I'm thinking a GUI with a wizard that walks them through the process, automating as much as possible. Like have them take a photo of the device with their cell phone or Web cam, then try to auto-identify controls in the image so the user needs only edit their properties and move them around a bit instead of having to create them all manually.) That also lessens the responsibility for you and the OpenAV team to have to create virtual devices yourselves from every controller ever made. Photo recognition is way to complicated in my opinion. More something like qt designer/glade designer etc but for ctrla would fill the gap nicely. There are only a handful of input element types in existence. Knobs, sliders, touchpads etc. You could have a designer with all supported elements. You place them, give them names, sometimes extra flags. And it outputs a format that ctrl understands. On midi devices at least, the mapping could then be automated with a wizard then. On HID devices things will get more tricky, but at least a large part of work could be done through this by non technical people. it hopes to allow accessing HD screens on all Ctlra supported devices, and get tight integration to the next level. That sounds good on the surface, but wouldn't that then restrict the ability of applications to style the information on the screens to a set of pre-defined designs/layouts Ctrla supplies? I imagine a DJ application like Mixxx will want to use the screens quite differently than an audio editing application like Audacity or a DAW like Ardour. I guess the API is just some sort of Framebuffer, where you can draw whatever you want on it. I kinda had some wishes like this as well, like auxiliary displays. Part of the current skin subsystem, but on the other hand, in this case it's more controller dependent. I think we will be more flexible with some sort of second skin instance for each device. kind regards poelzi -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ 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] Ctlra library with Mixxx @ Sonoj
On 11/20/2017 03:42 PM, Harry van Haaren wrote: > Developers, checkout 17:15, where the "Virtual Devices" concept is > introduced. That /would/ be very handy in allowing users up the expertise chain (so to speak) troubleshoot/develop mappings with the hardware owners. The only thing I would suggest to make that process work well is to create a bonehead-easy way for a very non-technical user to create a virtual representation of their controller. (I'm thinking a GUI with a wizard that walks them through the process, automating as much as possible. Like have them take a photo of the device with their cell phone or Web cam, then try to auto-identify controls in the image so the user needs only edit their properties and move them around a bit instead of having to create them all manually.) That also lessens the responsibility for you and the OpenAV team to have to create virtual devices yourselves from every controller ever made. > it > hopes to allow accessing HD screens on > all Ctlra supported devices, and get tight integration to the next level. That sounds good on the surface, but wouldn't that then restrict the ability of applications to style the information on the screens to a set of pre-defined designs/layouts Ctrla supplies? I imagine a DJ application like Mixxx will want to use the screens quite differently than an audio editing application like Audacity or a DAW like Ardour. Another argument for not having another translation layer is performance, especially where low-latency response is expected from a DJ application with a moving-platter controller for example that sends over 1000 messages per second. How much latency does Ctrla add at the moment? Sincerely, Sean M. Pappalardo "D.J. Pegasus" Mixxx Developer - Controller Specialist smime.p7s Description: S/MIME Cryptographic Signature -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot___ 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] Ctlra library with Mixxx @ Sonoj
Thank you for the update. This idea of virtualizing controllers is interesting and I like that you're trying to make it easier for communities to support controllers. However, I'm a bit skeptical that it will practically make much of a difference in how well various applications support controllers unless we can get hardware manufacturers to support Ctlra with a virtual version of their controller. Could you say a bit more about that application you are using with the Kontrol D2? I have started thinking about what will be required to implement functionality like Traktor's Remix Decks in Mixxx. Of course, this would be a really big project. I don't anticipate getting around to that for a long time. I hope to spend more time looking at your code and helping out with Ctlra after we release 2.1 beta in late December. On 11/20/2017 05:42 PM, Harry van Haaren wrote: Hey Mixxx folks! I've recently used Mixxx to demonstrate the Ctlra library I've been working on, which integrates fancy HW devices with Mixxx. The video is an hour long, but the demo starts here: https://youtu.be/qHt-AQHcBXg?t=332 The event was Sonoj[2], a convention on open-source audio software for musicians, held in Koln in Germany. The goal of the talk was to demonstrate "tight integration" between Ctlra library and "other software" (eg Mixxx :) Developers, checkout 17:15, where the "Virtual Devices" concept is introduced. Please think of "how to enable everybody in the community", as the virtual devices hopes to solve how to enable and assist beginner users in creating customized controller maps. More than only that - it hopes to allow accessing HD screens on all Ctlra supported devices, and get tight integration to the next level. Note also that Ctlra hopes to integrate with all DAWs and Software projects - not just Mixxx. Some will (accurately) note that the Mixxx project has ControlProxy APIs, and with that the JS based controller mappings APIs. Correct, and from that point of view I totally understand that this library might not add much value to Mixxx (yet..). Once we integrate HD screens, and devices that require lots of complex logic to support, it would be great if not every open-source project duplicated this effort - hence Ctlra library. Feedback and suggestions welcome, for those interested in code, please see the references below! Regards, -Harry [1] https://www.youtube.com/watch?v=qHt-AQHcBXg [2] https://sonoj.org/ Code references: Ctlra library: https://github.com/openAVproductions/openAV-Ctlra/ Ctlra "manual" explains the concept: http://openavproductions.com/doc/ctlra.html Avtka (virtual device UI) library: https://github.com/openAVproductions/openAV-avtka -- http://www.openavproductions.com -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ 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 -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ 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