Cela faisait longtemps que nous n'avions pas mis à jour la base de Kooplet. Globalement, peu de sites disparaissent du jour au lendemain, donc l'essentiel de la base demeurait valide. Malheureusement, un énorme site de partitions classiques a récemment été absorbé par un autre site, encore plus énorme. Cela nous oblige donc à supprimer de notre base tous les liens vers le premier site, et d'indexer le second. Cela fait près de 80 000 entrées qu'il faut supprimer de la base. Nous n'avions pas prévu qu'un tel volume puisse être supprimé d'un coup, et notre procédure d'effacement est complexe, car elle doit non seulement supprimer l'entrée elle-même, mais également toutes les données précalculées permettant d'effectuer rapidement les recherches mélodiques. La suppression complète d'une entrée prend environ 10 secondes de CPU. Ne pouvant pas bloquer notre serveur, il faut compter ne pouvoir utiliser que 50% de sa capacité de traitement, donc la suppression d'une entrée prend 20 secondes de temps effectif. 80 000 entrées, à 20 secondes par entrée, cela fait 1 600 000 secondes, soit au minimum 18 jours non stop pour achever le travail ! Nous cherchons donc un moyen de réaliser ça plus rapidement, quitte à arrêter Kooplet quelques heures, le temps que le traitement se fasse. Bon week-end à tous ! |
|
|
by Olivier Guillion | | |
| |
|
Toutes les nouvelles fonctions graphiques de MyrScript sont maintenant terminées, testées, documentées, et accompagnées d'un script d'exemple. Les dernières fonctions qui n'étaient pas dotées d'anticrénelage (Skew, Rotate ou Perspective) le sont maintenant. Une nouvelle fonction de l'objet "Graph" permet de copier une zone graphique vers un autre "Graph". Etant donné qu'on peut travailler sur l'objet "Graph" d'une surface, cela rend possible de récupérer l'aspect graphique d'un élément d'une boîte de dialogue (ou même le contenu complet de la boîte), puis par exemple de le sauvegarder dans un fichier PNG. Une copie d'écran intégrée en quelque sorte. |
|
|
by Olivier Guillion | | | |
|
Les courbes de paramètres permettant de modifier les réglages de l'instrument virtuel au cours du jeu sont maintenant prises en compte. Il nous faut maintenant ajuster les bornes de ces paramètres, et les vérifier un à un (il y en a pour l'instant 16) Nous avons terminé la mise en place définitive, les tests et l'écriture de la documentation et des exemples des fonctions MyrScript de manipulation d'image (objet "Surface"). Ajouts notables : - Possibilité de sauvegarder une surface dans un fichier graphique (BMP, GIF, JPG, TIFF ou PNG). Seul le PNG conserve les opacités/transparences. - Possibilité de transférer la couche d'opacité vers la luminance des pixels - Opacité progressive, ajustable verticalement et/ou horizontalement - Miroir horizontal et vertical Pour tester toutes les fonctions, nous avons écrit en MyrScript une petite fonction (10 lignes) de reflet flou, à la mode depuis quelques temps : |
|
|
by Olivier Guillion | | |
| |
|
Comme promis avant-hier, nous avons mis en ligne un document de travail, qui présente un aperçu des fonctions MyrScript de manipulation de Surfaces. Il était trop long pour tenir directement dans un billet de ce blog, aussi l'avons-nous converti en PDF. Cliquez ici pour voir le document PDF Les fonctions présentées dans ce document peuvent encore être modifiées, mais cela donne déjà une bonne idée des possibilités à venir. N'hésitez pas à commenter, poser des questions, ou nous signaler si vous pensez qu'on a oublié une fonction importante. |
|
|
by Olivier Guillion | | |
| |
|
Pour réaliser l'interface graphique de l'éditeur d'instruments à cordes, nous avions dû développer un jeu de fonctions graphiques de manipulation d'images. Ces fonctions, plutôt puissantes et pratiques, ne servaient qu'à cette interface, et nous trouvions plutôt dommage de ne pas pouvoir en faire profiter les programmeurs MyrScript. C'est maintenant chose faite. Un nouvel objet, appelé "Surface", permet d'effectuer très rapidement des opérations sur des images. Par exemple, nos premiers tests en MyrScript on donné cela (l'illusion d'optique qui fait pencher le cadre violet vers la gauche n'était pas prévue) : en seulement quelques lignes de Code:s=Surface.New("Chat.jpg") s.Resize(400,400) s.Rotate(20) s.Perspective(50,0,0,3000) s.DropShadow(16,16, 0,0,0, 9,30) w.GraphContext.DrawSurface(s,20,20,20+s.Width/2,20+s.Height/2) s.Dispose() |
| Je vous laisse étudier ça ce week-end. Interro Lundi matin pour repérer ceux qui suivent. |
|
|
by Olivier Guillion | | |
| |
|
Dans le premier jet de l'interface des instruments frettés, l'instrument était constitué des paramètres physiques (caractéristiques de la caisse, des frettes, des cordes, etc) accompagné des options correspondant à la manière de jouer (plectre, force du jeu, mouvement des doigts, etc). Cela fonctionnait mais ne nous satisfaisait pas. En effet, changer de plectre, par exemple, créait un nouvel instrument différent du premier, ce qui nous obligeait à multiplier les versions d'un même instrument pour couvrir toutes les méthodes de jeu. Nous avons donc décidé de séparer complètement les paramètres correspondant à la physique de l'instrument de la manière de l'utiliser. Ainsi, la liste de sélection des instruments prédéfinis sera divisée en deux. A gauche, la liste des instruments, à droite la liste des modes de jeu. L'utilisateur pourra ainsi combiner l'un et l'autre à volonté : |
|
|
by Olivier Guillion | | | |
|
- Nous avons corrigé quelques problèmes liés à l'utilisation de polices de caractères musicaux autre que SToccata : . Sur Windows, les caractères tracés avec certaines polices externes (des polices musicales non fournies avec notre application) pouvaient ne pas apparaître correctement ou même ne pas apparaître tout court . Sur Windows toujours, les polices supplémentaires ajoutées par l'utilisateur dans son dossier "Myriad Documents/Settings/Fonts" pouvaient ne pas être prises en compte par l'application. Cela reste un mystère, nous avons dû demander deux fois au système de les traiter pour qu'elles apparaissent enfin dans la liste des polices installées . Lors de l'édition du jeu de caractères affecté à la portée, certaines modifications de l'utilisateur n'étaient pas prises en compte. - Un probème reste non résolu sur Linux (Suse). Lors de l'impression sur une imprimante HP OfficeJet, les symboles musicaux sont remplacés par des lettres. Nous ne savons pas quelle couche logicielle est à l'origine du problème (cairo, pango, GTK, CUPS ou le pilote d'impression lui-même). On peut cependant obtenir des impressions correctes en cochant l'impression par une image haute résolution. |
|
|
by Olivier Guillion | | | |
|
|