Skip to content

Cortex-M4 based Musical Instrument Digital Interface project

License

Notifications You must be signed in to change notification settings

Soberat/MIDI-Controller

Repository files navigation

MIDI-Controller

Cortex-M4 based Musical Instrument Digital Interface project
See this for an updated version.

Presentation video (in Polish): Video

Authors: Mirosław Wiącek - @Soberat
Łukasz Kowalczyk - @lucas6smith

Any updates to this project will be located in Project Updates.md file

alt text

This project is based around a Teensy 3.2 - a Cortex-M4 equipped board in a very small form factor. It has multiple features, including:

  • native USB MIDI support including up to 16 virtual cables (essentially 16 virtual devices),
  • a hardware I2S interface for 2-channel USB audio,
  • 64K of RAM allowing us to easily drive 2 OLED I2C displays,
  • a clock as fast as 120MHz.

All of those features and more allow us to create a high performance, low latency MIDI controller without compromises. It will be used with Traktor Pro 3, a DJing program described in Traktor Pro Overview.md

We'll be using the Control Surface library licensed under GPL-3.0 License because of its' capabilities related to reading System Exclusive Messages - a protocol specific message carrying information different than typical MIDI message - in our case it will carry information about music loaded in the given deck like artist, title, time, beats per minute (BPM).

Roadmap:

  • Implement basic input functionality - potentiometers, buttons and rotary encoders,
  • Add WS2812 LEDs as outputs,
  • Implement display functionality,
  • Debug protocol described in MIDI Protocol.md
  • Implement USB audio interface functionality using I2S,
  • Verify full project functionality

Parts used:

  • 2 SSD1306 OLED displays:

SSD1306

  • TCA9548A I2C multiplexer (required due to displays using the same address):

TCA9548A

  • CD74HC4067 multiplexer due to large amount of inputs:

CD74HC4067

  • PCM5102 - an I2S audio interface

PCM5102

  • WS2812 addressable RGB LEDs in two forms - either single LED or 8:

WS2812 1x

WS2812 8x

  • assorted tactile buttons, potentiometers and rotary encoders as typical input devices

About

Cortex-M4 based Musical Instrument Digital Interface project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages