Synth Forum

Notifications
Clear all

how a so high end synthesizer cannot provide a proper pitchbend?

89 Posts
17 Users
0 Likes
15.9 K Views
Darryl
Posts: 788
Prominent Member
 

*The crickets are getting louder on this thread. Has this been scrapped or are they still considering fixing the issue? Or do they deem this as fixed since the last 3.5 Update?

I know that they need to see the MIDI numbers change, but just listen with your ears ... if it doesn't sound right, it doesn't matter if the numbers look better:
https://soundcloud.com/dclowe/dx7ii-vs-montageos35-pitchbend https://soundcloud.com/dclowe/dx7ii-vs-montageos35-pitchbend
(The first part you hear in the audio clip is the DX7-II and the second part is the Montage)

This is so easy to reproduce on many sounds...

 
Posted : 18/09/2020 12:08 pm
Posts: 0
New Member
 

I just did some experimenting of my own with my MONTAGE to see what resolution the pitch bend wheel outputs via MIDI.

I captured over 2000 pitch bend values each for both the down direction and the up direction. Removing the duplicates, I ended up with just under 100 unique values for each direction, so just a bit under 200 total. Interestingly, the LSB for the down direction was always 0 or 64, while the up direction had many more values for that byte.

 
Posted : 18/09/2020 11:46 pm
Jason
Posts: 7963
Illustrious Member
 

I captured over 2000 pitch bend values each for both the down direction and the up direction. Removing the duplicates, I ended up with just under 100 unique values for each direction, so just a bit under 200 total. Interestingly, the LSB for the down direction was always 0 or 64, while the up direction had many more values for that byte.

Montage firmware v3.0, using "Init Normal (AWM2)" without any modifications - turning the pitchbend from middle (rest) to full "down" generates values where the LSB is always 0 and the MSB decrements by 1 from 3F down to 00. "Middle" is MSB_LSB=40_00. So we see 3F_00, 3E_00, ... 01_00, 00_00.

Sticking with just the downward bend direction, it seems firmware v3.5 does improve the resolution. By one bit. "Always 0 or 64" means the most significant bit of the LSB is toggling. I have to look at this myself, but I imagine we now see:

3F_40, 3F_00, 3E_40, 3E_00, ... 01_40, 01_00, 00_40, 00_00.

If so, this would mean the resolution is doubled.

And one of my previous points is that "better" may not mean it's good enough per what folks want to end up with. We may have went from 7 to 8 bits of resolution.

You may have asked for white. Started with black. Now we have grey. Grey is closer to white than black - but some may not like grey although it's measurably better than before.

 
Posted : 19/09/2020 8:44 pm
Darryl
Posts: 788
Prominent Member
 

And one of my previous points is that "better" may not mean it's good enough per what folks want to end up with. We may have went from 7 to 8 bits of resolution.
You may have asked for white. Started with black. Now we have grey. Grey is closer to white than black - but some may not like grey although it's measurably better than before.

I'll reverse the analogy, but you have basically nailed it. I've got white, but I am used to black, so I asked for black. What I received was just a light grey instead. Is black so hard to do? It wasn't 30 years ago.

At this point, I'd just like to know if they are going to fix it or have they decided not to. Either way it would just be nice to get a quick update and know.

 
Posted : 20/09/2020 3:51 pm
Jason
Posts: 7963
Illustrious Member
 

I can't really answer definitively where Yamaha engineering is coming from - but I can say that the landscape is fairly wildly different vs. 30 years ago. As of today, since Montage still implements MIDI 1.0 - that's the same. So the channel (highway) for transmitting and receiving data is "the same". Yet the 30 year ago DX7 only uses a single lane of the MIDI highway and the Montage uses up to 8 at a time. I'm just narrowing the focus down to MIDI transmit from the instrument in response to touching piano keys and other controllers.

