Myriad Blog 1.3.0 Sunday, Dec 21st, 2014 at 01:05pm 

Dev News Friday, Jul 30th, 2010 at 05:33pm
Synthèse d'instruments à cordes (3)

 
Nous avons continué à faire saigner nos oreilles sur les instruments à cordes frottées.
Pour commencer, nous avons avancé sur la technique de filtrage à réponse impulsionnelle.
Cette technique est principalement utilisée pour capturer et restituer l'acoustique d'une pièce :
Un bruit très court est émis dans la pièce, à l'endroit où se trouverait l'instrument. Des micros, placés à l'endroit où devrait être l'auditeur, captent ce son, appelé Impulse Response, qui est simplement enregistré en numérique.
Ensuite, il suffira alors d'effectuer une convolution (multiplication) entre n'importe quel morceau numérique 'sec' (sans effet) et cet "impulse response" pour restituer d'un coup toutes les réverbérations et l'acoustique de la pièce, comme si l'instrument avait été enregistré là.
 
Nous avons adapté ce système aux instruments à cordes :  
la corde vibre, et produit un son avec un timbre assez aigu. Ces vibrations sont transmises à la table d'harmonie par l'intermédiaire du chevalet. La caisse de l'instrument fait résonner le son, altère son timbre, et c'est ce résultat que nous entendons.
 
En enregistrant le résultat d'un coup sec porté sur le chevalet, on obtient l'Impulse Response de l'instrument:
 
Impulse Response d'une guitare

 
Pour éviter les calculs relativement simples mais trop nombreux liés à une véritable convolution, on stocke simplement les valeurs du banc de filtre que constitue la caisse de l'instrument, pour pouvoir l'appliquer ultérieurement aux sons bruts générés par notre modèle de corde.  
 
Mais d'abord il faut simuler le frottement de l'archet sur une corde.  
Le problème est, tous ceux qui ont essayé de tirer un son d'un violon le savent, il ne suffit pas de frotter n'importe comment pour produire une note.
De nombreux paramètres entrent en jeu:
- La position de frottement sur la corde
- La force d'application de la mèche sur la corde, et l'évolution de cette force au cours du temps
- La vitesse de déplacement de l'archet, et l'évolution de cette vitesse au cours du temps
- Les paramètres de friction (pour un vrai violon, la qualité et quantité de collophane)
 
Ainsi, notre premier essai virtuel, effectué sur une corde grave de violoncelle, n'a pas été fameux, l'archet glissant sans produire de son :
 
Frottement raté

 
En ajustant un peu, nous parvenons à produire notre premier son:
 
Frottement un peu plus réussi

 
Ca fait un peu mal aux oreilles, mais on est sur la bonne voie.
On raccourcit la corde, et on réessaye:
 
Note de violon bruitée

 
On rend le glissement un peu plus fluide, et nous avons notre première note digne de ce nom:
 
Note de violon correcte

 
Il manque encore beaucoup de paramètres au modèle pour le rendre vraiment réaliste: un vibrato et surtout la gestion des numéros de corde, qui empêchent une corde de continuer à sonner lorsqu'une nouvelle note est jouée dessus. Ces erreurs sont présentes dans les morceaux d'exemple qui vont suivre, et génèrent un effet de réverbération indésirable, mais on peut déjà commencer à se faire une idée.  
 
Essai de violon

 
Essai d'Alto

 
Ces morceaux ont été filtrés à partir de véritables enregistrement Impulse Response de violon et d'alto trouvés sur Internet. Si vous avez un Stradivarius chez vous et que vous acceptez de donner un grand coup dessus pour enregistrer le résultat, nous sommes preneurs.  
by Olivier Guillion
 6 comments.

Dev News Thursday, Jul 29th, 2010 at 04:54pm
Synthèse d'instruments à cordes (2)

 
Nous avons  travaillé sur les instruments à cordes frottées. Devant la galérosité de la chose, nous en avons profité pour réétudier le modèle informatique de la corde vibrante, et améliorer du coup le module "corde pincées".
Nous obtenons maintenant un calcul permettant de mettre en évidence les ondes stationnaires au sein de la corde.
 
