
תורת מוזיקה למתכנתים: שנים-עשר הצלילים נגזרים בקוד
פוסט בבלוג של RunJS בונה את תורת המוזיקה מהעקרונות הראשונים בקוד: מתנדים, יחסים הרמוניים ובעיות כיוון מובילים לשנים-עשר הצלילים, לסולמות ולאקורדים. ההדגמות מבוססות על JavaScript ועל Web Audio API בדפדפן.
פוסט בבלוג של RunJS מלמד תורת מוזיקה כפי שמהנדס היה לומד אותה: הכול נגזר ממספר אחד שמשתנה בזמן, בעזרת JavaScript פשוט ו-Web Audio API בדפדפן.
המחבר פותח בוידוי — ניסיונות חוזרים ללמוד לנגן שלא עברו מעבר לצלילים בערך נכונים — ומסביר מדוע נכשלו: הסברים על התאוריה הציגו את התוצאה והשמיטו את הסיבה. "הנה חמשה, הנה סולם מז'ורי, שננו את התבנית. למה דווקא הצלילים האלה? כי כך מקובל", הוא כותב. המאמר מתחיל במקום זאת בגל סינוס ולא מבקש מהקורא לקבל דבר באמונה.
מגל סינוס לשנים-עשר הצלילים
קול הוא לחץ אוויר שמשתנה בזמן, ולכן מתנד בתדר 440 הרץ הוא העובדה המוזיקלית היחידה שנדרשת להתחלה: תדר הוא גובה צליל, ו-440 הוא רק המספר שהעולם הסכים לכנות בשם לה. הסיבוך הראשון הוא פיזיקלי ולא מוזיקלי — עצירת מתנד באמצע גל יוצרת קליק, והמאמר מתקן זאת במעטפת עוצמה, עקומת ההתקפה והדעיכה שמפרידה בין צליל בדיקה למשהו ששווה לשמוע פעמיים.
הגוון נובע מהסדרה ההרמונית: מיתר המכוון ל-440 הרץ רוטט גם בחצאים, בשלישים וברבעים ומוסיף תדרים שקטים ב-880, 1320, 1760 ומעלה. המתכון הזה של הרמוניות, ולא הצליל הבסיסי, הוא מה שעושה כינור לשונה מחצוצרה. מכאן נגזרת האוקטבה (הכפלת התדר נותנת אותו צליל) וזו גם הקונסוננס: ככל שהיחס פשוט יותר, כך הצמד נשמע טוב יותר, כי יחסים פשוטים חולקים יותר הרמוניות ופחות "מכים".
הבאג במערכת הכיוון
שתים-עשרה קווינטות טהורות עוברות שבע אוקטבות בפקטור של 1.0136 — הקומה הפיתגוראית, כ-23 סנט. אי אפשר לתקן אותה, והמאמר נותן את הסיבה שמתכנתים מזהים מיד: כדי לסגור את הלולאה צריך ש-3^n יהיה שווה ל-2^(n+m), וחזקה של שלוש לעולם אינה שווה לחזקה של שתיים. הפשרה היא הטמפרציה השווה — חלוקת האוקטבה לשנים-עשר צעדים שווים, שכל אחד מהם הוא השורש השנים-עשר של שתיים. כוח גס על כל דרכי החלוקה מראה למה שתים-עשרה: זה המספר הראשון שהקווינטה הטובה שלו מדויקת עד כעשירית האחוז.
סולמות, אקורדים ומה שנשאר פתוח
מכאן הכול הופך למערכים. סולם הוא רשימה של מרווחים — המז'ורי הוא [2,2,1,2,2,2,1] — המודוסים היווניים הם אותו מערך בסיבוב, ואקורד הוא כל תו שני ([0,2,4]), כי לתווים במרחק שתי דרגות כבר יש הרמוניות משותפות. מז'ור ומינור, מציין המאמר, נבדלים בחצי טון ברכיב אחד בלבד. הספרות הרומיות מתבררות ככתובות יחסיות — ולכן טבלת אקורדים אחת עובדת בכל סולם.
המחבר מסיים ברשימת מה שעדיין אינו מבין, ובהם קצב והובלת קולות, ומפנה לקוראים את "Music Theory for Nerds" של Eevee, אתר LightNote ותיעוד Web Audio של MDN. כל המאמר הוא תשובה של מסורת אחת, הוא מודה — אבל זה כבר לא חומר לשינון.
SiTech — פיתוח אתרים בכוח ה-AI
אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.