Matematiikkaa ja musiikkiaHeikki Apiola (heikki.apiola'at'aalto.fi)(Pikku päivityksiä 16.4.2015 ja 21.10.2015)
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.
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 PythagorasSamoksen 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 .
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. t=linspace(0,1,8192); % Aikaväli (0,1) jaetaan 8192:een osaan.
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.) 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.
Tehtävä:
Määritä tasavireisen kromaattisen asteikon kahden peräkkäisen nuotin taajuuksien suhde q . 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.
"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.
Tarkempaa tietoa yllä pinnallisesti esitellyistä aiheista on viitteissä:
Sävelasteikkojen esittäminen ja soittaminen tietokoneohjelmallaSä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
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,... .
function soita1(nuotit) Voimme tällä soittimellamme soittaa heti vaikka vektorin cduuri: Matlab-istunto käy näin: >> nuotit; % Nuottinimiin viedään ko. taajuusarvot "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 Kuorolaisille stemmaharjoitteluaMuusikon 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];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ä: >> nuotit % Nuottinimille asetetaan taajuusarvot.(b)-kohta ei lisäneuvoja kaipaa. (2) Jos sinulla ei ole Matlabia, niin
Musiikin rytmiToinen 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 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 >> help soita soita.m-funktioon on kirjoitettu mahdollisuus antaa
aikaskaala lisäparametrina. Nyt on helppo harjoitella kuorostemmaa aluksi
hitaalla tempolla ja oppimisen edistyessä nopeammalla.
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.
ÄänenkäsittelytekniikkaaJos 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. Jälkikirjoitus 21.10.2015Vuosien 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
|
|
||||