En effet, précisément aux fréquences multiples de la fréquence naturelle de la corde, cette dernière vibre, mais des points précis restent rigoureusement immobiles, la corde présentant alors une alternance de fuseaux et de noeuds. Lors du jeu, lorsque la corde est pincée, ces ondes stationnaires ne se forment pas, car toutes les fréquences multiples sont jouées en même temps.
 
Cependant, c'est ce phénomène qui est utilisé pour jouer des "harmoniques". Le doigt du guitariste est placé précisément à l'endroit d'un noeud d'un multiple donné de la fréquence de base de la corde. Ce doigt ne bloque pas vraiment la corde, il amortit ses mouvements en ce point. Ainsi, toutes les fréquences qui ne possèdent pas de noeud à cet endroit sont coupées, laissant sonner la corde à une fréquence plus aigue, avec un son caractéristique.
 
Grâce à notre nouveau modèle de corde, ce phénomène est facilement reproductible. Voici un exemple: la corde est grattée normalement, puis la même corde est jouée, mais un doigt est positionné au milieu, puis au tiers et enfin au quart de la longueur de la corde:
 
Harmoniques Guitare

Le phénomène est réellement créé par modélisation. Si on place le doigt au mauvais endroit on obtient un "ploc" comme dans la réalité.
 
De même, il est maintenant facile de modifier la position sur la corde du grattement de la main droite. En effet, la position du pincement influe sur le son. Généralement, les guitaristes grattent toujours au même endroit (au-dessus de la rosace), mais en proportion de la longueur vibrante de la corde, plus la case pressée sur le manche est proche de la rosace, et plus le pincement s'approche de la moitié de la corde. Le timbre du son doit donc changer. Ce n'est peut-être pas perceptible, mais ça vaut le coup d'en tenir compte, le réalisme général pourrait en être augmenté.
En attendant une démo complète, voici un exemple de corde grattée normalement (sur la rosace), puis près du chevalet, et enfin au-dessus du manche, au milieu de la corde. La différence est flagrante:
 
Positions de pincement

 
Maintenant que le modèle vibratoire de la corde est complet, si nous voulons simuler violon, alto ou violoncelle, il faut passer du pincement au frottement, et modéliser l'influence d'un archet sur une corde en mouvement.
by Olivier Guillion
 7 comments.

Dev News Wednesday, Jul 28th, 2010 at 04:52pm
Kooplet étape 58

Nous sommes revenu sur la saisie de notes au microphone dans Kooplet. Il est apparu que le problème principal rencontré par les utilisateurs était un mauvais réglage du niveau d'amplification du microphone.Trop élevé cela sature et parasite le signal, trop bas, il n'y plus assez de précision. Nous affichons maintenant le niveau en temps réel lors de la saisie. Une fois cette assistance mise au point, nous pourrons travailler de manière plus approfondie sur la détermination des notes.
by Didier Guillion

Dev News Tuesday, Jul 27th, 2010 at 04:54pm
Harmony, Melody et autres étape 93

 
Correction de l'édition du style des ornements textuels lorsqu'ils étaient à la valeur par défaut.
Cohérence de l'ordre des portées en chargement MIDI entre Harmony et le Player.
Correction d'un problème de taille de tige en tablature guitare.
Et puis aussi, surtout, lecture de documents, des thèses entre autre, à propos de la synthèse sonore.
Egalement, quelques essais d'utilisation d'enregistrements de chocs brefs sur le corps d'une guitare pour en extraire les composantes de la résonance. Pour l'instant quelques résultats prometteurs mais rien de présentable. Demain peut être...
by Didier Guillion

Dev News Monday, Jul 26th, 2010 at 04:44pm
Harmony, Melody et autres étape 92

Pour le traitement des documents Kooplet, correction d'un problème signalé par Franck : dans les documents musicaux, les symboles de même hauteur, reliés par un coulé interprété en continu sont maintenant considérés comme un seul symbole lié. Il faudra bien sur attendre un recalcul de la base pour s'en rendre compte.
Correction de l'affichage du raccourci sur les touches dans le clavier virtuel.
by Didier Guillion
 1 comment.

