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

Oscillator Shaping #6646

Closed
baconpaul opened this issue Oct 10, 2022 · 3 comments
Closed

Oscillator Shaping #6646

baconpaul opened this issue Oct 10, 2022 · 3 comments
Labels
DSP Issues and feature requests related to sound generation in the synth Feature Request New feature request

Comments

@baconpaul
Copy link
Collaborator

Over in surge-synthesizer/surge-rack#303 user posted super useful ideas about PD and stuff which since they were in the rack repo we didn't consider properly.

Tagging @Kwurqx and moving the content here and closing that issue as we move to rack xt.


Even more oscillator wave shape shaping control would be great.

More flexible "shaping" options for the oscillator shape will give you countless custom waveshapes (with their own tuneable spectra). A great addition to (custom) wavetables, that have their own pro's and con's (e.g. finding/selecting/building them).

Surge already has several (many!) great oscillator shaping functions. Surge also already has the slider controls to control the shaping amount. And these slider are also a modulation targets. All great! But it could be even better!

Even some extra "simple" squeeze/stretch transformations in the Horizontal (Time) and Vertical (Amplitude) domain are great.

Maybe add extra shape distortion curves/functions as a modulator for the oscillator shape in time and/or amplitude domain. Or even allow custom shapes (via editor or import). Or even dynamically shapeable shaping shapes....

Anyway...

Of course there are infinite possibilities in Wave shaping shapes and functions. Even when just applying this to the amplitude domain. Sort of companding/distortion of the amplitude (vertical) domain of the wave shape. A common wave shaping/distortion function). Already implemented in Surge in some forms / signal path stages.

But of course this can also be applied to the time (horizontal) domain. Surge already offers this in some form too. With the right shape/function you can achive something "simple" as "PWM" of say an symmetric SAW into a asymetric SAW. By companding/distoring over the time domain. To visualize: where the zero crossing is shift left, compressing anything left of the zero crossing, expanding anything to the right.

Since the time domain is revlevant for both frequency and phase, you could als modulate phase to distort/shape a wave. Some words on that below in the "special" bit on FM/PM/PD.

In general, you can apply any wave shaping curve at any amount to the time and/or amplitude domain of the oscillator wave shape. Added control over the Oscillator Shape Wave Shaping curve (in the Oscillator section) would be great to. Some edit functions would be tops. But some clever presets would be great too. Or some "wavetable" like option, where you can morph between fixed shapes?

Random link to amplitude shaping

https://www.testandmeasurementtips.com/basics-of-amplitude-distortion-faq/
Some "special" waveshaping functions that might deserve a seperate feature request: Phase Distortion

https://en.wikipedia.org/wiki/Phase_distortion_synthesis
Peavy/Casio Phase Distortion.

"non-cyclic" shaping functions
https://theproaudiofiles.com/phase-distortion-synthesis/
Yamaha "FM" phase distortion wave shaping

phase modulating a 0 Hz carrier as offered by e.g. Yamaha SY77/99.
16 operator/modulator "cyclic" operator/modulator waveshapes
There have been some Korg implementations of FM/PM/PD too: Variable Phase Modulation (e.g. Prophecy, Z1). Trying to avoid the Yamaha FM patents.

Bowl of mixed fruit on FM/PM/PD:

https://www.perfectcircuit.com/signal/phase-distortion-frequency-modulation

@baconpaul baconpaul added the Feature Request New feature request label Oct 10, 2022
@baconpaul baconpaul added this to the Surge XT 2.0 milestone Oct 10, 2022
@mkruselj mkruselj added the DSP Issues and feature requests related to sound generation in the synth label Oct 11, 2022
@mkruselj
Copy link
Collaborator

mkruselj commented Oct 11, 2022

To me, this issue is basically already covered with: #6647, #3273, #4847, #4627, #3619, #3670, #4539, #867. Kinda.

It's one of less helpful feature requests since it's unfocused and more of a "and a kitchen sink" sort of thing... My takeaway here is basically #6647 which I opened as an attempt to hone in on what we don't have vs everything that was mentioned that we already have.

@baconpaul
Copy link
Collaborator Author

Yeah I just didn’t want to lose it and figured we would refactor it but also wanted to clean up the rack issues :)

@mkruselj
Copy link
Collaborator

mkruselj commented Nov 5, 2022

Closing this as we have it covered with all of the above mentioned issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
DSP Issues and feature requests related to sound generation in the synth Feature Request New feature request
Projects
None yet
Development

No branches or pull requests

2 participants