Διαφήμιση

Ως μουσικός που έχει συγκεντρώσει μια συλλογή από μουσικά όργανα και κουτιά θορύβου, το ταπεινό Arduino είναι το τέλειο εργαλείο για τη δημιουργία ενός προσαρμοσμένου χειριστηρίου MIDI. Ενώ το Raspberry Pi μπορεί να έχει πάρει το στέμμα Διαδίκτυο των πραγμάτων (IoT) Το Διαδίκτυο των πραγμάτων: 10 χρήσιμα προϊόντα που πρέπει να δοκιμάσετε το 2016Το Διαδίκτυο των πραγμάτων αυξάνεται το 2016, αλλά τι σημαίνει αυτό ακριβώς; Πώς επωφελείστε προσωπικά από το Διαδίκτυο των πραγμάτων; Εδώ είναι μερικά χρήσιμα προϊόντα για να δείξετε. Διαβάστε περισσότερα έργα, ένα απλό Arduino Uno (ποιοι είναι οι διαφορετικοί τύποι Arduino; Οδηγός αγοράς Arduino: Ποιος πίνακας πρέπει να πάρετε;Υπάρχουν τόσα πολλά είδη σανίδων Arduino εκεί έξω, θα σας συγχωρούσαν που μπερδεύτηκα. Ποιο θα πρέπει να αγοράσετε για το έργο σας; Ας βοηθήσουμε, με αυτόν τον οδηγό αγοράς Arduino! Διαβάστε περισσότερα ) έχει περισσότερη από αρκετή ισχύ για αυτό το έργο.

Πρώτη φορά χρησιμοποιώντας ένα Arduino; Μην ανησυχείτε, έχουμε ένα πλήρες

instagram viewer
Οδηγός για αρχάριους Arduino Ξεκινώντας με το Arduino: Ένας οδηγός για αρχάριουςΤο Arduino είναι μια πλατφόρμα πρωτοτύπων ηλεκτρονικής ανοικτής πηγής που βασίζεται σε ευέλικτο, εύχρηστο υλικό και λογισμικό. Προορίζεται για καλλιτέχνες, σχεδιαστές, χομπίστες και όσους ενδιαφέρονται να δημιουργήσουν διαδραστικά αντικείμενα ή περιβάλλοντα. Διαβάστε περισσότερα να διαβάσετε προτού αντιμετωπίσετε αυτό το έργο.

Arduino-Midi-Controller-Breadboard

Τι είναι το MIDI;

Το MIDI σημαίνει ψηφιακή διεπαφή μουσικού οργάνου. Περιγράφει έναν τυπικό τρόπο για τις μουσικές συσκευές να επικοινωνούν μεταξύ τους. Εάν διαθέτετε ηλεκτρονικό πληκτρολόγιο πιθανότατα να έχετε διεπαφή MIDI. Ενώ υπάρχουν μερικές τεχνικές λεπτομέρειες που εμπλέκονται στην εφαρμογή του MIDI, είναι σημαντικό να θυμόμαστε ότι το MIDI δεν είναι ήχο! Τα δεδομένα MIDI είναι ένα απλό σύνολο οδηγιών (μία οδηγία ονομάζεται «μήνυμα») που μπορεί να εφαρμόσει μια άλλη συσκευή για να κάνει διαφορετικούς ήχους ή παραμέτρους ελέγχου.

Το MIDI υποστηρίζει 16 κανάλια. Αυτό σημαίνει ότι κάθε καλώδιο μπορεί να υποστηρίξει 16 διαφορετικές συσκευές που επικοινωνούν ανεξάρτητα μεταξύ τους. Οι συσκευές συνδέονται με καλώδιο DIN 5 ακίδων. Το DIN σημαίνει "Γερμανικό Ινστιτούτο Τυποποίησης" και είναι απλώς ένα καλώδιο με πέντε ακίδες μέσα στο βύσμα. Το USB χρησιμοποιείται συχνά στη θέση του 5-pin DIN, ή μπορεί να χρησιμοποιηθεί μια διεπαφή USB-MIDI.

MIDI-Cable-Male

Έλεγχος αλλαγής και αλλαγής προγράμματος

