Lire de la musique sur Gamebuino

Bonjour à tous,

J’ai vu passer il y à un certain temps déjà un lecteur de musique sur Gamebuino,
à l’époque, de mémoire je n’ai même pas su lire un son… est ce que c’était un soucis de format ? sans doute.

Je trouve que ce fonction pourrait être vraiment très intéressante, le format de la
Gamebuino, son autonomie et la prise mini jack s’y prête à merveille !

si toutefois vous avez des infos sur ce sujet, cela m’intéresse !

Bonjour, dans mon jeu “Demon Girls”, j’utilise un peu toutes les fonctions différentes pour produire du son. Tu peux regarder dans le code. GitHub - JuiceLizard/DemonGirls: Helltaker demake for Gamebuino Meta
Je l’utilise même presque comme un walkman, car tu peux télécharger des musiques faites par Mittsies, et les écouter en allant dans le menu de sélection des niveaux (appuie sur MENU quand tu es dans un niveau) puis en appuyant sur BAS ou HAUT pour choisir le morceau. GitHub - JuiceLizard/BonusForDemonGirls
Pour le format des musiques, j’utilise Audacity. Il faut mettre en mono, 44100Hz et exporter en WAV (Microsoft), Unsigned 8-bit PCM. Puis placer ce fichier son dans le dossier du jeu, dans la carte SD de la console.

1 Like

Jette surtout un oeil au super boulot d’@eriban :wink:

2 Likes

Salut Steph,

Effectivement c’est très intéressant ! un lecteur quasi complet ! en lisant les explications, il apparait que la manip soit de modifier le code pour insérer un son convertit en WAV - 8 bits - 22500 Khz…à la limite pourquoi pas descendre la qualité, même si la prise mini jack donne envie de brancher la Gamebuino sur un système son (je ne suis pas audiofil :slight_smile: donc si la qualité est acceptable, je ne chipoterais pas) (et en passant: est-ce l’hardware qui limite la gestion de son à 8bits/22050 Khz ?) par contre le besoin de modifier le code en C++ pour chaque son est un peu lourd pour une utilisation en mode lecteur MP3 de base… j’avoue que je remets un peu le nez dans le code seulement depuis quelques semaines (depuis que j’ai de nouveau une Gamebuino :sunny: ) et que je survole les codes, je cherche du coup un système simple… Et comme je n’ai pas vraiment le temps de m’y mettre plus sérieusement ces temps ci, mais je mets de coté toutes les infos, afin de d’avancer sur cette idée. dans tout les cas, un grand merci à toi pour ton message ! Klm

1 Like

Salut Juice_Lizard,

Effectivement j’ai vu passé ton jeu (et l’ai topé :wink: merci !) Merci pour ton tips pour lire des sons a partir de ton jeu ! ce serait deja un grand pas pour moi pour pouvoir lire du son via la Gamebuino… je regarde ça dés que je peux… comme tu t’en doute, mon interrogation est de pouvoir faire un lecteur MP3 de base… je n’ai que la curiosité pour l’instant, et pas trop de temps en ce moment, mais je note et testerais (aussi) rapidement (que je pourrais) ce que tu me propose ! Merci pour ton message, A+. Klm

1 Like

Salut @Klm,

Je ne me suis encore jamais vraiment penché sur la gestion du son sur les micro-contrôleurs, donc je ne voudrais pas dire trop de bêtises. :joy:

Mais en règle générale, sur la Gamebuino, si tu as encodé un son WAV avec un taux d’échantillonnage de X Hz, alors la macro SOUND_FREQ doit être égale à X/2.

En effet, SOUND_FREQ correspond à la fréquence maximale et non à l’amplitude du signal. Dans la mesure où l’onde est sinusoïdale, il faut donc diviser la fréquence par deux.

Autrement dit, si le son est encodé avec un taux d’échantilonnage à 44100 Hz, alors SOUND_FREQ doit être égal à 22050 Hz.

Cette macro, au même titre que d’autres macros, sont prédéfinies ainsi :

