صدا/صداساز audio/synth
ساختن صدا از هیچ: نوسازها، پوششها و صداها.
واردسازی audio.synth
هر چیز دیگری در این خانواده صدایی را میخواند که از پیش هست. این بسته آن را میسازد. شش شکل موج، پوششی برای شکل دادن یک نت، سه رنگ نوفه، و چهار راه ساختن صدایی که مانند چیزی بنماید نه مانند نوای آزمایش.
تندترین راه ورود نوا است برای یک شکل موج لخت یا نوا با پوشش برای نتی که آنگونه که یک ساز میکند آغاز و تمام میشود. برای نواختن یک عبارت، وکتوری از نت را پر کنید و به ساختن نتها بدهید، که آنها را میآمیزد و در یک قطعه جای میدهد.
دانستنیها
- نوساز فاز خودش را با خود دارد، پس گام زدنش با
نمونه بعدی نوسازدر یک حلقه نوایی پیوسته میدهد.مقدار موجشکل بیحالت آن است. - نت درازتر از آنچه خواستید میپاید:
درازی کل پوششرهایش را بر نگه داشتن میافزاید، و همان درازی است کهنوا با پوششبه شما میدهد. آکوردبر شمار نتها بخش میکند، پس سه نت با هم نمیبرند.ساختن نتهاچنین نمیکند، پس به نتهایش بهرهای بدهید که جا بگذارد.- برای اینکه کدام نتها را بنوازید صدا.موسیقی را ببینید، که دستگاههای ایرانی را هم با خود دارد؛ برای نواختن پروندهای از نتها صدا.میدی را.
گونهها
نوساز Osc
ساختار نوساز| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| موج | wave | صحیح = 0 | کدام شکل موج را میسازد. |
| بسامد | freq | اعشار۶۴ = 440 | زیروبمیاش به هرتز. |
| فاز | phase | اعشار۶۴ = 0 | کجای چرخه است، از صفر تا یک. |
| چرخه کار | duty | اعشار۶۴ = 0.5 | چه اندازه از چرخه تپ بالاست. |
| نرخ | rate | صحیح = 44100 | نرخ نمونهای که با آن گام میزند. |
واردسازی صدا
واردسازی صدا.صداساز
واردسازی ریاضی
تابع ریشه:
ناپایا نوسازم := صداساز.نوساز جدید(صداساز.موج سینوسی، 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
ناپایا دوری := نوایی
صدا.آزادسازی(دوری)
ناپایا دوری۲ := شکلدار
صدا.آزادسازی(دوری۲)
پایانپوشش 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 | کجا میان بلندگوها مینشیند، صفر چپ تا یک راست. |
واردسازی صدا
واردسازی صدا.موسیقی
واردسازی صدا.صداساز
تابع ریشه:
ناپایا بسامدها := موسیقی.بسامدهای دستگاه(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، پوششی)
سرچاپ صدا.خالی است(هیچی)
ناپایا الف := آکوردی
صدا.آزادسازی(الف)
ناپایا بی := سپیدی
صدا.آزادسازی(بی)
ناپایا سی := صورتی
صدا.آزادسازی(سی)
ناپایا دی := قهوهای
صدا.آزادسازی(دی)
ناپایا اف := افامی
صدا.آزادسازی(اف)
ناپایا جی := افزایشی۲
صدا.آزادسازی(جی)
ناپایا اچ := کارپلوسی
صدا.آزادسازی(اچ)
ناپایا آی := آهنگی
صدا.آزادسازی(آی)
پایانپایاها و متغیرها
شمارههای شکل موج Wave…
| نام | انگلیسی | مقدار |
|---|---|---|
| موج سینوسی | WaveSine | 0 |
| موج مربعی | WaveSquare | 1 |
| موج ارهای | WaveSaw | 2 |
| موج مثلثی | WaveTriangle | 3 |
| موج نوفه | WaveNoise | 4 |
| موج تپی | WavePulse | 5 |
نمونهی این مورد همراه با موارد بالاتر آمده است: 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