Karplus-Strong algoritam

Karplus-Strong algoritam je metod fizičke sinteze modelovanja koji kratak oblik talasa filtrira kroz linije za kašnjenje da simuliraju zvuk čekića ili neke vrste udaraljki .

Na prvi pogled, ova tehnika se može posmatrati kao subtraktivna sinteza zasnovana na povratnoj petlji koja je slična onoj u kombinovanom filteru za analizu Z-transformacije . Međutim, takođe se može posmatrati kao najjednostavnija klasa algoritama za talasnu modifikaciju, koji su sada poznati kao sinteza digitalnih talasnih valova, jer linija kašnjenja deluje na smeštanje jednog perioda signala.

Aleksandar Strong je izumeo algoritam, a Kevin Karplus je uradio prvu analizu kako to funkcioniše. Zajedno su razvili softversku i hardversku implementaciju algoritma, uključujući prilagođeni VLSI čip. Nazvali su algoritam "Digitar" sinteza, kao portmanto za "digitalnu gitaru".

Princip rada uredi

 
  1. Stvara se kratak talas ekscitacije (uzoraka dužine L). U originalnom algoritmu, to je bila eksplozija bele buke, ali takođe može uključivati bilo koju širokopojasni signal kao što je brz sinusni talasa chirp(signal čija frekvencija se povećava ili smanjuje s vremenom) ili frekvencija sweep, ili jedan ciklus oblika zubaca testere talasa ili kvadratnog talasa .
  2. Ova ekscitacija se proizvodi i istovremeno vraća nazad u liniju odlaganj L uzoraka dugo.
  3. Izlaz linije kašnjenja se puni kroz filtar . Pojačanje filtra mora biti manje od 1 na svim frekvencijama, da bi se održala stabilna petlja pozitivne povratne sprege. Filter može biti niskopropusni filter prvog reda (kao na slici). U originalnom algoritmu, filter se sastojao od prosečenja dva susedna uzorka, posebno jednostavnog filtera koji se može implementirati bez multiplikatora, zahtevajući samo pomeranje i dodavanje operacija. Karakteristike filtra su ključne za određivanje harmoničke strukture propadajućeg tona.
  4. Filtrirani izlaz se istovremeno meša natrag u izlaz i vraća u liniju kašnjenja.

Podešavanje niza uredi

Temeljna frekvencija (konkretno, najniža nulta rezonantna frekvencija) rezultirajućeg signala je najniža frekvencija na kojoj je nepremotani fazni odgovor kašnjenja i filtra u kaskadi   . Potrebno kašnjenje faze D za datu osnovnu frekvenciju F0 izračunava se prema D = Fs/F0, gde je Fs frekvencija uzorkovanja.

Dužina bilo koje digitalne linije kašnjenja je ceo broj multipliciran periodom uzorkovanja. Da bi se postiglo frakciono odlaganje, koriste se interpolacioni filteri sa parametrima odabranim za dobijanje odgovarajućeg faznog kašnjenja na osnovnoj frekvenciji. Može se koristiti ili IIR ili FIR filter, ali FIR ima prednost u tome što su prolazni efekti potisnuti ako se frakcijsko odlaganje s vremenom menja. Najosnovnije frakcijsko odlaganje je linearna interpolacija između dva uzorka (npr. s(4.2) = 0.8 s (4) + 0.2 s(5)). Ako kašnjenje faze varira u zavisnosti od frekvencije, harmonici se mogu izoštriti ili spljoštiti u odnosu na osnovnu frekvenciju. Originalni algoritam koristio je jednako ponderisanje na dva susedna uzorka, jer se to može postići bez hardvera za umnožavanje, omogućavajući izuzetno jeftine implementacije.

Analiza Z-transformacije može preciznije odrediti zazor i vreme raspadanja harmonika, kao što je objašnjeno u radu iz 1983. koji je uveo algoritam.

