Values for midi note quantiser node with Metasounds

I’m trying to set up something that plays notes in a scale, or a particular chord. For example: I would like to play the first, third, and fifth degree of a major scale, which would result in a major chord.

Midi notes, as I understand them, go between 0 and 127. There is a ‘midi note quantiser’ node, which looks like I’d be able to set a particular note value on, and have it output that note as a frequency.

There’s 12 values between each octave in midi- middle C is 60, C5 is 72, C6 is 84, and so on. So this set-up should step up each octave every time the repeat is triggered

However what comes out isn’t notes spaced an octave apart. The first three notes I get out are B3, D4, and F4, which means it’s stepping up by a flat third each time. Can anyone shed some light on what values I should be plugging into this to make it work?

Hopefully someone else will weigh in who is good with Log functions, but I can shed a little light on what the trigger counter is producing versus what the Midi Quantization is expecting. The problem is it is expecting a frequency. If you change the trigger counter start value to 261.63 (middle C) and step increment to 261, the first two notes will be (roughly) C4 and C5. If you were to somehow increment by 523 (resulting in 1046) on the C5 value (the third time through), you’ll get roughly a C6. It appears the node expects a frequency and its function is to quantize that to the nearest note in a tempered scale (possibly provided through the array pin?).

To use a trigger counter to generate octaves, the step count would have to multiply the current value by 2 each repeat and could then produce octaves (e.g., if you want to produce A octaves A4=440, A5=440x2, A6=(440x2)x2 etc). I didn’t get any further to figure out how you would use graph nodes to generate what is probably a log calculation, but the bottom line seems to be the node is expecting a frequency not a MIDI note number.

Right, that makes sense- I think the ‘note’ input probably needs renaming. I have just found another node called ‘MIDI to Frequency’ that actually uses notes as input- I’ll see what I can get done with that.

Hello! There’s actually a tutorial that goes over MIDI Quantizer nodes, now, among other things.

But! You’ve got the right idea about MIDI notes work, 12 is an octave jump. The MIDI Note Quantizer does take MIDI notes as an input for Note In . . . but “Convert output to frequency” is not what it does. The Quantizer node quantizes MIDI notes to a scale - for example, if you gave it a minor third and it was set to Major Scale, it’d give you the MIDI note corresponding to the major third instead. The output of the quantizer node is actually also a MIDI Note value!

Which is where the problem is with that MetaSound, because Saw does expect things to be in units of Hz. If you replace the Quantizer node with a “MIDI to Frequency” node, it’ll probably work fine, you don’t actually need a quantizer to do stuff like octave jumps.

2 Likes

Brilliant, thanks for clearing that up, I’ll have a look at the tutorial