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

Tails and Group Release #852

Open
baconpaul opened this issue Apr 7, 2024 · 2 comments
Open

Tails and Group Release #852

baconpaul opened this issue Apr 7, 2024 · 2 comments

Comments

@baconpaul
Copy link
Contributor

Tail is an interesting problem. We have three types of processors

No tail. (So, like, the pitch ring)
Tail which decays (like a delay or reverb)
Tail doesn't make sense / is infinite so external system has to decide (like a sine generator)

For voice its easy. Everything is gated by the AEG. We can save some CPU by not running the no tail processors once the sample is finished if my upstream processors are also no tail.

But for groups it really matters. A delay in a group slot you want to ring out after the voices are finished. A generator probably less so.

But the 'group-process lifetime' is actually a tricky problem! If you add, say, a sine generator as a monphonic drone in your group and pitch it based on like last voice pitch or some such, it will end very abruptly. So need to think about that some.
it's almost like you want a 'group release' modulation source but how long etc....

one to think about. For now I will just set the generators with 0 tail. but will definitely want to revisit this so I'll stick this comment in an issue

@baconpaul
Copy link
Contributor Author

The generator problem is really just with group generators
“Until silence” isn’t a cheap calculation with a delay oddly. Imagine a long delay with feedback and a short pulse. Lots of silence. But that’s a well solved problem
The zone level generators can get an eg from the zone eg already!
Andreya — Today at 10:08 AM
Yeah I know! But if they get their own EG they have finite lifetime I mean. Which puts them in the same category as the delay/reverb.
It could be a simple AR one even. Which would have the additional benefit that you could say smooth the attack without burning an EG sources
baconpaul — Today at 10:13 AM
Yeah right and then they release after last voice ends in group
That’s a really clever solution
Andreya — Today at 10:14 AM
Exactly!
baconpaul — Today at 10:14 AM
But in zone it is wierd because you don’t want it to release when un gated
Since it is inside the aeg
Andreya — Today at 10:16 AM
Option to disable when loaded in zone?
baconpaul — Today at 10:17 AM
It’s like you want the ar on group generators but not zone
Jinx
Andreya — Today at 10:18 AM
Yup!
baconpaul — Today at 10:18 AM
Ok will ponder some more. Good idea
Ahh also it’s annoying if you have generators chained
Need to think some more
Maybe group eg can solve this too

@baconpaul
Copy link
Contributor Author

GroupTailsDontWork.scm.zip

Here's a great SCM which shows it

Compare holding a key down with pressing a key. That group delay should keep on ringing

baconpaul added a commit to baconpaul/sst-effects that referenced this issue Aug 24, 2024
This commit does a few things

1. Adds a propert tail on ShortDelay
2. Makes it so if ShortDelay is initialized multiple times it
   doesn't leak its line
3. Adds some consts in places where you can tolerate them

Addresses surge-synthesizer/shortcircuit-xt#852
baconpaul added a commit to surge-synthesizer/sst-effects that referenced this issue Aug 24, 2024
This commit does a few things

1. Adds a propert tail on ShortDelay
2. Makes it so if ShortDelay is initialized multiple times it
   doesn't leak its line
3. Adds some consts in places where you can tolerate them

Addresses surge-synthesizer/shortcircuit-xt#852
baconpaul added a commit to baconpaul/shortcircuit-xt that referenced this issue Aug 24, 2024
This adds support for a processor to implement tailLength
and then keep a group alie through its tail. it also adds a
reasonable tailLength implementation to ShortDelay (but no
other processor).

Addresses surge-synthesizer#852. Once we do the same with EG12 release that
issue will be mostly wrapped, but we do need to visit all the procs for
a tail.
baconpaul added a commit that referenced this issue Aug 24, 2024
This adds support for a processor to implement tailLength
and then keep a group alie through its tail. it also adds a
reasonable tailLength implementation to ShortDelay (but no
other processor).

Addresses #852. Once we do the same with EG12 release that
issue will be mostly wrapped, but we do need to visit all the procs for
a tail.
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

No branches or pull requests

1 participant