Module audio decoder MP3 / Midi VS1053

dior83

New Member
Bonjour à tous,
Voila, mon projet est d'assembler un module audio decoder mp3 VS1053 à un picaxe avec une lecture de musique sur carte SD.
Avez vous une idée pour la programmation de commande et d'assemblage. Plus tard, j'aimerais lui associé une ecran LCd pour connaitre le morceau en lecture.
Salutation à tout les picaxeurs
Lien : http://www.kibuck.com/module-audio-mp3-midi.html
 

BESQUEUT

Senior Member
Selon la doc, il faut au minimum être capable de fournir un bitrate de 8 kbits/s et ça peut monter à 500 kbits/s avec certains formats.
Ca me semble rédhibitoire avec un Picaxe, mais d'autres auront peut-être un avis différent.
 
Last edited:

dior83

New Member
Bonjour,
Je ne suis pas terrible en anglais pour comprendre bien comprendre la doc. Moi je pensais que le circuit était capable de récupérer les données sur la carte SD , le décoder et de l'envoyé directement à des écouteurs via son petit ampli intégré. Et avec le picaxe, j'aurais juste voulu commandé le mode de fonctionnement comme la lecture , stop, etc...
 

BESQUEUT

Senior Member
Même punition, même motif...
Ce type de processeur (remarquable par ailleurs !) est fait pour lire un flux digital audio et le décoder (d'où le nom) en un flux audio analogique, c'est à dire une tension variable capable d'exciter un haut parleur. (lequel est lui-même capable d'exciter votre nerf auditif...)

Un flux digital audio est une succession de bits (en pratique d'octets) décrivant sous forme binaire la tension à créer à chaque instant.
Sans compression le volume est énorme et donc différents algorithmes sont utilisés pour coder l'information. ceci explique la complexité du décodage de certains formats, mais aussi l'existence de bitrates à 8k/s (ce qui est minuscule mais néanmoins hors de porté d'un Picaxe).

Le bitrate est tout simplement le nombre de bits à transmettre chaque seconde. Si l'échantillonnage est sur 16 bits, il faut 2 octets à chaque échantillon...
Les données peuvent venir d'où vous voulez :
- vous pouvez les créer par programme : ça s'appelle un synthétiseur,
- vous pouvez les lire depuis un autre appareil numérique,
- vous pouvez les lire sur différents types d emémoire, dont par exemple une SD Card ou une clé USB, ou un disque dur ou pas
 

BESQUEUT

Senior Member
Je ne suis pas terrible en anglais pour comprendre bien comprendre la doc.
C'est un très sérieux handicap pour mettre en oeuvre ce type de circuit...
Je ne voudrais surtout pas vous décourager, parce que justement l'électronique est peut-être pour vous un moyen de progresser à la fois en technique et en langue, mais je suggère de commencer par un projet un peu moins ambitieux.
 

BESQUEUT

Senior Member
Je suis têtu, en tout cas merci pour ces réponse.
J'ai encore un autre lien :http://www.lextronic.fr/P26251-module-mp3-click-board.html
J'ai vu une video sur celle ci, et il n'avait pas l'air difficile de l'utiliser.
Ah ça, pour être simple, c'est simple :
Code:
main:
   Lcd_Init()                        ' Initialize Lcd
   Lcd_Out(2,2,"MP3 click Demo")     ' Write text in second row

  MP3_Init()                        ' Start using mp3 codec
  MP3_Play()                        ' Play mp3 file
end.
Mais regardez bien le coeur de la fonction MP3_Play :
Code:
      Lcd_Cmd(_LCD_CLEAR)            ' Clear display
      Lcd_Out(1,1,"Playing audio :)")

      ' send file blocks to MP3 SDI
      while (file_size > BUFFER_SIZE)
        ' Set the SPI faster when reading data from mikro SD memory
        SPI1_Init_Advanced(_SPI_MASTER_OSC_DIV4, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_LOW, _SPI_LOW_2_HIGH)
        for i = 0 to BUFFER_SIZE - 1
          Mmc_Fat_Read(mp3_buffer[i])
        next i

        ' Set the SPI slower when sending data to mp3 codec
        SPI1_Init_Advanced(_SPI_MASTER_OSC_DIV16, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_LOW, _SPI_LOW_2_HIGH)
        for i = 0 to BUFFER_SIZE/BYTES_2_WRITE - 1
          MP3_SDI_Write_32(@mp3_buffer + i*32)
        next i

        file_size = file_size - BUFFER_SIZE
        MP3_Check_Volume()  ' Update volume
      wend
Vous constatez que le processeur lit la carte SD par paquets de 448 octets en prenant la peine d'augmenter la vitesse du bus SPI pour tenir le bitrate...
Etant moi-même l'heureux propriétaire d'un module xMega du même fournisseur, je peux confirmer que la programmation n'est pas plus compliquée que sur un Picaxe. Par contre on tourne 10 000 fois plus vite, et le processeur sait réellement faire plusieurs choses à la fois...

Que les choses soient claires :
- je suis très satisfait des Picaxes qui sont peux coûteux, faciles à programmer et qui peuvent faire des tas de choses dès lors que l'on a un peu de temps,
- je suis persuadé que les Picaxes constituent un excellent outil pédagogique en mettant à disposition de façon simple des concepts qui normalement nécessitent une mise en oeuvre plus abstraite,
- par contre, il y a des domaines pour lesquels un processeur compilé est irremplaçable.
 
Last edited:
Top