Dev News Friday, Jul 23rd, 2010 at 05:12pm
Synthèse d'instruments à cordes

 
Tout d'abord, merci à ceux qui ont commenté le billet d'hier. Nous avons toujours un doute lorsque nous partageons des sons, la notion de  réalisme d'un instrument étant grandement subjective.
 
Nous tentons maintenant d'adapter notre programme de synthèse de sons de guitare à d'autres instruments de la même famille.
Des essais ont été menés pour trouver les paramètres correspondant  aux divers sons de basse (frappée, sans frette, slappée, etc)
 
En parallèle, nous commençons à récolter de la documentation (et à la lire, lorsque nous en avons le courage) sur les autres types d'instruments,  plus ou moins proches.
Si quelques parties de ce que nous avons déjà fait  devrait pouvoir être réutilisées pour la simulation d'autres instruments à cordes (l'amortissement des vibrations d'une corde obéit toujours aux mêmes lois physiques), pour les bois ou les cuivres, il faudra tout reprendre à zéro.
 
Pour l'instant, donc, nous nous contentons de faire un tour d'horizon, et de travailler sur le son de la guitare et des instruments apparentés.
 
by Olivier Guillion
 1 comment.

Dev News Thursday, Jul 22nd, 2010 at 05:15pm
Virtual Guitarist ?

 
Ces derniers jours, nous avons mené quelques expérimentations dans le domaine de la synthèse sonore d'instruments à cordes, et plus spécialement la guitare.
 
MyrScript s'est révélé un atout précieux pour construire les maquettes, régler les divers paramètres, et essayer les solutions techniques possibles.
 
Nous avons pour l'instant arrêté notre choix sur une combinaison de plusieurs méthodes, notamment un banc de filtres d'amortissement couplé à de la synthèse additive.
 
Quel est l'avantage d'une telle génération d'instrument, comparé aux instruments samplés?
 
- Tout d'abord, la dynamique du son est beaucoup plus importante. Pas la peine de filtrer les bruits parasites, d'atténuer la réverbération de la pièce dans laquelle l'enregistrement a eu lieu, etc.
 
- Ensuite, les niveaux de vélocité (la puissance de jeu) sont infinis, puisque calculés et non stockés.
 
- L'instrument est configurable à l'envi, en modifiant les paramètres de génération, ce qui n'est pas le cas des instruments samplés.
 
- La possibilité de produire facilement un son différent en fonction de la corde, une même note pouvant être jouée par des cordes différentes (pas encore abordé dans notre maquette)
 
- La possibilité de pousser plus loin l'humanisation et le réalisme de l'instrument, en gérant les bruits des doigts sur les cordes, les résonnances par sympathie, etc. (pas encore abordé dans notre maquette)
 
 
- Enfin, la légèreté, une guitare virtuelle complète occupant seulement au plus quelques kilo-octets, contre des dizaines de méga-octets pour un enregistrement de guitare en 3 couches de vélocités
 
Mais nous atteignons là les limites de la maquette en MyrScript. Outre le temps de calcul, bien plus long que celui d'un "vrai" programme en C, nous n'avons pas écrit l'éditeur pour les paramètres du synthétiseur, ce qui nous oblige à les régler "à la main". Soyez donc indulgents sur les démos, une interface graphique devrait permettre d'affiner plus précisément tous les réglages.
 
A titre d'exemple donc, des extraits MIDI glanés ça et là sur le net, joués avec une guitare "standard", aux paramètres passe-partout (tout cela généré, je le rappelle, entièrement par notre programme en MyrScript) :

Exemple 1
Exemple 2
Exemple 3
Exemple 4
Exemple 5

Et enfin, pour le "fun", quelques sons plus ou moins étranges issus des manipulations des divers paramètres. Ils ont le mérite, à défaut de présenter des sons réalistes, de montrer l'étendue de ce qu'on peut ajuster.  
 