Going back to that paint analogy (and using it differently now) - lets see. You wanted black. Fine. The DX7 had a gallon of black paint. You're painting over white walls. That gallon of black paint is what MIDI 1.0 gives you. It uses one channel - so it only needs to paint a closet. Fine - you get a deep black closet and are happy. Today, Montage uses the same gallon of black paint (same MIDI bus). But now has to paint an entire floor instead of just the closet (more simultaneous MIDI channels). That spreads the black paint thin - and MIDI 1.0 only supports that much black paint. Walls are light grey.

This one is talking about bandwidth and flooding the channel. Since Montage more fully utilizes more MIDI channels at a time in multi-channel mode - I imagine (speculation) some of the balancing act is worrying about flooding the MIDI bus. Every bit of resolution you add to the response of the PB (pitchbend) wheel - you double the amount of traffic moving the PB generates. Perhaps, at worst case, one more bit was all engineering was willing to add to the MIDI traffic before encroaching too much on the buffer before MIDI bus saturation.

This could (maybe) be "solved" by doing what the DX7 did - use a different system altogether for internal vs. external (also keep in mind the more simplistic simultaneous oscillator story of the DX7 vs. Montage). So the direct link between the PB and tone engine uses many more bits than you can observe on the MIDI bus. I'm not sure what is (or isn't) being done here. I haven't run that test yet.

So maybe something can be done. However, be careful not to make false equivalencies between the DX7 and Montage. The two instruments are very different in more ways than just the pitch bend resolution. And some of these differences (enhancements) do really impact and complicate the request such that "do what you did 30 years ago" is not really a valid request.

That's an unofficial speculation soup response.

 
Posted : 20/09/2020 11:17 pm
Posts: 0
New Member
 

Repeating my experiment on my Novation Impulse 61, I only get 128 unique values total from its pitch bend wheel. I don't have a DX7 so I can't personally repeat the experiment with it, but what I'm doing is pretty straight-forward:

I'm using the ReaControlMIDI effect from Reaper to log the control change messages. Every few hundred that are logged (since the log only keeps so much history), I copy them over to a file in Notepad++. Once I've collected a good number in Notepad++ (last time, nearly 3000 total), I replace ".*LSB" with "LSB" with the search mode set to Regular expression (and ". matches newline" unchecked). Then I do Edit -> Line Operations -> Sort Lines Lexicographical Ascending, then Edit -> Line Operations -> Remove Consecutive Duplicate Lines. What's left then are the unique values, which I can look at the line numbers to see how many there are.

As a practical matter, when you consider the physical range of the wheel, 200 steps is already pretty fine. Listening to the sound cloud example, I can't personally tell a difference between the DX7 and the Montage, but I'm not an expert musician either.

There's going to be a limit to how fast the messages are generated in either case, so even in the full 14 bits case there would be some stepping if you moved the control fast enough. The only way I can think of working around that is tone generator delayed processing the CC messages a bit and then interpolating the values. That would most likely generating some interesting behavior unless you delayed all MIDI data, but I don't think the latency would acceptable if you did that.

 
Posted : 21/09/2020 12:17 pm
Jason
Posts: 7963
Illustrious Member
 

It would be "best" to evaluate pitch bend response by setting the pitch bend to extremes and slowly stepping either MIDI control of the pitch bend value or (not preferred) slowly moving the pitch bend wheel. Doing this test in a controlled manner can better demonstrate differences in response since it will be easier to hear stepping with such a wide range of pitch.

PB Lower: -48
PB Upper: +24

 
Posted : 21/09/2020 1:08 pm
Darryl
Posts: 788
Prominent Member
 

I can't really answer definitively where Yamaha engineering is coming from - but I can say that the landscape is fairly wildly different vs. 30 years ago. As of today, since Montage still implements MIDI 1.0 - that's the same. So the channel (highway) for transmitting and receiving data is "the same". Yet the 30 year ago DX7 only uses a single lane of the MIDI highway and the Montage uses up to 8 at a time. I'm just narrowing the focus down to MIDI transmit from the instrument in response to touching piano keys and other controllers.

