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

Raspberry Pi Stompbox Synth Module: 6 βήματα (με εικόνες)
Raspberry Pi Stompbox Synth Module: 6 βήματα (με εικόνες)

Βίντεο: Raspberry Pi Stompbox Synth Module: 6 βήματα (με εικόνες)

Βίντεο: Raspberry Pi Stompbox Synth Module: 6 βήματα (με εικόνες)
Βίντεο: How to use a Raspberry PI as a synthesizer 2024, Νοέμβριος
Anonim
Raspberry Pi Stompbox Synth Module
Raspberry Pi Stompbox Synth Module
Raspberry Pi Stompbox Synth Module
Raspberry Pi Stompbox Synth Module

Ο στόχος αυτού του έργου είναι να τοποθετήσει μια μονάδα ήχου με βάση το Fluidsynth σε ένα stompbox. Ο όρος τεχνικός ήχος "μονάδα ήχου" σε αυτή την περίπτωση σημαίνει μια συσκευή που λαμβάνει μηνύματα MIDI (δηλ. Αξία σημείωσης, ένταση, κλίση κλίσης κ.λπ.) και συνθέτει πραγματικούς μουσικούς ήχους. Συνδυάστε το με ένα χειριστήριο MIDI - τα οποία είναι λεγεώνα, φθηνά και συχνά πολύ δροσερά (όπως τα πλήκτρα!) - και έχετε ένα συνθεσάιζερ που μπορείτε να τροποποιήσετε και να τροποποιήσετε ατελείωτα και να σχεδιάσετε με τρόπο που ταιριάζει στο στυλ παιχνιδιού σας.

Μια ευρεία επισκόπηση αυτού του έργου είναι ότι παίρνουμε ένα μικρό linux υπολογιστή μονής πλακέτας (ένα Raspberry Pi 3 σε αυτή την περίπτωση), προσαρτάμε ένα LCD χαρακτήρα, δύο κουμπιά και μια κάρτα ήχου USB (αφού ο ήχος του Pi δεν είναι πολύ καλός), και στριμώξτε τα πάντα σε ένα Stompbox Hammond 1590bb (όπως αυτά που χρησιμοποιούνται για εφέ κιθάρας) με κάποιες εξωτερικές συνδέσεις για USB MIDI, ισχύ και εξόδους ήχου. Στη συνέχεια, διαμορφώνουμε το εσωτερικό λογισμικό για την εκτέλεση ενός προγράμματος κατά την εκκίνηση που εκτελεί το FluidSynth (ένα εξαιρετικό, πολλαπλών πλατφορμών, δωρεάν συνθετή λογισμικού), ελέγχει την οθόνη LCD και μας επιτρέπει να αλλάζουμε τις ενημερώσεις κώδικα και τις ρυθμίσεις χρησιμοποιώντας τα κουμπιά ώθησης.

Δεν θα αναφερθώ λεπτομερώς βήμα προς βήμα σε αυτήν την κατασκευή (υπάρχουν πολλά σεμινάρια hey-i-made-a-cool-raspberry-pi-case εκεί έξω), αλλά θα προσπαθήσω να επικεντρωθώ στο γιατί έφτιαξα διάφορες επιλογές στην κατασκευή και τον σχεδιασμό καθώς προχωρούσα. Με αυτόν τον τρόπο, ελπίζουμε ότι μπορείτε να κάνετε τροποποιήσεις που ταιριάζουν στους δικούς σας σκοπούς χωρίς να κολλήσετε κάνοντας πράγματα που αργότερα αποδεικνύονται ότι δεν λειτουργούν.

ΕΝΗΜΕΡΩΣΗ (Μάιος 2020): Ενώ αυτό το εκπαιδευτικό είναι ακόμα ένα εξαιρετικό μέρος για να ξεκινήσετε για ένα έργο όπως αυτό, έχω κάνει πολλές βελτιώσεις τόσο από την πλευρά του υλικού όσο και από το λογισμικό. Το πιο πρόσφατο λογισμικό είναι το FluidPatcher, διαθέσιμο στο GitHub - ανατρέξτε στο wiki για πολλές λεπτομέρειες σχετικά με τη ρύθμιση του Raspberry Pi. Δείτε τον ιστότοπό μου Geek Funk Labs για συνεχή νέα και ενημερώσεις στο SquishBox!

Προμήθειες