Υπάρχουν δύο κύριοι τύποι μηνυμάτων MIDI: Αλλαγή ελέγχου και Αλλαγή προγράμματος.

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

Τα μηνύματα αλλαγής προγράμματος (PC) είναι απλούστερα από τα μηνύματα CC. Τα μηνύματα υπολογιστή αποτελούνται από έναν μόνο αριθμό και χρησιμοποιούνται για την αλλαγή της προεπιλογής ή της ενημέρωσης κώδικα σε μια συσκευή. Τα μηνύματα υπολογιστή είναι μερικές φορές γνωστά ως "Patch Change". Παρόμοια με τα μηνύματα CC, οι κατασκευαστές θα πρέπει να παρέχουν ένα έγγραφο που περιγράφει ποιες προεπιλογές αλλάζουν από ένα συγκεκριμένο μήνυμα.

Τι θα χρειαστείτε

  • Arduino
  • Γυναικεία πρίζα DIN 5 ακίδων
  • 2 x 220 ohm αντιστάσεις
  • 2 x 10k ohm αντιστάσεις
  • 2 x στιγμιαίοι διακόπτες
  • Καλώδια σύνδεσης
  • Ψωμί
  • Καλώδιο MIDI
  • Συσκευή MIDI ή διεπαφή USB

Σχέδιο κατασκευής

Αυτό το έργο θα είναι αρκετά απλό. Μπορείτε φυσικά να προσθέσετε περισσότερα κουμπιά ή υλικό που ταιριάζει στις ανάγκες σας. Σχεδόν οποιοδήποτε Arduino θα είναι κατάλληλο - χρειάζονται μόνο τρεις ακίδες για αυτό το παράδειγμα. Αυτό το έργο αποτελείται από δύο κουμπιά για τον έλεγχο του προγράμματος, μια θύρα MIDI για την αποστολή των δεδομένων και μια συσκευή για τη λήψη των μηνυμάτων. Αυτό το κύκλωμα έχει κατασκευαστεί σε ένα ψωμί Ηλεκτρονικά για αρχάριους: 10 δεξιότητες που πρέπει να γνωρίζετεΠολλοί από εμάς δεν έχουν αγγίξει ποτέ ένα κολλητήρι - αλλά το να κάνουμε τα πράγματα μπορεί απίστευτα ικανοποιητικό. Ακολουθούν δέκα από τις πιο βασικές δεξιότητες ηλεκτρονικής DIY για να σας βοηθήσουν να ξεκινήσετε. Διαβάστε περισσότερα Εδώ, ωστόσο, είναι δυνατό να το μεταφέρετε σε ένα κουτί έργου και συγκολλημένους συνδετήρες για μια ισχυρή λύση.

Συνέλευση κυκλώματος

Κύκλωμα Arduino-Midi-Controller

Σύνδεση MIDI

MIDI-Pinout

Συνδέστε την πρίζα MIDI ως εξής:

  • MIDI pin 5 στο Arduino Transmit (TX) 1 μέσω αντίστασης 220 ohm
  • MIDI pin 4 στο Arduino + 5V μέσω αντίστασης 220 ohm
  • MIDI pin 2 στο Arduino ground

Σύνδεση κουμπιού

Τα κουμπιά λειτουργούν αλλάζοντας την αντίσταση που «βλέπει» ο Arduino. Ο πείρος Arduino περνά από το διακόπτη κατευθείαν στη γείωση (ΧΑΜΗΛΟΣ) μέσω αντίστασης 10k ohm (αντίσταση "pull down", διασφαλίζοντας ότι η τιμή παραμένει χαμηλή). Όταν πατηθεί το κουμπί, η τιμή που φαίνεται από το κύκλωμα αλλάζει σε + 5v χωρίς αντίσταση (ΥΨΗΛΟΣ). Το Arduino μπορεί να εντοπίσει αυτήν την αλλαγή χρησιμοποιώντας το digitalRead (καρφίτσα) εντολή. Συνδέστε τα κουμπιά στις ακίδες 6 και 7 στην ψηφιακή είσοδο / έξοδο Arduino (I / O). Συνδέστε και τα δύο κουμπιά:

  • Αριστερή πλευρά του κουμπιού έως + 5V
  • Δεξιά πλευρά του κουμπιού στο Arduino Ground μέσω αντίστασης 10k ohm
  • Δεξιά πλευρά κουμπιού στον πείρο Arduino (6 ή 7)