Click

 
Maintenant, la question principale reste entière : qu'allons-nous faire d'une telle technologie ?  
Etendre les sons d'Harmony / Melody avec ce générateur d'instruments virtuels, s'adresser spécifiquement les guitaristes, en leur offrant un jeu d'outils et de sons dédiés ? Un module additionnel destiné à générer des sons de guitare, à la manière de Virtual Singer ?  
 
Nous y réfléchissons...
by Olivier Guillion
 15 comments.

Dev News Wednesday, Jul 21st, 2010 at 04:49pm
Kooplet étape 57

La version 0.4.0 ß de Kooplet a été publiée. Elle propose toute la partie interface de la saisie au microphone. Si l'utilisateur n'a pas auparavant fait un click droit pour autoriser Kooplet à accéder au microphone, la boîte de dialogue du système est affichée.
L'extraction des fréquences possibles semble opérationnelle, un embryon de recherche des notes a été implémenté. Bien entendu, ce n'est qu'une ébauche, cela devra être amélioré.
Pour ceux que la cuisine intéresse, nous utilisons une fenêtre glissante de 2048 octets sur laquelle nous appliquons une FFT. Un lissage triangulaire est forcé sur les données de la fenêtre. A la frame suivante, nous nous décalons de la moitié des données, soit 1024.
Les frames ayant une dynamique trop faible sont filtrées et considérées comme des silences.
Nous obtenons donc, par frame, un vecteur décrivant les pics de fréquence, sur lequel nous appliquons une nouvelle FFT. C'est l'astuce.
Ensuite, il suffit de garder les 5 pics les plus importants et les convertir en fréquence puis en demi-ton.
Le reste de l'algorithme (qui reste à finaliser) devient plus "intelligent", il va devoir traquer de frame en frame, les demi-tons les plus proches pour en déduire les notes.
by Didier Guillion
 7 comments.

Dev News Tuesday, Jul 20th, 2010 at 04:55pm
Kooplet étape 56

Nous sommes toujours sur la saisie des notes via un microphone. Ce n'est pas évident mais nous progressons. L'utilisateur devra cliquer sur une icône, chanter, siffler, jouer de l'harmonica, ou autre, puis arrêter l'enregistrement.
Les transformés de Fourrier, écrites en ActionScript, nécessitent quelques secondes de traitement donc pas de temps réel possible.  
Pour l'instant, par frame de 2048 octets sur un échantillonnage à 44Khz nous extrayons 5 fréquences de notes possibles. Nous passons par une FFT de FFT et les résultats sont encourageants. Il nous reste à mettre au point l'algorithme qui pourra "suivre" les notes dans la matrice de données.
A terme nous espérons que cela facilitera l'accès à Kooplet pour les personnes qui ignorent le solfège mais sont capables de fredonner une mélodie.
Et point important sans être essentiel, c'est très amusant à programmer...
by Didier Guillion
 2 comments.

Dev News Monday, Jul 19th, 2010 at 04:53pm
Kooplet étape 55

Comme introduit à l'étape 49, nous pensons que ce serait sympa que l'on puisse siffler la séquence à rechercher dans un microphone.
Nous avons décidé de faire quelques essais des nouvelles fonctionnalités de Flash 10 dans le domaine des acquisitions numériques.
Nous arrivons à lancer un enregistrement, obtenir les données numériques et y appliquer une FFT pour en extraire la fréquence fondamentale.
Les bases sont posées, maintenant il faut convertir ceci en notes et l'intégrer dans l'interface si les résultats sont satisfaisants.
Sinon, cela partira à la poubelle comme 30% de ce que nous écrivons...
by Didier Guillion
 6 comments.

Dev News Friday, Jul 16th, 2010 at 04:28pm
Kooplet étape 54

