OpenDeck MIDI Platform
OpenDeck is a platform suited both for prototyping and developing custom MIDI controllers. Platform uses class-compliant USB MIDI which makes it compatible with any MIDI software on any OS. Main part of the platform is board on which various components used to build a MIDI controller can be connected. OpenDeck supports the following components:
- LEDs (single color or RGB)
- FSRs (force-sensitive resistors)
- LCD/OLED displays (Arduino Mega and Teensy++ 2.0 only)
OpenDeck supports sending of both 7-bit and 14-bit Non-Registered Part Numbers (NRPN), latching messages on buttons, various encoding modes for quadrature encoders, LED control using MIDI In, configurable MIDI channels for each component individually, daisy-chaining of boards etc. Full list of supported features can be found here.
OpenDeck firmware is compatible with official OpenDeck board, as well as various other boards:
- Arduino Uno
- Arduino Leonardo
- Arduino Pro Micro
- Arduino Mega2560
- Teensy++ 2.0
- STM32F4 Discovery (experimental)
This repository also contains source code for OpenDeck Web configuration utility written using Angular framework by other developer. Web utility can run in any browser which supports WebMIDI specification (currently Google Chrome and Opera). Utility needs access to MIDI devices so that it can communicate with OpenDeck boards. All communication is done with custom SysEx protocol explained in detail in Wiki section.
Latest version of the UI is always available on this link. The UI available on this link is hosted on GitHub (via this repository, master branch) and it's compatible only with latest available OpenDeck firmware. If older firmware is used with latest UI, UI tends to crash when it tries to request parameters which aren't available in older firmwares.
Older versions of the UI are also available and can be downloaded from releases page.
- Official support for STM32 boards
- Hardware MIDI source code based on Arduino MIDI library v4.2 by Francois Best.
- USB MIDI and bootloader source code based on LUFA USB framework by Dean Camera.
All code is available under Apache Licence v2.0.