Tuning issue (analog style, basic poly, etc)


#1

Hi all. First off I want to thank this awesome community for all of your great work with patching, helping, creating, all that good stuff. I’ve been cruising the forums for a while and using a bunch of patchstorage and official organelle patches. Love this little box!

My question: I can’t seem to get patches that tune in cents to tune exactly to 1200. The closest I get is 1196 and 1205. I would like to be in tune with external instruments. Any way to solve this?


#2

If you’re not interested in tuning the Organelle, you could hardcode the patches to 1200. This would free up a knob for other functions too!


#3

I usually just tune to 1196 as I find being a few cents flat can have a “warmer” sound than being a few cents sharp. A few cents is a very small amount, and while I also at first found it strange that could couldn’t tune to exactly 1200, I quickly realized that (for me, anyway) this was a non issue.

It would be cool to mod it though and use the other knob for something else like @chrisk suggested. You diving into pure data yet?


#4

I’ve been a little intimidated to get into pd but this may be the push I need. @chrisk I like the idea of hard coding the tuning and possibly using the knob for another function. Or a simple octave shift. I’ve been digging through some patches and the pd help manual and patching tutorial vids. Looks like I got some work to do. Any suggestions are where to start? Good resources?


#5

Quick update of my workaround fix in the analog style patch. I figured the value that was being generated by knob1 was not hitting 0.5 exactly (in my case the closest value the knob was sending was 0.4983 [1196/2400]). I just adjusted the multiplier value in the main.pd patch coming from r knob1 to a value that would have a product of 1200 when multiplied by 0.4983 (I.e. 1200/0.4983 = 2408). So switching the multiplier value in the first box coming from r knob1 to 2408 made it so I could tune to 1200 cents exactly.
Not very elegant but it works. Now to try and figure out what all this pd stuff actually means!


#6

unfortunately, this is down to the accuracy of the pots (or possibly controller firmware we can’t update)
in the last OS release, I fixed a bug so that pots correctly report 0…1 (0…1023) , and also wouldn’t fluctuate… so generally it looks really stable.

but the issue is whilst the pots look like they have 10 bit accuracy, its not really… its jumps arounds,
the best way to see this is to do [r knob1Raw]->[print], you’ll see it jumps from 0 to 13, and from around 1018 to 1023.
and the centre point is similar, it should report 511 (1023/2 rounded) , but instead you get 510, and 514, so you are a small amount out.

to be honest this is perfectly normal when dealing with pots, and is normally handled in software.
… we could do this in the OrganelleOS (in a similar way I did with smoothing) , but often it doesn’t really make sense unless you know what your using for (and would also tend to reduce resolution further)
e.g. here the centre value is important, but for others 3 o’clock and 9 o’clock might also be important, for other uses it doesn’t matter at all, as long as its a linear progression.

So the best/most flexible thing is to ‘leave it to the patch’, but that means more logic in the patch, where you can do things based on what the value is being used for … but thats kind of a pain/hassle.
e.g. for this example, it would make sense to have a ‘detent’ around certain values e.g. 0, -1024,1024.

the easiest approach for most patches is not to use large values, as obviously the multiplication, also multiplies the error, i.e. using a coarse tune in semis, with a fine tune in cents will provide a better user experience.

anyway, this is precisely the reason in Orac, I have parameters types, so that my Kontrol external can deal with the messing about of types, making them nice for users, but the patch/module code can just concentrate on the dsp… on the musical stuff.
(this is why I created Kontrol, because I found doing all this parameter handling/display pretty laborious in PD)


#7

Thanks @thetechnobear. Nice in depth explanation of what’s going on. I’ll take a stab at switching the tuning to semitones instead. I’ll also take a look at ORAC and Kontrol as I havent tried it yet.

Part of the intrigue of the organelle for me is the opportunity to learn what’s going on in the background (yay open source!). And while it’s a bit daunting when you don’t know how to speak the language, the possibility of being able to tweak and create is exciting. Appreciate your input


#8

In mine I just made an expression that said something like if the value is between this and this number then output 1200, if not output the value of the knob. Works really well!


#9

A great fix! C&G have done the same thing in a couple other patches of theirs i think.


#11

ive not tested but probably moses is the easiest way, something like? (=untested ) 54


#12

Does the expression object work well in PD? Has gotten me out of many objects in Max.

Edit: Testet it and it works great! Nice approach @thetechnobear


#13

It’s fantastic. In this manual you’ll find everything you need to know (it is super helpful): http://yadegari.org/expr/expr.html