חיפוש
  • יניב אור

SuperCollider

מתוך:

https://supercollider.github.io/


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


ל-SuperCollider שלושה מרכיבים:

א. scsynth - שרת אודיו זמן-אמת. הבסיס של המערכת. הוא מאפשר עבודה עם יותר מ-400 UGens - יחידות קוד (אפשר לומר פלאגינים) שעובדות מול השרת ומשמשות לניתוח, סינטזה או עיבוד של סאונד. יש אפשרות לכתוב יחידות כאלו ב-CPP. ראה sc3-plugins.

ב. sclang - שפת תכנות שעובדת עם מפרש (interpreted programming language). ממקודת לסאונד אבל לא מוגבלת לתחום אחד בלבד. שולטת על scsynth באמצעות Open Sound Control. יש לה הרחבות שנקראות Quarks.

ג. scide - עורך טקסט וסביבת פיתוח ל-SC.


התקנתי את SC על הלינוקס מנטה 19 שלי באמצעות apt. הותקנו שלושת הרכיבים.

פתחתי את ה-IDE והדבר הבא שצריך לעשות הוא לאתחל את שרת האודיו (Ctrl-b).

מרגע זה ואילך, האובייקט של השרת נגיש באמצעות האות s. לדוגמא:

והוא נגיש גם ב-Server.default:


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


הנה דוגמא לגל סינוס, ערכים דיפולטיבים - מונו:

וזאת דוגמא לגל סינוס זהה - סטריאו:

מצאתי את הסרטוני יוטיוב האלה:


ואני נעזר בעיקר ב: A Gentle Introduction To SuperCollider


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


דוגמא 1:

- הקוד הזה מייצר את התו מספר 0 (C אמצעי)

- אורך הצליל 0.17 שניות

- עוצמת הצליל משתנה רנדומלית ואותה הגדרה לא חוזרת על עצמה באותה תיבה (Pxrand לעומת Prand)

- הלגאטו משתנה רנדומלית וכנ"ל לגבי החזרה באותה תיבה

דוגמא 2:

- קוד זהה לדוגמא 1, רק שהפעם מתנגנים באקראיות התוים המוגדרים כ-1,3,5,7


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


דוגמא 3:

- סולם מינור הרמוני


* וזה בדיוק מה שחיפשתי לתיבת נגינה 🙂👍


דוגמא 4:

- נוסיף עוד אוקטבה, נמוכה יותר ונשנה את הסולם לסולם הודי


* נשמע טוב


דוגמא 5:

- סולם מז'ור פנטטוני (שתי אוקטבות וחצי):



לרשימת ה-scales המלאה:

כדי לקרוא פקודות sclang מקובץ:

* לא לשכוח להוסיף בראש הקובץ (או מתי שצריך) אתחול לשרת.



שליטה על Pbind דרך OSC (סקריפט פייתון) - עודכן ב-20/7/19


הקוד בצד של ה-SC:


קוד הפייתון ששולח הודעות OSC ל-SC, סקריפט נפרד:

הסבר:

נתחיל בצד של ה-SC, בבלוק שמתחיל ב:

המשתנה degree קובע אילו צלילים ינוגנו מתוך הסולם שנקבע (במקרה שלנו מינור פנטטוני).

אני מייצר מערך בצורה דינמית בעזרת Array.series בניגוד לפעמים הקודמות בהן כתבתי מערך hardcoded. הגודל של המערך נקבע ב-size, מתחיל בערך שב-start וגודל ב-step, שקבענו כ-1.

המערך הזה נוצר רנדומלית בכל סיבוב כשהוא מתנגן ב-Pbind.

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


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


שימו לב לכתובת שנתתי לה את השם musicbox. אפשר לבחור כל שם. נשתמש בכתובת בסקריפט פייתון.


הסקריפט פייתון פשוט ביותר. מתחברים ל-localhost פורט 57120 ושולחים לכתובת: musicbox את ההודעה:

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


* ה-supercollider היא מערכת מאוד מורכבת ויש לי עוד הרבה מה ללמוד עליה. אעדכן בהמשך כאלמד דברים חדשים ומעניינים.


© 2023 by DO IT YOURSELF. Proudly created with Wix.com