کتابخانه‌ی استاندارد · کدگذاری و داده

صدا/موسیقی audio/music

نت‌ها، گام‌ها، آکوردها و کوک‌ها، دستگاه‌های ایرانی در میانشان.

واردسازی audio.music

این بسته حساب و کتاب موسیقی است نه صدا: نت چیست، کدام نت‌ها به هم می‌آیند، و هر یک چه بسامدی می‌خواهد. خودش هیچ صدایی نمی‌سازد، که کار صدا.صداساز است.

نت‌ها شماره‌های میدی‌اند، پس شصت دوی میانی است و شصت و نه لای کوک‌شده بر ۴۴۰. نت به بسامد یکی را به بسامدی در کوک برابر برمی‌گرداند، و بسامد طبیعی و نسبت فیثاغورسی آنجایند که کوک برابر آنچه می‌خواهید نیست.

دانستنی‌ها

  • گام‌ها و آکوردها به شکل وکتورهایی از پله‌های نیم‌پرده باز می‌گردند، که فراخوان آزادشان می‌کند.
  • نام نت رشته‌ای برمی‌گرداند که فراخوان آزادش می‌کند. خواندن نام نت آن را باز می‌خواند و بمل و هر دو حالت حرف را می‌پذیرد، پس خروجی خودش را رفت و برگشت می‌کند.
  • موسیقی ایرانی در دوازده نیم‌پرده جا نمی‌شود. پس دستگاه به سنت داده شده است نه به پله نیم‌پرده: سوم شور بر ۳۵۰ سنت می‌نشیند، میان سوم کوچک و بزرگ، جایی که هیچ کلید پیانویی نیست. نت به بسامد با سنت راه خواستن آن است، و سنت کرن و سنت سری همان نشانه‌هایی‌اند که شما را به آنجا می‌برند.
  • هفت دستگاه اینجا بسامدهای ردیف پایه‌شان هستند. اجرای راستین میان گوشه‌های یک دستگاه می‌گردد، که کار آهنگ است نه کوک.

پایاها و متغیرها

نت لا۴ A4Note

پایا نت لا۴: صحیح۳۲ = 69
شماره میدی لای بالای دوی میانی، شصت و نه.
music-Note.salam
واردسازی صدا.موسیقی
واردسازی ریاضی
واردسازی حافظه

تابع ریشه:
    سرچاپ موسیقی.نت لا۴، موسیقی.بسامد لا۴
    سرچاپ موسیقی.نت به بسامد(69)، موسیقی.نت به بسامد(81)، موسیقی.نت به بسامد(57)
    سرچاپ ریاضی.قدرمطلق(موسیقی.نت به بسامد(60) - 261.6255653005986) کوچکتر 0.0001
    سرچاپ موسیقی.بسامد به نت(440.0)، موسیقی.بسامد به نت(261.63)، موسیقی.بسامد به نت(0.0)
    سرچاپ موسیقی.اکتاو(60)، موسیقی.رده صدا(61)، موسیقی.رده صدا(-1)
    سرچاپ موسیقی.ترانهاد(60، 7)، موسیقی.فاصله(60، 67)
    سرچاپ موسیقی.سنت(440.0، 880.0)، موسیقی.بسامد به سنت(440.0، 69)
    سرچاپ موسیقی.نت به بسامد با سنت(69، 1200.0)

    هر شماره در [60، 61، 69، 127]:
        نامی := موسیقی.نام نت(شماره)
        سرچاپ نامی، موسیقی.خواندن نام نت(نامی) برابر شماره
        حافظه.آزادسازی(نامی برگردان تهی*)
    پایان
    سرچاپ موسیقی.خواندن نام نت("c4")، موسیقی.خواندن نام نت("Db4")
    سرچاپ موسیقی.خواندن نام نت("x9")، موسیقی.خواندن نام نت("")، موسیقی.خواندن نام نت("C")
    سرچاپ موسیقی.ثانیه ضربه(120.0)، موسیقی.ثانیه ضربه(0.0)
