Page 1 of 1
Posted: 08-15-23 11:36 am
by hikari_no_yume

I like to use Synthesia to play back MIDI files with my keyboard's built-in MIDI synthesis.

My setup:
  • OS: macOS Monetery 12.6.3 (Intel MacBook)
  • Synthesia version: 10.9.5893
  • MIDI interface: Steinberg UR22 mkII
  • Keyboard: Yamaha PSR-350
For a long time, I've had SysEx and Bank Select messages disabled in the settings. I'm not sure why I disabled SysEx messages. I had Bank Select messages disabled because my keyboard doesn't support “capital tone fallback”, so unsupported banks end up silent.

Yesterday, I turned both of these options back on. I listened to a selection of General MIDI and Yamaha XG MIDI files with these settings on and the results were pleasing.

But today, I opened Synthesia again and suddenly, all these songs which played fine yesterday with the same settings suddenly sound terrible, because every instrument is replaced with a piano voice! This happened both for General MIDI and Yamaha XG MIDI files. I was very confused.

So I tried disabling just SysEx messages again, and the all-instruments-are-pianos issue was gone, but those Yamaha XG MIDIs didn't sound as good, because I guess SysEx messages used for effects and so on were no longer getting through. I tried toggling the setting on and off, and every time I turned on SysEx messages, the problems returned.

I then of course tried restarting Synthesia, disconnecting and reconnecting my MIDI interface, and turning my keyboard on and off. None of these did anything to the problem.

After thinking about the problem a bit, I wondered if Synthesia was only sending a GM reset when the SysEx option was turned off, for some reason. I found out about the secret settings area (hold Shift on start), and turned on GmReset. It did… nothing, so I turned it off.

I then tried turning on GsReset. That seemingly fixed the issue! But then I turned off GsReset, and the issue was still fixed! It's also very strange that this fixed things, because my keyboard's manual does not say anything about supporting the GS reset SysEx message, only the GM one.

Further experimentation suggests that's a red herring. It seems like there's a random chance that, when I start Synthesia, it will play back all instruments as piano, rather than with the correct voices?

Sorry I can't be more specific, I really have no idea…

Posted: 08-16-23 3:30 pm
by Bavi_H
Reset sysex needs small delay?

This section doesn't have a solution to try, just an idea of a possible cause for further possible testing.

The MIDI files you are playing probably begin with some kind of sysex reset message (GM, GM2, GS, or XG). When the Synthesia's Settings > Advanced > MIDI Data > SysEx Messages switch is turned on, Synthesia will send the sysex message in the MIDI file. In my tests, it appears Synthesia will send the sysex message immediately followed by Program Change messages, even if there is a delay between the sysex and Program Changes in the original MIDI file.

Perhaps your keyboard needs a small amount of time to process the reset sysex message, during which it will ignore and drop any other incoming MIDI messages. If Synthesia is sending the Program Change messages while the keyboard is still ignoring the incoming MIDI messages, they won't take effect and the channel will default to a piano sound.

If the time between when Synthesia sends the sysex message and the first Program Change message is almost the same time needed for the keyboard to complete its reset, it might intermittently work if the reset completes before the Program Change and intermittently not work if the reset doesn't complete before the Program Change.

Disable other reset messages?

In Synthesia's Shift+start Configuration window, you might try disabling all the settings that begin with "Midi.Reset":

Code: Select all

Disabling all of these settings will disable all the reset messages that Synthesia sends when you switch screens or begin playing a song. (Note: Synthesia's Settings > Advanced > MIDI Data > SysEx Messages setting is an independent setting that will still send sysex messages from the MIDI file if it is enabled.)

Disabling all of the reset settings might help if the problem is caused by too many messages being sent at once.

On the other hand, disabling all of the reset messages might cause instrument sounds and controls from one song to affect the following song, if the next song doesn't send a reset sysex or reset control messages. So you might want to re-enable the defaults when you are done testing. (In Synthesia's Shift+start Configuration window, select each setting and click the Reset button to change the setting back to the default.)

Posted: 08-22-23 3:58 am
by hikari_no_yume
Yeah, a timing issue is very plausible. Something I should have mentioned is I recently switched from a budget (probably dubious quality) MIDI interface to this more trustworthy Steinberg one, and I wouldn't be surprised if there's a difference in timing characteristics that's causing trouble.

Posted: 09-01-23 11:28 am
by hikari_no_yume
OK, I'm getting the all-instrument-voices-are-piano thing even with a completely different synth: the Roland SC-7. I'm starting to suspect UR22mkII might be the problem somehow.

Posted: 09-01-23 11:38 am
by hikari_no_yume
I get similar issues with my old USB MIDI thing actually. :/

But I think a confounding factor is it's connected via a USB hub that also has an external hard drive, a mouse and a keyboard on it. That's probably causing trouble.