///////////////
// sound defines
///////////////

#ifndef SOUND_CHANNELS
#define SOUND_CHANNELS 4
#endif

#ifndef SOUND_FREQ
#define SOUND_FREQ 44100
#endif

#ifndef SOUND_BUFFERSIZE
#define SOUND_BUFFERSIZE (2048 * SOUND_FREQ / 44100)
#endif

// Even though it default to same value as SOUND_BUFFER size, give the FX its own size so the
// buffer sizes can be optimized independently. For sound effects there should never be a need to
// have a buffer much larger than required to contain the samples played in a single update cycle.
// This will only introduce an unnecessary delay before a sound effect is played. However, for
// music streamed from a WAV file, a bigger buffer might help mitigate occassional delays when
// reading from SD.
#ifndef SOUND_FX_BUFFERSIZE
#define SOUND_FX_BUFFERSIZE (2048 * SOUND_FREQ / 44100)
#endif

#ifndef SOUND_ENABLE_FX
#define SOUND_ENABLE_FX 1
#endif

Mais tu peux tout à fait les redéfinir dans un fichier de configuration, qui doit être nommé config-gamebuino.h et placé à la racine de ton projet. Par exemple en redéfinissant la macro SOUND_FREQ ainsi :

// à inscrire dans le fichier config-gamebuino.h

#define SOUND_FREQ 22050

Pour finir, tu peux utiliser ffmpeg pour convertir ton fichier MP3 au format WAV avec les paramètres suivants :

ffmpeg -i filename.mp3 -ac 1 -ar 44100 -acodec pcm_u8 filename.wav

Tu peux aussi dégrader le taux d’échantillonnage pour soulager le micro-contrôleur et obtenir une ressource qui pèse moins lourd.

En espérant que ça puisse t’éclairer un peu… :frowning_with_open_mouth:

1 Like

Bonjour à vous !

Il est vrai qu’il y a quelque temps, j’ai également remarqué qu’il existait un lecteur de musique sur Gamebuino. À l’époque, je me souviens que j’ai eu du mal à lire un son… Peut-être était-ce dû à un problème de format, je suppose.

Je pense que cette fonctionnalité pourrait être vraiment intéressante, étant donné le format de la Gamebuino, son autonomie et la présence d’une prise mini-jack !

Si vous avez des informations à ce sujet, je serais très intéressé d’en savoir plus !

1 Like

Salut Steph,

Je te répond avec bientôt un an de retard :no_mouth: désolé: je n’ai pas vu passer la notification, merci beaucoup pour cette explication plutôt complete ! je regarde ça.

Salut Webdesigns,

Éh Éh, ton message ressemble drôlement au mien quand j’ai ouvert cette discussion à propos de lecture de son sur Gamebuino… je t’avouerais que je n’ai pas creusé le sujet depuis mais que mon intérêt reste entier :star_struck:! j’irais jusqu’à dire que je rêve d’avoir un jour un lecteur MP3 (ou autre format) sur ma gamebuino ! au delà de la satisfaction de faire soi même un programme fonctionnel de le partager à la communauté ce serait tellement pratique ! en effet: les lecteurs de base sont en general mal équipés en terme de batterie, ont des menus intuitifs comme des briques :brick:, ne peuvent pas la plupart du temps lire en étant branchés sur le secteur :zap:, les lecteurs type Ipod sont limités par leurs aspects propriétaire obligeant à installer des logiciels tiers qui vont à l’encontre de mes convictions :poop: et sur telephone le merveilleux VLC que j’affectionne particulièrement sur ordinateur ne fonctionne malheureusement pas correctement (tout du moins sur les derniers modèles ou je l’ai essayé… :roll_eyes:) bref, je vais tenter de me pencher à nouveau sur l’idée de la Gamebuino-MP3… évidement si toutefois tu trouve de nouveaux elements n’hésite pas à les partager sur ce fil ! merci à toi d’avoir relancé cette discussion. :+1: A+ Klm