Skip to content
This repository has been archived by the owner on Oct 28, 2023. It is now read-only.

JACK CV? #113

Closed
mxmilkiib opened this issue Dec 27, 2020 · 2 comments
Closed

JACK CV? #113

mxmilkiib opened this issue Dec 27, 2020 · 2 comments

Comments

@mxmilkiib
Copy link

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

@PieterPenninckx
Copy link
Owner

PieterPenninckx commented Dec 27, 2020

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
Copy link
Owner

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

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants