Aihe: Sointujen relaatio ja biisien kaavat
1 2 3 4 5 6 7
JPQ
01.11.2009 01:16:36 (muokattu 01.11.2009 01:16:50)
 
 
Sekin kiinnostava ohjelma jonka joskus koodasin että oli melodian pätkiä jotka sopii nätisti yhteen josta kone arpoi vaikka 10 perätysten. mutta nämä hienommat jutut on toki paljon kiinnostavampia.
Laajan musiikkityylien kirjon edustaja. Tähän asti kehutuin kappale musiikki näytteessä download linkkinä. Ehkäpä toinen puolisko tyylistäni jota eniten edustan.
Klezberg
01.11.2009 11:20:18 (muokattu 01.11.2009 12:01:04)
 
 
levesinet:
Aaargh. Alan kallistua proseduraaliseen reseptiin, missä probabilististen uudelleenkirjoitussääntöjen näppärällä syntaksilla on rajallinen rooli. Valitettavasti.
 
Soinnut valitsen ennen synkopointia. Tämä tarkoittaa, että melodia valmistuu myöhemmin kuin soinnutus. Se voi kyllä johtaa jotenkin improvisoidun kuuloisiin melodioihin. Ennakoin, että kauniiden melodioiden tuottaminen on erittäin kovan työn takana. Täytyy vielä lueskella jotain äänenkuljetuksen teoriaa.

 
Mä aloin nyt tätä lukiessa ajatella semmoista "proseduuria" jossa edetään karkeasti:
rakenne -> harmonia (soinnut) -> soiva säestys (nuotit -> synkopointi) -> melodian kulku -> soiva melodia . Kaikki vaiheet näkevät edellisten lopputuloksen ja mukautuvat siihen. Kukin vaihe voi perustua sekä sääntöihin että patterneihin.
 
Tosin tuosta herää valtavasti lisäpohteita, varsinkin sen suhteen kuinka paikallisesti versus laajalti kukin vaihe käyttää jo generoitua aineistoa. Ja Levesinetin pohteista havaitsen myös, että rakenne voi oikeastaan olla silmukka jossa b-osan loppua seuraa a-osan alku tms.
 
Oma koodaukseni pysähtyi nyt hetkeksi etsiskelyyn. Löysin valmista rubykoodia mm. juuri tuollaisten patternien käsittelyyn, tai siis siihen että pattern muutetaan nuoteiksi. Sen sijaan tuo soivan lopputuloksen generointi nyt kanittaa, tuossa kokeilussa käyttämäni midikirjasto ei pysty soittamaan useampaa itsenäistä linjaa, täytyy etsiä toinen ratkaisu. Yksi houkutteleva malli olisi generoida musicXML:ää, silloin lopputuloksen saa tarpeesta riippuen siirrettyä nuotinnusohjelmaan, sekvensseriin ja kaipa löytyy musicXML:ää ymmärtäviä softasyniakin.
 
Edit: Jatkoin pikkuisen tuolla softanpätkällä leikkimistä. Rubyssä on ohjelmointikielenä semmoinen hauska piirre, että sillä pystyy tekemään harvinaisen luettavaa koodia tyyllin:
 
accompany_one_bar_with notes_in random_chord_of 'domin'
 
Tuossa:
random_chord_of valitsee yhden soinnun sallitujen vaihtoehtojen joukosta
notes_in muuntaa sen listaksi nuotteja
accompany_one_bar_with soittaa yhden tahdin säestystä annetuilla nuoteilla
 
Tosin pystyy myös tekemään ihan käsittämättömän näköistä jälkeä.
 
Musiikillisesti tästä jo näkee (mikä toki oli selvää jo aluksikin) että ketjun alussa kuvattu kieliioppi tuottaa melkoisen mielivaltaiselta kuulostavaa sointukulkua, koska se ei synnytä juuri minkäänlaista rakennetta ja koska se ei tee eroa sointujen välillä yhden kategorian sisällä.
huomasin tässä että mun klarinetinsoitto kuulostaa aika luonnonmukaiselta... lähinnä niinkuin sorsalta
levesinet
01.11.2009 12:01:50 (muokattu 01.11.2009 15:25:06)
Klezberg: Mä aloin nyt tätä lukiessa ajatella semmoista "proseduuria" jossa edetään karkeasti:
rakenne -> harmonia (soinnut) -> soiva säestys (nuotit -> synkopointi) -> melodian kulku -> soiva melodia . Kaikki vaiheet näkevät edellisten lopputuloksen ja mukautuvat siihen. Kukin vaihe voi perustua sekä sääntöihin että patterneihin.

 
Juuri tämäntyyppistä vaiheistusta olen ajatellut, tosin rupean jo kyseenalaistamaan joitakin ideoitani. Nimittäin niiltä osin kuin homman voi tehdä lopullisten tahtien mukaisessa järjestyksessä, niin siihen rakentamisjärjestykseen kannattanee pyrkiä.
 
