Domanda

Questa domanda è stato nella mia mente per alcuni anni e non ho mai effettivamente trovato la risposta per questo.

Quello che vorrei fare è estrarre l'attuale forma d'onda / PCM di un file MP3, in modo che posso giocare utilizzando la scheda audio (ovviamente).

Idealmente vorrei essere sperimentando alcuni effetti DSP.

Il mio primo passo è stato quello di esaminare LAME, ma non ho trovato nulla di rilevante su decodifica MP3 in un programma o cose del genere.

Così mi sto chiedendo dove avrei potuto trovare qualcosa di simile.

Quale lingua devo usare? Stavo pensando C, ma forse ci sono linguaggi di programmazione là fuori che avrebbe fatto il lavoro in modo più efficiente.

Grazie!

Guillaume.

È stato utile?

Soluzione

La questione si riduce a:? Che cosa stai cercando di realizzare

Dalla descrizione della tua domanda di decodificare un MP3 e giocando sulla scheda audio rende suona come se si sta cercando di fare un lettore multimediale.

Tuttavia, se il vostro intento è quello di giocare con effetti DSP, poi suona come la questione è più circa l'elaborazione del suono piuttosto che decodifica MP3. se questo è il caso, probabilmente guardando in scrittura plug-in per lettori multimediali esistenti (come Windows media Player e Winamp ) sarebbe più facile percorso a ciò che sei cercando di realizzare.

Francamente, imparare a scrivere il proprio decoder da zero non è solo un problema di programmazione ma un matematico, in modo da utilizzare le librerie esistenti sono la strada da percorrere. Parlando con il sistema operativo o le biblioteche come DirectSound di trasmettere file audio sembra come lavoro inutile se non altro. Sento che lavorare su plug-in per i giocatori esistenti sarebbe la strada da percorrere, a meno che il vostro obiettivo è quello di rendere il proprio lettore multimediale.

Se si vuole veramente realizzare sta giocando con i dati audio, allora probabilmente decodifica di un MP3 in PCM non compresso utilizzando qualsiasi decoder MP3, poi manipolare nella lingua di vostra scelta potrebbe raggiungere il tuo obiettivo di trattare con gli effetti con il suono.

La scelta della lingua è andare a dipendere dal fatto che si sta andando a interagire direttamente con le librerie di decodifica MP3, o se si può semplicemente utilizzare l'ingresso audio grezzo, che permetterebbe di utilizzare praticamente qualsiasi lingua di vostra scelta.

C'era una domanda simile un po 'indietro, Iniziare con programmatica audio , dove ho postato una risposta su alcuni modi di base per manipolare l'audio, come ad esempio l'amplificazione, cambiando la velocità di riproduzione, e facendo un lavoro con FFT.

Altri suggerimenti

libmpg123 dovrebbe fare il trucco.

Sono stato con il Windows Media SDK, non per questo scopo, ma sono abbastanza sicuro che ci sono ganci consentono che consentono di intercettare il flusso audio, o convertire mp4 in WAV non compresso. Ho usato C ++.

Lotti:

http://www.mp3-tech.org/programmer/decoding.html

Scegli il tuo veleno ...

Inoltre, LAME MP3 fa decodifica (check out opzione --decode), quindi si potrebbe trovare qualcosa di interessante in quella sorgente.

-Adam

Dipende quale piattaforma si sta programmando e che cosa si vuole fare con il codice. Se siete su Windows si dovrebbe guardare al Windows Media Format SDK o DirectShow . Dovrebbero entrambi hanno la capacità di decodificare i file mp3 nella forma d'onda crudo. Su Mac, mi aspetterei Quicktime per avere questa stessa capacità. Altri hanno già suggerito fonte per il codice sorgente di Linux / open.

Vorrei raccomandare guardando Cubase e Wavelab come sia in grado di convertire in MP3 in WAV, ecc e ti permettono di giocare con la forma d'onda

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top