• Ei tuloksia

Avoimen lähdekoodin musiikkiteknologia

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "Avoimen lähdekoodin musiikkiteknologia"

Copied!
48
0
0

Kokoteksti

(1)

Lappeenrannan teknillinen yliopisto Teknistaloudellinen tiedekunta Tietotekniikan koulutusohjelma

Avoimen lähdekoodin musiikkiteknologia Kandidaatintyö

Kandidaatintyön aihe on hyväksytty 17.06.2008

Työn ohjaajana toimii yliassistentti TkT Kari Heikkinen Työn tarkastajana toimii prof. Jari Porras

Lappeenrannassa 20.08.2008

Mikko Gynther

Punkkerikatu 5 C 43, 53850 Lappeenranta

+358408217855

(2)

TIIVISTELMÄ

Lappeenrannan teknillinen yliopisto Teknistaloudellinen tiedekunta Tietotekniikan koulutusohjelma

Mikko Gynther

Avoimen lähdekoodin musiikkiteknologia

Kandidaatintyö 2008

48 sivua, 5 kuvaa, 8 taulukkoa, 5 liitettä Tarkastaja: Professori Jari Porras

Hakusanat: Avoin lähdekoodi, musiikki, virtuaali­instrumentti, äänisynteesi Keywords: Open source, music, virtual instrument, sound synthesis

Musiikkiteknologia   on   laaja   soveltava   tieteenala,   jota   voidaan   hyödyntää  kasvatustieteissä,   psykologiassa   ja   kognitiivisissa   tieteissä.   Musiikkilaitteet   ja 

­ohjelmistot   hyödyntävät   tietotekniikkaa.   Musiikkiteknologian   ohjelmat   ovat   joko  kaupallisia tai pohjautuvat  avoimen lähdekoodin ajatteluun.

Tässä työssä kartoitin Linuxin avoimen lähdekoodin virtuaali­instrumentit sekä toteutin  rumpukoneen, kosketinsoittimen ja yksinkertaisen karaokeohjelman mobiilille laitteelle. 

Tehty   työ   osoittaa,   että   tietoteknisin   keinoin   voidaan   toteuttaa   tutkimushankkeissa  hyödynnettäviä musiikkiteknologian ohjelmia.

(3)

ABSTRACT

Lappeenranta University of Technology Faculty of Technology Management

Degree Program of Information Technology

Mikko Gynther

Open Source Musical Engineering

Bachelor's Thesis 2008

48 pages, 5 figures, 8 tables, 5 appendices Examiner: Professor Jari Porras

Keywords: Open source, music, virtual instrument, sound synthesis

Musical   Engineering   is   a   broad   applied   branch   of   science   which   can   be   utilized   to  pedagogics,   psychology   and   cognitive   science.   Musical   devices   and   software   utilize  information technology. Musical engineering software is either commercial or based on  open source philosophy.

In this thesis I study open source virtual instruments developed for Linux and develop a  drum machine, a musical keyboard and a simple karaoke program for a mobile device. 

This thesis shows that musical engineering software which is useful in research projects  can be developed by means of information technology.

(4)

ALKUSANAT

Tämä   työ   tehtiin   Lappeenrannan   teknillisessä   yliopistossa   Tietoliikenneohjelmistojen  laboratoriossa   kesällä   2008.   Haluan   kiittää   Tietoliikenneohjelmistojen   laboratoriota  hyvästä työilmapiiristä ja ­ympäristöstä sekä avusta Linux­käyttöjärjestelmän ja Maemo­

ympäristön kanssa.

(5)

SISÄLLYSLUETTELO

TIIVISTELMÄ...ii

ABSTRACT...iii

ALKUSANAT...iv

SISÄLLYSLUETTELO...1

SYMBOLILUETTELO...3

1 JOHDANTO...4

1.1 Tausta...4

1.2 Tavoitteet ja rajaukset...5

1.3. Työn rakenne...6

2 MUSIIKKITEKNOLOGIAN KÄSITTEET...7

2.1 Taustatietoa tekniikasta ja työssä käytetyt käsitteet...7

2.2 Tutkimusongelman ja sen ratkaisutavan esittely...11

3 VIRTUAALI­INSTRUMENTTIEN OHJELMOINTI...13

3.1 Linuxin virtuaali­instrumenttien kartoitus...14

3.2 Drums­ohjelma...17

3.3 Melody­ohjelma...20

3.4 Karaoke­ohjelma...22

3.5 Melody­ohjelman suorituskykytestaus...23

3.6 Tulosten yhteenveto...25

3.7 Työn vaativuus ja työmäärä...26

3.8 Tulosten tulkinta...27

4 POHDINTA...29

4.1 MobiKid­ ja Karaoke­ohjelmien vertailu...29

4.2 Tulosten merkitys...30

4.3 Tulevaisuus...31

5 YHTEENVETO...33

LÄHDELUETTELO...34

Liite 1. Musiikkiteknologian avainsanat lähteestä ACM...38

(6)

Liite 2. Drumsin soivat äänet toistava funktio...40

Liite 3. ALSA­tietovirtaan kirjoittava funktio...42

Liite 4. Puskurit summaava funktio...43

Liite 5. Melodyn äänialgoritmit...44

(7)

SYMBOLILUETTELO

ALSA  Advanced Linux Sound Architecture FM Frequency Modulation (taajuusmodulointi)

GTK+ The GIMP Toolkit

JACK Jack Audio Connection Kit

JamMo Jamming Mobile

LFO Low Frequency Oscillator (matalataajuinen oskillaattori) Mac OS Macintosh Operating System

MIDI Musical Instrument Digital Interface OpenGL Open Graphics Library

UMSIC Usability of Music for Social Inclusion of Children

(8)

1 JOHDANTO

1.1 Tausta

Musiikki on ollut olennainen osa ihmisten elämää vuosituhansien ajan. Se on merkittävä  osa   kulttuureita   ja   nähdään   usein   universaalina   kielenä.   Tekninen   kehitys   on  monipuolistanut musiikin harrastamisen mahdollisuuksia.

Musiikkiteknologia   (Musical   Engineering)   on   soveltava   tieteenala,   jota   voidaan  hyödyntää   kasvatustieteissä,   psykologiassa   ja   kognitiivisissa   tieteissä.   Musiikin  harjoittamisen   yhteys   luovuuteen   ja   älykkyyteen   sekä   musiikin   vaikutus   ihmisen  kehitykseen on kiinnostanut tutkijoita pitkään. Musiikkiteknologia hyödyntää fysiikan  aaltoliikkeen  ja  mekaniikan  sekä signaalinprosessoinnin  teorioita.  Se pyrkii  tekniikan  avulla   vastaamaan   ihmisten   musiikillisiin   tarpeisiin,   jotka   voivat   olla   erittäin  yksilösidonnaisia.   Tietotekniikka   on   erottamaton   osa   musiikkiteknologiaa,   ja   sen  merkitys   musiikkiteknologiassa   on   kasvanut   entisestään   tietokoneiden   laskentatehon  lisääntyessä. Tietotekniikkaan sisältyy ohjelmointi, joka mahdollistaa fysiikan ilmiöiden  todentamisen.

Osa musiikkiteknologian tuotteista on ollut kaupallisia ohjelmistoja esimerkiksi musiikin  ammattimaiseen   tuotantoon.   Yrityksissä   on   myös   tutkittu   ja   kehitetty   erilaisia  musiikkilaitteita   sekä   ammattimaiseen   että   kuluttajien   käyttöön.   Kaupallisten  ohjelmistojen lisäksi myös avoimen lähdekoodin (open source) musiikkiteknologiaa on  saatavilla.   Avointa   lähdekoodia   voidaan   hyödyntää   tieteellisessä   tutkimustyössä  tehokkaasti,   koska   sen   käyttö   on   suljettua   lähdekoodia   vapaampaa.   Näin   saavutetut  tutkimustulokset ovat helpommin hyödynnettävissä sekä tutkimuksessa että  erilaisissa  toteutuksissa.   Kuitenkin   avoin   lähdekoodi   on   toistaiseksi   verrattain   harvinaista  musiikkiteknologiassa.   Onkin   tärkeää   saada   selville:   Kuinka   avoimen   lähdekoodin  musiikkiteknologiaa voidaan hyödyntää tieteellisessä tutkimustyössä?

(9)

1.2 Tavoitteet ja rajaukset

Työn rajaukset keskittyvät 1UMSIC­hankkeen (Usability of Music for Social Inclusion of  Children) viitekehykseen. UMSIC­hankkeen tarkoitus on ehkäistä lasten syrjäytymistä  esimerkiksi   lisäämällä   heidän   yhteenkuuluvuuden   tunnettaan   musiikin   avulla. 

Musiikkiterapian on todettu muun muassa parantavan huomio­ ja keskittymiskykyä sekä  impulsiivisuuden   hallintaa   lasten   keskuudessa.   Sen   on   todettu   myös   parantavan  itsetuntoa, itseilmaisua ja muistia [33].

UMSIC­hankkeessa   toteutetaan   musiikkiohjelmisto   vertaisverkkoympäristöön.   Siinä  tuotetaan   JamMo­sovellus,   jossa   on   kolme   toimintatapaa:   Karaoke,   Improvisointi  (Improvisation) ja Sävellys (Composition) [33]. Tavoitteenani oli tuottaa improvisointiin  soveltuvia   virtuaali­instrumentteja,   joiden   avulla   käyttäjä   voi   myöhemmin  sekvensseriosiota hyödyntäen soittaa taustamusiikin päälle ja äänittää omaa soittoaan. 

Omissa virtuaali­instrumenteissani taustamusiikkia tai äänitysmahdollisuutta ei ole, vaan  pyrin ainoastaan kehittämään soitettavia virtuaali­instrumentteja.

En   ensisijaisesti   pyrkinyt   tekemään   virtuaali­instrumentteja,   joiden   tuottama   ääni   on  mahdollisimman lähellä fyysisiä instrumentteja. Tavoitteeni oli saada ääntä tuotettua eri  periaatteita   hyödyntäen.   Näin   tuottamaani   ohjelmakoodia   voidaan   todennäköisesti  hyödyntää paremmin tulevaisuudessa.

