Jump to content

Hyper editor: Pitch bend values to notes.


musicguy7

Recommended Posts

So I have a software synth track (sub boom bass) with it's pitch bend activated to 24 both ways (2 octaves up and down). I open hyper editor on some midi data in logic, and have a D2 note which I want to pitch bend down to a B flat 2 (this is just an example that will hopefully help me with the rest if solved), so as I understand the drawing a bar at 64 = the actual D2 note, now I know 32 is D1, but I was wondering how do I determine what the notes in between are in terms of the pitch bend values? Do you take 32 and divide by 12 then multiply by how many semitones the interval is and subtract?? Wouldn't that get into decimals and not give me an exact pitch? Is there some chart that tells me exactly what I'm looking for here? So going by my assumption, 64-32 = 32, one octave, then 32/12 notes = 2.67, 2.67 times 4 (4 semitones between D2 and Bflat2) = 10.68 then 64-10.68 = 53.32? do i draw the bar from 64 gradually to 53 or 54 to get the bass pitch bend effect from a D to B flat??? Is there a way to get the resulting note exact when using pitch bends?
Link to comment
Share on other sites

There are no charts for this kind of thing. Even if there were, every synth is going to respond differently so any chart would only be applicable to the synth it was derived from.

 

Sure, you can start with trying some math, but there's no guarantee that the number will work out. Even if they got you close, you might not end up with a perfect Bb no matter what you do. Suggest that the easiest approach is by trial and error.

 

You haven't said which synth you're using, but there may be a way to approach this to get entirely predictable results and perfect pitches in the process. Which one are you using?

Link to comment
Share on other sites

I have developed a formula some time ago - you can try it:

 

14-bit Formula (the 14-bit value is shown as Lenth/Info in the Event List or in the Event float)

 

8192 : PB range x Transp value =

 

Where 8192 is half way PB ranging,

PB range is the custom range amount you set in the synth,

Transp value is the amount (in cents) 1, 2 , 3 etc or cents & semi 1.5, 2.4 etc

 

Example: To bend up use the formula result with "+" values ! To bend down use the formula result with "-" values!

 

8-bit Formula

 

To bend down 64 - (64 : PB range x Transp value)=

or

To bend up 64 + (64 : PB range x Transp value)=

 

Where 64 is half way ranging,

PB range is the custom range amount you set in the synth,

Transp value is the amount (in cents) 1, 2 , 3 etc or cents & semi 1.5, 2.4 etc

 

Examples:

 

In example 1 below I show your scenario.

 

Example 1

Conditions

PB range = 24

Target Transposition = - 4 cents

--------------------------------------------------

 

8192 : 24 x 4 = 1365.3 (close it to1365, regarding the 0.5 mid factor)

So you have to draw - 1365.3 in the Event list (length) column.

or

64 - (64 : 5 x 4) =53.4 (closed it to 53, regarding the 0.5 mid factor).

So you have to draw - 53 in the Hyper draw or event list (val) column.

=============================

 

Example 2. This example is more complicated cause I have set the synth bender range to 5 !

Conditions

PB range = 5

Target Transposition = 4 cents

--------------------------------------------------

 

8192 : 5 x 4 = 6553.6 (close it to 6554, regarding the 0.5 mid factor)

or

to bend down

64 - (64 : 5 x 4) =12.8 (closed to 13, regarding the 0.5 mid factor).

 

============================

 

Example 3. This is the most complicated cause I have set the synth bender range to 5 and I want to calculate some Semi value to use as Ethnic scale note for instance !

Conditions

PB range = 7

