Go Down

Topic: [Conseil-Aide] Dev-10628 (MP3 et MIDI) (Read 899 times) previous topic - next topic

AlienArea51

Bonjour @ tous
Donc voilà j'ai reçu la 10628 , donc testé la partie MP3 avec les Sketch's Sparkfun  (OK ,ça fonctionne super bien)
Quand j'ai uploadé le sketch MIDI (SHEET  :0) donc j'ai regardé le schéma pour voir ça :
- GPIO0 Low /GPIO1 Low Puts VS1053 in MP3 Mode
- GPIO0 Low /GPIO1 High Puts VS1053 in MIDI Mode
J'ai donc connecté l'entrée 4(arduino) sur 5v ,uploadé le sketch MIDI (OK ,GOOD)
Sparkfun aurai pu mettre un micro inverseur sur la shield (BREF) .

Je souhaiterai (si c'est possible) réunir les 2 sketchs (MP3-MIDI) ,j'ai fait une tentative ,mais ça merde  :smiley-mr-green:

- Pensez-vous qu'en créant 2 VOID() [ Void MP3() - Void MIDI() ] et faire un test sur l'entrée 4 (GPIO1) dans le Void Loop()  ça pourrai éventuellement fonctionner ?
Les 3 sketchs sont en attachement .

- L'autre (aide ou conseil) pouvoir intégrer le Sketch de skywodd (MIDI PARSER) afin de pouvoir lire des fichiers MIDI sur SD .

Merci à l'avance  ;)
Will





The truth is elsewhere !!

skywodd

Salut,

C'est quoi le but final ?
SD -> Arduino -> VS1053

Je vois mal comment tu veut fusionner mp3 et midi ...

Ps: Si tu ne fournis pas le fichier .cpp de mon parseur ça risque pas de compiler ;)
Zip complet
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

AlienArea51

Salut Skywodd  ;)

Le but ,est d'utiliser la SD de la Dev-10628  ;)  , comme je me vois mal faire ça  :smiley-red: ,car il faut adapter ton prog.

quand je dit fusionner , je pense mettre un commut (soit MP3 ou MIDI) ,cette shield est capable de faire les 2 .
Je me suis peut-etre mal exprimé , chaque sketch (MIDI ou MP3) possède une partie se trouvant dans void loop() ,en mettant ces  2 parties dans un void() example : [ Void MP3() - Void MIDI() ]  et en faisant un test sur l'entrée 4 (GPIO1) qui les oriente vers leur Void() ,je pensais que cela pourrai fonctionner ??

P.S: pour le fichier .cpp ,j'ai voulu le mettre  :smiley-mr-green: mais ,rejetté faute de place  XD
Donc le voici  ;)


@+
Will
The truth is elsewhere !!

skywodd

Ok je vois.

Ce que tu peut faire c'est dans loop() mettre un test du genre :
Code: [Select]
if(digitalRead(4) == HIGH) {
  midi();
} else {
  mp3();
}

Comme tu le disait.

Ou carrément faire une fonction loop() avec rien dedans, et faire le test dans setup() si tu ne veut pas changer de mode en cours de route mais juste au démarage.
Code: [Select]
if(digitalRead(4) == HIGH) {
  for(;;)   // boucle infini
    midi();
} else {
  for(;;)
    mp3();
}


Et mettre le code des loop() d'origine des deux skecth dans mp3() et midi(), avec le code d'initialisation midi/mp3 dans setup().
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

AlienArea51

J'ai donc la 1ere façon croyant que ça fonctionnerai :
Code: [Select]

if(digitalRead(4) == HIGH) {
  midi();
} else {
  mp3();
}

Mais non ,donc ,j'ai isolé toute la partie RESET de chaque et créé 2 procedures reset :
Code: [Select]

if(digitalRead(4) == HIGH) {
resmidi(); 
midi();
} else {
resmp3();
  mp3();
}


ça merde un peu suivant l'ordre ,si je commence par MIDI pour aller vers MP3 ça peut aller (enfin presque) ,par contre l'inverse  :smiley-red:
J'ai fait plusieurs tentatives en vain ,car pratiquement obligé de faire un reset arduino pour revenir à peu près dans l'ordre .
Si tu as un peu regardé les sketchs , il y a la partie reset hard shield (pin 8 ) ,donc essayé de le mettre dans les 2 procedures ,ça fonctionne ,mais il faudrai qu'il le fasse une fois car découpage du son .

A force de chercher je vais (ou on va ) peut-etre y arriver ,franchement je pensais que ça serai plus simple ,mais (SHEET ,pas de bol )  :smiley-mr-green: :smiley-mr-green:
Par contre pas essayé ça :
Code: [Select]

if(digitalRead(4) == HIGH) {
  for(;;)   // boucle infini
    midi();
} else {
  for(;;)
    mp3();
}

@+

P.S: Sinon tes partiels ça se passe bien  :D ;)  (p'tit génie) ?

The truth is elsewhere !!

skywodd

Au pire méthode de brute :
Code: [Select]

byte mode;

void setup() {
  if(digitalRead(4) == HIGH) {
    setupMp3();
    mode = HIGH;
  } else {
    setupMidi();
    mode = LOW;
  }
}

void loop() {
  if(digitalRead(4) != mode) {
    if(!mode == HIGH) {
      setupMp3();
      mode = HIGH;
    } else {
      setupMidi();
      mode = LOW;
    }
  }

  if(mode == HIGH) {
    loopMp3();
  } else {
    loopMidi();
  }
}

C'est pas propre mais bon.


P.S: Sinon tes partiels ça se passe bien  :D ;)  (p'tit génie) ?

Pas trop mal, la comptabilité c'est pas trop ça mais bon, c'est de la compta quoi :smiley-mr-green:
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

AlienArea51

Salut & Merci F.....

Je regarderai ça demain ,car là ,pas trop le temps ,mais c'est vrai vu comme ça ,pourquoi pas !! ;)
Je te dis quoi  ;)

Quote
la comptabilité c'est pas trop ça mais bon, c'est de la compta quoi


C'est clair ,il faut kiffer  XD XD

@+
Will

The truth is elsewhere !!

AlienArea51

Salut Skywodd
Donc ,je me suis inspiré de ton code (apporté quelques modifs) ,ça fonctionne .  XD ;)

Mais ce n'est pas fini ,car il faut encore modifier quelques lignes de code ,car il ne reste plus qu'a intégrer la partie fichier MIDI  :smiley-red:

@+
P.S: ça avance (qui va piano va sano va lontano)  :smiley-mr-green: :smiley-mr-green:
The truth is elsewhere !!

Go Up