Jump to content

pitch bend wheel +2 / -12


 Share

Recommended Posts

Looking at: http://static.kvraudio.com/i/b/imposcar.jpg

You see the top row of knobs, and you see "BEND". It's only got a single knob, so it's either -2/+2 or -12/+12. This is a parameter that depends entirely on the synthesizer you're dealing with; it is not a system-wide setting and not all synthesizers have it as a possibility.

Instead of using the bender, consider portamento, or duplicate the track, set the pitch bending to -12/+12 (if the other track has it set at -2/+2) and play the specific parts that you need with that track.

Link to comment
Share on other sites

My keyboard lets me set min/max values, so you may be able to set the synth pitch bend to 12+/- then set the max value to what it needs to be for only 2+, that would probably make it so that moving it a milimeter would max it out, but if it works it would only be 2+. It might just end up centering the range, then you'd have something like 7+/-. Hope it works though.

Link to comment
Share on other sites

I also don't see how applying that level of math would help in any way, You only want to extend the range, and (presumably), have even changes (so moving the wheel halfway between 0 and +12 is +6). Not sure what advanced math buys you here, other than an attempt to impress people who have or will get grad degrees in engineering and computer sciences (there are at least two who posted in this thread).

Simple is usually better :P

Link to comment
Share on other sites

I also don't see how applying that level of math would help in any way, You only want to extend the range, and (presumably), have even changes (so moving the wheel halfway between 0 and +12 is +6). Not sure what advanced math buys you here, other than an attempt to impress people who have or will get grad degrees in engineering and computer sciences (there are at least two who posted in this thread).

Simple is usually better :P

I think you've misunderstood what he wants to achieve.

He wants his pitch wheel to go one octave down when he moves it from the center-position to the lowest position, and only two semitones up when he moves it from center-position to the highest position. In other words, he does not want even changes between the highest and lowest positions of the pitch wheel.

However, I still agree that there is no need for advanced maths here. Simple fractions and conditionals will do.

There are two ways to do this. One is to fill the exact pitch-range of 14 semitones (12 down, 2 up) or to use part of a 24 semitone span (12 down, 12 up). For the sake of learning as much as possible, I'm going to do it the most difficult way first. For those who just want a simple answer to what to do, skip to the end of the second way, and you'll find a formula to paste into FL.

First way!

First off, since a span of -12 to +2 is desired, one needs a total range of 14 semitones. Since FL specifies these using only one variable which describes semitones up/down, you would have to instruct FL to pitch-bend from -7 to +7. This can be done by changing the number next to the pitch-knob to 7.

At that point, you will have gained if nothing else, the desired range. The rest can be done with the formula-editor of FL. Simply right-click the pitch-knob and select "Link to controller..." to get to the Remote control settings.

What you know is that you want it to distribute the twelve first semitones over the first 0.5 values of input, and the final two over the input span from 0.5 to 1. The formula editor provides you with pretty much everything you need, without the need for estimates using taylor/fourier series.

For the first half of the input, you want it to go from 0 to 12/14. This can be done using the IfL(a,B)-function, which equals 1 when a is less than b. As such, to leave the pitch-bend null and void from 0.5 and up, all you'd have to do is change the formula from Input to IfL(Input,0.5)*Input. Now you'll have a graph that goes halfway up, and then drops to zero again. Then you translate these values to the desired pitch-range, and end up with the following formula for pitch-bending one octave down:

(IfL(Input,0.5)*input*24/14)