Target Semi Transposition = 1.5 cents (here I want to set some Arabic scale note where I need to bend down the second note of the scale with 0.5...

--------------------------------------------------

 

8192 : 7 x 1.5 = 1755.42 (close it to 1755, regarding the 0.5 mid factor)

or

64 + (64 : 7 x 1.5) =77.7 (closed to 78, regarding the 0.5 mid factor).

 

BTW. I have developed an Environment "Scaler" tool which can make these calculations in real time so you can create custom scale (presets) and recall them in real time using Program Change or Key Switch messages. There is a special "Bender range" box and midi I/O settings so you can store the Bender range (condition) for each preset as well the ch I/O so you can tweak between different preloaded instruments which use different "bend range" settings. As you see it is a Monophonic midi tool cause is based on PB. I could fix this limitation by developing another tool named "Polyphonic Channelizer" which can be cabled after the "Scaler" tool in the environment. The idea is - you load a few instances with the same instrument patch and set each instance to different midi channel. In this scenario the "Polyphonic Channelizer" will demix the incoming polyphony + the PB scales sent from the scaler to different instrument instances which allows polyphonic play. This is just as info...

Edited by Audiogrocery
Link to comment
Share on other sites

MIDI Pitch Bend data provide a total of 14 bits for the bend value which means there are 16384 steps from all the way up to all the way down. As ski wrote you can never be sure how the synthesizer deals with these data (I have some insight what Roland's JX-3P did with them - far from being exact), but at least you can proceed on the assumption the steps should be equidistant, and modern software synthesizers are no longer limited by processor power when it comes to calculating internal pitch values.

However, Hyperdraw is not the most adequate editor to make Pitch Bend data exact when using a pitch space of four octaves. In the Event List you can tweak the signed 14-bit-number (I think -8192 to 8191). Two octaves up or down means 24 semitones which should be evenly distributed over the range of 8192 numbers - you get about 341 numerical steps for one semitone.

But try and listen.

Link to comment
Share on other sites

At the risk of repeating myself.....
Wouldn't it be easier to record while you play your bass part on the keyboard and move your pitchwheel to the desired pitch when the time comes?

 

Yes - if you had a huge pitch wheel with an exactly-working data acquisition hardware. Two octaves up or down is quite tricky to manually bend... At least that's what I think.

Link to comment
Share on other sites

I've got some out of the box thinking for you - how about automating the pitch of the oscillators?

 

Good. Now for something completely different. Have you got an out-of-the-box thinking solution of what the meaning of life might be? :D

 

The answer is 42 - everyone knows that :D

Link to comment
Share on other sites

MIDI Pitch Bend data provide a total of 14 bits for the bend value which means there are 16384 steps from all the way up to all the way down. As ski wrote you can never be sure how the synthesizer deals with these data (I have some insight what Roland's JX-3P did with them - far from being exact), but at least you can proceed on the assumption the steps should be equidistant, and modern software synthesizers are no longer limited by processor power when it comes to calculating internal pitch values.

 

However, Hyperdraw is not the most adequate editor to make Pitch Bend data exact when using a pitch space of four octaves. In the Event List you can tweak the signed 14-bit-number (I think -8192 to 8191). Two octaves up or down means 24 semitones which should be evenly distributed over the range of 8192 numbers - you get about 341 numerical steps for one semitone.

But try and listen.

 

Indeed, MIDI provides for 14 bit pitch bend messages, created by pairs of 7-bit messages of coarse and fine value (MSB and LSB). In between each MSB value there can be up to 128 LSB "fine" values. But there's a catch...

 

1) most MIDI controllers don't detect or transmit anything close to the 16384 values that the MIDI spec provides for. In fact, many controllers only transmit 128 pitch bend messages over the full throw of the bender.

 

2) even if a controller was able to output all 16384 values, most MIDI destinations (MIDI hardware and plugins) aren't able to respond to them all. To put it another way, most MIDI instrument will ignore most of the "fine" values (LSB's).

 

3) To amplify what Jope said about regarding hyperdraw... Logic in general isn't set up to handle (or generate) pitchbend messages that include more than one LSB value. You can test this for yourself by using Hyperdraw and penciling in a pitchbend sweep from low through center to high. Then look at the event list and you'll see just how coarse the resolution is.

Edited by ski
Link to comment
Share on other sites

1) most MIDI controllers don't detect or transmit anything close to the 16384 values that the MIDI spec provides for. In fact, many controllers only transmit 128 pitch bend messages over the full throw of the bender.

 

2) even if a controller was able to output all 16384 values, most MIDI destinations (MIDI hardware and plugins) aren't able to respond to them all. To put it another way, most MIDI instrument will ignore most of the "fine" values (LSB's).

 

Just to bore the audience a little more with my expert knowledge about few details...