Αυτή είναι μια σύντομη λίστα (και εξήγηση) των πιο κρίσιμων συστατικών:

  • Υπολογιστής Raspberry Pi 3 - Οποιοσδήποτε υπολογιστής linux ενιαίος θα μπορούσε να λειτουργήσει, αλλά το Pi 3 έχει αρκετή επεξεργαστική ισχύ για να τρέξει το Fluidsynth χωρίς καθυστέρηση και αρκετή μνήμη για τη φόρτωση μεγάλων ηχητικών γραμματοσειρών. Το μειονέκτημα είναι ότι έχει κακό ενσωματωμένο ήχο, οπότε χρειάζεστε κάρτα ήχου USB. Το CHIP είναι μια εναλλακτική λύση που εξερευνώ (μικρότερο αποτύπωμα, καλύτερος ήχος, αλλά λιγότερη μνήμη/επεξεργαστής)
  • Περίβλημα Hammond 1590BB - Προτείνω να αγοράσετε ένα που είναι προ -βαμμένο σε σκόνη, αν θέλετε χρώμα, εκτός αν το βάψιμο των στομπόκια είναι κάτι που σας ενδιαφέρει. Περιήγησα σε πολλούς πίνακες μηνυμάτων, αλλά νομίζω ότι δεν έχω την υπομονή ή τον κατάλληλο τύπο βαφής, γιατί μετά από δύο προσπάθειες τα αποτελέσματά μου είναι αρκετά έτσι.
  • Κάρτα ήχου USB - Μπορείτε να βρείτε μια κατάλληλη από αυτές αρκετά φθηνά. Σύμφωνα με αυτό το υπέροχο σεμινάριο Adafruit (ένα από τα πολλά), θα πρέπει να μείνετε με αυτό που χρησιμοποιεί το chipset CM109 για μέγιστη συμβατότητα.
  • LCD χαρακτήρων - υπάρχουν πολλά διαφορετικά μέρη για να τα αποκτήσετε, αλλά τα pinouts φαίνεται να είναι αρκετά τυπικά. Βεβαιωθείτε ότι έχετε οπίσθιο φωτισμό, ώστε να μπορείτε να δείτε τις προεπιλογές σας όταν παίζετε σε καπνιστές λέσχες.
  • Στιγμιαία διακόπτες (2) - Λίγο πιο δύσκολο να αποκτηθούν, αλλά πήρα στιγμιαία αντί να αλλάξω για να έχω μεγαλύτερη ευελιξία. Μπορώ να προσομοιώσω την εναλλαγή στο λογισμικό αν θέλω αυτή τη συμπεριφορά, αλλά με αυτόν τον τρόπο μπορώ επίσης να έχω διαφορετικές λειτουργίες για σύντομο πάτημα, παρατεταμένο πάτημα κ.λπ.
  • Adafruit Perma -Proto Hat for Pi - Αυτό με βοήθησε να συνδέσω την οθόνη LCD και άλλα εξαρτήματα στη θύρα επέκτασης του Pi χωρίς να καταλαμβάνω πολύ επιπλέον χώρο. Αν προσπαθούσα να χρησιμοποιήσω κανονικό πίνακα, θα έπρεπε να κολλήσω στις πλευρές του Pi για να συνδεθώ με όλες τις απαραίτητες καρφίτσες GPIO. Η διπλής όψης επένδυση και οι αντίστοιχες οπές στερέωσης ήταν επίσης πολύ χρήσιμες. Υπό το φως όλων αυτών ήταν πραγματικά η φθηνότερη επιλογή.
  • Συνδέσεις USB-1 θηλυκό τύπου Β για τροφοδοσία και δύο το καθένα αρσενικό και θηλυκό τύπου Α, με το οποίο μπορείτε να φτιάξετε μερικά εύκαμπτα, εύκαμπτα καλώδια επέκτασης για εσωτερικές συνδέσεις.
  • Υποδοχές ήχου 1/4 " - χρησιμοποίησα ένα στερεοφωνικό και ένα μονοφωνικό. Με αυτόν τον τρόπο το στερεοφωνικό μπορεί να είναι υποδοχή ακουστικών/μονοφωνικού ή να μεταφέρει το αριστερό σήμα εάν η άλλη υποδοχή είναι συνδεδεμένη.

Βήμα 1: Εσωτερικά Ηλεκτρονικά

Εσωτερική Ηλεκτρονική
Εσωτερική Ηλεκτρονική
Εσωτερική Ηλεκτρονική
Εσωτερική Ηλεκτρονική
Εσωτερική Ηλεκτρονική
Εσωτερική Ηλεκτρονική

Θα συνδέσουμε την οθόνη LCD και τα σχετικά εξαρτήματα και τα κουμπιά με το Pi Hat. Επίσης, θα προσθέσουμε μια υποδοχή USB-B και USB-A για να συνδέσουμε τροφοδοσία και μια συσκευή MIDI, αντίστοιχα. Φέρνουμε τη θύρα USB-A, επειδή πρέπει να χρησιμοποιήσουμε μία από τις θύρες USB του Pi για να συνδέσουμε την κάρτα ήχου, την οποία θέλουμε να έχουμε μέσα στο περίβλημα, οπότε δεν μπορούμε να έχουμε τις θύρες USB να ευθυγραμμίζονται με την πλευρά του κουτιού. Χρησιμοποίησα μια θύρα USB-B για τροφοδοσία επειδή ένιωσα ότι θα μπορούσε να επιβάλει μεγαλύτερη τιμωρία από τον σύνδεσμο τροφοδοσίας micro-Pi του Pi, καθώς και ότι δεν μπορούσα να βρω έναν καλό προσανατολισμό όπου ο σύνδεσμος θα μπορούσε να βρίσκεται δίπλα στην άκρη του κουτιού ούτως ή άλλως.

