

MidiMood (tht)
This repository contains the code for a custom MIDI controller project called MidiMood, built using an ATmega32U4 microcontroller (or similar).
- Size
- 422.4 × 118.2 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 53
- Nets
- 55
- Pads
- 249
- Tracks, vias
- 505, 60
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 5 (file 20171130)
- Created
- 17 Sep 2020
- Updated
- 3 Sep 2024
Overview
MidiMood (tht) is an open-source printed circuit board by silveirago, from the silveirago/MidiMood repository on GitHub. It is a 2-layer board of 422.4 × 118.2 mm with 53 parts on 55 nets, routed with 505 tracks and 60 vias.
It is built around the CD74HC4067M. Its parts include 11 switches, 2 capacitors, 1 resistor, 1 IC and 1 diode. It belongs with the AVR (ATmega, ATtiny) boards of this library.
Main components
1README
README.mdMidiMood
For a detailed tutorial, visit:
- Making Music with Arduino: https://go.musiconerd.com/making-music-with-arduino
- Curso Fazendo Música com Arduino em Português: https://go.musiconerd.com/curso-completo
- Build process video: https://youtu.be/aLhOO-UiMg4
This repository contains the code for a custom MIDI controller project called MidiMood, built using an ATmega32U4 microcontroller (or similar). The project is designed to handle potentiometers, buttons, and other controls to send MIDI messages via USB, BLE, or standard MIDI protocols.
Table of Contents
Overview
MidiMood is a comprehensive MIDI controller implementation that supports various input methods (buttons, potentiometers, encoders) and output methods (USB MIDI, BLE MIDI). The controller is designed to be highly customizable, supporting multiple microcontroller platforms including ATmega32U4, ATmega328, and Teensy.
Features
- USB MIDI Support: Send and receive MIDI messages over USB.
- BLE MIDI Support: Use Bluetooth Low Energy (BLE) for wireless MIDI communication.
- Potentiometer and Button Handling: Capture input from potentiometers and buttons and convert them into MIDI messages.
- Multiplexer Support: Extend the number of inputs using multiplexers.
- Debugging Support: Debugging messages can be enabled via serial communication.
- Multi-platform: Supports ATmega32U4, ATmega328, and Teensy microcontrollers.
Files Description
- _MidiMood.ino: The main Arduino sketch that initializes the MIDI controller and runs the main loop.
- A_POTENTIOMETERS.ino: Contains the logic for reading potentiometer values and converting them into MIDI Control Change messages.
- B_BUTTONS.ino: Handles the button inputs, converting them into MIDI Note On/Off or Control Change messages.
- FUNCTIONS.ino: Helper functions used throughout the project, including handling MIDI messages and other utility functions.
- LOOP.ino: The main loop where the program checks for inputs and sends out MIDI messages.
- MACKIE.h: Defines constants for Mackie Control Universal (MCU) protocol, used for controlling DAWs.
- Z_ATMEGA32U4.ino: Microcontroller-specific setup code for ATmega32U4-based boards.
- Z_SETUP.ino: General setup code, initializing pins, and configuring input/output modes.
Material
- Arduino Pro Micro: https://amzn.to/2Vcz3Nz
- Wires: https://amzn.to/2xugvPF
- Bare Copper Wire (optional) 18-24-gauge: https://amzn.to/2FVuDpe
- 26 Rotary potentiometer b10k: https://amzn.to/3ckRKUY
- 26 Knobs
- Spacers M3 35mm: https://amzn.to/2z15BkN
- M3 screws: https://amzn.to/2RHtfJw
- Multiplexer CD4067: https://amzn.to/303jJVe
- 11 Toggle switch: https://amzn.to/3hDmORR
- 1 led
- 1 led support
- 1 resistor 1k ohm
Setup Instructions
1. Clone the Repository
git clone https://github.com/yourusername/midi-controller-project.git
cd midi-controller-project2. Install Arduino IDE
Make sure you have the Arduino IDE installed on your computer. You can download it from the official website.
3. Open the Project
Open the _MidiMood.ino file in the Arduino IDE. This file serves as the entry point to the project.
4. Select Your Board
In the Arduino IDE, select the appropriate board based on your microcontroller:
- For ATmega32U4 boards (e.g., Arduino Leonardo), select Arduino Leonardo.
- For ATmega328 boards (e.g., Arduino Uno), select Arduino Uno.
- For Teensy boards, select the correct Teensy model.
5. Upload the Code
Connect your microcontroller to your computer via USB and upload the code using the Upload button in the Arduino IDE.
Dependencies
- ResponsiveAnalogRead: Library for smoothing analog readings from potentiometers.
- MIDI Library: To handle MIDI communication over USB and serial.
- BLE MIDI: For Bluetooth MIDI communication (if using BLE).
You can install these libraries using the Arduino Library Manager.
Usage
Once the code is uploaded, your MIDI controller will be recognized by your computer or mobile device as a MIDI device. You can start using it to send MIDI messages to your DAW or other MIDI-compatible software.
Debugging
If you want to see debugging messages, enable the DEBUG flag in the code. This will allow you to monitor the MIDI messages and other details via the serial monitor in the Arduino IDE.
Parts
53| Qty | Value | Footprint | References |
|---|---|---|---|
| 26 | 10k | Potentiometer_THT:Potentiometer_Alpha_RD901F-40-00D_Single_Vertical_CircularHoles-noSilk | pot1, pot2, pot10, pot11, pot12, pot13, pot14, pot15, pot16, pot17, pot18, pot19, pot20, pot21, pot22, pot23 +10 |
| 11 | SW | Toggle Switch:Toggle switch small | SW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8, SW9, SW10, SW11 |
| 2 | 100nF | Capacitor_THT:C_Disc_D3.0mm_W1.6mm_P2.50mm | C1, C2 |
| 2 | CD74HC4067M | Package_SO:SOIC-24W_7.5x15.4mm_P1.27mm | 4067_1, 4067_2 |
| 1 | 220OHMS | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R1 |
| 1 | Arduino_Pro_Micro | promicro:ProMicro | U3 |
| 1 | Connector | Connector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_Vertical | J1 |
| 1 | LED | LED_THT:LED_D5.0mm | D1 |
| 1 | LOGO | Silks:MidiMood panel 2 | G*** |
The 46 most common of 53 parts.
Questions
How big is the MidiMood (tht) PCB?
It measures 422.4 × 118.2 mm and has 2 copper layers, 1.6 mm thick.
What parts does the MidiMood (tht) use?
53 parts, built around the CD74HC4067M. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the MidiMood (tht) KiCad files?
From the silveirago/MidiMood repository on GitHub, at the commit this page was made from: the board is PCB (not tested)/MidiMood (Kicad files)/MidiMood (tht).kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the MidiMood (tht) design in my own project?
Its repository states no licence, so its author keeps all rights: ask silveirago before reusing the design.
Similar boards
- 2 layers312 × 140 mm

- 2 layers248.9 × 120.7 mm

16nx
16n-faderbank/16nx
16nx is a controller for musical instruments. Sixteen faders,MIDI over USB and jack, CV out, and I2C out. Based around RP2040.
171 parts76 - 4 layers100 × 100 mm

OPDM
brenonsantos/OpenPDM
OpenPDM is an open-source programable Power Distribution Module for your car
156 parts75MIT - 2 layers215.9 × 101.6 mm

- 2 layers152.4 × 95.3 mm

- 2 layers100 × 100 mm

Eavesdrum module
tobigun/EavesDrum
EavesDrum is an e-drum trigger module project, designed for musicians and makers. It allows you to connect drum pads or piezo triggers and converts their signals into MIDI events.
103 parts25GPL-3.0 - 4 layers33 × 65.5 mm

OM FlexGrid Rigid PCB
Open-Muscle/OpenMuscle-FlexGrid
60-sensor wearable with flexible PCB and pressure matrix
65 parts19CERN-OHL-S-2.0 - 2 layers110 × 75 mm

Shark bait remote
idlehandsdev/shark_bait
The files and firmware for the Shark Bait wireless pumping system.
65 parts13