https://github.com/redraw/midimatrix
midi grid oled monitor
https://github.com/redraw/midimatrix
Last synced: 3 months ago
JSON representation
midi grid oled monitor
- Host: GitHub
- URL: https://github.com/redraw/midimatrix
- Owner: redraw
- Created: 2022-07-07T03:15:39.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2022-10-07T03:05:45.000Z (over 3 years ago)
- Last Synced: 2025-10-25T06:28:40.357Z (8 months ago)
- Language: Python
- Size: 7.81 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# midimatrix

This tool for Raspberry Pi monitors MIDI connections, and displays them in a OLED screen.
The grid shows MIDI outputs as rows, and MIDI inputs as columns, ordered in the same way, like a correlation matrix. A cross represents a connection. There are 4 ports max, as that's the max USB ports the RPi has.
## Install
Clone or download the repo as zip package, and run
```
sudo make install
```
## Setup OLED
In my case I'm using a SSD1306 128x64 display, and code is scaled for it.
Enable I2C,
```
sudo raspi-config
```
Go to `Interface Options` -> `I2C`, and turn on. Then connect your OLED screen using the I2C pins. You can read the pinout, and how to verify your device address [here](https://pinout.xyz/pinout/i2c).
If your I2C address is different from `0x3C`, run
```
sudo systemctl edit midimatrix
```
and it will open an editor, add this,
```
[Service]
ExecStart=/usr/bin/midimatrix --oled-i2c-address=03E
```
save, and restart the service
```
sudo systemctl daemon-reload
sudo systemctl restart midimatrix
```
## Add input buttons (optional)
You can wire a button to navigate, and make connections. Default pin is GPIO 26. Follow the steps above to customize the startup params.
Press to move forward, and hold to connect/disconnect ports.
## Help
```
midimatrix --help
```
## Connect MIDI devices
You can just use the `aconnect` ALSA utility,
```bash
# List devices
aconnect -l
# Connect A to B
aconnect A B
# Disconnect B from A
aconnect -d A B
# Disconnect everything
aconnect -x
```
Or install [amidiauto](https://github.com/BlokasLabs/amidiauto) or [amidiminder](https://github.com/mzero/amidiminder), in which you can define rules to connect devices on startup and reconnect devices when available.