Duplex: Pitchbend Always At 1% When Automated

If I automate the pitchbend using Duplex->Keyboard device->Pitchbend remapper->Midi remapper->Midi automation device, the pitchbend has the middle position at 1%, not 0%, so the pitch is detuned a bit, dependent on the range of the pitchbend.

Shouldn’t it be 0%? I checked the pitchbend values with the midi monitor for OSX, the pitchbend send value 0 in deteched position.

Or is this bug related to duplex?

It’s most likely Duplex. I’ll investigate.

OK, results are in - and this is in fact a bit weird, has nothing to do with Duplex:
My keyboard will output 64 at the middle position, 0 as minimum and 127 as max. Nothing strange in that.
But I noticed that it’s simply not possible to reach 0% with a 7-bit MIDI controller. When you transmit 63, the pitch bend is set to -1%, and at 64 it becomes 1%.

Now, as we are most likely to deal with an integer range of 128 there is no center value, so what Renoise does is - mathematically speaking - correct.
Unfortunately, pitch bend is traditionally based around the center value and the result is a small, but noticeable different in pitch.

I then checked with other DSPs that have such bipolar parameters, and indeed it’s present in a couple of other places as well:

  • DC Offset: 0.787 % and -0.787 %
  • EQ5/10 : 0.157 dB and -0.157 dB
  • Flanger amount + feedback: 0.787 % and -0.787 %
  • Mixer EQ lo/mid/hi gain: 0.142 dB and -0.142 dB
  • mpReverb low gain: 0.142 dB and -0.142 dB

IMHO pitch-bend is the most important parameter, the others hardly have a noticeable effect on the sound.
The solution would be to pick a value which should represent the center, make a bipolar parameter “center-centric”.
But the big question is, if some keyboard would output e.g. 63 as the center value?

Hm, strange. But would be nice if this was fixed by the Renoise team to get really exact results. Isn’t there a common convention are practice dealing with this?

Can’t this fixed by using floor() for the rounding when you convert pitchbend to 7 bit? And are you sure that 63 is pitchbend -1? As far as I can hear the 0%/63 have the pitch 0.

Yes, 64 is 0 pitchbend also on korg.

Yes, I just checked the MIDI specification and it implies that 0x40 (64 decimal) is in fact the centered position.

Edit:

I guess it’s a question of making a special treatment for 7-bit MIDI messages, while looking at whether the parameter is uni- or bipolar