surge-synthesizer / shortcircuit-xt

Will be a sampler when its done!
GNU General Public License v3.0
252 stars 30 forks source link

The general "midi and note expression smoothing" issue #1343

Closed baconpaul closed 3 weeks ago

baconpaul commented 1 month ago

Midi smoothing - what to do.

With things like note expressions, poly at, and controllers in the matrix (and in the engine for note expressions) we need to do something.

Right now

So opening this issue to think about it 'generally'.

Note that some things are per voice and some are per engine so a strategy that scales to voice level smoothers really matters, which means we only want to smooth a voice item if we know it is used as a source.

baconpaul commented 4 weeks ago

1085 is connected

mkruselj commented 4 weeks ago

Methinks this should be a per instance option with some default (say 10 ms).

It might end up completely moot once we have lag as the mod matrix modifier (in the CURVE menu). Then we would just lag what we want exactly and decide how much.

Pitch bend should also be lagged ofc (maybe it already is along with CCs but I'm stating it matter of factly because they weren't explicitly mentioned as being smoothed).

baconpaul commented 4 weeks ago

OK here's what we sort of decided

  1. In the mod matrix each source gets a smoothing option with a default per source
  2. You can edit it with a bottom-of-the-source-menu smoothing submenu.
  3. For now have none / 5 / 10 / 50 / 100 / 500 ms as the options
  4. Maybe in the future make it a slider or have different smoothing algos or what not but that's mostly ui

Some of the convo

EvilDragon — Today at 8:18 AM
I wouldn't want to defer to any defaults here, this should be adjustable. or do you mean "certain sources get some lag by default others don't"
baconpaul — Today at 8:18 AM
yeah exactly
EvilDragon — Today at 8:19 AM
but I really wouldn't want static A/B/C/D options
baconpaul — Today at 8:19 AM
we make good choices you can overrole them
EvilDragon — Today at 8:19 AM
this is very much a feel thing
hence the slider
it doesn't have to look fancy. basically like a narrower mod matrix depth slider
baconpaul — Today at 8:19 AM
a slider in a menu might be a nightmare but yeah i get what you are saying.
EvilDragon — Today at 8:19 AM
I think it's the perfect UX
baconpaul — Today at 8:19 AM
for now i might just do a three position 'none / fast / slow'
baconpaul — Today at 8:20 AM
a nightmare to implement.
EvilDragon — Today at 8:20 AM
yeah fair
baconpaul — Today at 8:21 AM
what we can do for now is

1: remove smoothing in the engine
Add a none / fast / slow
3: Default it by source
4: have it in a submenu
5: See what we think

then if that works we can change none/fast/slow to a float.

I'll implement it in the engine as a bool + float time anyway its just ui pain.
hows that sound as a starting point?
EvilDragon — Today at 8:21 AM
yep sure as a start. maybe we also specify the ms
so maybe 0 50 100 200 500
baconpaul — Today at 8:21 AM
yeah "none / 5ms / 10ms / 50ms / 100ms"
wow 500ms is half a second!
EvilDragon — Today at 8:22 AM
yes Kontakt does up to 2 seconds lag.
baconpaul — Today at 8:22 AM
right ok
that's cool
EvilDragon — Today at 8:22 AM
sometimes it's useful