Download from the pink box above.
Changes in r1065 since r1046:
- Mac configuration tool. Let me know if it works! (This changed the way the graphics work a little. See below.)
- Every included MIDI file has been updated. TieDyeGuy quantized them and I spent way too much time stripping extraneous junk out of them (random controller re-initializations, extraneous tempo events from too-sensitive recording software, unifying all songs to use channels 1 & 2, etc.) Thanks TieDyeGuy!
- Complete scoreboard wipe! Switching between this version and older versions of Synthesia will repeatedly wipe your scores! This is the case because:
- Scoreboards have been decoupled from MIDI files. So long as the notes are identical (same onset, pitch, and length), you can modify the other events in a MIDI file and your scores will still appear on the same scoreboard!
- Small scoring change related to the decoupling. See below.
- Added missed-notes statistic to bottom-of-the-screen stats in rhythm mode.
- Pedal events are now sent out to all channels involved in You Play tracks instead of just the most-recently-used You Play track channel.
- The "Bank Select Fix" option is now always enabled (instead of just in Vista and OS X). The same problem applied to certain devices, so it's basically platform independent now. The fix should also be handled a little more efficiently now.
- Folder names in the song library will now show the entire name... even after any periods. ("0.0 - First Pieces" and "0.1 - Primer Level" were both showing as just "0".)
This includes the default video mode, custom full screen, and manual settings. Windowed mode has been left out for now. I plan to get back to it after the 2010 development push. Also, in order to get the custom full screen stuff to work, I changed Apple OpenGL APIs (from AGL to CGL). This had the side-effect of making full-screen mode a little, uh... stronger than it used to be. If it's on your primary screen, you can't really get out to the dock or application menu anymore. After windowed mode is added, the "windowed mode + maximized" solution (that is already very cool on the Windows side) will bring things back to the way they were most recently.
Practice Overage Scoring Change
Decoupling scores from their MIDI files had an interesting side-effect: the same set of You Play notes can technically belong to two different length songs. If you make the non-You Play tracks longer, or bump the You Play section forward (or backward) and add background stuff in the new areas, you'll end up with a matching You Play note set but a different song length.
One component of practice mode's scoring was based on song length. In particular, about 38% of your score (75% / 2) was based on your timing. Extra time hurts your score. It used to be calculated:
TimingPercentage = SongLength / (SongLength + ExtraTime)
Where eventually, FinalScore = (38% * TimingPercentage) + (the rest)
It could even be argued it wasn't a very good way to do it in the first place. If you took literally DOUBLE the amount of time to play something than you were supposed to, you'd still get a 50% TimingPercentage... or basically a free 19% of the available practice mode points.
Because of that and because the song length can now vary, I'm taking a different approach based on the total duration of all You Play notes summed. The new calculation is:
TimingPercentage = (TotalYouPlayTime - Overage) / TotalYouPlayTime
(... with a minimum of 0%. It's not allowed to go negative.)
Now in the "double" case, you get zero points for timing. Anything up until the double case and you'll get something. It's linear now.
(Though, while I was reading the code to compose this post, I just found a bug. The way I wrote it is the intent. The way it works is that the "total duration of all You Play notes summed" really is every note -- even in a chord. If your song is one note that lasts 4 seconds, the total you play time is 4 seconds. If your song is 4 seconds but it's a three note chord, the sum will be 12 seconds. That's not the desired behavior. I'll have to figure out how to calculate what I really mean: the total length of time any one (or more) You Play note is active.)
EDIT: I've started a scoring page on the Wiki so I can start maintaining a centralized location to keep this type of info.