Muusikoiden.net
20.04.2024
 

Musiikin teoria ja säveltäminen »

Keskustelualueet | Lisää kirjoitus aiheeseen | HakuSäännöt & Ohjeet | FAQ | Kirjaudu sisään | Rekisteröidy

Aihe: Työkaluja musiikin teorian hyödyntämiseen säveltämisessä?
1 2
Klezberg
15.03.2014 23:21:04 (muokattu 16.03.2014 00:28:24)
Kotisivu Musiikkinäyte       Linkitä kirjoitukseen Tulosta  

Janus: Kehotan tutustumaan tähän:
 
http://web.mit.edu/music21/

 
Kappas... tuotahan pitää kokeilla. Tuossa tuntuu olevan aika paljon samaa kuin nltk:ssa (Pythonilla tehty natural language toolkit) jota olen käyttänyt, toki ihan muihin kuin musiikillisiin tarkoituksiin.
 
PS. Lähti ihan kivasti macbookissa toimimaan ja nuotit näyttää mulla nyt Finale Printmusicissa. Tuon päätarkoitus näyttää olevan aineistojen tutkiminen (ihan niinkuin sen nltk:nkin). Jos olisi riittävästi aineistoja sopivista musiikkityyleistä niin tällä voisi kehitellä periaatteita joiden mukaan interaktiivinen työkalu sitten tekisi ehdotuksiaan. Ja valmiit aineistot ovat vanhempaa musiikkia, ymmärrettävistä syistä toki (kieliteknologian puolella tuntuu olevan valmiita aineistoja nykykielestä).
 
Ja joo, voihan tuon avulla tuottaakin sävellyksiä. Kysymys on sitten miten tuon yhdistäisi tuohon mun ajatukseen interaktiivisestä työkalusta. Tuossa tehdään hommia komentorivillä ja lopputulos näytetään nuotinnosohjelmassa. Mun ajatus on että hommia tehdään vaikkapa nuotinnosohjelmassa ja työkalu tarjoaa siihen ideoita.
 
Mutta täytyypä leikkiä tuon kanssa ja katsoa mitä ajatuksia syntyy.
 
huomasin tässä että mun klarinetinsoitto kuulostaa aika luonnonmukaiselta... lähinnä niinkuin sorsalta.. siksi siirryinkin haitariin
Nelisormimangusti
16.03.2014 11:57:36
Musiikkinäyte       Linkitä kirjoitukseen Tulosta  

Dr Dominant: .... Tosin, yks tyyppi jenkeissä oli tehnyt valtavan tietokannan bachin sävellyksistä, ja koodannut softan joka sävelsi tuon tietokannan pohjalta "täydellistä" bachia.
 
Idea on toteutettu jo paljon aiemminkin.
 
http://yle.fi/elavaarkisto/artikkel … a_60-luvulta_18759.html#media=18770
https://www.youtube.com/watch?v=k4M0DeAy78g
 
Outo luku on luonnollinen luku, joka on runsas mutta ei puolitäydellinen.
Dr Dominant
16.03.2014 13:45:25
Kotisivu Musiikkinäyte       Linkitä kirjoitukseen Tulosta  

^ Katsos, miten ihmeessä en ole tähän ennen törmännyt, vaikka Kurenniemenkin jutuista jotain tiesin. Mahtava linkki, kiitos tästä! :D
 
"Dr. Dominant, I presume?"
EP
16.03.2014 14:08:11
      Linkitä kirjoitukseen Tulosta  

Juu ja Toivo Kärki itse haukkui tuon koneen aikaansaannoksen ..enkä yhtään ihmettele.
 
11
16.03.2014 16:47:07
      Linkitä kirjoitukseen Tulosta  

Intervallit voi arpoa :)
 
http://www.youtube.com/watch?v=xw9eef99aSI#t=13m09s
 
Nilern
16.03.2014 21:51:09
      Linkitä kirjoitukseen Tulosta  

Klezberg: Luin tämän ainakin itse niin, että ohjelma toimisi perinteiseen tapaan: parametrit sisään, useita kokonaisia ratkaisuja ulos.

Itse taas ajattelin, että ohjelma toimisi interaktiivisesti koko ajan siinä kontekstissa jota käyttäjä luo: käyttäjän syöttämän sointukulun, teeman yms. pohjalta.

 
Minä olen ajatellut Dr Dominantin tavoin, että ohjelmassa olisi erilaisia työkaluja, joille voi syöttää ehtoja tai vaikka jonkun lyhyen sävellyksenpätkän. Sitten ohjelma antaisi vaikka enteriä painamalla liudan vaihtoehtoja "aukkojen" täyttämiseen.
 
