jsMath
[intmath.org]

Matematiikkaa ja musiikkia

Heikki Apiola (heikki.apiola'at'aalto.fi)
(Pikku päivityksiä 16.4.2015 ja 21.10.2015)

Pentagrammi

Kvintti soi, klikkaa kuvaa! [Nyt ei, kohta ... 21.10.15]


Puhdas kvintti: Kaava puuttuu, tulee pian [21.10.15]

Mitä, miksi ja kenelle

Kirjoitin keväällä 2007 matematiikkalehti Solmuun hieman rönsyilevän jutun, jonka tarkoitus oli johdatella mm. matematiikasta kiinnostuneita lukiolaisia vektoreiden ja matriisien perusasioihin.
Tavanomaisista sovelluksista poiketen tuli mieleeni esitellä joitakin sivujuonteita, joihin kuuluivat äänenkäsittelyvektorit, alkaen "Tuiki tuiki tähtösestä" ja huipentuen näytteeseen Händelin Messias-oratorion Halleluja-kuorosta Matlab- ohjelman "tulkitsemana". Sysäyksen tälle suunnalle antoi eläkkeelle siirtyessäni aloittamani kuorolauluharrastus Helsingin kannelkuorossa. (Sattumoisin olimme tuona keväänä harjoitelleet samaista Halleluja-kuoroa.)

Kirjoitelmaani voi lukea musiikin ja matematiikan vuorovaikutuksen historiallis- esteettisestä näkökulmasta, digitaalisen äänenkäsittelyn matemaattisten perusteiden näkökulmasta tai puhtaasti kuorolaisen kannalta, jolloin matemaattiset perusteet voi unohtaa ja ryhtyä kokeilemaan kehittelemiäni pikku työkaluja suoraan käytännön stemmaharjoitteluun.

Esiintyvä matematiikka sisältyy kokonaisuudessaan lukion oppimäärään, lukuunottamatta paria viittausta Fourier-sarjoihin ja -muunnokseen. Musiikin teorian tuntemusta ei juurikaan oleteta. Tekstin linkeissä ja lopun viiteluettelossa on runsaasti musiikkimateriaalia kiinnostuneille.

Viimeisenä, vaan ei vähäisimpänä näkökulmana on matemaattisten ohjelmistojen käyttö. Niistäpä riittää aiheita myös jatkokirjoituksiin. Tämän jutun ohjelmina ovat Matlab ja sen vapaasti saatavilla olevat "kloonit" Scilab ja Octave. Ohjelmien suhteen tarvitaan vain aivan "infinitesimaalinen" osajoukko niiden arsenaalia. Solmu-kirjoituksen "Lyhyt Matalab/Scilab-ohje" s. 3 alkaen on riittävä. Esimerkeissä käytän kahta ensinmainittua ohjelmaa. Perusteellisempaa Matlab-oppia voi katsoa vaikka täältä. Laaja Matlab oppaiden viitteistö on tässä.

Tarunhohtoinen Pythagoras

Samoksen saarella Kreikassa n. 570-580 (eaa) syntynyt ja myöhemmin Etelä-Italiassa toiminut, pythagoralaisen matemaattis-mystisen koulukunnan oppi-isä on suuresti vaikuttanut niin matematiikan kuin länsimaisen musiikin perusteisiin. (Eri lähteissä esiintyy elinajan suhteen hajontaa, joka tapauksessa mies saavutti varsin kunnioitettavan iän, ehkä jopa n. 80 vuotta.) Pythagoralaisten keskuudessa lienee tullut käyttöön opetussuunnitelma, jossa geometrialla, aritmetiikalla, astronomialla ja musiikilla, myöhemmin latinankielisellä nimellä quadrivium tunnetulla yhdistelmällä, oli keskeinen asema.

Pythagoras loi matemaattisen ja akustisen musiikinteorian perusteet mm. havaitsemalla, että värähtelevän kielen pituus on kääntäen verrannollinen sen tuottaman äänen korkeuteen. Erityisesti hän huomasi, että jos kielen pituus puolitetaan, niin sävelkorkeus nousee oktaavilla. Hän loi myös ajatuksen maailmankaikkeuden, ihmisen ja musiikin perustumisesta yksinkertaisiin lukusuhteisiin.

