10.07.2015 Views

Dragan Matić: Genetički algoritmi i muzika - Univerzitet u Novom Sadu

Dragan Matić: Genetički algoritmi i muzika - Univerzitet u Novom Sadu

Dragan Matić: Genetički algoritmi i muzika - Univerzitet u Novom Sadu

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

4. Unaprijed se definišu referentne aritmetičke sredine i devijacije svakog pojedinačnog takta. Uzavisnosti od definisanih sredina i devijacija, dobijaju se različiti rasporedi skladnih i neskladnihintervala. Dosta lijepa rješenja (iako je mišljenje subjektivno) se dobijaju kada se u prvom ičetvrtom taktu zahtijeva više savršenih konsonanata, dok se u sredini daje veda sloboda zapojavu drugih intervala.5. Algoritam je testiran za veličinu populacije od nekoliko desetina (najčešde 30 ) jedinki. Pokazalose da je za dobijanje dobrog (često i optimalnog) rješenja dovoljno 100 generacija.6. Sama rješenja predstavljaju niz tonova različitog trajanja, uz dosta česte pauze. Generalno,algoritam teži pravljenju pauza, jer se tako smanjuje mogudnost pojave loših intervala i tonova,koji mnogo više kvare kvalitet jedinke, nego što ga dobri intervali popravljaju. Stoga dobijenejedinke više zvuče kao dobre improvizacije, nego melodične kompozicije. U krajnjoj liniji, previšesu kratke da bi se mogla formirati duža melodija. S obzirom na to, autor je odlučio da dobijenerezultate prezentuje aranžirane u osnovnom aranžmanu, gdje su generisanim jedinkamapridruženi blago podešeni akordi i elementarni ritam bubnjeva kao pratnja.ImplementacijaAlgoritam je implemenetiran u programskom jeziku Java i korišten je objektno orijentisani koncept. Zadva osnovna entiteta u algoritmu Jedinka i Populacija realizovane su odgovarajude klase. Zbogjednostavnosti, svi atributi i metodi su proglašeni javnim. Klasa Populacija sadrži listu Jedinki.Implementirani su neophodni, ali i dodatni atributi i metodi koji olakšavaju rad i omogudavaju boljufunkcionalnost klasa. Spisak ulaznih parametara se podešava preko ulazne datoteke ili direktno u kodu,dok kao rezultat, algoritam daje muzički (tekstualni) zapis koji klase iz paketa JFugue mogu dainterpretiraju kao muziku ili midi datoteku koja sadrži kompoziciju.Samo testiranje dobijenog rezultata (reprodukcija odgovarajude melodije u zvuk ili notni zapis) vrši sepreko glavnog ili pomodnog programa.Klasa Jedinka – osnovni elementiOsnovni atributiOsnovni atributi klase su:Niz u kome se čuva kompozicija (elementi su cjelobrojnog tipa);Dužina niza za čuvanje kompozicije;Fitnes (tipa double);Melodija (tipa String – predstavlja muzički string koju objekti iz paketa JFugue interpretiraju kaomuziku).Klasa sadrži i dodatne atribute koji evidentiraju pozicije tonova, broj različitih tonova, broj tonova potaktovima, intervale i slično i koriste se za bržu realizaciju metoda.51

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!