כיצד להכין בקר MIDI עם ארדואינו

כיצד להכין בקר MIDI עם ארדואינו

כמוזיקאי שצבר אוסף של כלי נגינה וארגזי רעש, הארדואינו הצנוע הוא הכלי המושלם ליצירת בקר MIDI מותאם אישית. אמנם ייתכן ש- Raspberry Pi לקח את הכתר לפרויקטים של Internet of Things (IoT), אך ל- Uno Arduino פשוט (מהם הסוגים השונים של Arduino?) יש מספיק כוח לפרויקט הזה.





פעם ראשונה שאתה משתמש בארדואינו? אין מה לדאוג, יש לנו השלמה מלאה מדריך למתחילים של ארדואינו לקרוא לפני שתתמודד עם הפרויקט הזה.





מהו MIDI?

MIDI מייצג ממשק דיגיטלי של כלי נגינה. הוא מתאר דרך סטנדרטית של התקנים מוזיקליים לתקשר זה עם זה. אם אתה הבעלים של מקלדת אלקטרונית כנראה שיש לך ממשק MIDI. אמנם ישנם כמה פרטים טכניים המעורבים ביישום MIDI, אך חשוב לזכור כי MIDI אינו אודיו! נתוני MIDI הם מערכת הוראות פשוטה (הוראה אחת נקראת 'הודעה') שמכשיר אחר עשוי ליישם כדי להשמיע צלילים שונים או לשלוט בפרמטרים.





MIDI תומך ב 16 ערוצים. המשמעות היא שכל כבל יכול לתמוך ב -16 מכשירים שונים המתקשרים באופן עצמאי זה עם זה. התקנים מחוברים באמצעות כבל DIN 5 פינים. DIN מייצג 'המכון הגרמני לתקינה', והוא פשוט כבל עם חמישה פינים בתוך המחבר. USB משמש לעתים קרובות במקום DIN 5 פינים, או שניתן להשתמש בממשק USB-MIDI.

MIDI-כבל-זכר



בקרת שינוי ושינוי תכניות

ישנם שני סוגים עיקריים של הודעת MIDI: שינוי בקרה ושינוי תכנית.

הודעות Control Change (CC) מכילות מספר בקר וערך בין 0 ל -127. לעתים קרובות משתמשים בהודעות CC לשינוי הגדרות כגון עוצמת קול או גובה. התקנים המקבלים MIDI צריכים להגיע עם מדריך המסביר אילו ערוצים והודעות מוגדרים כברירת מחדל וכיצד ניתן לשנות אותם (המכונה מיפוי MIDI).





הודעות Program Change (PC) פשוטות יותר מהודעות CC. הודעות מחשב מורכבות ממספר יחיד ומשמשות לשינוי ההגדרה הקבועה או התיקון במכשיר. הודעות PC ידועות לפעמים בשם 'שינוי תיקון'. בדומה להודעות CC, היצרנים צריכים לספק מסמך המפרט את ההגדרות הקבועות מראש שהן משתנות על ידי הודעה מסוימת.

מה שאתה תצטרך

  • ארדואינו
  • שקע נקבה DIN 5 פינים
  • נגדים 2 x 220 אוהם
  • נגדים 2 x 10k אוהם
  • 2 מתגים רגעיים
  • חוטי חיבור
  • לוח לחם
  • כבל MIDI
  • מכשיר MIDI או ממשק USB
מים ועץ 5 יחידות DIN 5 פינים PCB הרכבה שקעי נקבה למקלדת מחשב קנה עכשיו ב- AMAZON

בנה תוכנית

הפרויקט הזה יהיה פשוט למדי. אתה יכול כמובן להוסיף לחצנים או חומרה נוספים שיתאימו לצרכיך. כמעט כל ארדואינו יתאים - רק שלוש סיכות נחוצות לדוגמה זו. פרויקט זה מורכב משני כפתורים לשליטה בתוכנית, יציאת MIDI לשליחת הנתונים ומכשיר לקבלת ההודעות. מעגל זה נבנה כאן על לוח לחם, אולם ניתן להעביר אותו לקופסת פרוייקטים ומחברים מולחמים לפתרון חזק.





מכלול מעגל

מעגל Arduino-Midi-Controller

חיבור MIDI

MIDI-Pinout

חבר את שקע ה- MIDI שלך כדלקמן:

  • פין MIDI 5 לשידור Arduino (TX) 1 באמצעות נגד של 220 אוהם
  • פין MIDI 4 ל- Arduino +5V באמצעות נגד של 220 אוהם
  • סיכת MIDI 2 לקרקע ארדואינו

חיבור כפתור

