Qualcuno conosce qualche libreria di codici C / C ++ / C # che emula il sintetizzatore audio? [chiuso]

StackOverflow https://stackoverflow.com/questions/250394

Domanda

Sto cercando di scrivere un sintetizzatore software che ricrea i suoni prodotti dai sintetizzatori classici come Moog e DX7. Qualcuno sa di eventuali risorse di codice per qualcosa del genere? Grazie.

È stato utile?

Soluzione

Esistono moltissime librerie C / C ++, la maggior parte non è più aggiornata. Non c'è molto per C #, ma ne ho visti un paio. Non ho usato nessuno di loro con rabbia, quindi non posso dare alcun consiglio.

Vorrei iniziare con Harmony Central e vedere se trovi qualcosa di utile lì .

In alternativa, una ricerca di sintesi analogica su sourceforge.net ha molti risultati.

Altri suggerimenti

CCRMA a Stanford può essere una buona risorsa per il software audio. Il Synthesis ToolKit in C ++ (STK) sembra che potrebbe aiutarti.

Moog e Yamaha DX7 sono drasticamente diversi. Il DX7 utilizza la sintesi FM, che è molto strano. Molto diverso dai soliti analoghi VCO / VCA / VCF come il Moog.

Per molto tempo, Yamaha ha intentato causa per difendere i suoi brevetti FM, ma ormai sono tutti scaduti, credo. La distorsione di fase di Casio era simile alla FM di Yamaha e riuscì a evitare l'ira di Yamaha (per quanto ne so).

Comincerei scegliendo l'uno o l'altro. Virtual Analog (emulazione di sintetizzatori analogici) è di gran moda da quando si sono presentati Nord Lead e Access Virus. E molto più facile da contemplare. Quindi farei così se vuoi camminare con la folla dell'anca.

Inizia con buoni oscillatori a banda limitata, crea un generatore di inviluppo, fai un filtro. Per ispirazione, dai un'occhiata al ricettario del sintetizzatore gallese per vedere come si possono produrre tutti i tipi di suoni con un synth oscillatore Vorrei iniziare implementando le funzionalità minime necessarie per quelle patch.

FM e PD sono selvaggi. Se segui questa strada, si tratta di concatenare abbastanza operatori FM insieme in configurazioni interessanti per ottenere uno spettro di suoni interessanti. Attenzione: è un sacco di lavoro per evitare l'aliasing in FM.

Synthmaker e SynthEdit genereranno il codice VST per te. SynthEdit genera sicuramente i file sorgente C ++ non compilati ed è gratuito.

http://www.synthedit.com/

http://synthmaker.co.uk/

la soluzione migliore è controllare i forum degli sviluppatori su KvR . Saranno in grado di indirizzarti verso i migliori motori DSP / sintesi open source e alcuni plugin VSTi open source da cui puoi trarre ispirazione. Sarà comunque tutto in C / C ++. Al momento, nel codice gestito è disponibile solo la sintesi audio più basilare.

Il musicdsp ha anche un fantastico libreria di sintesi . Un sacco di codice di esempio in C / C ++ su come fare le cose.

Guarda le risposte alla Biblioteca di musica Python . Mentre la domanda dice "Python", Python è basato su C. Quindi tutto ciò che è utilizzabile da Python avrà anche una libreria C.

Ho scritto una semplice libreria synth come parte di un'app per iPhone. Forse funzionerebbe anche per le tue esigenze di synth. Forse no. http://mobilesynth.googlecode.com/svn/trunk/mobilesynth/Classes / Synth /

Questi tutorial (specialmente dalla parte 8 in poi) coprono la programmazione di tutte le parti di un classico synth sottrattivo in C ++: oscillatori, buste, filtro e LFO.

Chuck è il migliore che io conosca, ma è simile al C ++, non al C ++.

Ho avuto qualche successo con la libreria BASS , ma il suo supporto .Net era un po 'rozzo l'ultima volta che ci ho giocato. Per lo più codifica stream di basso livello e simili, ma supporta alcuni effetti DX8.

Ci sono due articoli su CodeProject che potresti voler controllare. Leslie Stanford ha creato un toolkit Synth in C # (per quanto ne so è completamente gestito).

Toolkit C # Synth - Parte I Toolkit C # Synth - Parte II

Inoltre, ho appena trovato questa domanda StackOverflow che ha alcuni buoni collegamenti, sebbene sia relativa a Java

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