Tech things and such
Article / Note
2015/10/31

Synthétiseur digital en C++ avec la librairie TonicAudio

Plug-in Quartz Composer et Séquenceur Cocoa

Quelques expérimentation avec la bien sympathique librairie TonicAudio :

Cette librairie permet de disposer d'un synthétiseur type "analogique modulaire" (quoiqu'évidemment numérique...). Un certain nombre de modules sont offerts :

  • des oscillateurs (sinus, rectangulaire, forme d'onde custom...)
  • des filtres (LPF, HPF, BPF de différents ordres)
  • des effets (réverbération, écho...)
  • différents déclencheurs et contrôleurs
  • un générateur d'enveloppe : ADSR (Attack, Decay, Sustain, Release).

Mais le plus intéressant reste sans doute la méthode proposée pour les assembler. En effet, l'auteur à reconfiguré le sens de certains opérateurs (* , + , >>...) pour chaîner les différents modules. Ainsi, on forme très intuitivement nos synthétiseurs comme ceci par exemple :

(OSC * LFO * ADSR) >> delay >> LPFilter

La première implémentation que j'en ai fait passait par un exécutable binaire car je n'avais pas compris le fonctionnement du wrapper c++/Objective-C proposé par l'auteur (pourtant parfaitement clair !). Je poussais des variables via l'entrée standard de l'exécutable, ce qui n'est évidemment pas le plus joli :-)...

Mêler l'objective-C et le C++ dans un même projet demande un petit ajustement sans quoi c'est l'erreur de compilation assurée : il faut simplement changer l'extension des fichiers d'implémentation .m en .mm !

Séquenceur Cocoa
Une capture du séquenceur Cocoa


Plug-in Quartz Composer TonicQC
Une capture du patch QC et ses paramètres
>> Réagir à cet article