Exporting software instruments as MIDI files

A friend and I have both recently switched to Logic Pro X (10.2.2) and wish to collaborate by sending each other MIDI files. One problem we cannot figure out is why exporting a MIDI file of software instruments plays back using the "wrong" software instrument when it is re-imported into Logic.


Say for example I export a Logic project containing only one track. No matter what instrument I choose, after exporting and re-importing to Logic it has the correct sound. But as soon as I add a 2nd track and export all tracks as a SMF then when it is reimported inevitably one of the tracks will have the wrong sound. The other thing I've noticed is that when viewing the List Editor it doesn't always show a Program Change for software instruments. If I open an older midi file (originated from on of our old DAWs) then I'll see a Program Change, but I'm wondering if this has anything to do with why the imported files that originated from Logic software instruments play back with the "wrong" sound/instrument. I must be missing something.


My friend and I have resorted to exchanging full Logic projects but they are so big we have to xfer using Dropbox whereas if we could just email midi files like we used to then the file size is typically only a couple dozen k in size. Also we have a third collaborator that doesn't yet have Logic (he's still using GarageBand) so he can't open the Logic files, and the MIDI files don't work well since the patches are all wrong. I've searched and experimented for hours trying to figure this out but I'm stuck. Thought I would check with the community to see if anyone has a workaround for this problem. Thanks!

Logic Pro X, OS X El Capitan (10.11.3)

Posted on Mar 20, 2016 1:18 PM

Reply
7 replies

Mar 20, 2016 2:32 PM in response to ProgBass

MIDI - MIDI files were developed in the early-mid 1980s as a 100% cross platform/device solution. MIDI files represent a digital rendering, not of audio, but a MIDI keyboard performance.


Since MIDI files were to be 100% cross platform/device they are not dependent upon setting up which software instrument to be used, if they did a MIDI file in Logic couldn't be played correctly in Cubase or Digital Performer as it would be dependent on a software instrument other software may or may not have.


The closest we came to that was the GM (General MIDI) standard.

https://www.midi.org/specifications/item/general-midi


What don't you just exchange Logic project files?


MIDI Basics:

https://www.soundonsound.com/sos/1995_articles/aug95/midibasics1.html

Mar 20, 2016 2:40 PM in response to ProgBass

Note: If you were using a General MIDI software instrument and had Program Changes embedded in the MIDI tracks....AND... everyone had access to a GM software instrument, then you could exchange MIDI files and have the projects sound reasonably the same. If everyone had the same GM Software instrument then the projects would sound the same on all systems.



MIDI is one of the few times ALL of the main electronic musical instrument manufacturers agreed on a standard, and look what it did, revolutionized music.


Shows what can be done if we work together.

Mar 21, 2016 12:43 AM in response to Pancenter

Pancenter wrote:


Note: If you were using a General MIDI software instrument and had Program Changes embedded in the MIDI tracks....AND... everyone had access to a GM software instrument, then you could exchange MIDI files and have the projects sound reasonably the same. If everyone had the same GM Software instrument then the projects would sound the same on all systems.


Yes, this is what I think I need but I don't know how to do this in Logic. With our legacy, 20 yr. old sequencers we did assign GM sounds in exports we'd send for collaboration which was fine, and those same old midi files open in Logic just fine today, now, and get assigned pretty much to the right software instruments. We're just trying to reproduce that process using Logic, and using Software Instruments instead of MIDI Interfaces and GM sound modules. Is there a way to map or assign software instruments to a GM instrument, so that when they export they approximate what would be exported if we were actually using a MIDI Interface and GM sound module?


In the early stages of a project we just want to exchange midi files because 20k files are so much easier to deal with than 20MB files (we don't even have audio files at this point, just piano roll stuff), and we don't have the problem of a guy using GarageBand not being able to open a Logic project. It is just important that the imported MIDI files are using the "right" sounds and so, yes, GM instruments are implied. Thanks for pointing that out.

Mar 21, 2016 1:16 AM in response to Indyuser

Indyuser wrote:


Hold the option key down when you import the midi files ( regardless of the method used, drag and drop, import, etc) - right before you execute the import ( or as you drag - if that is the method you want to use) - Hold the option key and the instruments and channel assignments should be setup as they were exported.

Ahhhh.... Did not know that, I wonder if that works in Logic 9, I seldom use MIDI files but that's a good one to know. What is used for the GM instrument since there has to be a common one.

Mar 21, 2016 4:50 AM in response to Pancenter

Yes it works for Logic 9 but each import method in 9 is different. If you want to import global information (i.e. tempo and other) you need to import the file via the import menu - if you drag and drop or use another method - the global data will not come along. ( in LPX - this changed ).


The option key creates external midi tracks with the correct assignments ( channel ). Otherwise.... all comes over on channel 1


The midi file should have the Program change embedded in the track. if it doesn't my work flow would be normally to import using the option key, use the functions -> insert instrument midi settings as events, then create software instrument tracks, copy the regions to those and insert a AU->Apple->dlsmusicdevice plugin on the channel strip. This will respond to PC changes in the region. If the source used a GM instrument set the sounds should be identical.


Much really depends on how much relevant information is in the source midi file - if there isn't much it will just create a GM device external track assigned to the proper midi channel. Assuming of course it was created in format 1

Mar 21, 2016 10:20 AM in response to Indyuser

Indyuser wrote:


Yes it works for Logic 9 but each import method in 9 is different. If you want to import global information (i.e. tempo and other) you need to import the file via the import menu - if you drag and drop or use another method - the global data will not come along. ( in LPX - this changed ).




Doing some experimenting, if you simply import a MIDI file, Logic-9 tries to match the MIDI file program changes with a combination of software instruments to come up with a pseudo-GM kit. Many of the instruments were EXS24 (Pop Kit, Pop Horns) but also saw the Logic Electric piano. Surprisingly, the MIDI file (Steely Dan's Black Cow) sounded pretty good. One of the bass instruments was in the wrong octave and the Pop Kit didn't cut it but other wise Logic did a decent job of selecting software replacements.

This thread has been closed by the system or the community team. You may vote for any posts you find helpful, or search the Community for additional answers.

Exporting software instruments as MIDI files

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.