Comprimarea/Intinderea esantioanelor

Acum, ca putem folosi o multime de sintetizatoare si esantioane pentru a crea muzica, este timpul sa invatam cum putem sa le modificam si pe unele si pe celelalte pentru a individualiza muzica si a o face mai interesanta. Mai intai, sa exploram posibilitatea de a intinde si a comprima esantioanele.

Reprezentarea esantioanelor

Esantioanele sunt sunete deja inregistrate memorate sub forma de numere care reprezinta miscarea pe care conul difuzorului o face pentru a reproduce sunetele. Conul difuzorului se poate misca inainte si inapoi, deci aceste numere trebuie sa reprezinte cat de mult trebuie sa fie deplasat conul la fiecare moment. Pentru a putea reproduce cu fidelitate un sunet inregistrat esantionul trebuie sa contina in general mii de numere pentru fiecare secunda! Sonic Pi ia aceasta lista de numere si o trimite cu viteza potrivita pentru a misca difuzorul computerului inainte si inapoi exact in modul necesar pentru a reproduce sunetul. Totusi, poate fi distractiv sa schimbi viteza cu care aceste numere sunt trimise catre difuzor pentru a schimba sunetul.

Schimbarea vitezei de redare

Sa ne jucam cu unul dintre sunetele ambientale: ‘:ambi_choir’. Pentru a-l reda la viteza normala, puteti sa transmiteti parametrul ‘rate’ pentru ‘sample’:

sample :ambi_choir, rate: 1

Aceasta linie reda esantionul cu viteza normala (1), deci nu este nimic special deocamdata. Totusi, putem schimba acest numar cu un altul. Sa zicem ‘0.5’:

sample :ambi_choir, rate: 0.5

Oho! Ce se intampla aici? Ei bine, doua lucruri. In primul rand, esantionul va dura de doua ori mai mult, iar in al doilea rand, sunetul este cu o octava mai jos. Sa examinam aceste lucruri mai in detaliu.

Intinderea

Un esantion cu care ne putem distra lungindu-l sau comprimandu-l este Amen. La viteza normala, am putea sa-l adaugam la o pista toba & bass:

sample :loop_amen

Schimbandu-i viteza insa, putem sa schimbam stilul. Incearca viteza redusa la jumatate pentru un hip-hop de moda veche:

sample :loop_amen, rate: 0.5

Daca il facem mai rapid, intram in zona jungle:

sample :loop_amen, rate: 1.5

Iar acum ultimul truc - sa vedem ce se intampla daca folosim o viteza negativa:

sample :loop_amen, rate: -1

Hei, sunetul este redat de la coada la cap! Acum incearca sa te joci cu diferite esantioane la viteze diferite. Incearca viteze foarte mari. Incearca viteze enervant de mici. Vezi ce sunete interesante poti obtine.

O explicatie simpla a vitezei de redare a esantioanelor

Un mod de a vedea lucrurile este sa te gandesti la esantioane ca la niste arcuri. Modificarea vitezei de redare este asemanatoare cu alungirea sau comprimarea arcului. Daca redai esantionul cu o viteza dubla, comprimi arcul la jumatate din lungimea sa normala. Ca urmare, esantionul va dura jumatate din durata normala, fiind mai scurt. Daca redai esantionul la jumatate din viteza normala, intinzi arcul la o lungime dubla. Esantionul va dura de doua ori mai mult, fiind mai lung. Cu cat il comprimi mai tare (viteza mai mare), cu atat devine mai scurt. Cu cat il intinzi mai mult (viteza mai mica), cu atat devine mai lung.

Comprimarea unui arc il face mai dens (creste numarul de spire pe cm) - acest lucru este similar cu un esantion care va contine sunete care variaza mai des. Intinderea arcului scade densitatea de spire si este similara cu un sunet care variaza mai lent.

Matematica din spatele vitezei de redare a esantioanelor

(Aceasta sectiune se adreseaza celor care sunt interesati de detalii. Poti sari peste ea daca doresti…)

Dupa cum am vazut mai sus, un esantion este reprezentat de o lista lunga de numere care specifica unde trebuie sa se afle speakerul la fiecare moment de timp. Putem lua aceasta lista de numere si sa trasam un grafic care ar arata similar cu acesta:

grafic esantion

Probabil ai mai vazut imagini ca aceasta inainte. Se numeste forma de unda a unui esantion. Este doar un grafic pe baza unor numere.Uzual, o astfel de forma de unda va avea 44100 puncte de date pentru fiecare secunda (acest lucru este impus de Teorema eșantionării Nyquist–Shannon). Deci, daca un esantion dureaza 2 secunde, forma de unda va fi reprezentata de 88200 de numere care vor fi trimise difuzorului cu o viteza de 44100 de puncte pe secunda. Desigur, am putea sa trimitem datele cu o viteza dubla, de 88200 de puncte pe secunda. Aceasta ar face ca redarea sa dureze 1 secunda. Am putea de asemenea sa redam 22050 puncte pe secunda, durata fiind in acest caz de 4 secunde.

Durata unui esantion este influentata de viteza de redare:

Putem reprezenta aceasta regula prin formula:

durata_esantion_noua = ( 1 / viteza) * durata_esantion 

Schimbarea vitezei de redare influenteaza si tonalitatea esantionului. Frecventa formei de unda este determinata de cat de repede se misca in sus si in jos. Creierul nostru transforma cumva miscarea rapida a difuzorului in sunete in alte si miscarea lenta in sunete joase. De aceea uneori poti vedea cum un difuzor mare de bas se misca atunci cand reda un sunet cu frecvente foarte joase - se misca mult mai lent inainte si inapoi decat un difuzor care produce sunete inalte.

Daca iei o forma de unda si o comprimi, vor exista mai multe miscari in sus si in jos intr-o secunda. Aceasta va face sunetul sa aiba o tonalitate mai inalta. Dublarea miscarilor in sus si in jos (oscilatii) dubleaza frecventa. Deci, redarea unui esantion cu viteza dubla va dubla frecventa pe care o auzi. De asemenea, injumatatirea vitezei va injumatati frecventa. Alte viteze de redare vor modifica frecventa corespunzator.