JPlayAlong

De Wikijoan
Dreceres ràpides: navegació, cerca

Contingut

Introducció

Software (aplicació JACK) per a fer play along a partir de fitxers midi ben seqüenciats. Es sequencia un fitxer midi a partir de la partitura (preferentment amb lilypond, midi de qualitat i score de qualitat).

La idea és senzilla. És un client JACK que reprodueix un midi, i que apareix a pantalla completa (SDL) els score (pdf, jpg, png, ps,...) de la partitura. I el programa sap fer el canvi de pantalla quan toqui, de manera que les mans estan concentrades en l'instrument.

En el midi la melodia va pel canal 1, i es pot sense melodia, només amb melodia, i tot junt. També es pot canviar el tempo, o fer loops sobre els passatges difícils a practicar.

Tota l'engegada de l'aplicació ha de ser fàcil amb els scripts corresponents (engegar JACK, fluidsynth, connectar les aplicacions,...).

És una aplicació JACK i SDL al mateix temps, igual que el conte del Pere i el Llop (contes musicals), i de fet hi haurà codi comú i el desenvolupament d'una aplicació servirà per l'altra.

Notes

En línia de comandes serà alguna cosa com:

$ jplayalong -s perellop -i sa -m 1 -p practice - t tempo -c cinicial:cfinal -d delay

Opcions:

A més de les opcions midi, també hi haurien opcions SDL, que farien referència a la resolució de pantalla, i el que calgui

La melodia sempre va pel canal 1, i així no es presta a confusió. Els instruments estan assignats segons GM, i així no es presta a confusió.

La notació dels fitxers midi i pdf haurà de seguir un criteri-protocol per tal que no hi hagi confusió. Per exemple,

perellop_2_sa.midi
perellop_2_sa.pdf

significaria que és el segon moviment del Pere i el Llop, en què la part mel.lòdica és un score de saxo alt.

Causísitiques:

Per gestionar totes les causístiques, hi haurà un fitxer perellop.cfg que dóna aquesta informació. Per exemple, s'ha de dir en quins compassos hi ha el canvi de pàgina. L'aplicació, en iniciar-se, llegirà aquest fitxer i omplirà les variables (matrius) corresponents.

El deployment d'una cançóde contindrà les següents carpetes, que es desempaquetarà en el directori de l'aplicació:

perellop.tar.gz
/midi
/pdf
/jpg
   /sa
   /me
   /xa
perellop.cfg

perellop.cfg: (algo similar a)

#comentari
movements=5
#num de compassos dels moviments
mov_1=30
mov_2=40
mov_3=80
mov_4=85
mov_5=26

#num de pagines, compàs en què acaba la pàgina
mov_1_pages=3
mov_1_1=15
mov_1_2=35
mov_1_3=45

mov_2_pages=2
mov_2_1=28
mov_2_2=32

Ficar tota aquesta informació en una matriu. Tot això és necessari per fer un canvi de pàgina automàtic.

</pre>

La cançó perellop s'executarà amb un script (perellop.sh), que cridarà a jack, fluidsynth, jplayalong, i les connexions.

perellop.sh: (similar a:)

També un script per matar-ho tot: killjplayalong.sh

Convertir pdf a jpg

Per convertir el pdf de lilypond a un jpg (el jpg és el format que sap importar el SDL):

$ convert -density 300 pere_i_llop_or_P0_P1_v1.pdf pere_i_llop_or_P0_P1_v1.jpg

Amb l'opció density especifico la resolució (en aquest cas 300 dpi). Com que el lilypond és bo amb el engraving, d'aquesta manera m'asseguro una qualitat òptima. Si vull aprofitar tota l'amnplada d'una pantalla d'ordinador he de generar pdf apaisats (com he fet en diverses ocasions: vilarmau, composicions pare).

Si el pdf té vàries pàgines, automàticament es generen diverses imatges. Si no vull convertir totes les pàgines del pdf puc especificar un rang:

$ convert mipdf.pdf[0-5] imagen.jpg

per controlar la conversió a jpg hi ha l'opció -quality (té a veure amb la compressió). Qualitat màxima és el valor de 100. I per controlar el tamany tinc l'opció -geometry. Per exemple, en un pdf apaisat i una pantalla amb resolució horitzontal de 1600, amb la següent comanda m'asseguro de què el meu jpg ocupi tota la pantalla horitzontalment sense haver d'escalar

$ convert -density 300 -geometry 1600x1600 4.pdf 4.jpg

En el cas de què el format sigui vertical, l'altura serà de 1600 i l'amplada quedarà reduïda. En aquest cas, si vull que l'amplada sigui de 1600 hauré de calcular el valor que he de ficar per a l'altura, i el meu programa haurà de fer un scroll vertical o un canvi de posició vertical. -geometry 1600x1600


creat per Joan Quintana Compte, desembre 2010, desembre 2011

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
Institut Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines