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

wavetable morph adjust #7789

Merged
merged 1 commit into from
Sep 20, 2024
Merged

Conversation

blancoberg
Copy link
Contributor

@blancoberg blancoberg commented Sep 18, 2024

  • Removed the "morph" interpolation method as you could clearly hear when it was switching over on higher frequency modulations. Now it only uses the new continuous mode.

  • Changed the way the new continuous mode reacts to the "extend range" flip. Before it would just remove the interpolation between each in between frame in a block, which made almost no difference in the overall sound. So now it instead removes the inbetween frames entirely, basically switching directly from the "last frame" to "current frame" which is probably closer to how the legacy method works.

  • Fixed a minor mistake in the switch implementation which affected the attack and the waveform display.

Removed "morph" interpolation.
Fixed an issue with the attack & waveform display
@mkruselj
Copy link
Collaborator

mkruselj commented Sep 18, 2024

I wonder if we can make the new quantized mode (continuous mode disabled) work like the PPG did? Meaning, it would only switch to a new wavetable frame after the current single cycle has finished, instead of immediately. This would be a very nice improvement IMO.

@blancoberg
Copy link
Contributor Author

blancoberg commented Sep 18, 2024

I wonder if we can make the new quantized mode (continuous mode disabled) work like the PPG did? Meaning, it would only switch to a new wavetable frame after the current single cycle has finished, instead of immediately. This would be a very nice improvement IMO.

it could work, but you would have to store a separate morph value for each voice in that case, otherwise they would all switch simultaneously on different phases. I guess the reason for switching at the ends is for reducing noise right? it does require all the frames to start and end at the same value otherwise it wouldn't work that great

@blancoberg
Copy link
Contributor Author

this would be super useful for me personally IF we could also have a mode for the pitch slider where that is also only allowed to change when a cycle is finished.

With those two, it would be possible to build super smooth legato transitions. Easier said that done though, as I'm pretty sure switching pitch in the middle of a block will screw everything up

@mkruselj
Copy link
Collaborator

I guess the reason for switching at the ends is for reducing noise right?

Yes, because PPG did not do any sort of interpolation between frames.

@baconpaul
Copy link
Collaborator

folks i'm a bit behind. where are we on this. Do we want to merge it or are there outstanding changes?
Thanks!

@baconpaul
Copy link
Collaborator

(Just want to make sure you aren't waiting on me! If you are waiting on other things that's fine!)

@blancoberg
Copy link
Contributor Author

I think you can merge. I'm not really sure about that "wait until cycle is finished" bit, as that will defeat the purpose of all the other changes I'v made to make the timing better between pitch & morph.

either way its a big fix so that will have to be in a separate pr

@baconpaul baconpaul merged commit 88f9645 into surge-synthesizer:main Sep 20, 2024
10 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.

3 participants