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. MIDI messages are 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. Vendor/Product ID: VID=0x16c0 (VOTI), PID=0x05e4 (obdev MIDI).
Device desriptor and config descriptor are defined in file "descriptor.inc". Product string is defined in file "main.c", function setName().
Version of usbdrv is defined in "Makefile".
ADIO is a quick hack that uses V-USB-MIDI for analog input (8 in) / output (4 PWM)
Added a version for ATtiny85