Re: [Mixxx-devel] Ctlra library with Mixxx @ Sonoj

2017-11-24 Thread Harry van Haaren
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

2017-11-24 Thread Harry van Haaren
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

2017-11-24 Thread Harry van Haaren
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

2017-11-22 Thread Владимир Новиков
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

2017-11-22 Thread Daniel Poelzleithner

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

2017-11-21 Thread Sean M. Pappalardo - D.J. Pegasus


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

2017-11-21 Thread Be
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