PDA

View Full Version : Pitch Glide


jim
09-17-2009, 08:07 PM
Here's a preview of the Pitch Glide feature coming in Numerology 2.2:

http://www.youtube.com/watch?v=XkPE-pqD5pA

It works like this: There is a new set of sequencing controls in the MonoNote that allow you to set the "glide time" for each step. If the glide time is greater than 0, then pitch bend is applied to some portion of the end of the step in the direction of the following step. At a glide time of 0.5, the step plays its normal pitch for half of the note, then glides for the last half of the note. At a glide time of 1.0, the pitch bends for the entire note. Everything is calibrated for a pitch bend range of +/- 12 semitones, so you have to set the synth to match. I also plan to add an 'auto' mode so that only legato notes are bent, and an 'off' mode to make it easy to shut it off with one click.

Cheers,
Jim

Per Boysen
09-18-2009, 04:06 AM
Does it send out MIDI Pitch Bend events to the instrument? I guess it is also important how you set the instrument's Pitch Bend Range?

jim
09-18-2009, 11:27 AM
Yes, that's how it works. The bend range of the target instrument ideally should match the bend range expected by the sequencer, which is currently set to +/- 12 semitones -- which seems to be the maximum supported by most synthesizers. However, I do plan to make that range adjustable.

Jim

jonmoore
09-20-2009, 09:39 AM
This looks really cool Jim and really easy to use.

Is there currently any way or is there any plan to enable gate times to overlap. Many virtual instruments especially 303 emulations will glide if two notes overlap. Am I overlooking something in the current implementation. Tie works if notes remain the same but if you tie two differing notes together you don't get a glide.

Cheers

JM

jim
09-20-2009, 10:34 AM
Send me an AU that demonstrates that behavior. If two notes are tied and are different pitches, and legato mode is on, the new note on is sent before the note off for the previous note.

Cheers,
Jim

Sjoerd
09-20-2009, 12:41 PM
Awesome, Jim!

Can you please accommodate a maximum range of at least -/+ 60 semitones? (Btw, just a note: my JX-8P unfortunately only supports a maximum of -/+ 7 semitones. I haven't come across any other synths with such a limited maximum pitch bend range though.)

Also, for some instruments (such as e.g. the Roland W-30; I remember writing a script for it long ago that also generated glides, albeit not in realtime), the pitch bend range can be adjusted remotely using MIDI CC# 6 and 38 (with RPN). Admittedly, it may not be widely usable and relatively complex to set up properly, but it would be cool if this could be used to automatically adjust the instruments' pitch bend range when one adjusts it in N2 (once that feature is implemented).

I did also notice that in the demo video, all glides between two notes either start or end at 'U' (unity, zero). I am wondering what would happen if you have two adjacent notes with an interval between them greater than half the pitch bend range. For example, going from -6 to +12. Ideally, it should play the first note with the pitch bender already halfway down before it starts to play the first note, but with the note number offset by +6 (i.e.: interval 0 instead of -6), and then start to glide up at the proper moment (depending on the Glide value) all the way to +12 (thus, through 0). This implies, of course, that the glide algorithm should look ahead to the next note even before it starts playing the current one (in order to know whether it should offset the note number and pitch bend value accordingly).

jim
09-21-2009, 01:11 AM
Awesome, Jim!

Can you please accommodate a maximum range of at least -/+ 60 semitones? (Btw, just a note: my JX-8P unfortunately only supports a maximum of -/+ 7 semitones. I haven't come across any other synths with such a limited maximum pitch bend range though.)

I'll probably make it a suitably wide range, though I've never seen anything that can do better than +/- 24 semitones.

Also, for some instruments (such as e.g. the Roland W-30; I remember writing a script for it long ago that also generated glides, albeit not in realtime), the pitch bend range can be adjusted remotely using MIDI CC# 6 and 38 (with RPN). Admittedly, it may not be widely usable and relatively complex to set up properly, but it would be cool if this could be used to automatically adjust the instruments' pitch bend range when one adjusts it in N2 (once that feature is implemented).

Well, I can send it out, but as you mention, many destinations, particularly AU's, may not know what to do with it.

I did also notice that in the demo video, all glides between two notes either start or end at 'U' (unity, zero). I am wondering what would happen if you have two adjacent notes with an interval between them greater than half the pitch bend range. For example, going from -6 to +12. Ideally, it should play the first note with the pitch bender already halfway down before it starts to play the first note, but with the note number offset by +6 (i.e.: interval 0 instead of -6), and then start to glide up at the proper moment (depending on the Glide value) all the way to +12 (thus, through 0). This implies, of course, that the glide algorithm should look ahead to the next note even before it starts playing the current one (in order to know whether it should offset the note number and pitch bend value accordingly).

A valid point. Currently the pitch will bend as much as it can towards the following note. The sequence does know what the next step will be when it starts the current step, so some early compensation like that may be possible, but I want to finish some other details first.

Cheers,
Jim

jonmoore
09-21-2009, 06:05 PM
Send me an AU that demonstrates that behavior. If two notes are tied and are different pitches, and legato mode is on, the new note on is sent before the note off for the previous note.

Cheers,
Jim

Thanks for putting straight on this. I was using the Devilfish 303 emulation from SonicCouture but I didn't have the correct glide settings within the Ableton macro. All works perfectly as you described.

Thanks

J