Interaktiivisesti, siis reaaliajassa päivittyvä ohjelma olisi tietysti melkoisesti vaikeampi luoda kuin vaikka jokin komentorivi, jolta voi pyytää erilaisia tulosteita joiden pohjalta ongelmiaan ratkoa. Olisi hieman epäselvää, mikä oikeastaan on käyttäjän "ongelmanasettelu". Luultavasti tämä vaatisi ohjelmalta myös melko kattavat nuotinnusominaisuudet, mikä johtaisi helposti ohjelman paisumiseen.
 
Joka tapauksessa hieno visio.
 
Klezberg
16.03.2014 22:29:24 (muokattu 17.03.2014 23:07:53)
Kotisivu Musiikkinäyte       Linkitä kirjoitukseen Tulosta  

Nilern: Minä olen ajatellut Dr Dominantin tavoin, että ohjelmassa olisi erilaisia työkaluja, joille voi syöttää ehtoja tai vaikka jonkun lyhyen sävellyksenpätkän. Sitten ohjelma antaisi vaikka enteriä painamalla liudan vaihtoehtoja "aukkojen" täyttämiseen.
 
No, jos unohdetaan reaaliaikainen interaktiivisuus, niin jos tuossa käyttäjä syöttää oleellisia osia sävellyksestä joiden perusteella ohjelma ehdottaa vaihtoehtoja aukkojen täyttämiseksi, niin idea on kyllä hyvin sama kuin minun ajatuksessa. Siis ettei ohjelma vain generoi teorian ja parametrien perusteella vaihtoehtoja kokonaista sävellystä varten, vaan nimenomaan ehdottaa täydennyksiä tai muutoksia käyttäjän syöttämään sävellykseen.
 
Tämmöisen ratkaisun kanssa kokeilemiseen tuo music21 saattaisi sopia ihan hyvin. Siihen voi syöttää aineistoa eri muodossa ja koodata pythonilla miten niitä käsitellään. Voi myös tutkia referenssiaineistoista sävel- ja sointukulkuja joiden tuloksia sitten käyttää sopivalla tavalla. Lopputulos sitten voidaan näyttää nuotinnosohjelmassa (automaattisesti).
 
Interaktiivisesti, siis reaaliajassa päivittyvä ohjelma olisi tietysti melkoisesti vaikeampi luoda kuin vaikka jokin komentorivi, jolta voi pyytää erilaisia tulosteita joiden pohjalta ongelmiaan ratkoa. Olisi hieman epäselvää, mikä oikeastaan on käyttäjän "ongelmanasettelu". Luultavasti tämä vaatisi ohjelmalta myös melko kattavat nuotinnusominaisuudet, mikä johtaisi helposti ohjelman paisumiseen.
 
Joka tapauksessa hieno visio.

 
No, interaktiivisuutta voi tässä ajatella eri tasoilla. Itse pidin tärkeimpänä sitä ettei ohjelma tee koko hommaa yhdessä vaiheessa, vaan että sävellystä voi sen kanssa kehitellä vaiheittain tai pala palalta. Tätä voisi ajatella toteuttaa tuolla musci21:lläkin. Sillä voisi tehdä niitä työkaluja joihin syöttää omaa matskua, rutiinit sitten tuottaisivat halutunlaisia ehdotuksia, sitten viedään valittu ratkaisu oman sävellyksen nuotinnokseen ja jatketaan siellä hommia, kunnes taas halutaan ehdotuksia, taas sävellys työkaluun ja kysytään lisää ehdotuksia. Työ on vain hitaampaa kuin reaaliaikaisessa ohjelmassa jossa voi kirjoittaa nuotteja ja kontekstimenusta pyytää erilaisia ehdotuksia haluttuun kohtaan. Mutta näen tässä kaikenlaisia vaihtoehtoja ja välimuotoja sen sijaan että olisi kaksi ihan erilaista ratkaisua.
 
"Reaaliaikaisen" (oikeastaan väärä sana, koska sen helposti ymmärtää niin että se pystyy seuraamaan soittoa ja tekemään sen mukana ehdotuksia... sitä sentään en tarkoita) tekemisen vaikeus tai helppous riippuu myös täysin siitä mitä on mahdollista saada valmiina. Jos pystyisi vaikka yhdistämään nuotinnosohjelman ja music21:n niin että music21:llä tehtyjä ohjelmia voi käynnistää nuotinnosohjelmasta, niin se olisi siinä. Jotain tämmöistä ajattelin sillä plugariajattelulla. Esim. musescoreen on mahdollista tehdä plugineja, pitäisi katsoa mitä niillä on mahdollista tehdä.
 
Mutta harrastusprojektien toki mielellään pitää olla semmoisia, että ne tuottavat jotain toimivaa ja valmista tasaisin väliajoin, mielellään vähän joka päivä, että into pysyy yllä. Siinä mielessä se että vaikkapa tuon music21 pohjalta lähtee kokeilemaan komentoriviltä olisi minunkin valintani jos lähtisin tätä kehittelemään. Sitten kun toimivia palasia on koossa sopivasti, katsoisi mitä niistä sitten tekisi. Esim. kuinka ne saisi integroitua vaikkapa musescoreen.
 
PS. Täydensin vähän tuota "heikon interaktiivisuuden" työnkulun kuvausta tuossa.
 
Ja tuosta voi katsoa millaisia plugareita musescoreen on jo tehty http://musescore.org/plugins . Plugarit tehdään javascriptillä ja musescoressa on API jolla musescoren oliot ja toiminnot on käytettävissä. Vähän hankalammalta tuntuu plugarin UI-puoli. Musescore on tehty QT:llä joka pitäisi olla plugarienkin käytössä, mutta QT-rajapintaa javascriptin näkökulmasta ei ole dokumentoitu.
 
Mutta mä voisin kuvitella jo mielessäni kokonaisuuden, jossa nuotteja kirjoitetaan musescorella, plugarin avulla pyydetään ehdotuksia, plugari pyytää ehdotukset music21-pohjaiselta palvelulta jonka vastaukset plugari taas käsittelee musescoressa. Periaatteessa ihan mahdollinen arkkitehtuuri jonka osista valtaosa on olemassa. Mutta missä sen rajat tulisi vastaan, en osaa sanoa. Ja silti kannattaisi aloittaa niistä musan analysoinnin ja ehdotusten teon osista vaikka music21/python -pohjalta.
 
Tai sitten tekee koko homman javascriptilla, jos ei välttämättä tarvitse music21:n ominaisuuksia. Tuolla musescoren plugarien joukossahan on jotain tämäntapaisia. Check Harmony Rules, Create Chords ja Retrograde vaikka nyt esimerkiksi. Eli voidaan kirjoittaa ohjelmia jotka pääsevät käsiksi kirjoittettuun nuotinnokseen, näkevät mitkä nuotit on valittuna yms. Vilkaisin mitä tuo Retrogaden koodi on syönyt, eipä se kummoinen ollut. Tavallaan samantapaista hommaa kuin Wordin makrot. Harmoniantarkistus sitten jo menee mutkikkaammaksi ja sekavammaksi, kun ei ole sellaisia valmiita työkaluja kuin mitä music21:sta löytyisi.
 
PPS. Teknisemmän keskustelun jatkon voisi siirtää Keksijäin ja kokeilijain ryhmään?
 
huomasin tässä että mun klarinetinsoitto kuulostaa aika luonnonmukaiselta... lähinnä niinkuin sorsalta.. siksi siirryinkin haitariin
Nilern
25.03.2014 22:37:38
      Linkitä kirjoitukseen Tulosta  

Musescoren laajentaminen jotenkin vaikuttaisi yhdeltä ihan pätevältä ratkaisulta. Harmi että C++ ja javascript ovat hirveimmät vakavasti otettavat ohjelmointikielet mitä tiedän.
 
Toisaalta visioin jotain, mikä nimenomaan auttaisi tekemään niitä taiteellisia valintoja ja tämä voisi olla ihan työkalun ensisijainen tehtävä nuotintamisen tai sovituksen koekuuntelun sijaan. Olen nimittäin huomannut, että nykyisellään säveltäminen onnistuu paremmin paperilla kuin noilla työkaluilla koska nuotinvarsien tai saundien säätäminen on niillä niin paljon helpompaa ja kivempaa kuin sen ratkaiseminen, miten melodia harmonisoidaan.
 
PPS. Teknisemmän keskustelun jatkon voisi siirtää Keksijäin ja kokeilijain ryhmään?
 
Näin ajattelin tehdä kun palaan asiaan täällä seuraavan kerran. Minulla on mielessä aika erilaisia teknisiä ratkaisutapoja kuin tähän mennessä esiintulleet, mutta olen ajatellut 'raportoida' tuonne huoneeseen sitten kun olen vähän testaillut mitä niistä voisi tulla.
 
Klezberg
25.03.2014 23:25:44 (muokattu 26.03.2014 18:49:26)
Kotisivu Musiikkinäyte       Linkitä kirjoitukseen Tulosta  

Nilern:
Toisaalta visioin jotain, mikä nimenomaan auttaisi tekemään niitä taiteellisia valintoja ja tämä voisi olla ihan työkalun ensisijainen tehtävä nuotintamisen tai sovituksen koekuuntelun sijaan. Olen nimittäin huomannut, että nykyisellään säveltäminen onnistuu paremmin paperilla kuin noilla työkaluilla koska nuotinvarsien tai saundien säätäminen on niillä niin paljon helpompaa ja kivempaa kuin sen ratkaiseminen, miten melodia harmonisoidaan.

 
Joo... mulla taas kai päällimmäinen ajatus oli se että mun melodiat tahtoo aina mennä samoihin kaavoihin, joita mä haluaisin rikkoa, päästä vähän ulos laatikosta. Siinä ei välttämättä ole edes niin kysymys teorian hyödyntämisestä kuin sen tapaisista jutuista kuin jossain luovan ongelmanratkaisun tekniikoissa.
 
Mutta en mäkään sävelmiä koneen ääressä tee, vaan soitin kädessä, piano, kitara tai haitari. Että ehkä tuo minunkin esittämä työnkulku oli enemmän tuommoinen hypoteettinen kehitelmä. Ehkä siinä kuitenkin oli jujuna se kysymys kuinka sen olemassa jo olevan työn konteksti siirretään sille työkalulle. Sulla paperilta, mulla äänitteeltä?
 
Näin ajattelin tehdä kun palaan asiaan täällä seuraavan kerran. Minulla on mielessä aika erilaisia teknisiä ratkaisutapoja kuin tähän mennessä esiintulleet, mutta olen ajatellut 'raportoida' tuonne huoneeseen sitten kun olen vähän testaillut mitä niistä voisi tulla.
 
Mä meinasin jo alkaa leikkimään music21:n kanssa. Keräsin matskua midimuodossa jotka saa luettua korpukseksi, mutta en sitten jaksanut perehtyä kuinka olisin sitä voinut soveltaa siihen mitä mulla oli mielessä. Olisi pitänyt alkaa oikeasti miettiä ja koodata, ja nyt ei ollut siihen oikea hetki. (PS. se mitä ajattelin kokeilla oli käyttää n-gram:ja http://en.wikipedia.org/wiki/N-gram niin että analysoin melodioita ja sitä kautta haen keinoja päästä eteenpäin vakiojutuistani. Aloin nyt vähän tutkiskella sen toteutusta, alkaa aukenemaan, voin siitäkin sitten raportoida siellä huoneessa.)
 
Lisäys: Tuo n-gram -homma sitten selkisi ja lähti toimimaan. Parikymmentä riviä python-koodia ja luen sisään kaikki miditiedostot yhdestä hakemistosta (oletuksena että kaikki valmiiksi samassa sävellajissa), puran ne n sävelen sarjoiksi ja lasken kunkin sarjan esiintymiskerrat. Nyt voisi sitten katsoa mihin tuota tietoa voisi käyttää. Esimerkiksi niin että kun annetaan vaikka 2 tai 3 säveltä, löytyy aineiston perusteella ehdotuksia seuraavaksi säveleksi painokertoimineen. Pitemmän päälle olisi tietysti oleellista ottaa myös harmonia yms. huomioon, mutta tämä on nyt pientä kokeilua vain.
 
huomasin tässä että mun klarinetinsoitto kuulostaa aika luonnonmukaiselta... lähinnä niinkuin sorsalta.. siksi siirryinkin haitariin
« edellinen sivu | seuraava sivu »
1 2

» Lisää uusi kirjoitus aiheeseen (Vaatii kirjautumisen)

Keskustelualueet «
Haku tästä aiheesta / Haku «
Säännöt «