Δοκιμή MIDI

Τώρα που όλο το υλικό έχει τελειώσει, ήρθε η ώρα να το δοκιμάσετε. Θα χρειαστείτε μια διεπαφή USB-MIDI (πολλές διεπαφές ήχου μπορούν να το κάνουν αυτό) και ένα καλώδιο MIDI. Η θύρα MIDI που είναι συνδεδεμένη στο breadboard στέλνει δεδομένα, έτσι είναι η έξοδος. Ο υπολογιστής σας λαμβάνει τα δεδομένα, επομένως είναι η εισαγωγή. Αυτό το έργο χρησιμοποιεί το εξαιρετικό Arduino Βιβλιοθήκη MIDI v4.2 από τα Forty Seven Effects. Αφού εγκαταστήσετε τη Βιβλιοθήκη, μπορείτε να τη συμπεριλάβετε στον κωδικό σας μεταβαίνοντας στη διεύθυνση Σκίτσο> Συμπερίληψη βιβλιοθήκης> MIDI.

Θα χρειαστείτε επίσης ένα πρόγραμμα για την παρακολούθηση των εισερχόμενων δεδομένων MIDI:

  • Οθόνη MIDI για OS X
  • MIDI-OX για Windows
  • Κ. Μιδίμων για Linux

Συνδέστε το Arduino Ξεκινώντας με το κιτ εκκίνησης Arduino - Εγκατάσταση προγραμμάτων οδήγησης και ρύθμιση της πλακέτας και της θύραςΛοιπόν, έχετε αγοράσει ένα κιτ εκκίνησης Arduino και πιθανώς κάποια άλλα τυχαία δροσερά εξαρτήματα - τώρα τι; Πώς ξεκινάτε πραγματικά με τον προγραμματισμό αυτού του Arduino; Πώς το ρυθμίζετε ... Διαβάστε περισσότερα στον υπολογιστή σας και ανεβάστε τον ακόλουθο δοκιμαστικό κωδικό (μην ξεχάσετε να επιλέξετε τη σωστή πλακέτα και θύρα από το Εργαλεία> Διοικητικό Συμβούλιο και Εργαλεία> Θύρα μενού).

#περιλαμβάνω 
#περιλαμβάνω 
#περιλαμβάνω 
#περιλαμβάνω 
#περιλαμβάνω  MIDI_CREATE_INSTANCE (HardwareSerial, Serial, midiOut); // δημιουργήστε ένα αντικείμενο MIDI που ονομάζεται midiOut void setup () {Serial.begin (31250); // σειριακή εγκατάσταση για MIDI. } κενός βρόχος () {midiOut.sendControlChange (56,127,1); // στείλτε ένα MIDI CC - 56 = σημείωση, 127 = ταχύτητα, 1 = καθυστέρηση καναλιού (1000). // περιμένετε 1 δευτερόλεπτο midiOut.sendProgramChange (12,1); // αποστολή υπολογιστή MIDI - 12 = τιμή, 1 = καθυστέρηση καναλιού (1000). // περιμένετε 1 δευτερόλεπτο. }

Αυτός ο κωδικός θα στείλει ένα μήνυμα CC, περιμένετε 1 δευτερόλεπτο, στείλτε ένα μήνυμα υπολογιστή και στη συνέχεια περιμένετε 1 δευτερόλεπτο επ 'αόριστον. Εάν όλα λειτουργούν σωστά, θα πρέπει να δείτε ένα μήνυμα να εμφανίζεται στην οθόνη MIDI.