Θα χρειαστεί να χρησιμοποιήσετε ένα μαχαίρι για να κόψετε τα ίχνη μεταξύ των οπών όπου θα κολλήσετε στις ακίδες για τις υποδοχές USB. Απλά προσέξτε να μην κόψετε κανένα από τα εσωτερικά ίχνη στην πλακέτα που συνδέει τους άλλους πείρους - ή αν κατά λάθος τα επανασυνδέσετε (όπως εγώ) χρησιμοποιώντας καλώδιο βραχυκυκλωτήρα. Οι ακίδες Vcc και GND της υποδοχής USB-B πηγαίνουν στα 5V και GND στη θύρα επέκτασης του Pi, αντίστοιχα. Με αυτόν τον τρόπο μπορείτε να τροφοδοτήσετε το stompbox σας με φορτιστή τηλεφώνου (αν υποθέσουμε ότι έχει αρκετό ρεύμα - 700mA φαίνεται να λειτουργεί για μένα, αλλά μπορεί να θέλετε περισσότερο για να είστε σίγουροι ότι η θύρα USB έχει αρκετό χυμό για να τροφοδοτήσει το χειριστήριό σας) και ένα καλώδιο USB A -B.

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

Συμβουλευτείτε το σχηματικό για λεπτομέρειες σχετικά με το τι συνδέεται πού. Παρατηρήστε ότι τα κουμπιά είναι συνδεδεμένα σε 3.3V - όχι 5V! Οι ακίδες GPIO έχουν βαθμολογία μόνο για 3.3V - 5V θα καταστρέψει την CPU σας. Η υποδοχή USB-A συνδέεται με μια άλλη λωρίδα καλωδίου κορδέλας, την οποία μπορείτε στη συνέχεια να κολλήσετε σε ένα βύσμα USB, το οποίο θα συνδέσετε σε μία από τις θύρες USB του Pi για τον ελεγκτή MIDI. Κόψτε οποιοδήποτε επιπλέον μέταλλο από το βύσμα έτσι ώστε να βγαίνει λιγότερο και χρησιμοποιήστε ζεστή κόλλα για ανακούφιση από την καταπόνηση - δεν χρειάζεται να είναι όμορφο, καθώς θα είναι κρυμμένο μέσα στο κουτί.

Βήμα 2: Καλωδίωση εξόδου ήχου

Καλωδίωση εξόδου ήχου
Καλωδίωση εξόδου ήχου
Καλωδίωση εξόδου ήχου
Καλωδίωση εξόδου ήχου
Καλωδίωση εξόδου ήχου
Καλωδίωση εξόδου ήχου

Ανεξάρτητα από τη μικροσκοπική κάρτα ήχου USB που βρίσκετε, αυτή ή το βύσμα της πιθανότατα θα απέχουν πολύ από τις θύρες USB του Pi για να χωρέσουν όλα στο κουτί. Συνεπώς, συγκολλήστε ένα άλλο κοντό συνδετήρα USB από κάποιο καλώδιο κορδέλας, βύσματα USB και ζεστή κόλλα, όπως φαίνεται στην παραπάνω εικόνα. Η κάρτα ήχου μου ήταν ακόμα πολύ χοντρή για να χωρέσει στο περίβλημα με όλα τα άλλα, έτσι έβγαλα το πλαστικό και το τύλιξα σε κάποια κολλητική ταινία για να μην βραχυκυκλώσει τα πράγματα.

Για να λάβετε ήχο από την κάρτα ήχου στις υποδοχές 1/4 ", κόψτε το άκρο ενός ακουστικού 3,5 mm ή καλωδίου AUX. Βεβαιωθείτε ότι έχει 3 συνδέσεις - άκρη, δακτύλιο και μανίκι (TRS), σε αντίθεση με 2 ή 4. Το μανίκι πρέπει να είναι γειωμένο, η άκρη είναι συνήθως το σωστό κανάλι και ο δακτύλιος (ο μεσαίος σύνδεσμος) είναι συνήθως αριστερός. Θα μπορούσατε απλά να συνδέσετε το άκρο και το δακτύλιο σε δύο μονοφωνικές υποδοχές (TS - άκρη, μανίκι) 1/4 "και να τελειώσετε με αυτό, αλλά μπορείτε να αποκτήσετε περισσότερη ευελιξία με ένα μικρό κομμάτι επιπλέον καλωδίωσης. Βρείτε μια υποδοχή TS που έχει μια τρίτη στιγμιαία επαφή, όπως φαίνεται σχηματικά στο παραπάνω διάγραμμα. Η τοποθέτηση ενός βύσματος σπάει αυτήν την επαφή, έτσι όπως ελπίζουμε να διαπιστώσετε από το διάγραμμα, το αριστερό σήμα θα μεταβεί στη συνέχεια στην υποδοχή TS εάν τοποθετηθεί ένα βύσμα και στο δακτύλιο της υποδοχής TRS εάν δεν έχει εισαχθεί βύσμα. Με αυτόν τον τρόπο μπορείτε να συνδέσετε ακουστικά στην στερεοφωνική υποδοχή, ένα μονό καλώδιο στην στερεοφωνική υποδοχή για συνδυασμένο δεξιό/αριστερό (μονό) σήμα ή ένα καλώδιο σε κάθε υποδοχή για ξεχωριστές δεξιές και αριστερές (στερεοφωνικές) εξόδους.

