2009-05-04 reported to work with windows 7 beta build 7000 (thanks Dave) ---- 2009-04-28 linux usb driver changes bulk -> int but scans quicker than 10ms default bulk: bmAttributes = 2; bIntervall = don't care -> scan rate: 2ms, low cpu load interrupt: bmAttributes = 3; bIntervall = 1..3 -> scan rate: 2ms, low cpu load bmAttributes = 3; bIntervall = 4..7 -> scan rate: 4ms, low cpu load bmAttributes = 3; bIntervall = 8..15 -> scan rate: 8ms, low cpu load bmAttributes = 3; bIntervall = 16..31 -> scan rate: 16ms, low cpu load bmAttributes = 3; bIntervall = 0 or 32..63 -> scan rate: 32ms, low cpu load bmAttributes = 3; bIntervall = 64..127 -> scan rate: 64ms, low cpu load bmAttributes = 3; bIntervall = 128..255 -> scan rate: 128ms, low cpu load Quick test with win2k shows different behaviour: bulk: bmAttributes = 2; bIntervall = don't care -> scan rate: permanent, high cpu load interrupt: bmAttributes = 3; bIntervall = don't care -> scan rate: 8ms, low cpu load so it's best to use bmAttributes=3 (interrupt), bIntervall=2 this gives fastest access for linux and no heavy load for win ---- 2009-04-25 If you change the values of bmAttributes from 3 to 2 (Interrupt -> Bulk) in section B.5.1 and B.6.1 you'll speed up the transfer up to four times from 8 bytes every 8 ms to 8 bytes every 2 ms. Tested with linux >= 2.6.24. ---- 2009-04-22 Renamed to V-USB-MIDI. Builds perfectly with actual driver (usbdrv-20090415). USB_INITIAL_DATATOKEN hack no more needed. ---- 2008-05-20 This USB MIDI is build upon an AVR ATMega16, powered from USB through 2 diodes (3.5 volts). I have potentiometers (AVCC/AGND) connected to the analog inputs (PORTA) which are converted to a range from 0x00..0x7F to create up to eight midi controls (CC). On my STK500 I've also tested a simple key routine (PORTB), which sends eight "white" keys (60, 62, 64, 65, 67, 69, 71, 72). Serial debugging is enabled. This interface shows up on my linux PC and works fine with vanilla kernel >=2.6.23.x or with a little patch for my 2.6.22.1-rt9. To get the first keypress sent after power up I defined USB_INITIAL_DATATOKEN to USBPID_DATA1. MIDI messages are also received from PC but for now only a LED is toggled (and a debug message sent to UART). This device is class compliant, I use device type audio/midi stream. PID=1508 and VID=5824. AVR is a registered trademark of Atmel Corporation. Martin Homuth-Rosemann