Ohjelmia  kehitin  Maemo­ympäristössä ja kohdelaitteena  oli Nokia N810. Maemo on  Nokian tukema Linux­pohjainen kehitysympäristö Internet Tabletien ohjelmille, ja sitä  käytetään tulevassa UMSIC­hankkeessa. N810 valittiin, koska se oli saatavilla [15, 33].

Virtuaali­instrumenttini käyttävät Maemon tukemaa ALSA­äänikirjastoa, joka on Linux­

ympäristön   standardiäänikirjasto.   Linuxin   JACK­äänipalvelin   olisi   suunnattu 

1 UMSIC: FP­7 224561 –hanke alkaa 1.9.2008 ja päättyy 31.8.2011.

(10)

ammattimaisempaan musiikkikäyttöön, mutta se ei ainakaan toistaiseksi sisälly Maemo­

ympäristöön [17, 35].

Tarkoitukseni ei ollut toteuttaa graafista käyttöliittymää tai valmista osaa sovellukseen,  vaan ainoastaan tuottaa ja kerätä UMSIC­hankkeessa myöhemmin hyödynnettävää tietoa. 

Tarkoitukseni oli myös tutustua virtuaali­instrumenttien ohjelmointityöhön ja helpottaa  tulevaa suunnittelutyötä ja aikataulujen arviointia.

En tutustunut kasvatustieteiden, psykologian tai kognitiivisten tieteiden lähteisiin työtä  tehdessäni. Käyttämäni lähteet ovat lähinnä tekniikan alan julkaisuja.

1.3. Työn rakenne

Teoriaosuudessa tutkin työhön liittyvää teoreettista taustaa ja esittelen käytetyt käsitteet  ja termit. Esittelen myös tutkimusongelman ja sen ratkaisutavan.

Käytännön osuus kuvaa työn, työvaiheet, tulokset ja työtä tehdessä esiintyneet ongelmat. 

Siihen   kuuluu   kuvaus   olemassa   olevien   virtuaali­instrumenttien   kartoituksesta   ja  kuvaukset kolmesta ohjelmoimastani ohjelmasta.

Pohdintaluvussa arvioin työn tuloksien merkitystä ja tulevaisuutta. Yhteenveto on lyhyt  kooste tehdystä työstä.

(11)

2 MUSIIKKITEKNOLOGIAN KÄSITTEET

2.1 Taustatietoa tekniikasta ja työssä käytetyt käsitteet

Musiikkiteknologia ymmärretään hyvin laajana käsitteenä (ks. Liite 1). Taulukossa 1 on  tilasto   artikkelien   avainsanoista.   Merkitykseltään   vastaavia   avainsanoja   yhdistin  parantaakseni taulukon luettavuutta. Tilastosta näkee musiikkiteknologian tutkimuksen  painotuksia   osa­alueittain.   Pääpiirteittäin   avainsanat   ovat   kuvaavia.   Ainoastaan 

”Musical”,   ”Musical   engineering”,   avoimeen   lähdekoodiin   liittyvät   avainsanat   eivät  kuvaa artikkelin sisältöä tarkasti.

Taulukko 1: Musiikkiteknologian avainsanat (ks. Liite 1)

Avainsana (suomennos) Artikkelien määrä  (yhteensä 72)

Prosenttiosuus  artikkeleista

Music education (musiikin opetus) 14 19,4 %

Musical (musiikillinen) 14 19,4 %

Virtuaali­instrumentteihin liittyvät avainsanat 13 18,1 %

Composition music (sävellys musiikki) 7 9,7 %

Karaoke 6 8,3 %

Musical cognition (musiikillinen kognitio) 5 6,9 %

Avoimeen lähdekoodiin liittyvät avainsanat 3 4,2 %

Music therapy (musiikkiterapia) 3 4,2 %

Sosiaalisiin ja psykologisiin seikkoihin  liittyvät avainsanat

3 4,2 %

Improvisointiin liittyvät avainsanat 2 2,8 %

Musical engineering (musiikkiteknologia) 2 2,8 %

Artikkelit   voidaan   jakaa   kolmeen   ryhmään   esiintymien   määrän   perusteella.   Musiikin  opetustyökaluihin   ja   virtuaali­instrumentteihin   on   panostettu   paljon.   Sävellys­   ja  karaoketyökalut sekä musiikillinen kognitio ovat tutkittuja aiheita. Avoin lähdekoodi ja  musiikin   sosiaaliset   ja   psykologiset   vaikutukset   ovat   toistaiseksi   olleet   vähemmän  suosittuja tekniikan alan julkaisuissa.

(12)

Tässä   kappaleessa   käytetyt   musiikkiteknologian   käsitteet   on   määritelty   taulukossa   2. 

Useita musiikkiteknologiaan liittyviä termejä käytetään eri merkityksissä, mikä aiheuttaa  helposti väärinymmärryksiä eri lähteitä luettaessa.

Taulukko 2: Musiikkiteknologian käsitteitä Käsite Merkitys

Ääni Väliaineen,  tavallisesti  ilman,  hiukkasten  värähtelyä,  joka on peräisin  värähtelijästä.   Värähtely   on   muutettavissa   sähköiseksi   signaaliksi  esimerkiksi   mikrofonin   avulla.   Sähköinen   signaali   voidaan   edelleen  muuttaa digitaaliseksi, jolloin käytetään termiä digitaalinen ääni.

Ääninäyte  (sample)

1) Yksittäisen näytteen arvo. Sekunnissa ääntä on näytetaajuuden verran  ääninäytteitä.

2) Tiedosto, jota toistamalla voidaan tuottaa virtuaali­instrumentin ääntä. 

Sisältää   yhden   soittimen,   esimerkiksi   rummun,   yhden   äänen.   Tässä  työssä käytetään termiä äänitiedosto.

Äänisynteesi Menetelmät,   joiden   avulla   luodaan   musiikillisesti   kiinnostavia   ja  mielellään realistisia ääniä reaaliajassa [29].

Virtuaali­

instrumentti

Digitaalista ääntä reaaliajassa tuottava soitettava ohjelma.

Sampleri Äänitiedostoja käyttäjän syötteiden perusteella toistava ohjelma tai laite.

Sekvensseri Moniraitainen   musiikkiohjelma,   joka   voi   toistaa   ja   tallentaa   ääni­   ja  MIDI­raitoja.

Liitännäinen  (plugin)

Sekvensserissä toimiva virtuaali­instrumentti tai efekti.

Löytämieni artikkelien avulla voi muodostaa musiikkiteknologiasta kuvan 1 mukaisen  kokonaiskuvan.   Suunnatut   nuolet   kuvaavat   hierarkiasuhdetta.   Kuvasta   voi   nähdä  musiikkiteknologian   ja   psykologian   läheisen   yhteyden.   Musiikkiteknologia   tarjoaa  työkaluja esimerkiksi musiikkiterapian tarpeisiin musiikin tekemisen itseisarvon lisäksi. 

Kuvaa   voi   lähestyä   joko   alhaalta   tai   ylhäältä.   Ylhäältä   lähdettäessä   näkökulma   on 

(13)

tekninen,   alhaalta   puolestaan   psykologinen.   Tummennetut   käsitteet   liittyvät   läheisesti  tähän työhön. Kuvaan on myös merkitty joitakin viittauksia artikkeleihin.

Kuva 1: Musiikkiteknologia [Liite 1]

Kirjallisuuskatsaus osoitti, että seuraavia tutkimusaiheita on käsitelty:

Äänisynteesi [21, 25]

Virtuaali­instrumentit [3, 34]

Musiikin analysointi, luokittelu ja luominen [5, 6, 28]

Musiikkilaitteiden ja ­lelujen erilaiset käyttöliittymät [2, 14, 27, 30]

Lapsille soveltuvat musiikkityökalut [1, 7]

Musiikin opetustyökalut [18, 23, 24]

Musiikin psykologiset, pedagogiset ja kognitiiviset vaikutukset [4, 10, 20, 22, 26]

(14)

Värähtelijää voidaan mallintaa massa­jousi­systeemin avulla [21]. Artikkelissa vertaillaan  kolmea  numeerista  menetelmää  ja  todetaan,  että  käytännössä niiden välillä  on vähän  korvin   havaittavaa   eroa.   Instrumentin   fyysistä   mallinnusta   voidaan   lähestyä   myös  jakamalla instrumentti pienempiin mallinnettaviin osiin [25].

Virtuaali­instrumenttien   avulla   on   tutkittu   perinteisten   instrumenttien   äänen  mallintamista;   esim.   puhallinsoittimen   soitettavuuteen   liittyviä   ongelmia   koskettimilla  soitettaessa [34] ja huilun tyyppisen instrumentin äänen tuottamista [3]. Äänitiedostojen  toistoon   perustuvista   virtuaali­instrumenteista,   kuten   kaupalliset   virtuaali­instrumentit  [13, 31], ei löytynyt julkaisuja.

Yksinkertainen, tietyn musiikkityylin kappale voidaan luoda kyseistä tyyliä edustavien  näytteiden   ja   neuroverkon   avulla   [6].   Eri   äänilähteiden   erottamista   yksikanavaisesta  äänisignaalista   on   tutkittu   [5].   Kyseinen   artikkeli   antaa   rohkaisevia   tuloksia  äänenerottelualgoritmien   mahdollisuuksista.   Äänisignaalia   analysoimalla   ja  evoluutiolaskentaa   hyödyntämällä   voidaan   suositella   kuuntelijalle   mieluista   musiikkia  [28].

Rumpukonetta   voidaan   ohjata   ihokosketuksella   [2].   Virtuaali­instrumenttia   voidaan  soittaa   lihaksen   sähköisillä   jännitteillä   (elektromyografia)   [27].   Virtuaali­instrumentin  ohjaamista   äänisignaalin   avulla   on   tutkittu   [14].   Pehmolelu   sopii   hyvin   äänen  tallennusmediaksi   lapsille   [30].   Artikkelissa   todetaan,   että   lapset   keksivät   useita  käyttömahdollisuuksia tallennetulle äänelle.