Συνδέω τις ακίδες γείωσης των υποδοχών με το καλώδιο που προέρχεται από την κάρτα ήχου, έτσι ώστε όλα στο κουτί να μοιράζονται την ίδια γείωση και να αποφεύγω το δυσάρεστο βόμβο βρόχων γείωσης. Ωστόσο, ανάλογα με το τι είστε συνδεδεμένοι, αυτό μπορεί να έχει το αντίθετο αποτέλεσμα - οπότε μπορεί να θέλετε να συμπεριλάβετε έναν διακόπτη που θα σας επιτρέπει να συνδέσετε ή να "σηκώσετε" το έδαφος στις υποδοχές 1/4 ".

Βήμα 3: Προετοιμασία του περιβλήματος

Προετοιμασία του περιβλήματος
Προετοιμασία του περιβλήματος
Προετοιμασία του περιβλήματος
Προετοιμασία του περιβλήματος
Προετοιμασία του περιβλήματος
Προετοιμασία του περιβλήματος

Αυτό το βήμα καλύπτει τις οπές κοπής στο κουτί για την οθόνη, τα κουμπιά, τους συνδετήρες κ.λπ. και την εποπτεία των αναστολών στο περίβλημα για να τοποθετήσετε το καπέλο Pi.

Ξεκινήστε τοποθετώντας όλα τα εξαρτήματα στο περίβλημα για να βεβαιωθείτε ότι όλα ταιριάζουν και προσανατολίζονται σωστά. Στη συνέχεια, μετρήστε προσεκτικά και σημειώστε πού πρόκειται να κάνετε τρύπες. Όταν κόβετε στρογγυλές τρύπες, συνιστώ να ξεκινήσετε με ένα μικρό κομμάτι και να δουλέψετε μέχρι το μέγεθος που χρειάζεστε - είναι ευκολότερο να κεντράρετε την τρύπα και λιγότερο πιθανό το τρυπάνι σας να μπλοκάρει. Οι ορθογώνιες τρύπες μπορούν να κοπούν ανοίγοντας μια τρύπα σε αντίθετες γωνίες του προβλεπόμενου ανοίγματος, στη συνέχεια κόβοντας με ένα παζλ στις άλλες δύο γωνίες. Αυτό το πάχος αλουμινίου κόβει μια χαρά με ένα παζλ αρκεί να πάτε απαλά. Ένα τετράγωνο αρχείο είναι πολύ χρήσιμο για τον τετραγωνισμό των γωνιών των ανοιγμάτων. Κάντε τα ανοίγματα για τα βύσματα USB λίγο γενναιόδωρα σε περίπτωση που έχετε καλώδια λίπους.

Ένα εποξικό σε δύο στάδια (όπως η κόλλα γορίλας στην εικόνα) λειτουργεί καλά για να τοποθετήσει τις αντιστάσεις για το καπέλο στο μεταλλικό περίβλημα. Ξύστε λίγο την επιφάνεια του περιβλήματος και το κάτω μέρος της επένδυσης με ατσάλινο μαλλί ή κατσαβίδι, ώστε το εποξικό να μπορεί να πιάσει καλύτερα. Σας συνιστώ να συνδέσετε τις αντιστάσεις σας στο καπέλο Pi πριν τις κολλήσετε, ώστε να γνωρίζετε ότι έχουν τοποθετηθεί σωστά - δεν υπάρχει πολύς χώρος για κούνημα εδώ. Χρησιμοποίησα μόνο τρεις αναμονές επειδή η οθόνη LCD ήταν στο δρόμο της τέταρτης. Ανακατέψτε τα δύο συστατικά του εποξειδικού, επικολλήστε μερικά στις προεξοχές και σφίξτε τα στη θέση τους. Αποφύγετε να κουνήσετε ή να επανατοποθετήσετε τα μέρη μετά από περισσότερα από 10-15 δευτερόλεπτα, διαφορετικά ο δεσμός θα είναι εύθραυστος. Δώστε του 24 ώρες ώρας για να μπορέσει να συνεχίσει να εργάζεται. Χρειάζονται μερικές ημέρες για να θεραπευτεί πλήρως, οπότε μην τονίζετε τον δεσμό άσκοπα.