Αν δεν συμβεί τίποτα, μην πανικοβληθείτε! Δοκιμάστε την αντιμετώπιση προβλημάτων:

  • Βεβαιωθείτε ότι όλες οι συνδέσεις είναι σωστές
  • Ελέγξτε ότι η θύρα MIDI έχει συνδεθεί σωστά - πρέπει να υπάρχουν 2 εφεδρικές ακίδες στις εξωτερικές άκρες
  • Ελέγξτε ξανά ότι το κύκλωμα είναι σωστό
  • Βεβαιωθείτε ότι το κύκλωμα είναι συνδεδεμένο σε διασύνδεση USB-MIDI με καλώδιο MIDI
  • Βεβαιωθείτε ότι το καλώδιο MIDI είναι συνδεδεμένο στο εισαγωγή στη διασύνδεση USB-MIDI
  • Βεβαιωθείτε ότι το Arduino έχει δύναμη
  • Εγκαταστήστε το σωστό πρόγραμμα οδήγησης για τη διεπαφή USB-MIDI

Αν είστε ακόμη Αντιμετωπίζοντας προβλήματα, ίσως αξίζει να ελέγξετε το breadboard σας. Οι φτηνές πλακέτες μπορεί μερικές φορές να είναι πολύ ασυνεπείς και χαμηλής ποιότητας - μου συνέβη κατά την εργασία σε αυτό το έργο.

Δοκιμή κουμπιών

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

const int buttonOne = 6; // αντιστοιχίστε τον πείρο κουμπιού στη μεταβλητή const int buttonTwo = 7; // αντιστοιχίστε τον ακροδέκτη κουμπιού στη ρύθμιση μεταβλητού κενού () {Serial.begin (9600); // σειριακή ρύθμιση για pin pinMode (buttonOne, INPUT); // κουμπί ρύθμισης ως είσοδος pinMode (buttonTwo, INPUT); // κουμπί ρύθμισης ως είσοδος. } άκυρος βρόχος () {if (digitalRead (buttonOne) == HIGH) {// έλεγχος καθυστέρησης κατάστασης κουμπιού (10); // software de-bounce if (digitalRead (buttonOne) == HIGH) {// ελέγξτε το κουμπί κατάσταση ξανά Serial.println ("Button One Works!"); // καθυστέρηση αποτελέσματος καταγραφής (250) · }} if (digitalRead (buttonTwo) == HIGH) {// έλεγχος καθυστέρησης κατάστασης κουμπιού (10); // software de-bounce if (digitalRead (buttonTwo) == HIGH) {// ελέγξτε ξανά το κουμπί Serial.println ("Button Two Works!"); // καθυστέρηση αποτελέσματος καταγραφής (250) · } } }

Εκτελέστε αυτόν τον κωδικό (αλλά διατηρήστε συνδεδεμένο το καλώδιο USB) και ανοίξτε το Serial Monitor (Επάνω δεξιά> Σειριακή οθόνη). Όταν πατάτε ένα κουμπί θα πρέπει να δείτε το "Button One Works!" ή "Button Two Works!" ανάλογα με το κουμπί που πατήσατε.

