Skip to content

Repository files navigation

MCL

A high-performance MIDI sequencer, controller and live performance system. Designed to for use with the Machinedrum and other MIDI devices.

Visit the releases page for:

  • Latest firmware binaries
  • User documentation
  • Installation instructions

Documentation

The MCL User Documentation is available online.

The editable manual lives in docs/manual. It is written in Markdown and built into a static GitHub Pages site with:

python3 tools/docs/validate_manual.py
python3 tools/docs/build_manual_site.py

Platform Support

MCL can now be built to run across different hardware platforms using PlatformIO.

Current platforms:

  • AVR - MegaCommand DIY and MegaCMD devices
  • RP2350 - TBD
  • RP2040

Upgrade MCL

  1. Install PlatformIO Core

    pip install platformio
  2. Clone the Repository

    First, you need a local copy of the MCL repository. Open your terminal, navigate to a directory of your choice, and run the following commands:

    git clone https://github.com/jmamma/MCL.git
    cd MCL
    git pull origin master
  3. Place the MegaCommand in to OS UPGRADE mode

    Hold down the < Page > button when powering-on the MegaCommand to enter the boot menu.

    Select "OS UPGRADE" to place the MegaCommand in to serial mode.

  4. Run the Upload Command

    Choose the command that corresponds to your hardware:

    MegaCommand DIY:

    platformio run -t nobuild -t upload -e megacommand_latest

    MegaCMD:

    platformio run -t nobuild -t upload -e megacmd_latest

    When you execute one of these commands, a script automatically performs the following steps:

    • Fetches the latest MCL release manifest from this respostiory.
    • Downloads the latest firmware file for your selected device.
    • Flashes the downloaded firmware onto your device.

    Should platformio not detect the correct upload port you can specify it like so:

    platformio run -t nobuild -t upload --upload-port <port> -e <environment>
    

Building from Source Code

Building and uploading MCL from Source:

MegaCommand DIY:

platformio run -e megacommand -t upload

MegaCMD:

platformio run -e megacmd -t upload

TBD:

platformio run -e tbd -t upload

Architecture

.
├── art              Pixel-art and animations
├── build            Release manifest and compiled firmwares. 
├── include          Header files required for building specific libraries
├── resource         Compressable C++ data structures used by MCL
│
├── src
│   ├── mcl          MCL source code
│   ├── platform     Platform specific code
│   └── resources    Compressed C++ data structures
│
└── tools            Various tools for building the firmware

The AVR version is built on top of the MegaCore Arduino core, and is extended for relevant platforms in src/platform/avr.

The RP2040/RP2350 version is built on top of the arduino-pico core, and is extended for supported hardware in src/platform/rp2040.

Libraries

MCL builds upon proven open-source libraries:

About

MCL firmware for the MegaCommand MIDI Controller.

Resources

Stars

77 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages