Arxiu de agost, 2006

El projecte, cap. III

// agost 22nd, 2006 // 4 comentaris » // Programació, Universitat

Ara si q sí. Va de bo.

Ja m’he posat a fer el projecte en serio, el meu super OMR, i els avanços són prou significatius.

En primer lloc, necessitava obtenir imatges de partitures adequades, ja que encara no ho havia aconseguit. El procés de transformació des de PNG a PBM no era l’adequat, ja que al ser el PNG una imatge escalar i no vectorial, la imatge s’emborronava.

Per aconseguir el PBM des d’una imatge escalar, he utilitzat la conjunció jEdit + LilyPondTools + Lilypond per aconseguir una partitura en un fitxer PostScript [en] (açò em recorda a Javier Gil, profe de Perifèrics, encara que ell deia “pojcri“).

A partir d’ací, i utilitzant la potent eina GhostScript, puc transformar els fitxers .ps directament a imatges PBM, en aquest cas Text PBM

xavi@xavi:~$ gs -sDEVICE=pbm -sOutputFile=partitura.pbm partitura.ps

A partir d’aquest moment, ja tenia tot el que necessitava per a començar a treballar. Així que a picar codi!

Després de reescriure tot allò que tenia fet (estava molt mal programat, de veres, i tampoc no era massa), m’he plantejat el mecanisme a seguir per fer el projecte. El mètode de desenvolupament eXtreme Programming (conegut per les nostres comarques com sobre la marxa) resulta adequat per a este propòsit, ja que com no se massa bé que he de fer, ni com fer-ho, a base de xicotetes metes vaig avançant.

En primer lloc he localitzat els pentagrames, fent histogrames per files (calculant la quantitat de píxels negres que hi havia en cada fila), i determinant que són linies d’algun pentagrama aquelles files que tenen més de la meitat dels píxels negres. Potser en algunes partitures, amb moltes notes (sobre tot si està construida a propòsit), aquesta consideració sobre la proporció hauria de variar, però de moment funciona.

Una vegada obteses les línies dels pentagrames, les agrupe de 5 en 5, per saber la quantitat de pentagrames de que consta la partitura, sabent a més en quines línies de la imatge es troba cadascun d’ells.

Després, esborre aquestes línies, de tal manera que la partitura es queda sense cap pentagrama, només amb les notes. A partir d’este moment, on em trobe ara, el que he de fer és començar a buscar notes com un descosit, o siga q, això vaig a fer.

Altres entrades parlant del projecte:

Seguirem informant…

Ací estic jo, pegant-li dur al projecte, intentant acabar-lo per a setembre. I hui tinc bones notícies: ja trobe algunes primitives!!! Les claus de sol, els silencis de negra, i totes aquelles notes que estiguen fora del pentagrama ja són meues!!!

Ara ja només em falta modificar un poc l’algorisme per a que les notes reconegudes siguen totes, independentment d’on estiguen, i haurè arribat a una altra meta.A partir d’ara? Validar totes les primitives trobades (per detectar algun error), ordenar-les, agrupar-les per generar notes i escriure el document MusicXML equivalent.

Seguirem informant…

Continuem amb el projecte.

Després d’alguns dies un poc off, amb una intensitat menor a la que tocaria, la cosa va agafant cos, però no sé si a la velocitat necessària per a acabar-ho a hora. Després de fer algunes xapuces ja llig totes les notes. Les xapuces són que he hagut de fer fins a 5 models per a detectar algunes de les primitives, ja que a l’eliminar les línies dels pentagrames, si no era impossible trobar-ho.Ara els següents passos són crear la resta de primitives que falten (silencis de corxera i semi-corxera, claus de fa i de do, numeració als compassos, becaires, bemolls, diesis -sostenidos-,…) i a continuació fer una validació de les primitives trobades, comparant-ho amb la partitura completa, amb línies i tot. Aquesta validació haurà de tindre en compte només els píxels negres, i haurà d’utilitzar el model de primitiva complet.

Després, toca ordenar les primitives als pentagrames que toca, i intentar refer les notes, cosa que no hauria de costar massa. I finalment, passar-ho tot a MusicXML.

I, el problema més greu que veig ara, la documentació 🙂

- Xavi - Projecting People

seguirem informant

El projecte, cap. II

// agost 10th, 2006 // No hi ha comentaris » // Programació, Universitat

Ara si q sí. Va de bo.

Ja m’he posat a fer el projecte en serio, el meu super OMR, i els avanços són prou significatius.

En primer lloc, necessitava obtenir imatges de partitures adequades, ja que encara no ho havia aconseguit. El procés de transformació des de PNG a PBM no era l’adequat, ja que al ser el PNG una imatge escalar i no vectorial, la imatge s’emborronava.

Per aconseguir el PBM des d’una imatge escalar, he utilitzat la conjunció jEdit + LilyPondTools + Lilypond per aconseguir una partitura en un fitxer PostScript [en] (açò em recorda a Javier Gil, profe de Perifèrics, encara que ell deia “pojcri“).

A partir d’ací, i utilitzant la potent eina GhostScript, puc transformar els fitxers .ps directament a imatges PBM, en aquest cas Text PBM

xavi@xavi:~$ gs -sDEVICE=pbm -sOutputFile=partitura.pbm partitura.ps

A partir d’aquest moment, ja tenia tot el que necessitava per a començar a treballar. Així que a picar codi!

Després de reescriure tot allò que tenia fet (estava molt mal programat, de veres, i tampoc no era massa), m’he plantejat el mecanisme a seguir per fer el projecte. El mètode de desenvolupament eXtreme Programming (conegut per les nostres comarques com sobre la marxa) resulta adequat per a este propòsit, ja que com no se massa bé que he de fer, ni com fer-ho, a base de xicotetes metes vaig avançant.

En primer lloc he localitzat els pentagrames, fent histogrames per files (calculant la quantitat de píxels negres que hi havia en cada fila), i determinant que són linies d’algun pentagrama aquelles files que tenen més de la meitat dels píxels negres. Potser en algunes partitures, amb moltes notes (sobre tot si està construida a propòsit), aquesta consideració sobre la proporció hauria de variar, però de moment funciona.

Una vegada obteses les línies dels pentagrames, les agrupe de 5 en 5, per saber la quantitat de pentagrames de que consta la partitura, sabent a més en quines línies de la imatge es troba cadascun d’ells.

Després, esborre aquestes línies, de tal manera que la partitura es queda sense cap pentagrama, només amb les notes. A partir d’este moment, on em trobe ara, el que he de fer és començar a buscar notes com un descosit, o siga q, això vaig a fer.

Altres entrades parlant del projecte:

Seguirem informant…

Ací estic jo, pegant-li dur al projecte, intentant acabar-lo per a setembre. I hui tinc bones notícies: ja trobe algunes primitives!!! Les claus de sol, els silencis de negra, i totes aquelles notes que estiguen fora del pentagrama ja són meues!!!

Ara ja només em falta modificar un poc l’algorisme per a que les notes reconegudes siguen totes, independentment d’on estiguen, i haurè arribat a una altra meta.A partir d’ara? Validar totes les primitives trobades (per detectar algun error), ordenar-les, agrupar-les per generar notes i escriure el document MusicXML equivalent.

Seguirem informant…