תפריט
שלום Anonymous ::: 2025, 01:57
Facebook
musical act magazine המגזין הישראלי לטכנולוגיות באודיו ומוסיקה Musical Act Magazine
שאלה בקשר ל MIDI command controller (CC)
שרשרת זו הוגדרה כמועילה (95) ›
 הגב לנושא
שימו לב: ההודעה האחרונה בשרשרת זו נכתבה לפני יותר משנה.
חשוב היטב לפני שיגור מענה לשרשרת זו
   ראשי » מקלדות, סינטים ושלטים - Synth
  agurvitz  
הצטרף: 10 אוג' 06
הודעות: 355
מיקום: ירושלים
שאלה בקשר ל MIDI command controller (CC)
הודעה פורסם: שישי 04 אפר',14 17:54   
שלום.. סליחה אם אני ישמע לא ברור לחלק מהקוראים.. אם למישהו תהיה שאלה בקשר להודעה אשמח לפרט..

מבחינה תיאורטית הבנתי ש CC ID שבין 32-63 הם בעצם fine controllers ל CC 0 - 31 שזה בין היתר גלגל המדוליישן וכו.

(בקיובייס זה נקרא לצורך העניין LSB Modulation CC33)

מה ההבדל או איך הקונטרולרים שהם LSB באים לידי ביטוי בשליטה על הכלים?

בפועל לא ראיתי שהקונטרולרים שהם LSB מוסיפים או משנים את הקונטרולרים המקוריים שלהם (CC 0 - 31), הם פשוט משנים פרמטר מיועד בכלי ומשמשים בסך הכל כעוד קונורולר רגיל או ליתר דיוק שולחים Control change massage רגיל


תודה רבה
acidhead
Expert
הצטרף: 04 אוג' 11
הודעות: 687
הודעה פורסם: שבת 05 אפר',14 00:30   
זה פשוט איך שהפקודות נשלחות, ב 2byte במקום ב 1byte. אין מה לראות.
הביטוי בשליטה על כלים הוא שבגלגלת מודוליישן למשל יש לך מספיק רזולוציה כדי שלא יהיו "מדרגות" בשליטה על הפיטץ' או בכל ערך אחר ש 128 "קפיצות" לא מספיקות.

יכול להיות שלא הבנתי את השאלה, באיזה הקשר אתה שואל?
orengliki
תומך
הצטרף: 06 ינו' 11
הודעות: 427
מיקום: פתח תקווה
הודעה פורסם: שבת 05 אפר',14 08:44   
אני לא חושב שהבנתי את השאלה.
sb- sound bank
לדעתי זה שם שקיים רק בקיובייס. לא ראיתי תכנה אחרת עם אותו השם...
נסה למקד יותר...
_________________
http://soundcloud.com/orengliki

Orchestral Production
http://www.orchestral-production.com/
shaharv
S.Supporter
הצטרף: 25 יונ' 01
הודעות: 5210
מיקום: רעננה
הודעה פורסם: שבת 05 אפר',14 12:44   
פקודת מידי בודדת (MSB) נותנת 128 מדרגות.
מאחר ויש פרמטרים ש128 לא מספיקים להם, נוספה פקודת הLSB שמוספיה עוד 128 מדרגות בין כל מדרגה של הMSB

תחשוב על זה כמו כתובת, רחוב שאול המלך 7 (MSB) דירה 6(LSB)
הפקודה השניה מאפשרת 128 ערכי ביניים עבור כל ערך מקורי. אפשר לחשוב על זה גם כעל זוג סרגלים:
סרגל אחד נותן חלוקה גסה לסנטימטרים, והשני נותן חלוקה למילימטרים, ואפשר למקם אותו בכל מקום על הסרגל הגס.

הפקודות נפרדות אחת מהשניה משתי סיבות, הראשונה טכנית וכאמור מגבילה כל פקודה ל128 ערכים. השניה היא תאימות, מאחר ולא כל כלי מידי צריך (אוו יכול להתמודד עם) ערכים ברמת דיוק גבוהה, הפקודות נשארות מופרדות ורק כלי שצריך אותן יפנה אל התחום (32-64) הנוסף
  agurvitz  
הצטרף: 10 אוג' 06
הודעות: 355
מיקום: ירושלים
הודעה פורסם: שבת 05 אפר',14 14:01   
שחר, כשניסיתי להקשיב לשני גלגלי המודוליישן: MSB ו- LSB לא שמעתי הבדל. שניהם היו בעלות רזולוציה גבוה.

האם זה בגלל שהכלי או הכלים שהקשבתי לגלגלים יודעים להפוך את המודוליישן הגס (Coarse) למודוליישן עדין (Fine/LSB) באופן אוטומטי?

ז"א, מדובר רק על כלים ישנים שמתייחסים ל MSB כקונטרולר גס וה LSB באמת נדרש כדי לעדן את המדרגות הגסות באותם כלים ישנים?

שוב אני אומר, בכלים שבדקתי את ה MSB הוא היה נשמע רציף לגמרי, לא בעל מדרגות..
shaharv
S.Supporter
הצטרף: 25 יונ' 01
הודעות: 5210
מיקום: רעננה
הודעה פורסם: שבת 05 אפר',14 14:10   
זה תלוי בקונטרולר ובכלי הנשלט, וגם בפונקציה עצמה שעליה אתה שולט.
צריך לבדוק את התיעוד שלהם, אבל בגדול כן.
קונטרולר יכול לשלוח 2פקודות מידי כדי לייצר ערכי ביניים וכלי מידי יכול לקבל שתי פקודות ולנתב אותן לפונקציה בודדת. זה כל הרעיון בשיטה הזו, אין באמת צורך בשני פקדים ויעדים שונים לפקודות, זה אמור להיות שקוף למשתמש.

אתה יכול לבדוק עם מידי מוניטור (כמו midi ox) מה בדיוק הקונטרולר שלך שולח מהמודוליישן (או שאולי זה נמצא בתיעוד)
  agurvitz  
הצטרף: 10 אוג' 06
הודעות: 355
מיקום: ירושלים
הודעה פורסם: שבת 05 אפר',14 15:59   
orengliki:
ציטוט:
אני לא חושב שהבנתי את השאלה.
sb- sound bank
לדעתי זה שם שקיים רק בקיובייס. לא ראיתי תכנה אחרת עם אותו השם...
נסה למקד יותר...



בשביל לפרט את השאלה צריך להסביר את התיאוריה..

כל פקודת מידי מורכבת מ"הודעה" (massage) בעלת בייטים (bytes)
בכל בייט אחד כאמור יש 8 ביט (8bit). בכל 8 ביט יש 128 ערכים שאיתם ניתן להודיע לכלי 128 פקודות/פונקציות.. זה יכול להיות כל דבר!

עכשיו לעקוב ולזכור..
כמו שאמרתי, בכל פקודת מידי ישנם מספר מסויים של בייטים (bytes).
כל פרמטר שאתה שולט בו מצריך סכום אחר של [U]בייטים[/U].
כל פקודת מידי שולחת הודעה מצב והודעת נתונים (מה שנותן לי את הערכים, 128)
כל בייט שמתחיל בספרה 1 מתורגמת ע"י הכלי לפקודת מצב (status)
כל בייט שמתחיל בספרה 0 מתורגמת ע"י הכלי לפקודת נתונים (data)

עכשיו נראה איך זה עובד בזמן אמת..
למשל פקודת מידי און.
MIDI Note-ON Massage.
בכל פעם שנלחץ תו כל שהו במקלדת, נשלחת פקודת מידי לכלי שברוב המקרים (או תמיד) תפעיל פרמטר שנקרא Gate שתגרום לתו להישמע.

בפקודה זו (מידי נוט און) נשלחים 3 בייטים (bytes) שבכל אחד ישנם 8 ביטים שתפקידם להעיד לאיזה ערוץ נשלחת הפקודה (מתוך 16 ערוצי מידי), מה הערך של הפרמטר (במקרה שלנו ON, זהו), ותפקיד הבייט השלישי (במקרה הזה) להעיד מה ערך ה attack velocity של אותו תו (או בשפה עממית, ערך הווליום של אותו תו)
המחשב ייראה את התרגום הנ"ל בצורה הזאת:
(01011001) (01000000) (10010100)

ושוב, כמו שניתן לראות, כל בייט מורכב מ 8 ביט (או ספרות)

לא להיבהל מהמספרים אגב, העתקתי את זה מהמדריך למידי (3rd edition).