Musiikkisekvensserin   aikatason   hahmottaminen   helpottuu   esimerkiksi   pallojen   ja  kierteisen  kiskon  avulla  [7].  Pallot  valuvat  kiskoa  pitkin  alaspäin   ja  matkan   varrelle  sijoitetaan   syntetisaattorimoduuleita.   Fyysisen   sekvensserin   todettiin   helpottavan  musiikin   teoreettisten   käsitteiden   ymmärtämistä.   Musiikkisekvensserin   käytössä   ei  välttämättä vaadita raitojen käsitteen ymmärtämistä [1]. Tavallisesti raita sisältää yhden  instrumentin ääntä, minkä takia ääni voidaan sijoittaa äänikuvassa haluttuun paikkaan ja 

(15)

äänen   voimakkuutta   voidaan   säätää   helposti   muihin   raitoihin   vaikuttamatta.   Tämä  lähestymistapa voidaan korvata instrumentteja kuvaavilla symboleilla, jotka sijoitetaan  kuvassa eri paikkaan halutun toiminnon mukaan [1]. Tämän esitystavan todetaan olevan  helposti lapsen ymmärrettävissä.

On   tutkittu   ohjelmaa,   jonka   avulla   lapsille   opetetaan   musiikin   käsitteistöä,   nuottien  lukemista,   pianonsoittoa   ja   oman   musiikin   säveltämistä   [18].   Lapsi   voi   harrastaa  musiikkia   vanhempansa   kanssa,   vaikka   vanhempi   ei   osaisikaan   soittaa   mitään  instrumenttia [23]. Kyseisen musiikkiohjelman havaitaan tuovan yhteiseen musisointiin  rikkaampaa musiikillista ilmaisua. Musiikinopetusta on myös lähestytty korvakuulolta  oppimalla,   kuten   musiikkia   on   ollut   tapana   oppia   perinteisesti   epämuodollisessa  oppimisympäristössä [24].

Lapsen sävellystyötä tietokoneympäristössä on tutkittu [26]. Artikkelissa todetaan, että  tietokoneympäristö   mahdollistaa   sävellyksen   kuulemisen   heti   ja  täten  musiikinteorian  tunteminen ei ole vaatimus säveltämiselle. Musiikillisen lahjakkuuden ja vieraan kielen  hyvän   ääntämisen   yhteys   on   havaittu   [20].   Myös   musiikkiterapia   sekä   musiikin  sosiaaliset   ja   fysiologiset   vaikutukset   ovat   tutkittuja   aiheita.   Lapsen   ja   vanhemman  musiikillisen   kanssakäymisen   vaikutuksia   lapsen   kehitykseen   on   tutkittu   [4]. 

Matkapuhelinsovelluksen   avulla   on   hyödynnetty   musiikin   vaikutuksia  liikuntasuorituksiin   [22].   Neurologisen   musiikkiterapian   tietokonejärjestelmää   voidaan  käyttää autismin hoidossa [10].

2.2 Tutkimusongelman ja sen ratkaisutavan esittely

Linux­käyttöjärjestelmälle   on   saatavilla   useita   avoimen   lähdekoodin   virtuaali­

instrumentteja.   Suuri   osa   niistä   toimii   itsenäisinä   ohjelmina,   ei   esimerkiksi  sekvensseriohjelman liitännäisinä kuten useat virtuaali­instrumentit Windows ja Mac OS 

­käyttöjärjestelmissä.   Itsenäisten   ohjelmien   hyödyntäminen   on   todennäköisesti  mahdollista myös Linux­johdannaisissa ympäristöissä kuten Maemo. Maemo­ympäristön 

(16)

soveltuvuus virtuaali­instrumenteille on tärkeä selvittää UMSIC­hankkeen takia. Siksi  tämän työn tutkimusongelma oli seuraava:

Miten avoimen lähdekoodin ideologiaa voidaan hyödyntää ohjelmoidessa  virtuaali­instrumentteja Maemo­ympäristöön?

Oman   toteutukseni   pohjalle   etsin   avoimen   lähdekoodin   virtuaali­instrumentteja   ja  äänityökaluja   kuten   Hydrogen­rumpukone   [12].   Löytämieni   ohjelmien   pohjalta   tein  Maemo­ympäristöön   sopivia   yksinkertaisia   toteutuksia.   Samalla   tutkin,   kuinka   hyvin  Linux­ympäristöön tehty avoin lähdekoodi on siirrettävissä Maemo­ympäristöön. Työn  tavoitteet olivat:

Linuxin  avoimen lähdekoodin virtuaali­instrumenttien kartoitus

Yksinkertaisten virtuaali­instrumenttien ohjelmointi

Yksinkertaisen karaokeohjelman ohjelmointi äänitysominaisuuden toteuttamiseksi

(17)

3 VIRTUAALI­INSTRUMENTTIEN OHJELMOINTI

Virtuaali­instrumentteihin   liittyy   paljon   käsitteitä,   jotka   eivät   käyneet   ilmi  musiikkiteknologian käsitteiden yhteydessä. Tässä kappaleessa käytetyt uudet käsitteet  on selvitetty taulukossa 3.

Taulukko 3: Virtuaali­instrumenttien käsitteistöä

Käsite Merkitys

Bittisyvyys (Bit depth) Bittien määrä yhdessä ääninäytteessä. 

Näytetaajuus   (Sample  rate)

Sekunnissa   otettavien   ääninäytteiden   määrä,   kun   signaali  muutetaan digitaaliseksi.

Nyquistin teoreema Signaalinprosessoinnin   teoreema,   jonka   mukaan   signaalia,  jonka   korkein   taajuus   on   f,   ei   voida   esittää   täydellisenä  pienemmällä näytetaajuudella kuin 2*f. 

Puskuri Äänidatalle varattu muisti.

MIDI Kontrolliprotokolla   musiikkilaitteille.   MIDI­kontrollidatan  avulla voidaan ohjata esimerkiksi virtuaali­instrumentteja ja  ohjelmistosyntetisaattoreita.   Kontrollidata   voidaan   tallentaa  MIDI­tiedostoon myöhempää toistoa varten [19].

Ohjelmistosyntetisaattori MIDI­tiedostojen   toistoon   tarkoitettu   ohjelma. 

Hyödynnetään esimerkiksi peleissä ja nuotinnusohjelmissa.

Oskillaattori Värähtelyä tuottava laite tai ohjelmakoodi.

LFO Matalataajuinen oskillaattori.

Tremolo Efekti,   joka   aiheuttaa   äänenvoimakkuuden   tasaista   ja  edestakaista vaihtelua.

Lisäävä   synteesi  (Additive synthesis)

Äänisynteesin   menetelmä,   jossa   sinikomponentteja  summataan [29].

Vähentävä   synteesi  (Substractive synthesis)

Syntetisaattoreissa   käytetty   periaate,   jossa   oskillaattorilla  tuotettua ääntä käsitellään suotimilla.

(18)

Taajuusmodulointi  Äänisynteesin   menetelmä,   jossa   yhden   sinikomponentin  taajuutta moduloidaan toisella sinikomponentilla [29].

Intervalli Kahden sävelen suhteellinen korkeusero.

Oktaavi Intervalli,   jossa   korkeamman   sävelen   taajuus   on  kaksinkertainen matalamman sävelen taajuuteen verrattuna.

Ääniala Instrumentin matalimman ja korkeimman äänen välinen ero.

3.1 Linuxin virtuaali­instrumenttien kartoitus

Löysin yhteensä 20 virtuaali­instrumenttia, minkä takia en etsinyt muita ääntä käsitteleviä  ohjelmia. Pisteytin ohjelmat helpottaakseni omaa ja mahdollisesti myös muiden tulevaa  työtä. Pisteytyksen perusteena käytin ohjelman yksinkertaisuutta, omia käyttökokemuksia  lyhyen   kokeilun   perusteella,   ohjelmointikieltä,   ohjelmakoodin   määrää   ja  ymmärrettävyyttä, kehittäjien määrää, projektin aktiivisuutta sekä vaadittuja liitännäisiä  ja   rajapintoja.   Yksikään   virtuaali­instrumentti   ei   kuitenkaan   vaikuttanut   lupaavalta  kaikkien   arviointikriteerien   osalta.   Virtuaali­instrumenttien   pisteytys   on   selvennetty  taulukossa 4.

Taulukko 4: Virtuaali­instrumenttien pisteytys Pisteet Merkitys

5 Instrumentti soveltuu hyvin omaan työhöni.

4 Instrumentti on todennäköisesti hyödynnettävissä omassa työssäni.

3 Instrumentti on mahdollisesti hyödynnettävissä omassa työssäni.

2 Instrumentti   on   mahdollisesti   hyödynnettävissä   omassa   työssäni,   mutta  ohjelmakoodin käyttö olisi työlästä. 

1 Instrumenttia ei voi hyödyntää ohjelmointikielen tai liitännäisrajapinnan takia.

Taulukossa   5   on   esitetty   omaan   työhöni   parhaiten   soveltuvat   virtuaali­instrumentit. 

Kaikki taulukon 5 instrumentit on ohjelmoitu joko C­ tai C++­kielellä, joille on olemassa  kääntäjät   Maemo­ympäristöön.   Muita   käytettyjä   kieliä   ovat   Java   ja   Snd,   joka   on  musiikkiteknologiakäyttöön   määritelty   kieli.   Sekä   Javalla   että   Snd:lla   on   ohjelmoitu 

(19)

ainoastaan   yhdet   instrumentit.   Lisäksi   yhden   instrumentin   joitakin   itsenäisiä   osia   on  ohjelmoitu Javalla, vaikka se muuten onkin ohjelmoitu C++­kielellä.

Taulukko 5: Linuxin virtuaali­instrumentteja

Instrumentti Kuvaus Soveltuvuus Pisteet 

(1­5)

Kehittäjien  määrä

AmSynth Vähentävä 

synteesi

+ Vähemmän koodia kuin monessa  muussa

+ Melko helppo käyttää ja vaikuttaa  toimivalta

­ Paljon ominaisuuksia

4 1, pieniä  osia muilta  kehittäjiltä

Horgand Taajuusmo­

dulointi

+ Vähemmän koodia kuin monessa  muussa