Demonstracija Karplus-Strong algoritma može se čuti u sledećoj Vorbis datoteci. Algoritam je koristio kvotu petlje od 0,98 sa sve slabijim filtrima niskog propusnosti prvog reda. Opseg note bio je A2, odnosno 220 Hz. Držanje konstante perioda (= dužina linije kašnjenja) stvara vibracije slične onima žice ili zvona. Naglo povećanje perioda nakon prolaznog unosa proizvodi zvukove koji slične bubnju.

Poboljšanja algoritma uredi

Aleks Strong i Kevin Karplus su shvatili da je algoritam Karplus-Strong fizički analogan uzorkovanju poprečnog talasa na gudačkom instrumentu, pri čemu je filter u povratnoj petlji predstavljao ukupne gubitke niza tokom jednog perioda. Julius O. Smit Treći [1] i drugi generalizovali su algoritam za sintezu digitalnih talasnih valova, koji se takođe mogu koristiti za modeliranje akustičkih talasa u cevima i na membrani bubnja. Prvi skup proširenja i generalizacija predstavljen je u radu 1982. godine na Međunarodnoj konferenciji o računarskoj muzici u Veneciji, a detaljnije je objavljen 1983. u časopisu Kompjuter Mjuzik žurnalu, u članku pod nazivom „Proširenja algoritma Karplus-Strong, "David A. Džef i Julius O. Smit. [1]

Aleks Strong je razvio superiornu metodu za modifikaciju talasnih tačaka za sintezu odrezanom strunom, ali objavio ju je samo kao patent. [2] [pojasniti]

Muzičke aplikacije uredi

Prva muzička upotreba algoritma bila je u delu „ May All Your Children Be Acrobats“, koje je napisao je David A. Džef 1981. godine i komponovao za osam gitara, mecosopran i stereo traku sa računarom generisanim tekstom, zasnovanim na delu Karla Sandburga Ljudi, da . Džef je nastavio da istražuje muzičke i tehničke mogućnosti algoritma u Raspadu Silicijumske doline, kompjuterski generisane žice (1982), kao i u kasnijim radovima poput Telegrama predsedniku, 1984. za gudački kvartet i kasetu i Travnate podloge za ženski hor i traka (1987).

Patent je prvo licenciran za Matel Elektroniks, koji nije uspeo kao kompanija pre nego što je razvijen bilo koji proizvod koji koristi algoritam, a zatim startap kompaniji koju su osnovali neki otpušteni Matel rukovodioci. Nikada nisu dobili dovoljno finansijskih sredstava da završe razvoj, pa tako ni nikada nisu doveli na tržište proizvod. Na kraju je Jamaha licencirala patent, kao deo Sondijusovog patenta iz Stenforda. Nepoznato je da li je ikada prodat bilo koji hardver koji koristi algoritam, mada jesu mnoge implementacije softvera (koje izumiteljima nisu plaćali licencne naknade).

Iako se oni ne mogu striktno pridržavati algoritma, mnoge hardverske komponente za modularne sisteme su komercijalno proizvedene koje se pozivaju na osnovne principe Karplus-Strong algoritma: korišćenjem obrnutog, umanjenog upravljačkog sistema za veoma male vremenske vrednosti u filtriranoj liniji kašnjenja za kreiranje reproduktivne note u sistemu za podešavanje zapadne kaljene vrednosti, kontrolisanim praćenjem volta po oktavi ili MIDI podacima. Izumitelji nisu posebno zaslužni, mada se u nekim priručnicima navodi i termin „Karplus-Strong algoritam“.

Hardverske komponente sposobne za sintezu stila algoritma Karplus-Strong su Moog Clusterflux 108M, 4ms Company Dual Looping Delay, 2HP Pluck i Arturia MicroFreak.

Reference uredi

Navodi
  1. ^ Jaffe & Smith 1983
  2. ^ „inventor:(Alexander R. Strong)”. Google Patents. Pristupljeno 2019-07-17. 
Bibliografija

Spoljašnje veze uredi