הכפתורים פועלים על ידי שינוי ההתנגדות שהארדואינו 'רואה'. סיכת הארדואינו עוברת דרך המתג הישר לאדמה ( נָמוּך ) באמצעות נגד 10k אוהם (נגד 'משיכה כלפי מטה', המבטיח שהערך יישאר נמוך). כאשר לוחצים על הכפתור, הערך הנראה על ידי המעגל משתנה ל- +5v ללא נגד ( גָבוֹהַ ). הארדואינו יכול לזהות שינוי זה באמצעות DigitalRead (סיכה) פקודה. חבר את הכפתורים לפינים 6 ו -7 בכניסה/פלט דיגיטלי של Arduino (I/O). חבר את שני הכפתורים:

  • צד שמאל של הלחצן עד 5V
  • צד ימין של הכפתור ל- Arduino Ground באמצעות נגד 10k אוהם
  • צד ימין של הכפתור לסיכת Arduino (6 או 7)

בדיקת MIDI

כעת, לאחר שכל החומרה הסתיימה, הגיע הזמן לבדוק אותה. תזדקק לממשק USB-MIDI (ממשקי שמע רבים יכולים לעשות זאת) וכבל MIDI. יציאת MIDI המחוברת ללוח הלוח שולחת נתונים, כך שזה הפלט. המחשב שלך מקבל את הנתונים ולכן הוא הקלט. פרויקט זה משתמש בארדואינו המעולה ספריית MIDI v4.2 מאת ארבעים ושבע אפקטים. לאחר שהתקנת את הספרייה, תוכל לכלול אותה בקוד שלך על ידי מעבר אל סקיצה> כלול ספרייה> MIDI .

תזדקק גם לתוכנית לניטור נתוני MIDI הנכנסים:

חבר את ה- Arduino למחשב שלך והעלה את קוד הבדיקה הבא (אל תשכח לבחור את הלוח והיציאה הנכונים מתוך כלים> לוח ו כלים> יציאה תפריטים).

#include
#include
#include
#include
#include
MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // create a MIDI object called midiOut
void setup() {
Serial.begin(31250); // setup serial for MIDI
}
void loop() {
midiOut.sendControlChange(56,127,1); // send a MIDI CC -- 56 = note, 127 = velocity, 1 = channel
delay(1000); // wait 1 second
midiOut.sendProgramChange(12,1); // send a MIDI PC -- 12 = value, 1 = channel
delay(1000); // wait 1 second
}

קוד זה ישלח הודעת CC, המתן שנייה אחת, שלח הודעת מחשב ואז המתן שנייה אחת ללא הגבלת זמן. אם הכל פועל כראוי אתה אמור לראות הודעה שמופיעה בצג ה- MIDI שלך.

אם לא קורה כלום אל תיבהל! נסה לפתור בעיות:

  • ודא שכל החיבורים נכונים
  • בדוק כי יציאת MIDI מחוברת כראוי - צריכים להיות 2 סיכות רזרביות בקצוות החיצוניים
  • בדוק שוב שהמעגל נכון
  • ודא שהמעגל מחובר לממשק USB-MIDI עם כבל MIDI
  • בדוק שכבל MIDI שלך מחובר ל- קֶלֶט בממשק ה- USB-MIDI שלך
  • ודא שלארדואינו יש כוח
  • התקן את מנהל ההתקן הנכון עבור ממשק ה- USB-MIDI שלך

אם אתה עוֹד אם נתקלת בבעיות, אולי כדאי לבדוק את לוח הלחם שלך. לוחות זולים לפעמים יכולים להיות מאוד לא עקביים ואיכותיים-זה קרה לי בזמן העבודה על הפרויקט הזה.

בדיקת כפתורים

עכשיו הגיע הזמן לבדוק שהכפתורים עובדים כראוי. העלה את קוד הבדיקה הבא. אין צורך לחבר את MIDI כדי לבדוק חלק זה.

const int buttonOne = 6; // assign button pin to variable
const int buttonTwo = 7; // assign button pin to variable
void setup() {
Serial.begin(9600); // setup serial for text
pinMode(buttonOne,INPUT); // setup button as input
pinMode(buttonTwo,INPUT); // setup button as input
}
void loop() {

if(digitalRead(buttonOne) == HIGH) { // check button state
delay(10); // software de-bounce
if(digitalRead(buttonOne) == HIGH) { // check button state again
Serial.println('Button One Works!'); // log result
delay(250);
}
}

if(digitalRead(buttonTwo) == HIGH) { // check button state
delay(10); // software de-bounce
if(digitalRead(buttonTwo) == HIGH) { // check button state again
Serial.println('Button Two Works!'); // log result
delay(250);
}
}

}

