Midi Controller mit Raspberry Pi Pico

In diesem Guide lernst du, einfach einen RGB beleuchteten Midi Controller mithilfe eines Raspberry Pi Pico zu bauen.

In der digitalen Musikwelt spielen MIDI-Controller eine zentrale Rolle, und mit ein wenig Bastelfreude kannst auch du dir deinen eigenen Controller erschaffen. Mit diesem praktischen Leitfaden begleite ich dich Schritt für Schritt durch den Aufbau eines MIDI-Controllers unter Verwendung eines Raspberry Pi Pico und eines RGB Keypads. Dieses Projekt bietet dir nicht nur die Möglichkeit, dein Heimstudio zu erweitern, sondern auch die Freude am Selbermachen. Dank dem MIDI-Standard (Musical Instrument Digital Interface) lassen sich elektronische Instrumente ganz einfach miteinander verknüpfen, indem Informationen zwischen den verschiedenen Modulen ausgetauscht werden. Der MIDI-Controller dient dabei als Schnittstelle zwischen Audio-Software und Audio-Hardware. Bei dem kompakten Steuermodul handelt es sich im Grunde genommen um ein simpel aufgebautes Eingabegerät, das über eine Tastatur verfügt. Durch Betätigung der einzelnen Tasten werden MIDI-Signale an ein vorher definiertes Ziel gesendet und verarbeitet. Mit der richtigen Software hast du anschließend die Möglichkeit, die erzeugten Sounds digital zu bearbeiten.

Du würdest gerne selbst mit einem MIDI-Steuergerät experimentieren und dir mit wenigen Handgriffen dein eigenes Home-Studio einrichten? Kein Problem! Wir zeigen dir, wie du dir mithilfe deines Raspberry Pi Pico und eines RGB Keypads im Nu deinen eigenen MIDI-Controller bauen kannst.

Das brauchst du für dein Vorhaben

WARENKORB

Alle für dieses Projekt notwendigen Artikel landen mit einem Klick auf den Button direkt in deinem Warenkorb, sofern sie in unserem Shop verfügbar sind. Kontrolliere daher deinen Warenkorb genau!

MIDI-Controller mit Raspberry Pi Pico bauen: Schritt für Schritt erklärt

  1. Zuallererst installierst du die Entwicklungsumgebung Thonny IDE. Nutze dafür diesen Link.
  2. Als nächstes lötest du die Stiftleisten mithilfe einer Lötstation auf das Board.
  3. Wenn das geschafft ist, schließt du das RGB Keypad an deinen Raspberry Pi Pico an.
  1. Lade nun die CircuitPython Firmware herunter und installiere sie. Wir haben für das Projekt die Version CircuitPython 7.0.0 verwendet. Um die Installation durchzuführen, hältst du die BOOTSEL-Taste gedrückt und schließt gleichzeitig das Micro-USB-Kabel an den Rechner an. Die Firmware legst du in dem Ordner „RPI-RP2“ ab.
  2. Anschließend lädst du die CircuitPython Bibliotheken herunter. Wir nutzen für dieses Projekt das Bundle for Version 7.x.
  3. Wenn der Download beendet ist, entpackst du die ZIP-Datei, öffnest den Ordner /adafruit-circuitpython-bundle-7.x-mpy…/lib und kopierst die Bibliotheken adafruit_bus_device, adafruit_midi und adafruit_dotstar.mpy in den Ordner /CIRCUITPY/lib.
  1. Jetzt öffnest du noch die Datei code.py mit Thonny IDE und kopierst den Code. Lass das Skript ausführen und speichere das Ganze.
  1. Zu guter Letzt testest du deinen MIDI-Controller. Starte dazu das Tool Piano 10 und klicke auf GENERAL MIDI. Aktiviere den MIDI Support und wähle als MIDI Input die Option „CircuitPython usb_midi.ports[*]“.
import time
import board
import busio
import usb_midi

import adafruit_midi
from adafruit_midi.note_off import NoteOff
from adafruit_midi.note_on import NoteOn
from adafruit_bus_device.i2c_device import I2CDevice
import adafruit_dotstar

from digitalio import DigitalInOut, Direction, Pull


# RGB MIDI controller example for Pimoroni RGB Keypad for Raspberry Pi Pico

# Prerequisites
#
# Requires Adafruit CircuitPython: https://learn.adafruit.com/getting-started-with-raspberry-pi-pico-circuitpython
#
# Also requires the following CircuitPython libs: adafruit_midi, adafruit_bus_device, adafruit_dotstar
# (drop them into the lib folder)
#
# Save this code in code.py on your Raspberry Pi Pico CIRCUITPY drive


# Pull CS pin low to enable level shifter
cs = DigitalInOut(board.GP17)
cs.direction = Direction.OUTPUT
cs.value = 0

# Set up APA102 pixels
num_pixels = 16
pixels = adafruit_dotstar.DotStar(board.GP18, board.GP19, num_pixels, brightness=0.1, auto_write=True)

# Set up I2C for IO expander (addr: 0x20)
i2c = busio.I2C(board.GP5, board.GP4)
device = I2CDevice(i2c, 0x20)

# Set USB MIDI up on channel 0
midi = adafruit_midi.MIDI(midi_out=usb_midi.ports[1], out_channel=0)

# Function to map 0-255 to position on colour wheel
def colourwheel(pos):
    if pos < 0 or pos > 255:
        return (0, 0, 0)
    if pos < 85:
        return (255 - pos * 3, pos * 3, 0)
    if pos < 170:
        pos -= 85
        return (0, 255 - pos * 3, pos * 3)
    pos -= 170
    return (pos * 3, 0, 255 - pos * 3)

# List to store the button states
held = [0] * 16

# Keep reading button states, setting pixels, sending notes
while True:
    with device:
        # Read from IO expander, 2 bytes (8 bits) correspond to the 16 buttons
        device.write(bytes([0x0]))
        result = bytearray(2)
        device.readinto(result)
        b = result[0] | result[1] << 8

        # Loop through the buttons
        for i in range(16):
            if not (1 << i) & b:  # Pressed state
                pixels[i] = colourwheel(i * 16)  # Map pixel index to 0-255 range
                if not held[i]:
                    midi.send(NoteOn(36 + i, 100))  # If not already held, then send note
                held[i] = 1
            else:  # Released state
                pixels[i] = (0, 0, 0)  # Turn pixel off
                midi.send(NoteOff(32 + i, 0))  # If not held, send note off
                held[i] = 0  # Set held state to off

Falls du zusätzliche Inspiration brauchst, findest du hier Projektideen.

Abschlussgedanken zum MidiController

Mit diesen Schritten hast du nicht nur einen funktionalen MIDI-Controller erschaffen, sondern auch einen visuell beeindruckenden Begleiter für deine musikalischen Abenteuer. Dieser Leitfaden ist dein Sprungbrett in die Welt der elektronischen Musikinstrumente und eröffnet dir neue Wege, deine musikalischen Ideen auszudrücken. Zögere nicht, mit dem Code zu experimentieren und ihn an deine Wünsche anzupassen. Es ist Zeit, deine Kreativität freien Lauf zu lassen und die Musik spielen zu lassen!

Die mobile Version verlassen