Plusieurs améliorations sur le plug-in de Kooplet.
Le curseur de la souris change de forme en fonction de l'objet pointé.
La chargement du plug-in a été visuellement accéléré. Nous utilisons la même vilaine astuce que pour l'iPhone (chut ! il ne faut pas le répéter): tout au début de l'initialisation de l'application nous affichons une capture écran de l'interface...
La différence de temps est facilement perceptible, c'est l'intervalle entre le premier affichage et celui où l'on voit la version apparaître. Nous avons gagné environ 1200 ms. Bien entendu, c'est purement psychologique, pas question de cliquer sur l'interface pendant ce petit délai, mais l'utilisateur a juste le temps de voir les graphismes, de se repérer et de bouger la souris.
Il est maintenant possible de cliquer sur le clavier virtuel ou sur la portée sans ajouter de note afin de pouvoir simplement l'écouter : il suffit  
de maintenir la touche Majuscule enfoncée.
Le poids des images a été revu à la baisse, et malgré la nouvelle image de l'interface nous en sommes à 86 100 octets.
Sauf suggestion ou remarque particulière, nous estimons que le plug-in (actuellement v 0.3.6) réponds globalement à la demande, nous allons maintenant travailler sur l'aspect de la page HTML et à la rédaction de la documentation.
by Didier Guillion
 2 comments.

Dev News Thursday, Jul 15th, 2010 at 05:07pm
Kooplet étape 53

 
Nous nous sommes attachés à tenter de réduire le délai de chargement du plug-in Flash.  
Il faut attendre en effet environ une seconde et demie pour voir le contenu du plug-in à chaque rechargement de page.
Nos tests ont montré que 80% de ce temps est passé à initialiser le moteur de Flash.  
 
Le lancement de l'application elle-même ne prend que les 20% restants. Il est donc inutile de nous embêter pour espérer gagner si peu.
 
Nous allons bientôt relancer les "spiders" à la recherche de nouveaux fichiers pour compléter la base.
Il nous faut aussi programmer la collecte des déchets, qui vérifie que les fichiers déjà en base sont toujours valides. Au cours de nos tests de recherche, nous avons déjà trouvé quelques liens brisés...
by Olivier Guillion

Dev News Tuesday, Jul 13th, 2010 at 04:42pm
Kooplet étape 52

