Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Salve a tutti! Sono neo-programmatore (se così posso definirmi) in C.
Sto facendo un applicazione che necessita di una funzione che ho trovato nel software Audacity, in particolare l'effetto Noise Removal.
Sul sito Audacity è possibile scaricare il sorgente in C++ e, tra i vari file, ho riconosciuto subito quello che mi interessava: NoiseRemoval.cpp e NoiseRemoval.h
Qualcuno può spiegarmi come potrei fare ad utilizzare tale funzione nel mio codice C? Non ho bisogno di interfacce grafiche nè nulla, tutto quello che deve fare è aprire il mio file e darlo in pasto alla funzione Noise Removal.
Vi ringrazio!
Darking, in generale il C non supporta funzioni C++. Questo perchè il C è sottoinsieme del C++. Dunque, quanto vuoi realizzare è impossibile, gia per questo. Inoltre, tu parli di "funzioni che richiamano altre funzioni", quindi è abbastanza probabile che i due files che ti interessano contengano funzioni, quando non addirittura classi base, derivate da altri sorgenti. Visto che tu non conosci il C++, mi spiego meglio: una classe base è una struttura ("simile" alle struct che trovi anche nel C) da cui altre strutture simili possono derivare (il termine specifico è "ereditare") funzioni o dati.
Darking, in generale il C non supporta funzioni C++. Questo perchè il C è sottoinsieme del C++. Dunque, quanto vuoi realizzare è impossibile, gia per questo. Inoltre, tu parli di "funzioni che richiamano altre funzioni", quindi è abbastanza probabile che i due files che ti interessano contengano funzioni, quando non addirittura classi base, derivate da altri sorgenti. Visto che tu non conosci il C++, mi spiego meglio: una classe base è una struttura ("simile" alle struct che trovi anche nel C) da cui altre strutture simili possono derivare (il termine specifico è "ereditare") funzioni o dati.
Capisco... a questo punto, cosa mi consigli di fare? Ho bisogno comunque di quella funzione nel codice, non posso farne a meno!
Ultima modifica effettuata da darkingthereturn il 15/04/2011 alle 16:27
()
Newbie
Messaggi: Iscritto:
Postato alle 16:49
Venerdì, 15/04/2011
Testo quotato
Postato originariamente da darkingthereturn: Capisco... a questo punto, cosa mi consigli di fare? Ho bisogno comunque di quella funzione nel codice, non posso farne a meno!
Una soluzione c'è, ma non è praticabile da tutti: riscrivere tu stesso le funzioni che ti servono. È difficile riscrivere in C delle funzioni C++, viste le differenze concettuali tra i due linguaggi. Inoltre, scrivere delle funzioni che si occupino di audio (sopattutto di modifica dell'audio) senza usare librerie gia esistenti (in C non ne esistono più da qualche anno, ormai) richiede una conoscenza ottima di analisi frequenziale, analisi di segnali periodici, trasformate di Fourier e vari altri argomenti.
Postato originariamente da darkingthereturn: Capisco... a questo punto, cosa mi consigli di fare? Ho bisogno comunque di quella funzione nel codice, non posso farne a meno!
Una soluzione c'è, ma non è praticabile da tutti: riscrivere tu stesso le funzioni che ti servono. È difficile riscrivere in C delle funzioni C++, viste le differenze concettuali tra i due linguaggi. Inoltre, scrivere delle funzioni che si occupino di audio (sopattutto di modifica dell'audio) senza usare librerie gia esistenti (in C non ne esistono più da qualche anno, ormai) richiede una conoscenza ottima di analisi frequenziale, analisi di segnali periodici, trasformate di Fourier e vari altri argomenti.
Io stesso mi sto appoggiando alla libreria libsndfile, alla quale lo stesso Audacity si appoggia e utilizza. Penso che l'unica maniera sia quella di trovare il modo di utilizzare lo stesso Audacity in batch, se possibile.