Rasmus.krats.se

English

Skriverier då och då, på webben sedan 1995

Chordlab: chopro till pdf

Publicerad taggat , , , , .

Chordlab är ett kommandoradsprogram jag skrev för att göra pdf-sångböcker från choprofiler.

Normal användning är att ge chordlab en lista med choprofiler, var och en med en sång (eller flera). Chordlab skapar en pdf med en sida för varje sång.

Uppdatering : För att göra chordlab mer inbjudande, och för att jag inte har lyckats något vidare med att driva ett publikt monotone­repository, har jag nu flyttat chordlab till github. Projektet heter kaj/chordlab.

Till att börja med, här är ett exempel på resultatet och choprofilen som det skapades från.

Verkar det bra? Prova själv! Här är källkoden och versions­historiken. För att använda programmet behöver du Python och paketet reportlab. Chordlab är fri programvara.

Choproformatet

Formatet chopro är mer eller mindre standard för sångtexter med ackord. Grundformatet är helt enkelt text med ackord inom hakparenteser. Sen finns det en del extra markup man kan skriva inom klamrar, som {nyckelord: värde}, där : värde bara är relevant för vissa nyckelord.

Ett vanligt exempel kan se ut såhär:

{title: Märk hur vår skugga}
{subtitle: Fredmanns epistel nr. 81}
{subtitle: Carl Michael Bellman}

[Am]Märk hur vår sk[E7]ugga, märk, [Am]Movitz, mon frère, inom ett mörket sig [E7]slutar,
[Am]hur guld och [E7]purpur i [Am]skoveln, den [Dm]där, [Am]byts till [Dm]grus och [Am]kl[E7]u[Am]tar.
...

Varför chordlab?

En gång i tiden fanns det ett program som hette chord. Det gjorde ungefär det som den här sidan beskriver. Det var inte perfekt eller buggfritt, men det fanns och fungerade.

Nu försökte jag installera chord på min nya laptop, som kör Ubuntu. Det fanns ingen "chord" i paketsystemet. Så jag googlade. Såvitt jag kan säga så finns inte chord längre, utom i FreeBSD:s ports/paketsamling som har behållit en arkivkopia. Eftersom jag ändå hade orsak att lära mig python (mest för att kunna hjälpa Katy, som går en kurs i det), såg jag det här som ett lämpligt exempel och satte igång.

Efter några få timmar hade jag ett fungerande program. Det tycker jag är ett gott betyg åt både språket Python och paketet reportlab.

Jag påstår inte att chordlab är perfekt eller buggfritt, men det finns. Nu kan jag fortsätta att förbättra det tills det är perfekt.

Kommentarer

Joel,

This is absolutely awesome! I have always been frustrated by the old chopro which output a single song to postscript which then required an extra assembly and Adobe distiller step.

Plus I just started learning python and I was keen on using reportlab for which your code is an excellent illustration.

Phile,

hi??

Rasmus Kaj,

Yes, Hi, Phile? Did you wonder anything?

Skriv en kommentar

Ditt namn (eller en pseudonym).

Publiceras inte, utom som gravatar.

Din hemsida / presentation

Ingen formatering, utom att en tomrad tolkas som styckesbrytning.