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

صدا/صداساز audio/synth

ساختن صدا از هیچ: نوسازها، پوشش‌ها و صداها.

واردسازی audio.synth

هر چیز دیگری در این خانواده صدایی را می‌خواند که از پیش هست. این بسته آن را می‌سازد. شش شکل موج، پوششی برای شکل دادن یک نت، سه رنگ نوفه، و چهار راه ساختن صدایی که مانند چیزی بنماید نه مانند نوای آزمایش.

تندترین راه ورود نوا است برای یک شکل موج لخت یا نوا با پوشش برای نتی که آن‌گونه که یک ساز می‌کند آغاز و تمام می‌شود. برای نواختن یک عبارت، وکتوری از نت را پر کنید و به ساختن نت‌ها بدهید، که آنها را می‌آمیزد و در یک قطعه جای می‌دهد.

دانستنی‌ها

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

گونه‌ها

نوساز Osc

ساختار نوساز
یک نوساز: یک شکل موج، یک زیروبمی، و جایی که در چرخه است.
نامانگلیسیگونهتوضیح
موجwaveصحیح = 0کدام شکل موج را می‌سازد.
بسامدfreqاعشار۶۴ = 440زیروبمی‌اش به هرتز.
فازphaseاعشار۶۴ = 0کجای چرخه است، از صفر تا یک.
چرخه کارdutyاعشار۶۴ = 0.5چه اندازه از چرخه تپ بالاست.
نرخrateصحیح = 44100نرخ نمونه‌ای که با آن گام می‌زند.
synth-Osc.salam
واردسازی صدا
واردسازی صدا.صداساز
واردسازی ریاضی

تابع ریشه:
    ناپایا نوسازم := صداساز.نوساز جدید(صداساز.موج سینوسی، 440.0، 44100)
    سرچاپ نوسازم.موج، نوسازم.بسامد، نوسازم.نرخ، نوسازم.فاز
    نخستین := صداساز.نمونه بعدی نوساز(نوسازم)
    سرچاپ ریاضی.قدرمطلق(نخستین) کوچکتر 0.0001، نوسازم.فاز بزرگتر 0.0

    سرچاپ صداساز.مقدار موج(صداساز.موج سینوسی، 0.0، 0.5)
    سرچاپ صداساز.مقدار موج(صداساز.موج اره‌ای، 0.5، 0.5)
    سرچاپ صداساز.مقدار موج(صداساز.موج مربعی، 0.25، 0.5)، صداساز.مقدار موج(صداساز.موج مربعی، 0.75، 0.5)
    سرچاپ صداساز.مقدار موج(صداساز.موج مثلثی، 0.25، 0.5)
    سرچاپ صداساز.مقدار موج(صداساز.موج تپی، 0.1، 0.25)

    نوایی := صداساز.نوا(440.0، 0.05، 22050، صداساز.موج سینوسی)
    سرچاپ نوایی.فریم ها، نوایی.نرخ، صدا.اوج(نوایی) بزرگتر 0.9

    پوششی := صداساز.پوشش { حمله = 0.1، افت = 0.1، پایداری = 0.5، رهایش = 0.2 }
    سرچاپ پوششی.حمله، پوششی.پایداری
    سرچاپ صداساز.پوشش در زمان(پوششی، 0.0، 1.0)، صداساز.پوشش در زمان(پوششی، 0.05، 1.0)، صداساز.پوشش در زمان(پوششی، 0.1، 1.0)
    سرچاپ صداساز.پوشش در زمان(پوششی، 0.2، 1.0)، صداساز.پوشش در زمان(پوششی، 0.5، 1.0)
    سرچاپ صداساز.پوشش در زمان(پوششی، 1.2، 1.0) کوچکتر 0.0001، صداساز.پوشش در زمان(پوششی، 5.0، 1.0)
    سرچاپ صداساز.درازی کل پوشش(پوششی، 1.0)

    شکل‌دار := صداساز.نوا با پوشش(440.0، 0.05، 22050، صداساز.موج سینوسی، پوششی، 0.8)
    سرچاپ صدا.نمونه(شکل‌دار، 0، 0)، صدا.اوج(شکل‌دار) کوچکتربرابر 0.81

    ناپایا دوری := نوایی
    صدا.آزادسازی(دوری)
    ناپایا دوری۲ := شکل‌دار
    صدا.آزادسازی(دوری۲)
پایان
خروجی0 440 44100 0 true true 0 0 1 -1 0 1 1103 22050 true 0.1 0.5 0 0.5 1 0.5 0.5 true 0 1.2 0 true

پوشش ADSR