Pythagoraan ajattelussa vuorovaikutus matematiikan ja musiikin kesken kulki molempiin suuntiin. Esimerkkinä musiikin vaikutuksesta matematiikkaan mainittakoon, että hän määritteli joukon keskiarvoja, joista tunnetuimmat ovat aritmeettinen ja geometrinen , hieman vähemmän tunnettu on harmoninen .
Harmoninen keskiarvo määritellään kaavalla $$k_h=\frac{2 a b}{a+b}.$$ Jos ajattelemme, että $c$ edustaa c-nuotin värähtelytaajuutta, niin $2\,c$ on oktaavia korkeampi taajuus. Vastaavat värähtelevän kielen pituudet ovat verrannollisia käänteislukuihin. Jos sijoitetaan edellä olevaan kaavaan $a=\frac{1}{c}$ ja $b=\frac{1}{2c}$, saadaan $k_h=\frac{2}{3c}$, joten värähtelytaajuus on 23c. Tämä tarkoittaa, että oktaavin päähän toisistaan viritettyjen kielten pituuksien harmoninen keskiarvo on kielen pituus, joka soi puhtaan kvintin päässä alkuperäisestä sävelestä (tässä c). Kvintti-intervalli lienee soinut Pythagoraan korvassa erityisen harmonisena. Kun erityisesti lukujen $6$ ja $12$ harmoninen keskiarvo on $8$, saattoi Pythagoras hyvällä syyllä kutsua lukukolmikkoa $(6,8,12)$ harmoniseksi. Tästä syystä esimerkiksi kuutio, jossa on 6 sivutahkoa, 8 kärkeä ja 12 särmää, oli harmoninen kappale. Toisin sanoen kuution geometrinen harmonisuus perustui kvintin harmoniseen sointiin.

Pythagoralaisten veljeskunnan symboli oli yllä vasemmalla kuvassa esiintyvä pentagrammi, säännöllisen viisikulmion lävistäjien muodostama viisisakarainen tähti, jonka keskustan muodostaa säännöllinen viisikulmio. Symbolin ja kuvioon sisältyvän matematiikan yhteydestä janojen yhteismitattomuuden keksimiseen on spekuloitu. Musiikkiin liittyen luku $5$ luonnehtii edellä mainittua kvintti-intervallia, jolla on tärkeä sija musiikissa, onhan monen kieli-instrumentin, kuten viulun, sellon, mandoliinin ym. kielet viritetty kvintin päähän toisistaan.


Lopussa mainituista Pythagoras-lähteistä noudattelen läheisimmin Matti Lehtisen Matematiikan historiaa Solmu-verkkolehdessä

Sinisointia

Kuten tunnettua, ääni on ilmassa (tai muussa väliaineessa) etenevää aaltoliikettä. Oivallinen johdatus ääni-ilmiöihin on sivustolla: Äänipää, akustiikan ja äänitekniikan erikossivu.
Jos äänessä on vain yksi taajuus, se on puhdasta sinivärähtelyä. Jos siniaalto värähtelee "yksiviivaisen" perus a:n taajuudella, 440 Hz, sitä esittää funktio $$y=\sin (2\pi\, 440 t) .$$ Kuvaaja voidaan piirtää Matlab tai Scilab-ohjelmalla komennoilla:

    t=linspace(0,1,8192);  % Aikaväli (0,1) jaetaan 8192:een osaan.
y=sin(2*pi*440*t); % 440 Hz:n siniaalto t-pisteissä.
plot(t(1:100),y(1:100)) % Rajoitutaan 100:aan ensimmäiseen arvoon,
% jotta kuva ei tule sotkuiseksi liiasta datasta.

Miksi juuri 8192 ? Kyseessä on "näytteenottotaajuus", kuinka monta näytettä siniaallosta otetaan, kun analoginen signaali digitoidaan. Tällöin yhtä jaksoa kohti tulee n. 20 näytettä, jolloin silmä hahmottaa syntyvän murtoviivan sileänä sinikäyränä. (Luku 8192 sattuu olemaan $2^{13}$. Näytteenottotaajuudeksi pyritään ottamaan kakkosen potenssi, jotta ns. nopea Fourier-muunnos toimisi mahdollisimman tehokkaasti.)
Edellä muodostettu diskreetti y-signaali voidaan ohjata tietokoneen grafiikkakortin sijasta äänikortille yksinkertaisesti korvaamalla yllä "plot" komennolla "sound" Tässä tapauksessa saadaan ihastella sekunnin ajan puhtaan siniaallon tuottamaa steriiliä äänisignaalia.
Syy siihen, miksi en tässä kirjoituksessa ole maininnut "uskollisemmin" Matlabia matkivaa Octave:a, on komennon sound puuttuminen Octavesta.

Tasavireinen sävelasteikko

Kuten todettu, oktaavi on taajuusalue, jossa taajuus kaksinkertaistuu, ja korva tietyllä tavalla samaistaa oktaavin päässä olevat äänet. Kuuloalue 20-20 000 Hz sisältää n. 10 oktaavia.
Länsimaisessa musiikissa oktaaviala jaetaan kahteentoista osaan. Yksinkertaisimmalta tuntuisi jakaa taajuudet tasan niin, että kahden peräkkäisen sävelen taajuuksien suhde on vakio. Jos näin menetellään, saadaan tasavireinen asteikko, jonka peräkkäisiä sävelaskelia kutsutaan puolisävelaskeleiksi. Itse asteikko on nimeltään kromaattinen asteikko. Tämä onkin varsin yleinen tapa nykyään ja erityisesti kiinteästi viritettäville instrumenteille (kuten piano) se on eniten käytetty.

Tehtävä: Määritä tasavireisen kromaattisen asteikon kahden peräkkäisen nuotin taajuuksien suhde q .
Ratkaisu: Olkoon $\omega_0$ jokin taajuus, kuten vaikka yksiviivainen a=440 Hz. Oktaavia ylempi taajuus on $\omega_{12}=2\omega_0$. Seuraava nuotti saadaan edellisestä $q$:lla kertomalla, joten: $$\omega_1=q\omega_0, \omega_2=q\omega_1=q^2 \omega_0, \ldots, \omega_{12}=q^{12}\omega_0.$$ Siispä $q^{12}\omega_0=2\omega_0,$ joten $q=\root 12 \of 2$.

Taajuuksien suhde on siis irrationaaliluku, eikä pythagoralaisen ihanteen mukainen kahden pienen kokonaisluvun osamäärä. Jos verrataan puhtaan kvintin nuottien taajuuksien suhdetta vastaavaan tasavireiseen, saadaan: puhdas kvintti : $3/2 = 1.5$ ja tasavireinen: $q^7 = 1.4983$, missä siis $q=\root 12 \of 2$. Tämä epätarkkuus johtaa ns. "Pythagoraan kommaan", josta tarkemmin mm. Tampereen yliopiston "Mute"-sivulla

Oktaavin alue pianon koskettimilla rajautuu selkeästi valkoisiin koskettimiin, jotka soittavat c-duurin säveliä: c,d,e,f,g,a,h. Tätä 7:n sävelen jonoa kutsutaan diatoniseksi asteikoksi, Kahden peräkkäisen valkoisen koskettimen välillä on puolisävelaskel, muuten kokoaskel. Siten puolisävelaskeleet ovat väleillä (e,f) ja (h,c). Jos mukaan otetaan myös pianon mustat koskettimet, saadaan koko edellä esitelty kromaattinen asteikko.
Havainnollinen kuva sävelasteikoista nuottiviivastoilla nimityksineen on tällä musiikin teorian opetussivulla. sekä WIKI-sävelasteikkosivulle Lainaan sivuston Äänipää taajuutta koskevalta alasivulta kiintoisaa viritystietoa:


"Musiikissa käytetään viritysäänenä normaali-a:ta, joka nykyisin on 440 Hz. Se sovittiin vuonna 1939 Lontoossa. Viritysääni saadaan ääniraudasta. Viritystaajuus on vuosisatojen kuluessa muuttunut Ennen toista maailmansotaa soittimet viritettiin matalammalle, normaali-a oli esim. Ranskassa vuodesta 1859 alkaen keskimäärin 435 Hz. Sitä ennen viritystaajuus oli hyvin vaihteleva. Eri maissa ja eri paikkakunnilla käytettiin tuolloin hyvinkin erilaisia virityksiä. Muusikot koettivat sopeutua tilanteeseen transponoimalla eli soittivat eri korkeudelta kuin säveltäjä oli kirjoittanut. 1700- ja 1800-luvuilla musiikkia soitettiin pienemmissä konserttisaleissa kuin nykyisin. Händelin kerrotaan suosineen viritystaajuutena 423 Hz ja Mozart käytti taajuutta 422 Hz. Viime vuosikymmeninä viritys on entisestään noussut; nykyisin orkesterit käyttävät viritysäänenä 443-444 Hz. Tätä on selitetty sillä, että konserttisalit ovat suuria ja siellä on paljon häiriöääniä, joiden läpi musiikin on tunkeuduttava. Korkeammat äänet ovat läpitunkevampia ja kirkkaampia. Erityisiä ongelmia tulee kuitenkin laulajille, jotka joutuvat sopeutumaan luonnottoman korkeisiin ääniin."