پایان
خروجی69 440 440 880 220 true 69 60 0 4 1 11 67 7 1200 0 880 C4 true C#4 true A4 true G9 true 60 61 -1 -1 -1 0.5 0

بسامد لا۴ A4Freq

پایا بسامد لا۴: اعشار۶۴ = 440
بسامدی که آن نت روی آن کوک است، ۴۴۰ هرتز.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Note.salam

شماره‌های گام Scale…

کدام گام را از گام یا نت‌های گام بخواهید.
نامانگلیسیمقدار
گام بزرگScaleMajor0
گام کوچکScaleMinor1
گام کوچک هارمونیکScaleHarmonicMinor2
گام کوچک ملودیکScaleMelodicMinor3
گام پنج‌نتScalePentatonic4
گام پنج‌نت کوچکScalePentatonicMinor5
گام بلوزScaleBlues6
گام کروماتیکScaleChromatic7
گام دورینScaleDorian8
گام فریژینScalePhrygian9
گام لیدینScaleLydian10
گام میکسولیدینScaleMixolydian11
گام لوکرینScaleLocrian12
گام تمام‌پردهScaleWholeTone13
music-Scale.salam
واردسازی صدا.موسیقی

تابع ریشه:
    ناپایا بزرگی := موسیقی.گام(موسیقی.گام بزرگ)
    سرچاپ بزرگی.طول()، بزرگی.بگیر(0)، بزرگی.بگیر(6)
    بزرگی.آزادکن()
    ناپایا کوچکی := موسیقی.گام(موسیقی.گام کوچک)
    سرچاپ کوچکی.بگیر(2)، کوچکی.بگیر(5)
    کوچکی.آزادکن()
    ناپایا کروماتیکی := موسیقی.گام(موسیقی.گام کروماتیک)
    سرچاپ کروماتیکی.طول()
    کروماتیکی.آزادکن()
    ناپایا پنجی := موسیقی.گام(موسیقی.گام پنج‌نت)
    سرچاپ پنجی.طول()
    پنجی.آزادکن()
    ناپایا بلوزی := موسیقی.گام(موسیقی.گام بلوز)
    سرچاپ بلوزی.طول()، بلوزی.بگیر(3)
    بلوزی.آزادکن()
    ناپایا دورینی := موسیقی.گام(موسیقی.گام دورین)
    سرچاپ دورینی.بگیر(2)، دورینی.بگیر(6)
    دورینی.آزادکن()

    ناپایا رشته := موسیقی.نت‌های گام(60، موسیقی.گام بزرگ، 8)
    سرچاپ رشته.طول()، رشته.بگیر(0)، رشته.بگیر(7)
    رشته.آزادکن()

    ناپایا سه‌تایی := موسیقی.نت‌های آکورد(60، موسیقی.آکورد بزرگ)
    سرچاپ سه‌تایی.طول()، سه‌تایی.بگیر(1)، سه‌تایی.بگیر(2)
    سه‌تایی.آزادکن()
    ناپایا هفتی := موسیقی.نت‌های آکورد(60، موسیقی.آکورد کوچک۷)
    سرچاپ هفتی.طول()، هفتی.بگیر(3)
    هفتی.آزادکن()
    ناپایا کاسته‌ای := موسیقی.آکورد(موسیقی.آکورد کاسته)
    سرچاپ کاسته‌ای.بگیر(2)
    کاسته‌ای.آزادکن()
    ناپایا معلقی := موسیقی.آکورد(موسیقی.آکورد معلق۴)
    سرچاپ معلقی.بگیر(1)
    معلقی.آزادکن()
    ناپایا افزوده‌ای := موسیقی.آکورد(موسیقی.آکورد افزوده)
    سرچاپ افزوده‌ای.بگیر(2)
    افزوده‌ای.آزادکن()
    ناپایا نمایانی := موسیقی.آکورد(موسیقی.آکورد نمایان۷)
    سرچاپ نمایانی.بگیر(3)
    نمایانی.آزادکن()
پایان
خروجی7 0 11 3 8 12 5 6 6 3 10 8 60 72 3 64 67 4 70 6 5 8 10