­ Paljon ominaisuuksia.

4 1

Bristol Useiden 

syntetisaat­

toreiden  emulointi

+ Toimii hyvin ja erinomainen  äänenlaatu

+ Projekti on aktiivinen

­ Koodia on paljon

­ Todella paljon ominaisuuksia.

3 1, pieniä  osia muilta  kehittäjiltä

Linux Sampler Sampleri + Koostuu monesta itsenäisestä  ohjelmasta

+ Projekti on aktiivinen

­ Vaikuttaa monimutkaiselta

­ Koodia on todella paljon 

3 9

ZynAddSubFX Useita  äänisyn­

teesin  periaatteita

+ Ohjelmakoodia on kommentoitu  hyvin

­ Ohjelma on monimutkainen

­ Koodia on todella paljon

3 1

(20)

Koko   taulukko   5   on   saatavissa   internetistä   [8].   Internetistä   saatavassa   taulukossa  instrumentteja on arvioitu kattavammin. Siinä on myös tiedot projektien aktiivisuudesta  sekä virtuaali­instrumenttien kotisivujen internetosoitteet ja ohjelmointikielet.

Monet virtuaali­instrumentit vaativat JACK­äänipalvelimen tai liitännäisrajapintoja, jotka  eivät   sisälly   Maemo­ympäristöön.   Yhdestäkään   virtuaali­instrumentista   ei   ollut  kunnollista   dokumentaatiota   saatavilla,   mikä   vaikeutti   monimutkaisen   ja   muutamia  tuhansia   rivejä   pitkän   ohjelmakoodin   hyödyntämistä.   Dokumentaation   puuttumista  selittää   osaltaan   se,   että   suurin   osa   virtuaali­instrumenteista   on   yhden   ihmisen  ohjelmoimia.

Suuri osa instrumenteista vaikutti keskeneräisiltä. Niissä oli virheitä, esimerkiksi äänet  jäivät välillä soimaan ja ohjelmat kaatuilivat. Suurinta osaa ei ole päivitetty muutamaan  vuoteen ja joidenkin kehittäminen on lopetettu kokonaan. Vähäinen päivitysaktiivisuus  vähentää   monen   virtuaali­instrumentin   lähdekoodin   hyödynnettävyyttä   myös  tulevaisuudessa.

Myös   omat   ohjelmointitaitoni   rajoittivat   virtuaali­instrumenttien   ohjelmakoodin  hyödyntämistä.   Monet   instrumentit   käyttävät   säikeitä,   joita   en   toistaiseksi   osaa  ohjelmoida.   Kaiken   kaikkiaan   olemassa   olevan   ohjelmakoodin   hyödyntäminen   olisi  vaatinut   merkittävää   syventymistä   ohjelmakoodiin   ja   ohjelmoinnin   opiskelua.   Lisäksi  löytämieni  virtuaali­instrumenttien  laskenta­  ja muistivaatimuksien  täyttyminen  Nokia  N810   ­laitteella   ei   ole   varmaa.   Näistä   syistä   päätin   aloittaa   ohjelmointityön   Linux  Journalin ALSA­oppaan perusteella [32].

ALSA­oppaan   esimerkkiohjelmat   on   ohjelmoitu   C­kielellä   ja   ne   toimivat   Linuxissa  komentoriviohjelmina.   Niissä   tulostetaan   ALSAn   parametreja,   avataan   kahva  toistettavalle   ja   äänitettävälle   datalle   sekä   toistetaan   ja   äänitetään   tietovirrasta. 

Toistavasta esimerkkiohjelmasta oli helppo muokata ohjelma, jossa toistettava äänidata  luetaan tiedostosta.

(21)

Äänitiedostojen toistoon perustuva virtuaali­instrumentti vaikutti toteuttamiskelpoiselta  muokatun   esimerkkiohjelman   pohjalta.   Äänitiedostojen   toistoon   perustuvien  instrumenttien   heikkous   on   suuri   muistin   tarve,   koska   jokainen   instrumentin   ääni  joudutaan tallentamaan instrumenttia suorittavalle laitteelle [29]. Äänitiedostojen määrää  voidaan   vähentää   ääntä   käsittelevillä   algoritmeilla,   jotka   eivät   puolestaan   ole  yksinkertaisia toteuttaa.

Rumpukoneen ohjelmointi vaikutti järkevältä, koska rummun äänellä ei ole varsinaista  sävelkorkeutta. Siksi samoilla rumpuäänillä voidaan soittaa monia kappaleita, ja yksi ääni  kustakin rummusta riittää yksinkertaiseen toteutukseen. Rummun sointi on lyhyt, joten  äänen   kestoa   voidaan   pitää   vakiona.   Poikkeuksen   muodostavat   symbaalit. 

Yksinkertaisuuden   vuoksi   en   päättänyt   ottaa   myöskään   symbaalien   soinnin   kestoa  huomioon. Oikeita symbaaleja soitettaessa soittaja voi vaimentaa soivan symbaalin, ja  näin vaikuttaa soinnin kestoon.

3.2 Drums­ohjelma

Drums on yksinkertainen, C­kielellä ohjelmoimani rumpukone, jonka toiminta perustuu  äänitiedostojen toistamiseen. Kussakin tiedostossa on yhden rummun tai symbaalin ääni,  joka   toistetaan   käyttäjän   painaessa   ääntä   vastaavaa   painiketta.   Drumsin   äänet   ovat  bassorumpu, pikkurumpu, pieni tom­tom, suuri tom­tom, crash ja hi­hat. Kuvassa 2 on  esitetty Drumsin näyttö Maemo­ympäristössä työkoneellani. Drumsin ohjelmakoodi on  saatavilla internetistä [8].

Ohjelman toiminta perustuu tilakoneeseen, joka sisältää tiedot kaikkien äänten tiloista. 

Mahdollisia tiloja kullekin äänelle ovat OFF, ON ja PLAYING. OFF tarkoittaa, ettei ääni  soi. ON tarkoittaa, että ääni alkaa soida ja PLAYING, että äänen toistaminen on kesken. 

Tilakone siis mahdollistaa kaikkien äänien yhtäaikaisen soimisen. ON­ ja PLAYING­tilat  tarvitaan, koska ääntä käsitellään puskureittain. Ääntä ei soiteta kerralla loppuun asti,  vaan käyttäjän syötteisiin reagoidaan myös äänien soidessa.

(22)

Kuva 2: Drums

Drums­rumpukoneen   ohjelmoinnin   aloitin   ALSA­esimerkistä   muokkaamastani  äänitiedostoja soittavasta ohjelmasta. Lisäsin ohjelmaan silmukan, jonka sisällä toistettiin  kahta   ääninäytettä   käyttäjän   syötteiden   mukaisesti.   Tämän   jälkeen   siirsin   ohjelman  Maemo­ympäristöön,   mikä   onnistui   Maemon   opetusmateriaalin   [16]   sekä   GTK+­

kirjaston   dokumentaation   [9]   avulla.   Drums   hyödyntää   GTK+­käyttöliittymäkirjaston  Main­   ja   Idle­silmukoita.   Silmukoiden   avulla   pystyin   tekemään   ohjelmastani  reaaliaikaisen   ilman   säieohjelmointia,   jota   en   toistaiseksi   hallitse.   Reaaliaikaisuus  tarkoittaa tässä, että ohjelma reagoi käyttäjän syötteisiin dataa käsitellessäänkin.

Main­silmukka   käsittelee   käyttäjän   syötteet   ja   lähettää   signaalit   käyttäjän   painamista  painikkeista   callback­funktiolle.   Callback­funktiossa   muutetaan   painiketta   vastaavan  äänen   tila   ON­tilaan.   Idle­silmukkaa   ajetaan   aina,   kun   ohjelman   Main­silmukassa   ei  tapahdu mitään ja ohjelma saa prosessoriaikaa. Idle­silmukassa kutsutaan funktiota, jossa  toistetaan   kaikki   sillä   hetkellä   soivissa   tiloissa   olevat   äänet   (ks.   Liite   2).   ON­tilassa  olevan äänen tiedosto­osoitin siirretään tiedoston alkuun ja tila muutetaan PLAYING­

tilaan. PLAYING­tilassa olevan äänen tiedosto­osoitinta ei siirretä alkuun, vaan toisto 

(23)

jatkuu samasta kohdasta, johon edellisellä suorituskerralla jäätiin. Loppuun asti soitettu  ääni muutetaan OFF­tilaan.

N810­laitteen kosketusnäyttö ei mahdollista useamman äänen soittamista yhtäaikaisesti,  mutta   riittävän   nopeasti   soitettaessa   eri   äänet   soivat   jonkin   aikaa   päällekkäin. 

Yhtäaikaisesti soivat äänet summataan (ks. Liite 3), koska ALSAn tietovirtaan voidaan  kirjoittaa   toistettavaksi   kahvasta   riippuen   ainoastaan   yksi   mono­,   stereo­   tai  monikanavapuskuri (ks. Liite 4). Ensimmäisessä summausalgoritmissani ääneen aiheutui  suurta häiriötä. Kiersin ongelman vaihtamalla tietotyypin ALSA­esimerkissä käytetystä  kahdeksanbittisestä 16­bittiseen. Kahdeksanbittinen tietotyyppi olisi kyllä mahdollistanut  ohjelman bittisyvyyden vaihtamisen helposti, koska tavallisimmat bittisyvyydet (8, 16, 24  ja 32) ovat kahdeksalla jaollisia.

Summauksessa   on   otettava   huomioon,   että   kahden   näytteen   yhteenlaskettu   arvo   voi  aiheuttaa yli­ tai alivuodon. Tällaisissa tapauksissa arvo asetetaan vuodon mukaan joko  maksimiin tai minimiin. Toistettavassa äänessä tämä on kuultavissa säröytymisenä, koska  interferenssiaaltoa ei voida esittää tietotyypin rajallisten arvojen takia alkuperäisenä.

Työkoneeni   kehitysympäristössä   ilmeni   ongelmia,   joita   ei   N810­laitteella   esiintynyt. 