Matti Jordmanin laatimilla Musiikin teorian perusteiden opetussivuilla on havainnollisesti mm. nuottien ja oktaavialojen nimet. Esimerkiksi edellä mainittu "perus-a" kuuluu oktaavialaan "yksiviivainen".

Intervallit, asteikot

Tasavireinen asteikko vaikuttaa ensisilmäyksellä ainoalta oikealta, mutta asiaa tarkemmin tutkiessaan suorastaan mykistyy eri sävelasteikkojen moninaisuuden edessä. Otetaanpa aluksi muutama sana intervalleista.
Edellä puhuttiin kvintistä. Musiikkiopissa esiintyviä intervallien nimiä ovat: priimi, sekuntti, terssi, kvartti, kvintti, ... . Erinomaisen selkeä taulukko kaikista intervalleista on Wiki-Intervallit-sivuilla. Nimitykset viittaavat siihen, kuinka suuri nuottien väli on diatonisella asteikolla, kun myös "päätepistenuotit" otetaan mukaan. Siten priimi tarkoittaa joukkoa, jossa soi kaksi samaa nuottia (lukumäärä 1) ja vaikkapa kvintti koostuu esimerkiksi nuoteista c,g, joiden välissä on kolme nuottia d,e,f. Siten "suljetulla nuottivälillä" on 5 nuottia. Intervallit ovat "pieniä, suuria, ylinousevia" ym. riippuen siitä, miten diatonisen asteikon puolisävelaskelet sijoittuvat välille. Selkeintä on antaa puolisävelaskelien lukumäärä, kuten tuossa Wiki-taulukossa, joskaan lukumääriin viittaavat nimitykset eivät osu silloin kohdalleen. Jos katsomme taas lempi-intervalliamme kvinttiä, niin siinä on 7  puolisävelaskelta. Samassa taulukossa on annettu puhtaiden intervallien (rationaaliset) taajuuksien suhteet, jotka siis eivät voi olla samoja kuin tasaviritetyn asteikon irrationaaliset suhteet.

Tarkempaa tietoa yllä pinnallisesti esitellyistä aiheista on viitteissä:

Sävelasteikkojen esittäminen ja soittaminen tietokoneohjelmalla

Sävelasteikot voidaan nyt helposti saattaa muotoon, joka mahdollistaa niiden soittamisen yllä mainitulla Matlab:n sound-funktiolla. Muodostetaan tasavireinen asteikko. Kirjoitetaan Matlab-skripti, eli komentotiedosto nuotit.m, joka hoitaa homman. Tiedoston alku olkoon mukavuussyistä näkyvissä suoraan. (Kommenttirivit alkavat %-merkillä.) Periaatteesta saanee jonkinlaisen käsityksen, vaikka Matlab-kieli olisi vieras.

Huom: Valitettavasti olen alunperin kirjoituksessa erehtynyt nimittämään perus-a:ta "pieneksi", vaikka se oikeasti kuuluu oktaavialaan "yksiviivainen". Yllä olen korjannut nuo erehdykset, mutta alla olevaan Matlab-skriptiin en enää halua kajota. Niinpä siinä esiintyvät nuottisymbolit soivat nimeensä nähden oktaavia ylempänä. Tällä ei ole merkitystä muun kuin oktaavialojen nimien harhaisuuden kannalta. Valitan tätä, mutta muutokset vaikuttavat senverran moneen paikkaan, että en siihen ryhdy. (11.09.09)

%  Tiedosto nuotit.m    11.4.2009  HA
% %-merkki rivin alussa alkaa kommentin, jos sen perässä on Matlab-komento,
% saat sen suoritukseen poistamalla %-merkin edestä.
% Nuottien värähtelytaajuudet, tasavireinen asteikko
% Oktaavit: SUURI, pieni, yksiviivainen,kaksiviivainen
% Kirjoita Matlab-komentoikkunaan: >> nuotit