rakenne -> harmonia (soinnut)
 
Olen samaa mieltä ainakin näistä ensimmäisistä vaiheista. Rupesinkin jälleen miettimään soinnutusalgoritmeja.
 
Voisi luetella monia toonikan ympärillä pyöriviä sointukulkuja ja vakiintuneita kadensseja. Toisaalta voisi olla luovempia soinnutusalgoritmeja, joille annetaan parametreina ensimmäinen ja viimeinen sointu tai aloittava ja lopettava sävelasteikko - bossanovassa moduloidaan paljon, siitä tämä ajatus. Algoritmi sitten etsisi tapoja liikkua sävellajista toiseen.
 
Tosin tuosta herää valtavasti lisäpohteita, varsinkin sen suhteen kuinka paikallisesti versus laajalti kukin vaihe käyttää jo generoitua aineistoa.
 
Nimenomaan. Äkkiseltään vaikuttaa siltä, että ensin voi tehdä vain kokeiluja yrittämättä toistaa muotoja tai ainakin enimmäkseen unohtaa muotojen varioinnin. Liian haastavaa ajateltavaksi alkuvaiheessa.
 
Yksi houkutteleva malli olisi generoida musicXML:ää, silloin lopputuloksen saa tarpeesta riippuen siirrettyä nuotinnusohjelmaan, sekvensseriin ja kaipa löytyy musicXML:ää ymmärtäviä softasyniakin.
 
Kuulostaa lupaavalta. En ole kunnolla tutustunut musicXML:ään, vaikka olen tiennyt moisen kuvauskielen olemassaolosta.
 
accompany_one_bar_with notes_in random_chord_of 'domin'
Vau, tehokasta funktionaalista ohjelmointia!
levesinet
01.11.2009 12:05:10 (muokattu 01.11.2009 12:26:33)
Bossa novan kaavat: kromaattiset rinnakkaiset kvintit
 
Tässä tekniikassa perussoinnut ovat tyyppiä
Xmaj7 tai Xm7 tai Xm9
Aidossa 50-luvun lopun ja 60-luvun alkupuolen bossa novassa on selvästi tavallisempaa soinnuttaa duurisävytteisesti. Sointukulut muistuttavat paikoin ellingtonilaista jazzia. Mutta bossa novan jälkeen kehittyi MPB, joka otti vaikutteita taiderockista ja kehitti harmoniaakin banaalimpaan suuntaan. Jo 60-luvun puolella huomaamme, että bossanovasta innostuneessa Italiassa sovittajat tekivät rohkeita kokeiluja mm. kuljettamalla rinnakkaisia kvinttejä kromaattisesti.
 
Bossanovassa -nyt käytän termiä taas väljemmin, ajatellen, että genre elää yhä- ääniä kuljetellaan kromaattisesti alaspäin useammin kuin ylöspäin.
 
Rinnakaiskvinttejä on ollut tapana välttää klassisessa musiikissa varsinkin barokin ja klassismin aikoina. Ilmiö yhdistettiin vanhempaan tyyliin, mm. gregoriaaniseen lauluun, ja ainakin silloin se koettiin latteaksi ja arkaaiseksi polyfonian tekniikaksi.
 
Nyt 2000-luvulla harmonian perusta on toisenlainen kuin barokkiin tultaessa, koska käytämme tasavireistä järjestelmää, missä kvintti soi tavallaan yhtä puhtaasti sijoitettuna mihin tahansa kohtaan tasavireisessä 12-sävelasteikossa.
 
Kuten sanottu, duuribiisin tonaalisessa keskuksessa on useimmiten sointu ?maj7 ja se on usein luontevaa laajentaa maj9:ksi, jos ei heti, niin ehkä kerrattaessa biisissä myöhemmin esiintyvä samanlainen kohta.
 
