Jump to content

Bulk update MIDI events?


Recommended Posts

Hi folks,

I've imported some MIDI files into Cakewalk. Each track is mapped to a different channel, and some have lots of extra data in them like pitch bends, etc.

I want to change what channels these tracks go to and apply them to different instruments. While I can mass-reassign the actual notes just fine using the Event Inspector Module, all the other events get left out. Here's an example:


580947967_CakewalkEventInspector.thumb.png.19bb64763ab906952b553a5b057420dd.png

For this track, I was able to change all the notes, but the Wheel events stayed on channel 5. The only way I can figure to change them is to update them one by one in the Event List. And with hundreds of events like this, it's super time consuming and totally not worth the trouble. Is there a way to bulk-update all the MIDI events together?

Thanks in advance!

Link to comment
Share on other sites

48 minutes ago, Jack Barton said:

For this track, I was able to change all the notes, but the Wheel events stayed on channel 5. The only way I can figure to change them is to update them one by one in the Event List. And with hundreds of events like this, it's super time consuming and totally not worth the trouble. Is there a way to bulk-update all the MIDI events together? [emphasis added]

 For online documentation, see this.

The table at the bottom of the online document page lists some examples related to finding events by midi channel and making changings on specific midi channels (Process > Find/Change).

Also, maybe the comments in this thread on setting up a shortcut key for using the Event Filter will be helpful : 

image.png

Edited by User 905133
(4) To place the links to the documentation BEFORE the links to another thread. (3) To add a link to the list of examples. (2) To add a link to the online documentation. (1) To add a link to a previously posted image of the Event Filter
  • Like 1
Link to comment
Share on other sites

There's a very simple solution. There's no need for channels. Channels are only used for Hardware and the TTS-1. All modern VST don;t care what channel you use. 

Insert the synth(s) you will use as a Simple instrument track. This is the instrument track default if you don't select split instrument track.  It's Icon is as below B. 

Holding down SHIFT drag the midi data from the original track to the new instrument track. Done. 

Repeat for all tracks and when done delete the TTS-1 and the now empty midi tracks  tracks. 

 

Edited by John Vere
Link to comment
Share on other sites

27 minutes ago, John Vere said:

There's a very simple solution. There's no need for channels. Channels are only used for Hardware and the TTS-1. All modern VST don;t care what channel you use. 

Has MIDI 2.0 done away with channels and user channelization of data altogether? Yes, I know "they" have decided to use channelization for MPE, but to the best of my knowledge one of the goals of MIDI 2.0 was backward compatibility.

Maybe you meant to address the use of Cakewalk and MPE?  Not sure. 

Edited by User 905133
added a missing letter (typo)
Link to comment
Share on other sites

7 hours ago, Jack Barton said:

I want to change what channels these tracks go to and apply them to different instruments

I usually just change the track's output to the new synth. No need to change channels. Or do you mean to run these tracks through different synths simultaneously?

Link to comment
Share on other sites

7 hours ago, Jack Barton said:

I've imported some MIDI files into Cakewalk. Each track is mapped to a different channel, and some have lots of extra data in them like pitch bends, etc. [emphasis added]

3 minutes ago, 57Gregy said:

I usually just change the track's output to the new synth. No need to change channels. Or do you mean to run these tracks through different synths simultaneously?

I took the phrase ("Each track is mapped to a different channel") to mean that the OP used the Channel track control widget to map [force] each track to a specific MIDI channel and nevertheless wanted to change MIDI channel data en masse.  However, if that's not what the OP meant, forcing each track to a specific MIDI channel using the Channel widget as 57Gregy suggests and leaving the original data intact might also be a good strategy.

  • Like 2
Link to comment
Share on other sites

1 hour ago, John Vere said:

All modern VST don;t care what channel you use. 

 

Except when they do. In my case, it was a specific Kontakt instrument that won't accept anything unless it's coming from Channel 1. I also tested some other VSTs in my collection (non-Kontakt) and one had the same issue.

But you are right. In most cases, the Instrument track will take in MIDI data regardless of the channel. My issue was hyper-specific I suppose.

 

3 minutes ago, 57Gregy said:

I usually just change the track's output to the new synth. No need to change channels.

 

