Jump to content

Pitch Bend data points are unexpectedly interpolated


Akitru

Recommended Posts

(This duplicates most of another post (https://www.logicprohelp.com/viewtopic.php?f=42&t=117119#p801060) on a thread about an old bug, but I'm posting here for more visibility on a couple of questions.)

 

I was working with a file with MIDI tracks that contain Pitch Bend events that were correctly treated as discrete data points during playback. An excerpt of the 'correct' track is shown in this first image, with the pitch bend data and treatment appearing at the bottom of the piano roll:

803046575_PitchBendGood.thumb.png.47cb6f0f051463c7dbe12e172c091f8f.png

Correct pitch bend treatment

After doing some work on other tracks (notably recording some audio tracks), I discovered the MIDI tracks with Pitch Bend were now treating the data points as end points to be interpolated for Pitch Bend. No data points were altered... just the processing of them. This second image shows the same MIDI track with the pitch bend data incorrectly processed:

1506557258_PitchBendBad.thumb.png.8a3f63fdc639967e4fb01d50b3a80199.png

Incorrect pitch bend treatment

I have no idea what I did to cause it to shift to interpolated pitch bend. IIRC I never performed any edits on those tracks. I tried to reproduce the issue, but so far can't identify the specific action that triggers a change in pitch bend processing on those tracks.

 

QUESTIONS:

 

A. Is there any way to change a region that has switched to interpolated pitch bend back to treating them as discrete events (other than tedious addition of additional data points)? (i.e. is there some 'mode' that controls discrete vs interpolated treatment of automation?)

 

B. Does anybody have any insights into what kind of events might trigger this change in Pitch Bend treatment?

Link to comment
Share on other sites

For better or for worse, that's what the pitch bend automation area (it used to be called "Hyper Draw") does: interpolate curves between nodes a.k.a. control points. If you have two pitch bend values of different values spaced apart there is room for interpretation and that's Hyper Draw's job: to interpolate between those two points. In fact that's how you create a pitch bend slope: by entering only the start and end point for the slanted line you want. Then Hyper Draw interpolate the curve and creates all the discrete values in between in order to create the progressively increasing / decreasing pitch slope.

 

So this normally opens the instant you do something (not sure what exactly) in the pitch bend automation area (a.k.a. Hyper Draw area). Sometimes I've seen this happen just by closing and opening the area.

 

It seems though like you should be able to protect this from happening by creating an extra point just before the value change. So that instead of for example

1 1 1 1 pitchbend = 0

4 1 1 1 pitchbend = 63

 

You could have

1 1 1 1 pitchbend = 0

3 4 4 240 pitchbend = 0

4 4 4 4 pitchbend = 63

Link to comment
Share on other sites

Thanks David, that makes sense. This track was imported from an external source rather than created from within LPX. I guess the bigger mystery then is why it initially worked for quite a while without interpolation, and what it was that triggered it to start interpolating. (I didn't open the Hyper Draw area until after it had changed behavior, when I was trying to figure out why the track had suddenly started sounding like drunken portamento ;-))

 

I guess I'll just have to enter a bunch of additional data points to keep it stable through both types of treatments.

Link to comment
Share on other sites

I don't have a solution answer for you. Just some observations of my own.

 

Notice in your graphic how the original pitch bend (before it went wonky) has some corners without a dot on them?

 

xcorners.jpg.e64d5e84bd03d716916d754d9803c418.jpg

 

The dots are the actual pitch bend events in the source midi region as imported or edited.

 

I have never been able to figure out how and when LogicPro interprets midi data that way vs the second way where the angled line comes in (and thus all the interpolation).

 

It is an issue with CC also.

 

I don't even know if there is a way to change a hyper draw point to be considered one way or the other. But somehow Logic does appear to recognize things one way or the other, and handles both scenarios very differently. the open question, which I would like to know also, is how to force it one way or the other, and of course, what happened with your project where LPX was considering it the first way, even with a pretty graphic explaining that it will consider it that way...then somehow changes the status to the second way.

 

This came up with another thing I was trying to figure out a few years ago and I don't recall ever getting a satisfactory answer, but maybe I'm forgetting.

Link to comment
Share on other sites

Thanks Dewdman. See that thread link in the OP... could that be the old issue you recall? To me it sounds very similar: some kind of mysterious internal mode change between step versus interpolated treatment of automation data.

 

This is an issue for me due to importing an externally produced MIDI file, presumably with some DAW that did not interpolate between the data points. I guess I'll just have to look out for cases like this in the future and add data points if I catch it visually before I start hearing it.

Link to comment
Share on other sites

Just fooling around I notice that if I create PB events in the event list window, it creates the points in the hyper draw window with the dot-less corners, ie...not interpolated like scenario 1. If I create the events using hyper-draw they are created as interpolated.

 

before.thumb.jpg.a15a791f801a6e10e8dcc7a1a5a4836b.jpgafter.jpg.3ad4fff2fc201cd63451f3307fa0a4ba.jpg

 

If I click on one of the non-interpolated PB events in the hyper draw window. then a new PB event is inserted automatically on the corner that didn't have a dot before...you see this happen in the event list too. To it maintains the desired curve by inserting the extra events in the right away to avoid interpolation from happening.

 

Basically what I can say is that Event list can be used to create non-interpolated PB events. HyperDraw will always create interpolated events. You even click on the hyper-draw window it will try to convert to interpolated types, though it will add extra PB events to accomplish it.

 

If you later hit UNDO on that by the way, it doesn't go back to the non-interpolated scenario with a dot-less corner, it will drop back to an angled interpolated line.

 

So basically LPX is doing some automatic things here, which is not entirely predictable other then to say if you even breathe on the hyper draw window, its quite likely it will convert things to interpolated if you're not careful. I haven't come across a scenario that would convert those non-interpolated PB events you imported into the hyper draw equivalent, when you aren't actually touching the hyper draw window, but it would not surprise me at all if there is something that might cause it, some automatic behavior, if you stumble across it later please let us know.

 

LogicPro could use improvement in this area, in my opinion.

Link to comment
Share on other sites

 

This is an issue for me due to importing an externally produced MIDI file, presumably with some DAW that did not interpolate between the data points. I guess I'll just have to look out for cases like this in the future and add data points if I catch it visually before I start hearing it.

 

This behavior is wonky in LogicPro, no doubt. I mean most people probably like that they only have to enter two pitch bend points and it will automatically interpolate PB events along the curve dynamically during playback. Less to edit. that is just the LogicPro way. But its also true there are many cases where its desirable to have just a single PB event be output at exactly the time you want it to happen...and no auto-magical interpolation happening.

 

So hyper draw is setup to favor the interpolation situation...ok fine. but its very unclear how to control things precisely when you don't want automatic interpolation to happen.

 

Well the only way is to add the extra pitch bend event like happened in the photos of my last post. But that is a PITA, especially if you are bringing in a midi file, you don't want to have to go undo all the interpolation madness that Logicpro assumes you wanted... doesn't even make sense that it should assume that. Really LogicPro should have a way to explicitly specify whether a PB or CC event should be interpolated from the last or simply output exactly the one value at timestamp of the midi event in the track. We can see visually when LogicPro is going to handle it one way or the other, but I don't see a clear path for how to explicitly configure it or switch it if it accidentally gets changed the other way...or why does LogicPro change it automatically when we didn't ask it to. etc..

 

sorry for the bad news..but I agree...this is one area LPX could use improvement.

Link to comment
Share on other sites

Thanks for poking at this Dewdman! I'm 100% certain I never even opened the hyper draw window for these tracks before it decided to shift to angled interpolation. Since I've got the original file, I may keep trying to find the magic trigger and will post if I find it.
Link to comment
Share on other sites

Thanks for poking at this Dewdman! I'm 100% certain I never even opened the hyper draw window for these tracks before it decided to shift to angled interpolation. Since I've got the original file, I may keep trying to find the magic trigger and will post if I find it.

Yes please do update this thread if you find it! I did notice opening Hyper Draw or doing nearly anything in Hyper Draw triggering the interpolation but perhaps there is some other operations that trigger it independently of Hyper Draw. It's not exactly a predictable behavior. And like all "automatic" behaviors it gets really annoying and frustrating when you're trying to do precision work.

Link to comment
Share on other sites

I've spent time reproducing this issue, but still have no smoking gun. I've been able to reproduce it, but I've also failed to reproduce it repeating nearly the same steps. What I do know:

 

* A track may convert spontaneously from step to interpolated Pitch Bend mode without affecting other similarly configured tracks. In other words this 'mode' appears to be local to tracks, not some global project behavior.

 

* The conversion can occur spontaneously for a track without:

- opening automation for any tracks

- opening the Hyper Draw window at all for any tracks (I detect when the Pitch Bend 'mode' has changed by listening, not opening the Hyper Draw window)

- editing the MIDI data in any tracks

- adding any audio tracks

 

I've seen it occur with a simple procedure such as:

* Create a new project from a (simple) template

* Import a multi-track MIDI file

* Delete some of the tracks and shift order of others in the track view

* Play portions of it at various times while editing

* Save it

I would subsequently discover the pitch bend 'mode' changed for one track (but not others).

 

While it would be interesting to keep chasing this down, it doesn't help me make music so I'll put it aside now... :|

Link to comment
Share on other sites

  • 2 weeks later...
I've have also posted about this some months ago before a couple of updates and it remains a major pain in the behond. While I eventually found it easier to locate and edit in the MIDI Region window, there is certainly no joy in making music when having to spend enormous amounts of time uncreating what Logic has created. viewtopic.php?f=1&t=147472&p=770506&hilit=pitch+bend#p770506
Link to comment
Share on other sites

  • 1 year later...

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...