Εκτός αν θέλετε να κάνετε ένα άλλο χόμπι από τη ζωγραφική στομμπόξ, προτείνω να αφήσετε το αλουμίνιο γυμνό (στην πραγματικότητα δεν είναι άσχημο) ή να αγοράσετε ένα προβαμμένο περίβλημα. Το χρώμα δεν θέλει να συνδεθεί με το μέταλλο. Αν θέλετε να το δοκιμάσετε, τρίψτε παντού όπου θέλετε να κολλήσει το χρώμα, χρησιμοποιήστε πρώτα ένα καλό σπρέι αυτοκινήτου, εφαρμόστε πολλές στρώσεις του χρώματος που θέλετε και μετά αφήστε το να στεγνώσει όσο το δυνατόν περισσότερο. Σοβαρά - οι μανιακοί στους πίνακες μηνυμάτων προτείνουν πράγματα όπως το αφήνουμε στον ήλιο για τρεις μήνες ή σε ένα φούρνο τοστιέρα που έχει χαμηλώσει για μια εβδομάδα. Μετά το τρίψιμο των τσαλακωμένων, ξεφλουδισμένων υπολειμμάτων της πρώτης μου δουλειάς στη βαφή, η δεύτερη προσπάθειά μου εξακολουθεί να παίρνει πατατάκια και γουτζούρες από πράγματα όπως στυλό στην τσάντα μου και το τελείωμα μπορεί να χαράζεται με ένα νύχι. Αποφάσισα να υποχωρήσω και πήγα για πανκ στυλ, χρησιμοποιώντας δείκτη white-out για τα γράμματα.

Βήμα 4: Ρύθμιση λογισμικού

Ρύθμιση λογισμικού
Ρύθμιση λογισμικού
Ρύθμιση λογισμικού
Ρύθμιση λογισμικού

Πριν βάλετε τα πάντα στο stompbox και το σφίξετε σφιχτά, πρέπει να ρυθμίσετε λογισμικό στο Raspberry Pi. Προτείνω να ξεκινήσετε με μια νέα εγκατάσταση του Raspbian OS, οπότε λάβετε ένα πρόσφατο αντίγραφο από τον ιστότοπο του Raspberry Pi Foundation και ακολουθήστε τις οδηγίες εκεί για να το απεικονίσετε σε μια κάρτα SD. Πιάστε ένα πληκτρολόγιο και οθόνη ή χρησιμοποιήστε ένα καλώδιο κονσόλας για να συνδεθείτε στο Pi σας για πρώτη φορά και μεταβείτε στη γραμμή εντολών. Για να βεβαιωθείτε ότι έχετε τις πιο πρόσφατες ενημερώσεις λογισμικού και υλικολογισμικού, πληκτρολογήστε

sudo apt-get ενημέρωση && sudo apt-get αναβάθμιση

sudo rpi-ενημέρωση

Στη συνέχεια, θέλετε να βεβαιωθείτε ότι μπορείτε να χρησιμοποιήσετε το wifi για να ssh στο Pi και να κάνετε τροποποιήσεις μόλις κουμπώσει στο εσωτερικό του περιβλήματος. Αρχικά, ενεργοποιήστε τον διακομιστή ssh πληκτρολογώντας

sudo raspi-config

και μετάβαση στις "Επιλογές διασύνδεσης" και ενεργοποίηση του διακομιστή ssh. Τώρα, προσθέστε ένα ασύρματο δίκτυο στο pi επεξεργάζοντας το αρχείο wpa_supplicant.conf:

sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

και προσθέτοντας τις ακόλουθες γραμμές στο τέλος:

δίκτυο = {

ssid = "your-network" psk = "your-password"}

Αντικαταστήστε το δίκτυό σας και τον κωδικό πρόσβασης παραπάνω με τιμές για οποιοδήποτε δίκτυο θέλετε να συνδέσει το Pi από προεπιλογή-πιθανότατα το δρομολογητή wifi στο σπίτι ή ίσως το hotspot στο τηλέφωνό σας ή ένα φορητό υπολογιστή που λειτουργεί σε λειτουργία σημείου πρόσβασης. Μια άλλη εναλλακτική λύση για τη σύνδεση στο Pi σας είναι να το ρυθμίσετε ως σημείο πρόσβασης wifi, έτσι ώστε να μπορείτε απλώς να συνδεθείτε σε αυτό, όπου κι αν βρίσκεστε. Η διεπαφή που έγραψα παρακάτω σας επιτρέπει επίσης να αντιστοιχίσετε μια άλλη συσκευή bluetooth με το Pi, μετά την οποία μπορείτε να συνδεθείτε σε αυτήν χρησιμοποιώντας σειριακό bluetooth.

Για να εγκαταστήσετε το FluidSynth, πληκτρολογήστε

sudo apt-get install fluidsynth

Τα αρχεία που επισυνάπτονται σε αυτό το βήμα παρέχουν μια διεπαφή μεταξύ των στοιχείων ελέγχου stompbox και του FluidSynth και πρέπει να αντιγραφούν στον κατάλογο /home /pi. Ακολουθεί μια σύντομη εξήγηση για το τι κάνει κάθε αρχείο:

  • squishbox.py - Ένα σενάριο python που ξεκινά και επικοινωνεί με ένα παράδειγμα του FluidSynth, διαβάζει την είσοδο από τα κουμπιά του stompbox και γράφει πληροφορίες στην οθόνη LCD
  • config_squishbox.yaml - Ένα αρχείο διαμόρφωσης σε (κυρίως) αναγνώσιμη από τον άνθρωπο μορφή YAML που αποθηκεύει τις ρυθμίσεις και τις πληροφορίες ενημέρωσης κώδικα για το πρόγραμμα squishbox
  • fluidsynth.py - Ένα περιτύλιγμα python που παρέχει συνδέσεις με τις λειτουργίες C στη βιβλιοθήκη FluidSynth, με πολλές πρόσθετες συνδέσεις που προστέθηκαν από εμένα για πρόσβαση σε περισσότερες λειτουργίες του FluidSynth
  • ModWaves.sf2 - Μια πολύ μικρή ηχητική γραμματοσειρά που παρείχα για να δείξω τη χρήση και τη δύναμη των διαμορφωτών στη μορφή Soundfont

