Skip to main content
Topic: Pitch bending (Portamento controller65 support) (Read 13037 times) previous topic - next topic

Pitch bending (Portamento controller65 support)

Is there a way to extend the range of the pitch bending values/range?  I've been reading some info. on midi controllers and it seems you can by adjusting the Registered Parameter Number (RPN)
http://home.roadrunner.com/~jgglatt/tech/midispec/rpn.htm

If anyone knows any tricks on extending the range of pitch bending, please enlighten me!

Re: Pitch bending (increase value range)

Reply #1
Have you looked at gliss.nwc, found in nwc-scriptorium.org?  An octave jump is created by having a part fade in, go up four semitones, and fade out while another hidden staff is sliding during the first stave's fade, leapfrogging.  You will need to check out the hidden staves to see how it works.
Since 1998

Re: Pitch bending (increase value range)

Reply #2
Yeah, it works, but it's a pain...  Long ago I asked for better MPC controls just so this could be addressed - maybe one day...
I plays 'Bones, crumpets, coronets, floosgals, youfonymums 'n tubies.

Re: Pitch bending (increase value range)

Reply #3
You said it.
To set the pitch bend range you must use the RPN 101 (coarse) and/or 100 (fine).

The coarse adjustment (usually set via Data Entry 6) sets the range in semitones.
The fine adjustment (usually set via Data Entry 38) set the range in cents.

For example, to adjust the pitch wheel range to go up/down 2 semitones and 4 cents:

B0 65 00  Controller/chan 0, RPN coarse (101), Pitch Bend Range
B0 64 00  Controller/chan 0, RPN fine (100), Pitch Bend Range
B0 06 02  Controller/chan 0, Data Entry coarse, +/- 2 semitones
B0 26 04  Controller/chan 0, Data Entry fine, +/- 4 cents

I made some experiments long ago but, having extended the range a lot, the resolution of my pitch bend control was too "grainy".

(Edit: Oops! I just opened the link you provided and I discovered that the document is exactly the same I have.)

Re: Pitch bending (increase value range)

Reply #4
I made some experiments long ago
IMO, you should not create the impression that the experiments can currently be conducted with NWC.

Years ago, some SoundBlaster cards powered up with Pitch Bend Sensitivity enabled. Sending:
Quote
|MPC|Controller:datamsb|Pt1:0,32
would extend the Pitch Bend Range. (32 is just an example)

For some other cards, this method would work:
Quote from: http://www.philrees.co.uk/nrpnq.htm
If the active parameter number is left open, and the equipment is not turned off, a parameter could remain set for years! A rogue Data Entry message on the corresponding channel could then cause unintended changes.
This was widely seen as a security flaw. IIRC, a Win98 update plugged the hole, rendering the hack inoperable even for the SoundBlaster cards.
Edit: Maybe it got unplugged. See my later post.


The last change to Multi-point Controller Properties was 12 years ago in NWC 1.70:
Quote from: http://www.noteworthysoftware.com/composer/wishtrue.htm
Wishes granted in NoteWorthy Composer Version 1.70 (plus web updates):
  • More access to midi controllers
This expanded the list of '|MPC|Controller:' options from 5 to 18

Long ago I asked for better MPC controls
As have I.
Registered user since 1996

Re: Pitch bending (increase value range)

Reply #5
Quote
IMO, you should not create the impression that the experiments can currently be conducted with NWC.

Yup!
But I HAD the impression that I made the experiments with NWC!
Now that I look at it, it seems impossible.
Sorry.

Quote
Long ago I asked for better MPC controls

Me too.

And I'll find useful even some GM/GM2 SysEx, at least "GM/GM2 system on".

Re: Pitch bending (increase value range)

Reply #6
If anyone knows any tricks on extending the range of pitch bending, please enlighten me!
This works on my WinXP box. YMMV
Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.5,Single)
|Instrument|Name:"Flute"|Patch:73|Pos:12
|MPC|Controller:datamsb|Pt1:0,32|Pos:9
|MPC|Controller:pitch|Style:Linear Sweep|TimeRes:Whole|SweepRes:32|Pt1:0,0|Pt2:1,16383|Pos:6
|Note|Dur:Whole,Tenuto|Pos:0
!NoteWorthyComposerClip-End
You may need to press F6 a couple times.
Registered user since 1996

Re: Pitch bending (increase value range)

Reply #7
By chance, the pitch bend controller range is the number 0...

Re: Pitch bending (increase value range)

Reply #8

It Did !

