Riproduzione audio polifonica
-
22-07-2019 - |
Domanda
Ho bisogno della riproduzione audio con queste caratteristiche: buone prestazioni (per gioco), controllo del pitch e capacità di sovrapporre lo stesso campione più volte contemporaneamente (polifonia). Quale sarebbe un modo rapido per ottenere questo su iPhone SDK?
Ecco cosa ho scoperto finora:
Non ci sono librerie disponibili o codici di esempio che lo fanno, per favore mostrami male.
SoundEngine.cpp (dagli esempi di codice CrashLanding e TouchFighter) utilizza OpenAL e consente di controllare il tono, ma ogni volta che viene avviato un buffer, se lo stesso buffer è in esecuzione, la sua testina torna all'inizio.
Una soluzione sporca per ottenere la polifonia con SoundEngine.cpp, senza immergersi nella sua implementazione (che per me è incomprensibile), è caricare più buffer per lo stesso file audio. Diciamo che voglio una polifonia di massimo 4 voci per suono, quindi carico 4 buffer per lo stesso file. Dovrei semplicemente concludere tutto in una classe manageriale. È sicuro seguire questa strada? E / o c'è un modo per hackerare SoundEngine.cpp in modo che sia polifonico?
Soluzione
FMOD (www.fmod.org) offre tutte queste funzionalità. Dai un'occhiata al loro campione di voci virtuali per la polifonia e l'effetto DSP di pitch shift nei documenti.
Sono solo un cliente, non altrimenti affiliato con loro.
Altri suggerimenti
Il SoundEngine di CrashLanding è un casino, ne starei lontano. Scrivere ciò che vuoi su OpenAL non è difficile, sono poche ore di lavoro. Puoi dare un'occhiata a Finch o al Cocos 2D sound egine .