Φτιάξτε το δικό σας ελεγκτή MIDI με το Arduino

ΜΕΣΗΜΕΡΙ

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

Για να καταλάβετε καλύτερα τι είναι ο ελεγκτής MIDI, πείτε σας ότι προέρχεται η λέξη MIDI Ψηφιακή διεπαφή μουσικού οργάνου, δηλαδή, ένα είδος ελεγκτή που κάνει ηλεκτρονικές μουσικές συσκευές ικανές να επικοινωνούν μεταξύ τους. Εάν έχετε ένα ηλεκτρονικό πληκτρολόγιο στο σπίτι, για παράδειγμα, είναι πολύ πιθανό ότι διαθέτει μια διεπαφή MIDI. Πριν συνεχίσετε να προχωράτε, παρά το γεγονός ότι υπάρχουν ορισμένες τεχνικές λεπτομέρειες που μπορεί να οδηγήσουν κάποιον να πιστεύει διαφορετικά, πρέπει να είναι πολύ σαφές ότι Το MIDI δεν είναι ήχο.

Δημιουργήστε το δικό σας ελεγκτή MIDI με αυτό το απλό σεμινάριο

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

Χωρίς άλλη παραλλαγή, σας αφήνω με το σύνδεσμο όπου μπορείτε να βρείτε το φροντιστήριο βήμα προς βήμα με πολλά περιγραφικές εικόνες όπου μπορούμε να εκτελέσουμε όλες τις απαραίτητες ενέργειες για να δημιουργήσουμε τον δικό μας ελεγκτή MIDI.

σχετικό άρθρο:
Πώς να αλλάξετε το όνομα χρήστη και τον κωδικό πρόσβασης Pi στο Raspberry Pi

Πώς να φτιάξετε τον δικό σας ελεγκτή MIDI με το Arduino

συνδετήρας midi

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

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

Πώς να φτιάξετε ένα ρομπότ
σχετικό άρθρο:
Πώς να φτιάξετε ένα ρομπότ: 3 διαφορετικές επιλογές

Τι είναι ο ελεγκτής MIDI;

midi

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

Μέσα στο MIDI υπάρχουν δύο διαφορετικοί τύποιΑφενός έχουμε αυτό που ονομάζεται Change Control, όπου έχει τον αριθμό ελεγκτή και μια τιμή μεταξύ 0 και 127. Χάρη σε αυτό, μπορούν να εκδοθούν μηνύματα όπου μπορούν να αλλάξουν διαφορετικές παράμετροι, όπως ένταση ήχος Διαφορετικά όργανα που δέχονται MIDI θα πρέπει να φέρουν ένα εγχειρίδιο που θα εξηγεί ποια κανάλια και μηνύματα ορίζονται από προεπιλογή και πώς να τα αλλάξετε.

Στη δεύτερη θέση έχουμε το Πρόγραμμα Αλλαγής, μια σειρά μηνυμάτων που με τη σειρά τους είναι πολύ απλούστερα από αυτά που συνθέτουν τον Έλεγχο αλλαγών. Αυτοί οι τύποι μηνυμάτων χρησιμοποιούνται για την αλλαγή της προεπιλογής ή της ενημέρωσης κώδικα μιας συσκευής. Όπως και στο Change Control, μαζί με το όργανο, ο κατασκευαστής πρέπει να περιλαμβάνει ένα εγχειρίδιο που να δείχνει ποιες προεπιλογές αλλάζουν από ένα συγκεκριμένο μήνυμα.

Εξαρτήματα που χρειάζονται για τη δημιουργία του δικού σας σπιτικού ελεγκτή MIDI

Σχηματική σύνδεση Midi

Για να μπορέσετε να δημιουργήσετε τον δικό σας ελεγκτή MIDI, θα χρειαστείτε μια σειρά κομματιών εκτός από, όπως έχουμε ήδη αναφέρει, έναν πίνακα Arduino. Πριν συνεχίσετε, απλώς πείτε σας ότι ίσως, στο μέλλον, επειδή θέλετε να επεκτείνετε το έργο, χρειάζεστε περισσότερα πράγματα, αν και, αυτή τη στιγμή με μερικά κομμάτια θα έχετε πολλά.

Χρειαζόμαστε ένα θηλυκό καλώδιο DIN 5 πόλων, 2 220 ohm αντιστάσεις, 2 στιγμιαίους διακόπτες, 2 10k ohm αντιστάσεις, καλώδια σύνδεσης, πλακέτα κυκλώματος, καλώδιο MIDI και συσκευή MIDI ή διασύνδεση USB. Μόνο με αυτά τα κομμάτια μπορείτε να ξεκινήσετε, ακολουθώντας τα βήματά μου, να φτιάξετε τον δικό σας ελεγκτή MIDI.

