Merci à tous ceux qui ont commencés à nous envoyer des exemples de partitions avec disparition/apparition de portées d'un système à l'autre. Certains exemple sont plutôt ardus et tordus, comme nous les aimons ! Continuez à nous faire parvenir ce que vous trouvez ! Cette section du travail va démarrer très bientôt. Pour l'instant, nous finalisons la distribution des notes dans les différentes voix et le chargement des images. Parallèlement à ceci, nous explorons peu à peu les exemples en notre possession et certains sont vraiment exotiques, par exemple : Cela va être difficile d'extraire ne serait ce qu'une quantité minimale d'information suffisante et de toute manière je doute que ceci puisse se mémoriser en MusicXML. |
|
|
by Didier Guillion | | | |
|
Le nouvel algorithme de gestion des voix a été implémenté, il est en cours de validation et donne, pour l'instant des résultats satisfaisants. Il est en tout cas, beaucoup plus rapide que le précédent ! La semaine prochaine nous allons "plancher" sur le raboutage des portées d'un système à l'autre, donc, si vous avez des documents PDF où le nombre de portées par système n'est pas constant, par exemple, lorsqu'une portée est omise quand rien n'est joué, envoyez nous les... |
|
|
by Didier Guillion | | | |
|
Les images en couleur que l'on trouve dans de nombreux PDF sont maintenant traitées. Il nous faut maintenant attendre que la nouvelle version du MusicXML soit capable de les gérer. Depuis quelques jours nous réfléchissons à la manière d'attribuer les notes aux différentes voix (layer). L'algorithme récursif que nous avions mis en place, c'est avéré partir dans des itérations quasi infinies. Nous avons choisi de calculer les voix pour l'ensemble de la portée et non mesure par mesure, ceci afin de conserver une cohérénce des voix d'une mesure à l'autre. |
|
|
by Didier Guillion | | | |
|
Depuis plusieurs années, je travaille sur un Macintosh G4 bi-processeur. Cette sympathique machine a l'habitude, dès que la température de la pièce dépasse les 4°C de lancer à fond ses ventilateurs. Cela revient à travailler pendant plusieurs heures par jour avec le bruit d'un aspirateur à un mètre des oreilles. Le port du casque anti-bruit est obligatoire (je ne rigole pas, il faut un casque stéreo et la musique à fond pour s'abstraire de ce vacarme insupportable). Pourtant, comme j'ai toujours été sensible au bruit des ordinateurs, je m'étais renseigné avant l'achat sur les forum de MacGénération. La réponse avait été unanime "Il faut vraiment mettre l'oreille dessus pour entendre un léger bruit". Je suppose que soit les personnes étaient sourdes, soit elles essayaient le Mac dans une usine de laminage de l'acier, soit le Mac était éteint... Un jour Phillipe F*** qui écoutait sereinement mes lamentations, me dit, "il faut remplacer les ventilos, si tu veut je te le fait." J'ai tergiversé quelques mois, et là, avec la canicule cela devenait trop insupportable. J'ai laissé Magic Phil ouvrir mon Mac pour remplacer les ventilos d'origine par un jeu acheté en Allemagne. Et depuis, c'est le bonheur, un silence total ! Mais, par la malepeste, pourquoi Apple ne met pas d'office ce genre de ventilateurs dans ses machines ? Voici quelques photos de l'opération |
|
|
by Didier Guillion | | |
| |
|
C'est un fait évident, ma requète d'hier à suscité pas mal de cogitations chez les assidus de ce blog. Merci à tous pour vos idées ! Il va falloir maintenant essayer les différentes solutions pour voir quelle est la meilleure. Personnellement, je pencherait pour une analyse statistiques des espacements des notes dans la portée. J'ai testé quelques fichiers avec tablature du site dirk.meineke.free.fr. On y trouve des notations vraiment exotiques. Je ne sais pas si c'est standard... Par exemple, noter le décalage en octave de la clef par 8va. Ou encore, ce type d'accord : Du coté du MusicXML, nous sommes encore bloqués par des limitations. Par exemple, on trouve très souvent des partitions avec la première page comportant seulement du texte et parfois un graphisme (Machefert) Il est impossible (pour l'instant) de réserver une page en MusicXML, ou même de poser des textes libres ailleurs sur la première page, quand aux graphismes, ils ne sont absolument pas prévus. Je vais maintenir la pression sur M Good pour qu'il intègre tout cela dans la prochaine version du MusicXML. |
|
|
by Didier Guillion | | |
| |
|
Sur l'exemple suivant (Lemonaki de S.Machefert) deux problèmes intéressant ce sont posés. D'une part reconnaitre les petites notes et ne pas les confondre avec des appoggiatures. D'autre part, ne pas considérer que les textes à droite des portées sont des paroles mais bien des textes libres. Par contre sur le problème suivant je ne vois pas de solution : On trouve une note dont la tête n'est pas alignée sur l'accord mais qui fait tout de même partie de l'accord , ceci afin de rendre la lecture plus agréable (Belkin) : Par contre on peut trouver le même écartement de notes avec tiges inverses, alors qu'il ne s'agit pas d'un accord (Machefert): Si quelqu'un à une idée de la règle à appliquer, elle est bienvenue... |
|
|
by Didier Guillion | | |
| |
|
Sylvain Machefert nous a envoyé des exemples très intéressants. La journée a été passée sur les deux premiers, avec quelques cas de figure pas piqués des vers que nous avons essayé de traiter. Comment déterminer que les altérations sont associées aux notes et pas à la tonalité de la mesure ? Et sur cet exemple de M Belkin ? Egalement, un cas particulier d'ornement, tracé par une simple ligne et en dehors de la police musicale. Merci à Laurier pour les liens sur les PDF, c'est en travaillant sur un maximum de fichiers que nous progressons. Nous verrons tout cela demain matin, quand la température à l'ombre sera redescendue en dessous de 37.8.... |
|
|
by Didier Guillion | | | |
|
Concient des problèmes que nous rencontrions avec la version actuelle du Dolet, l'équipe du MusicXML nous a fourni une Beta de la prochaine version qui nous permet de progresser grandement sur les indications de tempo et le positionnement graphique des objets. Les fenêtres tiroirs ont été implémentées sous Wacam et sont donc disponibles maintenant sur la version Windows de PDF2Music. Nous continuons à travailler sur les exemples fournis par M Alan Belkin. Nous traquons les erreurs et les éliminons une à une. Des problèmes particulier font leur apparition, par exemple, comment ne pas confondre une indication de staccato et un pointé. Parallèlement à tout ceci, l'importeur de MusicXML, intégré à Harmony Assistant progresse. C'est grace à ces exemples concrets que nous avançons. |
|
|
by Didier Guillion | | |
| |
|
L'interface supporte maintenant plusieurs documents simultanés.Lorsque la musique se joue, une ligne verticale montre la position dans la partition. Voici ce que cela donne. |
|
|
by Didier Guillion | | | |
|
Un musicien Canadien, M B*** nous a fait part de son problème et de son intérêt pour le projet PDFToMusic. Ayant composé pas mal de temps avec Mosaic, il voudrait récuperer ses fichiers de manière efficace. Une impression en PDF puis une conversion par PDFToMusic devrait l'aider grandement. Il nous a gentiment fourni des fichiers d' exemple, classés par complexité croissante. A suivre... Les variations d'échelle et ascenseurs ont été implémentés dans l'interface de PDFToMusic. Une fenêtre "tiroir" a été associée au document. L'effet est assez sympa et c'est plutôt pratique, mais ce type de fenêtre n'existe pas encore sous Wacam (version Windows de notre système d'interface) Olivier va devoir retrousser ses manches et l'implémenter. Voici un premier aperçu de ce que cela va donner. |
|
|
by Didier Guillion | | | |
|
Mettant temporairement de coté la reconnaissance des PDF, tout l'effort de ces derniers jours a été porté sur la mise en place de l'interface. Ceci va nous permettre de naviguer dans le document et de comparer visuellement les resultats obtenus. Les fonctionnalités les plus couramment utilisées sont disponibles via une barre d'icône, en haut de la fenêtre. Nous avons repris l'aspect sobre du Myriad Music Plug-in. Les fonctionnalités iconisées ne sont pas encore définitivement arrétées et cela risque de bouger dans les prochains jours. Voici un premier aperçu de ce que cela va donner. A noter que tous les affichages sont fait par notre code, nous n'utilisons pas l'affichage de PDF intégré au système. Maintenant il reste a gérer les variations d'échelle, le déplacement par ascenseurs, et, cerise sur le gateau, nous aimerions proposer une fenêtre tiroir pour naviguer aisement de page à page. |
|
|
by Didier Guillion | | | |
|
Les indications de tempi comme celle-ci: ont été traitées et converties en MusicXML. Malheureusement il apparait que cela perturbe le Dolet (importeur de MusicXML créé par Recordare et qui est la référence) et le lance dans des boucles infinies. Un rapport d'erreur précis a été envoyé à l'équipe de développement. Les nuances découpées en plusieurs lettres ont été raboutées afin que "m"+"f" donne "mf" par exemple. Certains cas d'accroche non reconnues ont été localisés et corrigés. Maintenant, il va falloir passer au traitement des fichiers PDF comportants plusieurs pages. La première étape va être de créer les bases d'une interface pour pouvoir naviguer dans les pages, changer l'échelle de visualisation, etc. |
|
|
by Didier Guillion | | | |
|
Une journée sans grands rebondissements, passée à valider les algorithmes mis en place et à commenter les sources. Dans un projet on passe facilement deux fois plus de temps à vérifier que ce que l'on a écrit est juste qu'à le concevoir et l'écrire. La gestion des accroches a été ajustée pour pouvoir fonctionner sur des "parts" avec plusieurs portées. L'affichage des textes sur l'aperçu du PDF est passé en Unicode 16 bits. Les tablatures sont plutôt bien importées. Et ensuite, la routine, importer un PDF, lire le MusicXML et comparer le résultat, symbole par symbole pour déceler les erreurs. Le thermomêtre fleurte avec les 31.6 degrés à l'ombre dans le jardin et 30.7 degrés dans la pièce de travail... Vivement le prochain orage ! |
|
|
by Didier Guillion | | |
| |
|
Les portées regroupées par une accolade sont maintenant fusionnées en une "part" unique. Ceci permettra, à terme, d'autoriser les accroches et coulés d'une portée à l'autre de la "part". Mais il reste encore du travail. Le module de détermination d'instrument (n'oublions pas qu'aucune information d'instrument n'est présente dans le PDF) à été inclus au projet et semble donner de bon résultats. Il sera important pour la restitution sonore. Parallèlement à ceci, l'importeur de MusicXML, qui sera intégré à Harmony/Melody, progresse. Au fur et à mesure que des informations sont extraites du PDF, l'importeur est testé et ajusté afin que le résultat à l'écran soit le plus proche possible du PDF. Beaucoup de nouveaux modules ont été ajoutés au projet ces derniers jours, il va falloir maintenant prendre une pause et les valider soigneusement. |
|
|
by Didier Guillion | | | |
|
Les partitions au format PDF se chargent de mieux en mieux, avec souvent seulement quelques erreurs vraiment minimes. Toutefois, en traitant de plus en plus de fichiers d'origines diverses, de nouveaux problèmes intéressants apparaissent. Nous nous sommes consacrés aujourd'hui à discriminer entre tuplet et indication de doigté comme dans l'exemple suivant : Ce ne fut pas facile... Ensuite, une notation que je ne connaissait pas des mesures multi-silences : a également été traitée. Le prochain problème sera la fusion, en une "part" unique (dans la notion du MusicXML,) des portées multiples. Ceci survient par exemple au piano quand main gauche et main droite sont écrites sur des portées séparées mais regroupées visuellement par une accolade. |
|
|
by Didier Guillion | | | |
|
Fatiguante journée aujourd'hui, notre voiture a complètement brulé dans la rue cette nuit suite à la "combustion spontanée" de la voiture juste devant. J'ai visité son épave et ai ressorti des cendres encore humides, un lot de cartes routières (en fait le papier en pile brûle plutôt mal) et le vélo du fiston miraculeusement intact dans les cendres du coffre arrière. Moralité, si votre véhicule prend feu, réfugiez-vous plutôt dans la boîte à gants... Dans la catastrophe sont parties en fumée toutes mes cassettes originales de Francis Cabrel et des Pink Floyds... Ainsi que pas mal d'affaires personnelles. Mais bon, les pompiers ont été efficaces (merci à eux) et pas de dommages humains. Il va falloir trouver un nouveau véhicule motorisé. On trouve des tanks Sherman sur Ebay ? |
|
|
by Didier Guillion | | |
| |
|
L'algorithme (récursif) d'affectation des notes aux différentes voix est maintenant au point. Nous l'avons essayé sur différentes figures rythmiques bizarres, pour voir ce qu'il en sortait, et il semble se débrouiller même sur des cas plutôt complexes tels que celui-ci: où il a correctement groupé les notes par voix, et trouvé le bon "timing" Il reste à le valider sur des partitions complètes à plusieurs voix. Il pourra bien sûr arriver qu'il commette des erreurs, mais à mon avis, pas beaucoup plus qu'un interprète humain à qui on présenterait la même partition. |
|
|
by Olivier Guillion | | | |
|
La journée a été passée sur l'analyse du problème de la distribution des notes dans la portée selon les différentes voix. Je dois avouer que j'avais complètement oblitéré dans mon esprit ce point important. C'est la conversion des tablatures (qui se chargent de mieux en mieux) qui nous a fait nous rendre compte que ma gestion actuelle des voix était bien trop simpliste. Par exemple, sur cette image il faudrait reconnaître trois voix différentes et générer le fichier MusicXML correspondant. Après de longues cogitations sur papier, Olivier pense avoir trouvé un algorithme récursif qui devrait être efficace, il faut maintenant le programmer et le valider. |
|
|
by Didier Guillion | | | |
|
Nous avons attaqué aujourd'hui le problème de reconnaissance des tablatures pour instruments à cordes frettées. L'algorithme de localisation des portées a été généralisé de manière à pouvoir travailler sur des portées à "n" lignes (si une portée solfège normale est bien composée de 5 lignes, ce n'est pas le cas pour une portée tablature). Une fois ceci validé, des règles de décision ont été déterminées afin de discriminer entre les deux types de portées (bien qu'une tablature ait en général 6 lignes, elle peut aussi en avoir 5). Nous avons donc les positions en corde et case, il nous faut maintenant extraire la durée des notes. Or, aucune information de durée n'apparaît sur les tablatures. Nous appliquons donc ce que fait un interprète humain : nous allons pêcher la bonne durée dans la portée solfège au-dessus, si elle existe. Au passage, ceci nous permet de reconstituer l'accordage de l'instrument, même s'il un peu exotique, avec des cordes accordées en dièse. Bien sur, et c'est là que le bât blesse, si la portée solfège correspondante n'est pas présente, il est impossible de recupérer la durée des notes. Si mes souvenirs sont bons, un problème similaire s'était posé lors de l'importation des fichiers tablature au format Tab Text. Peut être, pourrons nous réutiliser ces algorithmes ? |
|
|
by Didier Guillion | | | |
|
Un traitement par lot d'un ensemble de fichiers PDF a été implémenté. Cela permet d'obtenir en une seule étape tous les fichiers MusicXML correspondants et de valider les résultats par comparaison visuelle. Un dossier contenant 70 fichiers PDF pris au hasard a été traité. Aucune erreur majeure (crash) n'est survenue. 5 fichiers ne se chargent pas du tout et donnent des pages vides : ils contiennent une organisation encore jamais rencontrée de police au format Type 1C. Les autres fichiers donnent un fichier MusicXML valide avec environ 4-5 erreurs mineures par page : altération mal placée, symbole non implementé, etc. C'est tout de même très proche de l'original et il faut scruter la partition avec attention pour localiser les erreurs. Les prochaines étapes importantes qu'il reste à attaquer sont : - Le raboutage des portées entre les systèmes quand des portées sont omises - La gestion des 8va,8vb d'un système sur l'autre et d'une page sur l'autre - La même choses pour les parties. - Les altérations sur mordant et grupetto - Certaines partitions associent aux notes un nombre pour le doigté. Cela peut aboutir à une confusion avec un tuplet. Il faudra trouver une méthode de discrimination, mais pour l'instant je sèche. Egalement, quelques partitions présentent des tablatures, ce serait sympa de pouvoir les traiter... Nous allons y réfléchir... |
|
|
by Didier Guillion | | |
| |
|
En 1988, nous créons Myriad afin de pouvoir travailler de manière plus souple. Jusqu'à cette date nous étions auteurs de logiciels et ce n'était pas encore très courant. L'administration, et en particulier fiscale, ne savait pas trop dans qu'elle case nous inscrire et "Ca dépend", ça dépasse. Nous décidons de monter notre société, en devenons salariés (nous serons tout de même non payés la première année pour avoir quelques sous en caisse) et d'éditer nous-mêmes nos propres créations. Loriciels, notre éditeur, nous propose de devenir notre distributeur et nous acceptons. Cependant, il nous faut maintenant produire des jaquettes, livrets et autre emballages sympathiques nécessaires à nos produits. La PAO sur PC ce n'est pas encore cela... Nous "squattons" quelque temps un Macintosh dans un magasin très accueillant, "Bureaumatique" place Saint Georges, et l'évidence se met en place, il nous faut notre propre Macintosh ! Notre premier contrat sera un travail à façon pour une société qui concevait des panneaux d'affichages géants à LED. Nous leur programmons un logiciel sur Atari ST pour créer textes et animations qui seront affichées par un Amiga 500 connecté via le port parallèle. La première mise en place sera pour le stade du TFC, le club de football local. Une bonne partie de ce que nous rapportera ce travail sera investi dans un Mac SE (près de 18 000 FF à l'époque) et une imprimante laser (encore plus chère). Le Mac sera une autre révélation, après le Commodore 64 et l'Amiga. Silencieux, rapide, fiable, une machine pensée qui donnait envie de travailler. C'était le bon temps où l'on pouvait sans complexe dire du bien d'Apple... Quand on achetait un Macintosh, on avait la certitude d'investir dans quelque chose de vraiment différent et pas dans un design pour "Geek" recouvrant du réchauffé. Le Mac SE nous servira longtemps et fonctionne encore parfaitement. Quand le bruit de turbine insupportable de mon Mac G4 bi-processeur m'exaspère trop et me fait sortir de la pièce, je songe avec nostalgie au temps où travailler sur Mac était un plaisir. |
|
|
by Didier Guillion | | |
| |
|
|