Konsonantin duurisoinnun terssipinoa rakennetaan seuraavasti alhaalta ylöspäin: perussävel, iso terssi, pieni terssi, iso terssi, pieni terssi... Iso ja pieni vuorotellen. Siis
C, Cmaj7, Cmaj9, joskus jopa Cmaj9/#11, mihin jo sisältyy tritonus (tai oktaavi+tritonus tms.).
Toki sointuja pitää hajauttaa ja käännellä jonkin verran. Usein vaihtoehtona on myös C6/9-sointu, joka ei perustu terssipinoon.
 
Mollisoinnut kasvavat pykälää laajemmiksi konsonansseiksi: perussävel, pieni terssi, iso terssi, pieni terssi, iso terssi... Siis
Cm, Cm7, Cm9, Cm9/11
Tosiaan mollissa pääsemme kuusisäveliseen sointuun, johon ei vielä sisälly dissonanttia tritonusta.
 
Kun haluamme heikentää soinnun vihjaamaa toonista keskusta ja kasvattaa jazzahtavuutta, on mahdollista sijoittaa basso (kuvitellun kääntämättömän soinnun) ensimmäisen ison terssin keskelle, esimerkiksi:
Fmaj7 -> Fmaj7/G
tai
Dm7 -> Dm7/G
 
Tämä ajattelu toimii ainakin, kun improvisoi rinnakkaisia kvinttejä ja modulaatioita koskettimilla. Toisaalta on hyvä tietää, että esim. tuo Dm7/G on sama asia kuin G9sus4, mitä voi käyttää V asteen dominanttifunktioisena ja siirtyä Cmaj'hin.
 
- - -
 
Sitten itse asiaan eli sointukulkujen tekemiseen. Tämä on vain yksi tekniikka. Bossa novassa tai MPB:ssä vähintään yhtä ratkaisevaa on rytmi.
 
Käytämme vähintään nelisointuja (maj7, m7), joihin sisältyy vähintään kaksi kvinttiä, joskin käytännössä limittäin. Voimme lähteä liikkeelle mollista tai duurista.
Esimerkiksi Cmaj7-soinnussa on kaksi kvinttiä: (c g) ja (e h).
Cm9-soinnussa on kolme kvinttiä: (c g) ja (es b) ja (g d).
Seuraava sointu valitaan niin, että ainakin yksi kvintti siirtyy puoli sävelaskelta alaspäin tai puoli sävelaskelta ylöspäin.
 
Esimerkkejä:
Cmaj7 | Cm7 -- (e h) -> (es b)
Cmaj7 | Abmaj9 -- (e h) -> (es b)
Cm7 | Abm7 -- (c g) -> (ces ges)
Cm7 | Em7 -- (es b) -> (e h)
 
Cmaj7 | Abmaj9 | Cmaj9 | Cm9/F |
F#maj7 | Amaj7/H | Emaj9 | Gmaj7/A |
F#maj7 | Ebmaj9 | Hmaj9/#11 | Cmaj9/#11 Cm9/11/F |
Ebm9...
 
Tällaisia kun alatte soveltaa, niin rupean fanittamaan. 8)
Klezberg
01.11.2009 12:36:46 (muokattu 01.11.2009 12:38:11)
 
 
levesinet:
Sitten itse asiaan eli sointukulkujen tekemiseen. Tämä on vain yksi tekniikka. Bossa novassa tai MPB:ssä vähintään yhtä ratkaisevaa on rytmi.
 
Käytämme vähintään nelisointuja (maj7, m7), joihin sisältyy vähintään kaksi kvinttiä, joskin käytännössä limittäin. Voimme lähteä liikkeelle mollista tai duurista.
Esimerkiksi Cmaj7-soinnussa on kaksi kvinttiä: (c g) ja (e h).
Cm9-soinnussa on kolme kvinttiä: (c g) ja (es b) ja (g d).
Seuraava sointu valitaan niin, että ainakin yksi kvintti siirtyy puoli sävelaskelta alaspäin tai puoli sävelaskelta ylöspäin.

 
Eli tämä on täysin erilainen tekniiikka kuin tuo sointuasteisiin ja sointuja vastaaviin symboleihin perustuva malli jota kokeilin. Tässä lähdetään soinnuista intervalleina ja nuotteina. Valitaan perussävel ja sitten muodostetaan sille kahdesta kvintistä koostuva sointu. Sinulla on nyt tuossa yksi sääntö seuraavan soinnun valintaan, tarvitaanko vielä jokin muu sääntö siihen? Soinnun oltava noita tiettyjä tyyppejä? (En ehdi/jaksa tässä ajatella syntyjä syviä kun mietin toteutusta...)
huomasin tässä että mun klarinetinsoitto kuulostaa aika luonnonmukaiselta... lähinnä niinkuin sorsalta
levesinet
01.11.2009 12:56:47 (muokattu 01.11.2009 12:58:53)
Klezberg: Eli tämä on täysin erilainen tekniiikka kuin tuo sointuasteisiin ja sointuja vastaaviin symboleihin perustuva malli jota kokeilin.
 
