Go Down

Topic: Player Midi Autonome (Read 8624 times) previous topic - next topic

PapyDuino

#15
Jun 25, 2011, 10:35 pm Last Edit: Jun 26, 2011, 07:12 am by Jean-François Reason: 1
Re
MsTimer2 n'est pas content !
Code: [Select]

MsTimer2.cpp:31:22: error: MsTimer2.h: No such file or directory
MsTimer2.cpp:32: error: 'MsTimer2' has not been declared
MsTimer2.cpp:33: error: 'MsTimer2' has not been declared
MsTimer2.cpp:34: error: 'MsTimer2' has not been declared
MsTimer2.cpp:35: error: 'MsTimer2' has not been declared
MsTimer2.cpp:36: error: 'MsTimer2' has not been declared
MsTimer2.cpp:38: error: 'MsTimer2' has not been declared
MsTimer2.cpp: In function 'void set(long unsigned int, void (*)())':
MsTimer2.cpp:42: error: 'TIMSK2' was not declared in this scope
MsTimer2.cpp:42: error: 'TOIE2' was not declared in this scope
MsTimer2.cpp:43: error: 'TCCR2A' was not declared in this scope
MsTimer2.cpp:43: error: 'WGM21' was not declared in this scope
MsTimer2.cpp:43: error: 'WGM20' was not declared in this scope
MsTimer2.cpp:44: error: 'TCCR2B' was not declared in this scope
MsTimer2.cpp:44: error: 'WGM22' was not declared in this scope
MsTimer2.cpp:45: error: 'ASSR' was not declared in this scope
MsTimer2.cpp:45: error: 'AS2' was not declared in this scope
MsTimer2.cpp:46: error: 'OCIE2A' was not declared in this scope
MsTimer2.cpp:49: error: 'CS22' was not declared in this scope
MsTimer2.cpp:50: error: 'CS21' was not declared in this scope
MsTimer2.cpp:50: error: 'CS20' was not declared in this scope
MsTimer2.cpp:53: error: 'CS21' was not declared in this scope
MsTimer2.cpp:54: error: 'CS22' was not declared in this scope
MsTimer2.cpp:54: error: 'CS20' was not declared in this scope
MsTimer2.cpp:57: error: 'CS22' was not declared in this scope
MsTimer2.cpp:57: error: 'CS20' was not declared in this scope
MsTimer2.cpp:58: error: 'CS21' was not declared in this scope
MsTimer2.cpp: At global scope:
MsTimer2.cpp:110: error: 'MsTimer2' has not been declared
MsTimer2.cpp: In function 'void start()':
MsTimer2.cpp:114: error: 'TCNT2' was not declared in this scope
MsTimer2.cpp:115: error: 'TIMSK2' was not declared in this scope
MsTimer2.cpp:115: error: 'TOIE2' was not declared in this scope
MsTimer2.cpp: At global scope:
MsTimer2.cpp:125: error: 'MsTimer2' has not been declared
MsTimer2.cpp: In function 'void stop()':
MsTimer2.cpp:127: error: 'TIMSK2' was not declared in this scope
MsTimer2.cpp:127: error: 'TOIE2' was not declared in this scope
MsTimer2.cpp: At global scope:
MsTimer2.cpp:135: error: 'MsTimer2' has not been declared
MsTimer2.cpp:146: error: expected constructor, destructor, or type conversion before '(' token


A+
PapyDuino


skywodd

Dans MsTimer2.h
remplace #include <MsTimer2.h>
par #include "MsTimer2.h"

Bon sinon j'ai avancé un (tout) petit peu !
Tout mes problèmes viennent d'une mauvaise gestion des méta et des sysex !
Je joint le .mid de test et ça version décomposé en csv.

Pour le parsing du header aucun problème delta/tick = 960 c'est ok !
Mais tempo devrait être de 365854 (soit 365ms pour 1/4 de note) mais la meta qui lui est associé n'est jamais parser par mon prog !
Je suspect lourdement les "sequencer_specific" sur la track 0 de foutre le bordel !

Il faudrait que j'arrive à géré TOUTE les meta correctement pour ne pas me retrouver avec un offset qui décale tout après. Des idées pour régler ce problème ?
Des courageux pour m'aider ^_^ ?
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

PapyDuino

