Inhaltsverzeichnis:

Raspberry Pi Drumcomputer - Gunook
Raspberry Pi Drumcomputer - Gunook

Video: Raspberry Pi Drumcomputer - Gunook

Video: Raspberry Pi Drumcomputer - Gunook
Video: Raspberry Pi Looper/synth/drum thing 2024, November
Anonim
Raspberry Pi Drumcomputer
Raspberry Pi Drumcomputer

Sample Sequencer, über einen Raspberry Pi + Python.

Der Sequenzer verfügt über 4 Polyphonie und ermöglicht es dem Benutzer, 6 verschiedene Sequenzen zu speichern und abzurufen, zwischen denen er in Echtzeit wechseln kann, und unterstützt die Möglichkeit, zwischen verschiedenen Samples zu wechseln.

Ich habe das Skript so geschrieben, dass es mit wirklich jedem MIDI-Controller und -Sounds vollständig bedienbar ist. Ich verwende 18 verschiedene Soundbänke mit jeweils 16 Samples, aber das Hinzufügen oder Subtrahieren von Bänken und Samples ist einfach und erfordert nicht viele Änderungen. Wenn Sie Probleme haben, senden Sie mir eine E-Mail: [email protected]

Den Code finden Sie auf GitHub unter:

Bitte lassen Sie es mich wissen, wenn Sie es verwenden, und vor allem, wenn Sie ein Video damit machen!

Schritt 1: Abhängigkeiten

Dieses Programm erfordert die folgenden (nicht integrierten) Python-Module:

Mido

Pygame

numpy

Mido wirft jedoch einige Komplikationen auf, da Mido selbst einige Abhängigkeiten erfordert. Um sicherzustellen, dass sie alle installiert werden, geben Sie einfach die folgenden Befehle in das Terminal Ihres Raspberry Pi ein (ohne das '$') und alles wird gut. Die anderen Module können normal installiert werden.

$ sudo apt-get update

$ sudo apt-get install build-essential

$ sudo apt-get install libasound-dev oder libasound2-dev

$ sudo apt-get install libjack0

$ sudo apt-get install libjack-dev

$ sudo apt-get install python-pip

$ sudo apt-get install python-dev

$ sudo pip install python-rtmidi

$ sudo pip install mido

Schritt 2: Midi-Eingangswerte konfigurieren

Midi-Eingangswerte konfigurieren
Midi-Eingangswerte konfigurieren

Innerhalb des Python-Hauptskripts existiert ein Array namens noteList, das aus 16 Integern besteht (Zeile 165). Dies sind die MIDI-Notenwerte, die unser Controller an den Pi sendet, um die Sounds auszulösen. Jeder Midi-Controller ist jedoch anders. Wenn Sie also nicht auch einen Akai LPD8 haben, müssen Sie diese Werte höchstwahrscheinlich an Ihr Gerät anpassen.

Das Github-Repository enthält auch ein weiteres Skript namens "midihelp.py", das speziell für diesen Zweck erstellt wurde! Alles, was es tut, ist, die Eingabewerte des ersten MIDI-Controllers, den der Computer erkennt, an die Konsole zu drucken. Sie müssen lediglich diese Werte im Array ersetzen, wenn sie sich von denen in noteList unterscheiden.

Die Reihenfolge der Noten hängt auch davon ab, welcher Soundeffekt pro Ordner gespielt wird, also denken Sie auch daran.

Schritt 3: Hinzufügen zusätzlicher Ordner mit Beispielen

Beispielkits innerhalb des Skripts werden über Ordner im selben Verzeichnis gespeichert, und richten Sie genau so ein, wie das 808-Kit in der GitHub-Datei ist. Auf diese Weise kann ich alle möglichen verschiedenen Sample-Sets in Ordnern speichern, die leicht organisiert und ersetzt werden können.

Das einzige, was im Skript selbst geändert werden muss, ist die Variable foldNum, die dem Skript nur mitteilt, wie viele Ordner mit Samples es gibt. Derzeit hat das Skript foldNum auf eins gesetzt, da es nur einen Unterordner im selben Verzeichnis gibt (das 808-Kit). Die maximale Anzahl von Ordnern, die das Skript derzeit verarbeiten kann, sind 18, so viele ich verwende, aber es ist ziemlich trivial zu Ändern Sie dies, lassen Sie es mich wissen, wenn Sie Hilfe benötigen.

