I eventually got my midi recording issue sorted out (user error) and gave this some tests too. To me, it looks like the gate output is “slightly” triggered when the cv input reaches an actual note value sometimes, even when off the key set on the panel. I inserted sample and hold on each output path and got marginally better results. I only got all correct notes out of it when I triggered gates from elsewhere (I used 1/4 clock from the DAW), however, even then I was getting those tiny pulses at the end of quarter notes when the clock’s gates were shorter than full quarter notes. Could be small problems with both Harmonaig’s gate output and VCV’s CV to Midi.
I didn’t read eveything you guys wrote, and I never used Harmonaig
But it gets me sometimes still - remember the 1 sample wire delay.
In this patch from OP, the V/Octs are delayed 2 samples - the gate only 1.
Whatever is on the CV>MIDI V/Oct port, is sent in a MIDI NOTE ON message on the rising edge of the gate. the same note value is sent in a MIDI NOTE OFF message on the falling edge of the gate. (if i understand the source correctly).
“Each cable in Rack induces a 1-sample delay of its carried signal from the output port to the input port. This means that it is not guaranteed that two signals generated simultaneously will arrive at their destinations at the same time if the number of cables in each signal’s chain is different”
VCV Manual - Voltage Standards
I believe the v/oct outputs are continuous, changing voltage when a new notes as calculated from the incoming CV. Being 1 sample ahead, gates should still be the same length if working as intended, I would think. Instead I am getting all sorts of “ghost” triggers of much shorter duration.
Harmonaig sends a new gate when the note changes
note and gate not in sync
gate is delayed 1 sample to be in sync with the note
Very nice. Thanks Much!
Yes, but then two merges (one for V/Oct and one for gate) should also work and it does not. So it is not simply a one-sample-delay. It is however funny that a multiples work, but a merge not.
Hi Jens - thanks this is super helpful! As above, I’m not having any issues with the harmonaig when in performance mode - that started working fine as soon as @mosphaere suggested adding a merge for the gate signal. From your post I gather that that delayed the gate signal by a sample and that solved the issue.
My issue is when a CV external to harmonaig is used (here I’m using marbles), the issue pops up again. There are no longer ‘double notes’, but there are definitely notes that shouldn’t be in the c major scale.
The approach that @mosphaere used, delaying the gate by 0.1s, worked great tho. So I’m confused as to why - but glad this is now working (?). Added bonus is that the gate is lengthened which is nice as well. I’d love to know your thoughts on why this works so I can understand what’s going on here.
I hooked up a Submarine scope - see picture.
It seems like Harmonaig sends 3ms gates. Perhaps that is too short for a cv>midi gate ? I haven’t found the reference for the shortest allowable midi note/gate. Sounds reasonable that lengthening the 3 ms gate to at least a 1/32th note (62ms at 120 BPM) would make more sense with a CV->midi module.
You can see the relative timing between the V/oct and Gate, by pan/zoom and positioning the mouse cursor over the signal on the two HS-101 storage scopes in this patch (press start on the Counter to sample 1s starting from the next gate)
Regarding notes outside the scales and modes, I don’t know enough music theory(*). But if you think that is the case, contact email@example.com_harmonaig.vcvs (9.7 KB)
* I’m learning - slowly…
Something strange with the Harmonaig Quantizer - it’s not “in tune” with other VCV modules:
I have sent them an email.
I am still investigating this whole scenario, but harmonaig is not in tune with other quantizers by the analog modeling nature of the instruo-modules, where each module gets an offset for different parameters when added to a patch. I think one of the parameters on harmonaig is the input attenuverter. It goes to 1.1 and with a little bit of fiddling you can get it in line with other quantizers. I don’t think that is a bug, more of a very annoying feature…
I set the input attenuverter to 1.0 - It sure would be nice to have an explanation of the workings of the quantiser. I will post their reply when i get it.
just add 0.00001 V
… I think it’s a bug.
Just a heads up: I was just using Scaler 2 in Ableton Live 11.0.12 and I had the same issue with randomly recording very short notes outside the selected chords. Maybe the original problem in this thread is a Bug with ableton.
Unlike other modules from Instruō, harmonàig has no analog-variance information stored in its preset (hover over the module, press Control-C, open a text editor, press Control-V). It’s possible that it is still doing some kind of analog variance simulation internally, but this seems to suggest to me that all harmonàig Rack module instances are intended to behave the same.
Yes, indeed. I did a test-patch with a few instances of harmonaig and they behave the same. I forgot to report this because I was looking at alternatives (not only modules, but midi-FX for ableton or HOST) and found Scaler 2 - and I bought it immediately after watching a few videos and been playing around with it since then…
I got the off key ghost notes in Studio One as well. I have not tried it with another quantizer though.
It’s come up before that some quantizers intentionally put out some wrong notes in small amounts…. ?
Yep. Essentially what this whole thread is about.
A follow up, the email corresponcence with Jason Lim (copied with permission)
The quantiser in harmonaig is not set to the same CV's as VCV quant.
Here’s a video
Is this per design ?
I’m not really a user of your modules yet - I was just trying to help in this thread:
Jens Peter Nielsen.
Figured it out.
Perhaps you could change your code, to mimic
## VCV Rack harmonàig quantiser quirks
Jason Lim firstname.lastname@example.org January 2022 at 19:01
Thanks for your enquiry.
I have taken a look through that VCV thread and your description.
I believe the “ghost” note artefacts that are printing to the midi track are not unique to the Harmonàig.
I don’t know whether this is specific to just VCV-VST within Ableton or if it’s a more universal occurrence when generating midi in this way.
My theory is a timing inaccuracy between the DAW operating sample rate/buffer size and the VCV sampling rate of virtual voltage signals (by the virtual CV to midi interface).
Ultimately I am unsure at which stage compensation would need to be patched in software to eliminate the artefacts.
From a hardware developers perspective I imagine it as being akin to the sampling of analogue voltage at an ADC; which is then quantised and mapped to a 7-bit midi note range.
If there is any amount of slew on the voltage one would expect there to be some quantisation error.
The timing of the new “voltage" quantised by the harmonàig, followed by it’s parallel generation of the 4 chord tone 1V/octave signals, followed by the sampling of these variable “voltages” for interpretation/quantisation to mini note values, is quite a number of processes!
Even in hardware, timing issues can arise in similar instances.
For example: an analogue sample&hold sampling a sequence from a digital sequencer, if both sequencer and S&H are clocked by the same signal.
The timing relies on the update rate of the sequencers DAC being quick enough in response to the clock signal which is simultaneously clocking an analogue S&H. The analogue aspect being essentially instantaneous while the DAC update rate will be dependent on processor speed.
Most likely the S&H in this instance will capture the previous step’s voltage amplitude and not the new step value.
This is not dissimilar to the example of a CV to midi modules sampling a variable voltage. The ADC is essentially a sample and hold defined by the processor’s clock rate and rate of the DAC sweep that measures the sample amplitude.
With regards to the Harmonàig’s input attenuverter range, the implementation is very much intentional.
I designed the Harmonàig with an input attenuverter which I purposefully allow to stretch a little past unity gain on its positive and negative extremes.
This is to allow for user compensation of any voltage drop or impedance mismatching between an incoming 1V/octave signal and the quantiser’s input.
The vague standards of eurorack are 100KΩ impedance on input jacks and a protective 1KΩ impedance on output jacks. This standard varies quite drastically across the wide range of available modules that can be combined in a eurorack system. Add to that the various stand alone CV sources such as USB powered midi keyboards sporting hardware CV outputs, and the consistency of voltage levels/signal impedances between devices is extremely variable!
I tend to advise that gain staging is almost as important in the CV domain as in the audio domain. Quantising already quantised voltages is perhaps the prime instance where it must be done well to achieve optimum results.
One of the key reasons I pursued the Instruō VCV plugin collection’s development is for use in educational settings.
I personally teach a sound design course here in Glasgow.
Allowing immediate access of the range of Instruō modules to my students for free is a hugely powerful resource. It has greatly extended accessibility
I wanted to ensure an accurate representation of the modules in practice. This meant considering the many variables that need clarified when teaching modular functions/signal flow/sound design on analogue synths.
When teaching to patch on the virtual modules I wanted to ensure that the same practices and considerations would directly transfer over to an equivalent hardware system.
In the Harmonàig’s case, if the input attenuverter on the virtual model was always perfectly unity gain at the pot extremes it would be a mismatching experience to patching with it physically.
The real module has no floating point variable you can type in for the attenuverter… You simply tune it so that the octaves align.
Arguably the past-unity-gain-stretch on the attenuverter is a redundant consideration in a virtual environment as there is no voltage drop or impedance imbalance when multing a signal. But I think it would be teaching bad habits not to consider the eccentricities of an analogue instrument when the primary product behaves in that way.
It’s a bit like that daft group of school administrators in California proposing that for simplicity pi (π) should be rounded down to three…
This reason is also why I don’t use any of the polyphonic patching capabilities of VCV rack in any of the Instruō plugins.
I hope this makes sense and helps clarify the context.
Let me know if you have any other questions
Happy new year and all the best for 2022.