Eli löysin tällaisen sivuston johon on kerätty kansansävelmiä eräänlaiseen ASCII-pikakirjoitus muotoon.
http://www.esac-data.org/Nyt haluaisin muuttaa niitä jotenkin kätevästi Lilypondin ymmärtämään muotoon, jotta voin tehdä niistä nuotteja.
Tässä on esimerkki EsAC-muotoisesta sävelmästä:
KEY[A0014 08 E 4/4]
MEL[-5-5-5 1_.23b_2_ 1__0
555 4_.45_4_ 3b__0 //] >>
Tässä sama Lilypondille käännettynä:
\time 4/4
g8 g8 g8 c'4. d'8 ees'4 d'4 c'2 r8
g'8 g'8 g'8 f'4. f'8 g'4 f'4 ees'2 r8
Eli otetaan KEY-rivin viimeinen "4/4" tahtilajimerkintä ja muutetaan se Lilypondin "\time 4/4" muotoon.
Sitten muutetaan MEL-osion numerot säveliksi, siten että 1=c' 2=d' 3=e', jne. ja -1=c -2=d -3=e jne.
Numeron perässä oleva b- tai #-merkki on alennus- ja ylennysmerkki. Esim. 2b=des', 3#=eis' eli Lilypondissa alennus on -es ja ylennys on -is.
Sitten laitetaan vielä nuoteille aika-arvot. Oletus aika-arvo on KEY-rivillä oleva "08", joka tarkoittaa että pelkkä yksittäinen numero saa tämän aika-arvon, eli EsAC-muodossa 123 on Lilypond-muodossa c'8 d'8 e'8. Jos numeron perässä on alaviiva, _ ,tarkoittaa se sitä että nuotin perässä oleva aika-arvo numero puolitetaan, eli 1_23__ on Lilypond-muodossa c'4 d'8 e'2 (viimeinen tupla-alaviiva puolittaa tuplasti, eli 8/2/2=2, jne.). Numeron perässä oleva piste lisää aika-arvoa 50%, kuten piste nuottikirjoituksessa, ja tämä on Lilypondin kannalta helppo, koska myös Lilypondissa samaan tarkoitukseen käytetään pistettä, eli "1_." on Lilypondissa "c'4." .
Jos KEY-rivillä onkin "08":n tilalla vaikka "16", niin silloin kaikki puolitukset ym. menevätkin uusiksi, esim. 1_=c'8, 1__=c'4 jne.
Kun nyt alan tätä ratkomaan niin onko kellään mitään hyviä ehdotuksia miten tätä kannattaisi alkaa selvittämään? Onnistuuko kätevästi ihan shell-skriptillä, vai kannattaako käyttää vaikka Perliä tai Pythonia, ym.? Yksittäiset sävelet saa ihan tekstieditorin korvaa-toiminnalla, mutta miten kannattaisi tehdä tuo tahtilajin uuttaminen ( "KEY ... 4/4" = "\time 4/4") ja tuon oletus aika-arvon asettaminen?