Audiokoodausta

Sähköpostiin kolahti uusi lista Standford onlinen tulevista kursseista. Huomiota kiinnitti kurssi audiosignaalin käsittelystä musiikkisovelluksissa. Totesin kuitenkin, ettei juuri nyt ole aikaa lähteä sivupoluille ja ohitin asian. Samana päivänä törmäsin kuitenkin JuliaCon 2014 luentojen videoihin, joista yksi käsitteli reaaliaikaista audiota. Noh… jos sitä ihan vähän tutkisi aihetta ja selvittäisi miten Julia suhtautuu siihen.

Edellisen kerran kokeilin audiokoodailua vuosi sitten. Kävin Courseran kurssilla, jossa käytettiin ChucK-ohjelmointikieltä. Datajuttuihin tämä liittyi siten, että halusin kokeilla tiedon sonifikaatiota, eli generoida ääniä, ehkä jopa musiikkia, dataseteistä. Miltä pörssikurssit kuulostavat? Entä säätiedot? Homma jäi tuolloin kesken ja hautumaan toistaiseksi.

Yksi Julian perustavista ideoista on interaktiivisen ohjelmoinnin ja batch-ohjelmoinnin välisen kuilun häivyttäminen. Eli ei enää kahta eri ohjelmointikieltä: esimerkiksi Pythonia käyttöliittymässä ja C:tä ytimessä, kun tarvitaan nopeutta. Tämä ongelma esiintyy erityisesti tieteellisessä laskennassa, mutta myös reaaliaikaisessa audiossa. Eli Julia saattaisi soveltua tähänkin. AudioIO.jl on projekti, joka koittaa ottaa asiasta selvää.

En vielä kovin pitkälle päässyt, mutta ainakin paketin asennus onnistui ja random-tietokonepulinan generointi siniaaltoa taivuttamalla oli suoraviivaista:

using AudioIO

osc1 = SinOsc(440)
freqs = rand(100)*880 # 100 random frequencies 0-880hz 

play(osc1)
for f in freqs
    osc1.renderer.freq = f
    sleep(0.2)
end
stop(osc1)

Linkit

comments powered by Disqus
2014-09-25