q=2^(1/12); %Peräkkäisten taajuuksien suhde
a=440; % Perus-a.
% a=q*440; % Transponoi skaalan 1/2 sävelaskelta ylös.
% a=q^2*440; % Transponoi koko askeleen ylös
% a=440/q; % Transponoi 1/2 sävelaskelta alas.
% Transponoinnin jälkeen pitää ajaa nuotit-skripti ja stemma uudestaan.
%
pieni=a*q.^(-9:2); % Pienen kromaattisen skaalan kaikki 12 nuottia
SUURI=pieni/2;
yksiviivainen=2*pieni;
kaksiviivainen=2*yksiviivainen;
c=pieni(1);cis=pieni(2);d=pieni(3);dis=pieni(4);e=pieni(5);
f=pieni(6);fis=pieni(7);g=pieni(8);gis=pieni(9);a=pieni(10);
ais=pieni(11);h=pieni(12);
des=cis;es=dis;ges=fis;as=gis;b=ais;
...

Kunkin muuttujan c,cis,d,dis, ... arvona on tässä tapauksessa sävelasteikon "pieni" asianomaisen nuotin taajuus.Loppuosassa tiedostoa tehdään vastaavat sijoitukset vektorien SUURI,yksiviivainen ja kaksiviivainen alkioille (taajuusarvoille). Muuttujien nimet ovat C,Cis,... ja c1,cis1,... sekä c2,cis2,... .
Nyt on helppo soittaa mitä tahansa melodioita yllä esitellyn sound-funktion avulla. Solmu-lehtikirjoituksessani esitin pienen ohjelmasilmukan, jolla soitetaan laulu "Tuiki tuiki tähtönen". Tuo on helppo kirjoittaa yleiseksi ohjelmaksi, jolle annetaan nuottien muodostama taajuuksien vektori argumentiksi: Kirjoitetaan tiedostoon soita1.m seuraavat komennot:

   function soita1(nuotit)
FS=8192;
t=linspace(0,1,FS);
for k=1:length(nuotit)
y=sin(2*pi*nuotit(k)*t);
sound(y,FS)
pause(0.05)
end;

Voimme tällä soittimellamme soittaa heti vaikka vektorin cduuri: Matlab-istunto käy näin:

  >> nuotit;   % Nuottinimiin viedään ko. taajuusarvot
>> cduuri=[c d e f g a h c1];
>> soita1(cduuri)

"Soittimemme" virittäminen

Edellä esitetty komentotiedosto eli "skripti" nuotit.m virittää soittimemme tasavireisesti ja sen mukaan transponoiden, miten a-nuotin arvo valitaan. Tällaisen soittimen virittäminen mihin tahansa viritysjärjestelmään käy käden käänteessä. Jos taajuudet saadaan matemaattisella kaavalla, kuten tasavireisessä, asia hoituu vaivattomasti. Mutta miltei yhtä helppoa on hakea kromaattisen asteikon nuottien taajuusarvot annetusta taulukosta. Asteikkovektoriin sijoitetaan nuo 12 lukua, ja sitten koko vektori kerrotaan 2 :n potensseilla, saadaksemme eri äänialat. Jos tiedossa on vain diatonisen asteikon arvot, on luontevinta laskea puolisävelaskeleet geometrisen keskiarvon kaavalla: $$\omega_{1/2}=\sqrt{\omega_1 \omega_2}.$$ Esimerkkinä kirjoitin Mute/sävelasteikot-viitteen mukaisesti pythagoralaisen skaalan tiedostoon Pythagoras.m . Jos sijoitat tiedoston Matlab-polulle ja kirjoitat Matlab:ssa Pythagoras saat tuon sävelasteikon soimaan. Siitäpä voit oman sävelkorvasi turvin arvioida, kumpi tuntuu oikeammalta.

Kuorolaisille stemmaharjoittelua

Muusikon ei välttämättä tarvitse tietää mitään edellä olevasta matemaattis-fysikaalisesta osuudesta, eikä myöskään soita-funktion tietotekniikasta yhtä vähän kuin vaikkapa pianistin on tarpeen tietää, mikä on soittimen äänen teoreettinen tausta.