Έχοντας ένα σενάριο python που ρυθμίζει τη διαδικασία FluidSynth και χειρίζεται όλα τα στοιχεία κουμπιού/LCD λειτουργεί αρκετά καλά - τα μηνύματα MIDI πηγαίνουν απευθείας στο FluidSynth και το σενάριο αλληλεπιδρά με αυτό μόνο όταν χρειάζεται.

Το σενάριο python χρειάζεται μερικές βιβλιοθήκες python που δεν είναι εγκατεστημένες από προεπιλογή. Μπορείτε να τα εγκαταστήσετε απευθείας από το ευρετήριο πακέτων Python χρησιμοποιώντας το εύχρηστο εργαλείο pip:

sudo pip εγκατάσταση RPLCD pyyaml

Τέλος, θέλετε το Pi να εκτελέσει το σενάριο python κατά την εκκίνηση. Για να συμβεί αυτό, επεξεργαστείτε το αρχείο rc.local:

sudo vi /etc/rc.local

Εισαγάγετε την ακόλουθη γραμμή ακριβώς πριν από την τελική γραμμή "έξοδος 0" στο αρχείο:

python /home/pi/squishbox.py &

Βήμα 5: Τελική συνέλευση

Τελική συναρμολόγηση
Τελική συναρμολόγηση
Τελική συναρμολόγηση
Τελική συναρμολόγηση
Τελική συναρμολόγηση
Τελική συναρμολόγηση

Πριν βάλετε όλα τα κομμάτια στο κουτί, είναι πολύ καλή ιδέα να συνδέσετε τα πάντα και να βεβαιωθείτε ότι το λογισμικό λειτουργεί, όπως φαίνεται στις παραπάνω εικόνες. Οι εικόνες 3-6 δείχνουν όλα τα μεμονωμένα μέρη και προοδευτικά πώς ταιριάζουν στο κουτί μου. Η οθόνη LCD στην πραγματικότητα συγκρατείται από τα καλώδια που πιέζουν προς τα πάνω, αλλά μπορείτε να χρησιμοποιήσετε κάποια ζεστή κόλλα ή να προσθέσετε μερικές ακόμη βίδες στερέωσης αν δεν σας αρέσει αυτό. Η πορτοκαλί κολλητική ταινία στο καπάκι του κουτιού είναι για να εμποδίσει το Pi να βραχυκυκλώσει στο μέταλλο.

Youσως χρειαστεί να πειραματιστείτε και να διαμορφώσετε ξανά για να ταιριάξουν τα πράγματα. Το Snug είναι καλό - όσο λιγότερα μέρη τριγυρίζουν στο κουτί, τόσο το καλύτερο. Η θερμότητα δεν φαίνεται να είναι θέμα και δεν είχα κανένα πρόβλημα με το μπλοκάρισμα του σήματος wifi από το περίβλημα. Δεν απεικονίζονται μερικά κολλητικά πόδια από καουτσούκ (μπορείτε να τα βρείτε σε ένα κατάστημα υλικού) στο κάτω μέρος του κουτιού για να μην γλιστράει όταν κάνετε μια συνεδρία.

Προσέξτε για απρόβλεπτα χτυπήματα/τσαλακώματα/κάμψεις όταν τα πράγματα βιδώνονται μεταξύ τους. Ένα πράγμα που πρέπει να ελέγξετε είναι ότι υπάρχει αρκετός χώρος για τις υποδοχές 1/4 όταν τοποθετούνται καλώδια - οι άκρες κολλάνε λίγο πιο μακριά από τις επαφές του γρύλου. Επίσης, στην κατασκευή μου τοποθέτησα το Pi λίγο πολύ κοντά στην άκρη του κουτιού και του χείλους στο καπάκι πιέζοντας προς τα κάτω το άκρο της κάρτας SD και την έσπασαν - έπρεπε να βάλω μια εγκοπή στο χείλος για να μην συμβεί αυτό.

Βήμα 6: Χρήση

Image
Image
Χρήση
Χρήση
Χρήση
Χρήση

Η μονάδα ήχου που περιέγραψα σε αυτά τα βήματα και η εκτέλεση του λογισμικού που παρέχεται παραπάνω είναι αρκετά χρήσιμη και επεκτάσιμη, αλλά είναι δυνατές πολλές τροποποιήσεις/παραλλαγές. Θα περιγράψω εν συντομία τη διεπαφή εδώ - σκοπεύω να την ενημερώνω συνεχώς σε ένα αποθετήριο github, όπου ελπίζω ότι θα διατηρήσω επίσης ένα ενημερωμένο wiki. Τέλος, θα συζητήσω πώς μπορείτε να τροποποιήσετε τις ρυθμίσεις, να προσθέσετε νέους ήχους και να κάνετε τις δικές σας τροποποιήσεις.

