:: PlayerAdvance.org ::  

Précédent   :: PlayerAdvance.org :: > :: Développement Amateur :: > Librairies et Utilitaires

Publicité

Réponse
 
Outils de la discussion Modes d'affichage
Vieux 13/12/2007, 20h15   #1
Noda
Membre confirmé
 
Date d'inscription: 10/11/2005
Localisation: à montréal jusqu'au 4 mai, après retour en france ^^
Messages: 570
Par défaut Advanced Sound Library

Advanced Sound Library
MP3 + surround powaa

http://noda.free.fr/nds/as_lib_template_v1.0.rar

Version 1.0

Présentation :

J'en parlais depuis un moment sur le chan, la voilà enfin! Pour l'instant réservée aux codeurs libnds/uLib/pas de lib (mais ThomasS l'a déjà faite marcher avec la PALib...) et à ceux qui sont encore sous DKP r20, elle apporte avec grande facilité la possibilité de jouer des mp3 presque "gratuitement" et des sons avec un système de priorité et des effets, le tout avec possibilité de sons (pseudo-)surround

Ayant la chance d'avoir pu réaliser dans le cadre de mon cours de synthèse d'image un projet sur NDS (cf Marble, topic à venir... ), j'en ai profité en passant pour coder cette petite lib de son bien pratique...

Sans plus attendre, les features (pas traduites):

Code:
* MP3 engine:
- mp3 is decoded on the arm7, so use nearly no CPU time on the arm9
- stereo & surround modes available (surround works even for mono mp3s)
- up to 44Khz/stereo/96Kbps, though I recommend using 32Khz/stereo/80Kbps max, which is enough for the DS and works great with up to +25%/-100% pitching
- support real-time pitching (changing the playing speed of the mp3)
- support real-time volume and panning change
- the mp3 can be paused and restarted
- the mp3 can be set to loop automatically
- support playing from RAM and streaming from FAT or EFS
- you can disable the mp3 engine if you want, to get 2 more channels

* Audio engine:
- can use the whole 16 DS channel or only the first half (so you can use an external mod player, for example)
- support standard or surround/fx mode (16 channels in standard mode (-2 if mp3), 8 in surround/fx mode (-1 if mp3))
- simple sound playing using a priority system: if no channel is available, stop a sound that has less priority than the new one to play it, or skip it if all sounds have more priority.
- possibility to reserve a particular channel so it won't be used in the channel pool by the priority playing system. You can then manage the reserved sound channels manually.
- surround or pseudo-reverb can be activated per sound (works great with mono sounds)
- support real-time volume, panning and pitch modifications for each sound
- support sound looping

Galerie d'image :
Des images pour une lib de son?

Historique :
- version 1.0
= 1e release

Autres informations :

Truc temporaire pour permettre à la lib de marcher sous DKP r21: il faut modifier le makefile de l'arm7 et remplacer "-O2" par "-Os", ce qui permet de libérer suffisamment de place pour permettre à la lib de tourner (au prix d'une legere perte de performance, que j'ai pas encore mesurée...)
__________________
http://nodadev.wordpress.com
Noda est déconnecté   Réponse avec citation

Publicité

Vieux 13/12/2007, 20h16   #2
omg
Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Mad Monster Mansion
Messages: 3 754
Par défaut

Oui!!! Je vais mettre le son sur Klungo's Brain!

Hum... je niouze évidemment!
__________________

News GBA/DS:
Portable DEV
Colorer un jeu GB? Débutant - Avancé - Expert
Projets : Banjo Advance - The Last Quest - Klungo's Brain School
Site des jeux : BanjoKazooie.Free.Fr Web Site

FAN FOREVER
"La Vie n'est pas aussi simple qu'un Jeu Vidéo..."
omg est déconnecté   Réponse avec citation
Vieux 13/12/2007, 20h25   #3
Smealum
PsycoKid
 
Date d'inscription: 10/11/2005
Localisation: Là où il pleut
Messages: 1 140
Par défaut

Old.
__________________

War. War never changes.

Dernière modification par Smealum ; 13/12/2007 à 20h27.
Smealum est déconnecté   Réponse avec citation
Vieux 13/12/2007, 20h41   #4
archilolo
Retraité
 
Date d'inscription: 10/11/2005
Messages: 4 856
Voir l'identifiant PSN
Par défaut

Citation:
Envoyé par Smealum Voir le message
Old.
Ban !

Sinon, c'est top, ça, Noda !

Bravo - et merci.
archilolo est déconnecté   Réponse avec citation
Vieux 13/12/2007, 21h24   #5
Costello
Homme (?) un peu bizarre
 
Date d'inscription: 07/11/2005
Localisation: Shanghai (Chine)
Messages: 1 289
Par défaut

tu peux faire du surround?

bah bravo, t'as fait mieux que Guitar Hero 3 sur Wii...
http://blog.wired.com/games/2007/12/...sion-sued.html

Citation:
Already faced with legal threats from a rock group over a cover of a song that appears in Guitar Hero, Activision has now been named in a class-action suit that alleges that the company engaged in "deceptive and unlawful" conduct by selling the Wii version of Guitar Hero III, which only outputs mono sound, not Dolby Pro Logic II surround sound as claimed on the box.
Costello est déconnecté   Réponse avec citation
Vieux 13/12/2007, 23h27   #6
Bobby Sixkilla
Maître Chinpoko-extra-mon
 
Date d'inscription: 10/11/2005
Localisation: Palaiseau (Rive sud)
Messages: 6 465
Voir les codes amis Nintendo DS
Par défaut

Le troll!

lolo : touche pas à mon Smea.
__________________
"Un pour l'argent, deux pour le spectacle et trois pour le cailloux" un putain d'énergumène
Bobby Sixkilla est déconnecté   Réponse avec citation
Vieux 13/12/2007, 23h33   #7
Arialia
Elite
 
Date d'inscription: 10/04/2006
Localisation: Pays de la moutarde
Messages: 901
Par défaut

Trop facile à trouver ta pub smea dans ta signature

Sinon Noda merci et bravo
__________________
Mon blog de dev - - Mon tutoriel sur la libfat -- DSPhoto
Un bon programmeur est fainéant : il déteste refaire la même chose, il fait donc des fonctions
Il est impossible de tout savoir
28.59848% au Geek Test
Arialia est déconnecté   Réponse avec citation
Vieux 14/12/2007, 09h23   #8
Smealum
PsycoKid
 
Date d'inscription: 10/11/2005
Localisation: Là où il pleut
Messages: 1 140
Par défaut

Citation:
Envoyé par Arialia Voir le message
Trop facile à trouver ta pub smea dans ta signature
Oui, je sais, mais c'est une méthode de pub fonctionnelle : les gens sont intrigués, cherchent, trouvent, et hop, pub gratos !

Sinon, Noda, j'utilise ASlib pour mon 4C6F6C20457272657572204772616D6D61746963616C65203A 20496E76657273656D656E74204F6E697269717565204E6F74 61626C65, ça a l'air de bien marcher pour l'instant, alors merci, et bonne continuation sur ce projet.
__________________

War. War never changes.
Smealum est déconnecté   Réponse avec citation
Vieux 16/12/2007, 00h26   #9
cuicui666
Membre
 
Date d'inscription: 15/09/2007
Messages: 31
Par défaut

Ouah Noda c genial ! Je vais pouvoir ajouter des musiques de fonds à mon homebrew
Au fait, dans le fichier as_lib_template_v1.0.rar il n'y a pas de librairie, uniquement des .c, .h dans 2 repertoires arm7 et arm9.
Or dans mon projet je n'ai aucun de ces 2 repertoires
Je ne vois pas comment faire pour utiliser ces sources
La solution doit surement se trouver dans le makefile mais a vrai dire, je ne suis pas encore à l'aise à ce niveau.
Tu pourrais m'aiguiller stp ?
cuicui666 est déconnecté   Réponse avec citation
Vieux 16/12/2007, 08h28   #10
Noda
Membre confirmé
 
Date d'inscription: 10/11/2005
Localisation: à montréal jusqu'au 4 mai, après retour en france ^^
Messages: 570
Par défaut

euh la librairie c'est les fichiers as_lib*.* :/

A savoir aussi qu'en l'état, c'est fait pour fonctionner avec la libnds/uLib, donc pas avec la PALib de base... tu peux jeter un oeil par contre sur le forum de PAlib y'a ThomasS qui a fait une version modifiée de la PAlib qui inclue mon ASlib
__________________
http://nodadev.wordpress.com
Noda est déconnecté   Réponse avec citation
Vieux 16/12/2007, 11h29   #11
Cortes48
Modérateur
 
Date d'inscription: 28/02/2007
Localisation: Grenoble
Messages: 576
Par défaut

Bravo Noda je vais tout de suite l' installer
Cortes48 est déconnecté   Réponse avec citation
Vieux 16/12/2007, 13h24   #12
cuicui666
Membre
 
Date d'inscription: 15/09/2007
Messages: 31
Par défaut

Voici l'adresse du forum pour ceux que ca interesse : ASLIB topic
Et voici le lien vers la nouvelle version de PALIB : PALIB modifiée pour fonctionner avec ASLIB.
Voici la procédure à suivre pour pouvoir utiliser l'ASLIB :
1/ Faites un backup de votre répertoire PALIB (au cas où )
2/ Remplacer votre version de PALIB avec celle fournie par ThomasS
3/ Modifier le Makefile de votre projet :
* Ajouter la ligne suivante (à côté de lignes similaires) :
Code PHP:
MP3FILES    :=    $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.mp3))) 
* Modifier la ligne suivante :
Code PHP:
export OFILES    :=    $(MP3FILES:.mp3=.o) ....... 
* Ajouter le bloc suivant (à côté des blocs similaires) :
Code PHP:
#---------------------------------------------------------------------------------
%.o    :    %.mp3
#---------------------------------------------------------------------------------
    
