rsynth
rsynth copied to clipboard
JACK CV?
JACK can also support digital CV, would be neat to see support for this in rsynth.
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.
I'm closing this issue since rsynth
has been deprecated. See the README.md for more information.