2010-03-08 10 views
12

Sono uno studente di elettronica e telecomunicazioni, vicino alla mia laurea. Lavorerò su un progetto che implica la mia conoscenza di DSP, musica e audio in generale. Conosco già tutti gli strumenti matematici di base e tutto il materiale necessario per gestirlo, come FFT, convoluzione circolare ecc. Ecc.Come scrivere applicazioni di elaborazione audio C++?

Voglio imparare la programmazione C++ fondamentalmente per una ragione: è molto importante nel mondo professionale !!! E penso che sia uno dei più usati per scrivere applicazioni che funzionano con l'audio, specialmente quando si tratta di elaborazione in tempo reale.

Ok, dopo questa piccola introduzione mi piacerebbe sapere prima, quali sono le librerie più utilizzate per lavorare con l'elaborazione audio in C++ ?? Stavo guardando più sul web ma non riuscivo a trovare un sacco di roba lavorativa. (Lavoro sotto linux con eclissi CDT ambiente).

Quindi mi piacerebbe sapere se ci sono buone fonti per imparare come scrivere un codice funzionante, come ad esempio come scrivere un semplice filtro passa-basso. Fondamentalmente ora non scriverò applicazioni in tempo reale, mi piacerebbe iniziare dall'elaborazione di un file WAV, o ancora meglio un file MP3, quindi fondamentalmente su vettori di campioni.

Diciamo che fondamentalmente per ora vorrei estrarre la forma d'onda da un file audio e salvarla in una miniatura o in un'immagine PNG.

Ok, per ora penso che sia tutto ciò di cui avrei bisogno.

Eventuali idee, consigli, biblioteche, libri, fonti interessanti su questo?

Grazie mille in anticipo per qualsiasi tipo di risposta.

Giovanni.

+0

Cosa programmazione Sei ALRE sai? – sbi

risposta

4

Suggerisco di scrivere il proprio lettore di file WAVE e scrittore in C++, senza fare affidamento su librerie esterne. Il formato WAVE è abbastanza semplice, almeno se si intende solo supportare i file wave più comuni.

Quindi avrai accesso ai dati audio, che puoi facilmente manipolare in C++. Consiglierei di iniziare modificando il volume, il numero di canali per il calcolo delle statistiche sull'audio. La creazione di un PNG della forma d'onda audio richiede competenze C++ più avanzate ...

+0

Ok! Molto buono, è qualcosa che può essere interessante per iniziare. Come lo posso fare? ci sono tutorial? So come sono strutturati i file WAV, ma non so come aprire i file audio su C++, è normale l'apertura del flusso di file? O c'è qualcosa di più di cui avrei bisogno? – Cesko82

+1

È un flusso di file normale. Puoi leggere e scrivere come desideri. Ma ti raccomando di dare una visione migliore di C++ prima, piuttosto che di entrare rapidamente in DSP senza conoscere alcune basi di quel linguaggio di programmazione. Potresti facilmente incontrare un numero di problemi. Hai programmato in altre lingue? – Adi

+0

sì, l'ho fatto su python e su java qualche volta. Ho già scritto una routine con Python usando le librerie come MATLAB, ma questo richiede troppo RAM solo per disegnare una forma d'onda perché usa una libreria video che mette il driver della scheda video al lavoro. Voglio solo esportare forme d'onda su un file per ora, magari unendo insieme due file audio. – Cesko82

1

Ho utilizzato BASS con buoni risultati (c'è un'API C/C++ che è possibile utilizzare).

+0

che suona bene, ma non riesco a trovarlo sui repository, come posso gestirlo sulla mia distro karmica koala? – Cesko82

+0

Ah, mi dispiace, in qualche modo mi sono perso che stavi usando Linux. Qui (http://www.un4seen.com/forum/?topic=8682.0) è una build ufficiale che puoi scaricare. Inoltre, c'è qualcosa da notare su BASS: non è open source e gratuito solo per uso non commerciale, quindi potrebbe essere o non essere quello che stai cercando, ma vale la pena di provarlo. – DSB

Problemi correlati