Going back to that paint analogy (and using it differently now) - lets see. You wanted black. Fine. The DX7 had a gallon of black paint. You're painting over white walls. That gallon of black paint is what MIDI 1.0 gives you. It uses one channel - so it only needs to paint a closet. Fine - you get a deep black closet and are happy. Today, Montage uses the same gallon of black paint (same MIDI bus). But now has to paint an entire floor instead of just the closet (more simultaneous MIDI channels). That spreads the black paint thin - and MIDI 1.0 only supports that much black paint. Walls are light grey.

I learn something new each day, thanks for explaining the differences between the DX7 and Montage.

The only thing I wonder is that the second generation DX7II-FD is the one that I have and it has 2 simultaneous voice layering/splitting functionality. Would that still be a single lane or 2 lanes?

What if Yamaha engineers programmed it to use ALL the bits!?

 
Posted : 25/09/2020 11:19 am
Darryl
Posts: 788
Prominent Member
 

@brian

Listening to the sound cloud example, I can't personally tell a difference between the DX7 and the Montage, but I'm not an expert musician either.

I think we are opposites. I can only go by ear and don't know much about the MIDI data or LSB side of it.

Are you referring to Soundcloud audio clip that I have posted showing the difference between the DX7II and the Montage? If so, that is quite interesting, because I hear it as plain as day, and if you don't hear it, maybe there's something wrong with my ears!? :p

 
Posted : 25/09/2020 11:25 am
Darryl
Posts: 788
Prominent Member
 

It would be "best" to evaluate pitch bend response by setting the pitch bend to extremes and slowly stepping either MIDI control of the pitch bend value or (not preferred) slowly moving the pitch bend wheel. Doing this test in a controlled manner can better demonstrate differences in response since it will be easier to hear stepping with such a wide range of pitch.

I will say this. It is not as consistently noticeable when bending slowly! That's why if you listen to my Soundcloud clip, I am bending fairly quickly most of the time, as it is much easier to replicate the thin coat of paint (I mean, the stepping sound) :p

 
Posted : 25/09/2020 11:29 am
Darryl
Posts: 788
Prominent Member
 

@BM I don't expect anything to change at this point, I am just wondering if you know whether or not the pitchbend issue is not longer being looked at? I'll be happy with what I have, as it is not a deal breaker for me. It would just be good to know either way...

 
Posted : 25/09/2020 11:56 am
Posts: 0
New Member
 

Are you referring to Soundcloud audio clip that I have posted showing the difference between the DX7II and the Montage? If so, that is quite interesting, because I hear it as plain as day, and if you don't hear it, maybe there's something wrong with my ears!? :p

Yeah, that clip. When I listened to it I was like "This first part must be the Montage; I can hear some stepping" but then I read the description and it was the other way around.

I'm still quite novice overall for musicianship, and have my fair share of quirks, so it very well could just be me. 🙂 Does make me wonder what percentage of people can tell the difference under an ABX test though.

I would find it weird for Yamaha to increase the resolution but not increase it to the hardware's limits, so I would guess this is all it will be.

 
Posted : 25/09/2020 1:14 pm
Jason
Posts: 7963
Illustrious Member
 

The slow approach is to quantify what the pitch (perhaps in cents = 100th of a 1/2 step) is presented by each MIDI value. This places one bookend on the behavior. I did this with the older firmware a while back and was able to plot MIDI values vs. frequency for each bend value as a static value.

Somewhere along the way of this topic - I also mentioned the other dimension of this problem is sampling frequency of the controller. We may get 3,000 bits of accuracy which would require aliens or gods to hear the difference between even a series of pitchbend values vs. pitch change. But if the controller is only sampled once a second - then this accuracy is lost because sampling the pitchbend position only happens at moments with lots of "dead time" where you can wiggle the PB wheel back and forth many times. This is an aliasing problem. So I say that's another thing that needs to be looked at - how often the value of the PB is collected and pushed through to the tone generator. I ignore the MIDI bus (for outgoing external control) - because that has its own limitations and sampling fast may saturate the MIDI bus. The internal bus MIGHT be a bigger/faster pipe and less constrained by flooding caused by high(er) frequency controller sampling.

