2010-10-27 4 views
8

qualcuno sa come realizzare una semplice unità audio EQ (3 bande: bassa, media, alta) con iOS? So come aggiungere un iPod EQ Audio Unit al mio grafico AU. Ma ti dà solo accesso ai preset e ho bisogno di un controllo adeguato dell'EQ.Come realizzare un semplice EQ AudioUnit (bassi, medi, alti) con iOS?

Mi sono guardato intorno per alcuni tutorial o spiegazioni ma senza fortuna.

Grazie.

André

risposta

1

Questa antica Motorola AN2110 App Note spiega come scrivere il proprio equalizzatore a 10 bande completamente controllabile (e 10 bande di filtri audio IIR in tempo reale consumerà molto meno del 10% della CPU ARM un iPod Touch). Non sei sicuro su come integrare questo con un grafico AU, ma questo tipo di equalizzazione può essere facilmente integrato nei callback del buffer della coda audio PCM.

+0

Grazie! Sembra complicato ma suona come la giusta direzione da seguire. André. –

+0

Quel documento non spiega veramente come integrarlo in un ambiente iOS. – Zigglzworth

14

L'iPhone non supporta esattamente AudioUnits personalizzate. O, più precisamente, it doesn't allow you to register an AudioUnit's identifier così puoi caricarlo in un AUGRAPH. Tuttavia, è possibile registrare un callback di rendering, ottenere dati PCM grezzi ed elaborarli di conseguenza. Ecco come ho implementato l'elaborazione degli effetti nell'iPhone.

+1

Questo è davvero quello che faccio. Avresti qualche esempio di un semplice codice EQ per indicarmi per caso? Grazie. –

+1

La migliore risorsa per il codice DSP di esempio è musicdsp.org. Qui puoi trovare un EQ a 3 bande campione: http://musicdsp.org/archive.php?classid=3#236 Non dimenticare di contrassegnare una risposta come corretta se trovi che aiuta a risolvere il tuo problema. ;) –

+0

Ottima lista! Grazie. –

3

Ho scritto due post-blog su questo problema e su come ottenere l'equalizzazione su iOS funzionante. Usa la libreria libsox (cross compilato).

Primo post spiega come si costruisce libsox: http://uberblo.gs/2011/04/iosiphoneos-equalizer-with-libsox-making-it-a-framework

La seconda spiega come usarlo: http://uberblo.gs/2011/04/iosiphoneos-equalizer-with-libsox-doing-effects

prego fino la risposta se ti ha aiutato! Grazie!

+0

Il primo collegamento è stato interrotto. Il link corretto è http://uberblo.gs/2011/04/iosiphoneos-equalizer-with-libsox-making-it-a-framework Lo script funziona alla grande btw. Grazie per aver postato questo. –

+1

Potresti essere interessato alla mia libreria che ho scritto per iOS per fare tutti i tipi di filtri in poche righe di codice: https://github.com/bartolsthoorn/NVDSP – bartolsthoorn

2

è possibile implementare utilizzando le stesse classi utilizzate in speak qui codice di esempio, solo per generare proprietà come powervalue di picco e powervalue medio è necessario eseguire calcoli nella funzione di callback e funziona.

6

consiglio vivamente di utilizzare il mio NVDSP library, offre facile DSP'ing audio, tra cui i filtri necessari per effettuare un equalizzatore in iOS: https://github.com/bartolsthoorn/NVDSP

+0

Grazie per il link. Sembra molto interessante –

+0

Sono abbastanza sicuro che risponderà alla tua domanda, fammi sapere se hai problemi con la libreria. Ho anche aggiunto i pezzi di codice necessari per creare un equalizzatore a 10 bande: https://github.com/bartolsthoorn/NVDSP/blob/master/Examples/Equalizer.mm Inoltre, ho visto che stavi cercando di capire CoreAudio ultimamente, ti consiglio di dare un'occhiata a Novocaine, potrebbe essere tutto ciò che ti serve: http://alexbw.github.com/novocaine/ Molto probabilmente già ho scoperto che CoreAudio è piuttosto complesso. – bartolsthoorn