Music-X (cz. 18.) ----------------- MX 2.0 W tym odcinku opiszë dalszy ciâg udoskonaleï ôwietnego sekwencera muzycznego, z którymi miaîem okazjë sië zapoznaê. Na poczâtku bëdzie jeszcze trochë o samplach, a w kolejnych odcinkach -- nastëpne wynalazki. William Mobius Poczâwszy od tego odcinka bëdë zamieszczaî krótkie streszczenia omawianych problemów. Dziëki temu rzut oka wystarczy, aby znaleúê interesujâcy Czytelnika temat. A oto, co dziô omówimy: -- VELOCITY i DCA, czyli nakîadanie dynamiki na sample; -- PGM, czyli sposoby uûywania 64 sampli w utworach; -- LOOP-SUSTAIN, czyli sposoby zmniejszenia szumu ziarnistego sampli; -- PRZENIKANIE próbek (przykîady). 3. VELOCITY. Na sample oprócz obwiedni (ang. ENVELOPE) moûe byê teraz naîoûona dynamika -- mniej wiëcej tak, jak funkcja VELOCITY w syntezatorach i ekspanderach. VELOCITY, podobnie jak ENVELOPE, nie znieksztaîca sampla (nie dzieli wartoôci próbek), co ma kolosalne znaczenie dla jakoôci dúwiëku. Innymi sîowy, zmniejszenie gîoônoôci sampla nie powoduje zmniejszenia sië fizycznej rozdzielczoôci amplitudowej próbek z 8 bitów do np. 7, 6 itd. Manipulacje gîoônoôciâ sampla nie powodujâ zatem zwiëkszania sië szumu kwantyzacji, lecz przeciwnie! Powodujâ >pozorne< zwiëkszenie sië rozdzielczoôci do 9 bitów i wiëcej. W jaki sposób? Jest to moûliwe dlatego, ûe gîoônoôê próbek reguluje sië za pomocâ przepuszczania dúwiëku przez DCA (ang. Digital Controlled Amplifier -- pol. Cyfrowo Sterowany Wzmacniacz), co widaê na rys. 1. Za pomocâ tej metody, zmniejszajâc amplitudë kaûdego przebiegu, powodujemy zarazem prasowanie szumu kwantyzacji, który zmniejsza sië w ten sposób maksymalnie do granicy osiâgalnej razem dla przetworników D/A i wzmacniaczy DCA do jakoôci 14 bitów. Jest to metoda podobna do uûywania nieliniowych przetworników A/D i D/A, w których dziëki >zmiennemu< progowi kwantyzacji odstëp od szumu kwantyzacji jest staîy. Ale wracajmy do DCA. Otóû cztery takie DCA, zamontowane w naszej Amidze, sterowane sâ danymi o rozdzielczoôci 7 bitów, przy czym ostatni bit nie jest wykorzystywany do koïca, mamy wiëc moûliwoôê niezaleûnej regulacji gîoônoôci kaûdego z czterech D/AC (powiedzmy, ûe dla uproszczenia generatorów dúwiëku) w zakresie 6 bitów (+1), czyli pomiëdzy 1..64, oraz dodatkowo 0, czyli 65 moûliwych ustawieï. Przy czym dla wartoôci: 64 dúwiëk nie jest w ogóle zmieniany, natomiast dla: 0 tîumiennoôê DCA jest równa nieskoïczonoôci. Dla poôrednich wartoôci tîumiennoôê zmienia sië odpowiednio od wartoôci maîych do duûych. Tutaj podajë tabelkë regulacji DCA, jako ûe chciaîbym moûliwie wyczerpujâco opisaê zagadnienie, a poza tym tabela ta przyda sië teû osobom, które zajmujâ sië muzykâ w szerszym pojëciu, nie ograniczajâc sië tylko do programu Music-X. Te same bowiem wartoôci odnoszâ sië do regulacji gîoônoôci dúwiëków w takich programach, jak np. Protracker czy Octamed: Regulacja dynamiki DCA: dec hex (dB) poziom (X) 64 $40 -0 1 63 $3f -0.1 0.984375 62 $3e -0.3 0.96875 61 $3d -0.4 0.953125 60 $3c -0.6 0.9375 59 $3b -0.7 0.921875 58 $3a -0.9 0.90625 57 $39 -1 0.890625 56 $38 -1.2 0.875 55 $37 -1.3 0.859375 54 $36 -1.5 0.84375 53 $35 -1.6 0.828125 52 $34 -1.8 0.8125 51 $33 -2 0.796875 50 $32 -2.1 0.78125 49 $31 -2.3 0.765625 48 $30 -2.5 0.75 47 $2f -2.7 0.734375 46 $2e -2.9 0.71875 45 $2d -3.1 0.703125 44 $2c -3.3 0.6875 43 $2b -3.5 0.671875 42 $2a -3.7 0.65625 41 $29 -3.9 0.640625 40 $28 -4.1 0.625 39 $27 -4.3 0.609375 38 $26 -4.5 0.59375 37 $25 -4.8 0.578125 36 $24 -5 0.5625 35 $23 -5.2 0.546875 34 $22 -5.5 0.53125 33 $21 -5.8 0.515625 32 $20 -6 0.5 31 $1f -6.3 0.484375 30 $1e -6.6 0.46875 29 $1d -6.9 0.453125 28 $1c -7.2 0.4375 27 $1b -7.5 0.421875 26 $1a -7.8 0.40625 25 $19 -8.2 0.390625 24 $18 -8.5 0.375 23 $17 -8.9 0.359375 22 $16 -9.3 0.34375 21 $15 -9.7 0.328125 20 $14 -10.1 0.3125 19 $13 -10.5 0.296875 18 $12 -11 0.28125 17 $11 -11.5 0.265625 16 $10 -12 0.25 15 $0f -12.6 0.234375 14 $0e -13.2 0.21875 13 $0d -13.8 0.203125 12 $0c -14.5 0.1875 11 $0b -15.3 0.171875 10 $0a -16.1 0.15625 9 $09 -17 0.140625 8 $08 -18.1 0.125 7 $07 -19.2 0.109375 6 $06 -20.6 0.09375 5 $05 -22.1 0.078125 4 $04 -24.1 0.0625 3 $03 -26.6 0.046875 2 $02 -30.1 0.03125 1 $01 -36.1 0.015625 0 $00 -nieskoïczonoôê 0 Liczby podane jako "wartoôê" program wpisuje sobie do rejestru DCA Amigi, co powoduje odpowiedniâ regulacjë gîoônoôci dúwiëku. Informacja ta przyda sië teû poczâtkujâcym programistom. Sterowanie DCA w Amidze odbywa sië za poôrednictwem rejestrów, oznaczanych w literaturze jako AUDxVOL, gdzie "x" to numer kanaîu z zakresu 0..3. Sâ to rejestry szesnastobitowe z wykorzystaniem jedynie bitów nr 0..6: xxxxxxxxx6543210 A ich adresy w pamiëci Amigi sâ nastëpujâce: Rejestry DCA w Amidze: DCA kanaî nazwa adres (hex) DCA #0 lewy AUD0VOL $dff0a8 DCA #1 prawy AUD1VOL $dff0b8 DCA #2 prawy AUD2VOL $dff0c8 DCA #3 lewy AUD3VOL $dff0d8 Sam MX nie korzysta jednak bezpoôrednio z wartoôci 0..64, lecz ze standardowych kodów dla VELOCITY, czyli z zakresu 0..127 plus wartoôci zmieniajâcej sië w czasie ENVELOPE, które sâ potem odpowiednio wewnëtrznie przeliczane przez program i "ôciskane" do przepisowych 0..64, wpisywanych nastëpnie do tych komórek. Uûytkownik ma zatem dwie moûliwoôci regulacji gîoônoôci sampla i dynamiki, stosowane równoczeônie: -- moûliwoôê ustawienia VELOCITY dla sampla, przez wpisanie wartoôci z zakresu 0..127 obok nazwy VELOCITY w ekranie EVENT EDITOR (rys. 3.) lub granie bezpoôrednio na klawiaturze syntezatora, przez co proces przypisania gîoônoôci dúwiëków przebiega automatycznie (rys. 2.); -- ustawienia ENVELOPE (obwiedni) dla tego sampla. Kombinacja tych dwóch wartoôci, zmieniajâca sië w czasie, jest dopiero wpisywana do DCA (czyli do rejestrów AUDxVOL) Amigi, dziëki czemu wîaônie moûliwa jest regulacja dynamiki sampla, podobnie jak to jest z regulacjâ dynamiki w syntezatorze. 4. PGM. PROGRAM CHANGE, czyli korzystanie z 64 sampli. Wczeôniej zostaîa zasygnalizowana moûliwoôê uûywania aû 64 sampli, znajdujâcych sië w pamiëci Chip RAM. Sposoby wywoîywania kaûdego sampla sâ pozornie proste, bo opisane w kaûdej oryginalnej instrukcji obsîugi. Problemy zaczynajâ sië dopiero przy próbie uûycia sampla o numerze wyûszym niû 16. Przecieû moûemy uûyê w tracku numeru sampla czy dúwiëku MIDI o kanale nie wiëkszym niû 16. W jaki zatem sposób moûna korzystaê z tego dobrodziejstwa? I tu miaîem dylemat. Mianowicie szczegóîowe opisywanie opcji MX-a to nic innego jak jawne popieranie piractwa! Ale z drugiej strony, gdy widzë oczami wyobraúni te rzesze uûytkowników, których nie staê na zapîacenie paru milionów zîotych za program, lub którzy po prostu nie wiedzâ, jak go kupiê, albo takich, którzy tîumaczâ i mëczâ oryginalnâ instrukcjë obsîugi MX-a za pomocâ baterii róûnorakich sîowników, linijka po linijce w trudzie i znoju, wtedy wîaônie chwytam za elektroniczne pióro i spisujë to wszystko, o czym czytacie, majâc nadziejë, ûe dziëki temu wyedukujë chociaû garstkë przyszîych prawdziwych muzyków. Otóû korzystanie z sampli jest w tej chwili bardzo uîatwione ze wzglëdu na "podîâczenie" do nich nastëpnych komunikatów MIDI. O opcji VELOCITY juû pisaîem. Z komunikatami zmiany programów brzmieï w syntezatorach, oznaczanych w literaturze PROGRAM CHANGE, a w MX -- PGM, na pewno wszyscy sië zetknëli. Moûna nimi wybieraê nowe barwy dúwiëku, czy teû zmieniaê pogîos i robiê inne rzeczy. Okazuje sië jednak, ûe jest to takûe bardzo dobra komenda do zmiany numeru sampla. Otóû gdy przeîâczymy edycjë na sample (przypominam: OUTPUT->AMIGA, FEEDBACK->AMIGA), to komunikatem typu PGM moûemy zmieniaê numer brzmienia, ale nie z danego kanaîu syntezatora, lecz z katalogu wszystkich sampli, zawartych w ekranie SAMPLES. Z tym ûe komendâ tâ jednoczeônie zmieniamy standardowo ustawiony na poczâtku programu porzâdek przyporzâdkowaï. Jest on, jak wiadomo, ustawiony w ten sposób, ûe >numer wirtualnego kanaîu sampla< (nie majâcego nic wspólnego z kanaîami Amigi 0..3) odpowiada >numerowi brzmienia sampla< wedle prostej zasady: virtual channel->sample number: 1->1 2->2 itd. Przy czym sîowo "wirtualny" nie jest tu wcale naduûyciem, poniewaû oznacza w tym wypadku >pozorny numer kanaîu< sampla podobny do tego z MIDI, lecz operujâcy na dúwiëkach wytwarzanych przez sam komputer. Wîaônie podczas trwania utworu moûna zmieniê to przyporzâdkowanie komendâ PGM. Ilustrujâ to rysunki 4., 5. i 6. Oto kolejnoôê postëpowania, czyli przykîad zmiany brzmienia wirtualnego kanaîu nr 7 tak, aby zagraîo na tym kanale brzmienie sampla o numerze 21. Nie zapominajmy, ûe kanaî 7., jako nieparzysty, odezwie sië w lewym kanale stereo! Jeûeli jest na odwrót, to znaczy, ûe masz w swoim sprzëcie pokiêkane kable. Ogólnie rzecz biorâc, takich pozornych kanaîów mamy 16, tak jak kanaîów MIDI. Przed uruchomieniem mamy przyporzâdkowanie: 7->7 Po napotkaniu podczas odtwarzania komendy: (CH 7) PGM: 21 MX przeîâczy "brzmienie" kanaîu siódmego na ustawienie: 7->21 5. JESZCZE O OBWIEDNI ORAZ SPOSOBACH LIKWIDACJI SZUMU KWANTYZACJI. Ciekawym pomysîem, który moûna wykorzystaê majâc MX, jest samplowanie surowych dúwiëków bez obwiedni, jeûeli korzystamy z sampli i mamy pod rëkâ syntezator. Innymi sîowy, najlepiej (gdy jest to moûliwe) wyîâczaê w syntezatorze ENVELOPE OSCILLATOR. Róûnie sië to nazywa w róûnych modelach, niemniej generalnie chodzi o to, ûeby dúwiëk od VCO, TVF i podobnych moduîów nie przechodziî dalej przez TVA, VCA, ENV lub jeszcze inaczej nazywajâcego sië moduîu, nakîadajâcego na ton fazy: ATTACK, DECAY, SUSTAIN, SLOPE i podobne. Samplowanie dúwiëków z wyraúnâ obwiedniâ (np. fortepianu) przy 8 bitach dynamiki Amigi bëdzie podobne do regulacji dynamiki sampla -- programowej, co widaê byîo na rys. 1., a takûe teraz na rys. 7. >Szum kwantyzacji i znieksztaîcenia nieliniowe< bëdâ rosîy i bëdâ coraz bardziej sîyszalne wraz z opadajâcym dúwiëkiem, poniewaû w miarë zanikania fala bëdzie sië coraz bardziej zbliûaîa do ksztaîtu przebiegu fali prostokâtnej. Taki szum czësto jest okreôlany mianem szumu ziarnistego, poniewaû dúwiëk fali przy poziomie kwantyzacji bliskim zera upodabnia sië do nieprzyjemnego brzëczenia. Natomiast jeûeli zsamplujemy na peînym wysterowaniu dúwiëk, tzw. loop piano (czyli w tym wypadku zapëtlonego brzmienia fortepianu, w którym sztucznie zlikwidowano fazy DECAY/RELEASE, uzyskujâc stan ustalony SUSTAIN, a koniec umiejëtnie sklejono z poczâtkiem), to obwiednië moûemy juû naîoûyê oddzielnie, wîaônie za pomocâ edytora obwiedni w MX. Jak widaê, proces syntezy dúwiëku przebiega tu dwuetapowo: najpierw synteza w syntezatorze, a potem w Amidze za pomocâ MX-a. To rozwiâzanie ma dwie olbrzymie zalety: -- szum kwantyzacji jest o wiele mniej sîyszalny, poniewaû obwiednia, ôciszajâca ton, zarazem ôcisza szum ziarnisty; -- znieksztaîcenia nieliniowe sâ moûliwie najmniejsze, poniewaû przez caîy czas jest wykorzystany maksymalny poziom wysterowania, od -128..127. -- zlikwidowany jest efekt skracania bâdú wydîuûania sië sampla, co przedstawia rys. 8. Ten trzeci niekorzystny efekt "zaîatwiliômy" niejako przy okazji. Na czym on polega? Otóû na pewno kaûdy zauwaûyî, ûe dúwiëk, powiedzmy, trâbki samplowany, dajmy na to, na 8 kHz i odtworzony na 16 kHz, zabrzmi o oktawë wyûej. To prawda -- na tym przecieû opiera sië caîy system grania dúwiëkiem samplowanym, ale (uwaga) jest teû o poîowë krótszy. Innymi sîowy, im wyûej, tym krócej. I vice versa. Dúwiëk zagrany oktawë niûej nieprzyjemnie sië wydîuûy, znieksztaîcajâc sië jednoczeônie. Takie "wahania" dîugoôci dúwiëku sâ w praktyce niedopuszczalne. W zawodowych samplerach, czy nawet syntezatorach z próbkami, likwiduje sië je przez zapis od dwóch do kilkunastu próbek, pobranych z róûnych oktaw, a potem na klawiaturze ustala sië strefy, które przenikajâ sië tak, ûe jedna próbka, powiedzmy trâbki zagranej na c3, przechodzi podczas naciskania coraz to wyûszych klawiszy w drugâ próbkë tejûe trâbki, ale ôciâgniëtej przy zagraniu na c4 itd. Przedstawia to rys. 9. Przy czym na rysunku pominiëto inne waûne ukîady zawodowych samplerów, takie jak filtry dolnoprzepustowe, procesory, logikë klejâcâ i inne. Po drugie caîy pokazany tu schemat moûe byê po prostu symulowany za pomocâ szybkich procesorów i DSP, zamontowanych w takim samplerze. Ale wracajmy do struktury. Najprostsza, pokazana jako pierwsza (A), opiera sië na dwóch próbkach LO i HI, które grane sâ jednoczeônie, lecz z róûnâ wzajemnâ gîoônoôciâ, zaleûnâ od poîoûenia klawisza (wysokoôci dúwiëku). Ta kombinacja jest czësto stosowana w taïszych syntezatorach do imitacji np. dúwiëku pianina. W wariancie (B) mamy juû 5 próbek, które wzajemnie sië przenikajâ. Daje to dobre rezultaty przy naôladowaniu bardziej skomplikowanych instrumentów akustycznych, takich jak obój, fagot, czasem wiolonczela. Jednakûe nawet tych piëê próbek nie wystarcza dla >dobrego< naôladowania dúwiëku instrumentów o duûej liczbie niuansów, np. skrzypiec. Do tego celu stosuje sië specjalne metody z >symulacjâ matematycznâ< na czele, ale poniewaû ten temat przekracza îamy artykuîu, zostanie to omówione kiedy indziej. Jest teû kilka innych prostych metod próbkowania, polegajâcych na miksowaniu, generowaniu ATTACK-u, przechowywaniu oddzielnie próbek dla ATTACK, SUSTAIN i DECAY i podobnych. W MX wykorzystaliômy wîaônie uproszczonâ metodë, opartâ na systemie LOOP-SUSTAIN. Moûna teû zrobiê bardziej skomplikowane manewry w MX, nawet owo przenikanie kilku próbek, bo mamy wszak teraz regulacjë VELOCITY, ale o tym kiedy indziej.