Πρώτα βήματα

Arduino midi σχηματικό

Πριν ξεκινήσω, σας αφήνω μια εικόνα όπου μπορείτε να δείτε τις ακίδες του καλωδίου MIDI σας, με αυτόν τον τρόπο μπορούμε να αναγνωρίσουμε σωστά τις ακίδες και ειδικά πού να συνδέσουμε κάθε μία. Σε γενικές γραμμές, το μόνο που έχετε να κάνετε σε αυτό το σημείο είναι να συνδέσετε τον ακροδέκτη 5 του καλωδίου σε μια αντίσταση 220 ohm και από εκεί στην Arduino Transmit 1, pin 4 σε μια αντίσταση 220 ohm και από εκεί στην υποδοχή 5V του Arduino ενώ ακουμπάτε 2 πρέπει να είναι συνδεδεμένα στη σύνδεση γείωσης του ελεγκτή σας.

Μόλις γίνει αυτό το βήμα, δεν έχετε ένα λεπτομερές διάγραμμα στη φωτογραφία που βρίσκεται ακριβώς κάτω από αυτές τις γραμμές, είναι καιρός να συνδέσετε τα κουμπιά. Η ιδέα σε αυτήν την ενότητα είναι να επιτύχετε, χρησιμοποιώντας τον πείρο digitalRead (ικανός να ανιχνεύει πότε αλλάζει η τάση που φτάνει) για να μπορεί να χρησιμοποιήσει ένα τρανζίστορ για να επιτύχει, με το πάτημα ενός κουμπιού. Για αυτό πρέπει να χρησιμοποιήσουμε μόνο ένα κουμπί έτσι ώστε, στην αριστερή πλευρά του να το συνδέσουμε με 5V, τη δεξιά πλευρά με αντίσταση 220 ohms και από εκεί στη γείωση, ενώ, με τη σειρά του, συνδέουμε επίσης τη δεξιά πλευρά για να καρφιτσώσουμε 6. Το δεύτερο κουμπί θα εγκατασταθεί με τον ίδιο τρόπο αν και, όπως μπορείτε να δείτε στο διάγραμμα, αντί για τον ακροδέκτη 6 το συνδέουμε στο 7.

Λογισμικό για χρήση για τον οικιακό ελεγκτή midi

Μόλις τελειώσουμε με όλο το υλικό, είναι καιρός να συνδέσουμε το όργανο και τη δοκιμή μας. Πριν από αυτό πρέπει να έχουμε ένα Διεπαφή USB-MIDI και καλώδιο MIDI για να συνδέσετε τον πίνακα, ο οποίος στέλνει δεδομένα, με τον υπολογιστή μας. Για να το επιτύχουμε, επιλέξαμε τη βιβλιοθήκη MIDI v4.2 που δημιουργήθηκε από παιδιά από το Forty Seven Effects που πρέπει να έχουμε εγκαταστήσει στο Arduino και να συμπεριληφθεί στο έργο.

Στην περίπτωση του υπολογιστή, θα χρειαστούμε ένα πρόγραμμα ικανό να επιβλέπει όλα τα δεδομένα MIDI που προέρχονται από αυτό από το Arduino. Για αυτό έχουμε διαφορετικές δυνατότητες, όπως MIDI Monitor (OS X), MIDI-OX (Windows) ή Kmidimon (Linux)

Για να κάνουμε μια μικρή δοκιμή πρέπει απλώς να συνδέσουμε το Arduino στον υπολογιστή μας και να εκτελέσουμε τον ακόλουθο κώδικα:

#include
#include
#include
#include
#include

MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // crear objeto de salida MIDI llamado midiOut

void setup() {
Serial.begin(31250); // configuracion de serial para MIDI
}

void loop() {
midiOut.sendControlChange(56,127,1); // envío de señal MIDI CC -- 56 = nota, 127 = velocidad, 1 = canal
delay(1000); // retraso
midiOut.sendProgramChange(12,1); // envío de una señal MIDI PC -- 12 = valor, 1 = canal
delay(1000); // retraso de 1 segundo
}

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

Έλεγχος ότι τα κουμπιά λειτουργούν σωστά

Πριν συνεχίσετε να τροφοδοτείτε το πρόγραμμά μας με νέες λειτουργίες και κώδικα που μπορούμε να χαθούμε, αξίζει να σταματήσετε για μια στιγμή και ελέγξτε ότι τα κουμπιά λειτουργούν σωστά. Για αυτούς πρέπει να φορτώσουμε τον ακόλουθο κώδικα:

