Sommario:
- Passaggio 1: dipendenze
- Passaggio 2: configurare i valori di input MIDI
- Passaggio 3: aggiungi cartelle aggiuntive con campioni
- Passaggio 4: aggiungere e configurare campioni aggiuntivi all'interno di nuove cartelle
- Passaggio 5: riferimento al tastierino numerico
Video: Drum Machine Raspberry Pi: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 09:59
Sequencer di esempio, tramite un Raspberry Pi + Python.
Il sequencer ha 4 polifonie e consente all'utente di memorizzare e selezionare 6 diverse sequenze che possono alternare in tempo reale e supporta la possibilità di cambiare tra diversi campioni.
Ho scritto lo script in un modo totalmente utilizzabile con qualsiasi controller MIDI e suoni. Uso 18 diversi banchi di suoni, 16 campioni ciascuno, tuttavia aggiungere o sottrarre banchi e campioni è facile e non richiede molte modifiche. Se hai problemi mandami una mail: [email protected]
Trova il codice su GitHub all'indirizzo:
Per favore fatemi sapere se lo usate, e soprattutto se ci fate un video!
Passaggio 1: dipendenze
Questo programma richiede i seguenti moduli Python (non integrati):
medio
pygame
insensibile
Tuttavia, Mido genera alcune complicazioni poiché Mido stesso richiede alcune dipendenze. Per assicurarti che vengano installati tutti, digita i seguenti comandi nel terminale del tuo Raspberry Pi (omettendo "$") e tutto andrà bene. Gli altri moduli possono essere installati normalmente.
$ sudo apt-get update
$ sudo apt-get install build-essential
$ sudo apt-get install libasound-dev o 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 mid
Passaggio 2: configurare i valori di input MIDI
All'interno dello script Python principale esiste un array chiamato noteList che comprende 16 interi (riga 165). Questi sono i valori delle note MIDI che il nostro controller invia al Pi per attivare i suoni. Ogni controller midi è diverso, quindi, a meno che tu non abbia anche un Akai LPD8, molto probabilmente dovrai modificare questi valori in modo che corrispondano al tuo dispositivo.
Il repository Github include anche un altro script chiamato "midihelp.py" creato appositamente per questo scopo! Tutto ciò che fa è stampare i valori di input dal primo controller MIDI che il computer riconosce sulla console. Tutto quello che dovrai fare è sostituire questi valori nell'array se differiscono da quelli inclusi in noteList.
L'ordine delle note è anche correlato a quale effetto sonoro viene riprodotto per cartella, quindi tienilo a mente.
Passaggio 3: aggiungi cartelle aggiuntive con campioni
I kit di esempio all'interno dello script vengono archiviati tramite cartelle nella stessa directory, imposta esattamente come si trova il kit 808 all'interno del file GitHub. In questo modo posso avere tutti i tipi di set di campioni diversi archiviati in cartelle che possono essere facilmente organizzate e sostituite.
L'unica cosa da cambiare nello script stesso è la variabile foldNum che dice allo script quante cartelle di campioni ci sono. Attualmente lo script ha foldNum impostato su uno perché c'è solo una sottocartella nella stessa directory (il kit 808). Il numero massimo di cartelle che lo script può gestire al momento è 18, che è il numero che sto usando, tuttavia è abbastanza banale modifica questo, fammi sapere se hai bisogno di aiuto.
I nomi delle cartelle non hanno molta importanza (purché siano tutti diversi) poiché lo script legge semplicemente la quantità di cartelle nella stessa directory e acquisisce i percorsi in quel modo. Tuttavia, i nomi dei file stessi sono importanti, ne parleremo più nel prossimo passaggio.
Passaggio 4: aggiungere e configurare campioni aggiuntivi all'interno di nuove cartelle
I suoni vengono caricati nel campionatore tramite cartelle nella stessa directory contenenti file.wav con nomi numerati tra 0-15. Vedere la cartella 808 inclusa per un esempio. OGNI sottocartella con i campioni dovrebbe apparire identica l'una all'altra.
L'indice degli ingressi MIDI nell'array noteList corrisponde esattamente al nome del file.wav.
Per esempio:
- quando si attiva la nota MIDI memorizzata in noteList[0] viene riprodotto il file wav 0.wav.
- quando si attiva la nota MIDI memorizzata in noteList[8] viene riprodotto il file wav 8.wav.
L'ho fatto in parte in modo che ogni singolo controller MIDI potesse essere configurato facilmente per lavorare con lo script, e anche in modo da poter estendere o limitare facilmente il campione e il numero di input, nonché organizzare i file e lo script in modo che la cassa i suoni, per esempio, verrebbero sempre salvati come 0.wav e verrebbero attivati dalla prima nota MIDI.
Ho scelto 16 valori in modo un po' arbitrario per corrispondere ai 16 ingressi sul mio controller, quindi se preferisci creare un sequencer con solo 1 campione, o con molti di più, tutto ciò che dovresti fare è numerare i file audio di conseguenza e sottrarre o aggiungere i numeri memorizzati all'interno dell'array noteList da abbinare.
Se il kit 808 incluso funziona correttamente ma hai problemi con i tuoi campioni, molto probabilmente la soluzione sarebbe alterare la frequenza di campionamento dei file in modo che corrisponda alla frequenza di campionamento di 22, 050 kHz di PyGame e alla profondità di bit di 16. Puoi farlo in Audacity o qualsiasi altro software di editing audio. Dovrebbero funzionare perfettamente da lì!
Passaggio 5: riferimento al tastierino numerico
Ok, ci sono molte cose che accadono all'interno del sequencer, più di quanto inizialmente avessi in mente, quindi ho stipato un bel po' su un tastierino numerico per abbinare la maggiore funzionalità. Questo in mente, l'asterisco * e il punto. entrambi funzionano come tasti funzione.
RIFERIMENTO
FUNZIONI PRINCIPALI
[8] - Attiva e disattiva il metronomo
[9] - Attiva e disattiva la modalità di registrazione
[Invio] - Sequenza di riproduzione/pausa
[0] - Elimina nota corrente in sequenza
[Bloc Num e *] - Spegnimento
[Nota MIDI e.] - Non quantizzare ai numeri pari
FUNZIONI TEMPO
[+] - Accelerazione del corso BPM
[-] - BPM di rallentamento della rotta
[+ e *] - Accelera rapidamente i BPM
[- e *] - Rallenta rapidamente i BPM
[+ e.] - Velocità fine BPM
[- e.] - BPM di rallentamento fine
FUNZIONI SEQUENZA
[1-6] Richiamo sequenza 1-6
[1-6 e.] Sequenza di memorizzazione 1-6
[0 e.] Cancella sequenza corrente
MODIFICA DELLE CARTELLE DEI CAMPIONI
[1-9 e *] - Passa a Pacchetto campioni nelle cartelle 1-9
[1-9 e * e.] - Passa al pacchetto campione nelle cartelle 10-18
SUGGERIMENTI SULLA SEQUENZA:
-Cancella la sequenza corrente [0 e.] e salvala in tutte le sequenze che vuoi cancellare dalla memoria.
-Richiamare una sequenza e memorizzarla su un numero diverso per copiarla.
Consigliato:
Drum Machine semplice con Arduino Uno e Mozzi: 4 passaggi
Semplice Drum Machine con Arduino Uno e Mozzi: Vivere in Argentina significa che la posta internazionale verrà rubata o rimarrà bloccata in dogana. Aggiungi la quarantena del Coronavirus e il tuo prossimo progetto sarà limitato a una vecchia scheda Arduino Uno. Buone notizie? Come dice il grande poeta dei Rolling Stones “Time is on m
Micro:bit - Micro Drum Machine: 10 passaggi (con immagini)
Micro:bit - Micro Drum Machine: Questa è una micro:bit micro drum machine, che invece di generare solo il suono, suona effettivamente la batteria. È pesantemente ispirato ai conigli dell'orchestra micro:bit. Mi ci è voluto un po' di tempo per trovare dei solenoidi facili da usare con il mocro:bit
Tamburi / Drum Machine elettrici Makey Makey: 8 passaggi
Tamburi elettrici Makey Makey / Drum Machine: questo tutorial su come costruire un set di batterie elettriche è un ingresso nel concorso Makey Makey. Il materiale varia in base alla disponibilità e alle scelte personali. Il cartone può essere sostituito con materiali più durevoli e stratificato con schiuma/altro per tex
HX1-DM - la drum machine fai-da-te alimentata con Arduino DUE riciclata (realizzata con una Dead Maschine MK2): 4 passaggi
HX1-DM - la drum machine fai-da-te alimentata Arduino DUE upcycled (realizzata con una Dead Maschine MK2): le specifiche. Controller Midi ibrido / drum machine: Arduino DUE powered! 16 pad di rilevamento della velocità con latenza molto bassa 1>ms 8 manopole assegnabili dall'utente a qualsiasi comando Midi #CC Sequencer incorporato a 16 canali (nessun computer necessario!!) Funzione MIDI in/out/thru
Una drum machine spazzatura alimentata da Raspberry Pi: 15 passaggi (con immagini)
Una drum machine spazzatura alimentata da Raspberry Pi: questo Instructable ti mostrerà come realizzare una drum machine robotica alimentata da Raspberry Pi. È davvero un progetto divertente, creativo e interattivo. Ti mostrerò come eseguire i meccanismi interni, ma la batteria vera e propria dipenderà da te, dandoti il