תוכן עניינים:

מכונת תוף פטל פי: 5 שלבים
מכונת תוף פטל פי: 5 שלבים

וִידֵאוֹ: מכונת תוף פטל פי: 5 שלבים

וִידֵאוֹ: מכונת תוף פטל פי: 5 שלבים
וִידֵאוֹ: חושף לכם סוד ענק!!🍦😌 2024, נוֹבֶמבֶּר
Anonim
מכונת תופים של פטל פי
מכונת תופים של פטל פי

מדגם רצף, באמצעות פטל פטל + פייתון.

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

כתבתי את התסריט באופן שניתן להפעיל אותו לחלוטין עם כל בקר וצלילים של MIDI. אני משתמש ב -18 בנקים קוליים שונים, 16 דוגמאות כל אחד, אולם הוספה או חיסור של בנקים ודגימות היא קלה ואינה דורשת שינויים רבים. אם יש לך בעיה תשלח לי דוא ל: [email protected]

מצא את הקוד ב- GitHub בכתובת:

אנא יידע אותי אם אתה משתמש בו, ובמיוחד אם תעשה איתו סרטון!

שלב 1: תלות

תוכנית זו דורשת את מודולי Python הבאים (לא מובנים):

mido

פיגמה

ערמומי

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

עדכון $ sudo apt-get

$ sudo apt-get install build-essential

$ sudo apt-get install libasound-dev או libasound2-dev

$ sudo apt-get install libjack0

$ sudo apt-get install libjack-dev

$ sudo apt-get להתקין python-pip

$ sudo apt-get להתקין python-dev

$ sudo pip התקן python-rtmidi

$ sudo pip התקן mido

שלב 2: הגדר ערכי קלט Midi

הגדר ערכי קלט Midi
הגדר ערכי קלט Midi

בתוך סקריפט ה- Python הראשי קיים מערך בשם noteList המורכב מ -16 מספרים שלמים (שורה 165.) אלה הם ערכי הערת ה- MIDI שהבקר שלנו שולח אל הפי כדי להפעיל את הצלילים. עם זאת, כל בקר מידי שונה, כך שאם יש לך גם Akai LPD8 סביר להניח שתצטרך לשנות ערכים אלה כך שיתאימו למכשיר שלך.

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

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

שלב 3: הוסף תיקיות נוספות עם דוגמאות

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

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

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

שלב 4: הוסף והגדר דוגמאות נוספות בתוך תיקיות חדשות

הוסף והגדר דוגמאות נוספות בתוך תיקיות חדשות
הוסף והגדר דוגמאות נוספות בתוך תיקיות חדשות

צלילים נטענים לדגימה באמצעות תיקיות באותה ספרייה המכילות קבצי.wav עם שמות ממוספרים בין 0-15. עיין בתיקיית 808 הכלולה לדוגמא לכך. כל תיקיית משנה עם דוגמאות צריכה להיראות זהה אחת לשנייה.

אינדקס כניסות MIDI ב- noteList המערך תואם בדיוק את שם קובץ ה- wav.

לדוגמה:

  • כאשר אתה מפעיל את פתק ה- MIDI המאוחסן ב- noteList [0] קובץ ה- wav 0. wav יופעל.
  • כאשר אתה מפעיל את פתק ה- MIDI המאוחסן ב- noteList [8] קובץ ה- wav 8. wav יופעל.

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

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

אם ערכת 808 הכלולה פועלת כראוי אך יש לך בעיות עם דוגמאות משלך סביר להניח שהפתרון יהיה לשנות את קצב הדגימה של הקבצים כך שיתאים לקצב המדגם 22, 050khz של PyGame ועומק הסיביות של 16. תוכל לעשות זאת ב- Audacity או כל תוכנת עריכת אודיו אחרת. הם אמורים לעבוד בצורה מושלמת משם!

שלב 5: הפניה למספר לוח

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

התייחסות

תפקידים

[8] - הפעלה וכיבוי של מטרונום

[9] - הפעלה וכיבוי של מצב הקלטה

[Enter] - רצף הפעלה/השהה

[0] - מחק הערה נוכחית ברצף

[Num Lock ו- *] - כיבוי

[הערה MIDI ו.] - אין לכמת מספרים שווים

פונקציות טמפו

[+] - קורס להאיץ BPM

[-] - האטת קורס BPM

[+ ו- *] - להאיץ במהירות BPM במהירות

[- ו *] - האטה מהירה ב- BPM

[+ ו.] - זירוז עדין של BPM

[- ו.] - להאט קצב BPM

פונקציות רצף

[1-6] זכור רצף 1-6

[1-6 ו.] רצף חנות 1-6

[0 ו.] נקה רצף נוכחי

שינוי תיקי דגימה

[1-9 ו- *]-שנה לאריזה לדוגמא בתיקיות 1-9

[1-9 ו- * ו-.]-שנה לאריזה לדוגמא בתיקיות 10-18

טיפים לרצף:

-נקה את הרצף הנוכחי [0 ו-.] ושמור אותו בכל רצפים שתרצה להימחק מהזיכרון.

-זכור רצף ושמור אותו למספר אחר כדי להעתיק אותו.

מוּמלָץ: