Jump to content

Quickest way to Transpose all MIDI except certain note ranges, and except certain tracks?


Go to solution Solved by fuzzfilth,

Recommended Posts

I am trying to figure out if there is a quick way to transpose a project, where I have a lot of MIDI tracks.  Some tracks use key switching, and so I can't have those notes transposed.  Other tracks I want to ignore, like drums.

So I am trying to figure out if there is the possibility via the MIDI environment and maybe via scripting to perform intelligent transposition.

For instance, a procedure that algorithmically does

- loop through MIDI tracks

- Check if track is drums - if so continue to next track

- Check if track has defined key-switch notes: if so ignore those notes when transposing; otherwise transpose all notes

Something like this would be a great way to quickly test out key changes in large orchestral pieces, etc.  One would simply enter a transpose amount and voila.



Link to comment
Share on other sites

One workflow I can think of: 

  1. Create new tracks for all your key switches: select a track, choose Track > Other > New Track With Same Instrument — or press Control-Shift-Return.
  2. Option-drag the MIDI regions on the original track to the new track to copy them.
  3. Delete the key switches from the original tracks, and delete everything but the key switches on the new copies. You can use the transform window to help deleting notes within a certain range in multiple regions on multiple tracks in one go.
  4. For all key switch and drum tracks, select "No Transpose" in the Track inspector. 
  5. Select all MIDI Regions. 
  6. In the Region inspector, adjust the Transpose parameter to the desired value.
Link to comment
Share on other sites

  • Solution

MIDI Notes do not carry information about their purpose, be that a pitched instrument, a non pitched instrument, an articulation switch, a light switch or a trigger to flip back a page of score.

Thus, there is no way to automatically detect what should get transposed and what shouldn't.

That being said, there is a checkbox 'No Transpose' which you can utilize on instruments playing drums to keep them from transposing:


Then, if you find you're ending up transposing a lot, you may want to consider keeping articulation switches on a separate track and color them differently so you know what (not) to select for transposition:



Edited by fuzzfilth
  • Like 1
Link to comment
Share on other sites

I guess I am thinking about how I would do this in Reaper with scripting.

I guess Logic doesn't have a scripting environment like Reaper. If I understand right, Logic scripts work on track level as a MIDI effect.

If I wanted to do this in Reaper, I would be able to loop through tracks, check track plugin info. That is if I read that track has Opus Player and a Cello patch, I know what the key switches are.  I could just create a data structure where for various named plugins/patches there is a lookup for the key switches. Or I could accomplish it via track naming. If I named the track EW Cello I could on basis of naming conventions determine what the key switches are.

Anyway, thanks for the tips which certainly can help implement a good work flow, though detaching key switches from the notes would pose other challenges.

Maybe in future Logic would consider enabling a more generalized scripting environment.  I think combination of Logic with something like Reaper scripting would be the most impressive DAW on the planet...

  • Like 1
Link to comment
Share on other sites

32 minutes ago, bhuether said:

Maybe in future Logic would consider enabling a more generalized scripting environment.

This would be a very welcome addition. However, Apple seems undetermined as to what to actually make out of Logic. On one hand, it's one of the very few things that actually sells Apple computers, so making it a flexible and powerful tool, which certainly is a resource-intense task, would benefit all the professionals greatly and strengthen Apple computers in pro audio. On the other hand, pro audio (including composers and audio engineers) is a very niche market, compared to iPhones, which every 10yo kid seems to need today. So Apple tries to do two things to and with Logic at the same time, simplify it for the masses that peak at switching on their MacBook Air, and simultaneously make it the goto-tool for professionals. As it is, sadly they don't really succeed in either. It's often as if they try to implement something cool, and then stop at ca. V1.1, warts and all. Points in case:
- Selection Based Processing (this has to get the award for the most backwards and clunky implementation. Look at DaVinci Resolve how to do that elegantly)
- Live Loops (trying to copy Ableton Live to appease the EDM crowd, but falling waaaaay short)
- Control Surfaces (cryptic to the T and buggy as hell)
- Environment (this has sooo much potential, but apart from very minor additions, this is basically the V1.0 version from 1993)
- Flex Time Quantize Strength is visible in the Audio Track Editor when you're in Flex Pitch mode, but not when you're actually in Flex Time mode. (like, dudes, WTF ?)
- Video track can only hold one video file. (But what about cutdowns of your commercial or trailer ?)

Certainly lots of other areas.

Edited by fuzzfilth
Link to comment
Share on other sites

LogicPro doesn't have a scripter that works on the region data, unlike Reaper...which I agree would be super cool, but we probably won't get it.

I think you'll have better luck exporting the midi file and using some other tool to do the transpositions accounting for all the things you are doing, and then re-import the midi back in.

By the way, if you had used articulation sets instead of hard coded keyswitches, then the problem would already be solved, you could mark the tracks to not transpose and just transpose it right in LogicPro.

But you didn't, I hear you...

I also like Fuzz's idea of moving all the keyswitches to seperate tracks and then you can mark those tracks as no transpose and just transpose your project.


Edited by Dewdman42
Link to comment
Share on other sites

11 hours ago, Dewdman42 said:

I also like Fuzz's idea of moving all the keyswitches to seperate tracks and then you can mark those tracks as no transpose and just transpose your project.

What you're describing is actually my original idea, however it won't work because the "No Transpose" parameter is actually an object parameter, so it applies to the object that is assigned to a track: in this situation here there would be only one "No Transpose" setting that is the same for both the notes and the keyswitches. 

Fuzzfilth's idea is to select everything but the keyswitches regions and transpose the selection with the region parameters. 

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.

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