gogins / michael.gogins.studio

Studio of Michael Gogins: computer music, photographs, writings.
5 stars 0 forks source link

Investigate optimal C++ libraries for audio DSP and music #6

Closed gogins closed 3 years ago

gogins commented 7 years ago

The most obvious use case is writing new Csound opcodes in C++. But there may be others. Before we get going, some of my issues:

  1. The whole library should be as simple as possible for what it does...
  2. Which is to provide the highest precision, highest-performance audio DSP that can be used for real-time and non-real-time performance.
  3. C++11.
  4. Preferably, a header-file only library.
  5. And of course, an open source license, though GPL is usable thanks to dual compatibility.
  6. Usually the signal flow graph is crap, something closer to the state of the art would be nice.
  7. Usually the developer knows either too much C++, or too little.
  8. In real life, adequate performance requires processing audio sample frames in blocks.
  9. Be a Linux package to integrate with the Csound build system.
gogins commented 7 years ago

Probably the best path forward now is to write some new Csound opcodes and try some of these to see what works best. Key issues are (a) simplicity and (b) quality of the signal flow graph.

gogins commented 4 years ago

Gamma enabled me to implement MVerb without too much trouble, but there are of course things about it I do not like. I might be able to do better myself but, of course, that way lies madness.

gogins commented 3 years ago

Of all the things I have tried, Faust is without doubt the most capable and comprehensive. Unfortunately it is not usable as a simple library. Still it can be used like one in Csound with the Faust JIT opcodes, or used to generate C++ code for use with the Clang JIT opcodes. Other "architectures" could easily be developed based on the C++ architecture.