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