Πίνακας περιεχομένων:

Raspberry Pi Drum Machine: 5 Βήματα
Raspberry Pi Drum Machine: 5 Βήματα

Βίντεο: Raspberry Pi Drum Machine: 5 Βήματα

Βίντεο: Raspberry Pi Drum Machine: 5 Βήματα
Βίντεο: Драм-секвенсор Arduino: 8 дорожек, 16 шагов на такт, 8 тактов на паттерн 2024, Ιούλιος
Anonim
Raspberry Pi Drum Machine
Raspberry Pi Drum Machine

Sample Sequencer, μέσω Raspberry Pi + Python.

Ο διαχωριστής έχει 4 πολυφωνίες και επιτρέπει στο χρήστη να αποθηκεύει και να υποδεικνύει 6 διαφορετικές ακολουθίες που μπορούν να εναλλάσσονται σε πραγματικό χρόνο και υποστηρίζει τη δυνατότητα αλλαγής μεταξύ διαφορετικών δειγμάτων.

Έγραψα το σενάριο με έναν τρόπο που μπορεί να λειτουργήσει πλήρως με οποιοδήποτε χειριστήριο και ήχους MIDI. Χρησιμοποιώ 18 διαφορετικές τράπεζες ήχου, 16 δείγματα το καθένα, ωστόσο η προσθήκη ή η αφαίρεση τραπεζών και δειγμάτων είναι εύκολη και δεν απαιτεί πολλές τροποποιήσεις. Αν έχετε κάποιο πρόβλημα στείλτε μου ένα email: [email protected]

Βρείτε τον κώδικα στο GitHub στη διεύθυνση:

Ενημερώστε με αν το χρησιμοποιείτε, και ειδικά αν κάνετε βίντεο με αυτό!

Βήμα 1: Εξαρτήσεις

Αυτό το πρόγραμμα απαιτεί τις ακόλουθες (μη ενσωματωμένες) ενότητες Python:

mido

pygame

μουδιασμένος

Ωστόσο, το Mido ρίχνει κάποιες επιπλοκές καθώς το ίδιο το Mido απαιτεί μερικές εξαρτήσεις. Για να βεβαιωθείτε ότι έχουν εγκατασταθεί όλα, απλώς πληκτρολογήστε τις ακόλουθες εντολές στο τερματικό του Raspberry Pi (παραλείποντας το '$') και όλα θα πάνε καλά. Οι άλλες μονάδες μπορούν να εγκατασταθούν κανονικά.

$ sudo apt-get ενημέρωση

$ sudo apt-get install build-essential

$ sudo apt-get install libasound-dev ή 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 εγκατάσταση mido

Βήμα 2: Διαμόρφωση τιμών εισαγωγής Midi

Διαμόρφωση τιμών εισαγωγής Midi
Διαμόρφωση τιμών εισαγωγής Midi

Μέσα στο κύριο Python Script υπάρχει ένας πίνακας που ονομάζεται noteList που αποτελείται από 16 ακέραιους αριθμούς (γραμμή 165.) Αυτές είναι οι τιμές σημείωσης MIDI που ο ελεγκτής μας στέλνει στο Pi για να ενεργοποιήσει τους ήχους. Ωστόσο, κάθε midi controller είναι διαφορετικός, οπότε αν δεν έχετε επίσης Akai LPD8, πιθανότατα θα χρειαστεί να αλλάξετε αυτές τις τιμές για να ταιριάζουν με τη συσκευή σας.

Το repo του Github περιλαμβάνει επίσης ένα άλλο σενάριο που ονομάζεται "midihelp.py" που είναι φτιαγμένο ειδικά για αυτόν τον σκοπό! Το μόνο που κάνει είναι να εκτυπώσει τις τιμές εισόδου από τον πρώτο ελεγκτή MIDI που αναγνωρίζει ο υπολογιστής στην κονσόλα. Το μόνο που έχετε να κάνετε είναι να αντικαταστήσετε αυτές τις τιμές στον πίνακα εάν διαφέρουν από αυτές που περιλαμβάνονται στο noteList.