Για να ξεκινήσετε, συνδέστε ένα χειριστήριο USB MIDI στην υποδοχή USB-A του κουτιού, ένα τροφοδοτικό 5V στην υποδοχή USB-B και συνδέστε ακουστικά ή ενισχυτή. Μετά από λίγο, η οθόνη LCD θα εμφανίσει ένα μήνυμα "squishbox v xx.x". Μόλις εμφανιστεί ένας αριθμός ενημερωμένου κώδικα και ένα όνομα, θα πρέπει να μπορείτε να αναπαράγετε σημειώσεις. Τα σύντομα χτυπήματα σε οποιοδήποτε κουμπί αλλάζουν την ενημερωμένη έκδοση κώδικα, κρατώντας ένα από τα δύο κουμπιά για μερικά δευτερόλεπτα σας οδηγεί σε ένα μενού ρυθμίσεων και κρατώντας οποιοδήποτε κουμπί για περίπου 5 δευτερόλεπτα σας δίνει την επιλογή να επανεκκινήσετε το πρόγραμμα, να επανεκκινήσετε το Pi ή να κλείσετε το Pi (Το NB το Pi δεν διακόπτει την τροφοδοσία των ακίδων GPIO όταν σταματήσει, οπότε η οθόνη LCD δεν θα σβήσει ποτέ. Απλώς περιμένετε περίπου 30 δευτερόλεπτα πριν την αποσυνδέσετε).

Οι επιλογές του μενού ρυθμίσεων είναι:

  • Update Patch - αποθηκεύει τυχόν αλλαγές που κάνατε στο τρέχον patch στο αρχείο
  • Αποθήκευση νέας ενημερωμένης έκδοσης κώδικα - αποθηκεύει την τρέχουσα ενημερωμένη έκδοση κώδικα και τυχόν αλλαγές ως νέο έμπλαστρο
  • Επιλέξτε Τράπεζα - το αρχείο διαμόρφωσης μπορεί να έχει πολλά σύνολα επιδιορθώσεων, αυτό σας επιτρέπει να κάνετε εναλλαγή μεταξύ τους
  • Set Gain - ορίστε τον συνολικό όγκο εξόδου (η επιλογή "κέρδους" του fluidsynth), πολύ υψηλή δίνει παραμορφωμένη έξοδο
  • Chorus/Reverb - τροποποιήστε τις ρυθμίσεις αντήχησης και χορωδίας του τρέχοντος συνόλου
  • MIDI Connect - προσπαθήστε να συνδέσετε μια νέα συσκευή MIDI εάν την αλλάξετε ενώ εκτελείται το πρόγραμμα
  • Ζεύγος Bluetooth - θέστε το Pi σε λειτουργία ανακάλυψης, ώστε να μπορείτε να αντιστοιχίσετε μια άλλη συσκευή bluetooth με αυτό
  • Wifi Status - αναφέρετε την τρέχουσα διεύθυνση IP του Pi, ώστε να μπορείτε να ssh σε αυτήν

Το αρχείο config_squishbox.yaml περιέχει πληροφορίες που περιγράφουν κάθε ενημερωμένη έκδοση κώδικα, καθώς και πράγματα όπως η δρομολόγηση MIDI, οι παράμετροι εφέ, κ.λπ. Είναι γραμμένο σε μορφή YAML, ο οποίος είναι ένας διαγλωσσικός τρόπος αναπαράστασης των δεδομένων που μπορούν να αναλύσουν οι υπολογιστές, αλλά είναι και ανθρώπινος -αναγνώσιμος. Μπορεί να γίνει αρκετά περίπλοκο, αλλά εδώ το χρησιμοποιώ απλώς ως τρόπο για να αναπαραστήσω μια δομή ένθετων λεξικών Python (συσχετιστικοί πίνακες/κατακερματισμοί σε άλλες γλώσσες) και ακολουθίες (λίστες/πίνακες). Έβαλα πολλά σχόλια στο δείγμα αρχείου διαμόρφωσης και προσπάθησα να το δομήσω έτσι ώστε να μπορεί σταδιακά να δει τι κάνει κάθε λειτουργία. Ρίξτε μια ματιά και πειραματιστείτε αν είστε περίεργοι και μη διστάσετε να κάνετε ερωτήσεις στα σχόλια. Μπορείτε να κάνετε πολλά για να αλλάξετε τους ήχους και τη λειτουργικότητα της μονάδας μόνο με την επεξεργασία αυτού του αρχείου. Μπορείτε να συνδεθείτε και να επεξεργαστείτε από απόσταση ή να FTP τροποποιήσετε ένα αρχείο ρυθμίσεων στο Pi και, στη συνέχεια, να επανεκκινήσετε χρησιμοποιώντας τη διεπαφή ή πληκτρολογώντας

