Forums > MaxMSP

### Tempered Pitch Ratios with Groove

Feb 22 2011 | 6:39 pm

I would like to use groove as a real time sampler, kind of like the casio keyboards of old, where you can record a note and then get a couple of octaves of pitch appropriate equal tempered tuning from it. Obviously .5 playback speed is an octave down, and 2 times play back speed is an octave up. To make an equal tuning, is it as simple as dividing the distances by 12? from 1 to .5, and then from 1 to 2? I have the feeling I need some kind of equation with a log function or something. Would be great to use the kslider somehow with this as well… Any suggestions?

Thanks!

Feb 22 2011 | 9:12 pm

there’s probably a better way, but this is what you need:

``````-- Pasted Max  Patch, click to expand. --

```
```
Feb 22 2011 | 9:21 pm

not at Max here so I don’t see the patch, but the twelfth root of 2 is approx:

1.0594631

written as 2 ^ (1/12)

if you take A=440 for example, multiply 440 by the above number to get B flat…multiply that by the above number again to get B… etc. It’s just like compound interest.

so you can see that if you multiply any starting number by that number twelve times, you’ll get double the number = 12 steps = one octave.

Feb 22 2011 | 11:24 pm

Feel free to use the transratio abstraction which is somewhere in the examples folder.

Feb 23 2011 | 7:30 am

"To make an equal tuning, is it as simple as dividing the distances by 12?"

you dont even need to do that, because your input (midi notes 60, 61,62)

"from 1 to .5, and then from 1 to 2? I have the feeling I need some kind
of equation with a log function or something"

exactly, and what you need is [mtof] – converting note numbers to frequency
in hertz.

i have chosen middle C to be the base note, at which the playspeed is 1. :

[expr exp(0.057762265*(\$f1-60.))]

that will work with 12-tone temperament as well as with any other scale …

-110

Feb 23 2011 | 9:36 am

Much easier to use pow() inside [expr] because you don’t need to worry about an equation with all those extra decimal places. You can also change it to different ET scales, want 6 notes per octave? Or 15? Just change the value in the [expr].

``````
-- Pasted Max  Patch, click to expand. --

```
```
Viewing 6 posts - 1 through 6 (of 6 total)

Forums > MaxMSP