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.
Anything >1v is on state for a gate. Voltage standards part in the manual that explains:
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.
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?
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.
This image shows the results for a small (1.1V) gate voltage and a short release.
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.
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.
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.