sudo python /home/pi/squishbox.py &

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

Όταν εγκαθιστάτε το FluidSynth, λαμβάνετε επίσης το αρκετά καλό δωρεάν FluidR3_GM.sf2 soundfont. Το GM σημαίνει γενικό MIDI, το οποίο σημαίνει ότι περιέχει "όλα" τα όργανα, τα οποία έχουν εκχωρηθεί σε κοινά συμφωνημένους προκαθορισμένους και τραπεζικούς αριθμούς, έτσι ώστε οι παίκτες MIDI που παίζουν αρχεία χρησιμοποιώντας αυτήν την ηχητική γραμματοσειρά να μπορούν να βρουν περίπου τον κατάλληλο ήχο για πιάνο, τρομπέτα, γκάιντες, κλπ. Αν θέλετε περισσότερους/διαφορετικούς ήχους, μπορείτε να βρείτε πολλά δωρεάν ηχοσυστήματα από το διαδίκτυο. Το πιο σημαντικό, οι προδιαγραφές soundfont είναι ευρέως διαθέσιμες, είναι στην πραγματικότητα αρκετά ισχυρές και υπάρχει ένας υπέροχος επεξεργαστής ανοιχτού κώδικα για ηχητικές γραμματοσειρές που ονομάζεται Polyphone. Με αυτό μπορείτε να δημιουργήσετε τις δικές σας ηχητικές γραμματοσειρές από ακατέργαστα αρχεία WAV, καθώς και να προσθέσετε διαμορφωτές στις γραμματοσειρές σας. Οι διαμορφωτές σάς επιτρέπουν να ελέγχετε πολλά από τα στοιχεία σύνθεσης (π.χ. φάκελος ADSR, φάκελος διαμόρφωσης, LFO κ.λπ.) σε πραγματικό χρόνο. Το αρχείο ModWaves.sf2 που έχω συμπεριλάβει παραπάνω παρέχει ένα παράδειγμα χρήσης διαμορφωτών που σας επιτρέπουν να αντιστοιχίσετε τον συντονισμό φίλτρου και τη συχνότητα διακοπής σε ένα μήνυμα MIDI αλλαγής ελέγχου (το οποίο μπορεί να σταλεί με ένα κουμπί/ρυθμιστικό στο χειριστήριο σας). Υπάρχουν τόσες πολλές δυνατότητες εδώ - πηγαίνετε να παίξετε!

Ελπίζω ότι αυτό το σεμινάριο πυροδοτεί πολλές ιδέες και δίνει στους άλλους ένα καλό πλαίσιο για να δημιουργήσουν τις δικές τους μοναδικές συνθετικές δημιουργίες, καθώς και να υποστηρίξουν τη συνεχή διαθεσιμότητα και την ανάπτυξη καλών ηχητικών γραμματοσειρών, τις προδιαγραφές των ηχητικών γραμματοσειρών και εξαιρετικό δωρεάν λογισμικό όπως το FluidSynth και το Polyphone Το Η κατασκευή που περιέγραψα εδώ δεν είναι ούτε ο καλύτερος ούτε ο μόνος τρόπος για να συνδυάσετε κάτι τέτοιο. Από την πλευρά του υλικού, πιθανές τροποποιήσεις μπορεί να είναι ένα μεγαλύτερο κουτί με περισσότερα κουμπιά, παλαιά είσοδο/έξοδο MIDI (5 ακίδων) ή/και εισόδους ήχου. Το σενάριο python μπορεί να τροποποιηθεί (συγγνώμη για το αραιό μου σχόλιο) για να παρέχει άλλες συμπεριφορές που μπορεί να σας ταιριάζουν καλύτερα - σκέφτομαι να προσθέσω μια λειτουργία "εφέ" σε κάθε ενημερωμένη έκδοση κώδικα όπου θα λειτουργεί σαν πραγματικό stompbox εφέ, αλλάζοντας ρυθμίσεις και μακριά. Θα μπορούσε επίσης να προστεθεί κάποιο πρόσθετο λογισμικό για την παροχή ψηφιακών εφέ ήχου. Πιστεύω επίσης ότι θα λειτουργούσε καλύτερα να εκτελείται το Pi σε λειτουργία AP wifi όπως περιγράφεται παραπάνω και, στη συνέχεια, θα μπορούσε ακόμη και να προσφέρει μια φιλική διεπαφή ιστού για την επεξεργασία του αρχείου διαμόρφωσης. Μη διστάσετε να δημοσιεύσετε τις δικές σας ιδέες/ερωτήσεις/συζητήσεις στη ροή σχολίων.

Θέλω να δώσω τεράστια, μεγάλα στηρίγματα στους κατασκευαστές του FluidSynth και του Polyphone για την παροχή δωρεάν λογισμικού ανοιχτού κώδικα που όλοι μπορούμε να χρησιμοποιήσουμε για να δημιουργήσουμε υπέροχη μουσική. Μου αρέσει να χρησιμοποιώ αυτό το πράγμα και το κάνατε δυνατό!

Συνιστάται: