Noob questions (cyclecounter + code review process)


#1

I noticed that the note quantizer seems broken (or I'm expecting something wrong), so instead of whining about it I decided to fix it myself. After shifting bits around for ages (still not totally clear on the different types available in axoloti), I have something that works now. And now my questions:

1) I think I figured out how to use the cyclecounter object, the original quantizer (with for a noobs eyes very convoluted code, my guess would be because it's highly optimized) uses 39 cpu cycles, my fairly conventional, high level code uses 30. Is there anything else to using the cyclecounter than placing the object(s) you want to measure between two cyclecounters (like on the help for cyclecounter)?

2) What's the next step from here? Obviously I'd love to share my quantizer (and any future stuff) with the community, are there any review process, or should I just go through the regular procedure (from memory: create git repo, then ask for permission in certain thread here)?


#2

https://sebiik.github.io/community.axoloti.com.backup/t/contributor-access/1039 and git repo


#3

if your talking about the factory note quantizer then there are two different approaches...

a) produce your own version, and release in the community library under your own prefix, see process as mentioned by @philoop

b) fix the factory version, this requires you to clone the factory library, and then issue a pull request.

(or you can do (a) and we can consider it for moving to the factory, just do NOT use the same UUID, it must start off as an alternative)

as for the note quantizer in the factory.
I think many people have different expectations from what I implemented (which I think works correctly in what its trying to achieve) ... basically most people expect it to just 'round' the result to a scale.
this was not what I was after when i implemented it... I wanted to not have gaps....

the difference is, imagine the following note numbers (numbers are not correct, as i cant be bothered to look up the correct ones :wink: just an 'example') being mapped to C Major.
first column = note number
second = midi note
third = my requirement for it to be in scale
fourth = what many expect :wink:

0  C3     C3    C3  
1  C#3    D3    C3  
2  D3     E3    D3  
3  D#3    F3    D3  
4  E3     G3    E3

from here you can see, I want to from a number sequence 0,1,2,3,4 to a scale, rather than round from one scale to another... and yes to do this, gets a bit convoluted, because I need to be able to offset the input and output ranges for it to work reasonably.

so this is a case, where the object just doesn't do what you are after... and perhaps the description is a bit misleading? (perhaps its should just be a scale object rather than a quantizer!)

anyway, issue we have, is I've known this for awhile (a few have brought it up, and i think there may already be alternatives in the user library) BUT I cant really change its behaviour, since this would break patches that do use it. (and I do use it :slight_smile: )

as i said, what i could do is rename it... (scale seems reasonable , the more i think about it)
and then this would free up the quantiser name, to be with the 'rounding' method, which I think is what most were expecting... and as you say, that object is pretty simple to implement.
(I think what I'll do is create an 'ultra simple' one, with few controls, this will then allow the community to create more 'interesting/elaborate' ones)


#4

Great, makes sense now. Coming from eurorack, this as you hinted at might not fall under what most people associate with the term quantizer.

I have a few more things I want to add to my quantizer, so I'll continue to work on that, until I get write permission to git, then I'll push it up there for some feedback...


#5

NB: The what-I-felt-was-broken-ness is most apparent when having less than seven notes in the scale. I often use my hardware quantizers with just clusters like C + D + E or C + G. In such cases the factory one is very high pitched. Well you could scale down, but adding or removing notes on the fly would change the range every time...


#6

yeah, this is the nature of the object, since it retains 1.0 = a note in scale... so if you only have 3 notes, then 0 to 12 = 4 octaves.
what I used this for was generative and sequenced things, so was able to ensure the input was scaled appropriately. (and as i mentioned this is why it has a few inputs to help scale the input and output).

anyway, Ive renamed 'note quantiser' to 'note scale', which perhaps is a bit clearer.


#7

That would be really nice, a gate/pulse output for every time that the input is rounded would be very nice imo.


#8

Done... Waiting for the github write access...


#9

It up at github, "a773 quantizer", have a few more ideas, but it works. Any comment more than welcome. Now on to create my contrib thread :slight_smile:


#10

It's lovely, thanks for all your hard work!

Do you know if there's any way to toggle the individual cells on and off via trigs or midi?