Katsotaanpa alkutahteja Uusmaalaisten laulusta. (Näiden nuottien suhteen ei pitäisi olla tekijänoikeusongelmaa, kun ne ovat kaikkien nähtävillä Järvenpään-Tuusulan paikkeilla Lahdentien varrella.) Sopraanostemman, eli perusmelodian soittaminen käy näin: (kun varastetaan vielä yksi nuotti ja "veet" seuraavalta riviltä).
  >> uusmaa_alku=[d1 d1 g1 h1 d2 c2 h1 a1 g1 a1 h1 g1 a1];
>> soita1(uusmaa_alku)
Kukin ääniala (sopraano, altto, tenori, basso) voi kirjoittaa oman stemmansa samaan tapaan ja sitten vaan antaa soida. Siniaalto soi väritöntä sointiaan oikein sävelkorkeuksin. Nuotti-informaatiosta on toistaiseksi käytetty vain sävelkorkeus. Miten saataisiin nuottien aika-arvot mukaan? Yksinkertaisin tapa on muuttaa soita1-funktiossa pause(0.05) pelkäksi pause:ksi, jolloin kunkin nuotin jälkeen soittimemme odottelee ENTER:n painallusta. Vastaava komento Scilab:ssa on halt().
Huom! Scilab-viitteet ovat muuttuneet, korjataan pian ... (nyt on 16.4.2015).

Koko Scilab-funktio soita1.sce tulee tähän (kunhan ...) Soitto "soita1"-soittimella soi leikkimällä, että näppäimistön ENTER on pianon kosketin, jolla houkutellaan kukin nuotti soimaan sinisointiaan oikella sävelkorkeudella. Rytmi hoidetaan manuaalisesti laulamalla ja laskemalla se itse. Tämä vastaa melodian tapailua pianolla, mutta ei vaadi sävelkorkeuksien hapuilua kuin kerran. (Toki pianon sointi on korvalle nautittavampaa, mutta "oikean" harjoittelunhan kuuluu olla hieman ankeaa.) Etköhön jo kokeilisi!

Tehtävä:
(a) Soita Uusmaalaisten laulun alku.
(b) Kirjoita jokin muu stemma yllä olevan nuottirivin mukaan ja soita.

Ratkaisu: (1) Jos sinulla on Matlab koneessasi ja osaat sen peruskäytön, niin lataa itsellesi tiedostot nuotit.m ja soita1.m, sijoita ne Matlab-polun varelle, kirjoita komentoikkunaan:
 >> nuotit % Nuottinimille asetetaan taajuusarvot.
>> uusmaa_alku= (kuten yllä) % Pianonäppäilyt talteen
>> soita1(uusmaa_alku) % Soitetaan talletetut näppäilyt.
(b)-kohta ei lisäneuvoja kaipaa. (2) Jos sinulla ei ole Matlabia, niin
  1. Lataa koneellesi Scilab täältä.
  2. Lataa itsellesi tiedostot nuotit.sce (kunhan tulee), soita1.sce (kunhan ...) ja sijoita ne sopivaan hakemistoon.
  3. Käynnistä ohjelma ikonista ja mene tuohon sopivaan hakemistoon, esim näin:
    -->cd C:\Users\Heikki\musiikki\Kannelkuoro
  4. Suorita nuottiarvojen määritys ja ota käyttöön funktio soita1:
     --> exec nuotit.sce; getf soita1.sce
  5. Soita mitä haluat, kokeile nyt aluksi tuota samaa uusmaa_alku- vektoria. Siis
        -->soita1(uusmaa_alku)
    Soitto jatkuu ENTER:llä nuottivektorin loppuun saakka.

Musiikin rytmi

Toinen musiikin peruskomponentti saadaan mukaan esittämällä sävelkulku 2-rivisenä matriisina. Yllä oleva Uusimaa-sopraanostemma voitaisiin esittää näin:
     d1 d1 g1 h1 d2 c2  h1 a1 g1 a1 h1 g1 a1
1 1 1 1 3/2 1/2 1 1 1 1 1 1 2

Tässä on otettu neljäsosanuotille aika-arvo 1, jolloin kahdeksasosanuotin aika-arvo=1/2, pisteellisen 8-osan 3/4 jne. Tauko voidaan esittää vaikkapa niin, että annetaan taajuusarvoksi 0 ja kestoksi tietenkin tauon kesto. (Kun taajuus on 0, mitään värähtelyä ei tapahdu, joten mitään ei kuulu.) Esimerkiksi neljäsosatauko ilmaistaisiin sarakkeella, jossa ylärivillä on 0 ja alarivillä 1.

