Musiikin nuotinnus Voice Noter -mobiilisovelluksella
Itä, Juho (2015)
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201505158353
https://urn.fi/URN:NBN:fi:amk-201505158353
Tiivistelmä
Voice Noter -mobiilisovellus on Herwood Technologies Oy:n ja Kangain Oy:n kehittä-mä laulamisen harjoitteluohjelma Android-käyttöjärjestelmälle. Kun laulaja laulaa melodiaa, sovellus näyttää sävelet mobiililaitteen näytöllä vaakapalkkeina. Näytön näkymä on nuottiviivaston kaltainen; ruudun alareunassa on matalat äänet, ja ylälaidassa on korkeat äänet. Esimerkiksi Playstation SingStar -pelissä on samantapainen käyttöliittymä.
Työssä kehitettiin sovellukseen ominaisuus, joka nuotintaa ohjelmalle lauletun tai soitetun melodian. Tavoitteeksi asetettiin, että uusi ominaisuus tunnistaa ja nuotintaa yksiäänisiä melodioita. Android-sovellukset ohjelmoidaan tavallisesti Java-ohjelmointikielellä. Digitaalinen signaalinkäsittely tehdään kuitenkin suoritusnopeuden parantamiseksi yleensä C- tai C++-ohjelmointikielellä; Voice Noter:ssa käytetään C++-kieltä. Tutkimuksessa pohdittiin myös nuotinnustoiminnon käyttöliittymän toteutustapaa; monimutkainen käyttöliittymä on vaikea toteuttaa mobiililaitteella.
Voice Noter tallettaa äänisignaalin datan bittikarttaan, josta ohjelma piirtää sävelet nopeasti mobiililaitteen ruudulle. Tutkimuksen aikana havaittiin, että bittikartan 49 Hz:n näytteenottotaajuus riittää neljäsosanuottien tunnistamiseen tempolla 120 iskua minuutissa. Kahdeksasosanuotin tai lyhempien nuottien tunnistamiseen vaaditaan suurempi näytteenottotaajuus. Työn tuloksena kehitetiin algoritmi, joka tunnistaa ja nuotintaa lastenlaulujen tasoisia yksiäänisiä melodioita; testaus suoritettiin soittamalla melodioita sähkökitaralla. Algoritmi muuntaa bittikartan näytteet MIDI-tiedostoksi, jota pystyy muokkaamaan tietokoneella; tietokoneella voidaan esimerkiksi lisätä kappaleeseen soinnut ja tämän jälkeen tallettaa PDF-nuotiksi. Yksinkertaisella koodin lisäyksellä ohjelma saadaan tallentamaan nuotti LilyPond-tekstitiedostona, jolloin ilmaisella LilyPond-nuotinnusohjelmalla varustetulla tietokoneella tiedosto voidaan muuntaa kahdella hiirenpainalluksella PDF-nuotiksi.
Kehittämisideana on nuottien aika-arvojen tunnistuksen parantaminen näytteenottotaajuutta lisäämällä tai hyödyntämällä Voice Noter:n toista uutta ominaisuutta - tempoharjoitustoimintoa. Toiminto etsii melodiasta rytmin ja kertoo käyttäjälle, pysyykö hän tempossa. Rytmin tunnistuksen tekniikoita pystyy todennäköisesti hyödyntämään nuotin alkamishetken määrittämisessä. Tutkimuksen nuotinnusalgoritmi tekee nuotin aina samalla sävel- ja tahtilajilla sekä tempolla. Algoritmia voidaan jalostaa nuotintamaan myös muilla asetuksilla. Lisäksi kielisoittimilla on soittotekniikoita, joista algoritmi ei pysty tunnistamaan nuotteja. Esimerkiksi liu’utettujen ja venytettyjen sävelien tunnistamiseen tarvitaan suuri näytteenottotaajuus.
Työssä kehitettiin sovellukseen ominaisuus, joka nuotintaa ohjelmalle lauletun tai soitetun melodian. Tavoitteeksi asetettiin, että uusi ominaisuus tunnistaa ja nuotintaa yksiäänisiä melodioita. Android-sovellukset ohjelmoidaan tavallisesti Java-ohjelmointikielellä. Digitaalinen signaalinkäsittely tehdään kuitenkin suoritusnopeuden parantamiseksi yleensä C- tai C++-ohjelmointikielellä; Voice Noter:ssa käytetään C++-kieltä. Tutkimuksessa pohdittiin myös nuotinnustoiminnon käyttöliittymän toteutustapaa; monimutkainen käyttöliittymä on vaikea toteuttaa mobiililaitteella.
Voice Noter tallettaa äänisignaalin datan bittikarttaan, josta ohjelma piirtää sävelet nopeasti mobiililaitteen ruudulle. Tutkimuksen aikana havaittiin, että bittikartan 49 Hz:n näytteenottotaajuus riittää neljäsosanuottien tunnistamiseen tempolla 120 iskua minuutissa. Kahdeksasosanuotin tai lyhempien nuottien tunnistamiseen vaaditaan suurempi näytteenottotaajuus. Työn tuloksena kehitetiin algoritmi, joka tunnistaa ja nuotintaa lastenlaulujen tasoisia yksiäänisiä melodioita; testaus suoritettiin soittamalla melodioita sähkökitaralla. Algoritmi muuntaa bittikartan näytteet MIDI-tiedostoksi, jota pystyy muokkaamaan tietokoneella; tietokoneella voidaan esimerkiksi lisätä kappaleeseen soinnut ja tämän jälkeen tallettaa PDF-nuotiksi. Yksinkertaisella koodin lisäyksellä ohjelma saadaan tallentamaan nuotti LilyPond-tekstitiedostona, jolloin ilmaisella LilyPond-nuotinnusohjelmalla varustetulla tietokoneella tiedosto voidaan muuntaa kahdella hiirenpainalluksella PDF-nuotiksi.
Kehittämisideana on nuottien aika-arvojen tunnistuksen parantaminen näytteenottotaajuutta lisäämällä tai hyödyntämällä Voice Noter:n toista uutta ominaisuutta - tempoharjoitustoimintoa. Toiminto etsii melodiasta rytmin ja kertoo käyttäjälle, pysyykö hän tempossa. Rytmin tunnistuksen tekniikoita pystyy todennäköisesti hyödyntämään nuotin alkamishetken määrittämisessä. Tutkimuksen nuotinnusalgoritmi tekee nuotin aina samalla sävel- ja tahtilajilla sekä tempolla. Algoritmia voidaan jalostaa nuotintamaan myös muilla asetuksilla. Lisäksi kielisoittimilla on soittotekniikoita, joista algoritmi ei pysty tunnistamaan nuotteja. Esimerkiksi liu’utettujen ja venytettyjen sävelien tunnistamiseen tarvitaan suuri näytteenottotaajuus.