Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hybrid controller/effects lag by a buffer #146

Open
sowbug opened this issue Aug 23, 2023 · 0 comments
Open

Hybrid controller/effects lag by a buffer #146

sowbug opened this issue Aug 23, 2023 · 0 comments
Labels
bug Something isn't working control Issues about things that implement the Controller trait: sequencers, arpeggiators, ControlTrip, etc. design Issues that need to be resolved in the design effect Issues about things that implement the Effect trait: delay, reverb, gain, etc.
Milestone

Comments

@sowbug
Copy link
Owner

sowbug commented Aug 23, 2023

Hybrids (e.g., SignalPassthroughController) will always lag by the buffer size, because they don't get to create their events until after they've gotten their turn as effects. Do we need a second pass to gather and distribute hybrid events?

@sowbug sowbug added bug Something isn't working design Issues that need to be resolved in the design effect Issues about things that implement the Effect trait: delay, reverb, gain, etc. control Issues about things that implement the Controller trait: sequencers, arpeggiators, ControlTrip, etc. labels Aug 23, 2023
@sowbug sowbug added this to the End of Summer milestone Aug 23, 2023
sowbug added a commit that referenced this issue Aug 23, 2023
As expected, this exposed a few issues.

- MIDI was over-routing. If any sequencer emitted a note, everyone would play
  it. See #145 for more.
- It's unclear how to handle hybrid controller/effect combos such as
  SignalPassthroughController. As-is, any event that is triggered by effects
  processing won't get dispatched until the next spin of the main loop. This
  means that during live play, a sidechain (for example) wouldn't trigger until
  64 samples after the source signal fires. That's a delay of 1.45 milliseconds
  @ 44.1KHz. Unacceptable. See #146 for more.

Aside from these issues, this is a really awful sidechain, because the ducking
mechanism perfectly follows the source waveform, which basically means that it's
duplicating the inverted waveform on the ducked track. We need to put an
envelope on it or something. "It" could be the passthrough controller, or the
gain, or something in between. Not sure.
@sowbug sowbug modified the milestones: End of Summer, Halloween Sep 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working control Issues about things that implement the Controller trait: sequencers, arpeggiators, ControlTrip, etc. design Issues that need to be resolved in the design effect Issues about things that implement the Effect trait: delay, reverb, gain, etc.
Projects
None yet
Development

No branches or pull requests

1 participant