Aujourd'hui nous nous sommes consacrés aux remarques de nos gentils visiteurs et beta testeurs.
Certaines icônes ont été redessinés, et la gomme, (qui ne me plaisait pas non plus d'ailleurs) mise à la poubelle, qui la remplace donc.
C'est plus clair.
On nous a signalé un décalage de fréquence à la quinte (mais comment il fait Sylvain, c'est un X-Men ou quoi ?) cela a été corrigé.
Enfin, nous avons trouvé (non sans mal) le moyen de recevoir les évènements clavier. La touche espace démarre la musique, la touche Suppression efface la dernière note, etc.
Certaines touches (QZSEDF...) ont été assignées à des hauteurs de notes. Mais là on se heurte à un gros problème de conception de Flash, impossible d'obtenir un KeyCode indépendant du type de clavier. Cela marchera donc sur les claviers Français mais pas sur les autres. A moins que nous ne trouvions une astuce.
Et d'une manière générale tout a été légèrement accéléré en supprimant des ré-affichages inutiles.
Note: Il est souvent nécessaire de vider le cache du Navigateur pour bénéficier de la dernière version du plug-in. Nous en sommes à 0.2.9.
by Didier Guillion
 11 comments.

Dev News Monday, Jul 12th, 2010 at 04:48pm
Kooplet étape 51

Comme promis la première version du plug-in Flash de Kooplet a été publiée. Nous sommes encore en bêta bien sur, il faudra être indulgent.
Cela ressemble à ceci :

Apparemment tout fonctionne pas trop mal, il y a le son, l'interface (avec de vrais morceaux de boutons dedans) et la communication avec le JavaScript de la page HTML.
Nous obtenons un .SWF de 79 047 octets, ce qui est léger. Le cahier des charges a été respecté. Chez nous, cela prends moins de deux secondes à se charger.
Vous pouvez tester ici :
http://www.kooplet.com/main.html
 
Les rapports sont à envoyer sur nos emails respectifs, Didier si vous êtes sur Mac, Olivier pour Windows et Linux.
Maintenant, il faut tester sur toutes les plateformes en notre possession.
Nous essayons d'installer Flash 10 sur Linux et apparemment ce n'est pas simple (j'entends Oliver soupirer et se marrer en dessous), cela fera certainement l'objet d'un billet corrosif demain...
by Didier Guillion
 12 comments.

Dev News Friday, Jul 9th, 2010 at 04:55pm
Kooplet étape 50

 
Tout est maintenant en place. Nous avons programmé un petit synthétiseur de type analogique, afin d'éviter d'avoir à embarquer dans le plug-in flash des échantillons complets d'instruments.
Le son ne sera donc pas celui d'un instrument réel, mais un son synthétique, que nous essayons de rendre le plus agréable possible.
 
Pour l'instant, il s'agit d'un travail en synthèse additive, auquel nous avons adjoint une petite réverbération, afin de le rendre moins sec. Le but est évidemment de conserver une taille réduite au programme, mais il faut également surveiller les performances, afin de ne pas prendre trop de temps machine pour le jeu de la musique.
 
Nous travaillons sur cette dernière contrainte, ActionScript n'étant pas un foudre de guerre, et les calculs de génération sonore étant assez gourmands.
 
Nous devrions proposer une première version, vous permettant d'essayer tout cela par vous-même en début de semaine prochaine.
 
Bon week-end !
by Olivier Guillion
 1 comment.

Dev News Thursday, Jul 8th, 2010 at 04:44pm
Kooplet étape 49

Maintenant que nous avons compris comment fonctionne l'affichage sous ActionScript : une collection d'objets que l'on peut tagger et manipuler à envie, nous avons repris nos tracés graphiques afin de les hiérarchiser et des les optimiser. Par exemple, ce n'est pas la peine de redessiner tout le clavier si une seule touche change : Il suffit d'ajouter le graphisme de la touche appuyée à la liste et de le supprimer quand elle est relâchée, facile.
Le calage des symboles musicaux a été peaufiné, de petites flèches montrent si on est en mode insertion de symbole ou remplacement.

Nous avons rencontré un problème étrange de mise à jour du plug-in sous FireFox, nous avions beau le remplacer, vider le cache, c'était toujours l'ancienne version qui était utilisée. Nous affichons donc maintenant la version sur le plug-in.
On peut considérer que tout ce qui est graphique et ergonomie est finalisé. Nous avons commencé à définir les objets sonores qui vont permettre de jouer la musique. Nous avons basé la conception sur des objets indépendants afin de pouvoir les réutiliser si jamais nous devions écrire un jour un autre plug-in Flash.
A la lecture des manuels nous avons découvert qu'il était possible de faire des acquisitions de données numérique via le microphone.
Ce serait sympa de pouvoir siffler la mélodie plutôt que de la saisir à la souris, non ? Mais ceci est une autre aventure.
by Didier Guillion

Dev News Wednesday, Jul 7th, 2010 at 04:46pm
Kooplet étape 48

Quand la page web, contenant le plug-in, affiche le résultat de la recherche, on peut demander de jouer un extrait de chacun des résultats.
Il fallait implémenter cela dans la version Flash. Nous avons réfléchi à plusieurs solutions et avons retenu celle-ci : comme une instance du plug-in Flash est chargée, la page HTML va l'invoquer via JavaScript pour lui demander de jouer la séquence. Sur le papier, cela réduisait la taille de la page HTML et accélérait le chargement. Nous avons donc cherché comment un plug-in Flash pouvait invoquer des méthodes JavaScript avec passage de paramètres et l'inverse.
Et en fait, c'est hyper simple, cela a marché du premier coup et à merveille. Une fois encore "Bravo Adobe !"
Maintenant, nous cherchons un moyen de restituer la musique autrement que par une simple (moche) onde sinusoïdale, une fois fait, une première bêta du plug-in sera proposée. C'est pour nous un genre de retour aux sources (au propre comme au figuré), nous travaillons sur des problèmes de restitution sonore avec contrainte de taille mémoire depuis 1984...
A noter, au passage, que théoriquement, le plug-in Flash devrait fonctionner sans problème sur Mac, Windows et... Linux.
by Didier Guillion
 3 comments.

Dev News Tuesday, Jul 6th, 2010 at 05:03pm
Kooplet étape 47

Deux jours à s'arracher les cheveux sur un problème de perte de mémoire avant de comprendre que les tracés graphiques fait via "addChild" s'ajoutaient au tracés déjà faits. Il nous a suffit de "taguer" les objets graphique et de les supprimer simplement avant chaque affichage. Le plug-in est maintenant propre au niveau de la gestion mémoire et c'est un grand pas en avant.
La totalité des fonctionnalités prévues dans notre cahier des charges initial est maintenant implémentée et fonctionnelle, il nous reste encore à tester tout cela quelques heures et nous pourrons publier une première version.
La taille du .swf généré est tout à fait correcte : 76 677 octets, ce sera donc très léger pour notre serveur.
Nous allons également essayer de prévoir quelques raccourcis clavier mais pour l'instant, impossible de capturer les évènements clavier...
 
Nous en sommes là :

 
Pour résumer, nous sommes globalement très impressionnés par la qualité et la robustesse de Flex/ActionScript/Flash, Adobe a vraiment fait un bon boulot. Les documentations en Français, la multitude de développeurs qui publient des explications et des exemples sont des cerises sur le gâteau fortement appréciées. Nous comprenons maintenant le refus d'Apple de laisser tourner des applications Flash sur iPhone, ce serait une sacré concurrence à l'Itune Store...
by Didier Guillion

Dev News Monday, Jul 5th, 2010 at 04:47pm
Kooplet étape 46

 
Pour l'instant, le plug-in Flash n'était compilé que sur Macintosh, à l'aide de la version d'essai de Adobe Flash Builder.
 
Nous avons donc recherché les solutions pour faire de même sur Windows. Nous nous sommes arrêtés sur FlashDevelop, une solution gratuite et open source qui offre une interface de développement (IDE) autour des compilateurs et autres outils mis à disposition gratuitement par Adobe.
 
Surprise, pour un freeware open source, FlashDevelop est assez bien fait, compréhensible, et apparemment assez solide. Nous avons pu rapidement créer un programme "Hello world", puis recompiler une petite applet musicale open source proposée par l'excellent André Michelle, pour enfin terminer par le transfert des fichiers source de Kooplet et leur recompilation. Tout ceci est passé comme une lettre à la poste.  
 
Seul problème constaté jusqu'ici, mais peut-être dû à une mauvaise installation : le "profiler"montre des pertes de mémoire qui n'existent que lors de l'analyse, et ne sont pas présentes lors du lancement réel du plug-in dans une page Web. Pas très pratique pour traquer les problèmes de consommation de mémoire, par ailleurs assez récurrents dans Flash, apparemment...
by Olivier Guillion

Dev News Friday, Jul 2nd, 2010 at 04:51pm
Kooplet étape 45

 
Nous avons trouvé une petite ligne dans la documentation Adobe qui explique que la communication Javascript/Flash ne fonctionne pas en mode local mais uniquement sur un serveur (problème de bac à sable). Et de fait, sur notre serveur local, la page web interroge maintenant correctement le plug-in et le plug-in reçoit bien ses paramètres. Ceci a été validé sur différents navigateurs, sur Mac et Windows.
L'édition des notes et leur représentation ont été calés finement.
Lorsque la note est posée, un écho est donné. On peut jouer la séquence saisie. Pour l'instant c'est un simple signal sinusoïdal à la bonne fréquence, on compliquera plus tard.
Première implémentation du clavier virtuel, visualisation des notes jouées, click sur le clavier pour insérer des notes.
Le design du clavier a été entièrement repris.
Tous les points essentiels ont été couverts superficiellement, maintenant, il va falloir traquer les pertes de mémoire (porosité) qui apparemment sont conséquentes et éventuellement optimiser certaines parties.
Nous en sommes là :

Bon weekend, restez au frais !
by Didier Guillion

Dev News Thursday, Jul 1st, 2010 at 04:48pm
Kooplet étape 44

 
Parallèlement au développement Flash, nous avons terminé la mise en place du nouveau système de bases de données et de recherche sur le serveur.  
Ceci a été mis en ligne à l'adresse habituelle.
 
Seules les recherches ont pour l'instant été testées, il nous faut encore bien vérifier avant de relancer nos robots qui indexent de nouveaux morceaux, afin de s'assurer que les bases sont complétées correctement.
 
Nous avons également mené des essais d'utilisation du nouveau module Flash dans les pages de recherche, et tout semble fonctionner parfaitement. Cette version n'est pas encore en ligne, car le programme Flash est encore ergonomiquement incomplet, mais cela ne devrait plus être qu'une question de jours avant une première version alpha testable de Kooplet, totalement affranchie du Myriad Music Plug-in.
by Olivier Guillion


Full view
Reduced view
Most recent first
Oldest first
All
Didier Guillion
Olivier Guillion
Sylvie Ricard
All
Dev News
Technical
Mood
Memories
Myriad Life
To be seen
30 previous days
Apr 2006
May 2006
Jun 2006
Jul 2006
Aug 2006
Sep 2006
Oct 2006
Nov 2006
Dec 2006
Jan 2007
Feb 2007
Mar 2007
Apr 2007
May 2007
Jun 2007
Jul 2007
Aug 2007
Sep 2007
Oct 2007
Nov 2007
Dec 2007
Jan 2008
Feb 2008
Mar 2008
Apr 2008
May 2008
Jun 2008
Jul 2008
Aug 2008
Sep 2008
Oct 2008
Nov 2008
Dec 2008
Jan 2009
Feb 2009
Mar 2009
Apr 2009
May 2009
Jun 2009
Jul 2009
Aug 2009
Sep 2009
Oct 2009
Nov 2009
Dec 2009
Jan 2010
Feb 2010
Mar 2010
Apr 2010
May 2010
Jun 2010
Jul 2010
Aug 2010
Sep 2010
Oct 2010
Nov 2010
Dec 2010
Jan 2011
Feb 2011
Mar 2011
Apr 2011
May 2011
Jun 2011
Jul 2011
Aug 2011
Sep 2011
Oct 2011
Nov 2011
Dec 2011
Jan 2012
Feb 2012
Mar 2012
Apr 2012
May 2012
Jun 2012
Jul 2012
Aug 2012
Sep 2012
Oct 2012
Nov 2012
Dec 2012
Jan 2013
Feb 2013
Mar 2013
Apr 2013
May 2013
Jun 2013
Jul 2013
Aug 2013
Sep 2013
Oct 2013
Nov 2013
Dec 2013
Jan 2014
Feb 2014
Mar 2014
Apr 2014
May 2014
Jun 2014
Jul 2014
Aug 2014
Sep 2014
Oct 2014
Nov 2014
Dec 2014
Dec 21st, 2014 at 07:53am 
Comment from Antoine Bautista
Et le Printemps....?
Dec 19th, 2014 at 05:03pm 
Article from Olivier Guillion
Acam Winter étape 24
Dec 19th, 2014 at 05:03pm 
Article from Olivier Guillion
Acam Winter étape 24
Dec 18th, 2014 at 04:49pm 
Article from Didier Guillion
ACAM sur Mac étape 7
Dec 17th, 2014 at 05:04pm 
Article from Olivier Guillion
Acam Winter étape 23
Dec 16th, 2014 at 04:55pm 
Article from Didier Guillion
ACAM sur Mac étape 6
Dec 15th, 2014 at 05:08pm 
Article from Olivier Guillion
Acam Winter étape 22
Dec 13th, 2014 at 09:33am 
Comment from Antoine Bautista
0 + Album...
Dec 12th, 2014 at 05:00pm 
Article from Didier Guillion
ACAM sur Mac étape 5
Dec 12th, 2014 at 05:00pm 
Article from Didier Guillion
ACAM sur Mac étape 5

Top of page
Last update:  (c) Myriad