Työkoneeni äänikortti ei tukenut kuin muutamaa eri puskurikokoa. Suurella puskurilla  ääneen aiheutui häiritsevää viivettä. Pienemmällä taas Drums ei usein ehtinyt kirjoittaa  dataa puskuriin tarpeeksi nopeasti, ja äänien alkuja jäi monesti jonkin verran kuulumatta. 

44100 Hz ja 22050 Hz näytetaajuuksilla esiintyi vinkuvaa häiriöääntä. Näitä ongelmia ei  ollut N810­laitteella joten jätin ne huomioimatta.

(24)

3.3 Melody­ohjelma

Melody­kosketinsoitin käyttää hyvin paljon samaa ohjelmakoodia kuin Drums. Suurin  periaatteellinen ero on, että tiedostosta lukemisen sijaan ääni luodaan funktiolla. Drumsin  toimintaperiaatetta   vastaava   äänitiedostojen   toistaminen   olisi   vaatinut   suuren   määrän  äänidataa. Äänensummausfunktio ja ALSA­virtaan kirjoittava funktio ovat täysin samoja. 

Ääniä   soittava   funktio   on   muokattu   Drumsin   vastaavasta.   Myös   Main­   ja   Idle­

silmukoiden   käyttö   on   vastaavaa.   Callback­funktion   toteutus   on   hieman  monimutkaisempi   kuin  Drumsissa.   Se  huomio  myös  painikkeen   vapauttamisen.   Näin  Melodylla   voidaan   soittaa   eri   pituisia   ääniä.   Melodyn   näyttö   Maemo­ympäristössä  työkoneellani on esitetty kuvassa 3. Melodyn ohjelmakoodi on saatavilla internetistä [8].

Kuva 3: Melody

Melody on kosketinsoitin yhden oktaavin koskettimilla. Erilaisia ääniä on 7: FM, Organ,  Sin LFO, Sin, Triangle,  Saw ja Square (ks. Liite  5). FM­instrumentissa  sinifunktion  taajuutta   ja   vaihetta   moduloidaan   toisella   sinifunktiolla.   Organ   perustuu   urkujen  ääniaallon   mallinnukseen   kahdeksalla   summatulla   sinikomponentilla.   Siinä   käytetään  myös tremolo­efektiä. Sin LFO ­instrumentissa ääni on sinifunktiolla tuotettua, mutta  äänen taajuutta ja vaihetta moduloidaan matalataajuisen oskillaattorin avulla. Loput äänet 

(25)

ovat   nimensä   mukaisien   oskillaattorien  ääntä.  Oskillaattorien  aaltomuodot  on  esitetty  kuvassa 4.

Kuva 4: Oskillaattorien aaltomuodot [36]

Äänialaa Melodyssa on kuusi oktaavia ja kulloinkin soitettavaa oktaavia voidaan säätää  Octave up ja Octave down ­painikkeilla. Chord­painikkeesta soitetaan C­duurisointu. Kill  All hiljentää kaikki soivat äänet. Se on ohjelmoitu virheellisesti soimaan jäävien äänten  varalta.

Organ­äänellä   Chord­painiketta   painettaessa   ääni   ei   toistu   oikein,   vaan   se   pätkii   ja  särkyy.   Ongelma   johtuu   mitä   ilmeisemmin   N810­laitteen   laskentatehon  riittämättömyydestä, koska kehitysympäristössä samaa ongelmaa ei esiintynyt. Ongelma  herätti   mielenkiintoni   N810­laitteen   laskentatehon   riittävyydestä   musiikkikäytössä,  minkä takia päätin testata Melody­instrumentin ja N810­laitteen suorituskykyä. Testin  tulokset ovat kappaleessa 3.5.

(26)

3.4 Karaoke­ohjelma

Karaoke   on   yksinkertainen   karaokeohjelma,   jonka   tarkoitus   on   esittää,   kuinka  yhtäaikainen toisto ja äänitys voidaan toteuttaa N810­laitteella. Se on ulkoasultaan yhtä  pelkistetty   kuin   Drums   ja   Melody,   joten   useista   karaokeohjelmista   tuttuja   graafisia  ominaisuuksia, kuten animoitu kappaleen sanojen näyttö, siinä ei ole. Karaoke hyödyntää  samaa ohjelmakoodia kuin Drums. Karaoken näyttö Maemo­ympäristössä työkoneellani  on esitetty kuvassa 5. Karaoken ohjelmakoodi on saatavilla internetistä [8].

Kuva 5: Karaoke

Kuten Drums ja Melody myös Karaoke käytti aluksi 32 kHz­näytetaajuutta. 32 kHz­

näytetaajuisen taustaraidan toisto ei tuottanut ongelmia, mutta äänitetty raita toistui liian  nopeana ja korkeammalla taajuudella kuin se oli äänitetty, mikä viittasi raidan toistoon  liian   suurella   näytetaajuudella.   Lisäksi   yhtäaikainen   taustaraidan   toisto   ja   lauluraidan  äänitys tuotti paljon häiriöääntä. Ongelma selvisi tulostamalla äänityskahvan parametreja. 

Äänityksen näytetaajuudeksi paljastui 8kHz, ja sitä ei ollut mahdollista vaihtaa. Lisäksi  N810­laite äänittää ainoastaan yhden kanavan. Näistä syistä asetin myös toiston 8 kHz:n  näytetaajuuteen   ja   yhteen   kanavaan.   Olisin   voinut   ratkaista   ongelman   myös 

(27)

prosessoimalla   äänitetyn   raidan   korkeampaan   näytetaajuuteen   ja   kahdelle   kanavalle,  mutta toteutin yksinkertaisemman ratkaisun ajanpuutteen vuoksi.

8   kHz   näytetaajuus   on   mahdollisesti   peräisin   Nokian   historiasta   puhelinvalmistajana. 

Puheen   ymmärrettävyyden   kannalta   olennaisimmat   taajuudet   ovat   alle   4   kHz:n  taajuuksilla, jotka toistuvat Nyquistin teoreeman mukaan jo 8 kHz näytetaajuudella [11]. 

Korkeampien   taajuuksien   esittäminen   edellyttää   korkeampaa   näytetaajuutta,   joka  tarkoittaa suurempaa määrää siirrettävää dataa.

Äänittäessä esiintyy latenssia, joka aiheutuu äänityspuskurista. Puskuria pienentämällä  latenssia   voidaan   pienentää,   mutta   liian   pieni   puskuri   aiheuttaa   äänen   pätkimistä   ja  säröytymistä.   Karaoken   puskurin   säädin   siten,   että   latenssiksi   muodostuu   25   ms. 

Pienemmällä latenssilla ääni pätki jonkin verran. 25 ms viive äänitetyn lauluraidan ja  taustaraidan välillä on tarkasti kuunneltaessa kuultavissa, joten toistettaessa lauluraidan  tiedosto­osoitinta siirretään aluksi latenssia vastaava tavumäärä eteenpäin. Näin raidat  toistuvat synkronoituna. 

3.5 Melody­ohjelman suorituskykytestaus

Rajasin   ohjelmieni   suorituskyvyn   perusteellisen   arvioinnin   tämän   työn   ulkopuolelle  rajallisen  ajan takia.  On kuitenkin ilmeistä,  että ohjelmani  voisivat olla  suuremmalla  panostuksella laskennallisesti vähintään hieman kevyempiä. Idle­silmukan käytön takia  ohjelmani   kuluttavat   kaiken   prosessoriajan,   jota   niille   tarjotaan.   Huolellisella  säieohjelmoinnilla ja testauksella Idle­silmukan funktiokutsut voitaisiin rajoittaa oikeasti  tarpeelliseen määrään.

Melodyn laskennallisten vaatimusten testaus oli mielenkiintoisinta, koska ainoastaan sitä  ajettaessa   N810:n   laskentateho   vaikutti   loppuvan.   Lisäksi   Melodyn   eri   äänien  laskennallisissa kompleksisuuksissa on eroa toisiinsa nähden. Drums ja Karaoke toistavat 

(28)

äänitiedostoja,   minkä   takia   kompleksisuus   muuttuu   ainoastaan   äänitiedoston  näytetaajuutta, bittisyvyyttä tai kanavien määrää muuttamalla.

Taulukossa 6 on selvitetty erittäin karkeasti Melody­ohjelman suhteellista laskentatehon  tarvetta   N810­laitteella.   Top­ohjelman   avulla   saamani   prosenttiosuudet   vaihtuivat  jokaisella   ohjelman   päivityskerralla   muutaman   prosenttiyksikön   alueella,   mutta  prosenttiyksikön   tarkkuudella   arvioimani   osuudet   antavat   virheestään   huolimatta  käsityksen   suuruusluokasta.   Kokeessa   käytin   Melody­instrumentista   muokattuja  versioita,   joissa   kaikki   soitetut   äänet   jäävät   soimaan   kunnes   Kill   All   ­painiketta  painetaan.   Näin   pystyin   likimääräisesti   arvioimaan   laskennan   tarvetta,   kun   yksi   tai  useampi ääni soi. Näytetaajuus ja kanavien määrä ovat muutettavissa vakioiden arvoja  säätämällä ja kääntämällä ohjelma uudelleen. Bittisyvyyttä en muuttanut, koska se olisi  vaatinut suurempia muutoksia ohjelmakoodiin.

Taulukko 6: Melody­ohjelman prosessoriajan käyttö yhden äänen soidessa

Instrumentti 32 kHz, 16 bit, stereo 16 kHz, 16 bit, mono

FM 25% 7%

Organ 50% 20%

Sin 16% 4%

Laskentaa   tarvitaan   16   kHz   mono   ­versiossa   neljäsosa   32   kHz   stereo   ­version  laskennasta,   koska   jokaisen   näytteen   arvo   joudutaan   laskemaan   erikseen   ja  näytetaajuuden   kaksinkertaistuessa   myös   näytteiden   määrä   aikayksikössä  kaksinkertaistuu.   Toinen   laskennan   määrän   puolittuminen   johtuu   kanavien   määrän  puolittumisesta.  Käytetyt   algoritmit   pysyivät  täysin  samoina.   Ilmeisesti  Idle­silmukan  toiminnan takia tämä ei suoraan näy prosenttiosuuksissa, mutta kuitenkin laskentaosuus  on selvästi pienempi jokaisella kokeen instrumentilla