Bonjour skywodd
On reprend
Je n'ai pas trouvé  #include <MsTimer2.h>
dans  MsTimer2.h  alors j'ai fouillé, et je l'ai trouvé dans  MsTimer.ccp
J'ai fait la correction, et le chargement se fait sans erreur
Je vais le tester sur mon kit
Par contre, le fichier .csv ressemble à je que j'obtiens avec mon séquenceur Anvil Studio
J'ai fait des copies d' écran, je te les joins à tout hazard
a+
PapyDuino


PapyDuino

Il manque la copie d' écran 1; je n'ai pas fait: (more attachments)
A+
PapyDuino

skywodd


Je n'ai pas trouvé  #include <MsTimer2.h>
dans  MsTimer2.h  alors j'ai fouillé, et je l'ai trouvé dans  MsTimer.ccp


Oups désolé oui c'était dans le .cpp désolé :smiley-red:


J'ai utiliser midi2csv pour décomposé le .mid mais avec un éditeur hexa et tes capture d'écran je me rend compte que les "sequencer_specific" du csv contiennent une date et le nom du piano.
Je pense que c'est là le problème en plus le .mid contient deux track je vais reprendre mon prog pour voir au pourquoi certaine meta sont pas prise en compte.
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

skywodd

#20
Jun 26, 2011, 04:13 pm Last Edit: Jul 04, 2011, 10:56 pm by skywodd Reason: 1
Grande nouvelle !
J'ai finalement réussi à géré les timing et les meta !

Zip joint.
Lit les .mid avec plusieurs track, mais une track par une track ;)

Edit: Petit bug que je viens de remarquer une fois le .mid finit la variable qui contient le nombre de byte restant en lecture fait un roll-over.
dans le fonction validateHeader (midi.pde ligne 73) j'ai oublier de changer la vérification du type du .mid:
if(fileFormat != 0x00){ ---> if((fileFormat == 0x00) || (fileFormat == 0x01)){

Reste le menu + bouton et quelque petite amélioration mais ce coup ci c'est bien parti ^^
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

PapyDuino

Bonsoir skywodd
Du coté bonnes nouvelles: Hier,près avoir été chercher les 2 328, j' ai trouvé chez LECL.RC des lecteurs de carte SD USB pour 3,49€ pour récupérer le support SD.
Je crois même qu' il y a ces fameux buffers en CMS que l'on peut conserver, mais il va falloir jouer fin au bistouri !
Ce matin, vide grenier: 3 petites alims 9pour 4€, 3 imprimantes jet d' encre Epson
Un poste radio stéréo avec micro et sortie casque, piles secteur pour 2€ pour un autre projet.
Du côté des mois bonnes nouvelles:
J' ai chargé avec succès le dernier sketch avec les modifs que tu m' as indiquées.
Résultat inchangé, la ligne du haut de l' afficheur est noire, comme avec mon 168 HS, ou même sans Atméga sur le support.
cà m' a permis de voir que mon afficheur avait 24 colonnes et pas 16.
J' ai vu dans le PinMapping:

>>/* LCD PROPERTIES */
>>#define LCD_ROW 2
>>#define LCD_COL 19

Est-ce que ce n' est pas 16 au lieu de 19 ?
J' ai mis 24, mais çà ne change rien
J'ai une nappe 16 conducteurs entre le LCD et la platine; le schéma ne représente que 12 connections; 8 si on exclue les alims.
Est-ce que c' est tout de même du 4 bits ?
Il faut que je décortique le PinMapping pour essayer de cerner le problème.
A+ d' infos
PapyDuino

skywodd


Du coté bonnes nouvelles: Hier,près avoir été chercher les 2 328, j' ai trouvé chez LECL.RC des lecteurs de carte SD USB pour 3,49€ pour récupérer le support SD.
Je crois même qu' il y a ces fameux buffers en CMS que l'on peut conserver, mais il va falloir jouer fin au bistouri !
Ce matin, vide grenier: 3 petites alims 9pour 4€, 3 imprimantes jet d' encre Epson
Un poste radio stéréo avec micro et sortie casque, piles secteur pour 2€ pour un autre projet.

Bonne pioche dis donc ^^


J' ai chargé avec succès le dernier sketch avec les modifs que tu m' as indiquées.
Résultat inchangé, la ligne du haut de l' afficheur est noire, comme avec mon 168 HS, ou même sans Atméga sur le support.
cà m' a permis de voir que mon afficheur avait 24 colonnes et pas 16.
J' ai vu dans le PinMapping:

>>/* LCD PROPERTIES */
>>#define LCD_ROW 2
>>#define LCD_COL 19

Est-ce que ce n' est pas 16 au lieu de 19 ?
J' ai mis 24, mais çà ne change rien
J'ai une nappe 16 conducteurs entre le LCD et la platine; le schéma ne représente que 12 connections; 8 si on exclue les alims.
Est-ce que c' est tout de même du 4 bits ?
Il faut que je décortique le PinMapping pour essayer de cerner le problème.

:smiley-eek: je viens de regarder le schéma j'avais même pas remarquer un truc !
J'étais sur le point de te dire "Si il s'affiche une ligne noir sur l'écran alors qu'il n'y a pas d'ATmega c'est surement qu'il faut régler le contraste, il doit y avoir un potentiomètre pour ça" et là paf mauvais click j'ouvre le schéma, je regarde et ... PAS DE POTENTIOMÈTRE !
J'ai crois bien que t'est atmega n'ont en réalité jamais grillé ^^, Câbler le contraste (pin 3 du lcd) à la masse revient à le rendre ... noir (contraste 100%).

Pour le LCD_COL c'est bien 16 pour moi et 24 pour ton kit ;)
Je devais plus être très calme quand j'ai fait la parti lcd ^^"

Pour résoudre ton probléme, un potentiomètre de 10k entre 0v et 5v avec le curseur en patte 3 du lcd (il faudra couper la piste ;)) et hop tu pourra régler le contraste !
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

skywodd

voila la modif à faire ;)

