"Smoothing" for WT scanning

User Feature Request List

Moderator: Solaris Moderators

Post Reply
Dark Horseman
Posts: 5
Joined: Mon Jun 04, 2018 7:25 am

"Smoothing" for WT scanning

Post by Dark Horseman » Mon Jun 04, 2018 9:35 am

I understand that the aliasing during wavetable scanning inherent in the original PPG and Microwave synthesizers due to lack of processing power in those synths was intentionally built into the Solaris. This is a great feature, but there are times when instead I'd like the scanning to be seamless rather than "stepping" through a wavetable. Would this possible with a software update?

synthwalker
Posts: 65
Joined: Sun Apr 10, 2011 3:16 am
Location: France

Re: "Smoothing" for WT scanning

Post by synthwalker » Tue Jun 05, 2018 4:45 am

Aggreed.
FYI in PPG Wave 2.X, all wavetables exist in both stepped and smooth versions...

Dark Horseman
Posts: 5
Joined: Mon Jun 04, 2018 7:25 am

Re: "Smoothing" for WT scanning

Post by Dark Horseman » Tue Jun 05, 2018 11:57 am

Yes I also have the PPG Wave software, and I love having both options.

normanion
Posts: 16
Joined: Sun Jan 29, 2017 9:31 am

Re: "Smoothing" for WT scanning

Post by normanion » Sat Jun 23, 2018 1:45 pm

This! Exactly what I needed recently. I assumed it will behave like this by default, but then discovered stepping and had to abandon my idea.

normanion
Posts: 16
Joined: Sun Jan 29, 2017 9:31 am

Re: "Smoothing" for WT scanning

Post by normanion » Wed May 08, 2019 8:43 am

Hi Everyone,

I need some input from potential beneficiaries.

I did some calculations and I think that scanning of wavetables is fascinating and very wide area of sound design. For example: I propose to add more functions modes for scanning. Not only discrete, but more than one continuous (morphing) methods.

1) Linear interpolation.

Everyone knows them - they are like mixing two waves, so it can be done either mathematically, with formula WT1 * x + WT2 * (1 - x) or with mixer switching sources.

2) Cubic interpolation with simplest smoothing.

I was thinking, that linear interpolation has some rapid changes in between "stops", when modulation goes thru set wave. So I tried to interpolate with cubic function, assuming that at set values, where two interpolating curves join, the joins should be smooth. Therefor: not only values but also their derivatives should be event at set points. There is more than one choice for derivative. One is the most intuitive, and most efficient in terms of processor power. I kept even angle between linear interpolations. So at point i, the angle for joining two curves is same as angle for joining i-1 and i+1. This will be better explained in attached document.

Equations look like a lot of calculations, but those are simple equation in form y=A*x^3+B*x^2+C*x+D, and for scanning between two waves in table there is only need to hold only set of four constants and calculate value by solving this cubic equation. Worst moment is at set values, when - if modulation is expected, either by mod wheel, envelope or LFO (or totally worst case scenario - by oscillator) - there is need to hold those constants for two curves.

What are disadvantages? When value at given wavetable time changes rapidly between consecutive waves, there is possibility of overshot, leading to some mild overdrive (most extreme case, that I found, is overshot of 12,5% of amplitude). This is either blessing or curse. I like driving signal paths so this might give interesting results still keeping changes in "smooth" territory.

3) If computational power allows, we can put more conditions on derivative. Simplest condition is that line at point i, represented by equation y=ax(i)+b, cannot have "overdriving" values at point i-1 and i+1. We can also use some normalisation or trigonometric functions (arctan?), but I will not venture there if Hrast rejects second option, making any more processing demanding options even less possible.

Please, look at attached documents for visual explanation.

This was calculated, using simple 4x4 matrix, I checked and equations look correct. They work in Excel. ;-)
Attachments
Solaris - proposed Wavetable interpolations - extreme example.png
Solaris - proposed Wavetable interpolations - usual example.png
Solaris - proposed Wavetable interpolations - page 2.jpg
Solaris - proposed Wavetable interpolations - page 1.jpg

John Bowen
Site Admin
Posts: 1807
Joined: Sat Apr 07, 2007 3:00 am

Re: "Smoothing" for WT scanning

Post by John Bowen » Thu May 09, 2019 10:02 am

Normanion,

Thanks for your postings, however there’s not enough computational power in our current board to provide these kinds of interpolation schemes.
As Hrast explained to me, there simply isn't enough power on a single DSP for all this. Wavetable oscillators are the most complex Solaris oscillators anyway, and having two sets of them simply isn't possible.

What IS possible, however, is to implement zero crossings when switching between waveshapes. This will help in eliminating some of the artifacts.

normanion
Posts: 16
Joined: Sun Jan 29, 2017 9:31 am

Re: "Smoothing" for WT scanning

Post by normanion » Sun May 12, 2019 9:28 am

Thank You, John, for taking time to evaluate this idea and answer.

I haven't met any problems with switching waves mid cycle so I don't need zero crossing switching, but maybe others comment on this problem. As for me, I like artefacts in various forms, unless they sound like something's broken.

Different approach: how about adding new mod destination to Rotors? I am thinking about "Fader". At certain values - 0, 42, 82, 127 - there would be sound from respective sources. Between those values sound would be mixed, according to X-Fade setting. This way we could use WT oscillators with envelopes or LFOs like smooth WT scanning, but not increasing DSP power demand (or at least not much). As a bonus we could use different waves from different wavetables. Sacrificing "only" one oscillator for each wave and using maximum four waves. This would probably require option to unbind Rotors from internal driving oscillator, controlled by Coarse and Fine parameters and let to steer with "Fader", envelope or LFO (or - that would be interesting! - by remaining oscillator).

John Bowen
Site Admin
Posts: 1807
Joined: Sat Apr 07, 2007 3:00 am

Re: "Smoothing" for WT scanning

Post by John Bowen » Sun May 12, 2019 10:00 am

normanion wrote:
Sun May 12, 2019 9:28 am
Thank You, John, for taking time to evaluate this idea and answer.

Different approach: how about adding new mod destination to Rotors? I am thinking about "Fader". At certain values - 0, 42, 82, 127 - there would be sound from respective sources. Between those values sound would be mixed, according to X-Fade setting. This way we could use WT oscillators with envelopes or LFOs like smooth WT scanning, but not increasing DSP power demand (or at least not much). As a bonus we could use different waves from different wavetables. Sacrificing "only" one oscillator for each wave and using maximum four waves. This would probably require option to unbind Rotors from internal driving oscillator, controlled by Coarse and Fine parameters and let to steer with "Fader", envelope or LFO (or - that would be interesting! - by remaining oscillator).
Why not just use one of the VS Mixers? They allow for modulation of 4 inputs from the joystick, envelopes, LFOs, etc.

normanion
Posts: 16
Joined: Sun Jan 29, 2017 9:31 am

Re: "Smoothing" for WT scanning

Post by normanion » Tue May 14, 2019 1:39 pm

Holy Cow! This is, how I fall into pit of own habits. I totally forgot about this options and arrogantly assumed I know this synth well. Right, so this one is out of table. Need to think about other sequencer proposition, if I have missed something.

Thank you, John!

Post Reply