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

Fix a unison RR voice manager problem and reduce zone search #1340

Merged
merged 1 commit into from
Sep 17, 2024

Conversation

baconpaul
Copy link
Contributor

  1. The unison round robin interacted improperly with the voice manager and so created orphaned voices. Fix this bu changing the voice manager to have a transaction boundary around voice creation with a begin-for-count, make-up-to-count and end, which allows internal state to be constructed more evenly in the responder
  2. This means the begin count counts the unison voices so the initiate just sees each unison as a different entry
  3. This also means we can cache the findZone result from voice count rather than redo it, while still using fixed sized memory vehicles

Closes #1192
Closes #1241

1. The unison round robin interacted improperly with the
   voice manager and so created orphaned voices. Fix this
   bu changing the voice manager to have a transaction boundary
   around voice creation with a begin-for-count, make-up-to-count
   and end, which allows internal state to be constructed more
   evenly in the responder
2. This means the begin count counts the unison voices so the
   initiate just sees each unison as a different entry
3. This also means we can cache the findZone result from
   voice count rather than redo it, while still using fixed
   sized memory vehicles

Closes surge-synthesizer#1192
Closes surge-synthesizer#1241
@baconpaul baconpaul merged commit b3559b4 into surge-synthesizer:main Sep 17, 2024
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

voice unison mode: with a long voice in variant != 1 you don't get termination findZone twice per voice on
1 participant