Voir image jointe.
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

PapyDuino

Bonjour skywodd
>>Pour résoudre ton probléme, un potentiomètre de 10k entre 0v et 5v avec le curseur en patte 3 du lcd (il >>faudra couper la piste smiley-wink) et hop tu pourra régler le contraste !

Je pense malheureusement que la solution n'est pas si simple.
Sur mon kit, j'ai bien le potar de contraste, et il fonctionne!
quand je dis noir, comme le fond est vert, çà fait gris ou noir suivant le réglage, mais çà ne change rien!
j'ai aussi un switch pour le rétroéclairage, et il fonctionne.
J'ai des LCD 2X16 neufs, blancs sur fond bleu, pas encore testés, et si je ne m'en sors pas avec mon kit, je vais faire le montage Arduino pour enfin voir quelque chose sur mon LCD
Ce qui me chagrine, c' est la nappe 16 fils; a-t-elle été utilisée par simplicité car il y a un connecteur 2X8 côté afficheur, ou est-ce du 8 bits, mais que devrait-on voir dans ce cas là ?Je te tiens au courant de l' évolution.
Merci pour ta persévérance
PapyDuino

skywodd


Sur mon kit, j'ai bien le potar de contraste, et il fonctionne!
quand je dis noir, comme le fond est vert, çà fait gris ou noir suivant le réglage, mais çà ne change rien!

C'est bizarre il est pas indiqué sur le schéma :~ donc en plus le schéma serait pas le bon ... c'est louche tout ça.
Le mieux ce serais que tu tente de le câbler sur ton arduino avec l'exemple liquidcystal:
http://www.arduino.cc/en/Tutorial/LiquidCrystal
Comme ça tu règle le contraste, ensuite tu le rebranche sur ton kit sans rien toucher voir ce qui se passe.


J'ai des LCD 2X16 neufs, blancs sur fond bleu, pas encore testés, et si je ne m'en sors pas avec mon kit, je vais faire le montage Arduino pour enfin voir quelque chose sur mon LCD

Ok.


Ce qui me chagrine, c' est la nappe 16 fils; a-t-elle été utilisée par simplicité car il y a un connecteur 2X8 côté afficheur, ou est-ce du 8 bits, mais que devrait-on voir dans ce cas là ?

Les nappes à 16 fils pour écran lcd c'est un grand classique pas chère, 14 fils pour le controle du lcd et 2 pour le rétro éclairage, c'est obliger que le lcd travail en 4bits l'ATmega168 n'as pas assez d'entrées/sorties pour faire du 8bits.

Moi de mon coté je suis bloqué, j'ai envoyer un mail à l'équipe de dev arduino pour voir si il contait faire un mise à jour de la librairie SD, car je viens de remarquer qu'elle ne comporte aucune fonction pour lister les fichiers(c'est c*n). En parallèle je suis en train de développé une librairie dans le même genre mais à ma sauce, je vous tient au courant.
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