@echo $(notdir $<)
    @$(
bin2o
4/ Initialiser ASLIB dans votre projet :
Code PHP:
PA_InitASLib(AS_MODE_MP3 AS_MODE_SURROUND AS_MODE_16CH); 
5/ Placer un mp3 dans le répertoire data et utilisez le :
Code PHP:
#include "bg_music.h"
AS_MP3DirectPlay((u8*)bg_music, (u32)bg_music_size); 
Voila c'est fini !
Par contre, si vous avez comme moi un projet qui utilise PALIB et uLibrary, ca ne marchera pas...
Si une personne assez costaud connait la solution à ce probleme, ca m'interesse (enormement)
cuicui666 est déconnecté   Réponse avec citation
Vieux 25/01/2008, 20h08   #13
Cobain
Membre confirmé
 
Date d'inscription: 24/05/2007
Localisation: devant mon pc
Messages: 2 027
Par défaut

pour quand la version en .a car j'ai pas envi de tout réinstaller pour mettre ça sous la palib
Cobain est déconnecté   Réponse avec citation
Vieux 25/01/2008, 21h21   #14
Noda
Membre confirmé
 
Date d'inscription: 10/11/2005
Localisation: à montréal jusqu'au 4 mai, après retour en france ^^
Messages: 570
Par défaut

en .a ou pas ca changerai rien, car le souci avec palib c'est le source de l'arm7 n'est pas modifiable (tout est inclus dans la lib) donc y'a obligation d'install d'une version spéciale..
__________________
http://nodadev.wordpress.com
Noda est déconnecté   Réponse avec citation
Vieux 25/01/2008, 21h23   #15
Noda
Membre confirmé
 
Date d'inscription: 10/11/2005
Localisation: à montréal jusqu'au 4 mai, après retour en france ^^
Messages: 570
Par défaut

Citation:
Envoyé par cuicui666 Voir le message
Voici l'adresse du forum pour ceux que ca interesse : ASLIB topic
Et voici le lien vers la nouvelle version de PALIB : PALIB modifiée pour fonctionner avec ASLIB.
Voici la procédure à suivre pour pouvoir utiliser l'ASLIB :
1/ Faites un backup de votre répertoire PALIB (au cas où )
2/ Remplacer votre version de PALIB avec celle fournie par ThomasS
3/ Modifier le Makefile de votre projet :
* Ajouter la ligne suivante (à côté de lignes similaires) :
Code PHP:
MP3FILES    :=    $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.mp3))) 
* Modifier la ligne suivante :
Code PHP:
export OFILES    :=    $(MP3FILES:.mp3=.o) ....... 
* Ajouter le bloc suivant (à côté des blocs similaires) :
Code PHP:
#---------------------------------------------------------------------------------
%.o    :    %.mp3
#---------------------------------------------------------------------------------
    