Υπάρχει μια σημαντική σημείωση που πρέπει να αφαιρεθεί από αυτό το παράδειγμα - το λογισμικό αποσύνδεσης. Αυτή είναι μια απλή καθυστέρηση 10 χιλιοστών του δευτερολέπτου (μεταξύ του ελέγχου του κουμπιού και στη συνέχεια του ελέγχου του κουμπιού ξανά. Αυτό αυξάνει την ακρίβεια του κουμπιού και βοηθά στην αποφυγή θορύβου που προκαλεί το Arduino. Δεν χρειάζεται να το κάνετε αυτό, αν και συνιστάται.

Δημιουργία του ελεγκτή

Τώρα που όλα είναι ενσύρματα και λειτουργούν, ήρθε η ώρα να συναρμολογήσετε τον πλήρη ελεγκτή.

Αυτό το παράδειγμα θα στείλει ένα διαφορετικό μήνυμα CC για κάθε κουμπί που πατάτε. Το χρησιμοποιώ για τον έλεγχο του Ableton Live 9.6 στο OS X. Ο κωδικός είναι παρόμοιος και με τα δύο δείγματα δοκιμής παραπάνω.

#περιλαμβάνω 
#περιλαμβάνω 
#περιλαμβάνω 
#περιλαμβάνω 
#περιλαμβάνω const int buttonOne = 6; // αντιστοιχίστε τον πείρο κουμπιού στη μεταβλητή const int buttonTwo = 7; // αντιστοιχίστε την καρφίτσα κουμπιού στη μεταβλητή MIDI_CREATE_INSTANCE (HardwareSerial, Serial, midiOut); // δημιουργήστε ένα αντικείμενο MIDI που ονομάζεται midiOut void setup () {pinMode (buttonOne, INPUT); // κουμπί ρύθμισης ως είσοδος pinMode (buttonTwo, INPUT); // κουμπί ρύθμισης ως είσοδος Serial.begin (31250); // ρύθμιση εξόδου MIDI. } άκυρος βρόχος () {if (digitalRead (buttonOne) == HIGH) {// έλεγχος καθυστέρησης κατάστασης κουμπιού (10); // software de-bounce if (digitalRead (buttonOne) == HIGH) {// ελέγξτε την κατάσταση του κουμπιού ξανά midiOut.sendControlChange (56,127,1); // αποστολή MIDI CC - 56 = σημείωση, 127 = ταχύτητα, 1 = καθυστέρηση καναλιού (250). }} if (digitalRead (buttonTwo) == HIGH) {// έλεγχος καθυστέρησης κατάστασης κουμπιού (10); // software de-bounce if (digitalRead (buttonTwo) == HIGH) {// ελέγξτε την κατάσταση του κουμπιού ξανά midiOut.sendControlChange (42,127,1); // στείλτε ένα MIDI CC - 42 = σημείωση, 127 = ταχύτητα, 1 = καθυστέρηση καναλιού (250); } } }

Σημείωση - δεν θα μπορείτε να χρησιμοποιήσετε Serial.println () με έξοδο MIDI.
Αν θέλετε να στείλετε ένα μήνυμα υπολογιστή αντί για ένα CC απλά αντικαταστήστε:

midiOut.sendControlChange (42,127,1);

Με:

midiOut.sendProgramChange (τιμή, κανάλι); 

Εν ΔΡΑΣΕΙ

Παρακάτω είναι μια επίδειξη ως ελεγκτής για Ableton Live (Το καλύτερο λογισμικό DJ για κάθε προϋπολογισμό Το καλύτερο λογισμικό DJ για κάθε προϋπολογισμόΤο καλό λογισμικό ανάμιξης μπορεί να κάνει όλη τη διαφορά στην απόδοσή σας. Είτε χρησιμοποιείτε Mac, Windows ή Linux, κάθε επίπεδο δεξιοτήτων και προϋπολογισμού καλύπτεται εάν θέλετε να ξεκινήσετε το DJing. Διαβάστε περισσότερα ). Στην επάνω δεξιά γωνία εμφανίζονται οι μετρητές ήχου και η επάνω μέση εμφανίζει τα εισερχόμενα μηνύματα midi (μέσω Οθόνη MIDI στο OS X).

Έχετε δημιουργήσει έναν ελεγκτή MIDI;

Υπάρχουν πολλές πρακτικές χρήσεις για έναν προσαρμοσμένο ελεγκτή MIDI. Θα μπορούσατε να δημιουργήσετε μια τεράστια ελεγχόμενη μονάδα ποδιών ή έναν κομψό ελεγκτή στούντιο Και αν σας ενδιαφέρει να αγοράσετε ένα, εδώ είναι οι καλύτεροι ελεγκτές USB MIDI Οι 9 καλύτεροι ελεγκτές USB MIDI για μουσικούςΑναζητάτε έναν ελεγκτή USB MIDI; Εδώ είναι οι καλύτεροι ελεγκτές MIDI που μπορείτε να αγοράσετε τώρα, ανεξάρτητα από τον προϋπολογισμό. Διαβάστε περισσότερα μπορείς να αγοράσεις.

Image Credit: Keith Gentry μέσω του Shutterstock.com

Ο Joe είναι απόφοιτος της Επιστήμης Υπολογιστών από το Πανεπιστήμιο του Λίνκολν του Ηνωμένου Βασιλείου. Είναι επαγγελματίας προγραμματιστής λογισμικού και όταν δεν πετάει drone ή γράφει μουσική, μπορεί συχνά να βρεθεί να τραβά φωτογραφίες ή να δημιουργεί βίντεο.