Skip to content

Software and hardware platform for simpler building of MIDI controllers.

License

Notifications You must be signed in to change notification settings

js-midi/OpenDeck

 
 

Repository files navigation

OpenDeck MIDI Platform

OpenDeck is a platform suited both for prototyping and developing custom MIDI controllers with easy to use web configurator. 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. The platform also supports DMX output so it can be used as DMX interface through usbserial plugin in Open Lighting Architecture.

Features

The following components are supported:

  • Buttons
  • Encoders
  • LEDs (single color or RGB)
  • Potentiometers
  • FSRs (force-sensitive resistors)
  • LCD/OLED displays
  • Touchscreen displays (Nextion and Viewtech/Stone)

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 etc. Full list of supported features can be found here.

Web configurator

Click the image to watch the video

Watch the video

Source code for OpenDeck web configurator is located in OpenDeckUI repository. It's written by wyrd-code. Web configurator can run in any browser which supports WebMIDI specification (Chromium based browsers only). 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 stable version of the UI is always available on this link.

Supported boards

OpenDeck firmware is compatible with official OpenDeck board, as well as various other boards:

  • Arduino Mega2560
  • Teensy++ 2.0
  • STM32F4 Discovery
  • STM32F401 Black Pill
  • STM32F411 Black Pill

Support for custom boards can be easily added using YAML descriptors.

Documentation

Available on dedicated Wiki section.

Discussion

Need help? Want to show off your OpenDeck based builds? Head over to Discussions!

Credits

Licence

Most of the code is available under Apache Licence v2.0, with the following exceptions:

  • src/board/arch/stm32/gen: Code licenced by ST. Depending on the source file, the licence is mostly BSD 3-Clause or ST Ultimate Liberty license. Check individual files for details.
  • modules:
    • avr-libstdcpp: GNU GPL v3 or later with GCC Runtime Library Exception 3.1
    • core: MIT
    • dbms: MIT
    • dmxusb: MIT
    • EmuEEPROM: MIT
    • lufa: Modified MIT, see modules/lufa/LUFA/Licence.txt for details
    • midi: MIT
    • sysex: MIT
    • u8g2: Two-clause BSD
    • unity: MIT

About

Software and hardware platform for simpler building of MIDI controllers.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 88.9%
  • C++ 9.2%
  • Other 1.9%