Seuraavassa kokeessa laskin yhtäaikaisesti ilman korvin havaittavaa pätkimistä toistuvien  äänien määrän. Kokeessa oletin, että N810­laitteen laskentateho loppuu, kun äänentoisto 

(29)

alkaa   pätkiä.   Koetta   varten   laskin   16   kHz   mono   ­ohjelman   instrumenttien  äänenvoimakkuutta äänen säröytymisen välttämiseksi. Tulokset on esitetty taulukossa 7. 

Ne   viittaavat   selkeämmin   laskennallisen   kompleksisuuden   vähenemiseen   yhteen  neljäsosaan.

Taulukko 7: Melody­ohjelman yhtäaikaisesti soivien äänten määrä

Instrumentti 32 kHz, 16 bit, stereo 16 kHz, 16 bit, mono

FM 3 13

Organ 1 5

Sin LFO 4 15

Sin 5 21

Triangle 4 16

Saw 4 18

Square 5 20

3.6 Tulosten yhteenveto

Aluksi   kartoitin   Linuxin   virtuaali­instrumentit   oman   ohjelmointityöni   pohjaksi. 

Löytämäni   virtuaali­instrumentit   osoittautuivat   vaikeasti   hyödynnettäviksi.   Niiden  ohjelmakoodi   on   monimutkaista   ja   sitä   on   paljon.   Lisäksi   niissä   on   käytetty  säieohjelmointia,   jota   en   itse   toistaiseksi   hallitse.   Virtuaali­instrumenteista   ei   ole  dokumentaatiota   saatavilla,   mikä   vaikeuttaa   lähdekoodin   hyödyntämistä   entisestään. 

Ohjelmointi onnistui kuitenkin ALSA­kirjaston käytöstä kirjoitetun oppaan perusteella  [32].

Toteutin   Drums­rumpukoneen,   Melody­kosketinsoittimen   ja   Karaoke­ohjelman. 

Ohjelmani näyttävät kuinka musiikkiohjelmien ääniominaisuuksia voidaan ohjelmoida  Nokia   N810   ­laitteelle   ALSA­kirjastoa   hyödyntäen.   Ohjelmani   ovat   pelkistettyjä   ja  niiden   ei   ole   sellaisenaan   tarkoitus   päätyä   käyttöön.   En   tutustunut   GTK+­kirjastoon  syvällisesti, koska virtuaali­instrumenttien graafinen käyttöliittymä ei kuulunut työhöni. 

(30)

En   todennäköisesti   hyödynnä   GTK+­kirjastoa   kovinkaan   tehokkaasti,   esimerkiksi  ohjelmani käyttävät globaaleja muuttujia funktioiden parametrien välittämisen sijasta. 

3.7 Työn vaativuus ja työmäärä

Työtä tehdessä jouduin tutustumaan minulle vieraaseen Maemo­ympäristöön. Maemoon  kuuluvien   Hildon­   ja   GTK+­käyttöliittymäkirjastojen   sekä   ALSA­äänikirjastoon  tutustuminen   hidastivat   etenkin   Drumsin   ohjelmointia.   Toisaalta   GTK+­ohjelman  rakenteen ymmärtäminen helpottui, koska osaan OpenGL­grafiikkakirjaston perusteita. 

Main­ ja Idle­silmukoiden sekä callback­funktioiden käsitteet olivat siis minulle jossain  määrin tuttuja. En perehtynyt minulle uusiin kirjastoihin syvällisesti, vaan ainoastaan sen  verran   kuin   ohjelmani   vaativat   toimiakseen.   Tarkempi   tutustuminen   kirjastoihin   olisi  tehnyt työmäärästäni liian suuren.

Ohjelmointityötäni   helpottivat   vuosien   musiikkiharrastuksessa   karttuneet   lähtötietoni  digitaalisesta   äänestä   ja  äänisynteesistä.   Nämä  tiedot   paranivat   entisestään  tehdessäni  kandidaatintyön   teoriaosan   taustatutkimusta.   Tiedoistani   oli   erittäin   suuri   hyöty  ohjelmointityössä,   ja   ilman   niitä   en   olisi   pystynyt   tekemään   työtä   tämän   laajuisena. 

Perustietoni   C­ohjelmoinnista   olivat   ohjelmointiosuuden   edellytys.   C++­kielen  ymmärtäminen oli tärkeää Linuxin virtuaali­instrumentteja kartoittaessa.

Työn eri vaiheisiin kulunut työaika on esitetty taulukossa 8. Kohtaan muu työ sisältyy  Linuxin   virtuaali­instrumenttien   kartoitus,   Maemo­ympäristön   asennukset   ja  opetusmateriaaliin  tutustuminen,  demokappaleen  tuottaminen  N810­laitteella,  Melody­

ohjelman suorituskykytestaus sekä MobiKid­ohjelmaan tutustuminen.

Eri ohjelmien ohjelmointiin kulunut aika ei suoraan kerro ohjelmien monimutkaisuudesta  toisiinsa   nähden.   Drumsia   ohjelmoidessani   suuri   osa   ajasta   kului   ALSA­   ja   GTK+­

kirjastojen käytön opetteluun. Lisäksi sekä Melody että Karaoke hyödyntävät Drumsin  ohjelmakoodia sellaisenaan ja muokattuna. Siksi Drumsin ohjelmointiin kulunut aika on 

(31)

huomattavasti   muita   suurempi,   vaikka   siinä   on   vähiten   ohjelmakoodia,   ja   se   on  toiminnaltaan   yksinkertaisin.   Äänen   tallentaminen   tekee   Karaokesta   Drumsia  monimutkaisemman. Monimutkaisimman Melodysta tekee äänen funktiolla luomiseen  liittyvät   osat,   joita   ei   ole   Drumsissa   eikä   Karaokessa.   Karaoken   ja   Melodyn  monimutkaisuuden ero on helposti havaittavissa niihin käytetyistä ohjelmointiajoista.

Taulukko 8: Eri työvaiheisiin kulunut aika

Vaihe Aika tunteina

Alkuraportti ja seminaari 98

Ohjelmointi yhteensä 97

Drumsin ohjelmointi 55

Melodyn ohjelmointi 28

Karaoken ohjelmointi 14

Loppuraportin kirjoittaminen ja seminaari 75

Muu työ 69

Yhteensä 349

3.8 Tulosten tulkinta

Ohjelmointityöhön   käyttämästäni   ajasta   päättelin,   että   ääntä   toistava   ja   käyttäjän  syötteisiin   reagoiva   ohjelmarunko   on   hyvin   pitkälti   hyödynnettävissä   eri   periaatteilla  ääntä tuottavissa ohjelmissa. Virtuaali­instrumentin ääntä tuottavat algoritmit oli melko  helppo ohjelmoida eri periaatteen mukaisiksi, kuten Drumsin muokkaaminen Melodyksi  osoitti. Pystyin myös muokkaamaan ohjelmarunkoa eri käyttötarkoituksen, mutta samoja  ominaisuuksia sisältävän ääniohjelman tarpeisiin. Tämän osoitti Drumsin muokkaaminen  Karaokeksi. On kuitenkin muistettava, että ohjelmakoodin perinpohjainen ymmärtäminen  on välttämätöntä ohjelmakoodia hyödynnettäessä. En pystynyt hyödyntämään Linuxin  virtuaali­instrumenttien ohjelmakoodia omissa ohjelmissani.

(32)

ALSA on matalan tason äänikirjasto, mutta sen käyttö ei ollut kohtuuttoman vaikeaa,  vaikka en ollutkaan ohjelmoinut ääniohjelmia aikaisemmin. GTK+­käyttöliittymäkirjasto  tarjosi helposti käytettävät työkalut ohjelman reaaliaikaisuuden toteuttamiseen. Virtuaali­

instrumenttien   ohjelmointityössä   tärkeimmäksi   asiaksi   vaikuttaisi   muodostuvan  digitaalisen äänen käsittelyyn ja äänisynteesiin liittyvien algoritmien ymmärtäminen.

(33)

4 POHDINTA

Tässä   luvussa   vertaan   ohjelmiani   UMSIC­hankkeen   MobiKid­pilottitutkimuksen  ohjelmaan sekä JamMo­sovelluksen eri toimintatapojen vaatimuksiin. Arvioin ohjelmieni  merkitystä   UMSIC­hankkeelle.   Pohdin   myös,   miten   ohjelmiani   voisi   ja   olisi   syytä  kehittää tulevaisuudessa.

4.1 MobiKid­ ja Karaoke­ohjelmien vertailu

MobiKid on Oulun yliopiston pilottitutkimus, jossa on tuotettu MobiKid­karaokeohjelma. 

Ohjelma on toteutettu Nokia N800­sarjan laitteille ja suunnattu lapsille. MobiKid vastaa  toiminnallisuudeltaan omaa Karaoke­ohjelmaani, joten on perusteltua vertailla ohjelmia. 

Ohjelmien erot selittyvät ohjelmien eri käyttötarkoituksilla. MobiKid on tarkoitettu lasten  käytettäväksi.   Karaoke   esittää,   miten   karaoke­ohjelmalta   vaaditut   ääniominaisuudet  voidaan toteuttaa N810­laitteella. Syvällinen tutustuminen MobiKidin toimintaan ei ollut  mahdollista, koska ohjelmakoodi ei ollut saatavillani.

MobiKid etenee vaiheittain ruudusta toiseen. Ohjelman  käynnistyttyä  valitaan haluttu  kappale. Lauluraita äänitetään ja äänitetty raita kuunnellaan yhdessä taustaraidan kanssa. 

Lopuksi   äänitetty   raita   lähetetään   sähköpostilla.   Ohjelma   etenee   aina   samassa  järjestyksessä   samojen   vaiheiden   kautta,   joten   sen   käyttö   on   helppo   oppia.   Karaoke  perustuu yhteen ruutuun, jossa kaikki toiminnallisuudet ovat käytettävissä painikkeita  painamalla.

