Here's an update on my progress so far. Things are looking promising.
First, please let me explain my solution, which I am calling The Femulator. It's quite similar to the Midi Fighter idea, in which hardware emulates the F1 HID interface, but this one is cheap and doesn't have any buttons or pads (though you could add them and build a custom F1 if you wanted). Instead, software is used to listen for MIDI messages from the OS (generated by a hardware controller, software, whatever), map and issue an HID report to the hardware, and the hardware will echo-back the report via the F1 interface (I have some concerns about latency but have some alternative solutions should it become an issue).
I know many of you favor an all-software approach, but in my opinion this is not possible without insider info from NI or by developing an HID device emulator. This probably isn't going to happen through after-work, grass roots efforts (at least not from me!). The hardware for the Femulator is easy to obtain and quite cheap, and the firmware is open-source so anyone can get going for $20-$30. It should be possible to run this on an UNO, Leonardo, Teensy, ATMEGA8U2 break-out or ATMEGA32U4 break-out (Sparkfun/Adafruit). You could even re-flash a Midi Fighter Classic or Pro!
To further bolster support for my approach, I am please to announce
I actually have a working proof-of-concept. To date, I have Traktor recognizing the Arduino UNO as an F1 on both Windows and Mac. I also have a very simple Java application that, when run, triggers a sample in Remix Deck C. No MIDI or mappings or any useful features yet, but it is very encouraging.
The code is at
https://github.com/angryelectron/hack-the-f1 if you're curious to try out the firmware, but don't expect to see any useable software for a week or so. If you get the firmware running on a board other than an Arduino, let us know. Otherwise, stay tuned for updates.
[koooops - will have a look at your Usblyzer dump tomorrow. Thanks.]
Bookmarks