Suhtaudun asteajatteluun varauksella. Ehkäpä koen valaistumisen, kun rupean pähkimään periaatetta, jolla sävelasteikot valitaan.
 
Klezberg: Tässä lähdetään soinnuista intervalleina ja nuotteina. Valitaan perussävel ja sitten muodostetaan sille kahdesta kvintistä koostuva sointu. Sinulla on nyt tuossa yksi sääntö seuraavan soinnun valintaan, tarvitaanko vielä jokin muu sääntö siihen? Soinnun oltava noita tiettyjä tyyppejä? (En ehdi/jaksa tässä ajatella syntyjä syviä kun mietin toteutusta...)
 
Hahaa, mulla ei ole mikään kiire koodaamaan. Mutta nyt kun algoritmisesta sävellysmenetelmästä on päässyt ylipäänsä keskustelemaan jonkun kanssa, mistä olen erittäin kiitollinen, niin suhtaudun sääntöjen ja teorioiden keksimiseen uudenlaisella ponnella. Toisin sanoen teoriani ovat hakusessa. Silmiinpistävää sarjassa
F#maj7 | Amaj7/H | Emaj9 | Gmaj7/A |
on basson kulku kvarttiympyrässä (kvinttiympyrässä) eli perinteinen teoria pätee. Tuon voisi kirjoittaa myös:
F#maj7 | H9sus4/13 | Emaj9 | A9sus4/13 |
Kysymys kuuluu: tuoko teoriani jotain uutta ja oikeasti pätevää vanhaan verrattuna? Ainakin se vastaa pitkälti tapaa, jolla improvisoin harmoniaa. Enimmäkseen en käytä sointukäännöksiä, joten tuo paljastaa suoraan äänenkuljetukseni!
 
Mutta lisää ja erilaisia sääntöjä tarvitaan, erityyppisiä sointuja. Monen monta sointukulkua on luontevaa ilmaista patterneina ja niiden välisinä siirtyminä.
 
Selvää on, että esittämäni yleinen sääntö kannattaa purkaa auki vaihtoehtoisiksi siirtymiksi ja arvioida kaikki kahden peräkkäisen soinnun kombinaatiot ja niiden todennäköisyydet.
Klezberg
01.11.2009 13:13:39 (muokattu 01.11.2009 13:15:51)
 
 
levesinet:
Selvää on, että esittämäni yleinen sääntö kannattaa purkaa auki vaihtoehtoisiksi siirtymiksi ja arvioida kaikki kahden peräkkäisen soinnun kombinaatiot ja niiden todennäköisyydet.

 
Itse olin vasta miettimässä, kannattaisiko tuo malli toteuttaa
 
a) nuotti/intervalli -pohjalta, niin että koko ajan operoidaan kvinteillä joita on kaksi tai kolme, ja säännöillä joiden perusteella siirretään tiettyä kvinttiä ja mahdollisesti lisätään/poistetaan kvintti.
 
b) säännöstöllä, joka ohjaa perussävelen ja sointutyypin välisiä siirtymiä
 
B on helpompi toteuttaa mutta säännöt pitää laatia ensin. Jos saat ne aikaan niin voisin koettaa toteuttaa, ei pitäisi olla vaikea homma. Sääntö olisi muotoa:
 
sointutyyppi => perussävelen siirtymä, sointutyyppi
 
(esim. 'm7' => -3, 'maj7' )
 
tai
 
sointutyyppi => alimman sävelen siirtymä, sointutyyppi
 
Tuo jälkimmäinen todennäköisesti tuottaisi parempaa äänenkuljetusta ilman että siitä pitäisi erikseen huolehtia. Tai siis oikeastaan tässä on kätkettynä se ajatus että aluksi en ota ollenkaan huomioon käännöksiä. Jos ne haluaa mukaan, pitää ne lisätä sääntöihin molemmille puolille.
 
