PS-PurrSoftware Plugin Modules

Problem fixed and committed. Also routed volume controls to volume outputs and sent those to my mixer so mix can be controlled from Meander, if desired.

Does anyone have an opinion on this Meander gate output design issue?

Most gate outputs vary from 0-10V for off and on states. It appears that a minimum voltage level of 1V is needed to trigger VCV ADSR etc. There is some musical flexibility to be had by having the gate also represent the volume of the output also. I had it originally in Meander that the gate was actually just volume and there was a separate trigger output. The most recent changes implemented true gate output via PulseGenerator with gate length dependent on note length (whole, quarter, eighth, etc. with tempo comprehended) and the volume from the volume param control knobs only being sent to the volume output ports. This morning I have been experimenting with also including the volume in the gate level with an ā€œonā€ range of 1.1-10V and ā€œoffā€ at 0V, so it will always trigger anything it is connected to, even if the volume knob is set to 0. This gate voltage level can then act also as a CV for ADSR, mixers or anything else you can dream up. This works very well in my limited tests, but I wanted to ask if anyone knows any reason to not allow the gate output ā€œonā€ level to vary from 1.1V to 10V.

Thanks.

1 Like

Anything >1v is on state for a gate. Voltage standards part in the manual that explains:

https://vcvrack.com/manual/VoltageStandards

The voltage standard says " Gates should produce 10V when active.". My question is whether there would be any problem setting the high gate voltage anywhere between 1.1 and 10V. Basically, are there modules that expect gate high to be 10V.

Any example of how I am using this is for doing bass note accents encoded in the gate output voltage level.

If needed, I could make this where it can be toggled on and off by the user. If off, Meander would use 10V gate high voltage.

Triggers expect the signal to be at least >=1v. if a trigger produces max voltage of <1v it wonā€™t trigger. ADSR triggers at 1v or greater. A normal gate on/off should be [0, 10] 0v being -inf in dB. If a gate signal is [1.1, 10] and connected to a volume source it wonā€™t set the volume to -inf so the source is not in the off state effectively.

If on the other hand a knob is setting the max output [0, [1.1,10]].

Just to clarify, I am using 0V for the gate off state, and 1.1V-10.0V for the gate on state. I think I should be okay then. Iā€™m surprised that more developers do not use this methodology for sequencer note accents since it saves a separate accent output.

1 Like

Unless Iā€™m misunderstanding how this is used, doesnā€™t using the gateā€™s voltage as the volume prevent the release part of the envelope from working?

If you have this setup without any volume control:

+------------------+      +------------+      +-----+
|            pitch | ---> | Oscillator | ===> | VCA | ===> Audio
| Sequencer        |      +------------+      |     |
|             gate | ---> | ADSR       | ---> |     |
+------------------+      +------------+      +-----+

then the gate fires the ADSR, and the ADSR determines the volume.

With a separate volume output on the sequencer, you do something like this:

+------------------+      +------------+      +-----+      +-----+
|            pitch | ---> | Oscillator | ===> | VCA | ===> | VCA | ===> Audio
|                  |      +------------+      |     |      |     |
| Sequencer   gate | ---> | ADSR       | ---> |     |      |     |
|                  |      +------------+      +-----+      |     |
|           volume | ------------------------------------> |     |
+------------------+                                       +-----+

and as long as the volume output keeps its value after the gate closes, the volume output and the ADSR co-exist nicely.

How do you use the gate level as the volume but still allow the ADSRā€™s Release step to have any effect?

1 Like

Fundamental mixer

float cv = clamp(inputs[MIX_CV_INPUT].getPolyVoltage(c) / 10.f, 0.f, 1.f);

The ADSR is triggered by the gate being > 1V and releases when the gate drops back below 1V. Here is an image of the gate, post ADSR CVā€™s and post VCO/VCA audio. This is staccato mode where the sequencer note has a length of 50% of the interval between note beginnings. Due to release setting of the ADSR, the generated note audio extends further an actually overlaps the beginning of the next note. If the release is set to a smaller value, the envelope does not run into the next note.

image

This image shows the results for a small (1.1V) gate voltage and a short release.

image

Funny me. I just realized based on your post that gate CV ports could be polyphonic. All of mine are set to default mono. Iā€™ll have to give some thought to whether I need polyphonic non-pitch CV output. For chords with 3-4 notes, I set the pitch CV output port to 3-4 channel polyphonic but I just output one channel of gate CV for the set.

This is probably what you were pointing out. If I use the gate voltage to directly modulate the VCA, the note length is not longer than the gate, since the ADSR is not in the loop. Of course, as @Coirt pointed out, I think, we could sum or multiply the gate voltage and the ADSR out voltage for some hybrid mixing with the same clamp range, except we may want to let this mixed value drop to 0, as he points out.

image

Yes, exactly.

Multiplying will still cause the volume to drop suddenly to zero, ignoring the ADSRā€™s Release step. Summing will do better, but it will still give you a discontinuity when the gate drops to zero.

Iā€™m not trying to pooh-pooh your idea, but I canā€™t see how can be used in practice, at least not with an ADSR.

I agree. I managed to get myself confused in my tangled test patch. For bass accent, I am using the bass gate to modulate my mixer on that channel. But, that has the same problem as with the ADSR to some degree. It truncates the audio outside of the gate width, but it does work for accenting the beat. Whereas for my purposes with Meander, volume via gate voltage gives an extra degree of freedom for doing all sorts of things, I can now see why it wouldnā€™t be good to use it as a sequencer accent method. Thanks for thinking me through this:)

Turns out I was not going crazy, but rather just lost my recipe for a bit. The key thing is to set the ADSR sustain knob down to 0 and feed the gate/volume into the sustain CV input. Doing this lets the gate voltage level drive the ADSR sustain level. The ADSR release still works as normal, so you end up with full volume control through the ADSR and VCA.

still non-standard. Iā€™d stick to the standard myself.

1 Like

Ah, cunning! But doesnā€™t that still leave the volume of the Attack phase the same for all notes, regardless of their assigned volume?

I havenā€™t looked at the VCV ADSR source code, but I suspect the SUS CV controls the sustained amplitude level but the ATT, DEC and REL CV inputs (and knobs) set time constants. If correct, the ATT CV or knob setting just determines how long it takes to rise from 0 to the sustain level. At least it all seems to work properly when viewed on Scope.

Iā€™m going to go back to standard gate for now, out of concern (mine and others) that sending CV over gate is a non-standard method and could cause compatibility issues. I may consider adding a button to turn this on with a warning, so that others could play with it if desired.

For now, I can do volume control by setting the SUS knob down to 0 and feeding my true ā€œVolumeā€ outs to the SUS CV in on the ADSR. I am going to experiment with doing bass accents in the same way, or the modulated bass volume could be sent to a second VCA as I was doing in the past.

Thanks everyone for your input on this question.