Demot ym.: www.synestesia.fi
Generatiivinen musiikin tuottaminen, esitelmä; Helsingin yliopisto 24.11.2003 ( pdf, 1.2 Mb)
Musiikkia kuvista, esitelmä; Jyväskylän yliopisto 11.12.2003 (pdf, 1.22 Mb)

Lauri Gröhn:

Musiikkia kuvista 2003

1 Johdanto

Kehittämässäni menetelmässä musiikkia (midi-tiedostoja) generoidaan mistä tahansa kuvista. Menetelmän metaforana voidaan pitää kuvanveistoa, jossa lähdetään kivenkappaleesta tai puunpökkelöstä, joka inspiroi kuvanveistäjää tiettyyn ratkaisuun. Esiteltävä menetelmä perustuu kuvan pikseleiden poissuodattamiseen ja toisaalta useiden musiikillisten valintaparametrien käyttöön. Edelleen metaforaa käyttäen parametrien käyttö on ikään kuin veistosta katselisi eri kuvakulmissa, eri valaistuksessa tai eri ympäristöissä. Kunkin sävellyksen pohjana oleva kuva ja parametriluettelo ovat yhdessä sävellyksen metapartituuri. On vain löydettävä kuvia, josta generoituu mielenkiintoista musiikkia.

Sivuillani www.synestesia.fi on satakunta sävellystä (mp3, midi), joiden generoinnissa käytettyjen kuvien kirjo on laaja: maisemia, maalauksia, piirroksia, viivakoodi, Nokian logo, EU:n lippu, euron kolikko, kassakuitti, WTC:n rauniot, putoava avaruussukkula, käsialanäyte, muotokuva, koira, revontulet ja niin edelleen. Kuva vastaa jossakin mielessä normaalin sävelyksen nimeä tai ensiesitykseen laadittavaa teoksen esittelyä.

Synestesia on säveltämisen kehitysjärjestelmä, jossa ei ole omaa käyttöliittymää.  Ohjelmaa ajetaan JBuilder Java-kehitysympäristön tai muun vastaavan avulla. Tyypillinen konfiguraatio sisältää JBuilderin käyttöliittymän, kuvakansion ja midi-tiedostokansion  (liite 1). Kun parametrit on valittu, generoi ohjelma käynnistyksen jälkeen midi-tiedoston muutamassa sekunnissa.  (liite 2).

Toistaiseksi en ole suorittanut midi-tiedostojen jälkikäsittelyä. Raakapartituurista näkee, että jos musiikki halutaan saada muusikoiden kannalta esittämiskelpoiseksi, on midi-tiedostosta saatavaa raakapartituuria (liite 3, liite 5) usein muokattava käyttökelpoisempaan muotoon (liite 4).

Generoinnissa syntyy kokonaisia sävellyksiä, jotka ovat parametreistä riippuen minimalistisia, new age tyylisiä tai vahvasti klusteroituja, genrenä lähinnä "klassinen nykymusiikki". Muodostamalla sopivia parametrijoukkoja voidaan rakentaa erilaisia tyylejä tai "säveltäjäprofiileja". Sävellysten  ovat olleet minuutista 10 tuntiin. Ohjelmassa ei ole lainkaan käytetty satunnaisuutta. Synestesia-ohjelman  spin-offeja voidaan lähteä rakentamaan eri suuntiin (liite 6).

2 Kuvan suodatus

Ohjelmassa valitun kuvan kunkin pikselin r/g/b arvot lasketaan yhteen (moodi 0)  tai kerrotaan keskenään (moodi 1) ja jokaisella suodatuskerralla (parametri) ne pikselit jotka ovat johtaneet yleisimmin esiintyvään arvoon  "veistetään pois". Kuvassa 1 ylinnä alkuperäinen, seuraavana moodissa 0 suodatettu 10 ja 400 kertaa ja alinna moodissa 1 suodatettu 100 ja 400 kertaa. Suodatuksessa jäljelle jääneitä (jatkossa käytettävissä olevia) harmaasävypikseleitä on kuvassa merkitty mustalla. Useimmiten näistäkin käytetään musiikkia generoitaessa alle 10 prosenttia.

This picture shows which pixels were
used in this generation. Pixels for different
movements are marked with different
colours. The horisontal lengths of the
colored lines depend on the lenghts of
the notes. In one movement the vertical
position of each pixels depends on the
pitch, but the relative pitch of each
movement depends on the parameter
"pitch difference" described below.

3 Kuvan pilkkominen

Raitojen (track, parametri) määrästä riippuen kuva jaetaan pystysuunnassa yhtä suuriin lohkoihin

ja osien (parametri) määrästä riippuen kunkin osan pikseleinä käytetään käytössä olevien pikselien määrää jaettuna osien määrällä. Osassa 1 käytetään tummia pikseleitä ja viimeisessä vaaleimpia. Aika kulkee vasemmalta oikealle. Yleisin väri (musta) on suodattanut pois. (Kuvassa harmaasävypikselit on merkitty mustalla.)

4 Parametreista

Instrumentit, volyymit jne. voidaan valita  parametreilla tai parametrijoukoilla jokaiselle raidalle erikseen. Harmoniat syntyvät raidalle vertikaalinuottien määrästä, minimi-intervallista ja sävelalan laajuudesta.

Jos maksimi sävelkorkeudeksi (parametri) on asetettu midi-arvo 96 ja eri raitojen säveltasojen erotukseksi 6,  on ylimmän raidan korkein säveltaso 96, seuraavan 90, seuraavan 84 jne. Ohjelmaan sisältyy taulukko, jossa kukin instrumentin korkein ja mahdollinen nuotti on määritelty.

5 Pikseleiden lukeminen

Pikseleitä (harmaasävyiksi muutettuja) käydään läpi vertikaalisesti ylhäältä alas yksi raita  kerrallaan  valitun harmonian (parametri i) ja soinnun "paksuuden" (parametri m) edellyttämällä tavalla. Jos kyseisellä raidalta, kyseisestä osasta puuttuu pikseli siirrytään matkan i verran alaspäin. Raitaa käydään läpi vasemmalta oikealle niin monta kertaa kuin sävellyksessä on osia (parametri) läpikäyden aina kyseeseen osaan kuuluvia pikseleitä. Aika-akseli kulkee siis vasemmalta oikealle ja osien määrä tempon (parametri) ohella määrää sävellyksen pituuden.

pikseleitä
i=2
m=4
i=3
m=1
*
x
x
*
x
*
x
*
*
x
*
*
*
*
*
*
*
*
*

6 Sävelkorkeudet

Sävelkorkeudet määräytyvät koko sävellyksen korkeimmasta mahdollisesta nuotista (parametri), kunkin raidan suhteellisesta säveltasosta ylempään verrattuna (parametri) ja valitusta asteikosta, joita voidaan  muodostaa mielivaltaisesti lisää:

Sävelkorkeudet ja volyymi  saavat arvoikseen midissä käytettäviä arvoja. Jokaisella raidalla voi olla oma sävelasteikkonsa. Ohessa esimerkki pikseleiden kuvautumisesta säveltasoiksi:

Huomattakoon, että valitsemalla alkuperäisestä kuvasta kaksi mielivaltaista pikseliä ei ole mahdollista a priori sanoa kumpi niistä "soitetaan" ensin ja kumman säveltaso on korkeampi.

7 Nuottien kestot

Nuotti voi syttyä kun tietyn raidan ja tietyn osan kohdalle osuu ”nouseva reuna” eli vaakatasoa seuraten löytyy pikseli, jota edeltävä pikseli ei ollut käytettävissä. Nuottien kesto määräytyy kunkin raidan vaakasuunnassa käytettävissä olevien perättäisten lukumäärän perusteella. Kunkin raidan nuoteille voidaan asettaa maksimikesto (parametri). Esimerkissä A tuo parametri on yli 7 ja esimerkissä B parametri on 4. Yksikkönä on mininuotti (parametri), joka voi olla 1/8, 1/16 tai 1/32 -nuotti.

8 Volyymit

Kunkin nuotin volyymi  määräytyy seuraavalla tavalla:

Keinotekoinen crescendo on kokeiltavana ja jää mahdollisesti jatkossa pois ellei se osoittaudu hyödylliseksi ja ellei sitä voida laskennallisesti kiinnittää johonkin kuvan ominaisuuteen.

9 Muutamia erikoisuuksia