const int boton1 = 6; // asignacion del boton a una variable
const int boton2 = 7; // asignacion del boton a una variable

void setup() {
Serial.begin(9600); // configuracion del serial
pinMode(boton1,INPUT); // configuracion del boton1 como entrada
pinMode(boton2,INPUT); // configuracion del boton2 como entrada
}

void loop() {

if(digitalRead(boton1) == HIGH) { // prueba de estado del boton1
delay(10); // retraso
if(digitalRead(boton1) == HIGH) { // prueba de estado de nuevo
Serial.println("Boton 1 funciona correctamente!"); // log
delay(250);
}
}

if(digitalRead(boton2) == HIGH) { // prueba de boton 2
delay(10); // retraso
if(digitalRead(boton2) == HIGH) { // prueba de estado de nuevo
Serial.println("Boton 2 funciona correctamente!"); // log
delay(250);
}
}

}

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

Δημιουργούμε τον σπιτικό μας ελεγκτή MIDI

Μόλις εκτελέσουμε αυτές τις δοκιμές, είναι καιρός να συναρμολογήσουμε τον δικό μας ελεγκτή MIDI για αυτό, θα χρειαστεί να συντάξετε μόνο τον ακόλουθο κώδικα:

#include
#include
#include
#include
#include

const int boton1 = 6; // asignamos boton a la variable
const int boton2 = 7; // asignamos boton a la variable

MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // create a MIDI object called midiOut

void setup() {
pinMode(boton1,INPUT); // configuracion del boton1 como una entrada
pinMode(boton2,INPUT); // configuracion del boton2 como una entrada
Serial.begin(31250); // configuracion MIDI de salida
}

void loop() {
if(digitalRead(buttonOne) == HIGH) { // comprobacion de estado
delay(10); // retraso
if(digitalRead(buttonOne) == HIGH) { // comprobacion de estado de nuevo
midiOut.sendControlChange(56,127,1); // envío un MIDI CC -- 56 = nota, 127 = velocidad, 1 = canal
delay(250);
}
}

if(digitalRead(buttonTwo) == HIGH) { // comprobacion de estado
delay(10); // retraso
if(digitalRead(buttonTwo) == HIGH) { // nueva comprobacion de estado
midiOut.sendControlChange(42,127,1); // envío un MIDI CC -- 42 = nota, 127 = velocidad, 1 = canal
delay(250);
}
}
}

Για λεπτομέρειες, πείτε σας ότι δεν μπορείτε να χρησιμοποιήσετε την εντολή Serial.println () με έξοδο MIDI αυτή τη φορά, εάν θέλετε να εμφανίσετε κάποιο είδος μηνύματος στον υπολογιστή, απλώς αλλάξτε:

midiOut.sendControlChange(42,127,1);

από:

midiOut.sendControlChange(value, channel);

όπου η τιμή και το κανάλι πρέπει να έχουν τις επιθυμητές τιμές που θέλετε να εμφανίζονται.

Παράδειγμα λειτουργίας:


4 σχόλια, αφήστε τα δικά σας

Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   Alfred dijo

    Το Arduino σας προσφέρει πολλές δυνατότητες να αναλάβετε έργα μόνοι σας https://www.juguetronica.com/arduino . Ένα από τα καλύτερα πράγματα είναι ότι μπορείτε να ξεκινήσετε χωρίς να είστε ειδικός και να συνεχίσετε να μαθαίνετε, παρακινώντας έτσι τον εαυτό σας να αυτοδίδακτος.

  2.   Danel Roman dijo

    Χαιρετισμούς.

    Προσπαθώ να πραγματοποιήσω αυτό το φανταστικό σεμινάριο… αλλά τα # δεν περιλαμβάνουν πλήρη….

    Μπορείτε να μου πείτε ποια είναι απαραίτητα;

    Σας ευχαριστώ πολύ.

  3.   Ούελ dijo

    Γεια σου.
    Θα ήθελα να φτιάξω μια ηλεκτρονική μονάδα τυμπάνου αντικαθιστώντας τα κουμπιά με εισόδους υποδοχής στις οποίες θα φτάσει ένα πιεζοηλεκτρικό σήμα.
    Θα ήταν δυνατόν να το κάνουμε;

  4.   Εντουάρντο Βαλεντζουέλα dijo

    Εάν μπορούσατε να δώσετε τα περιεχόμενα αυτού του κώδικα, με ενδιαφέρει αυτό το έργο.