הפעל קוד זה (אך שמור על כבל ה- USB מחובר) ופתח את הצג הסידורי ( למעלה מימין> צג סידורי ). כאשר אתה לוחץ על כפתור אתה אמור לראות 'כפתור אחד עובד!' או 'כפתור שני עובד!' תלוי בכפתור שלחצת עליו.

יש הערה אחת חשובה שצריך לקחת מהדוגמה הזו-ביטול הקפצה של התוכנה. זהו עיכוב פשוט של 10 אלפיות השנייה (ms) בין בדיקת הכפתור ולאחר מכן בדיקת הכפתור שוב. זה מגביר את הדיוק בלחיצת הכפתור ומסייע במניעת רעש המפעיל את הארדואינו. אינך חייב לעשות זאת, למרות שמומלץ.

יצירת הבקר

עכשיו, כשהכל חוטי ועובד, הגיע הזמן להרכיב את הבקר המלא.

דוגמה זו תשלח הודעת CC שונה לכל לחצן שנלחץ עליו. אני משתמש בזה כדי לשלוט ב- Ableton Live 9.6 במערכת ההפעלה X. הקוד דומה לשתי דגימות הבדיקה שלמעלה.

#include
#include
#include
#include
#include
const int buttonOne = 6; // assign button pin to variable
const int buttonTwo = 7; // assign button pin to variable
MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // create a MIDI object called midiOut
void setup() {
pinMode(buttonOne,INPUT); // setup button as input
pinMode(buttonTwo,INPUT); // setup button as input
Serial.begin(31250); // setup MIDI output
}
void loop() {
if(digitalRead(buttonOne) == HIGH) { // check button state
delay(10); // software de-bounce
if(digitalRead(buttonOne) == HIGH) { // check button state again
midiOut.sendControlChange(56,127,1); // send a MIDI CC -- 56 = note, 127 = velocity, 1 = channel
delay(250);
}
}

if(digitalRead(buttonTwo) == HIGH) { // check button state
delay(10); // software de-bounce
if(digitalRead(buttonTwo) == HIGH) { // check button state again
midiOut.sendControlChange(42,127,1); // send a MIDI CC -- 42 = note, 127 = velocity, 1 = channel
delay(250);
}
}
}

שימו לב - לא תוכלו להשתמש Serial.println () עם פלט MIDI.

אם ברצונך לשלוח הודעת מחשב במקום CC, פשוט החלף:

midiOut.sendControlChange(42,127,1);

עם:

midiOut.sendProgramChange(value, channel);

בִּפְעוּלָה

להלן הדגמה כבקר עבור Ableton Live ( תוכנת ה- DJ הטובה ביותר לכל תקציב ). בפינה השמאלית העליונה מוצגים מדידי השמע, ובאמצע העליון מוצגים הודעות המידי הנכנסות (באמצעות צג MIDI ב- OS X).

איך אני מצמצם את גודל הקובץ של jpeg?

האם יצרת בקר MIDI?

יש הרבה שימושים מעשיים לבקר MIDI מותאם אישית. תוכל לבנות יחידה עצומה הנשלטת על רגליים, או בקר סטודיו אלגנטי. ואם אתה מעוניין לרכוש אחד, הנה בקרי ה- USB MIDI הטובים ביותר שאתה יכול לקנות.

קרדיט תמונה: קית 'ג'נטרי באמצעות Shutterstock.com

אנו מקווים שאהבתם את הפריטים שאנו ממליצים עליהם ודנים בהם! ל- MUO שותפויות שותפות וממומנות, כך שאנו מקבלים נתח מההכנסות מכמה מהרכישות שלך. זה לא ישפיע על המחיר שאתה משלם ועוזר לנו להציע את המלצות המוצר הטובות ביותר.

לַחֲלוֹק לַחֲלוֹק צִיוּץ אימייל האם כדאי לשדרג ל- Windows 11?

Windows עוצב מחדש. אבל האם זה מספיק כדי לשכנע אותך לעבור מ- Windows 10 ל- Windows 11?

קרא הבא
נושאים קשורים
  • עשה זאת בעצמך
  • תוכנת DJ
  • ארדואינו
  • מכשירי חשמל
  • צָהֳרַיִים
על הסופר ג'ו קוברן(136 מאמרים פורסמו)

ג'ו בוגר מדעי המחשב מאוניברסיטת לינקולן שבבריטניה. הוא מפתח תוכנה מקצועי, וכשהוא לא מטיס רחפנים או כותב מוזיקה, לעתים קרובות אפשר למצוא אותו מצלם או מפיק סרטונים.

עוד מאת ג'ו קוברן

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים, סקירות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחצו כאן להרשמה