Jump to content

Logic X corrupting all SYSEX data dumps


JamesBRey

Recommended Posts

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?

 

Thanks!

Link to comment
Share on other sites

Why do you have to send it through Logic? Can't you send it to the respective MIDI devices directly?

 

How is the data getting corrupted?

 

If you don't pass the data thru, and instead just record it in Logic, is it corrupted then? Can you playback the recorded data to the destination synth ok now?

Link to comment
Share on other sites

Sysex is much more compact and comes thru faster than CC events..  Logic needs time to process incoming data, and may 'miss some'.. I've had that happen to me.... 

If you want to just send program changes, you can use CC events MSB/LSB/Prog..  Google MIDI CC events, There is a list of 127 commands which are quite thorough..

 

i use a control sequence, at the beginning of each midi hardware track 

 

Jpeg of midi control seq - https://app.box.com/s/d4096mq0gb1uw4epp6dc

 

 

actual midi - https://app.box.com/s/z3ek8mcbkh9wekrd4eza

 

You can add as many CC parameters as you want..  Also add a CC event reset all parameters..  into it. This way pitch-blend, and all controllers are set to nominal

 

When I have a lot of midi hardware instruments, I stagger the times of of the control sequences by a clock count.. 

 

you can have a number of events on one clock count.. But when I get towards 10 or more on one clock count data gets lost..  Corrupted sysex data can reak havoc on hardware..  Just a power down/restart will fix.. 

 

Years ago, I used to record sysex data dumps from hardware to Logic.. I would obviously put the dumps on a separate track.. I also greatly speeded the BPM UP or DOWN.. I don't remember.. That seemed to help in catching and playing out the data. 

 

Different hardware will respond faster or slower to incoming data, depending on instrument and manufacture..  Hence the tempo change on Logic playback.. so the hardware has time to process all incoming data.. Although you say you can see data is corrupted on playback?.... 

 

Good luck

 

Mark Styles

Link to comment
Share on other sites

This has been an ongoing problem in Logic going back to Logic 9, though possibly as early as Logic 7. Sysex data will be correctly recorded by Logic, but on playback the data gets somehow corrupted.

 

To digress a bit... Sysex data transmitted from a device isn't transmitted any faster than any other kind of MIDI data. In fact, the transmission rate of MIDI is fixed, meaning all data is transmitted at the same rate. But when playing sysex back into a device, it's a good idea to lower the tempo so that the device's MIDI buffer doesn't get overwhelmed with data (buffer overload). Indeed, MIDI devices capable of transmitting sysex aren't necessarily designed with large enough MIDI input buffers that would otherwise allow their internal processors to handle an incoming sysex stream at full speed.

 

But anyway... because of this ongoing problem with Logic, I've resorted to using the Snoize sysex librarian for recording sysex dumps. It's very bare bones but works flawlessly. www.snoize.com

Link to comment
Share on other sites

HI Group.      Thank you for all your thoughtful and helpful replies.     Here is a follow up - but the bottom line is why is Logic not handling MIDI data that is within the SPEC for MIDI as defined by the MMA?

 

 

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.

 

 

Thanks.

 

 

jbrey21@yahoo.com

Link to comment
Share on other sites

  • 3 years later...

I know this is an old thread. But I also found that Logic is not recording SysEx correctly.

 

On playback, after each message of recorded SysEx, another 15 bytes are send.

These bytes are not visible in the event list.

I can see it in MIDI Monitor, which spies on Logic's outputs.

 

However, if you export the recorded region to a MIDI file, and then import again, these 15 bytes are gone. They also dissapear when you edit the SysEx messages in the event list.

 

I think there's some buggy code generating extra bytes, possibly from the old Checksum option in previous versions of Logic. I'm now on 10.5.1 and the issue still remains, which makes it impossible to record and playback SysEx in Logic.

Link to comment
Share on other sites

I know this is an old thread. But I also found that Logic is not recording SysEx correctly.

 

On playback, after each message of recorded SysEx, another 15 bytes are send.

These bytes are not visible in the event list.

I can see it in MIDI Monitor, which spies on Logic's outputs.

 

However, if you export the recorded region to a MIDI file, and then import again, these 15 bytes are gone. They also dissapear when you edit the SysEx messages in the event list.

 

I think there's some buggy code generating extra bytes, possibly from the old Checksum option in previous versions of Logic. I'm now on 10.5.1 and the issue still remains, which makes it impossible to record and playback SysEx in Logic.

 

 

Are you trying to send and receive sysex dumps or do real time control? I created a Juno-106 panel in the environment that works perfectly, and that is all sysex. If you are trying to do dumps use sysex librarian.

 

Make sure you don’t have other gear spitting out sysex data that is getting merged with the data you want. For example, my MOTU midi interface constantly throws out sysex. I have to route that port to a dead end monitor object so that doesn’t get merged with other data.

Link to comment
Share on other sites

I know this is an old thread. But I also found that Logic is not recording SysEx correctly.

 

On playback, after each message of recorded SysEx, another 15 bytes are send.

These bytes are not visible in the event list.

I can see it in MIDI Monitor, which spies on Logic's outputs.

 

However, if you export the recorded region to a MIDI file, and then import again, these 15 bytes are gone. They also dissapear when you edit the SysEx messages in the event list.

 

