Csound Csound-dev Csound-tekno Search About

[Csnd-dev] RFC: Ugen API

Date2026-02-25 20:24
FromSteven Yi
Subject[Csnd-dev] RFC: Ugen API
Hi All,

I've set up an initial implementation of the UGEN API that is based on prior work I had done (see paper ""Extending Aura with Csound Opcodes"). The API allows for instantiating opcodes as individual UGEN objects that can be arbitrarily connected (i.e., patched together) for processing. This should open up opcodes outside of the model of instruments/score (think PD, webaudio nodes, etc.). 

There's a draft PR available at:

https://github.com/csound/csound/pull/2498

that has some unit tests and an example of what it'd look like using it from Python (via ctcsound). While things currently work with i, k, a types, it does not for S or F types, which definitely needs to be addressed. I'm unsure yet what would be the best way to proceed for API changes to accommodate those types. Additionally, it's currently using a wrapper type for arg types, rather than using CS_TYPE directly. (Something that may also change.)

Happy to hear any feedback. Feel free to reply to the github issue or here. 

Thanks!
Steven