Cosa bisogna sapere per costruire un sintetizzatore software?


19

Per qualcuno che ha una certa esperienza nello sviluppo di software, ama i suoi sintetizzatori e conosce le [molto] basi della rappresentazione audio digitale, quali sono i primi passi che dovrebbe seguire per programmare un sintetizzatore musicale, DSP-saggio?

Risposte:


17

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.


Risposta perfetta - copre una quantità molto ben bilanciata di questioni. Grazie!
Vemv,

6

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.


5

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.


4

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 sviluppatore di software sono sempre stato riluttante ai maghi, ma scommetto che DSP è un mondo profondo, quindi SynthMaker potrebbe essere utile. Inoltre un paio di compagni hanno avuto una buona esperienza con esso :)
vemv

Stavo per menzionare SynthMaker da solo. È un ottimo programma.
Matt M.

4

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.


2

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.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.