Skyduino:~#
Articles
arduino, programmation, projet

Miduino – le lecteur de .mid arduino – v2 !

Salut à tous !

Comme j’avais un peu de temps aujourd’hui j’ai tenté une petite màj de mon lecteur de .mid sur base arduino.

Comme la fac approche à grand pas et que je n’aura alors plus beaucoup de temps libre, j’ai changé de méthode pour rendre le développement plus facile et donc plus rapide.
Je ne sais pas si j’aurai le temps de tout finir avant la rentré j’espère mais malheureusement je ne pense pas …

Bon en attendant je vous rappelle le principe de ce projet.
Les fichiers midi (au format 0) avec une extension .mid sont stocké sur la carte SD, chaque fichier porte un nom du genre 1.mid, 2.mid, …
Le lecteur lit chaque fichiers les un après les autres en envoyant sur le port série les notes au format midi, notes qui seront ensuite jouer par un synthétiseur.

Le but étant que le tout soit portable et bien sur à base d’arduino.
Dans la premiére version j’utilisai un écran lcd 2×16 et des boutons, par conséquent j’avais besoin de géré l’affichage restreint du lcd et le debounce des boutons, trop lourd, trop de bug, pas le temps pour ça !
La premiére version était faite pour papyduino du forum arduino.cc mais vu comment je patinai pour géré le couple boutons/lcd j’ai arrêté le massacre …
Cependant j’aime pas laisser tomber les gens, donc je vais voir de trouver le code source du Mr Midi modifié qu’il utilisait et de le patcher/recompiler pour un ATmega328.

Cette nouvelle version est basé sur une carte arduino UNO, une shield mSD-shield de watterott avec l’afficheur TFT qui va avec et d’un cable midi.
Comme vous pouvez le voir c’est vraiment bien plus clean et aussi plus simple à faire soi même car à par le cable midi tout est déja prés.

J’ai cependant rencontré un « petit » probléme avec le bootloader arduino, mon programme atteint les 30Ko or le bootloader optiboot de l’arduino UNO comporte un vilain bug qui empêche l’upload de plus de 28672 octet, c’est bête …
Heureusement le probléme fut vite réglé avec l’aide de al1fch !
Pour ceux qui sont intéressait voila le bootloader modifié :
http://arduino.cc/forum/index.php/topic,64105.0.html
Si vous avez deux cartes arduino (-> arduinoISP) ou un programmateur ISP faite la màj c’est toujours 1.5Ko de flash de gagner !

Bon ensuite point important le GUI, j’ai repris ma méthode déja bien rodé que j’avais utilisé pour le projet arduinoscillo.
Le gui est simple mais efficace, un titre, la gestion du rétro-éclairage, la calibration.
sur la gauche une colonne pour l’affichage des évènements midi.
Sur la droite 3 zones, en haut les info du fichiers en cours de lecture (nom, temps restant, tempo en bpm), au milieu la console qui affiche les paroles de la chanson (si il y en as) ou les divers messages/erreurs.
Et pour finir tout en bas les contrôles, avant/arriére, play/pause et stop.

Et pour ceux qui ont rien compris à mon charabia, une photo :

Alors je vais être franc la version actuelle du code est un peut (beaucoup) bugé !
Au menu des bug :
– l’affichage du temps restant bloqué au max,
– la lecture du fichiers suivant qui ne fait pas (probléme récurent même avec l’ancienne version),
– les événements midi ne s’affiche pas dans la liste alors que la fonction pour elle marche (wtf !?),
– l’affichage des meta/sysex n’est pas encore au point,
– la gestion du tempo est prévu mais pas encore mis en place (cf: factor à coté de bpm … 10 = vitesse normal, 1 = super lent, 90 = super rapide).

Et oui je sais ça fait pas mal de bug assez conséquent !

Bon basta voici le code actuelle, il est composé de 7 fichiers.
MidiParser.cpp et MidiParser.h -> la class de lecture de .mid,
Miduino.pde -> le prog principal,
calibration.pde -> la routine de base pour la calibration de l’écran lcd,
gui.pde -> les routines de dessins du gui
touch.pde -> les routines pour la vérification du tactile
et point.h -> les coordonnées des points constituant le gui.

Pour le zip, durant la période de dev je poste sur le forum arduino.cc, une fois ok je rapatrié tout sur le blog.
http://arduino.cc/forum/index.php/topic,70526.msg524641.html#new

Discussion

Pas encore de commentaire.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

Skyduino devient Carnet du Maker

Le site Carnet du Maker remplace désormais le blog Skyduino pour tout ce qui touche à l'Arduino, l'informatique et au DIY.