شماره‌های آکورد Chord…

کدام آکورد را از آکورد یا نت‌های آکورد بخواهید.
نامانگلیسیمقدار
آکورد بزرگChordMajor0
آکورد کوچکChordMinor1
آکورد کاستهChordDiminished2
آکورد افزودهChordAugmented3
آکورد معلق۲ChordSus24
آکورد معلق۴ChordSus45
آکورد بزرگ۷ChordMajor76
آکورد کوچک۷ChordMinor77
آکورد نمایان۷ChordDominant78
آکورد کاسته۷ChordDiminished79

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Scale.salam

شماره‌های دستگاه Dastgah…

کدام دستگاه ایرانی را بخواهید. هر یک ردیفی از جابجایی‌های سنتی است نه نیم‌پرده.
نامانگلیسیمقدار
دستگاه شورDastgahShur0
دستگاه ماهورDastgahMahur1
دستگاه همایونDastgahHomayoun2
دستگاه سه‌گاهDastgahSegah3
دستگاه چهارگاهDastgahChahargah4
دستگاه نواDastgahNava5
دستگاه راست‌پنجگاهDastgahRastPanjgah6
music-Dastgah.salam
واردسازی صدا.موسیقی

تابع ریشه:
    ناپایا شوری := موسیقی.دستگاه(موسیقی.دستگاه شور)
    سرچاپ شوری.طول()، شوری.بگیر(0)، شوری.بگیر(2)، شوری.بگیر(6)
    شوری.آزادکن()
    ناپایا ماهوری := موسیقی.دستگاه(موسیقی.دستگاه ماهور)
    سرچاپ ماهوری.بگیر(2)
    ماهوری.آزادکن()
    ناپایا همایونی := موسیقی.دستگاه(موسیقی.دستگاه همایون)
    سرچاپ همایونی.بگیر(1)
    همایونی.آزادکن()
    ناپایا سه‌گاهی := موسیقی.دستگاه(موسیقی.دستگاه سه‌گاه)
    سرچاپ سه‌گاهی.بگیر(2)
    سه‌گاهی.آزادکن()

    سرچاپ موسیقی.سنت کرن، موسیقی.سنت سری

    ناپایا بسامدها := موسیقی.بسامدهای دستگاه(60، موسیقی.دستگاه شور)
    سرچاپ بسامدها.طول()
    سرچاپ بسامدها.بگیر(0) برابر موسیقی.نت به بسامد(60)
    سرچاپ بسامدها.بگیر(2) بزرگتر موسیقی.نت به بسامد(63)، بسامدها.بگیر(2) کوچکتر موسیقی.نت به بسامد(64)
    بسامدها.آزادکن()

    سرچاپ موسیقی.نسبت طبیعی(0)، موسیقی.نسبت طبیعی(7)، موسیقی.نسبت طبیعی(4)
    سرچاپ موسیقی.نسبت فیثاغورسی(0)، موسیقی.نسبت فیثاغورسی(7)، موسیقی.نسبت فیثاغورسی(2)
    سرچاپ موسیقی.بسامد طبیعی(69، 7)
پایان
خروجی7 0 350 1000 400 150 350 -50 50 7 true true true 1 1.5 1.25 1 1.5 1.125 660

سنت کرن KoronCents

پایا سنت کرن: اعشار۶۴ = -50
کرن نت را چند سنت پایین می‌آورد، نزدیک نیم نیم‌پرده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Dastgah.salam

سنت سری SoriCents

پایا سنت سری: اعشار۶۴ = 50
سری نت را چند سنت بالا می‌برد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Dastgah.salam

تابع‌ها

نت به بسامد NoteToFreq

تابع نت به بسامد(note: صحیح): اعشار۶۴
بسامد یک شماره نت میدی در کوک برابر.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Note.salam

نت به بسامد با سنت NoteToFreqCents

تابع نت به بسامد با سنت(note: صحیح، cents: اعشار۶۴): اعشار۶۴
همان، جابجا شده به اندازه چند سنت، که ربع‌پرده را این‌گونه می‌خواهند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Note.salam