Normally that's what I'd do. But the imported MIDI tracks had the channel data encoded into them (for reference, these files were originally made back in the early 00's). For whatever reason, changing the MIDI track's output didn't do anything. And changing the synth's input channels didn't fix it either.

Maybe there's something I'm still overlooking. But the only solution I found that worked was to change the event data itself.

  • Like 3
Link to comment
Share on other sites

8 minutes ago, Jack Barton said:

For whatever reason, changing the MIDI track's output didn't do anything. And changing the synth's input channels didn't fix it either.

Maybe there's something I'm still overlooking. But the only solution I found that worked was to change the event data itself.

As with any VSTi situation, MIDI handling will vary in actuality. Though a majority of them will simply accept any channel data, and in theory changing the track filter to redirect the mapping should work, I too find that sometimes it doesn't quite cover everything.

For instance, some Kontakt instruments have internal layers of control settings regarding MIDI control mapping. You might look into that. I have had to use MIDI - Omni for input on some organ synths, for using the default multiple keyboard layers & controls. And in Rapture Pro, for instance, each program can often have the pedal input set to only accept pedal MIDI on channel 1, all while the rest of the program will accept any channel. -So, it can get confusing. -It really is on a case-by-case basis.

I would suggest using either the above-mentioned method of Process> Find/Change on the tracks that need that (it can take a learning curve, but it works), or using MIDI FX to change the CCs/Channels in the stream dynamically, which can be done without changing the original data. Again, only for problem situations.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Since I don't use Kontakt, I defer to others who do and JnTuneTech's points make sense to me based solely on my experience with hardware (and maybe some software, I have used) that use control channels for somethings.  Maybe Kontakt allows for some global control of some parameters (possibly with a designated global control channel) at the same time other parameters can be channelized.  I defer to others who use Kontakt.

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

4 hours ago, User 905133 said:

Has MIDI 2.0 done away with channels and user channelization of data altogether? Yes, I know "they" have decided to use channelization for MPE, but to the best of my knowledge one of the goals of MIDI 2.0 was backward compatibility.

Maybe you meant to address the use of Cakewalk and MPE?  Not sure. 

So far, companies are still prototyping MIDI 2.0 this year, so that shouldn't be a worry as there are no products in the market which are MIDI 2.0.

Link to comment
Share on other sites

2 hours ago, Bruno de Souza Lino said:

So far, companies are still prototyping MIDI 2.0 this year, so that shouldn't be a worry as there are no products in the market which are MIDI 2.0.

You missed my point. I was not worried about anything, nor was I expressing worry about anything.  I think you missed the context of my reply.  But thanks for trying to reassure me. 

 

Link to comment
Share on other sites

13 hours ago, Jack Barton said:

I was able to change all the notes, but the Wheel events stayed on channel 5. The only way I can figure to change them is to update them one by one in the Event List.

-Interestingly enough, I have found that using "Convert MIDI to Envelopes" - from within the MIDI track controllers view in PRV, for instance, really helps - by converting & later modifying those wheel events (from old "back in the 00's" MIDI files for me too!) in what I find to be an easier fashion. -Now, it takes more time than the "bulk" convert method you originally asked for, but since envelopes seem to be a commonly used method for automation & editing, you may find it easier to work with in the longer run than editing inline MIDI CC message flows. -It's another choice that can work for changing those wheel events you mention, if you really need to.

To explain - here is a screenshot with some examples present to hopefully help with the concept:

CbB_example-MIDI-CC_conv2envelope-then-modify-channel_2023-05-31.png.9f2c5656ec0cf3fae3925b03338e7153.png

In the screenshot, I have taken a bass MIDI passage with some pitch wheel bends, and converted some to MIDI envelopes. -You can see the last wheel bend of the series, which was not converted, in the view behind the selection box pop-up, for comparison.

-By converting the wheel events to envelopes, I now have the facility to edit and/or add events with the mouse easily. -On top of that, if I right-click the envelope, I can choose to assign the envelope to another channel (as in the example above), or in fact to many other MIDI control choices, as well as copy, etc.

 

So, if you want to selectively re-assign the inline MIDI CC events, using this method you could change the selected CC channel info, on all or part of a MIDI track, if that is something you really need in order to get the results you want.  -I simply find using this method for editing pitch wheel events just much better in CbB workflow generally, once you understand how wheel events work (they are different than standard CC values), and have them converted from say, initial pitch wheel manual entry, or of course those passages you want to save from existing downloaded old files.  -Again though, you may find other ways to get your synths responding properly to the existing CCs you think they should, first! -There are always choices, hopefully these will help you, as they have me.

  • Like 1
Link to comment
Share on other sites

Ok I see what you are doing. I might be still a mile off base but if you change the midi tracks output to the instrument and choose the Channel in the channel box of the track header doesn't that globally change that tracks output to the instrument and the channel desired?  

I just took a downloaded midi file with 9 tracks and channels and it opened with the TTS-1. I took a track that was assigned Channel 1 and changed it to Channel 15 in the dialogue shown in the screen shot.. TTS-1 1 played the correct instrument in channel 15 now instead of 1. The event list still listed it as Channel 1. Cakewalks Track header overrules all other parameters. It took me a long time to sort this out as like most of us old school hardware users I always wanted the channel changed in the event list. I thought the Cakewalk event list sucked compared to any other sequencers I had used.  Seems that's not how Cakewalk works. It's event list is not really for editing I guess. 

 

 

Edited by John Vere
Link to comment
Share on other sites

7 hours ago, John Vere said:

I might be still a mile off base but if you change the midi tracks output to the instrument and choose the Channel in the channel box of the track header doesn't that globally change that tracks output to the instrument and the channel desired?  

Again, that works most of the time. But it wasn't working with specific instruments in my collection. The only way I could make the MIDI tracks work was by forcing the changes in the event list. Just weird quirks in programming, I suppose. 🤷‍♂️

 

8 hours ago, JnTuneTech said:

Interestingly enough, I have found that using "Convert MIDI to Envelopes" - from within the MIDI track controllers view in PRV, for instance, really helps

I'll have to give that a look. Thanks!

Link to comment
Share on other sites

@John Vere I think you are missing points on this one, and perhaps audio is more your specialty. -MIDI, as the OP here is experiencing, can have many options and levels of programming and usage. Just pointing (no pun intended!) a MIDI track to an input, is not even close to being the only thing you have to do for all of the options to work as expected.

@Jack Barton - You mentioned having tried the MIDI file with several other VST instruments, with varying results. You may want to think of it the other way around, and test your VST instruments for the capabilities you seem to be missing, as compared to playing them with say TTS-1 - first.  -Take a MIDI keyboard, and route it to your MIDI VSTi of choice, then play a few notes, and then see if the pitch wheel/lever does what you expect, and what the mod wheel/lever does - in that particular synth. -You may be surprised. Then, you may have to dive into the synth properties - settings, or possibly even the documentation, to find out why and how to change things if needed.

 

This may be overkill for the original topic, but if you are interested in using older MIDI files in your Cakewalk projects, read on. If not, that's understood, but do be aware that Cakewalk itself is heavily designed around MIDI functionality & the related logic. -And FWIW - MIDI 2.0 will not change these issues, only add more options & streamline some functionality. It is more of an evolution, as opposed to a change up or even an update & fix release of some kind. -Far from that. -But, I digress!

MIDI files you download casually, especially ones created during the emergence of General MIDI (GM) standardization approaches that were undertaken by major players in early MIDI, such as Roland, -who provided the programming for the TTS-1 synth currently supplied with Cakewalk, can and variously will include many, many other MIDI messages than just notes and channel information. -What each synth, -whether real or virtual matters not-, will do with that "extra" MIDI information is up to the designer(s) of the synth itself. -If you are dealing with those downloaded files, it can be important to understand that.

 

-Did you know that a multi-timbral synth, such as TTS-1, or the Sound Canvas series synths it is based on, can be programmed and played with a properly created MIDI stream, that in effect performs an entire mix? Not just notes, but multiple, individual instruments with their own track assignments, FX send & receive settings both per track and globally in the mix, as well as patch changes. I could go on and on, but by the time we discussed system exclusive MIDI options, hardly anyone here would likely want to deal with it, understandably. But, again, Cakewalk here was actually designed to work with and actually create this type of MIDI - so if you are aware of it, you are in luck if you have to deal with it. And currently it is free. - I simply find it amazing that much under the hood is here, and often simply ignored.

-Until there is a problem. So: Someone opens an old MIDI file, TTS-1 just pops up and lets you play it, and well, probably some of it sounds a bit "cheesy".  -Fair enough. The next step often tried, it to take one of the instrument tracks, and re-assign it to a different synth - right? You have cultivated a few "modern" synths that could do a better job, -no problem.  But, all of a sudden now your new synth won't play the track in nearly the same way as TTS-1 did, or maybe won't even play at all.

To keep it simple, there are 2 main approaches I recommend, to loading & re-using older MIDI files that you don't exactly know the content of:

One - If you don't care about anything other than the notes in the performance, -at the most basic level-, I tend to use the event viewer to strip all MIDI except notes from the track. -Several major exceptions apply-, such as piano parts that contain hold pedal events, or any of the many performance-linked events we all forget about once we hear the file play back without, such as pitch bends, expression, even patch changes when they are crucial to the performance.

-That first approach is usually the fastest, and in many cases I already plan to recreate the additional performance events myself, and in fact in most cases, I have to re-work a lot of just the basic note events themselves anyway.  Sometimes, MIDI files only consist of maybe 3 or 4 tracks of Piano 1, each playing a very rough melodic representation of the major instruments, and the decisions there are very simple. -But sometimes not. Actually, the "good" ones are usually much more complex.

Two - If I feel that the MIDI file contains a lot of helpful content that I like, and don't want to re-create, I will analyze it first - then decide what to keep, and surgically remove the rest. Cakewalk is great for this, but it is often time consuming. But, as mentioned earlier, some performance elements can be very importantly tied to the note events, because as we know, making music is not just about the notes all by themselves. Knowing how that works with MIDI can be very important.

-Some other quick notes about GM formatted MIDI files: Most of the older, full-featured MIDI files, were intended originally for playback with a specific multi-timbral synth (or series), -in fact some of them even contain notes on blank tracks in the file, that can contain synth info, along with other such text information. -More importantly, they can often contain "blocks" of MIDI setup commands at the beginning, and sometimes later in the file, in each track. Some of that MIDI will be harmless, but sometimes various synths (both hardware and virtual) will react unpredictably (until you know the synth capabilities anyway) to those commands. One such example is the "reset all controllers" command, which Cakewalk itself has an important option for, in fact. -You need to know how that all works within your project goals & choices.

Even if you re-assign the Cakewalk MIDI track output filter & fx settings in the Inspector, for instance - Later inline MIDI will "Overwrite" those initial settings - just like a change in an envelope will change the initial value, etc. (That is why I often suggest the conversion to MIDI envelopes above). -'Doesn't matter what track you drag the data to, if you drag it all you may get all the embedded MIDI commands as well, and many will still change your new track settings.

Especially important are embedded MIDI volume and expression events, as many "modern" virtual synths respond to that. -You think you set the volume level at the beginning of the track, for instance, but somewhere in the playback - it re-mixes itself...  You get the picture.

Especially important to find out in advance - if your virtual synth(s) actually respond to MIDI events other than notes, the way you expect. -Just because it plays fine in TTS-1, doesn't mean your newly downloaded super-synth-sampler AI plugin will respond to the pitch bends, or mod wheel events, the way you expect. -Or even at all.  Each synth has to have matching MIDI input for its settings & capabilities, -they are not all just "plug & play". (Though in the future, MIDI 2.0 will address some of that...)

 

-There is often a lot more to loading MIDI files & swapping tracks & channels, than what you might expect.  -But Cakewalk is actually built for this stuff, so get in there and dig around, until you find how it works the way you want it to. -At the very least, it can be a fun adventure!

 

Edited by JnTuneTech
clarifications...
  • Like 1
Link to comment
Share on other sites

What I do is set RechannelMIDI=1 in the Cakewalk.ini file  - done in Preferences - File - Initialisation File (Advanced).

Then, for the MIDI track the clips are on,  set the MIDI channel to a specific channel (rather than the default “none”.)

Then when you bounce MIDI clips, the MIDI channels of all events of those clips will change to match the MIDI channel the MIDI track is set to.

I have key bound “B” to bounce clip.

  • Like 2
Link to comment
Share on other sites

  • 4 months later...
1 hour ago, Jack Barton said:

So a few months back, I was trying to solve a very specific issue of bulk-changing MIDI channels & events in Cakewalk by Bandlab. I posted my woes in this thread and got several awesome responses.

I took what I learned from that thread and wrote this article/tutorial on my site: https://sonicatlas.co/change-midi-events-cakewalk/

Basically, I synthesized all the feedback I got into 5 different methods:

  1. Change the MIDI Track’s Output
  2. Copy or Move the MIDI Clip to an Instrument Track
  3. Updating MIDI Events Using the Event List
  4. Using the Event Inspector Module
  5. Using Process > Find/Change

Hope others in the future will find this useful!

 

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...