Re: [LAU] $3 MCP MIDI controller

From: Len Ovens <len@email-addr-hidden>
Date: Sat Apr 18 2015 - 23:22:14 EEST

On Sat, 18 Apr 2015, Johannes Kroll wrote:

> On Fri, 17 Apr 2015 22:19:09 -0700 (PDT)
> Len Ovens <len@email-addr-hidden> wrote:
>
>> On Fri, 17 Apr 2015, Johannes Kroll wrote:
>>
>>> On Wed, 15 Apr 2015 22:10:40 -0700 (PDT)
>>> Len Ovens <len@email-addr-hidden> wrote:
>>>
>>>> Take a second keyboard from the dollar store (mine is USB) add a driver
>>>> and it can control the DAW.
>>>> http://www.ovenwerks.net/hardware/index.html
>>>>
>>>> I get 5 channel strips and enough keys left to emulate al the rest of the
>>>> mackie controller keys with one or two left over.
>>>
>>> That's a nice hack. Is the code available somewhere?

There is now a link at the bottom of the above page. It is my first ever
software release and there are things missing... no configure script
(which would take a lot longer to run than make does in this case) so make
sure you have the include file for libjack installed :)

This (as above) a hack in many ways. The user needs to find out which
event file (device) to point at and put that in the command line. This
will change depending on if the device is plugged before or after boot.
Comments and hints are welcome.

>> documentation as well. I also fear that my crude attempts at realtimeness
>> are less than they should be. I have not seen any xruns show up, but I
>> don't have any memlocks for the variables I use for the faders, cc and
>> LEDs. If you think about it, this is not a lot of memory, 3 LEDs, 16
>> Faders/pitchbend max, and 127 cc max though I think I allow for 50 because
>> two keys are used for each cc and the keyboard has just over 100 keys :)
>
> AFAIK, Jack automatically locks the memory of Jack clients, so you
> don't need to worry about that. As for realtimeness, you shouldn't do
> anything in the jack callbacks that blocks or takes an unknown/large
> amount of time. So, no heap memory allocations
> (new/delete/malloc/free), no printf(), no reading or writing to files
> or sockets. If you need to do blocking stuff, you can write messages to
> a jack_ringbuffer, then read and process the messages from another
> thread (probably your main thread).

Mostly I think I am ok. I do read/write the same memory locations in both
the call back and main() Most processing is very quick.

--
Len Ovens
www.ovenwerks.net
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-user
Received on Sun Apr 19 00:15:02 2015

This archive was generated by hypermail 2.1.8 : Sun Apr 19 2015 - 00:15:03 EEST