I think there's some buggy code generating extra bytes, possibly from the old Checksum option in previous versions of Logic. I'm now on 10.5.1 and the issue still remains, which makes it impossible to record and playback SysEx in Logic.

 

 

Are you trying to send and receive sysex dumps or do real time control? I created a Juno-106 panel in the environment that works perfectly, and that is all sysex. If you are trying to do dumps use sysex librarian.

 

Make sure you don’t have other gear spitting out sysex data that is getting merged with the data you want. For example, my MOTU midi interface constantly throws out sysex. I have to route that port to a dead end monitor object so that doesn’t get merged with other data.

 

It's sysex dumps. I do use sysex librarian, but for I'm working on a Lemur template that relies on the sysex dumps being stored within the Logic session.

 

And there's no other sysex coming in, I also tested it with a sysex dump from a Roland A-90, same results. After each system exclusive message, another 15 invalid bytes are sent to the output port, as you can see from the screenshot below.

 

685039071_Screenshot2020-09-22at11_35_49.thumb.png.0c7207f671f59ac6e9a3a1b0a38e28d6.png

Link to comment
Share on other sites

Sure, good idea. Below a Logic session with the corrupted recorded sysex.

 

When you open the event editor, the invalid bytes are not visible. As soon as you edit a sysex, or even double click and close it, the invalid bytes disappear. I use MIDI Monitor to spy on the output of Logic. In the preferences you can set it to expert, to see the values of the invalid bytes. I can't see a pattern there, although it's the same on each playback.

Sysex Test.zip

Link to comment
Share on other sites

****BUG CONFIRMED*******

 

Ok here are some observations for continued discussions.

 

1/ I am using 10.5.1 ( reference)

2/ Issue confirmed - there is data at the end of the sysex (post F7 that cannot be seen and is sent which is invalid).

3/ Selecting the sysex message and in the event list (one time) corrects this issue.

4/ I could not reproduce this issue with shorter Sysex messages - so the bug may be an internal buffer or string mis-count.

5/ I will report to apple as well.

 

SYSEXISSUE.thumb.gif.ebd89a65a7dc148c7d2fc81949423da2.gif

 

 

Here you see after I click once for each sysex - midi output works as expected.

 

 

1808995164_ScreenShot2020-09-22at12_00_42PM.thumb.png.b8365b6af18f78f59b903fbf24289a67.png

Link to comment
Share on other sites

  • 1 year later...

Hi,

 

I would like to bring this up again. I´ve made some videos with recording sysex over an existing midi track and playing it back. This is something I really would like to achieve: Recording midi tracks with external midi synths and then afterwards recording the tweaking of - let´s say - the filter via an external controller until I´m satisfied with the tweaking. But... see the videos. Is that the status quo? Or am I doing something completely wrong?

 

Do someone has different experiences with such a task?

 

Philip

P.S.: Hmm, couldn´t attach a video, because I always got the error message ´Invald file extension´ with .mov as well as with .mp4. Is it not possible to load up videos here? I made quite some effort to produce these videos specifically for this site and thread...

Link to comment
Share on other sites

At least I hope that it´s the same issue. In my videos you can hear how Logic corrupts the sysex data - if I´m not making another mistake.

With my posts I´m trying to find out if it´s really true and there´s no way in recording sysex data with Logic the way I would like it to do.

Why do you ask?

Link to comment
Share on other sites

SysEx is pretty much unusable for this type of continuous control. There's the entire class of Continuous Controllers (CC) in the MIDI definition for exactly this purpose.

 

SysEx is designed to work asynchronously, that is, one Sysex package is transmitted as one block, in bulk, as fast as possible, without interruptions, for purposes like transferring one synth patch, or an entire bulk of synth patches. If, say, a Note On or any other MIDI message happens to fall into one of these blocks, the block will get corrupted and not be recognized properly by the receiver. It may be that Logic is smart enough to not send any other data during a Sysex transmission which would explain choppy playback.

 

SysEx also is *very* data intensive as it encodes data type, synth manufacturer, synth model, synth ID, parameter number and the actual parameter value in every single event. Asynchronous, even.

 

Synths usually prioritise correct decoding and proper application of SysEx data to their sound parameters over note timing and glitch free playback. This is ok when you create sounds, but not ok when you make music.

 

CC on the other hand is one byte for address and data type, one more byte for the value. End of story.

 

So, set up your synths to send and receive CCs and you're set. You can even use Automation to further tweak your modulations then, which also is impossible with Sysex.

Link to comment
Share on other sites

Because if it's a different issue, and not related to the issue in this thread, it's better to make a dedicated post for it, rather than add it on to different older threads and potential confuse them for other people with varying different issues.

 

So to check - you've confirmed the sysex bytes leaving Logic are corrupted from the message it should be (so the receiving device doesn't even recognise the messages)?

 

Note that none of the people reporting and replicating the issue above have come back with reports of running the tests on newer versions and letting us know if this was fixed or not, so whether this bug still exists in current versions is unknown. If you could provide examples of the byte strings that are getting corrupted, along with your current version number, that would be helpful to reproduce and try to see whether this issue is indeed still in current versions of Logic.

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.
Note: Your post will require moderator approval before it will be visible.

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