Micro Tuning 432Hz (-32 cents)

This was my question I posted to Twitter…

@blokaslabs I have a #KeystepPro and I’m wondering, can I add the Midihub and program it to control my midi synths so that the global tuning is 432Hz? (IE: -32 cents from A440)
Thanks :pray: so much!

I’m trying to determine if the Micro Tuning feature of the MidiHub can tune down from the standard A440 Hz about 32 cents to achieve the A432 Hz globally across all the synths connected to my keystep pro.

I’m imagining the midi out from the keystep goes into the MidiHub then out to the synths.

But along the signal path, within the MidiHub, the pitch is reduced via midi messages by 32 cents (like a slight but permanent pitch bend)

Is this possible?

To be honest, I lucked out with my MicroFreak because within the internal global settings I can adjust the tuning natively

But I’m having a hard time finding other synths that offer the same feature.

And I’m falling in love with certain synths that I want like the Dreadbox Nymphes…and others…but it doesn’t look like you can tune those synths internally.

Any help is totally appreciated

And please don’t talk about the merits or un-merits of 432Hz

Just pretend it’s nothing more than a technical inquiry so we can keep the discussion focused and on point.

Cheers everybody!!

Hey @radiant88 ,

Aside from using the Micro Scale pipe itself (not a pipe I know well and, anyway, probably a bit of an overkill here), Midihub’s Transform pipe can create a fixed Pitchbend before each note played:

Screen Shot 2024-05-21 at 23.27.49

This can then be sent to whichever channels and ports you choose.

Other variations on this would include using a Square LFO Transformed to send the PB periodically (to reduce the per-note chatter.)

Of course you’d need to figure out what PB MSB & LSB to send each device†…
…and probably avoid sending any manual pitchbends††.

(having different fixed PB ranges on different devices wouldn’t be a killer – just a touch more fiddly)
†† (still do-able but rescaling to a “pitchbend offset” would be more involved)



or, more “focused and on point” - Yes.

1 Like

Thanks :pray: so much for your insights!!!
I don’t know anything yet about how MidiHub is programmed -it sounds very powerful- but I think I understand what you’re saying:

“Midihub’s Transform pipe can create a fixed Pitchbend before each note played”

So, would I go in and program the transform pipe on every single note (A0 to C8) and put it at say -32 cents pitch bend below each note?

If I could do that, it would seem I would have achieved my aim.

A single Transform pipe per device would be sufficient. Here’s a very basic example, showing the kind of Transform properties you’d want:

To change the pitch, you’d update the Argument 1/2 properties. If the Pitch Bend depth is known of each sound producing device, some formula could be used to figure out the exact values to get the desired tuning.

Otherwise, you could use some Tuner plugin / device to do it by hand and play around with the values until you reach the desired tuning.

2 Likes

I don’t know what pitchbend value would constitute A4 = 440 → A4 = 432 but let’s say it’s -1350…

…then a simple preset (patch) might look something like this

where the first line (called a pipeline) creates a fixed Pitch Bend before every note,
and the next two take certain note ranges, change the channel to whatever and send them out

(Those pipes called Virtual Inputs/Outputs do the internal routing)

in more detail...

check out the docs on Transform to follow along or, better still, download the latest Editor and checkout the patch below pipe by pipe.

radiant88_PB0.mhp

In the Transform above, see that

  • an incoming Note On has a Pitch Bend Inserted before it:
  • the PB’s fine (LSB) and coarse (MSB) values are set to Arg 1 & Arg 2 resp…
    …which we see are fixed at 103 & 53
    (these happen to equate to -1305)
  • further down we see that the Transform is set to work for any note…
    …any channel, any note#, any velocity

for F4, G4 A#4 this gives the following at the two outputs

A PB before every Note On…
Screen Shot 2024-05-22 at 08.08.41
…all in Ch7

but here…
Screen Shot 2024-05-22 at 08.09.27
…only ch9 PBs cos my filter has stopped F4, G4 A#4 getting thro.

tweaks

So you might only want to send PB to outputs that are getting notes:
radiant88_PB1.mhp

Or you might know you’re playing say a C3 → C4 every bar or two and just create PB for those notes…
(I’ll leave you to figure that one)

…or even use Dispatcher to create a PB for one note in every 16 (upload your patch if you think you sussed that one out!)


Sorry @Giedrius didn’t notice your simultaneous reply

2 Likes

It’s sounding like MidiHub is absolutely going to have the capability to achieve a certain pitch bend across all my notes and devices. And your idea to get in there with a tuner to find my precise A432Hz is a great idea since I wouldn’t know how to calculate the formula.

If I can get the A440 down -32 cents that is very close to A432. The tuning I’m after is equal tuning across all notes so, once I hit A432 on the tuning device I’m guessing it will be global for the rest of the notes on the specific synth.

Interestingly I got this message from a YouTube comment I made asking his advice:

@OscillatorSink
10 hours ago
I’d have to check if there’s an appropriate pipe, but I’m pretty sure you could send a static pitch bend message. BUT: the range of pitch bend is a parameter governed by the synth (ususlly per patch if it has presets) so you’d have to ensure that every preset you used had the same maximum pitch bend amount”

It’s a great video but anyways it’s interesting to consider the fact that each devices presets might have different pitch bend values and therefore could complicate the issue.

In your experience could that actually play out as he says?

Or wouldn’t any one particular synth have the same pitch bend values starting at standard tuning and then going up or down at the same rate regardless of the presets?

Thanks a lot for your response btw
Much appreciated :+1:

Awesome
So to get the PB value, I would modify the Arg1 and 2 values to taste.

And then it just becomes a matter of fine tuning the pipe (midi patch) to make sure there are no bugs

Did I understand you correctly?

I’ll download your sample patches and see what I find. I don’t have a MidiHub yet tho but it doesn’t hurt to get my feet wet.

Dude thanks so much!

Yep, I took my “-1350” from the first mention that popped up, btw.

I don’t have a MidiHub yet tho

doesn’t matter; when I saw Oscillator Sink’s and loopop’s videos way back, I grabbed the Editor to follow along on screen and was quickly sold.

Both videos are good but you should know Midihub is now even better!


re your remarks to @Giedrius, yep his advice about a Tuner is a good one.
Also look at your devices to see whether you can set them to the same PB range (2 semis seems to be a popular default)
If not, as G, says you might need different PB settings for different synths


btw, Midihub would also allow you to “Map” those Arguments to two KSPro encoders so you can get the pitch right on the coarse then the fine (most pitchbenders don’t go anywhere near that fine as it goes: Keysteps only do MSB/coarse)

Yeah, you can treat Arg 2 as the ‘coarse’ tuning parameter as it’s controlling the most significant bits (MSB) and Arg 1 as ‘fine’ tuning parameter, as it’s controlling the least significant bits (LSB)

You should dig around your synths settings / manuals and you’ll find out. Some synths might have a different Pitch Bend depth parameter per-preset, some may have a global setting, some may have a fixed setting of something like 1, 2 or 12 semitones depth.

Anyway, once you figure some values out, they should apply to all devices using the same pitch bend depth.

The formulas shown in this forum post should be helpful: Mapping frequencies to midi notes - #3 by robiwan - General JUCE discussion - JUCE

2 Likes