פרסומת

כמוזיקאי שצבר אוסף של כלי נגינה ותיבות רעש, הארדואינו הצנוע הוא הכלי המושלם ליצירת בקר MIDI בהתאמה אישית. בעוד שפטל פטל עשוי לקחת את הכתר עבור האינטרנט של הדברים (IoT) האינטרנט של הדברים: 10 מוצרים שימושיים שעליך לנסות בשנת 2016האינטרנט של הדברים הולך ועלה בשנת 2016, אבל מה זה אומר בדיוק? איך אתה נהנה באופן אישי מהאינטרנט של הדברים? להלן מספר מוצרים שימושיים להמחשה. קרא עוד פרויקטים, Arduino Uno פשוט (מהם הסוגים השונים של ארדואינו? מדריך רכישה של ארדואינו: איזה לוח עליכם לקבל?יש כל כך הרבה סוגים שונים של לוחות ארדואינו שיש סליחה על כך שהתבלבלת. איזה אתה צריך לקנות לפרויקט שלך? בואו נעזור, עם מדריך הקנייה הזה של Arduino! קרא עוד ) יש די והותר כוח לפרויקט זה.

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

instagram viewer
ארדואינו-מידי-בקר-לחם

מה זה MIDI?

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

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

כבל MIDI

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

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

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

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

מה שאתה תצטרך

  • ארדואינו
  • שקע נקבה DIN בעל 5 פינים
  • נגדים 2 x 220 אוהם
  • נגדי 2 או 10 ק"ג אוהם
  • 2 x מתגים רגעיים
  • חוטי חיבור
  • טיפוס לחם
  • כבל MIDI
  • התקן MIDI או ממשק USB

בניית תוכנית

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

הרכבת מעגלים

מעגל ארדואינו-מידי

חיבור MIDI

MIDI-Pinout

חבר את שקע ה- MIDI באופן הבא:

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

חיבור לחצן

הכפתורים פועלים על ידי שינוי ההתנגדות שארדואינו "רואה". סיכת הארדוינו עוברת דרך המתג ישר לאדמה (נמוך) דרך נגן 10 ק"ג אוהם (נגן "למשוך" ומבטיח שהערך יישאר נמוך). כשלוחצים על הכפתור, הערך שרואים במעגל משתנה ל- + 5v ללא נגדי (גבוה). הארדואינו יכול לאתר שינוי זה באמצעות digitalRead (סיכה) פקודה. חבר את הכפתורים לפינים 6 ו 7 בכניסה / פלט דיגיטלי של Arduino (קלט / פלט). חבר את שני הכפתורים:

  • הצד השמאלי של הכפתור ל + 5V
  • הצד הימני של הכפתור לארדואינו קרקע דרך נגן 10 ק"ג אוהם
  • הצד הימני של הכפתור לסיכת הארדואינו (6 או 7)

בדיקת MIDI

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

תצטרך גם תוכנית לפקח על נתוני ה- MIDI הנכנסים:

  • צג MIDI עבור מערכת הפעלה X
  • MIDI-OX עבור חלונות
  • קמדימון עבור לינוקס

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

# כלול 
# כלול 
# כלול 
# כלול 
# כלול  MIDI_CREATE_INSTANCE (חומרה Serial, Serial, midiOut); // ליצור אובייקט MIDI בשם MidiOut void setup () {Serial.begin (31250); // סדרת התקנה עבור MIDI. } לולאה חלל () {midiOut.sendControlChange (56,127,1); // שלח MIDI CC - 56 = הערה, 127 = מהירות, 1 = עיכוב ערוץ (1000); // המתן שעה שנייה midiOut.send תוכנית שינוי (12,1); // שלח מחשב MIDI - 12 = ערך, 1 = עיכוב ערוץ (1000); // חכה שנייה. }

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

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

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

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

בדיקת כפתור

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

const int buttonOne = 6; // להקצות סיכת כפתור למשתנה. const int buttonTwo = 7; // להקצות סיכת כפתור להגדרת חלל משתנה () {Serial.begin (9600); // הגדרת סידורי עבור pinMode טקסט (buttonOne, INPUT); // לחצן הגדרה ככניסה pinMode (כפתור Two, INPUT); // לחצן הגדרה כקלט. } לולאת חלל () {if (digitalRead (buttonOne) == HIGH) {// בדוק עיכוב מצב כפתור (10); // ניתוב תוכנה אם (digitalRead (buttonOne) == HIGH) {// בדוק שוב את מצב הכפתור Serial.println ("כפתור אחד עובד!"); // עיכוב תוצאת יומן (250); }} if (digitalRead (buttonTwo) == HIGH) {// בדוק עיכוב מצב כפתור (10); // הפסקת תוכנה אם (digitalRead (buttonTwo) == HIGH) {// בדוק שוב את מצב הכפתור Serial.println ("כפתור שני עובד!"); // עיכוב תוצאת יומן (250); } } }

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

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

יצירת הבקר

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

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

# כלול 
# כלול 
# כלול 
# כלול 
# כלול const int buttonOne = 6; // להקצות סיכת כפתור למשתנה. const int buttonTwo = 7; // להקצות סיכת כפתור למשתנה MIDI_CREATE_INSTANCE (HardwareSerial, Serial, midiOut); // ליצור אובייקט MIDI שנקרא הגדרת חלל midiOut void () {pinMode (buttonOne, INPUT); // לחצן הגדרה ככניסה pinMode (כפתור Two, INPUT); // לחצן הגדרה כקלט Serial.begin (31250); // הגדרת פלט MIDI. } לולאת חלל () {if (digitalRead (buttonOne) == HIGH) {// בדוק עיכוב מצב כפתור (10); // הפסקת תוכנה אם (digitalRead (buttonOne) == HIGH) {// בדוק שוב את מצב הכפתור midiOut.sendControlChange (56,127,1); // שלח MIDI CC - 56 = הערה, 127 = מהירות, 1 = עיכוב ערוץ (250); }} if (digitalRead (buttonTwo) == HIGH) {// בדוק עיכוב מצב כפתור (10); // הפסקת תוכנה אם (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, כל רמת מיומנות ותקציב מוגדרים אם ברצונך להתחיל DJ. קרא עוד ). בצד ימין למעלה מראים את מדדי השמע, והאמצע העליון מציג את הודעות המיד הנכנסות (דרך צג MIDI במערכת ההפעלה X).

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

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

אשראי תמונה: קית 'ג'נטרי דרך Shutterstock.com

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