2009-07-08 11 views
23

Ho un'applicazione per bambini per bambini che sto scrivendo e devo essere in grado di spostare l'intonazione di un campione sonoro utilizzando Core Audio. Qualcuno ha un codice di esempio che potrei vedere dove viene fatto. Ci sono molte app di musica e giochi nell'app store che fanno così so che non sono il primo. Tuttavia, non riesco a trovare alcun esempio di ciò che viene fatto.Cambio Pitch in tempo reale su iPhone

risposta

14

è possibile utilizzare dirac-2 da dimensione dsp per pitch shifting su iphone. quote: -

"DIRAC2 è disponibile sia come libreria di oggetti commerciali che offre frequenze di campionamento illimitate e supporto multicanale a fase bloccata, sia come versione singola a canale libero, versione LE 44.1/48kHz."

+0

Ho avuto un brutto provare provare dirac3 a causa del suo 'libDIRAC_iOS4-fat.a' ​​che probabilmente non è molto diverso su dirac2.Non potevo proprio usarlo - ho avuto troppi errori nella parte di collegamento del processo di compilazione. Piuttosto, [ho usato openAL] (http://stackoverflow.com/questions/2035975/how-do-you-completely-remove-and-release-memory-of-an-openal-sound-file/4647692# 4647692) con enorme successo. – cregox

+1

Funziona bene per me. Probabilmente hai dimenticato di aggiungere l'accelerate framework al tuo progetto (è nel file readme) – tahome

+1

DIRAC è perfetto, ma OpenAL con AL_PITCH cambia anche la lunghezza del suono, che è meno che ideale. DIRAC è ora la versione 3. La sua libreria include il progetto iPhone Demo. – Tibidabo

1

Vedi: Related question

Quanto controllo sopra passo cosa avete bisogno ... potresti precalculate tutti i diversi suoni? Se la risposta è sì, allora puoi semplicemente scegliere i suoni giusti e suonarli.

È inoltre possibile utilizzare i servizi di conversione audio in combinazione con AVAudioPlayer, che consente di ricampionare l'audio (che verrà effettivamente ripubblicato, anche se cambieranno la durata).

In alternativa, come sottolinea la relativa domanda, è possibile utilizzare OpenAL e AL_PITCH

+2

Non ha aiutato. Grazie! –

+0

@Leachy si sta chiedendo ... come potrebbe non aiutarti OpenAL e DIRAC? Per me era l'esatto opposto, e dirac si è dimostrato inutile! : o – cregox

9

utilizzare il progetto SoundTouch open source per cambiare passo

Ecco il link: http://www.surina.net/soundtouch/

Una volta aggiunto SoundTouch al tuo progetto, devi fornire il percorso del file audio in ingresso, il percorso del file audio in uscita e il pitch change come input.

Poiché è necessario più tempo per elaborare il suono, è meglio modificare il soundtouch in modo tale che quando si registra la voce, dati direttamente i dati per l'elaborazione. Renderà migliore la tua applicazione.

+0

Darò uno scatto. Grazie Anil! L. –

+0

@Anil: Non ho ottenuto API per iOS – Maulik

+1

Mi piacerebbe un collegamento su come farlo. Ho trascorso tutto il giorno cercando di scoprire come aggiungere Soundtouch al mio progetto iOS – AlBeebe

2

Prova Dirac: è la migliore tecnologia disponibile ed è disponibile su Win, Linux, MacOS X e iOS. Lo stiamo usando in tutti i nostri prodotti (e anche un paio di altri lo fanno, cercare "Capo" sull'App Store). Sono alla versione 3 ora che ha visto un enorme aumento delle prestazioni rispetto alle versioni precedenti. Spero che questo ti aiuti.

3

So che è troppo tardi per la persona che ha chiesto ma è davvero un link prezioso (come ho trovato) per chiunque altro stia cercando la soluzione dello stesso problema.

Quindi qui abbiamo ultima DIRAC3 con le proprie audio player classi che si prenderà cura di tempo tono e la velocità run (esplorare per dio sa cos'altro) spostando. Esegui il campione e fai un enorme applauso per questo.