Taidanpa nyt jo odotellessa lisätä tuohon koodiin noita tarvittavia sointuja.
huomasin tässä että mun klarinetinsoitto kuulostaa aika luonnonmukaiselta... lähinnä niinkuin sorsalta
levesinet
01.11.2009 13:22:12
sointutyyppi => perussävelen siirtymä, sointutyyppi
Juuri näin olen ajatellut. Ja hienommassa mallissa voisi vielä syöttää perään tietoa, joka vaikuttaa todennäköisyyteen, jolla sääntöä sovelletaan.
Klezberg
01.11.2009 13:30:32 (muokattu 01.11.2009 14:20:38)
 
 
levesinet: Juuri näin olen ajatellut. Ja hienommassa mallissa voisi vielä syöttää perään tietoa, joka vaikuttaa todennäköisyyteen, jolla sääntöä sovelletaan.
 
Tuollahan taitaakin sitten jo voida kokeilla mallintaa vähän kaikenlaista :-) Sitten kun vielä tekee säestyksen patternit (tai aluksi edes yhden joka on käyttäjän määriteltävissä).
 
Hankipa jostain ruby itsellesi. Tässähän on macciriippuvaa nyt vain tuo midllä soittaminen. Tämän voisi laittaa generoimaan midifilea vaikka.
 
Edit: midifilen generointi onnistuu jo, tosin ensiyrittämällä kaikki nuotit menivät peräkkäin, nekin joiden piti soida yhtaikaa. Ihan jännä lopputulos sekin...
huomasin tässä että mun klarinetinsoitto kuulostaa aika luonnonmukaiselta... lähinnä niinkuin sorsalta
Klezberg
01.11.2009 15:22:37
 
 
levesinet:
Klezberg, tarvittaisiin vain vähän lisää logiikkaa, niin että säännöistä ei voi valita sellaisia, jotka siirtäisivät soinnun liian korkeaan tai alhaiseen rekisteriin. Kun ollaan ajautumassa ylös, ei valita +6 tai +5... Hmm...
 
'm9' => -6, 'maj7'
 
Tai vielä parempi: miinustat 12 noista +6 ja +5 tai plussaat 12 noihin -6 ja -5 siirtymiin.
 
Valmiiksi soinnutettu on melkein puoliksi sävelletty! 8-)

 
Sinne lienee helppo tehdä rajoitus että jos ollaan siirtymässä liian kauas, lisätään tai vähennetään oktaavi.
 
Nuo säännöt ovat muuten harmillisen lähellä valmista muotoa ohjelmalle mutta vaativat kuitenkin käsityötä.
 
Tällä hetkellä tappelen kuitenkin edelleen sen ongelman kanssa, miten saan miditiedostoa synnyttävän kirjaston tajuamaan että haluan tiettyjen nuottien soivan yhtaikaa. Se kun tuntuu askeltavan aikaa jokaisen raidalle laitetun nuotin verran eteenpäin. Enkä haluaisi jakaa sointuja usealle raidalle.
huomasin tässä että mun klarinetinsoitto kuulostaa aika luonnonmukaiselta... lähinnä niinkuin sorsalta
levesinet
01.11.2009 15:32:31
Klezberg: Sinne lienee helppo tehdä rajoitus että jos ollaan siirtymässä liian kauas, lisätään tai vähennetään oktaavi.
Jep.
 
Nuo säännöt ovat muuten harmillisen lähellä valmista muotoa ohjelmalle mutta vaativat kuitenkin käsityötä.
Väliin lisäämäni kommentit ovat arvokkaita sellaista algoritmia varten, jota pyydetään generoimaan modulaatiot ja kadenssi tietystä sävellajista toiseen. Kaikki siirtymät eivät ole riittävän dominanttifunktioisia. Testit osoittavat, kuulostavatko noilla säännöillä tuotetut sointukulut siedettäviltä nimenomaan modulaatioihin vai pitääkö melkein kaikki soinnutussäännöt tehdä monen peräkkäisen soinnun tai sointuasteen patterneina. Monen soinnun patterneja kyllä tarvitaan.
Klezberg
01.11.2009 15:37:26 (muokattu 01.11.2009 15:50:54)
 
 
Tällä ei ole vielä mitään tekemistä uuden säännöstösi kanssa(edelleen tonic/subdom/domin -säännöstö jossa Maj7 ja Maj9 -sointuja mukana), mutta kun tässä tappelen yrittäessäni ymmärtää miten tuon midilibin kanssa hanskataan aika, niin tässä ensimmäinen tuotos jossa sävelet alkavat soida yhtaikaa, joskaan ei alkuunkaan niinkuin oli tarkoitus. Käynee jonkinlaisesta kevennyksestä tässä: http://htoyryla.dyndns.org/music/generated.mid
 