Tällaisen musiikkitietorakenteen soittamiseksi tein Matlab-funktion soita tiedostoon soita.m
Käyttöohjeen saa komennolla help soita

>> help soita
22.3.09 HA
Ensin ajetaan skripti nuotit, joka asettaa nuottinimille niiden taajuusarvot (Hz).
Laulutiedostoon (esim. lauluja.m) kirjoitetaan nuottien korkeudet ja kestot.
Esim: Uusmaalaisten laulun alku:
Esitetään stemma 2-rivisenä matriisina, ylärivinä
sävelkorkeudet, alarivinä kestot alla olevan mallin mukaan.
nuotit % Skripti nuotit.m antaan taajuusarvot nuottinimille.
savelkorkeus=[d1 d1 g1 h1 d2 c2 h1 a1 g1 a1 h1 g1 a1];
kesto=[1 1 1 1 3/2 1/2 1 1 1 1 1 1 2];
Uusmaa=[savelkorkeus;kesto]; % 2-rivinen "stemmatietorakenne"
soita(Uusmaa,1/2) % 1/2 on aikaskaala (oletus 1)

soita.m-funktioon on kirjoitettu mahdollisuus antaa aikaskaala lisäparametrina. Nyt on helppo harjoitella kuorostemmaa aluksi hitaalla tempolla ja oppimisen edistyessä nopeammalla.
Funktio "soita" voitaisiin uskoakseni toteuttaa Scilabilla minimaalisin muutoksin, Toinen ilmainen mahdollisuus olisi Octave, mutta siitä taitaa puuttua tuo sound-funktio, ainakin toistaiseksi, joten unohdetaan se tässä vaiheessa.

Kuoroon!

Jotkut lukijat lienevät huomanneet Yle Teemalla "viime vuonna" (kirjoitusvuosi - 1) olleen, Inari Nuuteron ja Pasi Hyökin toteuttaman ohjelman, jossa innostettiin kuoroharrastuksen pariin. Samalla otsikolla yllytän lukijaa. Kuoron valitsemiseksi kannattaa tutustua SULASOL:n kuorosivuille Oma kuorourani Helsingin kannelkuorossa alkoi vasta eläkeiässä, suosittelen lämpimästi aloittamaan viimeistään silloin.
Edellä esitelty stemmasoitin voi olla hyödyksi juuri itseni kaltaiselle aloittelevalle kuorolaulajalle, omaan tarpeeseen sen kehitin.

Äänenkäsittelytekniikkaa

Jos haluttaisiin kehittää soitin, jolla oikeiden soittimien äänen väriä voitaisiin simuloida, pitäisi lisätä niille luonteenomaisia ylä-ääniä. Havainnollinen esitys on Äänipää-sivulla otsikolla "Taajuudet ja äänispektri". Tämä johtaa Fourier-analyysiin, voitaisiin ottaa mukaan ylä-äänien edustamia Fourier-komponentteja. Toisaalta maailmalla on hyvin kehittyneitä äänenkäsittelyohjelmia, äänieditoreita ja standardoituja äänitietorakenteita ja -formaatteja. Tällä suunnalla ehkä MIDI on samanhenkinen, toki huomattavasti kehittyneempi kuin edellä kuvattu äänimatriisi. (Tässä MIDI-määrittelyjä ja tässä tutkimusta: MIDI-toolbox for Matlab ) Äänieditoreista mainittakoon korkatasoinen julkisohjelma: Audacity ja samoilla sivuilla esitelltävä Nyqvist-kieli

Kiintoisaa olisi tietysti edetä oman soittimen kehittelyssä, nähdä, kuinka matemaattinen teoria (Fourier-analyysi) voidaan muuttaa musiikiksi. Toisaalta alkuperäinen tarkoitus stemmaharjoittelutyökalusta tulee yllä esitellyillä välineillä jo kohtuudella saavutetuksi, varsinainen sähköinen musiikin tuottaminen voidaan jättää alan erikoisohjelmistoilla toteutettavaksi.

Matematiikan ja musiikin kauneus