Η σειρά των σημειώσεων συσχετίζεται επίσης με το ποιο ηχητικό εφέ αναπαράγεται ανά φάκελο, οπότε να το έχετε υπόψη σας επίσης.

Βήμα 3: Προσθήκη επιπλέον φακέλων με δείγματα

Τα κιτ δειγμάτων μέσα στο σενάριο αποθηκεύονται μέσω φακέλων στον ίδιο κατάλογο, ρυθμίζοντας ακριβώς πώς βρίσκεται το κιτ 808 στο αρχείο GitHub. Με αυτόν τον τρόπο μπορώ να έχω όλα τα είδη διαφορετικών συνόλων δειγμάτων αποθηκευμένα σε φακέλους που οργανώνονται και αντικαθίστανται εύκολα.

Το μόνο που μπορεί να αλλάξει στο ίδιο το σενάριο είναι η μεταβλητή foldNum η οποία απλώς λέει στο σενάριο πόσους φακέλους δειγμάτων υπάρχουν. Προς το παρόν, το σενάριο έχει foldNum ρυθμισμένο σε ένα επειδή υπάρχει μόνο ένας υποφάκελος στον ίδιο κατάλογο (το κιτ 808.) Οι μέγιστοι φάκελοι που μπορεί να χειριστεί το σενάριο αυτή τη στιγμή είναι 18, δηλαδή πόσους χρησιμοποιώ, ωστόσο είναι αρκετά ασήμαντος αλλάξτε το, ενημερώστε με εάν χρειάζεστε βοήθεια.

Τα ονόματα των φακέλων δεν έχουν πραγματικά σημασία (αρκεί να είναι όλα διαφορετικά) καθώς το Script απλώς διαβάζει τον αριθμό των φακέλων στον ίδιο κατάλογο και πιάνει τις διαδρομές με αυτόν τον τρόπο. Τα ονόματα των ίδιων των αρχείων είναι σημαντικά όμως, περισσότερα για αυτό στο επόμενο βήμα.

Βήμα 4: Προσθήκη και διαμόρφωση πρόσθετων δειγμάτων εντός νέων φακέλων

Προσθήκη και διαμόρφωση πρόσθετων δειγμάτων εντός νέων φακέλων
Προσθήκη και διαμόρφωση πρόσθετων δειγμάτων εντός νέων φακέλων

Οι ήχοι φορτώνονται στον δειγματολήπτη μέσω φακέλων στον ίδιο κατάλογο που περιέχουν αρχεία.wav με ονόματα αριθμημένα μεταξύ 0-15. Δείτε το φάκελο 808 που περιλαμβάνεται για παράδειγμα. ΚΑΘΕ υποφάκελος με δείγματα πρέπει να μοιάζει πανομοιότυπα.

Το ευρετήριο των εισόδων MIDI στον πίνακα noteList αντιστοιχεί ακριβώς στο όνομα αρχείου.wav.

Για παράδειγμα:

  • όταν ενεργοποιείτε τη σημείωση MIDI που είναι αποθηκευμένη στο noteList [0] θα παίζει το αρχείο wav 0.wav.
  • όταν ενεργοποιείτε τη σημείωση MIDI που είναι αποθηκευμένη στο noteList [8] θα παίζει το αρχείο wav 8.wav.

Το έκανα εν μέρει έτσι ώστε κάθε ελεγκτής MIDI να μπορεί να ρυθμιστεί εύκολα για να λειτουργεί με το σενάριο, και επίσης να επεκτείνω ή να περιορίζω εύκολα το δείγμα και τον αριθμό εισαγωγής, καθώς και να οργανώνω τα αρχεία και το σενάριο έτσι ώστε το τύμπανο κλωτσιών Οι ήχοι, για παράδειγμα, θα αποθηκεύονταν πάντα ως 0.wav και θα ενεργοποιούνταν από την πρώτη σημείωση MIDI.