Didn't work for me - however, it started me experimenting and this :

Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.5,Single)
|Clef|Type:Treble
|Instrument|Name:"Flute"|Patch:73|Trans:0|DynVel:10,30,45,60,75,92,108,127|Pos:12
|MPC|Controller:pitch|Style:Linear Sweep|TimeRes:Whole|SweepRes:32|Pt1:0,0|Pt2:1,16383|Pos:6
|Text|Text:"STD MAX BEND"|Font:StaffItalic|Pos:-17
|Note|Dur:Whole,Tenuto|Pos:0
|MPC|Controller:pitch|Style:Absolute|TimeRes:Quarter|SweepRes:32|Pt1:0,8192|Pos:3|Wide:Y
|Note|Dur:4th|Pos:0|Opts:Stem=Down
|Note|Dur:4th|Pos:#1|Opts:Stem=Down
|Bar
|Text|Text:"ENHANCED MAX BEND"|Font:StaffItalic|Pos:-20
|MPC|Controller:pitch|Style:Linear Sweep|TimeRes:Whole|SweepRes:32|Pt1:0,0|Pt2:1,32767|Pos:6
|Note|Dur:Whole,Tenuto|Pos:0
|MPC|Controller:pitch|Style:Absolute|TimeRes:Quarter|SweepRes:32|Pt1:0,8192|Pos:0|Wide:Y
|Note|Dur:4th|Pos:0|Opts:Stem=Down
|Note|Dur:4th|Pos:3|Opts:Stem=Down
|Bar
!NoteWorthyComposerClip-End
seems to double the range of the pitch bend for me.

The first measure is the standard range, the second measure (for me) seems to double the standard range.
YMMV   !!!!

Rich.



Re: Pitch bending (increase value range)

Reply #11
Of course, now the question is: Is this because of a different sound card, or a different Windows version?
My sound system is a plain vanilla onboard synth using standard Microsoft WinXP drivers and Roland's gm.dls
Running:
Quote
control mmsys.cpl,,2
Yields:
Sound playback: SoundMax Digital Audio
MIDI music playback: Microsoft GS Wavetable SW Synth

I expect a report from Lawrie on his setup.
Registered user since 1996

Re: Pitch bending (increase value range)

Reply #12
I have a standard Vanilla Win 7 64 bit machine using standard inbuilt audio.

But....

Here's an oddity.

If I change to VST and play using softsynth (using Merlin Vienna), then with your One Note Samba, I get
4 B flats, 5 G flats and then the descending scale.

With my extended pitch bend, I get the standard pitch bend (as before) but then instead of one enhanced slide. I get two standard slides where the note reverts back to the first pitch half way through the alloted time.
Rich.

Re: Pitch bending (increase value range)

Reply #13
Everywhere I google, Pitch Bend is described as a 14bit parameter, but the MIDI spec allows a 15bit parameter.

Signed 14bit is -8192 to 8191. NWC enforces this in the user interface. This gets translated to unsigned (zero to 16383) in nwctxt. NWC's nwctxt parser allows zero to 32767 (unsigned 15bit) and outputs it.
Microsoft's softsynth supports 15bit and extends its range accordingly, resulting in an 8 half-step total range.

If I change to VST and play using softsynth (using Merlin Vienna), then with your One Note Samba, I get
4 B flats, 5 G flats and then the descending scale.

Looks like somewhere in the VST->softsynth chain, the General MIDI spec is being taken seriously:
Quote from: http://home.roadrunner.com/~jgglatt/tech/midispec/wheel.htm
The GM spec recommends that MIDI devices default to using the entire range of possible Pitch Wheel message values (ie, 0x0000 to 0x3FFF) as +/- 2 half steps transposition (ie, 4 half-steps total range).
0x3FFF is 16383 decimal
Registered user since 1996

Re: Pitch bending (increase value range)

Reply #14
Have you looked at gliss.nwc, found in nwc-scriptorium.org?  An octave jump is created by having a part fade in, go up four semitones, and fade out while another hidden staff is sliding during the first stave's fade, leapfrogging.  You will need to check out the hidden staves to see how it works.

Wow, I'm amazed and confused at the sametime.  He didn't even need to use notation properties?  In addition, the entire bar is on mute.  How do you see hidden staffs?

Re: Pitch bending (increase value range)

Reply #15

In the case of the Gliss.nwc file you are looking at,  click on Page setup and then go to the contents tab.
Put a checkmark in the box by "Hidden"

Rich.

Re: Pitch bending (increase value range)

Reply #16
Looks like somewhere in the VST->softsynth chain, the General MIDI spec is being taken seriously:0x3FFF is 16383 decimal


Hmmm, this has been a very interesting series of posts.
It occurs to me that after all these years (yes years) that people have been asking for pitch bends that are greater than 4 semitones, the fact is that the only way of doing it is either by using Data Entry MSB or by forcing an illegal  values using the nwctxt parser. 
Neither of these methods are guaranteed to work, depending on the user's system and so, in effect, unless GM is re-written (not before time !), NWC users, (and other notation users) are not going to get MPC pitch bends of more than 4 semitones because it can't be guaranteed.

Is that a fair statement ?
Rich.

Re: Pitch bending (increase value range)

Reply #17
I would put it this way:

NWC (as of the Version 2.5.4 Beta) does not support RPN's (Registered Parameter Numbers).
Without RPN support, Pitch Bends on GM (General MIDI) compliant synths are limited to ±2 semitones.

NWC supports 15bit Pitch bends via cut and paste. Some synths will respond to 15bit Pitch bends by expanding their range. A -2/+4 semitone range has been reported by users.