עכשיו נפרק את הבייטים והביטים (כל המספרים הנ"ל) בצורה מפורטת.
בכל פעם שמתבעצת לחיצה על תו..
הבייט הראשון משמאל (כל 8 הספרות) שולח פקודת מצב (status) שאומר: (אגב שימו לב שהבייט הראשון משמאל מתחיל בספרה 1)
1. באיזה פרמטר מדובר. (MIDI Note ON) (4 ספרות/ביט הראשונות משמאל)
2. באיזה ערוץ לשלוט באותו הפרמטר (CH#5) (4 ספרות/ביט שאחריו)

שאר הבייטים, האמצעי והימיני שולחים פקודת נתונים.. (date) שאומר:
- באיזה ערך הפרמטר הנשלט, או במקרה שלנו באיזה תו מדובר (8 ספרות/ביטים שבאמצע)
- באיזה ערך הפרמטר של הווליום של הוולוסיטי (8 ספרות/ביטים שמימין)
ושימו לב שפקודת נתונים תתחיל בספרה 0

בכל 8 ביט יש 256 ערכים אבל בגלל שהביט הראשון אומר לכלי אם מדובר בפקודת מצב או פקודת נתונים אנחנו נותרים עם 7 ביט בלבד ולכן יש לנו רק 128 ערכים בכל בייט אחד.

ישנם פרמטרים כמו Mod Wheel שמצרפים אליהם עוד בייט אחד (8 ביט) של נתונים שמכפיל כל ערך בעוד 128 ערכים וכך נקבל בעצם 128x128 שזה יצא 16,384 שנותן לנו רזולוציה רציפה ועדינה יותר.

ל 128 ערכים התייחסנו כרזולוציה גסה. (Caorse resolution)
ול 16,384 אפשר להתייחס כרזולוציה עדינה. (Fine resolution)


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

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

#thankyou
  agurvitz  
הצטרף: 10 אוג' 06
הודעות: 355
מיקום: ירושלים
הודעה פורסם: שבת 05 אפר',14 16:00   
shaharv:
ציטוט:

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


תודה רבה! אני גם ינסה באמת לבדוק את זה
shaharv
S.Supporter
הצטרף: 25 יונ' 01
הודעות: 5210
מיקום: רעננה
הודעה פורסם: שבת 05 אפר',14 16:30   
LSB (או lsb אם מדברים על ביטים) מתייחס למיקום שלו.
הביט האחרון של הבייט תורם את שינוי הערך הקטן ביותר.
הבייט השני מבין השניים, נותן שינויי ערך קטנים יותר.

במידי, הפקודה הנוספת (32-64) היא בייט שלם (לא בדיוק, רק 7 ביט) שמיועד לתת ערכי ביניים בין הערכים של הפקודה הראשית.

כמו שהסברתי במקרה הסרגל:
סרגל של 10 ס״מ (בקפיצות של 1 ס״מ) וסרגל של 10 מ״מ (בקפיצות של 1 מ״מ) ניתן לייצר ע״יי אותה כמות ערכים, ובעצם הגודל ה״מחשבי״ שלהם זהה (רק המימוש שונה)

כך, אם נרצה לייצג את הערך 32, נצטרך סרגל עם 100 קפיצות של 1 מ״מ. זה אומר בעצם 10 סרגלים של 10 מ״מ, (לא יעיל), או סרגל של 100 שנתות של 1 מ״מ (לא מתיישב עם התנאים הטכניים)
לכן, כדי לייצר את הערך 32 מ״מ אנחנו קודם פונים אל הסרגל ה״נחשב יותר״ שנותן ערכים גדולים יותר, ומייצרים שם את הערך 3ס״מ, ולידו ממקמים את הסרגל ה״פחות נחשב״ ומייצריםפ עליו את הערך 2מ״מ.
המכשיר שקולט את שני הבייט האלה מפרש אותם כ32 מ״מ, ולא כשני ערכים שונים.

כך גם במידי:
אם תרצה את הערך 64.5 בפקודה שלך, קודם תייצר מפקודת הMSB את הערך 64, ואז תיגש לפקודת הLSB ותייצר שם ערך שהוא חצי מהטווח (כי בעצם אנחנו מקבלים עכשיו חלוקה של כך ערך ״נחשב״ לעוד 128 ערכי ביניים ״פחות נחשבים״

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

היתרון הוא, שאם היעד שלי לא יודע לממש את ערכי הביניים, אני עדיין מקבל את הערכים הגסים ״הנחשבים״
 הגב לנושא
שימו לב: ההודעה האחרונה בשרשרת זו נכתבה לפני יותר משנה.
חשוב היטב לפני שיגור מענה לשרשרת זו
   ראשי » מקלדות, סינטים ושלטים - Synth

עמוד 1 מתוך 1

עשוי לעניין אותך :
:: תקנון