PT Logic
  1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Logic X Logic X corrupting all SYSEX data dumps

Discussion in 'Logic Pro X' started by JamesBRey, Oct 4, 2016.

  1. JamesBRey

    JamesBRey New Member

    Hi group. Does anyone know a workaround for this problem?

    I'm trying to send SYSEX data dumps of synth patch banks and such through Logic to the synthesizer. The source is a second computer that holds all my data in an editor / librarian.

    If I use MIDI MONITOR I can plainly see the data getting into Logic fine and then being corrupted on the way to the output port, thus disabling the ability to send a patch bank through Logic X to the synth.

    This seems so basic of a general need that I am flummoxed how this can go on? Any ideas?

  3. CSeye

    CSeye Senior member

    Can you save the data as a MIDI file on the source computer?
    If so, you should be able to open the file in Logic.

    Not sure if this will be of use to you.

    I've backed up hardware devices by recording sysex directly into External MIDI tracks in Logic, then transmitting the data to the devices to load patch banks. That's the extent of my expertise with sys ex.
  4. JamesBRey

    JamesBRey New Member

    Thanks for the suggestion. The problem is that Logic X is the hub of my system and speaks to all the synths via my UNITOR-8's - thus any SYSEX data destined for those synths has to pass through Logic X.

    Sure I could load a .MID file but I just want to be able to send dumps through live in real time without having the program corrupt all the data. I am really confounded by this because it is a really basic thing and I have done this often over the last 20 years with no issues until Logic X.

    Is it a bug or a "feature"? Am I missing something basic? And I have found anecdotal evidence of the same problem with other users.


  5. JamesBRey

    JamesBRey New Member

    HI Group.

    Just an update on this problem. I have analyzed the data and am sure now that Logic is corrupting the data - here is an example of the SYSEX received at the computer and what is output via Logic:

    18:24:56.376 From Komplete Audio 6 SysEx Roland 211 bytes F0 41 10 57 12 06 2A 00 76 00 00 3F 00 00 00 00 00 48 32 00 0C 0C 01 32 32 0A 32 1E 32 1E 32 1E…
    18:24:56.449 To Port 19 SysEx Roland 199 bytes F0 41 10 32 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 32 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F…
    18:24:56.450 To Port 19 Invalid 11 bytes
    18:24:56.559 From Komplete Audio 6 SysEx Roland 179 bytes F0 41 10 57 12 06 2A 02 3E 0A 32 1E 32 1E 32 1E 32 02 64 00 0A 44 64 32 0A 0B 64 00 64 21 0E 00…
    18:24:56.651 To Port 19 SysEx Roland 169 bytes F0 41 10 64 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 64 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F…
    18:24:56.651 To Port 19 Invalid 9 bytes
    18:24:56.842 From Komplete Audio 6 SysEx Roland 129 bytes F0 41 10 57 12 06 2B 00 00 4D 6F 20 46 75 6E 6B 20 42 61 73 73 20 20 20 20 36 32 00 00 02 02 00…
    18:24:56.918 To Port 19 SysEx Roland 124 bytes F0 41 10 61 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 61 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F…
    18:24:56.918 To Port 19 Invalid 4 bytes

    You can plainly see that the messages are filled with incorrect 7F's and invalid data. I have also tested this on Logic 9 and it is the same problem there.

    I suspected the Unitor-8 drivers but they are okay as there is no problem when using the utility program MIDIPATCHBAY to do the routing.

    Why can't Logic handle SYSEX Thru in cases like this? It should be able to act as a hub for an entire system and handle whatever is sent to it in accordance with the MIDI Specifications.

  6. CSeye

    CSeye Senior member

    Just asking..
    File menu>Project Settings>MIDI>General: “SysEx with MIDI Thru function” checked on or off?
  7. JamesBRey

    JamesBRey New Member

    ON - but thanks for the suggestion. Further research shows this is just a bad bug in Logic that was introduced in Logic 8 or 9 and still remains to this day. Oh well.
  8. CSeye

    CSeye Senior member

    Ok then.
  9. volovicg

    volovicg Senior member

    If you want to know for sure what it going on - you need to break this down into a few discrete steps and confirm each step is working. Let's first verify that Logic is in fact receiving the sysex correctly and there is data integrity from the sending device to Logic itself.

    1/ create a new project and add 1 software instrument track.
    2/ Set the track header to to "No Output" - this is very important as it will ensure there is no midi thru and the sysex data is not being echoed or sent back to the sending device or for that matter any device.
    3/ make sure the track header is selected (there is no record enable button)
    4/ press record in logic
    5/ go to the device which is sending the sysex dump and execute it - so that logic records the sysex.
    6/ when done press stop, open the even list and examine the sysex's ( are they intact and appear to look correct).

    If they are - you sending device is sending it correctly and logic is receiving it correctly.
    If you verify this step works - let me know and we can go onto to the next step.
    sysex test.gif
  10. JamesBRey

    JamesBRey New Member


    Thanks for weighing in on this - I really appreciate it. I ran your test and here is the result:

    The SYSEX records fine into Logic, it is not corrupted in any way, I can verify this in the Event List.

    I can then play back the track and the data is also output correctly, there is no corruption - I can verify this using MIDIMONITOR and the fact the synth responds to the data dump.

    But if I route the data through Logic in REALTIME, the data is corrupted as is displayed in the post above with F7's and invalid bytes.

    What do you suggest next?

  11. volovicg

    volovicg Senior member

    Ok this is good - that shows logic appears to not be corrupting the data. ( which is what I expected )
    Next step is to (in Live Mode, you called it real-time) - have the sysex sending device send it to the sys ex receiving device. Only these two devices with nothing else will be involved. For simplicity - I have two external devices, one I called Sending SYSEX and one Receiving SysEx. You should pick the actual device you are using for each on your end... The important one is the receiving device. For this test we are forcing the selection of only one receiving device ( but don't worry it you need it go to multiple devices at the same time, we will address that in another step).

    1/ Create and external track ( new project )
    2/ assign that track to be your receiving device ( the device you want to have receive and respond to the sysex messages).
    3/ Make sure in project settings-> Midi - Midi thru for Sysex is selected and checked.
    4/ Make sure you have only one track in the project - so it is highlighted and therefore the only track that can accept input....
    5/ Record enable the track ( this connects any midi input arriving on that track to the external device you have assigned to that external instrument on that track.
    6/ make sure that in the track inspector the port is the receiving device and the midi channel is set to all.

    I am using midi mon to monitor the receiving device's input - to demonstrate the sysex message generated on one of my devices, enters logic and is routed to the other external device receiving the sysex. It is working fine here.

    If this works for you, again - then nothing wrong with logic - we just need to make sure the right devices are configured to send/receive without sysex messages creating a feedback loop which is what I suspect is happening. So once you confirm the above does in fact work on your system, we can walk through the next steps.

    This test is very controlled, one track in the arrange window, only one track can be highlighted and output in the inspector should only be one device. The port should not be set to all ( however the midi channel can and should be)

    Here is a quick video - remember I labeled my output device to be called "Midi device to be receiving Sysex" and this device's port is the physical device I want to receive the sysex. You do not have to specify the device sending the sysex - as all devices sending midi will enter on the highlighted track and since there is only track in your project it must enter there. Also remember the record enable is what is needed for Midi thru - it must be red. Good luck with the next step in the test.

    I assigned the external instrument when I created the track initially. You can also create any default external instrument track and then right click on the track header and assign the track to the receiving external instrument. It makes no difference whether you define it prior to track creation or post track creation....

    Sysex #2.gif

  12. JamesBRey

    JamesBRey New Member

    Thanks Volo for the tutorial.

    In your example there is no problem on my end either. This is due to the fact that you are sending very short SYSEX strings of 6-12 bytes. Anything this short goes through with no problem. It becomes a problem with bigger SYSEX dumps like whole patches or banks that are 50 - 1000's of bytes between the F0 start and F7 end of transmission bytes.

    Try your experiment with a larger SYSEX package and let me know how you fare.

  13. volovicg

    volovicg Senior member

    Care to make it easy for me by uploading either a logic project, mid file or librarian file that has the exact Sysex that is giving you a problem.
  14. JamesBRey

    JamesBRey New Member

    00 F0 41 10 57 12 03 00 00 00 43 6C 65 61 72 20 42 | A W Clear B|
    10 65 6C 6C 73 20 20 20 20 20 42 32 11 01 02 02 00 |ells B2 |
    20 05 07 01 00 00 01 1B 00 00 00 00 0F 02 00 0F 01 | |
    30 1E 00 00 00 00 00 00 7F 7F 7F 7F 00 00 00 00 40 | @|
    40 40 40 40 00 00 00 00 43 00 0A 50 02 0B 64 00 00 |@@@ C P d |
    50 00 01 01 02 64 64 1C 1C 3C 2A 64 10 0F 0F 11 11 | dd <*d |
    60 1A 03 0A 0A 00 01 01 01 00 64 45 30 32 00 01 07 | dE02 |
    70 00 01 07 50 00 7C 64 3B 05 78 00 10 01 14 01 6D | P |d; x m|
    80 F7 | |

    is corrupted into this:

    00 F0 41 10 6C 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F | A l |
    10 7F 7F 6C 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F | l |
    20 7F 6C 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F | l |
    30 6C 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 6C |l l|
    40 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 6C 7F | l |
    50 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 6C 7F 7F | l |
    60 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 6C 7F 7F 7F | l |
    70 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F F7 | |

    00 7F 7F 7F 7F | |

    The above is a Roland JD-990 patch. It plays back fine from within Logic. It is only the realtime thru that is a problem. Thanks.
  15. volovicg

    volovicg Senior member

    I'll be Damn!!!
    I was able to reproduce your issue....Logic records if fine and plays it back fine, but when passed on as part of midi thru the data gets corrupted..... So I wanted to tell you - you are right... I will mess with this a bit and we should both let apple know....

    Sysex #3.gif
  16. JamesBRey

    JamesBRey New Member

    Thanks for the confirmation, Volo!

    I am not sure but I think this problem MIGHT BE related to another problem I have had for years now regarding Logic and SYSEX transmissions. I program deep Logic environments to control older synths via MIDI - you can see some of them here:

    Since Logic 8, there has been a corruption of the CHECKSUM of SYSEX fader output. Some synths don't care and ignore the bad bytes, but others reject the message (such as the JD-990) - and thus, will not function. I have verified this in numerous ways and have sent all the related documentation to Apple in Hamburg to ask for a fix, but to date none is forthcoming.

    I suspect the two different issues may be related somewhere in the code but I do not know for sure. Since I have contacted Apple on numerous occasions about this - it would be helpful if other users did the same I think. Probably not a high priority for them, but I hope they can make it right at some point.

    Let me know what you find out, if anything. And thanks for your diligence in the discovery!
  17. volovicg

    volovicg Senior member

    That is very cool stuff..... I thought I might have been educating you a bit - but clearly it was the other way around....:)
    I will send a video onto apple
  18. JamesBRey

    JamesBRey New Member

    Thank you very much Volo - I really appreciate you taking the time on this.

    You might mention the corrupted CHECKSUM of SYSEX faders since Logic 8 also, I hope to light a fire there and get this fixed finally.

    Kind Regards,
    GP_Hawk likes this.

Share This Page