This controller sampling frequency issue is presented by moving the controller fast and seeing how many pitches can be counted. The easy way is to rely on MIDI - but one would hope that MIDI is a secondary reflection of a "better" internal bus. Still, we can't look inside the black box - so the first thing to look at is the MIDI bus to quantify how many pitch bend values are there and if they are consecutive (smooth) or have gaps. If there are gaps - then one can (perhaps) infer that even the internal representation of the pitch wheel has gaps and the problem is more around "how often does the keyboard check in to ask where the pitch bend wheel is at".

Note that it's not technically the number of bits that flood the MIDI bus. It's really how often you sample the controller to gain time-domain precision. You do need both in order to get a more analog kind of response. Still, at least for external representation, the MIDI 1.0 bus is problematic due to it's constraints on data rate.

 
Posted : 25/09/2020 4:10 pm
 Phil
Posts: 0
Active Member
 

A TEMPORARY WORKAROUND FOR PITCH BEND STEPPING

I was surprised but not shocked to discover just how stepped or quantized the pitch bend is on the Montage when a larger range is selected. After setting mine to a two octave range up and down and slowly moving the the PB wheel, I realized that the correlation between the limited number of MIDI PB values, especially from center to min or max, and the large jumps in pitch makes sense. It also explains the zipper sound that many MIDI keyboards have exhibited over the last 40 years. But I also felt like there must be a workaround until such time as Yamaha fixes the problem in software, since we know there are other companies who have fixed this long-standing issue in their some of their newer keyboards.

I started thinking about smoothing interpolation algorithms of quantized digital audio waveforms, and wondered if one could use the extensive control parameter matrices of the Montage to interpolate smaller pitch changes between PB values. Even though PB MIDI commands would still be limited to outputting 128 values, several ganged control processors with different curves and ratios could smooth the changes.

I noticed that a pitch bend range of a major 2nd (whole step) seems to be pretty smooth, and not exhibit zipper noise when the wheel is moved quickly. So, I reset the Performance Common pitch bend range to +-0, then started setting up multiple Control Processors with PB wheel as the source, Part Pitch as the Destination, starting with a Linear Curve, and set the first processor module to the maximum ratio that didn't exhibit a sudden change in pitch between PB steps.

My theory is that if you set up several Processors each one with a smaller ratio, as long as you don't exceed a value that introduces a sudden pitch change, you can set up as many Control Processors as Montage allows to improve PB resolution by introducing interpolated fractional values. The same number of PB incoming MIDI values will produce a more refined change in output value than possible with the normal Part Pitch Bend range settings. Using different response curves might offer even more refinement.

Now, I'm not saying you can ever get to a full two octave range, because you're forever approaching max value with smaller and smaller fractional values. But it did allow me a larger PB range than a whole step without introducing PB stepping.

Next, I plan to experiment with different response curves for each processor, thinking that the ear may be most sensitive to sudden pitch change at the beginning or ending of the rise or fall of the glide, and by changing the curve of certain ratios, more or less pitch change could be produced at different stages of the PB wheel travel.

Let me know if any of you have success with this. One thing you will have to be aware of is that using this approach means that your PB wheel's centered (bipolar) value or zero value (if using a unipolar curve) will bias your pitch of the Part according to the ratio you've set, so you will have to tune the part itself to be in tune with A440. It's a pain, but you wouldn't want to hear it without fixing the out of tuneness!

Good luck! Have fun experiementing.

 
Posted : 27/09/2020 6:13 pm
Page 6 / 6
Share:

© 2024 Yamaha Corporation of America and Yamaha Corporation. All rights reserved.    Terms of Use | Privacy Policy | Contact Us