ساختار پوشش
یک پوشش: یک نت چگونه بالا می‌آید، می‌نشیند، می‌ماند و می‌افتد.
نامانگلیسیگونهتوضیح
حملهattackاعشار۶۴ = 0.01ثانیه‌ها از سکوت تا پر.
افتdecayاعشار۶۴ = 0.05ثانیه‌ها از پر تا سطح پایداری.
پایداریsustainاعشار۶۴ = 0.7سطحی که نت نگه‌داشته بر آن می‌آرامد.
رهایشreleaseاعشار۶۴ = 0.1ثانیه‌ها از سطح پایداری باز تا سکوت.

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

نت Note

ساختار نت
یک نت در یک عبارت: کدام، کی، چه اندازه دراز و چه اندازه بلند.
نامانگلیسیگونهتوضیح
شماره نتnoteصحیح = 60شماره نت میدی.
آغازstartاعشار۶۴ = 0کی آغاز می‌شود، به ثانیه.
درازیlengthاعشار۶۴ = 0.5چه اندازه نگه داشته می‌شود، به ثانیه.
بهرهgainاعشار۶۴ = 0.5چه اندازه بلند است.
موجwaveصحیح = 0کدام شکل موج آن را می‌نوازد.
میزان چپ راستpanاعشار۶۴ = 0.5کجا میان بلندگوها می‌نشیند، صفر چپ تا یک راست.
synth-Voice.salam
واردسازی صدا
واردسازی صدا.موسیقی
واردسازی صدا.صداساز

تابع ریشه:
    ناپایا بسامدها := موسیقی.بسامدهای دستگاه(57، موسیقی.دستگاه شور)
    آکوردی := صداساز.آکورد(بسامدها، 0.05، 22050، صداساز.موج سینوسی)
    سرچاپ آکوردی.فریم ها، صدا.اوج(آکوردی) بزرگتر 0.1، صدا.بریده است(آکوردی)
    بسامدها.آزادکن()

    سپیدی := صداساز.نوفه سپید(0.05، 22050)
    صورتی := صداساز.نوفه صورتی(0.05، 22050)
    قهوه‌ای := صداساز.نوفه قهوه‌ای(0.05، 22050)
    سرچاپ صدا.جذر میانگین مربع(سپیدی) بزرگتر 0.3، صدا.جذر میانگین مربع(صورتی) بزرگتر 0.01، صدا.جذر میانگین مربع(قهوه‌ای) بزرگتر 0.001

    اف‌امی := صداساز.نوا اف‌ام(220.0، 2.0، 3.0، 0.05، 22050)
    سرچاپ اف‌امی.فریم ها، صدا.اوج(اف‌امی) بزرگتر 0.5
    افزایشی۲ := صداساز.افزایشی(220.0، 6، 0.6، 0.05، 22050)
    سرچاپ افزایشی۲.فریم ها، صدا.اوج(افزایشی۲) بزرگتر 0.1
    کارپلوسی := صداساز.کارپلوس استرانگ(220.0، 0.05، 22050، 0.99)
    سرچاپ کارپلوسی.فریم ها، صدا.اوج(کارپلوسی) بزرگتر 0.1

    یکی := صداساز.نت در(60، 0.0، 0.1، 0.4، صداساز.موج سینوسی)
    سرچاپ یکی.شماره نت، یکی.آغاز، یکی.درازی، یکی.بهره، یکی.موج

    ناپایا عبارت := وکتور {} برگردان وکتور<صداساز.نت>
    ناپایا گامی := موسیقی.نت‌های گام(60، موسیقی.گام بزرگ، 4)
    ناپایا کاف := 0
    تا کاف کوچکتر گامی.طول():
        عبارت.بیفزا(صداساز.نت در(گامی.بگیر(کاف)، (کاف برگردان اعشار۶۴) * 0.05، 0.04، 0.4، صداساز.موج سینوسی))
        کاف += 1
    پایان
    گامی.آزادکن()
    پوششی := صداساز.پوشش { حمله = 0.005، افت = 0.01، پایداری = 0.6، رهایش = 0.02 }
    آهنگی := صداساز.ساختن نت‌ها(عبارت، 22050، 2، پوششی)
    سرچاپ آهنگی.کانال ها، آهنگی.فریم ها بزرگتر 0، صدا.اوج(آهنگی) بزرگتر 0.1، صدا.بریده است(آهنگی)
    عبارت.آزادکن()
    هیچی := صداساز.ساختن نت‌ها(وکتور {} برگردان وکتور<صداساز.نت>، 22050، 1، پوششی)
    سرچاپ صدا.خالی است(هیچی)

    ناپایا الف := آکوردی
    صدا.آزادسازی(الف)
    ناپایا بی := سپیدی
    صدا.آزادسازی(بی)
    ناپایا سی := صورتی
    صدا.آزادسازی(سی)
    ناپایا دی := قهوه‌ای
    صدا.آزادسازی(دی)
    ناپایا اف := اف‌امی
    صدا.آزادسازی(اف)
    ناپایا جی := افزایشی۲
    صدا.آزادسازی(جی)
    ناپایا اچ := کارپلوسی
    صدا.آزادسازی(اچ)
    ناپایا آی := آهنگی
    صدا.آزادسازی(آی)
