IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API graphiques Discussion :

Choix d'une lib audio


Sujet :

API graphiques

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Choix d'une lib audio
    Bonjour,

    Je m'inscris et je poste ici pour obtenir des conseils et suggestions sur un choix de library audio.

    J'ai développé 2 jeux en C++ (un troisième est en développement), ils sont disponibles sur Windows, Linux et Mac (à l'adresse suivante : www.zeldaroth.fr ). A l'heure actuelle, chaque version utilise une lib différente (SDL_mixer sous linux, FMOD sur Windows, et FMOD EX sur MAC OS X).

    Mon problème est le suivant : j'ai besoin d'une library portable et libre (LGPL ou équivalent de préférence) pouvant lire les MIDI et les OGG (ou midi et wave à la rigueur, pour les sons courts le gains de place avec les ogg n'est pas énorme).


    J'utilisais initialement SDL_mixer, mais elle occasionnait de rares plantages sur Windows, et des soucis beaucoup plus fréquent sur mac. FMOD et FMOD EX n'arrivent visiblement pas à lire les midi sur linux (ni sur mac pour FMOD) et leur licence ne me plait que moyennement. Puis les autres libraries que j'ai pu trouver n'étaient portable soit sur win et linux, soit win et mac, mais jamais sur les trois.

    Si quelqu'un connait une solution miracle celà m'irait bien, lol.

    Sinon j'ai une nouvelle piste : Allegro. Apparemment Allegro correspondrait à ce que je cherche "sur le papier". Est ce que la partie audio de Allegro peut s'utiliser dans un projet reposant pour le reste sur la SDL (j'aimerai notamment éviter d'inclure Allegro en entier pour uniquement l'audio) ? (je ne peux rien tester avant ce soir) Si oui, Allegro est elle stable côté audio ?


    Donc si quelqu'un a une solution ou a déjà travaillé sur Allegro ou tout autre lib pouvant m'aider, merci de m'indiquer tout ce qui pourrait me servir.

  2. #2
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Bonjour et bienvenu sur le forum de developpez.net

    Avez vous regardé du côté d'OpenAL ?

    http://connect.creativelabs.com/open...Platforms.aspx

    Par contre pas de support du MIDI.

  3. #3
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    OpenAL c'est trop bas niveau, ça ne charge aucun fichier ça ne prend que des tableaux de samples. Au mieux il y a ALUT qui charge le format WAV.

    Le MIDI c'est vraiment la merde à implémenter au niveau d'une bibliothèque, ce qui explique le support très limité de manière générale. A la limite si tu es un peu flexible sur la taille de tes musiques tu peux les convertir en OGG, à peu près toutes les bibliothèques gèrent ce format sans problème.

  4. #4
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Oui mais on peut coupler OpenAL avec OGG relativement facilement.

    On trouve du code très facilement sur internet, et tu as même écris un article dessus http://loulou.developpez.com/tutoriels/openal/flux-ogg/

    Le problème du MIDI c'est qu'il y a énormément de format MIDI, et qu'un support un peu exhaustif demande effectivement énormément de travail.

    A mon avis WAV et OGG cela remplace largement le MIDI dans un jeu moderne (au pire une conversion), mais ce n’est en rien comparable, je suis d’accord !

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    OpenAL c'est pas vraiment fait pour être utilisé tel quel en tant que moteur audio, il faut au minimum une couche par dessus. Ce serait comme utiliser OpenGL alors qu'on veut un Ogre ou un Irrlicht.

    Le problème du MIDI c'est aussi (et surtout) qu'il lui faut des tonnes de fichiers de configuration pour les instruments, et que ça c'est pas du tout standard surtout si on vise une appli multiplateforme. Personnellement, sans ça j'aurais intégré le support MIDI depuis longtemps.

    Pour ce qui est de remplacer MIDI par OGG, si on n'est pas très exigeant ça peut se faire; OGG c'est du compressé et c'est adapté aux musiques de quelques minutes. Mais les MIDIs restent tout de même extrêmement légers (quelques Ko pour plusieurs minutes de musique), et ça peut faire la différence si tu te trimballes plusieurs heures de musiques.
    En plus le MIDI reste tout de même assez unique au niveau du rendu musical. Si en plus on veut pouvoir jouer avec plusieurs configurations d'instruments, là on n'a pas le choix.

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Tout d'abord merci pour ces réponses.

    OpenAL est en effet trop bas niveau à mon gout, mais le réel problème vient des MIDI. Pour le Wave et les OGG il n'y a pas de soucis, les lib portables les lisant étant nombreuses (FMOD que j'utilise pour les versions Windows conviendrait par exemple).

    Je ne peux hélas pas me passer des MIDI, c'est une contrainte forte dans le sens où je développe des jeux à télécharger sur le net, et la taille du fichier à télécharger peut dissuader l'utilisateur potentiel. D'autant plus qu'un changement de format pourrait multiplier entre 100 et 1000 fois la taille de l'ensemble.

    A titre d'exemple mon dernier jeu contient plus de 50 MIDI, le poids du dossier music est de quelques centaines d'octets. En Wave un MIDI de 10ko pourrait prendre 10Mo, et le dossier complet pourrait approcher le Go (d'après mes estimations, je n'ai pas fait l'essai). En OGG le gain de place par rapport au Wave serait conséquent, mais je ne serais pas surpris de tourner autour d'une moyenne de 2Mo par fichier, soit environ 100Mo pour les musiques. Or à l'heure actuelle, le pack d'installation de dernier jeu sur Windows fait dans les 3Mo, une telle augmentation ne serait donc pas acceptable.


    Ce problème audio est vraiment énervant, d'autant que les libs audio que j'utilise actuellement m'ont contraint à me priver de la licence GPL que je comptais mettre initialement sur mes jeux (incompatibilité avec la licence de FMOD). Je vais donc voir avec Allegro s'il y a moyen de faire ça (même si ça me semble faire un peu bricolage d'utiliser Allegro juste pour l'audio...). Si ça ne marche pas je pourrai toujours continuer avec les 3 lib actuelles, mais c'est réellement contraignant (3 versions du code, licences libres incompatibles).


    Maintenant si quelqu'un à une autre solution je suis prenneur.

  7. #7
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Tu peux toujours décoder les MIDIs toi-même et les refiler sous forme de samples à ton API audio. WildMidi est simplissime à utiliser pour ça, et elle est sous licence LGPL. Si tu veux taper dans du plus lourd tu as timidity++ (GPL).

    Par contre ça ne règlera pas ton problème : il faudra te trimballer les fichiers de configuration des instruments, soit quelques Mo.

    Dans tous les cas y a rien de magique, les MIDIs sont légers car les infos sonores sont dans les instruments et non dans les musiques en elles-mêmes ; mais dans tous les cas tu devras avoir ces deux choses dans tes installations (ou alors trouver un moyen d'utiliser de potentielles banques d'instruments déjà installées...).

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    Pourtant, les programmes lisant du midi sont capables de récuperer les banque de sons système et de plus, la plupars de scartes sont ont un banque en hard. Comment font-ils pour les utiliser ?

  9. #9
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Pourtant, les programmes lisant du midi sont capables de récuperer les banque de sons système
    Sous Windows il y a bien un fichier GM.DLS livré avec DirectMusic, mais il n'a pas une qualité très élevée et surtout il faut avoir installé DirectMusic.
    De plus le format DLS n'est pas lisible par WildMidi.
    Sur les autres systèmes je ne pense pas qu'il y a de standard, à mon avis il faut configurer à la main. Ou alors les logiciels viennent avec leur propre configuration d'instruments.

    et de plus, la plupars de scartes sont ont un banque en hard
    Là ça n'a plus rien à voir, il faut un rendu MIDI et ça ne passe plus du tout par les mêmes mécanismes que les autres types de sons (échantillonnés). Donc même si c'est faisable, peu d'APIs utilisent le rendu MIDI direct.

  10. #10
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    J'ai regardé un peu WildMidi, mais ça ne me convient pas dans le sens où il est alors encore plus simple pour moi de rester sur 3 lib audio pour les 3 OS... D'ailleur une solution pour midi uniquement m'obligerait à utiliser 2 lib pour l'audio (une pour les MIDI et une pour les Wave), et donc à allourdir le projet (je me trouve drôlement difficile, lol, mais je cherche avant tout une solution plus pratique que celle que j'utilise actuellement).

    Au final je pense que je ne vais rien changer pour le moment. Le développement de mon projet actuel va demander encore au moins un an de boulot, je n'ai plus qu'à espérer que d'ici là tout le monde aura internet en fibre optique et que je pourrais alors laisser tomber les midis, lol.

    Enfin si d'autres ont le problème du midi sur Windows, Linux et Mac OS X, FMOD EX marche sur mac, SDL_mixer sur linux, et FMOD / FMOD EX sur Windows. Mais donc pour le moment je ne vois pas d'autre solutions que 3 versions du moteur audio...

  11. #11
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    Tu as d'autres bibliothèques audio, comme irrKlang, audiere ou bass.

  12. #12
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Merci pour ces informations, mais je connais déjà ces lib.

    IrrKlang ne lit pas les MIDI, Audiere n'est pas portable sur Mac OS X, alors que Bass n'est pas portable vers Linux si je me souviens bien (je vais tout de même allez re-vérifier).

    Celà dit si Audiere ou Bass fonctionnent sur deux OS chacun... c'est déjà pas mal, et surtout ça pourrait me permettre de me passer de FMOD et de sa license avec Bass sur Windows et Mac OS...

    En fait ton post m'aide plus que je ne le pensais en première lecture, je t'en remercie donc à nouveau. Je vais tester tout ça (je vais finir par avoir une version de mon moteur audio sur chaque lib, lol), je repasserai poster pour donner ma "solution finale" si ça se révèle concluant. Je me méfie toujours un peu, SDL_mixer par exemple fonctionnait sur les 3 OS mais était instable et provoquait des plantages, je vais donc tester notamment la stabilité de ces lib avant d'en changer.


    EDIT : En fait la licence de Bass est très similaire à celle de FMOD, donc au final ça ne résoud rien... Si ça continue je vais en créer une moi même de lib audio, lol.

  13. #13
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    Tu peux te créer une petite bibliothèque avec OpenAL je pense :p. Ce sera pas aussi complet que FMod mais au moins t'auras pas de soucis avec la licence :p.

  14. #14
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Hélas non... D'ailleur si OpenAL convenait je pourrais directement utiliser le module audio de la SFML.

    Le vrai problème est de jouer des MIDI avec une lib portable, or OpenAL ne lit pas les MIDI.

    Celà dit j'ai vu hier sur le forum anglais de la SFML que Laurent se penchait sur le problème ( http://www.sfml-dev.org/forum/viewtopic.php?t=577 , le dernier post de Laurent date du 23 sept). Il y a à priori pas mal de soucis, mais si la SFML résolvait le problème ça serait une très bonne chose (notamment pour moi).

    A l'heure actuelle c'est la seule piste que j'ai, mais donc c'est du long terme, même que le problème serait résolu rapidement j'imagine qu'il faudra pas mal de temps avant d'avoir une release doté de cette fonctionnalité de manière portable (d'ailleur il me semble avoir entendu que le module audio de la SFML ne fonctionne pas encore sur Mac ?).

  15. #15
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    Je vais peut-être dire un truc con mais, si je me souviens bien, OpenAL t'impose aucun format, mais par contre tu peux ouvrir n'importe quel format si tu créé toi même ton loader (voir tuto Ogg de Lolo G.). Il te suffirait (:p) donc de créer un loader MIDI :p.

  16. #16
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Justement c'est là tout le sujet de la discussion. Un loader MIDI c'est la mort à créer ou même à trouver. C'est un format très particulier qui n'est pas facile à manipuler, et qui nécessite beaucoup de configuration (pour les instruments).

  17. #17
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Il n’impose aucun format, sauf que cela doit quand même être des samples de son, et c’est très différent/éloigné du midi donc il faut un gros travail dessus.

  18. #18
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Oui ce serait la solution, comme l'a proposé Laurent au message 7 ( http://www.developpez.net/forums/d62...o/#post3669560 ).

    Mais ce n'est pas si simple, comme on peut le lire ici : ( http://www.sfml-dev.org/forum/viewtopic.php?t=577 - c'est le même lien que dans mon post précédent)


    Par curiosité je regarderai bien comment c'est fait dans SDL_mixer... Il y a des bugs, mais ça permet tout de même de jouer des MIDI sur les 3 OS...

    (EDIT : ce message était en réponse à Bakura)

    (EDIT 2 : j'ai été voir pour SDL_mixer, elle utilise timidity)

  19. #19
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    Ah d'accord, je savais pas que MIDI était galère à utiliser. D'ailleurs, j'ai vu il y a très récemment un développeur (je ne me souviens plus exactement de qui c'est, peut-être Tim Schafer, dire que le MIDI était le format du futur dans le jeu vidéo. Quel avantage offre le MIDI par rapport à d'autres formats plus "conventionnels" tels que Ogg ?

  20. #20
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Pour ce qui est de Timidity, c'est GPL donc incompatible avec pas mal de licences (dont celle de SFML). Il y a WildMidi en LGPL mais elle ne gère pas le format de banques de sons le plus intéressant.

    L'avantage du MIDI c'est que les sons ne sont pas stockés dans le fichier musique, mais dans une banque d'instruments commune. Le fichier MIDI lui ne contient que des notes et des évènements. D'où des musiques de plusieurs minutes qui tiennent dans quelques Ko. Par contre il faut se trimballer lesdites banques d'instruments (y a pas vraiment de fichiers standards qui viennent avec l'OS ou les drivers audio), et c'est ça qui pose un gros problème.

    L'autre problème c'est qu'une musique pourra avoir un rendu totalement différent avec une banque de sons différente, donc au final pour être tranquille il vaut mieux inclure sa propre banque de sons au programme et là on retombe sur des tailles très lourdes, donc on perd tout avantage.

Discussions similaires

  1. Choix d'une librairie audio
    Par RPG-man dans le forum C#
    Réponses: 5
    Dernier message: 19/12/2011, 20h44
  2. Recherche une lib audio de bonne qualité.
    Par Zooix dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 29/09/2008, 21h51
  3. Une lib pour la vidéo et l'audio
    Par hitomigaia dans le forum API graphiques
    Réponses: 7
    Dernier message: 11/06/2008, 21h23
  4. extraire une portion audio d'une vidéo
    Par Brunoo dans le forum DirectX
    Réponses: 2
    Dernier message: 16/06/2003, 10h29
  5. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    Réponses: 12
    Dernier message: 17/05/2002, 15h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo