So you can actually do that with the mixer and the mod matrix today if you just use a single input. Plumb your stereo to IN1, plumb the output. Then turn the gain on In1 to -Inf then use the CV to modulate it up to 0db from input 1, and add modulators on input 2 and 3 for velocity and tremolo
Basically you can think of the mixer as a 3-source modulatable VCA with noise and ring modulators also.
(I actually just fixed a bug in the mixer around mis-scaling the decibels so you will get a better result doing that in the nightly in about an hour; it will work now but the scale for the modulations is wrongly linear on one spot, and the display of the decibels isnāt right but thereās a PR in to fix that).
Nothing like a dozen plugins releasing simultaneously along with my own to raise my anxiety level. We all take our turns in the pit occasionally, whether we deserve that or not
So I am trying some wavetables from https://waveeditonline.com/ and they say āOneShotā and they donāt work right. Is there something I have to do to make these work?
Surges wavetable uses tags in the wav file to determine frames and absent tagging assumes it is a one shot which plays through on trigger. We read tags like wav loop markers but also read a bunch of tags from synths like serum hive and more.
Waveedit makes un tagged waves. I actually looked at fixing this but it uses libsndfile which doesnāt let you add riff blocks
But what it means is if you want to use those as wave tables today you need to tag them, we have tools that let you do this
We keep talking about making this easier but havenāt written that code yet.
Actually Iāve been meaning to implement the āreinterpret one shot as N-sample wavetableā function for a while and this might be a good testbed for that. So stay tunedā¦ Iām actually pretty close in my branch now.
Anyway if you could I was going to show you a screenshot of loading a wave online wavetable, getting a one shot, then hitting a menu to convert it to a 256 element wavetable and having it work.
wonāt make it in today but should have reasonable better options by the end o the week (including Iām thinking a default way to interpret an untagged file which will be one shot, 256-wide (wave edit) or 2048 wide (serum) style.
OK so hereās what I did for now (and what I might roll to library for first version with - but stay tuned).
In the next nightly, in about an hour, you will see three menu items in the wavetable menu. Load Wavetable File does the standard surge wavetable load, assuming untagged files are one shots. āLoad WaveEdit Wavetableā loads a wav file assuming the frame size is 256. And then thereās a submenu for untagged files which lets you pick any power of 2 frame size from 64 to 4096. Fine.
With this I can load wave edit wave tables directly into the oscillators and they work fine
The problem with this is that if you add a bunch of wavetables to your user area from wave edit they will all show up as one shots when you browse the list with jog or menu, since the default behavior is the same as load wave edit wavetable.
Iām considering adding an option which is something like āassume untagged user tables have size Xā and storing it, but that has some complexity across the code base. Iām not sure I want to add it this late in the cycle, but am still considering it. I may ship then do it as a 1.1 release with a few of the other bigger requests Iāve pushed off. Itās not super easy since there are some wav files in the library but I think they are all tagged, but also that loading happens way deeper inside surge so itās a bit fiddly for a variety of reasons
But as of the next nightly you can at least directly load a wave edit wavetable into the wavetable and window oscillators using the menu, and it will save in your patch etcā¦ properly.
While Paulās suggestion of using the mixer certainly does work for a stereo VCA which can do velocity and tremolo etc - itās not ideal as an end of line module due to the 3 separate inputs, noise and ring mod.
We had a chat about it and came up with the idea of an EG x VCA module that can be either an ADSR envelope (using a gate input) or a DAHD (using a trigger) - this would work much better as a module to place after the Filter for example.
As in the VST, each envelope type has both an Analog and a Digital version. The segment curves are fixed in the Analog version but in the Digital version you can select between 3 different curves for each segment (where appropriate).
And of course with the mod matrix allowing up to 4 separate CVs targeting the Level, it would handle all your velocity and tremolo needs.
This wonāt appear in the initial Surge XT release as the modules are locked down for that, but should appear fairly soon afterwards. You can follow progress on this module on Github.
Just a note on workflow for folks new to the surge space. We are really open with our issues milestone and team. Basically everything we are working on is usually in a GitHub issue somewhere. But we are also purposefully chill about deadlines.
Right now we are in a bit of a sprint since I want to get this thing into the library queue before thanksgiving, and the response here makes it clear itās worth still working on these modules which is awesome.
But this all works when people give us great feedback and great bug reports - like you all have here and elsewhere - and also kinda donāt ask the question āwhen will it be doneā. It will be done when someone does it. If you want to do it, welcome to the surge team!
But wow what an overwhelmingly positive response weāve had, thanks all!
Something Iām curious about, and thought Iād raise as a minor possible issue, is this label on the 2X button on the String VCO (Version:2.0.beta.0-nightly-c13ac1d).
I presume itās just missing a label, but the #42 is also intriguing!
(see area in red circle, mouse cursor is invisible unfortunately)