Microtonal Quantizer


#1

Microtonal Quantizer

Microtonal Quantizer capable of scales up to 40 notes per octave. Current programmed for the 34EDO scale, but can be easily reprogrammed.


I/O

Input Signal Range Notes
o%20input 1 per octave

Output Signal Range Notes
o%20output 1 per octave quantized values

Controls

Control Function Notes
mask used to deselect notes in the current scale

Displays

Meter Displays Notes
mask masked, selected and active notes Red toggle - note is active Green light - note is in scale Red light - note is selected


Version History

Revision File Date Notes
2.0 Microtonal Quantizer V2.0.audulus (530.6 KB) 09/03/2018 redesigned quantizer unit (bug fix and efficiency)
1.0 superceded initial upload to new forum

Demos

Revision File Date Notes
2.0 Microtonal Quantizer V2.0 demo.audulus (557.0 KB) 09/03/2018 initial upload to forum

#2

Open up the module to change the scaling (up tp 40)

Also, this is some epic patching inside this one.


#3

Actually the 40th position is reserved for the octave value so you can have up to 39 notes (way more than anyone should really need!):cowboy_hat_face: Some of these larger patches are quite visually appealing inside. I hadn’t looked at this one in a while and when I opened it, it struck me as quite artistic in its own way.


#4

thanks a lot.


#5

So true, and yet the implementation of a better Mono to Poly node will largely end a lot of this huge latticework patching since you’ll be able to create more sophisticated parallel processing stuff.

It’s always fun to bust open a patch like this for newbies to Audulus and be like “Blam, check this out!”


#6

A friend of mine is getting into microtonal stuff and said he’s having trouble finding a cheap platform for trying out ideas. I immediately thought of this, but now that I gave it a try I noticed that I seem to be getting some ”off” notes using a v/oct keyboard in the input. Sometimes the pitch jumps up, usually with values that are something like 0.25, 0.5, 0.75 and 1.5, and I get two red lights at the same time. However, if I add a 0.01 offset to the keyboard module output, the problem goes away. Also getting the white wire freeze-up a lot, for example if I switch from an lfo to a keyboard module in the o input.

I haven’t really looked into microtonalism so just to be sure I understood how this works: if I wanted to switch to 20EDO for example, I would change the ”notes in scale” value to 20 and populate the note values with multiples of 60? And for just intonation stuff just pick how many notes per octave I want and enter the intervals in cents?


#7

You shouldn’t really get two active notes at the same time (obviously) so I guess there’s a bug somewhere. I didn’t do a lot of testing since I built this for someone else. If you would put a value meter on the input and let me know what the input values are that cause problems it would help to narrow it down. A copy of your patch would also be helpful. The note values are entered in cents. Unused notes should be set to 0 and the total number of notes in the scale set near the top. The octave value is 1200 cents. For 20 EDO you would have multiples of 60 as you mentioned. With a normal keyboard node you won’t be able to access most of the notes since there are only 12 notes per octave rather than 34 (or whatever the quantizer is programmed for)


#8

@stschoen makes a good point, if you upload the problem patch, debugging will be a lot easier.


#9

Sure! Sorry, it seemed so simple that I thought you might catch it just with a description. Here’s the patch with some screenshots.

Microtonal Quantizer Debugging.audulus (447.0 KB)


#11

Thanks, I’ll check it out.


#12

I’ve found the bug. It occurs when the input value falls exactly halfway between two notes. The logic I used in the quantizer calculates the difference between the input value and each of the notes and selects the minimum. In this case it is selecting two notes. I was hoping it was just a mis-wire but this is a an error in the logic. I’ll have to rework the logic some to fix it. Stay tuned!


#13

I’ve fixed the problem by redesigning the internal quantizer module. It should also be more CPU efficient. Note values are currently in cents but could be changed by changing the octave value. In the demo file I scaled the keyboard node so you can play all the notes. The white wire lockups were caused by a bug in the keyboard module you are using. When the keyboard node is initialized it outputs a value of 0 Hz. The formula that converts this to 1/octave can’t handle a zero and outputs negative infinity. I modified the copy in the demo file by adding a check for 0 before the conversion.