rsynth icon indicating copy to clipboard operation
rsynth copied to clipboard

JACK CV?

Open mxmilkiib opened this issue 4 years ago • 1 comments

JACK can also support digital CV, would be neat to see support for this in rsynth.

mxmilkiib avatar Dec 27 '20 01:12 mxmilkiib

Hi @mxmilkiib , thanks for pointing me to this! I think adding this would need some redesign, so it's good that I know about this early. Do you already have some ideas for the design? Currently, audio rendering is done using the render_buffer method, but the AudioBufferInOut parameter does not have a field for CV. So I see three options here:

  • add a field to AudioBufferInOut. This is convenient and can provide the invariant that the number of frames is the same for all audio and CV ports, but would very probably require adding a lifetime parameter, which is very probably a breaking change
  • add it to the context. This can be done without a breaking change. However, you loose the invariant that the number of frames is the same for all audio and CV ports.
  • do something completely else! Edit August 2021: I'm currently revisiting the way buffers work in rsynth, if this works, the buffer system is designed similarly to the lv2 crate. CV support fits naturally in that.

Regardless of that, the meta-data would also need to be extended, which would very probably also be a breaking change.

So this is something to be added to the long-term goals.

Another thing to note is that rsynth doesn't "do" any jack itself, but uses the jack crate for that. ~~I think the jack crate doesn't currently support CV ports (rustaudio/rust-jack#111), so adding CV support to rsynth is currently blocked by that, I think.~~ Edit: the jack crate seems to support CV now: RustAudio/rust-jack#136 behind a feature flag (which was not enabled when generating the documentation).

Edit: the lv2 crate already has support for CV, so we'll need to do the design anyway before we add support for LV2, then we can re-use that design for jack once CV is possible with the jack crate.

PieterPenninckx avatar Dec 27 '20 13:12 PieterPenninckx

I'm closing this issue since rsynth has been deprecated. See the README.md for more information.

PieterPenninckx avatar Oct 28 '23 12:10 PieterPenninckx