Surge XT

Ken, maybe this thread about the DX7 and FM algorithms is interesting for you:

This is wonderful feedback.Let me take some of it and provide some answers. I’ll also turn a couple of them into Github issues but may tag them as post-1.0 issues. (Issues 568, 569, 570 are the unison ui element, attenuator, and dc blocker, respectively).

In unison modes they can deliver a quite high output level. I wonder if an output level knob would be appropriate, where there’s space. Otherwise we really need attenuators right after the VCO.

This is a good idea. We could easily add an attenuation to the menu like we do for drift.

I’m not a fan of the dragable labels for Oct and Uni. I think at least a click on them should pop a menu like the wave selection labels.

This is a good idea. They are parameter widgets though so you can just RMB and type in 3.

I would really like a DC filter on the outputs, as many of the VCO’s have quite a DC-offset in some modes. Could be optionally engaged from a context menu, if it uses CPU.

Let me think about this. We have a robust DC Blocker we use for our wave shapers which I could perhaps lift. Inside surge proper there’s DC compensation elsewhere in the signal chain though. So need to look.

Modern VCO starts to use more and more CPU when you crank up the unison. Classic VCO does not. Bug?

Not really. modern requires doubles internally and is a more computationally intensive algorithm so we have less opportunity for parallelism with SSE.

LO/HI cut doesn’t do anything.

I think several of your comments (including this one and the twist LPG not working) are because we haven’t written a manual yet, you don’t use surge proper, and you aren’t used to items being deactivated. This is not your fault obviously :slight_smile: Many controls in surge are ‘optional’ and are off by default for a variety of reasons, including the lo and hi pass filters in most things.

The visual idiom we use for that is these power buttons by the knobs. Here they are off

where you can see there is no high cut happening obviously. Click that little circle and it powers up

Some of the waves are great, some don’t have much musical relevance or just seem off, with hardly any variance in them. Scratching my head sometimes.

yeah its a bit of an unedited collection in surge.

The attack gets quite clicky though, wish there was a way to soften it a bit.

In surge proper we generally use a post-oscillator VCA for that

The constant* exiters seem difficult to make use of musically.

They only really are useful if you heavily modulate the exciter level. Set it to constant noise, set the exciter level to 0, and modulate it with a tight pulse for instance and you get repeated notes.

Has a lot of aliasing, maybe that’s the idea. Not for me :slight_smile:

It is, and it isn’t for everyone indeed.

Twist: Can’t stop it droning and use the trig input. Feels like a bug.

Turn on the LPG using the button as above.

6 Likes

ConstantNoise.vcv (2.6 KB)

Here’s a super simple example of using the constant noise modulator to shape a sound with string using the surge LFO

2 Likes

It’s easy to use your own Wavetables btw - I have a fairly large collection (a few GB) and I just linked the folder containing them all so they are instantly accessible - and Surge is clever about interpreting how many samples each wave contains so they all seem to load correctly, regardless of format - it’s extremely user friendly.

4 Likes

Thanks Paul

Ah! They’re “Engage buttons”, I totally took them for LED’s. I’ll bet 80% of users will as well, without reading the manual. I’m wondering, on Sine VCO are they even necessary in this implementation? You can just turn on/off when using the knobs. Likewise on the Twist VCO, I’m wondering if it’s necessary or you can just detect a plugged in cable to the Trig input, like the Plaits implementation.

That sounds great Steve! Didn’t get to try that part but certainly will, thanks.

Thanks, yup, got the idea now.

We thought about this, but then there is no way to modulate from zero since “zero is off” without a relatively complicated computation at filter time of “is modulation active targeting this knob” and that vexed us some.

The turn on the LPG when you plug in a trigger in twist is a good idea though. I will add that issue also!

1 Like

If they’re “just” filter knobs can’t they just be used (and modulated) like any other filter knob - you turn it up, you turn it down? Guess I’m not seing the need to turn them on with a button as well, but I belive you :slight_smile:

yes they can. I use that all the time!

but there’s a difference between running a LPF at 20hz on a signal and running no filter at all. That’s basically what the button does.

In sine it is a bit marginal but in some of the other contexts it makes a bigger difference - like turning the drive on or off in the rotary speaker circuit. So it is definitely an idiom we need and “minimum value and unmodulated is off” is an idea we thought about but ended up not loving.

Of course, we might be wrong!

1 Like

oh i remember - we also really disliked having to destroy a value and a modulation to hear an optional part of a circuit bypassed and the ‘zero is off’ has that issue.

I see, it’s because it’s tied to the modulation system.

well no. if you have the hi cut set at 10k and you want to hear what it sounds like off, what’s the gesture to turn it off. “Turn it to 20k” doesn’t let you preview.

So its both hard to detect ‘unmodulated extrema’ and also loses that preview was our conclusion.

Yes, but also the knob value. With the on/off button you can flip between say ‘filter at 130Hz’ and ‘no filter’, without having to sweep the knob down from 130Hz to 0.

Lol - Paul types much faster than me!

1 Like

And just so you don’t think I ignore you :slight_smile:

I’ll get this in tonight sometime.

6 Likes

Thanks! This is probably what I was thinking about rather than Dexed, but who knows. At my age it seems that just because I knew something earlier this year does not mean I know it now. I attribute this to the fact that I have learned so much that my brain has overflowed. That sounds better than the more realistic alternative :wink: But, it all does still trigger deja vu.

4 Likes

Oh no, I wouldn’t think that at all. On the contrary you seem very receptive and I think it’s really great that you give people a month to test the beta, it’s a huge plugin.

:+1: Much appreciated

2 Likes

It really is - and amazing to think the project went from start to finish in 9 weeks. Pyer and i started designing at the beginning of September and Paul started coding shortly after that. 36 modules in 9 weeks - that’s 4 a week. I know most of the DSP code is pulled from Surge but there’s still a hell of a lot of Rack specific coding that was done. Paul works super fast - it’s quite hard to keep up with him! :slight_smile:

7 Likes

Yeah, that is mind-boggling! Just a single well done module is a big effort. I can’t really imagine how you all did 32 modules in 9 weeks.

1 Like

well we had all of surge. but it’s really only 5 modules; The VCO, the FX, the LFO and a couple of quick stragglers. The modulation system is the exact same class with modified template args in each module. etc… The VCOs are all the same widget and processor class just with a template arg modified for instance.

Happy to walk folks through that also in the thread I started in the dev channel, but you know, blah blah, C++17, template specialization, constexpr, etc…

4 Likes

ssssshhh - let them think you’re a magician! :wink:

3 Likes

It really is, boggles my mind. Hats off to you guys, what an amazing collaboration.

Love how you use the words “only” and “just” here :slight_smile: Great stuff Paul!

He is!

2 Likes