Venom Development blog - Latest: New Bounded VCO module (Peter Blasser Bounds/Bounce Oscillation)

Each six sines voice has hundreds of params. I don’t see it being interesting as a module really. And the fm plus over sampling strategy I used which works well in a plugin is not that well suited to rack modules. So don’t plan on it.

But the dsp code is mostly mit licensed if you want to poke around

1 Like

Fair enough. Thanks

OK, I implemented the RM and AM changes so negative depths give different, though generally symmetric differences from positive. The absolute depth value is still used to crossfade between raw and modulated output. But in addition, negative depths cause the modulation signal to be inverted before performing the modulation. The rectified AM does the rectification before inversion, and then does the AM.

I also fixed the stupid sync bug. Damn my mind can sure let me down in infuriating ways. I was staring at the bug, and my mind was reading my intent instead of the actual code. Doh. It was such a simple and obvious fix once I finally saw it. A big groan moment.

Dev 10 binaries have the above changes.

Thanks to all that weighed in, I decided to add the extra mod port after all. I still don’t like it as much visually, but I do think it adds a lot of functionality. I also found I could move the SMOD (envelope Stage mod) port up a few pixels so it is more obviously associated with the envelope stages rather than the frequency ratios, which greatly tempered my dislike of the layout. The RMOD stands for frequency Ratio mod.

Dev 11 binaries have all the dev 10 changes, as well as the new mod port.

Note that Dev 11 renumbers inputs, so dev 11 breaks patches created with earlier dev versions.

@andreya.ek.frisk (and others), let me know what you think of the new RM/AM negative depth behavior. I don’t love it, but I think it is coherent with the FM/PM negative depth behavior.

Also, I could use feedback as far as calibrating the depth for the different modulation modes. In particular, the FM and PM modes. I think I am close, but there may be room for improvement. It is a balancing act, because the behavior changes depending on the frequency ratios used.

3 Likes

Extremely relatable :slight_smile:

So excited for this. FWIW I think the new panel looks great. The “symmetry breaking” is a very effective way to reinforce where the SMOD port belongs conceptually (which would have been the issue here–the panel is definitely not over-dense).

Wonderful stuff!

1 Like

Great to see you @sys.del !

Any chance you will ever submit Algomorph to the VCV library? And maybe some documentation worthy of your fascinating and beautiful module!

I think it pairs wonderfully with XM-OP (or any FM / PM VCOs), and I am afraid it is woefully underutilized because so few are aware it exists. Seeing it in the library would greatly enhance visibility. Coupled with an Omri feature video it would be dynamite!

1 Like

If I had a penny… you know. :slight_smile: We all been there.

Anyway, the new build is very nice. I think the two mod ports will probably be very appreciated.

The Sync button does indeed work now. However, I will attach here a demonstration of why I feel this may not be the best solution anyway: Clicky.vcv (2.1 KB)

Hook up the surge EG to the output and you will hear what I mean: long-release sounds will be prone to discontinuity clicks. In order to avoid those clicks we have to forfeit phase synchronization, which is unfortunate.

If the sync button were simply an input port instead (I know I know, it’s a little cramped…), you could still easily get the current behavior by copying the gate cable to both. And importantly, we could then handle the phase linkup for consistent timbres while silent, avoiding the clicks. In my humble opinion that would be a better way to do it. What do you say?

2 Likes

Am I missing something? I don’t see how adding a Sync port separate from the envelope Gate solves the click problem when you sync two XM-OPs to get consistent results. Usually (nearly always?) you want to sync them with the envelope as well if you want consistent results. As long as you don’t retrigger before the envelope completes, I think the clicks are inaudible. Of course, that might be a big ask. So yeah, clicks can be an issue when striving for consistent modulation results.

But using two ports has the exact same problem if you want consistent modulation results, yes?

With one input only, you can do audio rate hard sync without clicks as long as you don’t need the envelope on the same module. If you want audio hard sync as well as envelopes, then yeah, two ports are needed. But I don’t think the classic hard sync sound is a particularly good fit with my goals for XM-OP. That is kind of the antithesis of exploring frequency integer ratios.

Besides, often times the modulator does not need to use its own internal envelope. So you could hard sync the modulator at audio rates and use the envelope on the carrier only. The carrier envelope can be patched to the modulator Level and/or XMod and/or Feedback CV ports. Or if you want to audio sync the carrier, you could patch in an external envelope.

I feel like the current design is a good balance between flexibility and simplicity. Sure, I would like a CV input for every parameter, and separate hard/soft sync, and additional wave shaping options for the base waveforms, etc. But that is what VCO Unit and VCO Lab are for!