I think any bit more than seven is important within a large Pitch Bend range. The abovementioned JX-3P was a six-voice semi-analog synthesizer in the 80s which I (figuratively speaking) took apart to its very last resistor and re-assembled it and gave it some more features. It had a 10bit ADC for the fader and the Pitch wheel, and it used all the 14 bits of MIDI input for the calculation of the frequency generators' divisors. However, there was another hitch -

the translation from the Pitch Bend value to the musical scale was not exactly linear, meaning the notes heard were sometimes out of tune while the MIDI Pitch Bend values were exact. And this was because it is quite complicated to calculate real frequecies from pitch values, and the JX-3P had a slow 8bit processor for handling the data, so there were compromises and approximations being made.

Nowadays processors can perform 32bit calulations with ridiculous speed, so there is no reason why soft synths should not be exact with pitch. But if you really want to know -

 

just forget what I wrote and try and listen.

Link to comment
Share on other sites

  • 1 year later...

PitchBend.thumb.jpg.1494822a33df00df350517d1ebb38627.jpg

I have developed a formula some time ago - you can try it:

 

14-bit Formula (the 14-bit value is shown as Lenth/Info in the Event List or in the Event float)

 

8192 : PB range x Transp value =

 

Where 8192 is half way PB ranging,

PB range is the custom range amount you set in the synth,

Transp value is the amount (in cents) 1, 2 , 3 etc or cents & semi 1.5, 2.4 etc

 

Example: To bend up use the formula result with "+" values ! To bend down use the formula result with "-" values!

 

8-bit Formula

 

To bend down 64 - (64 : PB range x Transp value)=

or

To bend up 64 + (64 : PB range x Transp value)=

 

Where 64 is half way ranging,

PB range is the custom range amount you set in the synth,

Transp value is the amount (in cents) 1, 2 , 3 etc or cents & semi 1.5, 2.4 etc

 

Examples:

 

In example 1 below I show your scenario.

 

Example 1

Conditions

PB range = 24

Target Transposition = - 4 cents

--------------------------------------------------

 

8192 : 24 x 4 = 1365.3 (close it to1365, regarding the 0.5 mid factor)

So you have to draw - 1365.3 in the Event list (length) column.

or

64 - (64 : 5 x 4) =53.4 (closed it to 53, regarding the 0.5 mid factor).

So you have to draw - 53 in the Hyper draw or event list (val) column.

=============================

 

Example 2. This example is more complicated cause I have set the synth bender range to 5 !

Conditions

PB range = 5

Target Transposition = 4 cents

--------------------------------------------------

 

8192 : 5 x 4 = 6553.6 (close it to 6554, regarding the 0.5 mid factor)

or

to bend down

64 - (64 : 5 x 4) =12.8 (closed to 13, regarding the 0.5 mid factor).

 

============================

 

Example 3. This is the most complicated cause I have set the synth bender range to 5 and I want to calculate some Semi value to use as Ethnic scale note for instance !

Conditions

PB range = 7

Target Semi Transposition = 1.5 cents (here I want to set some Arabic scale note where I need to bend down the second note of the scale with 0.5...

--------------------------------------------------

 

8192 : 7 x 1.5 = 1755.42 (close it to 1755, regarding the 0.5 mid factor)

or

64 + (64 : 7 x 1.5) =77.7 (closed to 78, regarding the 0.5 mid factor).

 

BTW. I have developed an Environment "Scaler" tool which can make these calculations in real time so you can create custom scale (presets) and recall them in real time using Program Change or Key Switch messages. There is a special "Bender range" box and midi I/O settings so you can store the Bender range (condition) for each preset as well the ch I/O so you can tweak between different preloaded instruments which use different "bend range" settings. As you see it is a Monophonic midi tool cause is based on PB. I could fix this limitation by developing another tool named "Polyphonic Channelizer" which can be cabled after the "Scaler" tool in the environment. The idea is - you load a few instances with the same instrument patch and set each instance to different midi channel. In this scenario the "Polyphonic Channelizer" will demix the incoming polyphony + the PB scales sent from the scaler to different instrument instances which allows polyphonic play. This is just as info...

This is making my head spin! Is there an easier way to understand this?

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.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  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.

×
×
  • Create New...