I have been working on a usb kernel driver for the frontier designs "tranzport"
control surface. It's a pretty unique device - 20 character LCD, 7 lights, 21
buttons, and a shuttle wheel.

Anyway, as I have something that more or less works better than the current
ardour2 libusb driver...

and as I'm starting on one for the the Alphatrack (same company) shortly... 

some feedback and code review on what I have so far would be quite welcomed.
I have some open questions at the tail end of this message.

My intent is to ultimately make this adhere to the Tranzport midi API, but
I kind of like the power of the currently (very) raw interface.


REFERENCES

Current kernel driver, makefile and test code:
http://subversion.ardour.org/svn/ardour2/branches/surfaces/libs/surfaces/frontier/kernel_drivers/

Code for driving this via ardour is not done yet. libusb driver is enabled in 
surfaces branch

The tranzport itself:

http://www.frontierdesign.com/Products/TranzPort

Tranzport USB cmd set:

http://tranzport.sf.net

Tranzport midi API (which will be layered on top of that)

https://frontierdesign.com/download/pdf/TranzPort/TranzPort_Native_1_3.pdf

NOTES:

* Why not libusb?

I have a libusb driver. It tends to miss interrupts. I have a better libusb 
driver 
waiting in the wings (w/reader/writer/process threads), but it seemed to me to 
get maximum realtime reliability, write buffering, preemption of some queued 
write events, poll(), event compression, and a ultimately sane interface to 
midi, 
that a kernel driver was the way to go.

* Why not an event interface?

At first glance this device might be more suited as a /dev/input subsystem.
Problem with that are that anything it talks to currently on other platforms
is defined via midi. Second problem is /dev/input doesn't quite support the 
idea of "feedback".

OPEN QUESTIONS:

0) Is openusb in a usable state?

1) I see some usb drivers using a disconnect_mutex. Others are calling 
lock_kernel. 
Which is more correct? (this driver is running under linux-rt)

2) Will I need to request specific usb minor numbers for this (raw?, Alsa?)

3) Is there a midi layer that is a model of it's kind?

4) As this fits into the "audio" bucket - is it this list or the alsa list that
   would care about the patch(es) first? Or both?

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to