First note doesn't play any sound in v10.7 Preview

Trouble with Synthesia, your keyboard, or adapter? Think you found a bug?
When describing problems, always mention your OS and game version (shown at the bottom of the title screen).
  • If your keyboard has USB or MIDI ports, there is a tremendously high chance (>99%) it will work with Synthesia. See what you'll need on the keyboards page.
  • If you have a Logitech webcam and can't get your keyboard/adapter to work, see this post.
Post Reply
paronym
Posts: 18

Post by paronym »

Hi, I posted a message in the thread called "10.7 preview r5491 - Simple Multi-Track Song Recording", but I see other threads are getting actively replied to while the messages (from multiple users) in that particular thread don't seem to be getting replies (Nicholas, may I suggest using the link for 'Active Topics' view when visiting the forum?). So I thought I'd try posting here in the bug reports section in the hopes it may be seen.

Anyway, below is the message I posted to that thread:

I've found a bug in this Preview version that doesn't appear to exist in v10.6.

In this 10.7 Preview, I've found that when I go into 'Play a Song', the very first note of any music doesn't play any sound on my Casio keyboard. Whether I use 'Watch and Listen Only' or 'Practice the Melody', the first note makes no sound. It's not a timing issue -- in 'Practice the Melody' mode, even if I wait several seconds before hitting the first note, it still makes no sound. Only from the 2nd note onward does the sound work.

I've installed the latest stable version (v10.6) to compare and haven't been able to reproduce the issue there. That version seems to work fine.

I'm using a Casio CT-S300 keyboard with Windows 10. My input and output are both set only to 'CASIO USB-MIDI'.
Nicholas
Posts: 12490

Post by Nicholas »

Sorry for the extreme wait on this. There isn't an excuse. I dropped the ball.

Now for the good news: I can reproduce the behavior. I've got a Casiotone LK-S250 for testing. Comparing it to the CT-S300, they're practically twins! This is fortunate, because I think you may have uncovered a bug in the Casio itself. That these are both recently-released keyboards, almost certainly based on similar firmware, it was a nice coincidence to already have it on hand.

One observation: I seem to be able to work around the problem by playing any random note before the song's first note is played. How curious.

It's definitely new behavior to 10.7. Synthesia is doing something that Casio doesn't like. I've tried a couple one-off attempts to find the cause, but haven't been successful yet. It's looking like I'll need to do a proper git bisect to find the culprit. I should know more soon.
paronym
Posts: 18

Post by paronym »

Thanks for the update. I'm glad to hear that you've been able to reproduce it. It is indeed fortunate that you happen to have a keyboard in the exact same family. Good luck with hunting down the culprit! :ugeek:
Nicholas
Posts: 12490

Post by Nicholas »

Culprit found! That was... an esoteric one. It came down to super boring, ultra-technical C++ details that boil down to "my language of choice is a sharp tool that sometimes cuts me". :lol: Something that used to work stopped working after a routine refactoring during some improvements a few (well, several) months ago.

It was less "Casio has a bug in their firmware" and more "Casio firmware misses the next note after receiving a few bytes of unexpected MIDI garbage data that leaves the stream right in the middle of an incomplete message". The solution was for Synthesia to stop sending unexpected garbage data. ;)

I think that's the first time in the project's history that invalid MIDI data actually made its way out onto the wire. How embarrassing.

Found and fixed for the next preview. Thanks again for the report!
paronym
Posts: 18

Post by paronym »

That's great news -- congrats on tracking it down. I appreciate the explanation as well, as I'm always curious about the causes of weird things like this.

I'm glad to hear it's been fixed, and glad I was able to help by reporting it.
Post Reply