12
votes

Guide des débutants absolus pour travailler avec audio en C / C ++?

J'ai toujours été curieux du logiciel de conversion audio, mais je n'ai jamais vu d'explication appropriée d'un point de vue débutant sur la manière d'écrire un programme simple qui convertit par exemple, un fichier MP3 à un WAV. Je ne demande aucun des algorithmes complexes impliqués, juste un petit exemple utilisant une bibliothèque simple. Vous recherchez donc, j'ai proposé plusieurs noms, y compris:

  • boiteux
  • la boîte à outils de synthèse
  • Openal
  • DirectSound

    Mais je ne peux pas trouver un exemple simple d'aucune de ces bibliothèques. D'habitude, cela ne me dérange pas de patauger à travers des tonnes de code, mais je n'ai absolument aucune connaissance du sujet et j'ai donc toujours l'impression que je tire dans le noir.

    Quelqu'un présente ici un exemple simple / tutoriel sur la conversion d'un fichier son utilisant l'une de ces bibliothèques? Ma question est spécifiquement dirigée vers C / C ++ car celles-ci sont les deux langues que je suis en train d'apprendre et je voudrais donc continuer à vous concentrer sur eux.

    edit : une chose que j'ai oubliée de mentionner: je suis sur un système * Nix.


1 commentaires

C'est une question très difficile, car vous ne traitez généralement pas de l'audio de manière abstraite, vous voulez y jouer - et cela dépendra de l'API du système d'exploitation. L'API doit être écrite pour gérer l'évier de la cuisine.


4 Réponses :


0
votes

Vérifiez libmad http://mad.sourceforge.net "" "M" PEG "A" UDIO " D "Bibliothèque Ecoder", devrait fournir un bon exemple. Aussi pour une manipulation audio à plate-forme croisée facile, vérifiez SDL http://www.libsdl.org/ . Espère que cela aide.


2 commentaires

J'ai eu celui-ci en fonctionnement, mais l'exemple crée des fichiers .pcm, que je ne peux pas comprendre comment jouer. Question connexe chez SuperUserer.com ici: SuperUserSer.com/Questions/76665/...


MISE À JOUR: Je peux importer les fichiers PCM dans Audacity en allant au projet> Importer des données brutes.



1
votes

Si votre curieux de DSP et d'ordinateurs, jetez un coup d'œil à la boîte à outils de synthèse. C'est doux. Il est conçu pour apprendre. Les exemples et les tutoriels qu'ils ont sur leur site Web sont simples et approfondis. Gardez à l'esprit, les gars qui l'ont écrit, l'ont écrit afin qu'ils puissent créer des modèles acoustiques d'instruments réels. En conséquence, ils ont inclus des instruments qui sont tout simplement loufoques, mais amusants. Cela vous donnera une compréhension de base du traitement de la PCM. Et vous serez probablement capable de rassembler des petits noyakers amusants pendant que vous vous trouvez.

https://ccrma.stanford.edu/software/stk/


0 commentaires

2
votes

Pour la conversion entre divers formats (sauf mp3), cochez libsndfile http://mega-nerd.com/libsndfile /

libsndfile est une bibliothèque conçue pour permettre la lecture et l'écriture de beaucoup Différents formats de fichier son échantillonné (comme MS Windows WAV et le Format Apple / SGI AIFF) à travers un Interface de bibliothèque standard.

lors d'opérations de lecture et d'écriture, les formats sont convertis de manière transparente entre le format de l'application programme a demandé ou fourni et le format de données du fichier. Les Le programmeur d'application peut rester parfaitement inconscient de problèmes tels que Fichier Endian-Ness et Format de données

Il est également simple à utiliser, avec l'API suivant le style des noms de fonctions de la bibliothèque C Standard C:

http://mega-nerd.com/libsndfile/api.html

et des exemples sont inclus dans la distribution source.

Pour la sortie audio réelle, une autre bibliothèque sera nécessaire, SDL comme déjà mentionné pourrait être un bon endroit pour commencer. Alors que SDL peut également lire / écrire des fichiers audio, LibsndFile est bien supérieur.


0 commentaires

3
votes

Merci à tous pour les réponses! Je les ai trompés ensemble pour effectuer une petite utilité qui convertit un fichier AIFF / WAV / ETC en un fichier MP3. Il semble y avoir un certain intérêt dans cette question, alors voici ce que j'ai fait, étape par étape:

Étape 1: Téléchargez et installez le bibliothèque libsndfile comme suggéré par James Morris. Cette bibliothèque est très facile à utiliser - sa seule lacune ne fonctionnera pas avec des fichiers MP3.

étape 2: Regardez à l'intérieur du dossier 'Exemples' fourni avec LibSndFile et trouvez Générate.c. Cela donne un bon exemple de travail de convertir tout fichier mp3 à différents formats de fichiers. Cela donne également un aperçu de la puissance derrière libsndfile.

étape 3: Code d'emprunt de Generate.c, j'ai créé un fichier C qui convertit simplement un fichier audio en un fichier .wav. Voici mon code: http://pastie.org/719546

étape 4: Téléchargez et installez le codeur boiteux . Cela installera la bibliothèque libmp3Lame et l'utilitaire de ligne de commande boiteux.

Étape 5: Maintenant, vous pouvez parcourir l'API de Lame ou Just Fork & Exec, processus de conversion de votre fichier WAV en un fichier MP3.

Étape 6: Sortez le champagne et le caviar!

S'il y a un meilleur moyen (je suis sûr qu'il y a) de faire cela, s'il vous plaît laissez-moi savoir. Personnellement, je n'ai jamais vu une feuille de route étape par étape comme celle-ci, je pensais que je le disais.


0 commentaires