Metronome Count-in

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
Posts: 11

Post by danaswarb » 06-20-17 2:24 pm


Right now, the metronome is counting in with 6 beats so that it sounds like my MIDI is beginning on beat 3 of the second measure. I would much prefer if it started at beat 1 therefore if it would count in with either 4 or 8 beats. No matter how I edit my MIDI I can't make it begin with anything but 6 count-in beats.

Does anyone know if there is a way to fix this or customize this?



Posts: 32

Post by eFse7en » 06-20-17 2:47 pm

I have noticed the same thing in following song Back To The Future - Main Theme.

First 2 bars are 4/4, music starts on 2nd beat, but the count-in metronome has 6 clicks: "low High low low low High", while I would rather expect 2 full bars of metronome and any fillings before the music starts, so in this case 9: "High low low low High low low low High".
I have also noticed in other songs even with 7/8 metronome clicks, that many of them starts with 2nd low click, instead of first high click, which is odd.

Posts: 12331

Post by Nicholas » 06-25-17 8:32 pm

I agree that this is a bit odd.

If I'm remembering correctly, while the metronome ticks using the first measure's time signature (which itself is problematic if the author encoded a pick-up measure as something like 1/4 followed by a change to say, 4/4) but the behavior both of you have noticed is the time Synthesia decides to start playing ticks. Instead of using the time signature (for historical/legacy reasons), we picked an arbitrary amount of time (5 seconds, I believe) that it will tick before the first note.

At the time, I think this was to combat the pick-up measure problem. If the author did pick 1/4 for that first measure and we started the metronome "two measures ahead of the first note" instead of "5 seconds before", you'd only get two, quick "High" ticks before the song started. There are examples in the other direction: two measures of 4/4 at a very slow tempo like 60 bpm would be a full eight seconds of ticking before the song started.

Some hybrid approach where Synthesia picks chooses exactly the number of full measures it would take to fill at least 5 seconds with ticking might do the job. I think that's where the discussion ended up all the way back at the end of 2010. It's been a matter of giving this time to make its way up to the top of the priority list.

Posts: 11

Post by danaswarb » 06-26-17 4:47 pm

Thank you for the link to the explanation of when you fixed it. Wow, user DamienBlack must have spent quite some time on that idea.

I am not sure how easy to implement this would be, but what if you added count-in options so that option 1 is time-based (what you have right now): X seconds (according to your post from 2010 it is currently 5 seconds. Perhaps you could make this user-editable?)

As a second very simple option could be time-signature based. Users could select number of bars of count-in (default could be 2) and they could select the measure they want to use as the time-signature. The default measure for the time signature could be measure 2 which would solve the problem of those pesky pick-ups.

At a later date, you could implement DamienBlack's instructions as a 3rd default option. I am not sure how effective the vote method would be because what if the song is changes to a different time signature early on and therefore the majority time signature is actually not what the user needs as the count-in.

Thank you so much Nicholas! I look forward to hearing your perspective of how challenging/time-consuming this would be to implement. I am quite naive to the kind of programming required to create a program like Synthesia.

Posts: 12331

Post by Nicholas » 06-28-17 9:47 pm

The scheme I just outlined in my last post (keep using the 1st measure's time signature but extend the number of ticks to be the multiple of a full measure's worth of beats) would be the fastest/easiest to implement.

Adding user-facing configuration options is always the hardest/slowest. (Even slower than fully implementing DamienBlack's idea.) With user interface, not only do you have as many different new combinations of behavior to test as you give users options (all while ensuring each combination works against every possible MIDI situation that DamienBlack described) but there's all the additional work of adding UI controls, picking the words and help messages that need to appear nearby, testing those bits, sending the language off to the translators for our 10 supported non-English languages, and finally testing again with each language to make sure the words fit in the space you put them.

All of that mess is why you'll always see me (and many other developers) reach for the behavior-change-only fix first that won't have any impact on the user interface.

:) Optional reading: In particular, the "will the language fit in the available space" problem is why you'll sometimes see interfaces that use only icons and the only way to learn what each control does is hover over it with a mouse until a tooltip appears. Tooltips are essentially allowed the entire screen to fit their text if necessary, so the length of translation doesn't matter. I remember lots of games from the 90's and 00's where I was impressed how little text there was that had to "fit" somewhere on the screen. Most of Peter Molyneux's work over the years uses this trick (all the way back to Populous, Theme Park, Dungeon Keeper, The Movies, etc.) For text that did have to appear on the screen, he usually went with a ticker-tape style control because that removed the length limit again: longer translations would just take a little longer to tick across.

Posts: 11

Post by danaswarb » 08-14-17 3:02 pm

Super interesting!

My work around this problem was adding a channel in my MIDI track that has a count-in and assigning those notes to channel 10 to ensure they were in the percussion channel in Synthesia.

Thank you!

Post Reply