Die Namen der Ordner spielen keine Rolle (solange sie alle unterschiedlich sind), da das Skript nur die Anzahl der Ordner im selben Verzeichnis liest und die Pfade auf diese Weise erfasst. Die Namen der Dateien selbst sind jedoch wichtig, dazu mehr im nächsten Schritt.

Schritt 4: Hinzufügen und Konfigurieren zusätzlicher Beispiele in neuen Ordnern

Hinzufügen und Konfigurieren zusätzlicher Beispiele in neuen Ordnern
Hinzufügen und Konfigurieren zusätzlicher Beispiele in neuen Ordnern

Sounds werden in den Sampler über Ordner im selben Verzeichnis geladen, die.wav-Dateien mit nummerierten Namen zwischen 0-15 enthalten. Ein Beispiel dafür finden Sie im mitgelieferten 808-Ordner. JEDER Unterordner mit Beispielen sollte identisch aussehen.

Der Index der MIDI-Eingänge im Array noteList entspricht genau dem.wav-Dateinamen.

Zum Beispiel:

  • Wenn Sie die in noteList[0] gespeicherte MIDI-Note triggern, wird die wav-Datei 0.wav abgespielt.
  • Wenn Sie die in noteList[8] gespeicherte MIDI-Note triggern, wird die wav-Datei 8.wav abgespielt.

Ich tat dies zum Teil, damit jeder einzelne MIDI-Controller leicht für die Arbeit mit dem Skript eingerichtet werden konnte, und auch, um die Sample- und Eingangsanzahl einfach zu erweitern oder zu begrenzen sowie die Dateien und das Skript so zu organisieren, dass die Kickdrum funktioniert Sounds würden zum Beispiel immer als 0.wav gespeichert und von der ersten MIDI-Note getriggert.

Ich habe 16 Werte etwas willkürlich gewählt, um den 16 Eingängen meines Controllers zu entsprechen. Wenn Sie also lieber einen Sequenzer mit nur 1 Sample oder mit vielen mehr erstellen möchten, müssen Sie nur die Audiodateien entsprechend nummerieren und subtrahieren oder addieren Sie die im noteList-Array gespeicherten Zahlen, um sie abzugleichen.

Wenn das mitgelieferte 808-Kit ordnungsgemäß funktioniert, Sie jedoch Probleme mit Ihren eigenen Samples haben, besteht die Lösung höchstwahrscheinlich darin, die Sample-Rate der Dateien so zu ändern, dass sie der Sample-Rate von 22.050 kHz und der Bit-Tiefe von 16 von PyGame entspricht. Sie können dies in Audacity oder. tun jede andere Audiobearbeitungssoftware. Von da an sollten sie perfekt funktionieren!

Schritt 5: Nummernblock-Referenz

Ok, im Sequenzer passiert viel, mehr als ich ursprünglich gedacht hatte, also habe ich einiges auf einen Nummernblock gestopft, um der erweiterten Funktionalität gerecht zu werden. Dies im Hinterkopf, den Asterisk* und den Punkt. beide fungieren als Funktionstasten.

HINWEIS

HAUPTFUNKTIONEN

[8] - Metronom ein- und ausschalten

[9] - Aufnahmemodus ein- und ausschalten

[Enter] - Wiedergabe/Pause-Sequenz

[0] - Aktuelle Note in Sequenz löschen

[Num Lock und *] - Herunterfahren

[MIDI Note und.] - Quantisieren Sie nicht zu geraden Zahlen

TEMPO-FUNKTIONEN

[+] - Kursbeschleunigung BPM

[-] - Kurs verlangsamen BPM

[+ und *] - BPM schnell beschleunigen

[- und *] - Schnelle Verlangsamung der BPM

[+ und.] - Feinbeschleunigung BPM

[- und.] - Fein verlangsamen BPM

SEQUENZFUNKTIONEN

[1-6] Abrufsequenz 1-6

[1-6 und.] Speichersequenz 1-6

[0 und.] Aktuelle Sequenz löschen

ÄNDERN VON BEISPIELORDNERN

[1-9 und *] - Wechseln Sie zum Sample Pack in den Ordnern 1-9

[1-9 und * und.] - Wechseln Sie zum Sample Pack in den Ordnern 10-18

SEQUENZ-TIPPS:

-Löschen Sie die aktuelle Sequenz [0 und.] und speichern Sie sie in allen Sequenzen, die Sie aus dem Speicher löschen möchten.

- Rufen Sie eine Sequenz auf und speichern Sie sie unter einer anderen Nummer, um sie zu kopieren.

Empfohlen: