SOUL icon indicating copy to clipboard operation
SOUL copied to clipboard

Sustain pedal support in core library Voice Allocators?

Open alfonso73 opened this issue 4 years ago • 3 comments

Hi! Would be great if sustain pedal support is added to https://soul-lang.github.io/SOUL/docs/soul_library.html#mod_soul_voice_allocators As far as i see as for now there's non mechanism for sustain pedal handling in voice allocation. Am i right?

alfonso73 avatar Jan 25 '21 18:01 alfonso73

That's a good point, and a good idea. Yes, i'll investigate what can be done to add support for sustain.

cesaref avatar Jan 25 '21 18:01 cesaref

Thanks. Another interesting point is how polyphonic and monophonic voice allocation/stealing are implemented. As for monophonic voice stealing would be great to have the following modes.

  1. Last note priority (if two or more notes are pressed the last pressed one is played)

  2. Hifghest note priority (if two or more notes are pressed the highest pressed one is played)

  3. Lowest note priority (if two or more notes are pressed the lowest pressed one is played) As for polyphonic voice stealing same things are valid. And on top of that for polyphonic allocation there are at least two modes.

  4. Piano-like mode so when a new notes arrives that has already been played the same voice is assigned.

  5. Voice allocation is done regardless same note retriggering. This mode is more typical in synthesizer.

Some discussion here...

https://www.kvraudio.com/forum/viewtopic.php?f=33&t=558446

alfonso73 avatar Jan 25 '21 18:01 alfonso73

Yes, the current round robin allocator is about as simple as it gets, and we can certainly add a more sophisticated library implementation.

cesaref avatar Jan 25 '21 18:01 cesaref