Jump to content

Exporting to Midi Always Changes Instruments to Piano. No matter What.


thatoneXman

Recommended Posts

51 minutes ago, thatoneXman said:

The title speaks for itself. I'm trying to Export my Music to midi, And it Always exports All of my Instruments to Piano. Always. How can I fix this?

By start viewing some of the tutorials available on YouTube? In case you didn’t know, MIDI in itself doesn’t contain any instrument information. It only contains structured data that can be fed into an external or internal instrument that’s MIDI enabled. You might compare MIDI to sheet music which in itself doesn’t sound or play a piano, guitar or violin. It’s just structured data, mostly note information, that needs interpretation.

If you export to a MIDI file, that file will thus not contain any instrument information. Never. If you later load a MIDI file into Cakewalk (or any other DAW for that matter), you will have to assign that MIDI to an external or internal (virtual) instrument if you want to hear anything. By default, on opening a MIDI file, Cakewalk will assign your MIDI to the virtual instrument TTS-1 which by default contains a piano. That’s probably what’s happened here.

Simple solution: don’t export to MIDI. Instead save your work as a Cakewalk project. That way any instrument assignments you’ve done in Cakewalk will be kept in the project file and later correctly reloaded into Cakewalk. Always.

Link to comment
Share on other sites

1 hour ago, Canopus said:

 In case you didn’t know, MIDI in itself doesn’t contain any instrument information

 

MIDI does contain what instruments to play.   My MIDI files remember each instrument assigned to each channel.

Perhaps the problem is exporting to an older MIDI file format.  Are you exporting as "MIDI Format 1"?

Link to comment
Share on other sites

Unless your MIDI file includes a sysex dump, it will have only patch selection information, not instrument selection per se.  There's a difference.

Assuming no sysex, your MIDI file specifies generic bank and patch offsets that don't address any specific instrument definition. You'll only get, say, "cello" if the target synth has loaded a cello patch at the same bank/patch offset. If you're using General MIDI-aware synths, that shouldn't be a problem. That's the whole idea behind GM; it's a standardized patch list.

However, bank/patch-change events are optional. In the absence of those commands, the synth will default to bank 0, patch 0. Which, in a GM-compliant synth, is always Piano.

The MIDI file format is probably not relevant, as all of them support patch-change commands. Your problem is most likely that no patch-change commands are being included in the file. They won't be written unless you've specified the bank and patch via the dropdown lists in the track header.

 

 

 

 

  • Like 1
Link to comment
Share on other sites

If you use TTS-1 as your instrument and save the project as  a .cwp (Cakewalk Project), rather than a .mid (MIDI) all of your instrument settings will be saved, as well as a lot of other things that cannot be stored in a MIDI file.

And then you won't ever have to struggle with topics like MIDI SysEx or bank/patch change events like us old dinosaurs used to be required to learn. Unless you want to, of course! 🤪

Link to comment
Share on other sites

1 hour ago, thatoneXman said:

but what if I Wan't to export to midi? the entire reason I got Cakewalk is to Get a Midi Editor.

Then follow @scook's advice to save as MIDI.

But then you would need to also follow @bitflipper's advice, because a MIDI file cannot save explicit instrument details, except for MIDI bank/patch info that correspond to your settings. And that only works automatically when played back on a MIDI GM synth, according to the GM instrument set, which happens to define Piano at the first patch slot. The other 127 instrument slots are pre-defined GM Standard instruments that you could work with.

Otherwise, when using any other sound banks, you would need to set the MIDI file recipient up with the same sound bank as what you created the MIDI file with. The MIDI file is only going to call up the instrument sound by bank/patch number that you saved in the MIDI file, not by the instrument name. It will only sound the same if the recipient's instrument bank is loaded with the same bank as what you had loaded at the time you created the MIDI file and saved it.

Always remember that the MIDI file format is rather quite limited to the types of data that it can store.

Maybe you could explain your goal, such as where or how you would want want to use such a saved MIDI file. There might be better suggestions available for what you are trying to accomplish.

In any case, you are working with MIDI inside of Cakewalk (the piano roll editor or step sequencer, for example), regardless of how you save the file or project.

 

Edited by abacab
Link to comment
Share on other sites

Example of what they are saying is you can create a 6 track midi song with 6 different instruments assigned to different VST's or to just the TTS-1. 

If you set the instrument patches inside the GUI of the VST and save it as a midi file all of that is gone. You would save it as a CWP file to keep the info. 

You have to set the patch and bank info in the track header menus to have them imbedded in a midi file.  Making GM midi files that play properly on all systems is a very advanced use of midi. Cakewalk is one of the better midi sequencers as it has deep roots in that world. 

https://sites.google.com/view/cactus-studios/part-1-midi-and-cakewalk

 

 

Edited by John Vere
  • Like 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...