MobiKidin toteutuksessa on panostettu ulkoasuun ja käyttöliittymään. Sen eri ruudut ovat  taustaltaan eri värisiä ja ruudulla on aina vain vähän informaatiota. Tekstiä ei ohjelmassa  ole, vaan käyttäjä saa tietoa kuvina ja äänenä. Ohjelma toimii koko näytön suuruisena. 

Käyttöjärjestelmän   omat   painikkeet   ja   muut   ajettavat   ohjelmat   eivät   siis   häiritse  käyttäjää. Ohjelma soveltuukin todennäköisesti hyvin lapsille. Karaoke toimii tavallisen  kokoisessa ikkunassa ja sen käyttö vaatii lukutaitoa. 

(34)

Vaikka MobiKid vaikuttaa ominaisuuksiltaan melko valmiilta, on siinä käytettävyyttä  heikentäviä virheitä. Äänitetty lauluraita ei toistu synkronoituna taustaraitaan. Ohjelma  kaatuilee melko usein. Välillä näyttöruutu muuttuu valkoiseksi, vaikka ohjelman toiminta  muuten   jatkuukin.   Karaoke   toimi   omassa   käytössäni   lähes   virheittä.   Ainoastaan  taustaraita jäi usein soimaan musiikin loputtua. Huomasin virheen, koska komentoriville  ei tulostunut ilmoitusta taustaraidan toiston loppumisesta.

MobiKidissa   on   toteutettu   samat   äänitoiminnallisuudet   kuin   omassa   Karaoke­

ohjelmassani. Molemmissa äänitetään lauluraita samalla, kun taustaraita soi. Karaokessa  tosin voi kuunnella molemmat raidat yhdessä tai erikseen useaan kertaan sekä äänittää  lauluraidan   kuuntelematta   taustaraitaa.   Molemmat   ohjelmat   äänittävät   8   kHz  näytetaajuudella yksikanavaista ääntä. MobiKid käyttää tiedostomuotona wav­formaattia,  kun taas Karaokessa äänitetty raita tallennetaan raw­muodossa, joka tässä tapauksessa on  wav   ilman   otsikkotietoja.   MobiKidin   taustaraidat   ovat   mp3­muodossa   ja   niitä   tulee  ohjelman mukana viisi kappaletta. Karaoke käyttää ainoassa taustaraidassaan samaa raw­

formaattia kuin äänitykseen.

4.2 Tulosten merkitys

Ohjelmani   todistavat,   että   Nokia   N810   ­laitteelle   voidaan   ohjelmoida   toimivia  musiikkiohjelmia.   Laitteen   suorituskyky   riittää   ainakin   laskennallisesti   kevyiden   ja  muistivaatimuksiltaan   pienten   ohjelmien   ajamiseen.   Omat   sovellukseni   toimivat  reaaliajassa, ja käyttöä merkittävästi häiritseviä viiveitä tai häiriöääniä ei esiintynyt.

Omat virtuaali­instrumenttini ovat soittamiskelpoisia, minkä voi kuulla äänittämästäni  demokappaleesta.   Kappale   on   äänitetty   työkoneellani   Audacity­ohjelmalla   usealle   eri  raidalle.   Jokainen   raita   on   soitettu   N810­laitteella,   joko   Drumsilla   tai   Melodylla. 

Laitteella   soittamani   äänen   vein   työkoneelleni   kytkemällä   kaapelin   N810:n  kuulokeliitännän ja työkoneeni mikrofoniliitännän välille. Demokappale on kuultavissa  internetistä mp3­muodossa [8].

(35)

Karaoke täyttää ääniominaisuuksiltaan UMSIC­hankkeen JamMo­sovelluksen Karaoke­

toiminnon   vaatimukset.   Lauluraita   voidaan   äänittää   taustaraitaa   kuunnellessa   ja  molemmat raidat voidaan tämän jälkeen kuunnella yhdessä [33].

Virtuaali­instrumenttini   täyttävät   osan   JamMo­sovelluksen   Improvisointi­

toiminnallisuuden   vaatimuksista.   Yhdistettynä   Karaoke­sovelluksen   äänitys­   ja  toistomahdollisuuteen   myös   Improvisaatio­toiminnon   yksinkertaisemmat  ääniominaisuudet   olisivat   toteutettu.   Toistuvien   ja   yksittäisten   äänien   lisääminen  kappaleeseen, kappaleen keston ja äänen korkeuden muuttaminen, osien leikkaaminen ja  kopiointi, sekä instrumenttien vaihtaminen ei olisi edelleenkään mahdollista [33].

Ohjelmani   toteuttavat   suuren   osan   JamMo­sovelluksen   toiminnallisuudesta.   On  perusteltua olettaa, että tekemästäni työstä voi olla hyötyä UMSIC­hankkeen aikana.

4.3 Tulevaisuus

Virtuaali­instrumenttini   ja   Karaoke­ohjelmani   jäivät   melko   vaatimattomiksi  säädettävyydeltään,   liitettävyydeltään,   käytettävyydeltään   ja   tehokkuudeltaan,   koska  kandidaatintyö on pieni projekti. Virtuaali­instrumenttia soittaessa soittaja voisi haluta  säätää   esimerkiksi   yksittäisten   äänten   sekä   koko   ohjelman   äänenvoimakkuutta.   Tätä  ominaisuutta ei ohjelmissani ole, vaan ainoa mahdollisuus säätää äänenvoimakkuutta on  koko   laitteen   äänenvoimakkuuden   muuttaminen.   Virtuaali­instrumenttini   ovat  äänenlaadultaan vaatimattomia verrattuna Linuxin virtuaali­instrumentteihin. Ne voisivat  kuulostaa   mielenkiintoisemmilta,   mikäli   niihin   olisi   toteutettu   monista   virtuaali­

instrumenteista tuttuja ominaisuuksia kuten erilaiset suotimet ja muut efektit. Toisaalta  N810­laitteen laskentaresurssit saattavat rajoittaa ylimääräistä prosessointia.

Virtuaali­instrumenttien   kannattaisi   tukea   MIDI­protokollaa,   koska   se   mahdollistaa  instrumenttien   soittamisen   ulkoisilla   ohjainlaitteilla,   esimerkiksi   MIDI­koskettimilla. 

Tosin Nokia N810 ­laitteen liitännät saattavat hankaloittaa ulkoisten musiikkilaitteiden 

(36)

liittämistä.   Joka   tapauksessa   MIDI­tuen   ansiosta   jokaiseen   instrumenttiin   ei   tarvitsisi  ohjelmoida   käyttöliittymää   vaan   varsinainen   soittaminen   voisi   tapahtua   erillisellä  ohjelmalla ja virtuaali­instrumentissa luotaisiin ainoastaan kontrollidatan mukainen ääni.

Käyttöön tulevien virtuaali­instrumenttien käyttöliittymä on syytä suunnitella ja toteuttaa  huolella   sekä   mahdollisimman   tehokkaasti.   En   pohtinut   ohjelmoidessani   ohjelmieni  laskentatehon tarvetta. Käyttäjille tarkoitettuja instrumentteja toteutettaessa ohjelmien ja  niiden käyttämien algoritmien laskennalliset kompleksisuudet on tärkeä kartoittaa.

Tässä   työssä   käytettiin   vain   muutamaa   äänisynteesin   periaatetta.   Niiden   arvioiminen  laskennan   kannalta   kulloiseenkin   käyttötarkoitukseen   ja   kevyimpien   periaatteiden  hyödyntäminen voi vähentää laskennan määrää merkittävästi. Myös käytettävän laitteen  kaiuttimet, mikrofoni ja muut ominaisuudet tulee ottaa huomioon virtuaali­instrumentteja  suunnitellessa   turhan   laskennan   välttämiseksi.   Esimerkiksi   perusteettoman   korkean  näytetaajuuden   käyttäminen   aiheuttaa   turhaa   laskentaa,   ja   monimutkaisen   ääniaallon  luominen lisäävällä synteesillä voi vaatia kohtuuttoman paljon sinikomponentteja.

Tämän työn oli tarkoitus antaa tietoa UMSIC­hankkeen ohjelmointityötä varten. UMSIC  alkaa   1.9.2008   ja   päättyy   31.8.2011.   Uskon,   että   omat   kokemukseni   virtuaali­

instrumenttien   ohjelmoinnista   tukevat   alusta   asti   ohjelmoitavien   instrumenttien  ohjelmointityötä Maemo­ympäristössä. Virtuaali­instrumenttien kartoitukseni osoitti, että  olemassa olevan avoimen lähdekoodin hyödyntäminen voi olla vaikeaa. 

(37)

5 YHTEENVETO

Työn teoriaosuudessa muodostin kokonaiskuvan musiikkiteknologiasta, ja selvitin sen  käsitteitä.   Musiikkiteknologia   paljastui   yllättävän   laajaksi   tieteenalaksi,   joka   soveltaa  tietotekniikkaa moniin tarkoituksiin. Musiikkiteknologiaa hyödynnetään psykologiassa,  kasvatustieteissä ja kognitiivisissa tieteissä.

Työn   käytännön   osuudessa   kartoitin   Linux­käyttöjärjestelmän   avoimen   lähdekoodin  virtuaali­instrumentit ja ohjelmoin musiikkiteknologian ohjelmia Nokia N810 Internet  Tablet   ­laitteelle.   N810:n   käyttöjärjestelmä   on   Linux­johdannainen,   joten   olemassa  olevaa avointa lähdekoodia olisi ollut mahdollisuus hyödyntää. En kuitenkaan osannut  hyödyntää avointa lähdekoodia, vaikka virtuaali­instrumentteja löytyi useita. Ongelmiksi  muodostuivat   puutteelliset   ohjelmointitaitoni,   ohjelmakoodin   suuri   määrä,   ohjelmien  monimutkaisuus ja puutteellinen dokumentaatio. Omat ohjelmani ohjelmoin itse alusta  asti.

Ohjelmoin rumpukoneen, joka toistaa äänitiedostoja. Kosketinsoittimeni puolestaan luo  äänensä   funktioiden   avulla   kokonaan   ilman   äänidataa   sisältäviä   tiedostoja.   Virtuaali­

