Domanda

Ho cercato in rete ma non ho trovato nulla di interessante. Forse sto facendo qualcosa di sbagliato.

Sto cercando la sintesi del suono API scritto su C, C ++ o anche Objective-C, che può sintetizzare differenti tipi di onde, gli effetti sono opzionali.

È stato utile?

Soluzione

Ecco una libreria completa / toolkit per FM (Frequency Modulation) sintesi:

collegamento1 link2

Se avete tempo da perdere ... la creazione di sintesi del suono semplice da zero è in realtà uno sforzo divertente. Se si crea un piccolo buffer di 256 campioni di 16 bit che rappresentano sia un seno. un dente di sega, blocco o impulsi, è possibile copiare questi ad un audiobuffer vivo (ad esempio un piccolo tampone (per esempio 16kb)) che loop continuo. Rimanendo in vista del playposition, e costantemente riempire il buffer con nuovi valori, è possibile creare il soundoutput. È possibile utilizzare il piccolo buffer di combinare questi in modo interessante (più semplice è solo per aggiungere insieme (sintesi additiva)).

La frequenza del tono può essere manipolato utilizzando un passo di campionamento maggiore o minore attraverso i piccoli buffer. Ampiezza può essere manipolato, scalando i campioni prima della loro messa in buffer di uscita.

Grande divertimento a sperimentare con questo!

Se avete questo passaggio inchiodato, è possibile aggiungere effetti più sofisticati come filtri (passa-basso, passa-alto, ecc) ed effetti (riverberi, echi, ecc)

R

Altri suggerimenti

Hai guardato il toolkit di sintesi ( STK )? E 'in C ++ (non credo objC è il linguaggio giusto per la sintesi audio, in unità audio infatti, proprio modo di Apple di fare cose audio, tra cui generatori / filtri / effetti ... è in C ++).

STK funziona su Mac OS X, e iOS non è un problema (CoreAudio è supportato), ma sarà anche eseguito su Linux e Windows (suono diretto e ASIO), utilizzando RTAudio. E 'davvero ben fatto e leggeri, questi ragazzi hanno speso un sacco di tempo a pensare a questo proposito e sarà sicuramente vi darà un grande vantaggio. E 'in grado di gestire i carichi di diversi formati di file audio + MIDI (e si spera OSC presto ...).

Creare e CLAM che è enorme, questi includono componenti GUI e molte altre cose che si potrebbe o non potrebbe desiderare. Se siete interessati solo a fare sintesi del suono Consiglio vivamente STK.

PortAudio è anche un grande API C che abbiamo usato ultimo semestre in corso di programmazione audio. Esso fornisce un callback audio ... cosa si può bisogno !?

Non ho provato incorporandola con qualsiasi cosa in Objective-C ancora, ma riferirà quando lo faccio.

Scrivere algoritmi di sintesi audio in C / Obj-C è abbastanza difficile a mio parere. Suggerirei a scrivere gli algoritmi di elaborazione del segnale utilizzando PureData e quindi utilizzare ZenGarden o libpd per incorporare ed interpretare le patch PD nella vostra app.

Un altro libreria C ++ è Nsound:

http://nsound.sourceforge.net

Si può generare alcun tipo di segnale modulato utilizzando la classe generatore o utilizzando la classe Sine fornito. Ogni passo temporale può avere la sua propria frequenza istantanea e spostamento di fase.

È inoltre possibile sperimentare con il modulo Python per prototipare rapidamente il vostro algoritmo, quindi implementare in C ++. Può produrre belle trame matplotlib da Python e anche da C ++!

Hai guardato CSound ? Si tratta di una piattaforma incredibilmente flessibile generazione audio, e in grado di gestire tutto, dalla semplice generazione di forme d'onda per la sintesi FM e tutti i tipi di filtri. Esso fornisce anche il supporto MIDI, e si può allungare scrivendo codici operativi personalizzati. C'è un piena C API e API diversi C ++ pure.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top