Edit: Täyty laittaa vielä toinen esimerkki http://htoyryla.dyndns.org/music/generated2.mid
Tämä alkaa lähestyä uutta tietokonesynnytteisen musiikin lajia: "composing by software bugs".
huomasin tässä että mun klarinetinsoitto kuulostaa aika luonnonmukaiselta... lähinnä niinkuin sorsalta
Klezberg
01.11.2009 16:35:03
 
 
No nyt tuo perusongelma on ratkaistu ja tämä ohjelma http://htoyryla.dyndns.org/music/generi.rb generoi sääntöpohjaisesti sointusäestystä. Säännöt ovat edelleen ne sointuastepohjaiset. Esimerkki-output: http://htoyryla.dyndns.org/music/generated3.mid .
 
Katson vielä illan mittaan noita uusia sääntöjä, viikolla täytyy keskittyä leipätyöhön.
huomasin tässä että mun klarinetinsoitto kuulostaa aika luonnonmukaiselta... lähinnä niinkuin sorsalta
Klezberg
01.11.2009 18:08:59 (muokattu 01.11.2009 18:39:11)
 
 
No nyt on tuosta ensimmäinen kokeiluversio olemassa:
 
itse ohjelma:
http://htoyryla.dyndns.org/music/generib.rb
säännöstö:
http://htoyryla.dyndns.org/music/rules.rb
ääniesimerkki:
http://htoyryla.dyndns.org/music/generated4.mid
 
Tuo alkaisi jo kaivata hiukan svengaavamman rytmin. Tuosta puuttuu vielä se driftin esto. Ja noissa soinnuissakin voi olla virheitä, en katsonut tuleeko kaikki m7, m9 yms oikein.
 
Tuon pitäisi toimia windowsissakin, tarvitaan vain ruby ja sille midilib.
 
Edit: lisäsin tuon ryömimisen eston, päivitin linkkien taakse sen mukaiset versiot ja näytteet. Nyt häivyn lenkille ja saunaan.
 
Outputtia sointumerkinnöillä:
CMaj7, Dm7, F#m9, C#Maj9, CMaj9, Cm7, Dm7, D#Maj7, DMaj7, Em9, BMaj9, A#Maj9, AMaj7, G#Maj7, AMaj9, A#Maj9, GMaj9, G#Maj7, G#m9, GMaj9, Gm7, G#Maj9, AMaj9, F#Maj7, FMaj9, G#Maj9, FMaj7, Fm9, EMaj9, AMaj7, DMaj9, C#Maj9
 
Midisoundeja voi kukin vaihtaa itsekin, mutta tässä valmiiksi kitaralla:
http://htoyryla.dyndns.org/music/generated5.mid
huomasin tässä että mun klarinetinsoitto kuulostaa aika luonnonmukaiselta... lähinnä niinkuin sorsalta
levesinet
01.11.2009 18:44:28 (muokattu 04.11.2009 21:07:50)
Klezberg: Outputtia sointumerkinnöillä:
CMaj7, Dm7, F#m9, C#Maj9, CMaj9, Cm7, Dm7, D#Maj7, DMaj7, Em9, BMaj9, A#Maj9, AMaj7, G#Maj7, AMaj9, A#Maj9, GMaj9, G#Maj7, G#m9, GMaj9, Gm7, G#Maj9, AMaj9, F#Maj7, FMaj9, G#Maj9, FMaj7, Fm9, EMaj9, AMaj7, DMaj9, C#Maj9

 
Loistavaa! Tuo on jopa miellyttävämpää kuin mitä ennakoin, ainakin omille korvilleni, kun soitan kunnon jousisaundeilla ja luontevasta oktaavista. Valitettavasti joudun huomenna luopumaan ykköskeyboardistani joksikin aikaa.
 
Olen alkanut miettiä melodian sävelasteikkoja. Nuo maj7- ja m7-pohjaiset soinnut määräävät melko tarkkaan sävelasteikon, mutta poikkeuksia nyrkkisääntöön löytyy. Ja ne poikkeukset kaipaavat yllättävän paljon tutkimusta.
 