You are making me think hard about my choices, and I really appreciate it! You have already helped guide me toward some important improvements. I hope you are not discouraged when we end up with different priorities or come to different conclusions, because I would dearly miss your feedback should it ever disappear!

1 Like

oh my, I had one of those all morning at work, then it finally snapped into working mode and it took but 5 minutes to find the root cause. wasted most of my morning on staring at non-sensical parsing errors and such and it still didn’t click. These days used to infuriate me, but I have started to just embrace them for what they are, bumps in the road.

No worries at all! I don’t know if you’re missing something, but here’s a couple thoughts:

In many cases, syncing once at the start of a phrase will be enough, you may not need to resync for every note once the phases are set. But you may want to retrig the internal EG.

Hard sync isn’t really what I care about here. It’s more the case of: 1: Long release mono lead 2: internal envelopes used 3: 1:1 ratios between instances

Let’s say I have that, and I want a consistent onset of sound, but don’t want clicks when playing a new note during release. How do I set that up with the current method?

Basically: sounds with a long release and consistent onset timbres aren’t currently possible without clicks. And the fact that an input port could solve that without compromising any current features makes the button seem like a strange choice to me. That’s all. :slight_smile:

1 Like

Ahh, there is the missing piece! Yes, in that special case, I can definitely see the benefit of two ports. As long as the two VCOs use the same code, they should stay in sync when the ratio is 1:1. But even with the same underlying code, it is surprising how quickly two VCOs using even simple ratios like 2:1 can drift apart. Obviously more esoteric ratios can very quickly drift apart.

I’m not sure it is worth changing the design for such a narrow use case. I’m thinking most times the modulator will not be at a 1:1 ratio. But you have convinced me to at least see what it could look like with two ports. Thanks.

yes, 100%. thank you for your kind words!

i saw the bat signal.

2 Likes

OK @andreya.ek.frisk - how does this look to you!?

XM_OP_Ivory3

The small button below the SYNC/RTRG label has three modes for the new input:

  • VCO Sync
  • Envelope retrigger, Gate syncs VCO
  • Envelope retrigger, No VCO sync

I think that addresses many of your concerns without expanding the size, and I think it is still not quite overly cramped. But it is certainly on the cusp!

1 Like

That’s fantastic! I’m all for it. :slight_smile:

1 Like

While I am at it, I will look into adding an additional mode to my new AD/ASR module that will let the TRIG input retrigger an ASR envelope during the sustain stage. I haven’t worked out the details yet, but I should be able to come up with something.

2 Likes

Very nice. Just a couple hours ago I set up a workaround to get the Surge EGxVCA to do this. Maybe one day we’ll add that as a mode to the clock input, but it won’t be soon I don’t think.

I didn’t think that one through. If you are sustaining an ASR envelope, then you are already at maximum, and there is no room to retrig. So I don’t see what I could add.

I’ve made perhaps the last changes to XM-OP and the dev 12 binaries are available on GitHub.

The SYNC/RTRG trigger input changes behavior depending on the small button below the label:

  • blue - VCO sync
  • green - Envelope retrigger during decay and sustain, and also sync the VCO upon retrigger. The GATE leading edge also syncs the VCO.
  • yellow - Envelope retrigger during decay and sustain. No VCO sync available

EDIT I forgot to mention this latest version breaks old dev patches yet again. I think it should be stable from now on

6 Likes

I fixed a bug - I had failed to scale the Detune CV properly. I also changed the scale of the Level knob to percent.

So here are the dev 13 binaries

More importantly, I finally wrote the XM-OP documentation

3 Likes

I really dig this build. The added ports/options are doing good things (and seem to work well) and while there is a lot going on it still feels reasonably easy to work with IMO.

You asked about the mod ranges. I would say that Feedback PM (not xmod PM) feels too extremeand all the AM ones (both sides) feel very tame. Maybe that’s just the nature of the algorithms, and perhaps not a big issue either way. But if the AM ones could lose less level somehow, that would be cool.

Great job on this.

1 Like

Thanks, that was exactly the type of feedback I was looking for.

I already reduced the sensitivity of the PM once. I hesitated to take it further because on the square wave PM, 100% depth is still useful (kind of an odd stepped PWM effect) But it is just rotating past 360 degrees at least once I think. I haven’t done the math. So I think I can reduce the PM sensitivity by another 50% and not lose anything for the square wave.

The AM depth is what it is. At 100% it is all the amplitude modulated signal, with none of the original raw signal. I tried your idea of “squaring” the modulator, and I can see/hear the difference, but it doesn’t really make it more intense.

1 Like