پایان
خروجی1103 true false true true true 1103 true 1103 true 1103 true 60 0 0.1 0.4 0 2 true true false true

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

شماره‌های شکل موج Wave…

نوساز یا نت کدام شکل موج را به کار ببرد.
نامانگلیسیمقدار
موج سینوسیWaveSine0
موج مربعیWaveSquare1
موج اره‌ایWaveSaw2
موج مثلثیWaveTriangle3
موج نوفهWaveNoise4
موج تپیWavePulse5

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

تابع‌ها

نوساز جدید NewOsc

تابع نوساز جدید(wave: صحیح، freq: اعشار۶۴، rate: صحیح): نوساز
نوسازی آماده گام زدن.

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

نمونه بعدی نوساز OscNext

تابع نمونه بعدی نوساز(o &: نوساز): اعشار۶۴
نمونه بعدی، و نوساز را یک گام جلو می‌برد.

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

مقدار موج WaveValue

تابع مقدار موج(wave: صحیح، phase: اعشار۶۴، duty: اعشار۶۴): اعشار۶۴
یک نقطه از یک شکل موج در یک فاز، بی هیچ نوسازی.

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

پوشش در زمان ADSRAt

تابع پوشش در زمان(e: پوشش، t: اعشار۶۴، held: اعشار۶۴): اعشار۶۴
سطح پوشش در یک زمان، با دانستن اینکه نت چه اندازه نگه داشته می‌شود.

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

درازی کل پوشش ADSRTotal

تابع درازی کل پوشش(e: پوشش، held: اعشار۶۴): اعشار۶۴
یک نت به‌راستی چه اندازه می‌پاید، همراه با رهایش پس از نگه داشتن.

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

نوا Tone

تابع نوا(freq: اعشار۶۴، seconds: اعشار۶۴، rate: صحیح، wave: صحیح): audio.Clip
قطعه‌ای از یک شکل موج در یک زیروبمی.

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

نوا با پوشش ToneEnvelope

تابع نوا با پوشش(freq: اعشار۶۴، seconds: اعشار۶۴، rate: صحیح، wave: صحیح، e: پوشش، gain: اعشار۶۴): audio.Clip
قطعه‌ای از یک نت با پوشش و بهره، که یک نت باید این‌گونه بنماید نه مثل نوای آزمایش.

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

آکورد Chord

تابع آکورد(freqs: وکتور<اعشار۶۴>، seconds: اعشار۶۴، rate: صحیح، wave: صحیح): audio.Clip
قطعه‌ای از چند بسامد با هم، مقیاس شده تا نبرند.

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

نوفه سپید NoiseWhite

تابع نوفه سپید(seconds: اعشار۶۴، rate: صحیح): audio.Clip
نوفه سپید، تخت در سراسر طیف.

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

نوفه صورتی NoisePink

تابع نوفه صورتی(seconds: اعشار۶۴، rate: صحیح): audio.Clip
نوفه صورتی، که با بسامد افت می‌کند.

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

نوفه قهوه‌ای NoiseBrown

تابع نوفه قهوه‌ای(seconds: اعشار۶۴، rate: صحیح): audio.Clip
نوفه قهوه‌ای، که تندتر هم افت می‌کند.

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

نوا اف‌ام FMTone

تابع نوا اف‌ام(carrier: اعشار۶۴، ratio: اعشار۶۴، index: اعشار۶۴، seconds: اعشار۶۴، rate: صحیح): audio.Clip
مدولاسیون بسامد: یک نوساز که دیگری را خم می‌کند، که زنگ و بم را کم‌هزینه به شما می‌دهد.

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

افزایشی Additive

تابع افزایشی(freq: اعشار۶۴، partials: صحیح، decay: اعشار۶۴، seconds: اعشار۶۴، rate: صحیح): audio.Clip
نوایی ساخته از افزودن هماهنگ‌ها، هر یک آرام‌تر از زیرینش.

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

کارپلوس استرانگ KarplusStrong

تابع کارپلوس استرانگ(freq: اعشار۶۴، seconds: اعشار۶۴، rate: صحیح، damping: اعشار۶۴): audio.Clip
سیمی زده‌شده، ساخته از صافی کردن انفجاری از نوفه پیرامون یک خط تاخیر.

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

ساختن نت‌ها RenderNotes

تابع ساختن نت‌ها(notes: وکتور<نت>، rate: صحیح، channels: صحیح، e: پوشش): audio.Clip
یک عبارت کامل را در یک قطعه می‌سازد، نت‌ها را می‌آمیزد و جایشان می‌دهد.

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

نت در NoteAt

تابع نت در(note: صحیح، start: اعشار۶۴، length: اعشار۶۴، gain: اعشار۶۴، wave: صحیح): نت
کوتاه‌نوشت یک نت در یک عبارت.

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