Among the non-sclang front ends, which ones can auto-generate their own bindings for new plug-ins?

With the ability to do Faust plug-ins for scsynth via various scripts, but which generate only sclang bindings, I’m wondering: among the non-sclang front ends, which ones have (mostly) automatic bindings import capability for new server plug-ins, in general?

Basically, which non-sclang frontends (meaning ScalaCollieder, the Python one or Haskell ones, etc.) auto-generate their own ugen bindings from the sclang ones (that e.g. the Faust2SC scripts do output) or in some other automagical way (e.g. directly from the C++ header files) that doesn’t require one to manually write bindings for each new plugin for that particular (non-sclang) front-end?

1 Like

Basically, which non-sclang frontends (meaning ScalaCollieder, the Python one or Haskell ones, etc.) auto-generate their own ugen bindings from the sclang ones (that e.g. the Faust2SC scripts do output) or in some other automagical way that doesn’t require one to manually write bindings for each new plugin for that particular (non-sclang) front-end?

I can say, to limit your search, that Vivid does not do this. It’s usually very simple to add a new UGen but at the moment it needs to be done by hand.

You might be interested in Rohan Drape’s solution to the problem. Seems similar to what you’re looking for, and outputs to 4 different languages: rd: hsc3-db

1 Like

hsc3-db is both partial and partially inaccurate, but is useful as a starting point.

:smiley:

I thought it’s not a hard problem, but it turned that it rather is. My vague recollection now is that automagical solution from C++ code like http://www.swig.org/ are even looked down in some circles. And GitHub - LLNL/shroud: Shroud: generate Fortran and Python wrappers for C and C++ libraries which is more limited in scope, but apparently used by boffins.

ScalaCollider uses XML descriptions to generate language bindings for UGens. I have written them by hand for the standard UGens, but it should be straight forward to auto-generate them if you have already a usable description in other format.