instrumenttini   valmistuivat   nopeammin   kuin   odotin,   joten   ohjelmoin   vielä  karaokeohjelman.   Karaoke­ohjelmassani   on   toteutettu   ainoastaan   ääneen   liittyvät  ominaisuudet.

Ohjelmistani tuli yksinkertaisia ja pelkistettyjä kuten tarkoitukseni olikin. Ne kuitenkin  osoittautuivat toimiviksi. Paremmalla käyttöliittymällä ja viimeisteltyinä ne olisivat myös  käytettäviä.   Tällaisinaan   ohjelmani   ainoastaan   näyttävät,   miten   ääntä   voidaan   tuottaa  N810­laitteella.

(38)

LÄHDELUETTELO

[1] Yasushi Akiyama:  PlaceAndPlay: a digital tool for children to create and record  music, April 2008, CHI '08: Proceeding of the twenty­sixth annual SIGCHI conference  on Human factors in computing systems, Publisher: ACM

[2] Tetsuaki Baba, Taketoshi Ushiama, Kiyoshi Tomimatsu: Freqtric drums: a musical  instrument that uses skin contact as an interface, 2007, New Interfaces For Musical  Expression,   Proceedings   of   the   7th   international   conference   on   New   interfaces   for  musical expression

[3]   Rolf   Bader:  Turbulent     —     model   of   flute­like   musical   instrument   soundκ ε   production, 2005, Publisher: Springer London

[4]   Lori   A.   Custodero,   Pia   Rebello   Britto,   Jeanne   Brooks­Gunn,  Musical   lives:   A  collective  portrait of American parents and their young children, October­November  2003, Journal of Applied Developmental Psychology, Volume 24, Issue 5, Pages 553­572 [5] Marek Dziubinski, Piotr Dalka and Bozena Kostek:  Estimation of Musical Sound  Separation   Algorithm   Effectiveness   Employing  Neural   Networks,   2005,   Journal   of  Intelligent Information Systems, Volume 24, Numbers 2­3 / March,

[6] Eck, D.; Schmidhuber, J.: Finding temporal structure in music: blues improvisation  with   LSTM   recurrent   networks,   Neural   Networks   for   Signal   Processing,   2002. 

Proceedings of the 2002 12th IEEE Workshop on 4­6 Sept. 2002 Page(s):747 – 756

[7] Thomas Fischer, Wing Lau: Marble track music sequencers for children, June 2006,  IDC   '06:  Proceedings   of   the   2006   conference   on   Interaction   design   and   children,  Publisher: ACM

[8]   Gynther,   Mikko:   Avoimen   lähdekoodin   musiikkiteknologia,   kandidaatintyön  internetsivu,   joka   sisältää   työhön   liittyvän   sähköisen   materiaalin  http://www2.lut.fi/~mgynther/kt/, viitattu 29.7.2008

(39)

[9]   GTK+   Reference   Manual  http://maemo.org/api_refs/4.1/gtk+2.0­2.10.12/libgtk2.0/,  viitattu 29.7.2008

[10]   Billy   Harris,   Martha   Summa­Chadwick:  A   computerized   system   for   Neurologic  Music Therapy, December 2005, Journal of Computing Sciences in Colleges, Volume 21  Issue 2, Publisher: Consortium for Computing Sciences in Colleges

[11] Helsinki University Central Hospital The BioMag Laboratory : Aivojen rakenne ja  toiminta: Kuulo http://www.biomag.hus.fi/braincourse/L7.html, viitattu 30.7.2008

[12]   Hydrogen,  http://www.hydrogen­music.org/,   avoimen   lähdekoodin   rumpukone,  viitattu 9.6.2008.

[13] IK Multimedia Sample Moog –virtuaali­instrumentti http://www.ikmultimedia.com/

Main.html?samplemoog/index.php, viitattu 9.6.2008.

[14]   Andrew   J.   Johnston,   Benjamin   Marks:  Partial   reflections:   interactive   virtual  instruments controlled by sound, June 2007, C&C '07: Proceedings of the 6th ACM  SIGCHI conference on Creativity & cognition, Publisher: ACM

[15]   Maemo  http://www.maemo.org,   Nokian   tukema   ympäristö   Internet   Tabletien  ohjelmille, viitattu 9.6.2008.

[16] Maemo Chinook Training Material http://maemo.org/development/training/, viitattu  29.7.2008

[17]   Maemo   Technology   Overview   Chapter   3:  Maemo   Platform   Overview  http://maemo.org/maemo_training_material/maemo4.x/html/maemo_Technology_Overvi ew/Chapter_03_maemo_Platform_Overview.html, viitattu 9.6.2008.

[18]   Ian   McKinnon:  Children's   music   journey:   the   development   of   an   interactive  software   solution  for  early   childhood   music   education,  October   2005,  Computers  in  Entertainment (CIE), Volume 3 Issue 4, Publisher: ACM

[19] MIDI Manufacturers Association Incorporated: Tutorial: The Technology of MIDI  Part 1: Overview http://www.midi.org/aboutmidi/tut_techomidi.php, viitattu 29.7.2008

(40)

[20]   Riia   Milovanov,   Minna   Huotilainen,   Vesa   Välimäki,   Paulo   A.A.   Esquef,   Mari  Tervaniemi: Musical aptitude and second language pronunciation skills in school­aged  children: Neural and behavioral evidence,  15 February 2008,  Brain Research,  Volume  1194

[21] Don Morgan, Sanzheng Qiao:  Accuracy and stability in mass­spring systems for  sound synthesis, May 2008, C3S2E '08: Proceedings of the 2008 C3S2E conference,  Publisher: ACM

[22] Nuria Oliver, Fernando Flores­Mangas: MPTrain: a mobile, music and physiology­

based   personal   trainer,   September   2006,   MobileHCI   '06:   Proceedings   of   the   8th  conference on Human­computer interaction with mobile devices and services, Publisher: 

ACM

[23]   Chika   Oshima,   Kazushi   Nishimoto,   Masami   Suzuki:  Family   ensemble:   a  collaborative   musical   edutainment   system   for   children   and   parents,   October   2004,  MULTIMEDIA '04: Proceedings of the 12th annual ACM international conference on  Multimedia, Publisher: ACM

[24] Matthew Osment, Todd Reimer: Music by ear: an interactive system to teach old­

time fiddle, June 2006, ICLS '06: Proceedings of the 7th international conference on  Learning sciences, Publisher: International Society of the Learning Sciences

[25] Rabenstein, R.; Petrausch, S.; Sarti, A.; De Sanctis, G.; Erkut, C.; Karjalainen, M.: 

Blocked­based   physical   modeling   for   digital   sound   synthesis,   March   2007,   Signal  Processing Magazine, IEEE Volume 24,  Issue 2

[26] Nicholas Reynolds: Musical composition and creativity in an ICT­enriched learning  environment: a case study, January 2003, CRPIT '03: Proceedings of the 3.1 and 3.3  working groups conference on International federation for information processing: ICT  and the teacher of the future ­ Volume 23

[27] Duk Shin, Atsushi Katayama, Kyoungsik Kim, Hiroyuki Kambara, Makoto Sato and  Yasuharu Koike:  Using a MyoKinetic  Synthesizer to Control  of Virtual  Instruments,  2006, Publisher: Springer Berlin / Heidelberg

(41)

[28] Chuen­Tsai Sun; Ji­Lung Hsieh; Chung­Yuan Huang:  Using Evolving Agents to  Critique Subjective Music Compositions, Computational Intelligence and Security, Nov. 

2006, 2006 International Conference on Volume 1, Page(s):474 – 480

[29]  Tero  Tolonen,  Vesa  Välimäki,   Matti  Karjalainen:   Evaluation   of Modern  Sound  Synthesis   Methods,   Helsinki   University   of   Technology,  http://www.acoustics.hut.fi/publications/reports/sound_synth_report.pdf,   viitattu  9.6.2008.

[30]   Martin   Tomitsch,   Thomas   Grechenig,   Karin   Kappel,   Thomas   Költringer: 

Experiences from designing a tangible musical toy for children, June 2006, IDC '06: 

Proceedings of the 2006 conference on Interaction design and children, Publisher: ACM 

[31]   Toontrack   EZdrummer   –virtuaali­instrumentti 

http://www.toontrack.com/ezdrummer.asp, viitattu 9.6.2008.

[32]   Jeff   Tranter:   Introduction   to   Sound   Programming   with   ALSA,  http://www.linuxjournal.com/article/6735, viitattu 28.7.2008

[33] UMSIC­DoW (Description of Work), for FP7­ICT­2007­2 (Accessible and Inclusive  ICT), viitattu 9.6.2008.

[34] Christophe Vergez and Patrice Tisserand: The BRASS Project, from Physical Models  to Virtual Musical Instruments: Playability Issues, 2006, Publisher: Springer Berlin /  Heidelberg

[35]   Christian   Vincenot:  An   introduction   to   Linux   sound   systems   and   APIs,  http://www.linux.com/articles/113775, viitattu 9.6.2008

[36]   Wikipedian   kuva   aaltomuodoista, 

http://en.wikipedia.org/wiki/Image:Waveforms.svg, viitattu 29.7.2008

Viittaukset

LIITTYVÄT TIEDOSTOT

The progression of this chapter goes through three different stages of our interviewee’s life, Mr. Irizo: pedagogic influences and initiation in contemporary classical music,

data on demand. This means there is no reason to store all of the metadata internally, instead we annotate tracks with links to DBPedia and other sources. The system

Maybe it clarifies the differences of Finnish and Iranian children’s perception of emotion in different modes of music: the Iranian children felt positive

Asthma group, two children and one adult, had music therapy sessions with woodwind instrument playing, and COPD patient individual music therapy sessions for 12

Aspects of curriculum design and its implication to teacher’s role as well as aspects of music education philosophy will also be evaluated in the music curricula

In 2011 Abdoli in his article "Iranian traditional music Dastgah classification", talked about the description of Dastgah-s in Iranian music compared to

Feeling the emotion of music significantly increased fluctuations of head tilt (compared to playing accurately or expressing the music), providing further cues of truly felt

The current study explores how existing and prototype technologies affect academic performance in elementary school children, by testing iPad and KAiKU Music Glove hardware in the