Edit: lisäsin tuon ryömimisen eston, päivitin linkkien taakse sen mukaiset versiot ja näytteet. Nyt häivyn lenkille ja saunaan.
Kiitoksia antoisasta viikonlopusta!
Klezberg
01.11.2009 19:54:19 (muokattu 01.11.2009 20:20:25)
 
 
levesinet: Loistavaa! Tuo on jopa miellyttävämpää kuin mitä ennakoin, ainakin omille korvilleni, kun soitan kunnon jousisaundeilla ja luontevasta oktaavista.
 
Kokeilin laittaa tuon suoraan käyttämään jousisoundia, mutta tämän läppärin oletussyntikan jousisoundi käyttäytyi vähän oudosti.
 
Lueskelin vielä noita aiempia juttuja, ja huomasin että sinulla oli siellä ajatus bassosävelestä joka oli minulta jäänyt huomaamatta. Nyt tämä soittaa sen perussävelen bassona. Samaten ei (tietenkään) ole mitenkään huomioitu sääntöihin kirjaamiasi huomautuksia.
 
Tuli tuossa saunoessa semmoinen idea, että jospa säännöstö olisikin dynaaminen. Säännön laukeaminen voi lisätä uuden säännön, jolla on elinikä n tahtia. Yhdistettynä siihen että säännölle voisi antaa painoarvon, tuolla voisi saada satunnaisuuden sijaan tiettyä itseohjautuvuutta.
 
Edit: Sääntöjen ehtopuolella voisi vielä olla tahdin numeroon liittyvä ehto (pienempi kuin, suurempi kuin, =, modulo), jolla saataisin eräänlaista rakenteellisuutta: taipumusta 4 tahdin rakenteisiin, tiettyjä juttuja alkupuolella, loppupuolella pyrkimystä kohti tiettyä sävellajia... Jotenkin ottaisin vielä mukaan sointuasteetkin.
huomasin tässä että mun klarinetinsoitto kuulostaa aika luonnonmukaiselta... lähinnä niinkuin sorsalta
levesinet
01.11.2009 20:08:51 (muokattu 01.11.2009 20:20:20)
Klezberg: Lueskelin vielä noita aiempia juttuja, ja huomasin että sinulla oli siellä ajatus bassosävelestä joka oli minulta jäänyt huomaamatta. Nyt tämä soittaa sen perussävelen bassona. Samaten ei (tietenkään) ole mitenkään huomioitu sääntöihin kirjaamiasi huomautuksia.
Tiedän, OK.
 
Tuli tuossa saunoessa semmoinen idea, että jospa säännöstö olisikin dynaaminen. Säännön laukeaminen voi lisätä uuden säännön, jolla on elinikä n tahtia. Yhdistettynä siihen että säännölle voisi antaa painoarvon, tuolla voisi saada satunnaisuuden sijaan tiettyä itseohjautuvuutta.
 
Lupaava idea. Tuo kuulostaa hillitymmältä kuin se, mitä itse tuumiskelin aamupäivällä: että jokaisen säännön perässä lukisi jonkin aliohjelman nimi, ja aliohjelma suoritettaisiin ja pääsisi käsiksi kaikkiin globaaleihin muuttujiin jne. En ehdota sitä vielä vakavissani. Ideasi on tosiaan hallitumpi ja se kehittää kuvauskieltä.
 
Entäs trigger- eli listener-tekniikka? Noh, mietin nyt sävelasteikkoja ja siinä menee vielä pitkä aika.
 
Edit: Sääntöjen ehtopuolella voisi vielä olla tahdin numeroon liittyvä ehto (, =, modulo), jolla saataisin eräänlaista rakenteellisuutta: taipumusta 4 tahdin rakenteisiin, tiettyjä juttuja alkupuolella, loppupuolella pyrkimystä kohti tiettyä sävellajia... Jotenkin ottaisin vielä mukaan sointuasteetkin.
 
Kyllä. Sambassa kaksi peräkkäistä tahtia muodostavat kokonaisuuden, samoin 4 tai 8 tai 16 tahtia muodostavat kokonaisuuden. Jotkut jutut hoituvat patterneilla, muoteilla, jotka tehdään 2 tai 4 tai 8 tai 16 tahdin pituisiksi, mutta toisaalta tarvitaan tieto, mihin kohtaan minkäkinlainen patterni soveltuu. Näihin sääntöihin tulee suuria genrekohtaisia eroja.
Klezberg
01.11.2009 20:35:08 (muokattu 01.11.2009 20:39:03)
 
 
levesinet:
Lupaava idea. Tuo kuulostaa hillitymmältä kuin se, mitä itse tuumiskelin aamupäivällä: että jokaisen säännön perässä lukisi jonkin aliohjelman nimi, ja aliohjelma suoritettaisiin ja pääsisi käsiksi kaikkiin globaaleihin muuttujiin jne. En ehdota sitä vielä vakavissani. Ideasi on tosiaan hallitumpi ja se kehittää kuvauskieltä.

 
En näe tuossa välitöntä hyötyä. Pitäisi ensin olla jotakin musiikillisesti merkittävää dataa jota voisi käyttää noissa aliohjelmissa. Aliohjelmat voisivat sitä toki itse luoda, mutta menee helposti sekavaksi.
 