NWC supports the 'Data Entry MSB' controller. On some synths, a 'Data Entry MSB' controller message will change the synth's Pitch Bend Range.

For what it means to be GM compliant, see: MMA General MIDI Developer Guidelines, Second Revision ( PDF, 104k )
Registered user since 1996

 

Re: Pitch bending (increase value range)

Reply #18
These 2 midis were made using Sonar4 cakewalk.  Note the "laserish" sharp synth effect in the beginning of each song.  Is that extended pitch bending down or there are some other controllers involved?  Can someone please try and duplicate that effect in NWC

Quote
NWC (as of the Version 2.5.4 Beta) does not support RPN's (Registered Parameter Numbers).
Without RPN support, Pitch Bends on GM (General MIDI) compliant synths are limited to ±2 semitones.

I get it now.  This is exclusively a XG effect.   The author of these two midis kept telling me it's the Portamento Controller for XG.  So the question is now this: does NWC support XG controllers?  

*Update*
According to http://www.heikoplate.de/mambo/index.php?option=com_content&task=view&id=427&Itemid=63
Quote
"Portamento Time<

Number: 5 (coarse)

Portamento means a sliding effect between two different, slightly overlapping notes. The portamento controller event sets the rate at which portamento slides the pitch. The effect has to be switched on by the controller event number 65 (Portamento) before.

The example "portamento_time.mid" sets the effect to the values 0, 32, 64, 96 and 124. respectively.

The controller number 37 is reserved for a fine portamento time adjustment, but the PSR-8000 ignores this. "

Quote
Portamento

Number: 65

Wether the portamento effect is on (parameter value 64 - 127) or off (0 - 63). This effect is used to activate and deactivate the portamento time controller, which is set by the controller event number 5, look at this section.

This must mean that the controller#65 must be switched on before the PortamentoTime #5 would do anything.  Is there a way to manually select a controller number and set its value?

Re: Pitch bending (increase value range)

Reply #19
I expect a report from Lawrie on his setup.
My mileage varied... :(
The Yamaha softtsynth did not give me anything different...  Still the same 4 semitones as always.

It's only been a quick test as I haven't had time for anything else - I admit over the years I've pretty much given up on this :/
I plays 'Bones, crumpets, coronets, floosgals, youfonymums 'n tubies.

Re: Pitch bending (increase value range)

Reply #20
These 2 midis were made using Sonar4 cakewalk.  Note the "laserish" sharp synth effect in the beginning of each song.  Is that extended pitch bending down or there are some other controllers involved?  Can someone please try and duplicate that effect in NWC
The smaller one starts off with 6 System Exclusive messages and uses controller 65.
NWC supports neither.
The larger one (with the filthy track names) uses RPN's to set the Pitch Bend Range to 12.
NWC does not support RPN's

I get it now.  This is exclusively a XG effect.
Perhaps. Perhaps not. XG synths must support controller 65. Non XG may support controller 65.
Registered user since 1996

Re: Pitch bending (increase value range)

Reply #21
It's not really that NWC doesn't "supports" the controller 65.  It just doesn't have it available for users to select in the notation properties menu.  A simple solution would be to add a custom controller option and let users define that controller. 

an example would be "MPC|Controller:#65|Pt1:127,32|Pos:9."

Re: Pitch bending (increase value range)

Reply #22
Absolutely correct!
User definable controllers in the MPC dialogue would allow for Portamento (CC65),extended Pitch Bend (CCs 100, 101) and many other useful controllers like CC121 (Reset All Controllers).

Here is an example of a Pitch Bend of 2 octave range in a MIDI file of mine..
(Trumpet in the concluding measures)
http://dl.dropbox.com/u/3449356/Fallout.mp3
Had to be done in a sequencer - couldn't be done in NWC.

Barry Graham
Melbourne, Australia

Re: Pitch bending (increase value range)

Reply #23
an example would be "MPC|Controller:#65|Pt1:127,32|Pos:9."
I agree and have made a similar suggestion years ago. IMO, this could be a "paste it in" option that would not require a change to the User Interface.
Registered user since 1996

Re: Pitch bending (increase value range)

Reply #24
Absolutely correct!
User definable controllers in the MPC dialogue would allow for Portamento (CC65),extended Pitch Bend (CCs 100, 101) and many other useful controllers like CC121 (Reset All Controllers).

Here is an example of a Pitch Bend of 2 octave range in a MIDI file of mine..
(Trumpet in the concluding measures)
http://dl.dropbox.com/u/3449356/Fallout.mp3
Had to be done in a sequencer - couldn't be done in NWC.

Barry Graham
Melbourne, Australia

What sequencer did you use, Barry.

Re: Pitch bending (Portamento controller65 support)

Reply #25
Quote
What sequencer did you use, Barry.
A very old version of Cakewalk (Version 3.00)
The last of the "MIDI Only" versions.
Velocity variation on every note.
Swing quantize for Jazz and Swing.
and access to ALL controllers.


Barry Graham
Melbourne, Australia
Soundcard - Extreme Gamer X-Fi
Soundfont - Chaos 8MB.