Surge XT 2.1 testing and feedback thread

I remember seeing something about the current SurgeXT not working on Macs… is this still the case?

Works fine on Macs. There was one nightly build that didn’t load on Mac a few days back. That situation was resolved in about an hour.

1 Like

Thanks, Steve.

just so you don’t think you are imagining things, in addition to the above, when we first pushed to the library we ended up tickling a problem in the build toolkit also so there was 36 hours where the library mac version didn’t work. But cschol pgatt vortico and i got it working again.

so now everything works on mac. in fact, my primary dev environment is mac (and in fact my primary dev environment for 2.1 is mac fully ARM!)


Ah yeah, I remember now. I had been looking through threads for the mention so I did indeed think i had imagined it, heh. Thanks, Paul.

Hey folks

As we head into the holiday weekend, we got a few of the new 2.1 modules in pretty good shape in the beta, if you happen to want to play around with some software. A few things

We’re tagging new modules “Alpha” or “Beta” on their faceplate for now.

  • “Alpha” means we have some substantial DSP we may want to work on still or may need to change parameters or so forth. if you use it your patches might break with a future version.
  • “Beta” means we have the DSP wrapped up we think, and the parameters and so forth correct. If you use it your patches may break with a future version, but we would feel really really badly about it and say something.
  • In both cases, we have UI and Panel work to do which may change labels and displays but not DSP or routing. And in both cases we don’t have anything in the manual about them yet.

The four new modules we have are

  1. “Quad AD” - a set of four independent AD or AR envelopes which you can use as you see fit, complete with polyphony, modulation etc… There’s also a little fun secret sauce of inter-triggering you can use for fun if you want, with the lights between the triggers; or you can do subsequent envelope sums with the lights between the outputs
  2. “Quad LFO” - a set of four simple LFOs with a variety of shapes. The real fun here is the LFOS can be independent but we also have a set of modes where you set phase, amplitude, rate offsets and so on. The LFO modes contain all the expected shapes, but also include smooth and S&H random and a random trigger which triggers with density based on deform.
  3. “Tuned Delay +” - this came from a conversation with @DaveVenom in the original massive Surge XT thread. It takes the tuned delay from 2.0 (which is still in the module set) and expands it in a variety of ways, including having modulatable offsets, offsets per channel, an attenuated feedback input so you can make KS models without a separate mixer, an excitation source, and an inline pair of filters on the feedback path. You can do a lot with this - build physical modeling synths, flangers and choruses, and more.
  4. “EGxVCA” - (This one is still alpha since I need to do some performance profiling especially on the pan implementation). Basically this one does what it says on the tin. It has an EG. And a VCA. The EG has an ADSR gated and a DAHD triggered mode and various other fun features.

We are still figuring out a release cycle and have a few other unstated modules in the 2.1 milestone, but these four I think are ready for folks who want to beta test.

To beta test is pretty simple. Just download the nightly here and put it in your plugins dir. If you want to go back to 2.0.3 just delete plugins/Surge XT and redownload from the library. And the changelog is reasonably up to date here


While adjusting the Attack/Decay knob(s) on Quad AD :

[26.826 fatal adapters/standalone.cpp:49 fatalSignalHandler] Fatal signal 8. Stack trace:
39:  0x0
38:  0x0
37: _C_specific_handler 0x7ffdce8d7f60
36: _chkstk 0x7ffdcf1f2300
35: RtlRaiseException 0x7ffdcf1a1070
34: KiUserExceptionDispatcher 0x7ffdcf1f0f20
33: ZNSt17_Function_handlerIFvP10NVGcontextEZN3sst12surgext_rack6quadad2ui13ADARCurveDraw5setupEvEUlT_E_E9_M_invokeERKSt9_Any_dataOS1_ 0x7ffd5962ab10
32: ZN3sst12surgext_rack7widgets26BufferedDrawFunctionWidget11InternalBDW4drawERKN4rack6widget6Widget8DrawArgsE 0x7ffd595580d0
31: ZN4rack6widget6Widget9drawChildEPS1_RKNS1_8DrawArgsEi 0x7ffd77834c50
30: ZN4rack6widget6Widget4drawERKNS1_8DrawArgsE 0x7ffd77834dc0
29: ZN4rack6widget17FramebufferWidget15drawFramebufferEv 0x7ffd77832410
28: ZN4rack6widget17FramebufferWidget6renderENS_4math3VecES3_NS2_4RectE 0x7ffd778329f0
27: ZN4rack6widget17FramebufferWidget4drawERKNS0_6Widget8DrawArgsE 0x7ffd77833210
26: ZN4rack6widget6Widget9drawChildEPS1_RKNS1_8DrawArgsEi 0x7ffd77834c50
25: ZN4rack6widget6Widget9drawLayerERKNS1_8DrawArgsEi 0x7ffd77834e90
24: ZN4rack6widget6Widget9drawChildEPS1_RKNS1_8DrawArgsEi 0x7ffd77834c50
23: ZN4rack6widget6Widget9drawLayerERKNS1_8DrawArgsEi 0x7ffd77834e90
22: ZN4rack6widget6Widget9drawChildEPS1_RKNS1_8DrawArgsEi 0x7ffd77834c50
21: ZN4rack6widget6Widget9drawLayerERKNS1_8DrawArgsEi 0x7ffd77834e90
20: ZN4rack6widget6Widget9drawChildEPS1_RKNS1_8DrawArgsEi 0x7ffd77834c50
19: ZN4rack6widget6Widget9drawLayerERKNS1_8DrawArgsEi 0x7ffd77834e90
18: ZN4rack3app10RackWidget4drawERKNS_6widget6Widget8DrawArgsE 0x7ffd77809bd0
17: ZN4rack6widget6Widget9drawChildEPS1_RKNS1_8DrawArgsEi 0x7ffd77834c50
16: ZN4rack6widget6Widget4drawERKNS1_8DrawArgsE 0x7ffd77834dc0
15: ZN4rack6widget10ZoomWidget4drawERKNS0_6Widget8DrawArgsE 0x7ffd778350b0
14: ZN4rack6widget6Widget9drawChildEPS1_RKNS1_8DrawArgsEi 0x7ffd77834c50
13: ZN4rack6widget6Widget4drawERKNS1_8DrawArgsE 0x7ffd77834dc0
12: ZN4rack6widget6Widget9drawChildEPS1_RKNS1_8DrawArgsEi 0x7ffd77834c50
11: ZN4rack6widget6Widget4drawERKNS1_8DrawArgsE 0x7ffd77834dc0
10: ZN4rack2ui12ScrollWidget4drawERKNS_6widget6Widget8DrawArgsE 0x7ffd7782cec0
9: ZN4rack6widget6Widget9drawChildEPS1_RKNS1_8DrawArgsEi 0x7ffd77834c50
8: ZN4rack6widget6Widget4drawERKNS1_8DrawArgsE 0x7ffd77834dc0
7: ZN4rack6window6Window4stepEv 0x7ffd77836c90
6: ZN4rack6window6Window3runEv 0x7ffd77837690
5: ZN4rack6window6Window3runEv 0x7ffd77837690
4: ZN4rack6window6Window3runEv 0x7ffd77837690
3: ZN4rack6window6Window3runEv 0x7ffd77837690
2: ZN4rack6window6Window3runEv 0x7ffd77837690
1: BaseThreadInitThunk 0x7ffdce457600
0: RtlUserThreadStart 0x7ffdcf1a2680

Windows10 Rack free 2.2.1

Set decay on full, set attack on 0, and then (try to) set decay to 0.

In short: both attack and decay can’t be zero (or close to zero) at the same time because it closes Rack.

Oh ha yeah I see why. It doesn’t crash on mac but it will on systems where x % 0 raises an exception.

I have a fix I’ll push now. If you re-grab a nightly in 30 minutes or so it should be resolved.

Thanks! Good bug reports make good software.


Works :+1:t2:

1 Like

On the Beta Quad LFO, in the Rate Ratio mode, modulating the ratios doesn’t affect the LFOs.

I’m on an M1 Mac.

Awesome work, loving these modules!

They look great Paul, thanks! I’m not a fan of the “micro buttons” but apart from that, very neat stuff.

1 Like

Oh yeah I didn’t decide what to do there yet, indeed.

So that’s partly on purpose but I could fix it if I knew what folks expected. I wasn’t sure if users would expect the modulation to snap to rates or phase the things. So like if you have a 2x and modulate by 2% do you expect drift or do you expect nothing?

Ok I get the problem… for what it’s worth, I expected the modulation to snap to values the way that knob does.

My expectation is: If a parameter has “snap to” or quantized state behavior, then CV control of the parameter should also have that behavior. There is a fine line differentiating using a CV input as modulation or as an automation control. This complicates CV input logic, but not terribly so.

Since my Meander module has over 80 panel parameters and most parameters have a CV input jack, I have had to deal with this issue extensively. I try to “normalize” CV control range to the knob control range with a 0-10.0V range divided by the number of discrete states for that parameter. Thus, it takes approximatly the full 0-10.0V range to adjust a parameter knob full range. In Meander’s case, the CV inputs cause the knob position to change accordingly, which not everyone likes.

Of course, Meander is a musical expert system sequencer and does no audio generation or modification, so modulation is not so important, although some parameters can be continuously modulated.

1 Like

Right so we don’t do that with temposync items on purpose (either in surge vst or rack). If you temposync to a quarter note you can modulate to a smidge more or less as opposed to just jumping to a dotted 8th.

I think the ratio mode is different though and so agree modulation should snap on that control. Lemme add that to the issue.

It seems that with the current nightly the presets for the reverb (and others) are gone. VCV crashes when the arrow buttons to select a preset are used. Clicking on the preset label shows nothing (aka no presets).

Seen on windows 10 w/

I see the same. Unpleasant surprise.

Hopefully @baconpaul can fix it in 2023. :stuck_out_tongue_winking_eye:

Oh no! I did change that so I will look tomorrow. Sorry bout that! Presets hosed in nightly? · Issue #772 · surge-synthesizer/surge-rack · GitHub Tracking there

Hey, that what the nightly builds are for.

Thanks for the quick response!

And – of course – have a good start into the new year!

1 Like

The SIMD trig approximations in the SDK are pretty decent. A heck of a lot better than what many ppl do (std::cos every sample).