Koska musiikkia voidaan generoida mistä tahansa kuvasta, ovat muutamat yksityiskohdat tuottaneet melkoisesti lisätyötä. Kuvasta riippuen on mahdollista, että musiikkiin tulee liian pitkiä taukoja. Ne on eliminoitu parametrillä, joka määrittelee sallitun maksimitauon. Liian pitkän tauon uhatessa ohjelma supistaa tauon parametrin ilmaisemaan pituuteen. Sävellyksen alun ja lopun pikselit on suodatettava  ylimääräisellä tavalla, jottei sävellys ehkä alkaisi voimakkaalla purskeella tai lopu ikään kuin seinään.

10 Lopuksi

Synestesia-ohjelmassa on Java-koodia nykyisellään runsaat 500 riviä ja koska käyttöliittymää ei ole, eikä olio-ohjelmointia ole toteutettu taiteen sääntöjen mukaisesti enkä edes nykyosaamisellani pystyisi siihen.  Kehitysympäristönä ohjelma on toiminut mainiosti, teknisiin rakenteisiin ei ole tarvinnut puuttua.  Suoritin ainoa uudelleenohjelmoinnin syksyllä 2001. Viitasaaren sävellyskursseilla saadut muutosehdotukset olen pystynyt toteuttamaan muutaman rivin lisäyksillä tai muutoksilla.

Aivan uutena mahdollisena haasteena voisi olla kehittää käänteinen ohjelma, joka tekisi staattisen kuvan midi-tiedostosta. Näin saatuja kuvia voisi käyttää uusien midi-tiedostojen generointiin, jolloin syntyisi eräänlainen soluautomaatti joka tuottaisi rajattomasti musiikkia. 

Kehitetyn  ohjelman avoin lähdekoodi (kevään 2002 versio) löytyy nettisivulta www.synestesia.com kuten myös lukuisa joukko midi- ja mp3-tiedostoja kuvineen ja joitakin dokumentteja.

 

Liite 1: Kehitysympäristö käyttöliittymä parametrien valintavaiheessa

 

Keskellä Java-lähdekoodia JBuilder 9 ympäristössä. Generointi käynnistyy vasemman olevasta sinisellä maalatusta kohdasta ja generointi kestää muutaman sekunnin. Oikealla pala kuvahakemistoa, josta haluttu kuva (.jpg) voidaan poimia ja alhaalla oikealla kansio, johon midi-tiedosto generoituu.

Liite 2: Näyttö generoinnin tapahduttua

 

Alhaalla vasemmassa puoliskossa on alkuperäinen kuva, siitä muodostettu harmaasävykuva, josta varsinaisesti suodatus alkaa, ylempänä oikealla suodatettu kuva (kaikki harmaasävyt merkitty mustalla) ja ylävasemmalla kuvan ne pikselit (merkitty mustalla), joita tässä generoinnissa on käytetty musiikin generointiin. Kuvasta ei voi lukea sävelkorkeuksia kuin suuntaa-antavasti eikä kuvasta näy missä sävellyksen osassa kutakin pikseliä on käytetty, eikä siis ajanhetkeä, vaikka aika kulkeekin vasemmalta oikealta. Testiparametrin muutoksella saadaan haluttaessa erikseen näkyviin myös kussakin osassa käytetyt pikselit. 

Liite 3: Midi-tiedostosta saatu raakapartituuri, esimerkkinä "Time is Up", sivu 1/16

Liite 4: Raakapartituurista muokattu lähes muusikoiden soitettavissa oleva partituuri, sivu 1/16

Liite 5: Midi-tiedostosta saatu raakapartituuri, osa

Liite 6: Synestesia-ohjelman soveltamisideoita

Generating music from mobile phone MMS messages

Tool for composers: idea generator /tester, music writer. Everybody can
be a composer, even children

Music for meditation, music therapy
Active therapy tool by making pictures and music

Tool for music education at schools, educational music, music for ability tests.

Send us a picture and get back CD (horoscope, signature, face, house, favourite landscape...)

Research tool, new way of analysing music, writing articles of this new approach

Presents: a picture or painting with CD music, CDs of the picture from which
the music came from

Tool for blind people for "looking" pictures or their drawings, listening structures

Interactive Internet service: give the
URL or draw a picture and listen to it immediately.

Generating musical illusions Association game: looking and listening, then describing what was going on. Or using a wrong picture...

Generating Ring Tones for
mobile phones from pictures

Competitions in TV: viewer send picture, the music is presented and the viewers select the best

Listening company logos
Listening the package covers

Musitives Radio Channel. Unlimited amount of background music, always different

Generating music using mobiles phones with digital camera and listening everything around

Microtonality is easy to add if needed...