Entäs trigger- eli listener-tekniikka? Noh, mietin nyt sävelasteikkoja ja siinä menee vielä pitkä aika.
 
Jotain semmoista että generoitu tahti voi ilmoittaa itsestään vaikkapa edelliselle tahdille joka voi kirjoittaa itsensä uusiksi ja tarvittaessa kertoo tästä taas edelleen. Itse asiassa juuri mietinkin, että sääntöjen dynaamisuudella voidaan vaikuttaa jäljempänä tuleviin tahteihin, mutta entä taaksepäin. Ihan niin yksinkertaiset asiat kuin soinnun muuntaminen tahdin lopussa ennakoimaan seuraavan tahdin sointua.
 
Tässä toki nousee kysymys, miten määritellään miten tahti käyttäytyy saadessaan tuommoisen viestin. Tarvitaanko nyt se aliohjelma? Silti, tuommoinen käyttäytyminen pitäisi voida määritellä musiikillisesti mielekkäällä tavalla eikä kirjoittamalla ruby-metodeja. Jotenkin tuntuu, että tuommoiset "aliohjelmat" olisivat sääntöjä nekin. Kun säännöstö alkaa tukea monipuolisia ehtoja, kyseessä alkaa olla musiikillinen ohjelmointikieli.
huomasin tässä että mun klarinetinsoitto kuulostaa aika luonnonmukaiselta... lähinnä niinkuin sorsalta
levesinet
01.11.2009 21:54:08 (muokattu 01.11.2009 22:10:57)
Klezberg: Mutta säännöstöhän voisi generoida paitsi sointusarjaa, myös sarjaa patterneja, kun joukko patterneja on annettuna. Ja sen päälle vielä melodiaa.
 
Nyt kun ehdotit mahdollisuutta ilmoittaa jo perustetuille tahdeille tietoja rakenteilla olevista kokonaisuuksista, niin että esimerkiksi edellinen tahti voi sisällöllisesti mukautua seuraavaan tahtiin, niin alan kuvitella, että melodian kulkua ja soivaa säestystä ja mahdollisesti muutakin voisi generoida työn alla oleviin tahteihin yhdellä ja samalla pyyhkäisyllä. Toisin sanoen, ehkei tarvita monta täysin erillistä työvaihetta, joissa aluksi aina tarkasteltaisiin edellisen vaiheen tuottamaa lopputulosta kokonaisuutena.
 
Sitä paitsi loogisista rakenteista huolimatta musiikki on ennen kaikkea dynaaminen prosessi, joka etenee ajassa. Olen joskus silmäillyt teorioita, joissa sävellyksen rakennetta ajatellaan täysin hierarkkisena puurakenteena, mutta luulen, että dynaaminen lähestymistapa osoittautuu loppupeleissä joustavammaksi ja hedelmällisemmäksi.
 
Kun samban neljä ekaa tahtia on generoitu, biisissä ei tapahdu enää mitään, mikä johtaisi siihen, että niitä tahteja joutuisi korjaamaan. Ainoana poikkeuksena seuraavan tahdin rytmi ja sointu/sävelasteikko, joka mukauttaa tahtia 4 ja useimmiten vain sen loppupuolta.
 
Sitten tulee mieleen, että todennäköisyyksien lisäksi voidaan luoda eri säännöille prioriteetteja, niin että korkeamman prioriteetin sääntö ohittaa aina alemman prioriteetin säännön. Alemman prioriteetin säännöt pätevät, kun ylemmän prioriteetin sääntöjen esiehdot eivät täyty. Valinta samalla prioriteetilla kirjattujen sääntöjen kesken perustuisi sitten sattumaan ja sääntökohtaisiin todennäköisyyskertoimiin.
 
EDITtejä.
Lisää uusi kirjoitus aiheeseen (vaatii kirjautumisen)