@echo $(notdir $<)
    @$(
bin2o
4/ Initialiser ASLIB dans votre projet :
Code PHP:
PA_InitASLib(AS_MODE_MP3 AS_MODE_SURROUND AS_MODE_16CH); 
5/ Placer un mp3 dans le répertoire data et utilisez le :
Code PHP:
#include "bg_music.h"
AS_MP3DirectPlay((u8*)bg_music, (u32)bg_music_size); 
Voila c'est fini !
Par contre, si vous avez comme moi un projet qui utilise PALIB et uLibrary, ca ne marchera pas...
Si une personne assez costaud connait la solution à ce probleme, ca m'interesse (enormement)
ca doit venir du makefile alors car y'a aucune raison que ca marche pas... c'est quoi le souci?
__________________
http://nodadev.wordpress.com
Noda est déconnecté   Réponse avec citation
Vieux 25/01/2008, 21h41   #16
Thommasc
Membre confirmé
 
Date d'inscription: 10/07/2007
Messages: 86
Par défaut

Yeah j'vais tester ça sans plus attendre car j'arrivais pas à mettre du son sur SCGBA auparavant ...
Thommasc est déconnecté   Réponse avec citation
Vieux 30/08/2008, 15h38   #17
Kornflexx
Membre
 
Date d'inscription: 30/08/2008
Localisation: Devant son clavier
Messages: 22
Voir les codes amis Wii
Par défaut sans support MP3

j'avais envie de jouer un peu avec l'ASlib, mais je n'ai pour le moment pas besoin du support MP3. Comme la mémoire de la DS est limité, j'ai adapté un peu la bibliothèque pour pouvoir activer ou désactiver toute la partie MP3.

En pièce jointe, j'ai mis les deux fichiers (.c et .h) destinés à l'ARM7.

Ce qui change :
- si vous comptez utiliser le support MP3 : rien du tout ne change
- si vous n'en avez pas besoin, il suffit de commenter la ligne "#define ASLIB_MP3" du fichier as_lib7.h. Du coup vous n'avez pas besoin non plus des fichiers contenus dans le répertoire helix, et le code liés au MP3 n'est plus compilé ni intégré dans les exécutables.

Peut-être à intégrer dans la prochaine release, qu'en penses-tu Noda?
Fichiers attachés
Type de fichier : zip aslib-custom.zip (5,3 Ko, 296 affichages)

Dernière modification par Kornflexx ; 30/08/2008 à 18h21.
Kornflexx est déconnecté   Réponse avec citation
Vieux 15/09/2008, 21h47   #18
Brunni
Super Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 218
Par défaut

Merci pour cette librairie Noda
Quelqu'un a-t-il réussi à la faire fonctionner convenablement avec la dernière version de devkitpro? L'exemple de base fonctionne, mais dès que j'inclus µLib, même sans faire appel à elle, ça ne marche plus... (on entend un bruit de fond bizarre)
Peut-être que la place disponible en IWRAM est trop faible? Si quelqu'un a une solution je suis preneur
(et si quelqu'un a encore une version de DKP qui marche, je suis preneur aussi mais ce serait dommage de devoir en arriver là...)
Brunni est déconnecté   Réponse avec citation
Vieux 21/09/2008, 16h44   #19
Brunni
Super Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 218
Par défaut

Alors pour le bruit de fond bizarre, je ne l'ai eu que sur le R4, et c'est dû au fait que les canaux sonores ne sont pas initialisés correctement: il y a probablement de la merde qui traîne dans l'IPC (écrite par le loader R4), que l'arm7 interprète comme des commandes à exécuter, et se met à faire n'importe quoi.
Un quick fix pour ce problème est de modifier dans as_lib9.c l'initialisation des canaux sonores (AS_Init). C'est à dire, au lieu d'initialiser chaque canal avec la commande SNDCMD_NONE, l'initialiser avec SNDCMD_STOP, afin de stopper le bruit et repartir sur de bonnes bases.
Le plus propre serait de mettre en place un mécanisme de "synchronisation" entre les deux proços (par exemple l'arm7 clear l'IPC au démarrage, attend sur l'ARM9 qui lui écrit en boucle un "1" à un endroit, puis l'ARM7 lui répond ensuite avec un "2" une fois qu'il est prêt)
Brunni est déconnecté   Réponse avec citation
Vieux 21/09/2008, 19h18   #20
Cobain
Membre confirmé
 
Date d'inscription: 24/05/2007
Localisation: devant mon pc
Messages: 2 027
Par défaut

tient moi j'ai essayé hier et j'ai un gros problème, la lecture est lente avec la lib nds alors que la PAlib marche très bien.
une idée?
Cobain est déconnecté   Réponse avec citation
Vieux 12/10/2008, 18h36   #21
Brunni
Super Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 218
Par défaut

La lecture? Le son est joué trop lentement?
Brunni est déconnecté   Réponse avec citation
Vieux 12/10/2008, 20h35   #22
Cobain
Membre confirmé
 
Date d'inscription: 24/05/2007
Localisation: devant mon pc
Messages: 2 027
Par défaut

oui la lecture est trop lente même quand je change manuellement le rate :/
Cobain est déconnecté   Réponse avec citation
Vieux 01/11/2008, 21h21   #23
Le Rodeur
Membre confirmé
 
Date d'inscription: 21/10/2007
Messages: 225
Par défaut

Je vais surement dire une connerie parce que je connais pas la libnds vu que je fais que de la PAlib pour le moment mais ça a peut etre un rapport avec le vbl, sous palib il faut mettre PA_VBLFunctionInit(AS_SoundVBL);
pour que l'aslib soit bien appelée a chaque actualisation de frame.
je pense que ça doit être la même chose sous libnds mais tu l'as peut etre deja fait
__________________

NDS LITE - M3 Ds Simply - PaLib
Le Rodeur est déconnecté   Réponse avec citation
Vieux 01/11/2008, 22h34   #24
Cobain
Membre confirmé
 
Date d'inscription: 24/05/2007
Localisation: devant mon pc
Messages: 2 027
Par défaut

ça c'est pour la lecture en streaming
Cobain est déconnecté   Réponse avec citation
Vieux 02/11/2008, 12h08   #25
Le Rodeur
Membre confirmé
 
Date d'inscription: 21/10/2007
Messages: 225
Par défaut

bah jpuex pas t'aider alors, mais ça marche tres bien en stream
__________________

NDS LITE - M3 Ds Simply - PaLib
Le Rodeur est déconnecté   Réponse avec citation
Réponse

Liens sociaux

Publicité



Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 
Outils de la discussion
Modes d'affichage

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 19h07.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Tous droits réservés.
Version française #16 par l'association vBulletin francophone
Design par Ass-Itch, DJP et Dr.Vince