بسامد به نت FreqToNote

تابع بسامد به نت(freq: اعشار۶۴): صحیح
نزدیک‌ترین نت میدی به یک بسامد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Note.salam

بسامد به سنت FreqToCents

تابع بسامد به سنت(freq: اعشار۶۴، note: صحیح): اعشار۶۴
یک بسامد چند سنت از یک نت دور است، مثبت وقتی بالاتر باشد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Note.salam

اکتاو Octave

تابع اکتاو(note: صحیح): صحیح
نت در کدام اکتاو است، که دوی میانی چهار است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Note.salam

رده صدا PitchClass

تابع رده صدا(note: صحیح): صحیح
نت کدام یک از دوازده صداست، صفر برای دو.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Note.salam

ترانهاد Transpose

تابع ترانهاد(note: صحیح، semitones: صحیح): صحیح
نتی جابجا شده به اندازه چند نیم‌پرده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Note.salam

فاصله Interval

تابع فاصله(low: صحیح، high: صحیح): صحیح
دو نت چند نیم‌پرده از هم دورند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Note.salam

نام نت NoteName

تابع نام نت(note: صحیح): رشته
نام یک نت، مثل C#4. فراخوان آزادش می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Note.salam

خواندن نام نت ParseNote

تابع خواندن نام نت(name: رشته): صحیح
نامی که یک نت را می‌گوید، با پذیرش بمل و هر دو حالت حرف، یا منهای یک وقتی نت نباشد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Note.salam

گام Scale

تابع گام(kind: صحیح): وکتور<صحیح>
پله‌های نیم‌پرده یک گام، به شکل وکتوری که فراخوان آزادش می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Scale.salam

نت‌های گام ScaleNotes

تابع نت‌های گام(root: صحیح، kind: صحیح، count: صحیح): وکتور<صحیح>
رشته‌ای از نت‌های یک گام از یک پایه، که با تمام شدن درجه‌ها از اکتاوها بالا می‌رود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Scale.salam

آکورد Chord

تابع آکورد(kind: صحیح): وکتور<صحیح>
پله‌های نیم‌پرده یک آکورد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Scale.salam

نت‌های آکورد ChordNotes

تابع نت‌های آکورد(root: صحیح، kind: صحیح): وکتور<صحیح>
نت‌های یک آکورد بر یک پایه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Scale.salam

دستگاه Dastgah

تابع دستگاه(kind: صحیح): وکتور<اعشار۶۴>
جابجایی‌های سنتی یک دستگاه ایرانی. سنت نه نیم‌پرده، چون این مایه‌ها بر پیانو نمی‌نشینند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Dastgah.salam

بسامدهای دستگاه DastgahFreqs

تابع بسامدهای دستگاه(root: صحیح، kind: صحیح): وکتور<اعشار۶۴>
بسامدهای یک دستگاه از یک نت پایه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Dastgah.salam

نسبت طبیعی JustRatio

تابع نسبت طبیعی(degree: صحیح): اعشار۶۴
نسبت کوک طبیعی برای یک درجه نیم‌پرده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Dastgah.salam

بسامد طبیعی JustFreq

تابع بسامد طبیعی(root: صحیح، degree: صحیح): اعشار۶۴
بسامدی در کوک طبیعی از یک پایه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Dastgah.salam

نسبت فیثاغورسی PythagoreanRatio

تابع نسبت فیثاغورسی(degree: صحیح): اعشار۶۴
نسبت فیثاغورسی برای یک درجه نیم‌پرده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Dastgah.salam

سنت Cents

تابع سنت(a: اعشار۶۴، b: اعشار۶۴): اعشار۶۴
دو بسامد چند سنت از هم دورند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Note.salam

ثانیه ضربه BeatSeconds

تابع ثانیه ضربه(bpm: اعشار۶۴): اعشار۶۴
یک ضربه در یک ضرباهنگ چه اندازه می‌پاید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: music-Note.salam