Now all you have to do is do the same for the two semitones up, using IfGE(a,B), which equals 1 when a is greater than or equal to b. (Using this instead of IfG(a,B) ensures that it doesn't go one octave down when the pitch-wheel is centered). You then distribute those values over the two semitones up, and you add the two together.

(IfL(Input,0.5)*input*24/14) + (IfGE(Input,0.5)*((Input-0.5)*2/14)+(IfGE(Input,0.5)*12/14))

Now, since FL wasn't designed to pitch-bend with non-equal range up and down, you're left with an offset in pitch.

When we line up the various pitch-alterations, we get the following two sets of semitones.


FL -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7
You -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2
*

So when we want the pitch-bend to remain neutral (no change in pitch), it's actually going five semitones up. Of course, by right-clicking the note 5 semitones up on the piano-roll (ie: the F above your C), you correct this offset, and you now have the desired range behaving the way you were hoping.

Second way!

The second way removes the need for the offset in notes by creating the entire span of 12 notes in each direction, and then only using part of it.

First, set the number of semitones you want to bend with to 12 in the box next to the pitch-knob. Since the first half is already correct, you can start out by setting the formula to IfL(Input,0.5)*Input. Now you just need to make sure it doesn't go beyond two semitones up. This can be done by simple math, since you know that you want it to occupy an area of 2 semitones, starting halfway up. At this point, you're all probably very tired of thinking and just want the results, so I'm just going to copypaste the formula here:

(IfL(Input,0.5)*Input) + ((IfGE(Input,0.5)*2*Input/12)+(IfGE(Input,0.5)*10/24))

Now, at the end here, a small and boring description of why this method is better than using taylor/fourier series. Taylor/Fourier-series work by using sine or cosine to create an approximation of a function. This is the foundation for the fourier transform, which is used rather frequently in many of the VSTs we all know and love. However, to get a close approximation of even just a simple linear function, like the standard pitch-bend from -2 to +2, you need an awful lot of sinewave-components, and you're still going to get errors, and when you're going to use it with a pitch-wheel... well, you want to do the pitch-bend thing, you don't want it to sound like an LFO ate your pitch. Taylor/Fourier series are also subject to a lot of errors near edges, like the end-points of a saw-wave (discontinuous functions), and that is likely to appear also with the approximation in this case.

Link to comment
Share on other sites

wow that was way simpler and works better than my sin approximation

I feel like a total idiot now lol

In case any of you were wondering what a fourier series is, it is a taylor series (approximation series) using sinusoidal waves (fancy name for sine waves)

As you can see, the very ends of the graph are less accurate than the middle parts. This is known as the gibbs phenomenon. This happens when approximating square waves too. Can cause clipping even when the square wave is supposed to be not clipping because these series are only accurate at infinite sums of sine waves, not just 50 of them. (see sytrus in FL studio for some gibbs phenomenon stuff)

Here is a picture demonstrating how a -12/+2 can be approximated. I feel like a total idiot now lol. I guess I should have done it the easy way first, but I wanted to use some fourier math.

untitled-4.jpg

edit : here is an example of a non infinite series of sine waves (or overtones) approximating a square wave. Notice how the actual amplitude is slightly different. The approximation I believe is exact (I could be wrong) at infinite sums of sine waves. Shown in the picture is 50 sine waves or 50 overtones.

untitled-5.jpg

edit: also as a side note, the ear is like a fourier transform (splits a wave into its sine components) because the ear gradually gets narrower and narrower. However far the wave makes it is how high it is in hz or pitch

Link to comment
Share on other sites

Excellent work Dragonlord. Fl all the way. We have the peak controller, keyboard controller, and formula controller. Three extremely useful FL only plugins. I am guessing no other daw has something like the keyboard controller. That thing is so useful. If only amplitude 2 worked.... Must... Travel... Into.... Future.... Get... Guitar... Rig.... 10.... Compatible.... With.... Intel.... Quantum Core.....

Link to comment
Share on other sites

I think you've misunderstood what he wants to achieve.

He wants his pitch wheel to go one octave down when he moves it from the center-position to the lowest position, and only two semitones up when he moves it from center-position to the highest position. In other words, he does not want even changes between the highest and lowest positions of the pitch wheel.

No, I did understand what he wanted, I just didn't say it clearly enough. He wanted even changes from the center position to the lowest position, and evne changes from the center position to the highest position, but at different scales. I just suggested the hardware solution first, which, if your hardware supports it, would be easy.

To the OP, for all that I was poking fun at you earlier, I am impressed with the fourier solution. Very, very nerdy, but I'm not one to talk :P

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...