PapyDuino

Bonjour skywodd
Je continue à galérer
En ce qui concerne mon kit, ce n'est pas le VRAI Mr Midi 2 car comme je te l' avais dit, le mien est d'origine allemande, et ils on détourné l' entrée IR pour en faire un contrôle de tempo avec un ILS, et je n'ai jamais trouvé de plan modifié !
Pour essayer d' avancer et comprendre, je suis donc parti de l'arduino je n' ai cablé que le LCD suivant le schéma joint mais écran noir !
Même en allumant le rétroéclairage, rien !
J'ai suivi ton PinMapping que je te joins pour confirmation j' ai compris que tu utilisais les AnalogIn, mais comme je sais qu' on peut les utiliser en sortie, çà ne m' a pas choqué; ai-je mal interprété ?
Je ne comprends pas le PinMaping de la SD.
Je vais faire le montage HELLO WORD pour tester le LCD
Je te joins le JPG de mon afficheur, mais c' est un classique, je pense.
A+
papyDuino

skywodd


En ce qui concerne mon kit, ce n'est pas le VRAI Mr Midi 2 car comme je te l' avais dit, le mien est d'origine allemande, et ils on détourné l' entrée IR pour en faire un contrôle de tempo avec un ILS, et je n'ai jamais trouvé de plan modifié !

Arg! pas de schéma ... Qu'est ce qu'il ont bien pu modifier d'autre, c'est ça la question !
Le potentiométre, l'ILS, ...


Pour essayer d' avancer et comprendre, je suis donc parti de l'arduino je n' ai cablé que le LCD suivant le schéma joint mais écran noir !
Même en allumant le rétroéclairage, rien !

hoho ! Même pas un petit scintillement ? Rien écran noir direct ?
Le rétro éclairage il marche ?


J'ai suivi ton PinMapping que je te joins pour confirmation j' ai compris que tu utilisais les AnalogIn, mais comme je sais qu' on peut les utiliser en sortie, çà ne m' a pas choqué; ai-je mal interprété ?

Oui les analog peuvent marcher en digital, je les est utilisées comme c'était elles sur le schéma de base du kit.


Je ne comprends pas le PinMaping de la SD.

Pour la sd tu as SS (pour activer / désactiver la SD), MOSI, MISO, SCK (broche SPI)
carte SD -> Arduino
SS -> D10
MOSI -> D11
MISO -> D12
SCK -> D13
(après coté sd je sais pas ou ce trouve les broches, pour chaque support c'est différent)


Je vais faire le montage HELLO WORD pour tester le LCD
Je te joins le JPG de mon afficheur, mais c' est un classique, je pense.

Oui ça à l'air d'être un afficheur classique, fait attention la broche R/W doit être relier à la masse.
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

skywodd

J'ai tentez de modifier à ma sauce la librairie SD pour supporter le multi-fichier et quelque fonction bien sympa.
Mon seul lecteur sd étant occuper pour un autre projet y aurai t'il un courageux pour tester ma librairie ?

Les modifications sont un peu barbares par contre, donc un minimum de connaissance de la lib sdfat est requis ^^""
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

PapyDuino

Ouf
Comme quoi, il faut insister!
Sur tes conseils, je suis parti sur "HELLO WORD" avec le LCD 2X24
Donc, connections différentes et tout:  1/2 victoire; çà fontionne.
Donc, reconnections config Midiplayer: OK
Donc, repassage en LCD 2X16 et sketck qui va bien; écran noir: réflection, connection du rétro éclairage:
C'est gagné!
En fait, sur ces LCD blanc sur fond bleu, le contraste n' y fait rien si le rétroéclairage est éteint, et on a un écran noir; par contre, avec le rétroéclairage allumé et le contraste au mini: écran bleu ; c'est normal.
Reste plus qu' a trouver le brochage du support SD et qq boutons, connecter une sortie Midi, et c'est reparti pour les essais !
çà ne se bouscule pas pour participer; çà doit être le chaleur; sont tous à la piscine; 35° à Toulouse !
Bon courage et encore une foi merci !
Je précise que 'ai fait ces essais sur Arduino et pas sur mon kit pour avancer un peu !
A+
PapyDuino

Go Up