Pythagoras tarkasteli musiikkia sekä matemaattis-akustiselta että estetiikan kannalta. Sävelten välisten matemaattisten suhteiden pohjalta hän kehitti oppinsa kosmisista suhteista, sfäärien harmonian. Planeettojen välisten etäisyyksien ja musiikin värähtelyharmoniat meinivät ehkä jo enemmän mystiikan puolelle, mutta jotain suurta kosmologista yhteyttä musiikin ja matematiikan kesken hän tavoitteli.
Musiikin ja matematiikan kauneudessa on varmasti paljon yhteisiä piirteitä. Matematiikan kauneudesta tosin ei yleensä voi heittäytyä nauttimaan ilman asianomaisen alueen perusteiden tuntemista. Mutta eroavaisuudet ovat ehkä hienovaraisempia kuin useinkaan tullaan ajatelleeksi. Yhteisestä kauneushypoteesistä todistusaineistona tulee näin pääsiäisen aikaan mieleen Matteus-passio. Bachin ylimaallisen kauniiden sävelten maailmasta väliajalle laskeutuessaan törmää vuodesta toiseen moniin tuttuihin matemaatikoihin.

Jälkikirjoitus 21.10.2015

Vuosien varrella olen kirjoittanut suuren määrän oman äänialani (baritoni) kuorostemmoja. Kätevin tapa on tehdä ne muotoon:

PuerNatusB.m (Tämän joulun konsertin laulu)
 q=2^(1/12);         % Peräkkäisten taajuuksien suhde kromaattisella asteikolla.
 a=440;                  % Perus-a.  Tähän voit sijoittaa haluamasi taajuuden.

 nuotit;    % Ajetaan nuottinimille taajuusarvot (a=440, tai mikä tahansa edelliselle
            % riville kirjoittamasi taajuus, "nuotit"-skripti ajaa kaikki muut kohdalleen.)
 ts=0.6;    % Aikaskaala, muuta tarpeen mukaan

%% Sivu 1
 s1r1=[g 1;g 2;g 1;f 2;f 1;B 2;es 1;B 3;b 2;f 1]'; % Transponointi(matriisilaskennallinen)
% Näin kirjoittaen saadaan nuotin korkeus ja aika vierekkäin, mikä
% nopeuttaa huomattavasti kirjoittamista. 
 soita(s1r1,ts)
%% 
 s1r2 = ...
 ...

Tällä tavoin kirjoittaen saadaan stemma nopeasti ja näppärästi valmiiksi, ja harjoittelijan on helppo irrottaa vaikeaksi kokemiaan sointuja/rytmejä "pänttäämistä" varten. Kirjoitusnopeus riippuu tietysti nuotinlukunopeudesta. Kokeilin Musescorella tehdä vastaavaa, se sujuu yhden stemman osalta huomattavasti hitaammin ja hankalammin. (Jos olisi "Keyboard" ja pianonsoittotaito, niin toki menisi nopeammin, mutta silloin tuskin olisi tarpeenkaan näitä kirjoitella.) Transponointi (musiikillinen) ja yleisemmin perus-a:n muuttaminen Musescoressa ja muissa nuotinnusohjelmissa lienee paljon hankalampaa. Toki tällaisten ohjelmien monet muut ominaisuudet ovat puolestaan omassa luokassaan.

Viitteitä

Matematiikkaa ja historiaa
  1. Solmu, koululaisille suunnattu matematiikan verkkolehti, Helsingin yliopisto
  2. Matti Lehtinen, matematiikan historia: Pythagoras (Solmun sivustolla)
  3. Matemaattisia linkkejä, Intmat-portaali
  4. Pythagoras' life
Musiikkia
  1. Äänipää-sivusto, taajuudet
  2. Mute - Musiikin teoriasivusto, Tampereen yliopisto
  3. Oktaavialat ja musiikin teoriaa, Sibelius-akatemia
  4. Intervallit, Wikipedia
  5. Muhi - Musiikin historiatietokanta, Sibelius-akatemia - viritys
  6. SULASOL (Suomen laulu ja soitto), kuorosivut
  7. Musiikin opetussivusto, Matti Jordman, asteikot
Matemaattisia ohjelmistoja:
  1. Matlab, Mathworks
  2. Scilab - ilmainen Matlab - jäljitelmä ja
  3. Octave - toinen samanlainen.
Äänieditorit, äänenkäsittely
  1. Audacity,Sourceforge
  2. Musescore, Free music composition & notation software