Risposte:
Ottieni Real Sound Synthesis per applicazioni interattive e scarica Synthesis Toolkit . Ciò fornirà introduzioni pratiche e codice sorgente di qualità per la maggior parte dei metodi di sintesi digitale in uso. Quindi scegli il metodo che ritieni più interessante e inizia a modificare il codice STK corrispondente per fare ciò che desideri. Quindi prova a creare qualcosa di simile da zero.
Inoltre, come suggerito hotpaw2 , qualsiasi cosa di JOS è anche un ottimo materiale introduttivo. In particolare, Introduzione ai filtri digitali con applicazioni audio e matematica della trasformata discreta di Fourier iniziano entrambe dalle basi e non assumono molto background.
Dal punto di vista del filtro / effetti digitali, un altro buon punto di partenza è dare un'occhiata a Faust . Non devi nemmeno imparare il loro linguaggio di elaborazione del segnale dello schema a blocchi, puoi semplicemente usare gli esempi per scaricare il codice modello VST, LADSPA, ecc. Come modo rapido per far funzionare qualcosa [che puoi quindi modificare].
Detto questo, è ancora più facile iniziare con il rendering del suono, che è sostanzialmente la stessa cosa, ma senza preoccuparsi del funzionamento in tempo reale o dell'interattività. Basta salvare i file wav su disco. È un ottimo modo per sperimentare nuove tecniche prima di affrontare il problema di farle funzionare rapidamente.
Leggevo un libro introduttivo su DSP e alcuni libri sull'argomento della musica per computer (Amazon e altre librerie ne elencano diversi). C'è anche una vasta gamma di materiale didattico di Stanford su DSP e sintesi sonora. Anche i libri sul sistema uditivo umano e la psicoacustica potrebbero essere utili.
Per prima cosa devi decidere quale tipo di sintetizzatore vuoi costruire - additivo, FM, basato su campioni, ecc. Devi anche decidere se vuoi emulare un tipo di sintetizzatore analogico esistente o semplicemente progettare il tuo.
Il resto è abbastanza semplice: devi solo implementare i vari blocchi di costruzione del sintetizzatore (ad esempio oscillatori, filtri, generatori di rumore, shaper di inviluppo, ecc.) Nel software e quindi implementare un modo di "collegarli" insieme e controllarne i parametri.
Vedi il libro di Hal Chamberlin, Applicazioni musicali dei microprocessori , che è una buona introduzione a molte delle basi.
Sono abbastanza sorpreso che nessuno abbia ancora menzionato SynthMaker . È ridicolmente facile da usare, e anche se rende difficile passare a un livello basso (assicurati di usare la modalità sviluppatore ), puoi imparare molto sull'architettura del sintetizzatore con esso e anche sul DSP generale. E puoi effettivamente fare uso delle cose costruite con esso, infatti, lo uso per costruire quasi tutti i miei plugin.
Come alcuni degli altri collaboratori hanno menzionato, un buon primer su DSP è un must. Questo è un ottimo libro> http://www.dspguide.com/ e l'autore ha gentilmente fornito un download PDF completo e gratuito. Un altro libro di corsi di tecnologia musicale comune che offre una buona visione di alto livello di varie tecniche di sintesi è> http://www.amazon.com/Computer-Music-Tutorial-Curtis-Roads/dp/0262680823 . Vorrei inoltre ribadire quanto suggerito dal precedente collaboratore, Synthmaker, che è un ambiente di sviluppo visivo molto conveniente per lo sviluppo di plug-in VST. Infine, se vuoi solo sperimentare senza approfondire, potresti provare a usare Csound che è un linguaggio di programmazione appositamente progettato per la sintesi sonora.
Voglio solo entrare perché la maggior parte delle risposte si concentra su questioni DSP. Se non usi un sistema di progettazione a blocchi come SynthMaker, trascorri molto tempo nello sviluppo della gestione della voce. Se stavi scrivendo un plug-in VSTi da zero, la curva di apprendimento è molto più lunga rispetto ai plug-in di effetti. Dovrai gestire ogni oggetto nota, decidere cosa succede quando ci sono 20 note se il tuo DSP è abbastanza veloce solo per 16 voci, rispondere a pitch bend, portamento, modulazione, ecc. Questo non è un compito facile ed è per questo che io altamente consiglia di iniziare con Buzz o SynthMaker e di arrotolarlo quando finalmente ti imbatti in un muro.