A Proposed Diatonic "Degree" 1V/Deg Standard

I would like to propose a standard for CV in and out of diatonic harmonic (chord) and scale degrees. As a reminder, diatonic harmonic degrees are represented by Roman numerals I-VII and diatonic scale degrees by Arabic numbers 1-7 typically as 3rd, 5th, 7th for example.

I would like to propose the standard of 1.0v for I, 2.0v for II up to 7.0v for VII with the same scheme for scale degree intervals such as 3.0v for 3rds up to 7.0v for 7ths, for example.

Which modules support harmonic degree CVs? I’m only aware of my Meander module and Aaron Static’s DiatonicCV module. Does anyone know of any others?

Unfortunately, Meander uses 1.0-7.0v for harmonic degrees and DiatonicCV uses 0.0-6.0v for the same.

Meander has always accepted diatonic harmonic degree CV input allowing an external module to sequence Meander harmonic progressions in a way that works the same for every mode and root scale. Meander V2.0.24 which I am testing now adds harmonic degree CV out that can feed other modules that understand harmonic degrees, such as Meander and DiatonicCV. Unfortunately, I had to add an options menu section to select either 1-7v or 0-6v format in order for Meander to be able to harmonically sequence both Meander and DiatonicCV. That is done and works fine, but it would be simpler for the future if everyone would use the 1-7v standards so that the degree number matches the voltage.

This may sound like a minor new capability for Meander, but it enables Meander to use any of its 80 harmonic progression presets or custom progressions to sequence DiatonicCV. DiatonicCV is a wonderful module that supports several different chord types, inversions and voicings.Sadly, Aaron Static has not been active here in almost a year, so I don’t know what they have planned for the future. Once I have submitted the new version of Meander to the library, I will post an example of Meander sending to DiatonicCV and with several Aaron Static modules being CV sequenced for parametric control. I think the results sound amazing.

4 Likes

Agree 100% that there should be a compatibility across modules of different developers to support these modules working together seemlessly.

If I may ask, what is the benefit of these numbers being rounded single digit voltages?

Most modulation sources produce either -5V to 5V, 0 to 5 or 0-10V output. That’s why we ended up supporting the two unipolar options for ChordVault. Because we felt it should be „plug and play“ for standard mod sources like LFOs and S&H. When voltage is outside of range the step knob just wraps around a second time.

Wouldn‘t 0-7V force everyone to quantize and scale their modulation CV or just use sequencers with manual voltage input to address these scale degrees intentionally? What happens if you go above 7V?

Shouldn’t the module itself take care of scaling incoming voltage to whatever the X amount of steps/degrees are?

Can’t you requantize your 0-7V to 0-6V as well to make meander and ScaleCV work together? If you upload a patch and further describe the use case I am sure someone will have a go at it (might take a lot of modules or just one formula).

Maybe I am missing something so feel free to correct me or expand on your point.

Adding options for different voltage ranges, like both of us did, seems to be the way to go until there’s progress on a common way to do it. It’s not too much work and the right click menu is a good spot for it.

P.S. instruo harmonaig comes to mind when thinking about modules that use scale degrees.

3 Likes

What about using MIDI CCs? You could define Meander as a module with a MIDI input or output and react to the CC changes on some defined CC number like 20 and that would be easier to map to controllers and for automation in sequencers. Then just pass 1 to 7 as say CC 20 meaning harmonic degree value and 1 to 7 as CC 21 for the harmonic scale value.

1 Like

Thank you for your thoughtful and detailed response. I’m still trying to figure out how best to respond as there is a lot here. For this response, I am going to back up a step and focus on what I am attempting to do and have done and just a bit about how I have done it and am doing it in my next release.

Meander is a sequencer. It does not deal with audio. As such, it sequences notes in a v/oct format and sequences gates. Meander can also output some CV values of various types, such as fBm noise, but also things like scale root. In my upcoming version, Meander can send out “CV” for scale mode, but let’s ignore that and focus on harmonic degrees.

For Meander to be able to sequence harmonic degrees, I needed a quantized format similar to v/oct. I actually developed this a couple of years ago when developing the ability to sequence Meander harmonic degrees from external modules, particularly external sequencers. Common practice defines the diatonic harmonic degrees as I-VII or 1-7 . I ended up implementing what I call an octal radix degree.octave format so that all degrees over the full note range can be represented, in quantized form. In practice, Meander accepts a degree of 0 to indicates a skipped step in a sequence. So, Meander harmonic degree input accepts quantized values from 0.0 to 7.7 allowing all chords to be played over the entire note range. In addition, Meander can detect if a MIDI keyboard (hardware or virtual) is controlling Meander harmonic degrees if the keyboard v/oct and gate are both connected to the Meander circle degree and gate inputs. This allows the keyboard white notes to play harmonic degrees in most octaves in Meander. If an external sequencer of octal radix degree.octave voltages are fed to both the Meander circle degree and gate inputs, the sequenced format is recognized and the full range of degrees and octaves can be sequenced in Meander with 0.x representing a skipped sequence step.

Even though Meander can accept octal radix harmonic degrees (and scale degrees in the Melody section), most other modules if they accept a harmonic degree input, do not support octal radix, such as with the Aaron Static DiatonicCV module. So, with the upcoming Meander output of harmonic degrees, Meander will send those in the octal.radix 0 octave format of 1.0-7.0v. (or via the options menu 0.0-6.0v).

Just as the v/oct standard for notes is very specific, I want the harmonic degree voltage standard to be very specific so sequencers can easily be set up with 1.0V representing degree “I” without having to do mental conversions. It just seems counterproductive to have to enter 0.0 for “I”, etc.

Also, Meander is a bit odd because almost all parameter knob CV inputs set the parameter rather than modulate the parameter. I.E., Meander is rigged for automation. In almost all cases, Meander uses CV inputs in the range of 0.0-10v for such automation and scales the input properly, dependent on the parameter range. I have set up tooltips info for each CV input, so the user can see what voltages are expected.

That’s probably enough for now. I know I can rescale the Meander degree out for other modules using discrete modules, but I’m tying to avoid that as it puts the burden on the user to figure out something that works. I have considered auto-detecting what the degree output port is connected to and automatically scale the output appropriately, but, that would require modifying Meander for each different module. In this upcoming release, Meander checks whether some CV inputs are coming from Meander or an external module by walking the cables and that works, so I know how to do it, but am trying to avoid doing that for harmonic degrees.

1 Like

That’s an interesting idea. Meander for Windows from ~1992 was all MIDI and supported note and sysex. I don’t think CC was available then, but at the very least I did not support CC.

Meander harmonic degree can be input from MIDI keyboards by playing the white notes such that C=“I”, D=“II”, etc. So MIDI notes can already sequence Meander. But, I’ll give some thought to this.

Thanks for the suggestion.

1 Like

Yes, Harmonaig is one of the few modules that makes use of scale degrees. It is easy for me to get out of my depth in music theory, but Instruo excels at the theory, giving us 40 pages in the Harmonaig manual. “Degree” is used 29 times in that manual, but is used in at least 3 different contexts or meaning, but by and large Harmonaig deals with scale degrees as does Meander in the melody section Degree input.

Perhaps I should disambiguate when I talk about harmonic degrees. I am talking about the circle of 5ths degrees rather than as Harmonaig primarily uses degrees as scale degrees used to define the member notes of a chord (the harmony). As far as I can tell, Harmonaig does not allow input nor output of the actual scale degrees, but rather outputs the scale degree chord notes in v/oct format. It accepts an input CV in unquantized voltage format and will output a chord with the input CV controlling the tonic or root (R) of of the chord at the R output.

While a very interesting module that I need to explore more, it is a separate topic from this one here since it neither inputs or outputs “scale degrees” or “circle of 5ths degrees”.

Thanks for mentioning it though.

1 Like

Going back to the CC idea, thinking more on it I would suggest if you did implement it that then you use a range of values say 0-15 maps to scale 1, 16-30 to scale 2 etc as it’s tricky to dial in such low values as 1 through 7 via a knob which ranges 0 thru 127 and would pretty much make it impossible to use without intermediary modules or assigning values by hand in a DAW.

1 Like

Has anyone tested Instruo Harmonaig in detail and convinced yourself that the root of the chord output makes sense for any CV in note in any octave? Maybe I am misunderstanding CV in. If I feed CV in from a TWELVE-KEY module, I only get the correct R root output note as expected if the TWELVE-KEY is set to Octave 4.

Here is a screen grab of TWELVE-KEY set to octave 3 and outputting a C3 which is sent to Harmonaig CV in, but it outputs A#2 in the root R chord output. What am I doing wrong?

1 Like

Thanks for the reply and I hope it didn’t seem like I dismissed the 0-7V idea before hearing more about it. Your answer clear shows the amount of thought you put into meander as your posts in this community do frequently. This specific way of processing the CV sounds right for this use case and I there’s definitely a point to have other developers taking this into account when creating modules.

The „white key“ option is the third option we implemented in ChordVault and I think that was based on feedback. Looking forward to the update and trying out meander together with Aaron static.

1 Like

It’s been a long time since I played around with harmonaig. I do remember being confused about this specific issue but I ended up making it work (don’t remember how). I think I read something in the manual or maybe the attenuverter should be turned all the way up? I may find an old patch file and could look it up.

1 Like

Yeah, that I think that is also the source of my confusion. If the attenuverter is turned all the way up, it’s value is 1.1 . But whether I turn it all the say up or set it to 1.0 manually, the error persists in some octaves.That image I posted was actually with it turned all the way up to 1.1 . The root note is correct if the octave is 4. I suspect that other chord notes are incorrect but I think why it sounds so bad when Meander is supplying the CV in is because Meander notes are meandering through octaves.

Okay, I figured out the Harmonaig just-so settings. The CV attenuverter must be set to 1.0, not full CW 1.1. But the primary requirement is that I must set up the desired scale on the “keyboard” buttons at the bottom of the module. For my successful tests, I set the white notes active, thus Cmaj. This is still confusing, but if I do these two things, CV input in any octave produces that note as the root chord note in the CV input octave. I also have the mode set to Ionian and the chord quality set to 2 which per the manual corresponds to a “major 7th” chord.

So, now when Harmonaig CV in is from the Meander chord 1st channel or tonic note, the Harmonaig chords sound nice and no longer extremely dissonant.

But, in the end, this is off-topic since Harmonaig does not understand harmonic circle of 5th degrees.

1 Like

FYI: Regarding the workings of the Harmonaig quantizer(s), there was an earlier “investigation” in another thread:

Polyphonic MIDI issues - help! - #24 by Jens.Peter.Nielsen

and the developer reply:

Polyphonic MIDI issues - help! - #31 by Jens.Peter.Nielsen

2 Likes

Thanks Jens. That explains a lot and even though some of the answers don’t make a lot of sense to me, at least now I understand that the strange behavior is by design. It took me hours to get a simple chord to play correctly. In a perverted way, it was good to see that others had as much trouble as I did :thinking: :wink:

2 Likes

Well, this morning I’m back to not being able to get correct notes from Harmonaig. I probably had the same problem yesterday but just did not realize it.

I think there is a slight bug in the Harmonaig quantizer code such that it doesn’t have 3 decimal points of precision, or the quantizer is not quantizing notes with an error value margin or some such. But, since this is closed source, I can’t tell.

I will move on to other things.

1 Like

BTW, I sent an email to Instruo describing my findings.

1 Like

I received a nice and long reply from the Instruo developer. My mistake was thinking I could send v/oct to Harmonaig CV in and a properly re-quantized root and chord would be generaed. But Harmonaig will not work properly in this way. CV-in is for CV. I have never found a case within VCV Rack modules where a quantizer could not understand quantized v/oct notes, but that is okay. It has strong focus on exactly emulating the hardware Instruo modules for educational purposes, Eurorack hardware modular quirks and all.

3 Likes

I am going to upload two new songs to SoundCloud and then post them here. These are short demos of the new Meander harmonic progression chord "degree: out, feeding Aaron Static modules and creating harmony, arpeggiation, chordal random melody and bass. All Meander is doing is sending the chord progressions that are built in to Meander. All of the voices are FM-OPs. As usual, I use several NYSTHI and CountModula modules for sequencing and meta-sequencing. This uses features only available in the upcoming release of Meander, so no patches uploaded here.

Both songs use the Aaron Static ScaleCV, DiatonicCV and RandomNoteCV modules. Pretty much everything that can be sequenced in the Aaron Static modules is. This includes harmonic degree chords, chord type, chord inversions and chord voicings. The RandomNoteCV module is sequenced for “Root bias” and “Range” for the input poly chord.

Hopefully this may stimulate some interest in some developers adding harmonic degree chord inputs, similar to v/oct inputs.

Actual songs in next two replies.

2 Likes

This demo is done by staying on the “I” chord in Meander while jumping through all sorts of chord gymnastics and their arpeggiations.

3 Likes

This demo is done by sending the Meander #25 Canon-DMaj (Pachelbel’s) chord progression to the Aaron Static modules. This harmonic progression is I-V-VI-III-IV-I-IV-V .

3 Likes