8000 GitHub - neroroxxx/BMC: BMC the Badass MIDI Controller, all-in-one Scalable MIDI Controller library with a companion Desktop/Browser Editor App for Teensy 3.2, 3.5, 3.6, 4.0, 4.1, Micromod
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
/ BMC Public

BMC the Badass MIDI Controller, all-in-one Scalable MIDI Controller library with a companion Desktop/Browser Editor App for Teensy 3.2, 3.5, 3.6, 4.0, 4.1, Micromod

License

Notifications You must be signed in to change notification settings

neroroxxx/BMC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Badass MIDI Controller (BMC)

Official BMC Website @ BadassMIDI.com

BMC 2.0 is Here! πŸš€

For Teensy 3.x, 4.x & Teensy Micromod (BMC now supports some ESP32 boards!)

⚠ BMC 2.0 is NOT compatible with previous versions of BMC!, you will need to create a new config file and backups for older versions are not compatible.

BMC 2.0 is a major re-write of the BMC core. If you're upgrading from an older version, you'll need to create a new config file. Learn more about the changes here.

πŸ“Œ Before proceeding, please review the Installation requirements!

βœ… Download the BMC library directly from the Arduino Library Manager.

πŸ“’ Stay Updated!

πŸ”Ή Follow BMC on Facebook πŸ”Ή Follow BMC on Instagram
πŸ”Ή Watch BMC Videos on YouTube
πŸ”Ή Access the Web Editor (Google Chrome required)


Table of Contents


What is BMC?

BMC (Badass MIDI Controller) is a powerful MIDI controller library designed for Teensy boards (now supporting ESP32!). It comes with a companion editor app that lets you design your MIDI controller’s hardware and UI without writing code.

How It Works

  1. Design Your MIDI Controller πŸ› οΈ
    • Specify buttons, LEDs, potentiometers, encoders, displays, MIDI ports, and more.
    • Configure the UI layout to match your physical hardware setup.
    • Customize the UI elements (e.g., different button styles and colors).
  2. Compile & Upload πŸš€
    • BMC generates a config.h file that defines your controller setup.
    • The library compiles with this config file to enable only the required features.
  3. Edit & Manage πŸŽ›οΈ
    • Use the editor app to modify settings and data in EEPROMβ€”no need to re-upload code!

βœ… No coding required! BMC handles everything behind the scenes.
πŸ’‘ Advanced users can extend functionality using the BMC API.


Supported Boards

  • Teensy Micromod
  • Teensy 4.1
  • Teensy 4.0
  • Teensy 3.6 (⚠ Not recommended for new designs)
  • Teensy 3.5 (⚠ Not recommended for new designs)
  • Teensy 3.2 (⚠ Not recommended for new designs)
  • ✨ NEW! ESP32 Devkit V1 (Beta)
  • ✨ NEW! SparkFun ESP32 (Beta)
  • ✨ NEW! ESP32-S2 Devkit(Beta)
  • ✨ NEW! ESP32-S3 Devkit (Beta)

ESP32 Support

BMC now supports multiple ESP32 models, including models with OTG USB all are currently in Beta.

  • ESP32 (Original)
    • ❌ No native USB MIDI
    • βœ… BLE MIDI only (enabled automatically)
  • ESP32-S2 / ESP32-S3
    • βœ… Native USB MIDI support (enabled automatically)
    • βœ… BLE MIDI also enabled automatically
  • On ESP32 (original), BLE MIDI replaces USB MIDI.
  • On ESP32-S2/S3, USB MIDI works as expected, and BLE MIDI is also available.
  • BLE MIDI is always enabled, regardless of variant.
  • Only 2 serial ports are available on all ESP32 boards.
  • The Serial Monitor is not available in the Arduino Web Editor or iPad app.
  • Internal EEPROM size is fixed at 4,096 bytes.
  • The BMC for ESP32 Boards package is a modified version of the official ESP32 package:
    • Both packages can coexist.
    • When using a BMC board, a config.h file must exist in the sketch folder.
    • This package includes:
  • When selecting an ESP32-S2 or ESP32-S3 board from the BMC for ESP32 Boards package, all necessary USB MIDI settings are automatically configured.
  • All BMC features are currently Supported on ESP32.

Key Features

βœ… MIDI Communication

  • USB & USB Host MIDI support for controlling DAWs and MIDI apps (Teensy Only).
  • Up to 4 Serial MIDI Ports (1 on ESP32) for legacy devices.
  • Bluetooth Low Energy (BLE) MIDI with added MIDIBLE module (always available on ESP32) βœ… Automatic Hardware Management
  • Reads buttons, encoders, pots, LEDs, and displays without extra coding. βœ… EEPROM Handling
  • Supports built-in EEPROM, external I2C EEPROM (24LC256), or built-in SD Card Reader. βœ… MIDI Sync
  • Syncs with Fractal Axe FX II, AX8, Logic Pro, and more!

Documentation

For complete documentation, visit:
πŸ“Œ BMC Documentation


BMC Editor App

πŸŽ‰ Get the BMC Editor App for iPad! πŸŽ‰

Description

Purchasing the app supports BMC development! ❀️

BMC Editor Preview

Creating a layout that matches your hardware is easy!

BMC Editor Preview


Support BMC Development

Help improve BMC by purchasing MIDI modules & accessories at BadassMIDI.com!

BadassMIDI.com


Installation

πŸ“Œ Follow the installation guide here:
Installing Teensyduino & BMC on Arduino 2.0


Library Structure & Coding Style

βœ… Macros: Prefixed with BMC_, uppercase with underscores.

#define BMC_MIDI_CONTROL_CHANGE 0xB0

βœ… Class Naming: Prefixed with BMC, using camelCase.

BMCMidi, BMCTimer, BMCFlags, BMCMidiMessage

βœ… Struct Naming: Prefixed with bmcStore.

bmcStore, bmcStoreGlobalCustomSysEx

βœ… Default API Initialization:

// Creates an instance of BMCApi named bmc
BMC_DEFAULT();
// Equivalent to:
BMCApi bmc = BMCApi();

βœ… The only code your Sketch needs!:

#include <BMC.h>

BMC_DEFAULT();

void setup(){
  bmc.begin();
}

void loop(){
  bmc.update();
}

About BMC

BMC started in 2017 as a custom MIDI controller project for a Fractal AX8 guitar processor. After struggling with Arduino libraries, the need for an easy-to-use editor app became clear.

πŸ’‘ Why Teensy?
Teensy boards were the perfect solution due to their built-in USB MIDI support and superior performance compared to standard Arduinos.

Since then, BMC has evolved into a powerful no-code MIDI controller framework that saves time and effort, letting users focus on music instead of programming!


Contribute to BMC

Are you a C++ programmer? Want to improve BMC? Contact me here: RoxXxtar Contact Page

πŸ’‘ HUI Control: If you have experience with HUI MIDI Control, let’s collaborate! Email me at RoxXxtar Contact Page.

πŸ“Œ More Info & Web Editor: RoxXxtar.com/BMC


License

MIT License
See the LICENSE file for details.

About

BMC the Badass MIDI Controller, all-in-one Scalable MIDI Controller library with a companion Desktop/Browser Editor App for Teensy 3.2, 3.5, 3.6, 4.0, 4.1, Micromod

Topics

Resources

License

Stars

Watchers

Forks

0