Έχω επιλέξει 16 τιμές κάπως αυθαίρετα για να αντιστοιχούν στις 16 εισόδους του ελεγκτή μου, οπότε αν προτιμάτε να φτιάξετε ένα sequencer με μόνο 1 δείγμα ή με πολλά άλλα, το μόνο που έχετε να κάνετε είναι να αριθμήσετε τα αρχεία ήχου ανάλογα και αφαιρέστε ή προσθέστε τους αριθμούς που είναι αποθηκευμένοι στον πίνακα noteList για αντιστοίχιση.

Εάν το κιτ 808 που περιλαμβάνεται λειτουργεί σωστά αλλά έχετε πρόβλημα με τα δικά σας δείγματα, η λύση είναι πιθανότατα να αλλάξετε τον ρυθμό δειγματοληψίας των αρχείων ώστε να ταιριάζει με το ρυθμό δείγματος PyGame 22, 050khz και το βάθος bit 16. Μπορείτε να το κάνετε αυτό στο Audacity ή οποιοδήποτε άλλο λογισμικό επεξεργασίας ήχου. Θα πρέπει να λειτουργούν τέλεια από εκεί!

Βήμα 5: Αναφορά αριθμού πληκτρολογίου

Εντάξει, υπάρχουν πολλά πράγματα που συμβαίνουν στο sequencer, περισσότερα από όσα είχα αρχικά στο μυαλό μου, οπότε στριμώχτηκα αρκετά σε ένα Pad Number για να ταιριάζει με την αυξημένη λειτουργικότητα. Αυτό κατά νου, ο Αστερίσκος * και η Περίοδος. και τα δύο λειτουργούν ως πλήκτρα λειτουργίας.

ΑΝΑΦΟΡΑ

ΣΥΝΘΕΣΕΙΣ

[8] - Ενεργοποίηση και απενεργοποίηση του Μετρονόμου

[9] - Ενεργοποίηση και απενεργοποίηση λειτουργίας εγγραφής

[Enter] - Ακολουθία αναπαραγωγής/παύσης

[0] - Διαγραφή τρέχουσας σημείωσης σε ακολουθία

[Num Lock and *] - Κλείστε

[Σημείωση MIDI και.] - Μην κβαντίζετε σε ζυγούς αριθμούς

ΛΕΙΤΟΥΡΓΙΕΣ TEMPO

[+] - Επιτάχυνση μαθημάτων BPM μαθημάτων

[-] - Επιβράδυνση του μαθήματος BPM

[+ και *] - Γρήγορη επιτάχυνση BPM

[- και *] - Γρήγορη επιβράδυνση BPM

[+ και.] - Fine Speed Up BPM

[- και.] - Fine Slow Down BPM

ΛΕΙΤΟΥΡΓΙΕΣ ΑΚΟΛΟΥΘΙΑΣ

[1-6] Ανάκληση Ακολουθίας 1-6

[1-6 και.] Ακολουθία καταστήματος 1-6

[0 και.] Διαγραφή τρέχουσας ακολουθίας

ΑΛΛΑΓΗ ΦΑΚΕΛΩΝ ΔΕΙΓΜΑΤΟΣ

[1-9 και *]-Αλλαγή σε Πακέτο δείγματος στους φακέλους 1-9

[1-9 και * και.]-Αλλαγή σε Πακέτο δείγματος στους φακέλους 10-18

ΣΥΜΒΟΥΛΕΣ ΑΚΟΛΟΥΘΙΑΣ:

-Καθαρίστε την τρέχουσα ακολουθία [0 και.] Και αποθηκεύστε την σε όποιες ακολουθίες θέλετε να διαγραφούν από τη μνήμη.

-Ανακαλέστε μια ακολουθία και αποθηκεύστε την σε διαφορετικό αριθμό για να την αντιγράψετε.

Συνιστάται: