Synthesia

http://synthesiagame.com

Copyright ©2006-2015 Synthesia LLC
Synthesia is a registered trademark of Synthesia LLC in the United States.

Synthesia has been created primarily by Nicholas Piegdon and Timothy Lusk. The following people have also contributed:

The music in the "Ash's Exercises" folder has been contributed by Ashley Kampta, and may be used under the Creative Commons CC-BY-NC 3.0 Unported license. Ash goes by Electrode in the forums and posts new exercises, here.

The music in the "G Major Music" folder is courtesy of Gilbert DeBenedetti's G Major Music Theory website.

All of the pieces were split into two-hands, quantized, corrected, and cleaned up by Choul, Rickeeey, TieDyeGuy, DamienBlack, GoPlus, and Nicholas from the Synthesia Talk forums.

Finger hints were added from the original PDF sheet music at G Major Music by Pianotehead, TieDyeGuy, Zaeleus, DC64, and Nicholas.

Finger hints for Chorale Setting in F Major, composed by J. S. Bach were provided by jimhenry from the Synthesia Talk forums.

Music Device output test music is Fugue in G Minor KV 154/385k, composed by W. A. Mozart, courtesy of the Mutopia Project.

Synthesia 10.2 — Smoothing Rough Edges
NOT YET RELEASED

Added several help buttons throughout that launch how-to guides on the Synthesia website.
Enabled seven more songs in demo mode: one in each category.
Added "Song Paused" label while song is paused. If the song was paused while also stopped at a note in melody practice, it could be confusing or frustrating when attempting to play the next note didn't resume the song.
Added "Toggle Loop" shortcut (default: /) to enable or disable the current loop. Instead of removing it completely, now you can just turn it off for a while.
Added "Custom" option to the zoom menu: remembered between songs (and Free Play) automatically. This is useful when trying to align the keys on your physical keyboard with Synthesia's on-screen keyboard. Custom zoom also disables snapping to whole keys, so you can fine-tune your zoom level.
Improved sharpness of falling note graphics when drawn very large.
Unlock keys can now be used in Synthesia for Android. Traditionally they were only usable in the desktop versions.
Song names now appear in the title bar of the window during play.
Interface language choice is now saved for each user profile.
The included set of songs are now packaged directly inside the Windows version of Synthesia, to match all our other supported platforms. This should make initial setup easier for users that prefer to download the stand-alone zip Synthesia releases.
The included songs are now shown in the song list much more quickly.
The Synthesia Configuration tool has been merged into Synthesia. Hold Shift while starting to open the configuration window.
The metronome now continues to run during a loop delay.
Added "Cycle Output MIDI Channel" shortcut to force which channel user notes are sent using. This new shortcut is useful if you're routing Synthesia's output through something like a VSTi with a few instruments prepared beforehand. Each time the shortcut is triggered, the forced output channel will cycle to the next MIDI channel from 1 to 5, starting back over at 1. This lets you change instruments at a button press. (This will not override a device's specific output channel if it has been set to something other than Omni.)
The readme can now be opened from SettingsAdvancedAbout & Legal.
You are returned to the same screen used to load a song: if you clicked an entry in the Recent Songs list on the title screen, leaving that song will return you directly to the title screen. Launching a song directly via right-click shortcut or using a synthesia:// URL will also return you directly to the title screen.
Added an asterisk icon to the key and note label popup menu to indicate the recommended/default setting for each.
Toggle the new Keyboard.LabelContrast advanced option to switch to a higher-contrast style of note label with black text and no outline.
Added Keyboard.LabelBonusSize advanced option to adjust how far outside of note bounds labels are allowed to be drawn. Units are in (scaled) pixels.
Windows-only Graphics.ScaleOverride advanced option to force a particular DPI scale. Valid ranges are between 1.0 and 2.0.
The old Gameplay.AutoShiftToBestOctave option has been promoted and can now be changed inside Synthesia. See: SettingsGameplayKeyboard Octave.
The System.SoftwareKeyboardMapping advanced setting now supports Unicode virtual piano mappings.
Note labels smoothly scale again and now appear slightly larger to improve readability.
Output devices that are enabled but not used for anything are no longer shown on the title screen.
The loop delay slider now snaps to beats.
Folders are now scanned recursively by default.
Synthesia no longer prevents loading MIDI type-2 files.
Increased the contrast of song location highlight in the sheet music display.
Flattened out a few UI elements to follow the modern trend.
Windows installer now only requires a single click.
A few improvements to menu navigation: Show Game Help (default: F1) will also exit the help screen, and Menu Back (default: Esc) will now close any open menus and exit any pause modes (loop, bookmark, finger hints, etc.) the first time, before attempting to exit play the second time.
Key lights are now only shown for the entire duration of each note when you're in "Watch and Listen Only" mode. They behave the same as they once did in Synthesia 9 whenever you are playing.
The old readme, license, and privacy policy text documents have been combined into a nicely formatted HTML readme.
Notes at the very beginning of the song now play in subsequent loops.
While previewing an individual part in a song with many parts, instruments were sometimes incorrect.
In songs with many parts, instruments should be correct more often. Otherwise when a song has more parts than the 16 available MIDI channels, often the only solution to hearing the correct instrument is to mute some of the other parts.
Song preview audio no longer hangs when you click the recycle/delete button.
Added a workaround for a bug in the Windows 10 MIDI synth that prevents it from being opened within the first few seconds of application launch.
The song list now correctly sorts numbers in song titles using natural order. For example, instead of songs being ordered like 1, 10, 100, 11, 2, they will show as 1, 2, 10, 11, 100 now.
The icon shown for "Fiddle" is now actually a fiddle instead of the generic synth icon.
Free play now shows notes from triple-sensor keyboards (where more Note On events arrive before all the Note Offs) correctly.
Dramatically increased the speed of key spark effect calculations. Particles should now have a much smaller impact on frame rate.
Songs can no longer be shown more than once in the song list, regardless of which combination of folders are being watched.
Synthesia no longer sends all song events before the first note twice.
Interacting with the falling notes (e.g., creating bookmarks, setting finger hints, adjusting loops) now tracks the mouse cursor correctly while paused during a loop delay.
Increased the delay after a Windows MIDI device reset before Synthesia begins sending events again. This should give devices a little extra time to finish their reset operation.
The sheet music resize bar now always extends to the right side of the screen.
Synthesia now recovers gracefully from reading corrupt/locked settings.
Walk Entire Loop Forward (default: >) and Walk Entire Loop Backward (default: <) now work when there isn't already a loop, in a song that contains a bookmark at the very beginning.
The Windows version of Synthesia is now more responsive while running in the background when drawing using DirectX.
Prevent crash while loading songs with extremely "wide" measures. (Or: Synthesia can now handle 82/4 time signatures.)
Instruments can now be changed more reliably while previewing a part.
Removed the button that launched a browser to view recital scores. Recitals are no longer tracked on the Synthesia website for technical reasons. (Look forward to an improved system coming in Synthesia 12.)
OS X should no longer show "Folder Missing!" for the built-in song list.

Synthesia 10.1 — Android Quality Pass
January 2015

Added Dutch user-interface language support.
The free songs available from the Synthesia Music Store are now treated as demo songs while Synthesia is still locked.
When changing track colors, an X is now shown on the gray "hidden" entry.
Performance results were sometimes being sent to the wrong scoreboards.
Transitions between screens would sometimes get stuck on the last screen.
Loops would sometimes hang at the end, after the first time through.
Rewinding sometimes wouldn't reset the hit/missed state of notes near the previous song time.
Synthesia for tablets no longer shows an unresponsive black screen after using the Menu Back shortcut on the title screen.
Suppressed a crash in anonymous performance upload.
MIDI events sent after a reset (between screens) were sometimes lost.
Resetting a percussion track now hides it once again.
Rhythm/recital points now count up correctly again.

Synthesia 10 — Hand Assignments and Free Play
December 2014

The hand assignment and "Played by X" track settings have been combined in a way that makes a lot more sense.
Choosing "Custom" for a track's hand assignment opens a new screen that allows you to choose left/right/background on a note-by-note basis.
On the Custom part screen, you can "discard" a note, which will hide and mute just that note.
The Simple/Advanced song settings views no longer duplicate functionality and have much clearer defined roles.
Free Play: experiment with instruments, back-beats, and chords as you play.
As you approach the end of a loop, the falling note area now shows the next iteration of the loop instead of notes from later in the song. So there is no longer a disorienting jump just as your loop wraps around.
You can now add a delay between successive loops. Control the delay length by adjusting the slider in loop editing mode. The default is 1.5 seconds.
Added Italian user-interface language support.
Finger substitution hints. After adding a finger hint to a note, the hint popup should show a '+' between the hands for the same note. Selecting it will add another hint that can be changed independently of the first. This kind of hint indicates the finger holding that piano key should transition to the other finger without releasing the key.
Music output devices can now distinguish between "My Notes" and background parts. If you disable "My Notes" output, it will prevent duplicate notes caused when both your key presses and Synthesia tell your keyboard to play the same note.
The vertical divider lines between B/C and E/F are now shaded alternately to help quickly find your place on the keyboard.
Improved anonymous analytics to include whole performances.
Music output devices can now control your keyboard's "Local" setting, if your keyboard supports it. This is an alternative method to solve the duplicate note problem mentioned above.
Music output devices now have a master enabled/disabled toggle so you don't have to micromanage the individual (notes, metronome, percussion, etc.) settings whenever you just want to quickly switch devices.
Music output devices now have an "Output Channel" setting, which is handy for older keyboards that don't listen to all channels.
You can now slide the keyboard below the screen. This is helpful if you're using a projector or large screen with Synthesia keys lined up with your own. Pause the song, and use the slider that pops out at the right side.
Keys now visually lift briefly between back-to-back successive notes.
You can now assign shortcuts to MIDI Machine Control (MMC) and real-time MIDI messages. This is useful with keyboards that have extra buttons.
Extended media and browser keys (play/pause, search, etc.) on typing keyboards can now be assigned to shortcuts, in the Windows version.
Pedal+ shortcuts let you hold any of the three piano pedals along with any other input (note, mouse button, key, MIDI CC, MMC, etc.) when assigning a shortcut. These are great for assigning keyboard notes to a routine task like changing the song speed or FF/RW without otherwise "using up" a key.
Sheet music can now be shown or hidden during play.
Title screen news shows the latest information about the project.
Title screen recent songs list lets you jump back to a song in one click.
Multi-touch touch-screen input is now recognized in Windows 7 and 8. You can now use the pinch-to-zoom gestures from the iPad version.
Automatic Windows crash report upload will help catch critical bugs faster.
Windows uninstaller now has an option to remove saved data.
A delete button is now shown when a song cannot be loaded.
The score box now shakes (and error count turns red) after mistakes.
Synthesia now remembers which monitor it was last started on.
Synthesia now supports high DPI scaling on Windows.
Tapping/clicking on a song's rating or difficulty now shows a popup that makes it easier to set and prevents accidental changes while scrolling through the song list.
Keyboard and falling note labels are now easier to read, scale better with zoom level, and now center correctly on small notes.
To add even more contrast behind key and note labels, enable the advanced Keyboard.LabelBackground setting.
Added the "Midi.KeyLightVelocity" advanced setting to override the default velocity of 1 that is used for lighted key MIDI notes. (Some keyboards blink their key lights with velocity=1 and only hold steady at 2.)
Advanced "Gameplay.AllowFanfare" setting that can be disabled to prevent the fanfare song and confetti from happening after finishing a song.
Advanced "Metronome.LatencyOffsetUs" setting to push the metronome ticks forward or backward some number of microseconds, to better compensate for latency between your (piano-only) keyboard and the built-in synth.
The visibility of all bookmark types (including MIDI markers) can now be toggled right from the bookmarks overlay during a song.
The MIDI channel number is now shown for each track on the Hands, Colors, and Instruments screen. This can help map external VSTi settings.
The text from markers stored in a MIDI song is now shown in the margin of the falling note area, just like metadata bookmarks.
The current loop is now saved for each song between plays.
MIDI files using SMPTE time can now be loaded. However, Synthesia cannot generate sheet music from this (extremely rare) kind of MIDI file.
The Learning Pack has been replaced. Instead of unlocking a vague set of premium features throughout the interface, there is now a much simpler "Unlock Synthesia" mechanism that works exactly the same as Synthesia for iPad: when locked only a handful of demo songs are available. Unlocking lets you play any song. All features are always available everywhere. Existing Learning Pack keys now unlock Synthesia exactly as they used to.
Notes are now drawn with flat shading for a more modern look.
Notes played before the song starts are no longer counted as mistakes.
Hitting a correct note more than once (while the note is still running) no longer halts the song or counts as a mistake.
The fast-forward and rewind shortcuts (default left/right arrow keys) now adjust the song by one measure at a time. Previously: 3 seconds at a time.
The various loop editing shortcuts and buttons in the looping overlay will now acknowledge the existence of metadata bookmarks.
Bookmarks can now be created at the very beginning of the song.
Points earned in melody practice no longer depend on the song's speed or how long you spent playing it.
Windows uninstaller now lets you remove music separately from the app.
Several improvements to the Windows installer.
Synthesia now internally keeps track of time much more accurately. For example, the FPS counter is now much more stable.
Large MIDI songs now consume much less memory.
Flagged the Windows executable to allow >1GB of RAM usage, for huge songs.
Substantially improved MIDI loading speed.
The "Midi.ResetAllSoundOff" advanced setting will now also kick off a Hold Pedal Off and All Notes Off message to every channel, too.
Preview versions of Synthesia (downloaded from the "Development Updates" section of the forums) now use a separate "SynthesiaDev" data directory to allow easier testing without changing settings in the official release.
Holding the sustain pedal no longer extends the length of notes for scoring purposes. This was to correct for poor-quality songs that used extra-long notes to create a sustain-like effect, but it had the unintended side effect of teaching bad pedaling habits.
The vertical divider lines between B/C and E/F are now shaded alternately to help quickly find your place on the keyboard.
Sustain pedal is now sent to output even during "Watch and Listen Only".
Pitch bend wheel is now sent to output.
Removed colored note name option.
Removed letter grades from the "Points Earned" and "Statistics" screens.
Removed several command line options: --bookmark-count, --play-mode, --channel-mode, --user-part, --simple-mode, and --simple-sheet.
The config tool now only shows settings that cannot be set in Synthesia.
The list of advanced settings in the config tool is now alphabetized.
Only prevent screensavers when Synthesia is the currently active app.
Finger hint interface can no longer fall off the edge of the iPad's screen.
The hotspot for data table column sorting now resizes correctly when the Synthesia window is resized.
The OpenGL renderer should no longer show texture filtering artifacts.
In rare cases, some controller messages weren't being sent to output.
Don’t suddenly consume 100% CPU when window not visible on OS X.
Your previous score will once again be automatically scrolled into view in the data table when there would be enough scores to push it off screen.
Synthesia should more reliably close/reset MIDI devices without crashing.
Songs on unavailable network paths should no longer cause a crash.
Bad time signature events in a song should no longer cause a crash.
Non-ASCII text should work in text boxes again.
Improved data file writing to hopefully (once again) avoid data corruption.
Measure lines no longer jitter at slow song speeds.
Fixed a crash during... automatic crash uploading.
Touch input on Windows now behaves less strangely.
IME language input now works on Windows again.
Mac: Clicking in the title bar of the window (while full screen) no longer also clicks inside the app.
Mac: Resizing the window no longer also causes clicks inside the app.
CC#88 (high resolution velocity prefix) no longer breaks shortcut binding.
Virtual piano labels now appear in the correct location even when other input devices (with larger note ranges) are enabled simultaneously.
Songs can now be deleted from the song library again.
Synthesia no longer duplicates SysEx events while splitting tracks.
Zoom, speed, and bookmarks now save if Synthesia is closed during play.
Synthesia is now better at preventing multiple instances from starting, which should help prevent data file corruption.

Synthesia 9 — Internationalization
October 2013

Synthesia for Mac now requires at least Mac OS 10.6 (Snow Leopard).

Multiple languages! Use Synthesia in English, Spanish, French, German, Russian, Brazilian Portuguese, or Traditional Chinese! Change the display language using the button in the bottom-left corner of the title screen.
Game window can now be resized and maximized. Use Alt-Enter on Windows or the full-screen button on Mac to toggle full screen mode.
More mouse cursors: hand for buttons and I-beam for text boxes.
Newly added Synthesia Music Store metadata is downloaded automatically.
Advanced "Gameplay.FingerNames" setting to adjust the text that shows up for each finger hint (typically 1, 2, 3, 4, 5).
Removed custom mouse cursors in favor of standard system cursors.
Renamed "Synthesia Software Keyboard" to "Synthesia Virtual Piano".
Lots of other subtle text changes in preparation for translations.
Creating a loop that touched the beginning of a song would crash on iPad.
Background image paths containing quotes will now work.

Synthesia 8.6 — Fixes and Improvements
September 2013

When launching Synthesia with a song (via right-click shortcut or dragging the song to the program icon), Synthesia will now search that song's folder and a few folders above it looking for .synthesia metadata files so the song gets all the benefit of things like finger hints, hand parts, etc.
Added support for the "Background Image" metadata field. Images (using a path relative to the metadata file) will be loaded and shown in the background during play. The width of the image will be stretched to fit the window, adjusting the height to preserve the aspect ratio of the image. Control how opaque it's drawn with the Gameplay.BackgroundImageAlpha setting (from 0 to 255). JPEG, PNG, GIF, BMP, TIFF, and more supported! Set a default image using the Gameplay.BackgroundImagePath setting.
If seeing the score counter during play is too stressful, click to hide it!
Added support for extended GS drum patches on iPad.
News that appears on the title screen now includes a button to launch the Synthesia website using your default web browser.
Added support for the new "Made Famous By" metadata field. It will show on a song's title bar and can be searched in the song library.
Added support for "named bookmarks" in metadata. These display in a new color on the song timeline and the bookmark name is shown falling in the left margin of the song. These can be hidden by disabling the advanced "Gameplay.ShowNamedBookmarks" setting.
Manually placing data files from the Synthesia data directory into the system version of the same folder (ProgramData\Synthesia on Windows and "/Library/Application Support/Synthesia" in OS X) will make Synthesia read those on startup instead of the user-space versions. (User versions will still be written when Synthesia closes.) This is useful for classrooms where consistent, uniform settings are important. Recommended system-level data files are "multiDevice", "settings", and "folders". That will keep device settings, the Learning Pack unlock, and which (network) folders are scanned for songs, respectively. ("Scores"/"tracks" are not recommended!)
Reintroduced "Scale Number" to the list of label modes.
While in full logging mode (default F7), finger hints will be written using no measure jumps. This can help port finger hints between different MIDIs that have very only small changes between them.
The menu drawer now tucks even further when unpinned.
Using the "Menu Continue" shortcut (Enter by default) from the simple song view will now activate the selected mode button instead of simply playing the song using the previously used (advanced) settings.
Only auto-shift octaves as far as necessary to include as many notes as possible. Synthesia no longer tries to center your keyboard on the notes.
Never auto-shift the octave of full 88-key keyboards.
Enabling key lights should no longer cause tempo, key/time signature, and MIDI marker information to be discarded.
When returning to the song library, the previously loaded song is now once again automatically highlit and scrolled to.
Keys now light correctly no matter the octave shift.
Finger hint output was creating far more measure jumps than necessary.
The big button in popup notifications (like the "Progress will be lost" message can now be activated using the Menu Proceed shortcut (which is the Enter key by default).
Song library "Row still not found after cache replacement" crash.
Song loading should no longer crash in rare cases due to tempo MIDI events.
Song title bar text outlines in Windows 8 now render correctly.
Breadcrumb and search box are no longer partially inaccessible in the song library based on partially scrolled song rows.
Still tracking down the super-rare data file corruption in Windows: files are now tested for corruption before committing them to the data folder.
Using a window width smaller than 1024 pixels could make the additional fields shown on the title at the beginning of a song (arranger, copyright, etc.) to appear unreadably small.

Synthesia 8.5 — iPad Quality Pass
March 2013

Faster/easier way to hold onto and enter your Learning Pack key: there is now a shorter code that can be used to look up the longer version from the website automatically. You only need to remember a few letters/numbers.
Exotic keyboards that send "All Notes Off" instead of "Note Off" messages are now handled correctly (or at least as correctly as they can be).
Using only input devices that don't have their note range set will no no longer skip all notes in melody practice. Instead, their range will be treated as though they have the full 88 keys available.
Don't reset newly added finger hints with the rest of the stats that are reset when a song is restarted.
iPad: In-app purchases should no longer fail during the validation step.
Removing songs or folders in your filesystem while Synthesia is running should no longer cause a crash.
Settings can now be saved/loaded again for Windows users with Unicode characters in their usernames.
Sheet music resize bar displays correctly when Gameplay.PinMenuDrawerOpen advanced setting is turned off.
The "All Songs (grouped by folder)" meta-group will now always be shown, even when there are no other groups in the song library.
Sheet music resize bar now shows under loop, bookmark, and finger hint UI.
Keyboard zoom should no longer shimmy between song attempts.
Zoom menu is now wide enough that controls don't fall off the edges when the "My Keyboard" option is available.
Double-clicking a simple part button shouldn't start the song paused.
Synthesia should no longer crash after plugging a device back in.
iPad: Imported songs could become unavailable in rare cases.
Rests in sheet music should no longer have drawing glitch under them.
Hitting the "Change Notation Size" shortcut (default F3) when there isn't any sheet music currently shown should no longer cause a crash.
In rare circumstances when using channel 1 key lights, a MIDI track containing only meta events and SysEx would be ignored.
Adjusting rating or difficulty in the song library would sometimes change the song above it instead.

Synthesia 8.4 — The Big One
December 2012

Synthesia for Mac now requires at least an OS 10.5+ Intel Mac.

Completely new keyboard graphics! Remastered falling-note graphics, too.
The old, single "Played by Synthesia, Notes Muted" style setting for an instrument has been broken up into independently controllable components: Played by Me/Synthesia, Shown/Hidden, and Sounded/Muted. This allows for two (strange) new modes not previously available: me|hidden|sounded and me|hidden|muted. That last one probably won't be especially useful. ;)
Change the color theme via the settings screen.
Summary play statistics have been added to the profiles section of the settings screen for each user profile.
An "All Songs (grouped by folder)" entry in the song library will help users take advantage of their meticulously organized MIDI folders.
The new "Background Instruments" and "The Other Hand" items in the Songs section of the Settings screen will control how the parts that you don't elect to play (via the simple song view) will be handled.
Synthesia will now prompt you before leaving a song early if you've already earned points. (Control with advanced "Gameplay.ConfirmEarlyExit" option.)
Track colors for left/right/both hands are now set automatically. The left hand is always blue. Right/both is always green. Disabling the Gameplay.SimpleReplaceColors setting in the config tool will prevent this.
Gameplay.AutoShiftToBestOctave advanced setting can now be disabled to suppress the smart octave shift behavior whenever you change song settings.
A "Notation.ShowUserNotes" advanced setting to hide user sheet music notes.
Drag-pan the paused song, shimmy the keyboard when zoomed in, or scroll through the song list. Best when used with touch-screens. Disable using the "System.DragPanning" advanced option.
Error count is now reset if you rewind to the very beginning of song.
Double-click in falling note area to pause or resume the song.
The song list now scrolls smoothly instead of going page by page.
Increased the window of time given to hit a note correctly.
Input is now echoed to output devices on every screen (though the software keyboard only works in the Music Devices section of Settings and Play).
The on-screen keyboard now shows user input, even while paused.
Middle-C note marker has been replaced with every-octave labels on C.
Shortcuts can now have eight bindings, up from three.
The "Do Nothing" choice for the "Notes Outside My Range" setting has been removed. The default is now "Play them for me".
The percussion icon option is now tri-state: always shown, only when playing percussion, or never shown.
Removed "Keyboard Height" setting. Small keyboard ranges now always have their height limited.
Flattened the included song groups in the song library a little.
Hard resets are now disabled by default.
Metronome is now disabled by default.
Removed song library flags.
The "First Pieces" in the G Major Music Theory set no longer count as Learning Pack demo songs. (Reverted from 0.8.3.)
Dropped the leading "0." part of the version number.
Touch-screens should no longer require two taps to "click" buttons.
Hang when zoom to "Visible Song Notes" in songs with any C0, C#0, or D0.
Strange control characters could make text boxes behave strangely.
The FPS display is now larger and easier to read against busy backgrounds.
Finger hints can no longer be added to notes on hidden tracks.

Synthesia 0.8.3 — Song Progression
April 2012

The song progress screen gives you a clear path and set of goals for every song that has a left/right (or both) part defined.
The song library has been updated to support hierarchical groups of songs. Navigate groups using the "breadcrumb" display at the top of the screen.
Reworked play screen to maximize usable area. Much cleaner now. Use the Gameplay.PinMenuDrawerOpen setting to disable the auto-collapsing menu.
Synthesia auto-associates the synthesia:// URL scheme and understands URLs that match the synthesiagame.com/wiki/Synthesia_Manual#Synthesia_URLs spec.
Added Ash's Exercises: a set of scales and arpeggios with finger hints.
Some error messages can now direct you to the Synthesia website to obtain more information and solutions.
Melody practice scores are now submitted automatically to the Synthesia website. (Disable via the options screen.) Practice scores are generally private/anonymous, though if you've ever submitted a recital score using your Synthesia Online account, graphs and charts showing your progress will be available on the website.
The screen you were on last (up through track settings) is recalled the next time you start Synthesia.
Keybind to exit Synthesia (like an Alt-F4 you can bind to your MIDI device) not set to anything by default.
Songs from a particular folder can now be hidden without removing that folder from the folder list, to quickly hide and show songs conveniently.
Added a fourth "Very Quiet" metronome volume option.
Added advanced settings to optionally send GM/GS/XG Reset SysEx messages whenever the device is reset (between screens).
Added a key bind to reset falling note squish/stretch. Unbound by default.
All of the "First Pieces" from the G Major Music Theory song set now count as Learning Pack demo songs and allow all Learning Pack features!
Don't show the loop stats window when no tracks are played by the user.
Removed dependence on d3dx9_42.dll in Windows.
The time between device-unplug checks can now be set with the advanced "Midi.DeviceCheckMilliseconds" setting in the config tool.
Relaxed rhythm practice / recital note timings a little bit.
Added 18 browser/media extended keys that will be recognized in the key binding screen (on Windows). These will no longer generate bad text input in text boxes, too.
Added secondary key binding defaults for "Menu Continue" and "Menu Back", set to Browser Forward/Back, should your keyboard have those keys.
Improved the visual effect that occurs when unlocking the Learning Pack.
Synthesia online account passwords will now persist for the entire play session (or until you switch users) even without checking "Save Password".
The sign-in flow for recitals using Synthesia online account users has been improved a bit. Passwords are checked before playing the song now.
Recital scores are now shown together with rhythm practice scores. To see online scores from other players, use the button to launch your browser.
Removed "PlaySettings" value from the --on-startup command-line option because the Play settings screen no longer exists.
The "Toggle All Notes Hidden" feature (F5 by default) no longer hides the sheet display. You can use this now to show only the sheet music.
All Synthesia-related programs are now digitally signed by Synthesia LLC.
Tooltip backgrounds were displaying incorrectly.
Ignore Windows/Context menu keyboard keys in search boxes and key bindings.
In certain cases, non-note events were being duplicated (exponentially) depending on the complexity of a song.
Synthesia will now run correctly even if files are hidden in the Synthesia data directory.
Entering a folder without the required permissions in the "Add Folder" screen will no longer cause the folder list view to become corrupt while inspecting subsequent folders.
Don't crash when notes outside A0-C8 come in while sheet is displayed.
The song title is now always shown when launching with "--on-start Play".
Interacting with an invisible finger hint interface in the top-left corner of the screen (outside of finger hint mode) could corrupt finger hints for the current song.
SysEx on Windows wasn't being sent to output correctly in 0.8.2.

Synthesia 0.8.2 — Shortcuts and Windowed Mode
November 2011

Key binding screen (off the Options screen) that will let you bind keys, mouse clicks, or MIDI input (including notes, controller events, program changes, and pitch-bend wheel) to any game function. Combine any of those with the Ctrl key to do even more.
Many dramatic improvements to the sheet music display. This came at the expense of the scrolling display mode (page flip is the only display style now) and the "Space out all sheet music notes uniformly" option, but this paves the way for the upcoming multi-line sheet display.
Windowed mode is now available on the Mac.
Preferred input and output devices will be remembered between sessions. If a device isn't available one run, it won't be completely forgotten the next time Synthesia is started and it's available. Boundaries and lighted key mode are also saved per-device instead of having a single global setting.
Click the dot in front of a song's title in the library to show a menu of flags you can assign. Use flags for whatever and sort by that column too!
Song Library song previews can now be navigated via the new scrubber.
Quickly jog through the song with your pitch-bend wheel.
Search specific fields in song library by using colons. To find songs by Bach, use "composer:Bach". Available fields are title, subtitle, folder, composer, arranger, copyright, license, and tags. Each term now uses the AND operator by default. An (all capital) OR operator is available. To exclude terms, prefix it with a -. So "composer:Bach OR composer:Mozart -remix" will find all songs by Bach or Mozart that aren't remixes. The extended fields like arranger, copyright, and tags can be added with the synthesia-metadata-gui found at code.google.com/p/synthesia-metadata-gui.
If your keyboard uses a non-standard channel for light input (e.g., the LK-55 uses Channel 4 only) you can now set that via the last option on the keyboard settings screen.
Assign a hand to each track in the advanced view of the track selection screen to enable the simple view on subsequent plays.
Help button on the song playback screen (default shortcut: F1).
Select a watched folder from the drop-down list on the song library screen to narrow down your library results.
Songs you no longer want can be sent to the Recycle Bin or Trash via a new button on the Song Library screen.
Fun visualization for song previews in the Song Library.
Ctrl-clicking the speed up/down buttons now changes speed by 1%.
Extend loop bounds by a bookmark at a time with Ctrl+"," and Ctrl+".".
Ctrl-click in the timeline to quick-add/remove bookmarks.
Advanced Midi.InputChannel option to force single-channel input.
Advanced Midi.ResetBankSelect option to cause between-screen resets to also send a "Bank Select 0" message to all 16 MIDI channels. (Some devices don't reset their banks the way they're supposed to.)
Advanced Midi.ResetVolume option to cause between-screen resets to also send a "Volume 100" and "Expression 127" message to all 16 MIDI channels. (Some devices don't reset their volume the way they're supposed to.)
Maximized Window is now the default video mode on both platforms.
Song library can now handle huge numbers of songs with no slow-down and no longer has to re-populate when returning from a different screen.
Black keys are now offset correctly like real keyboards. (F# and C# shifted a little to the left, Bb and Eb shifted a little to the right.)
The "No Input Device" selection has been removed. In the absence of other devices, the software keyboard is always selected by default.
Reworked song library folder management so it's nicer, easier to understand and faster to edit.
Pausing a song no longer pops up any overlays that obscure falling notes.
Song title shown at the beginning of play is now quite a bit fancier.
The time/measure tooltip always shows when hovering over the song timeline.
When device changes occur during play, the warning is now more explicit. ;)
On the Mac side, the included songs are now built right into the app bundle to make installation simpler. If you want to mess around with the songs or whatever, you can find them in the bundle at Contents/Resources/music.
The Mac Ctrl+Click = Right-click behavior is now off by default. Enable using the System.MacCtrlClickForRightClick advanced setting in config tool.
The "Gameplay.LoopMaxErrors" option now works in rhythm practice, too.
Unplugging/plugging in a device no longer crashes Synthesia!
Lighted keys now also shift correctly when using Z/X to change octaves.
In rare cases, instruments would be detected incorrectly on the track settings screen. This was caused by program change events in different tracks than the notes themselves.
Pickup measures will no longer cause the pre-song metronome to only make one or two clicks. At least 5 seconds of clicking will always be generated and will continue to the first note of the song (instead of the first beat of the first measure, which is sometimes empty for a few beats).
Loops can now extend to the end of the final measure vs. end of final note.
Timeline now shows to end of final measure instead of just the final note.
The mouse-over finger-hint hand UI now updates correctly when keyboard zoom mode is changed instead of continuing to track where notes used to be.
Non-user notes that overlap correctly-played user-notes will no longer temporarily obscure your note sparks.
In rare cases, changing a track's instruments could sometimes cause other track instruments to misbehave in songs with more than 16 tracks.
Rare (ambiguous) event ordering in MIDI files could cause the second of two consecutive notes to appear very short, despite the spark effect still showing correctly.
There was a race condition that could prevent MIDI output from being sent until the following output event was also sent.
Hitting two same-pitch notes occurring at the same time will no longer count "Extra Notes" up incorrectly when concurrent chords are enabled.
Using the "Bring the notes to me" option under the keyboard size settings would sometimes prevent notes from being hit due to octave-shifts that stacked more than one of the same note on top of each other.
Fixed a few small mistakes in the finger hints for the built-in songs.
Rare interleaved same-note input (press, press, release, release) from certain keyboards will now correctly pass both releases to output.
Changing pages in the song library by grabbing the scrollbar will now no longer cause the current song to be deselected.
Using the folder shortcuts in the Add New Watched Folder window will no longer require you click "Go up a level" twice in order to actually go up.
Ignore invalid key signature events (show C Major instead of "Unknown").
Alt-Enter no longer toggles from full-screen (in DirectX on Windows) to a mostly-broken windowed mode.

Synthesia 0.8.1 — Finger Hints
June 2011

Edit note finger hints by clicking and dragging from notes to fingers in the new Finger Editing pause mode (shortcut 'N').
All 100+ songs included with Synthesia now include finger hints.
"Strict" melody practice. On by default. Stops the song whenever bad notes are played.
Simple track settings. When a song only has two tracks (excluding percussion) an easier to use screen will display instead of the usual track settings screen. This can be disabled via the options screen.
Got confirmation that the LK-220 and LK-270 lights work the same as the LK-230. Added them to the compatibility list on the setup screen.
Added "Metronome.Channel" advanced setting to override metronome output channel in case your device doesn't have a percussion kit. This setting is zero-based. So channel 10 is called 9. Just subtract one.
Added "Gameplay.LoopMaxErrors" advanced option that will restart a loop in melody practice mode after a certain number of errors have accrued.
Changed "Avg Speed" stat shown in melody practice to "Actual Speed". The average value of the speed control didn't really communicate anything interesting because the song stops and waits for you. Instead the actual speed tells you what the song would have (on average) had to be playing at in rhythm mode to have taken the same amount of time, including the times the song was stopped waiting for user input.
Default note labels are finger hint numbers. And label selections keep between playing demo / non-demo songs, even without a Learning Pack key.
Searching in the song library is better. Order doesn't matter anymore and you can start a word with a dash to exclude songs with that word.
The "concurrent chords" option is now enabled by default. With the various settings for handling notes outside your keyboard's range, it makes more sense to be on than off.
Split a few gameplay options off into a melody practice-specific section in order to clean up the wording a little.
Got rid of the weird "sometimes on top" window behavior in Windows. Now the window will always behave like any other window.
Increased the 50ms extra loop rollback (from 0.8.0) to 100ms.
Online recital rows in scores.xml now have a "recital" attribute to set them apart from rhythm practice scores.
Notes starting within an extra loop rollback amount of time from the end of a loop should no longer "catch" in melody practice.
Accidentals in the sheet display will now be assigned per-octave.
Don't show loops from practice in falling note area during recital.
Crash message is now appended to the end of the log when errors occur.
Handle the case where (some version of) Trebuchet MS is available but not the "Regular" version in Windows.
The currently visible keyboard range will now follow the active range in "Zoom to my keyboard" mode after an octave shift (via Z or X).
Dates are now shown in your local time zone instead of GMT on Windows.
MIDI files containing no notes cause lots of problems. Don't allow them.
A couple time signature problems have been corrected in "The Ants Go Marching" and "Mexican Hat Dance". An extra note has been removed from "Toccata and Fugue in D minor" and "Sonatina Piccolina". Thanks go to DamienBlack from the forums for the fixes!
The on-screen "praise" text for a note (Good, Great, Barely, etc.) should no longer cause frame-rate stutters on older computers after the first time they're displayed.
The SysEx ignore option was being ignored for MIDI files loaded from the command-line, dragged in, or started via right-click desktop shortcuts.
SysEx messages are now always sent before any other events at the same timestamp. Sometimes resets were nondeterministically going through after things like program change messages at the beginning of a song.
Don't count MIDI channel 16 as a percussion channel.
Ironed out some of the selection quirkiness in the song library.
A couple of key signature problems have been corrected in "The Ants Go Marching" and "Evening Falls". Thanks go to GoPlus from the forums!
The F10 key no longer inadvertently prevents drawing in Windows.
The metronome now correctly triples the number of beats during compound time signatures when running at double-speed. (Now a misleading name).
When showing the software keyboard mapping labels on notes or the keyboard, they will no longer show incorrectly when shifted all the way off the keyboard on the low side.
Tooltips will no longer sometimes show in a bad position during the first frame they're visible.
Window is now centered correctly in DirectX mode running windowed.

Synthesia 0.8.0 — Online Scoreboard
November 2010

Profiles. Create from the title screen. Names are shown on scoreboards.
Online Recital: plays song straight through at constant 100% speed (no fast-forward or rewind, either). Scores posted online!
Keyboard zoom settings, key/note labels, and sheet progression mode have been moved to the play screen and can now be changed during the song.
Buttons to look at scoreboards before playing. This replaces the old "Highest score for this configuration" on the track settings screen.
If no tracks set to "Played by You", continue button skips right to play.
The program window can now be minimized when running in windowed mode.
Advanced config option (Gameplay.ShowFloatingText) to hide both the combo counter and praise text that shows on top of the falling notes.
Mode renames: practice is melody practice. rhythm is rhythm practice.
Play screen toolbar buttons are now more compact.
Made track setting screen tooltips a little less verbose.
New logo.
Now that extra practice time is shown next to the current time (in green) it makes more sense for the current time to always show the absolute song position instead of the position + extra practice time.
Removed a few lingering "You Play" references in favor of "Played by You".
User-played notes will no longer hang endlessly when playing two tracks with the same note at the same time.
Loops will now jump back 50ms further than the beginning of the loop to avoid skipping notes starting right at the loop boundary.
Using certain combinations of key/note labels could produce incorrect or distorted labels on one or both.
DirectX viewport was off by one pixel.
A few rare zoom/track setting combos would make the keyboard disappear.

Synthesia 0.7.5 — Better Scoring
October 2010

In-game clock shows system time (just under the quit button).
Mac version of SynthesiaConfig tool. Supports default full-screen, custom full-screen, and changing manual settings. Windowed mode will come later.
The scoreboard a performance is mapped to now has nothing to do with the MIDI file the notes came from. You should be able to edit background tracks or make other MIDI changes. So long as those changes don't impact the timing, number, or pitch of "You Play" notes, your score should continue to show up on the same scoreboard it always has. NOTE: This change has caused a FULL SCOREBOARD WIPE from previous versions!
Added missed note count to the bottom of the screen stats in rhythm mode.
Song library list now uses a "paged" style (like an Internet search) instead of a list with scrollbar. It can now handle libraries of a much greater size now without slowing down.
Setup Tracks screen is now laid out differently and has more options.
Rhythm scoring changes in "held points" and timing accuracy. See Scoring on the wiki.
Practice scoring no longer takes into account speed at all.
Included music has now been quantized and cleaned up for scoreboard play. Errors in several songs were corrected.
Loop timer will no longer start in practice mode until you hit a note.
The bank-select fix option now affects all platforms (not just Vista and OS X). Some keyboards were also affected by the problem, so this lets them take advantage of the fix, even on something like Windows XP. It should also be able to filter bank select messages out more efficiently.
Mac version now behaves a little differently with respect to the dock and system menu. Including support for custom full-screen modes has prevented both from being available while running on the primary display. When windowed support is added, the "windowed & maximized" setting will overcome this limitation.
Updated the main program icon for Synthesia and the config tool.
Pedal input events are now sent out on all You Play channels instead of just the most recently matched You Play channel.
In rare cases, certain MIDI songs wouldn't load with the "Use a unique channel for each track" option introduced in 0.7.4.
Hide software keyboard key/note labels when "You Play" no tracks.
Very long note blocks would incorrectly appear in specific, rare cases.
Folder names with periods now display correctly in the song library.
Try to catch another class of "Error document empty" problems.

Synthesia 0.7.4 — Key Lights
September 2010

Movable 'Do Re Mi' key and note labels.
English note label spellings will now be based on the song's current key signature instead of always showing sharps. This includes the use of double flats (bb) and double sharps (x). E.g., In Gb Major, an A is Bbb.
Added support for lighted keyboards. Notably, shows upcoming notes in practice mode. Otherwise, mirrors behavior of spark effect.
Windowed mode and ability to use a video mode that isn't your desktop's current video mode. Use the new configuration tool start menu shortcut.
Added --bookmark-count command line argument.
Advanced option to disable MIDI device "hard resets".
Stats are shown for the previous few loops on top of current/best.
Button to enter loop editing mode to make it more discoverable.
Loop score is now shown in rhythm mode (similar to practice loop stats).
Fine-tune loop by dragging boundaries in play area.
Tooltip showing song time/measure when navigating the timeline.
Loops will now snap to the current song position during creation.
Loops are much more visible in the song timeline.
Holding notes will now generate 5x the points. (250/sec vs. 50/sec)
Key and note labels are now larger and easier to read.
All settings are now stored in either "shell:appdata\Synthesia" in Windows or "~/Library/Application Support/Synthesia" in OS X. Data is no longer stored in the Windows registry or Mac plists.
Pop-up loop statistics are now reset when the song speed is changed.
A few more default track modes are now available on the options screen.
Fixed-do "Sol" now appears as "So".
Removed --windowed option in favor of new configuration settings.
Removed renderer option from in-game options. Now in configuration tool.
Uninstaller wasn't cleaning up Start Menu shortcuts on Vista or Win7.
Multiple spaces in any of the game's XML files were being condensed into one space when read back in. This could cause any variety of things to go wrong depending on the file name or MIDI device that had more than one space in its name.
Output device resets should be faster and more robust against crashes.
Loops that start at the beginning of the song should no longer skip notes.
Filtering the song library should no longer cause sorted items in the list that are the same (as far as the currently sorted column is concerned) to jump around the list relative to one another. (Sorting is now "stable".)
Non-rounded-to-10% speeds are now remembered correctly when loading a song.
MIDI input no longer builds up on screens where it's not consumed only to create a burst of sound after switching to a screen where it is.
In rare cases, instrument changes would affect other tracks.
Learning Pack unlock keys should now be able to be pasted from any program on the OS X side... including the ones I broke during the last fix. :)

Synthesia 0.7.3a
August 2010

Fixed a hang in the song library involving page up/down.

Synthesia 0.7.3 — Metronome
August 2010

Metronome. Control it with the "Metronome Settings" button during play.
Change a track's instrument by clicking it on the track settings screen.
Added a filter box to the song library. Type words to narrow results.
Use the '<' and '>' keys to create automatic loops between bookmarks.
Added --loop-start and --loop-end command line parameters.
Periodic check for new versions shown on the title screen if found.
Synthesia will attempt to distribute tracks using the same MIDI channel to separate channels where possible. This allows track instrument changing to work in certain cases. Can be disabled via an Advanced option.
While using the --copy-score command in practice mode, each loop will write a comma-separated list of extra milliseconds and extra notes.
The clipboard output while using the --copy-score command in practice mode is now a comma-separated list with score, extra milliseconds, extra notes, and overall percentage of time notes were held vs. total holdable time.
Track previews now loop continuously.
Removed the 10 music samples from Game Music Themes.
Replaced the two Learning Pack demo songs from the Game Music Themes set by two songs from the G Major Music Theory set of songs.
Updated many items on the options screen to use a simple checkbox.
Score now updates faster while holding a note in rhythm mode.
Measure lines in the falling note display are now a baseline feature that no longer requires the Learning Pack.
Support for any resolution 800x600 or lower is now deprecated. It will continue to run, but the experience won't be optimal.
Increased speed of drawing measure lines in the falling note view.
Increased speed of drawing effects, keys, and notes.
Made the "Zoom to my Keyboard" button appear for software keyboard users that have never set up the size of an actual MIDI device.
The last measure line at the end of a song should now be more accurate.
Flush the output queue before resetting output device on OS X.
Note names shown on the keyboard setup screen now show the correct octave.
Learning Pack unlock keys should now be able to be pasted from any program on the OS X side.
Attempting to load a song that has a time signature with a 1 (whole-note) in the denominator will no longer cause a crash.

Synthesia 0.7.2 — Loops
June 2010

Loop/repeat sections. Right-click-drag the timeline to create one. In practice mode, extra statistics are shown while inside loops.
Use the 0 through 9 keys to quickly jump between bookmarks.
Set your keyboard size and mode from the Keyboard Setup screen. This lets you choose from a few different ways to handle notes outside your range.
The "Zoom to my Keyboard" mode is now available after setting the size of your keyboard and choosing an appropriate mode from the same screen.
Holding notes longer now increases your score! This also works with the sustain pedal. Impact to practice mode scoring is discussed here.
Improved the auto-offset detection code used to find the best octave to start the song at with keyboards smaller than 88 keys.
The maximum score multiplier has been reduced from 5.0x to 2.5x.
The pre-multiplier points earned for a note are now a flat value instead of being based on how accurately timed the note was played.
Show a notice below the Practice Mode button if no You Play tracks picked.
Made the checkbox graphic a little nicer to match the new radio button.
Updated a few "Back" buttons to say "Go Back".
If a song was selected from the Learning Pack demo songs, the menu system will route back there instead of the Song Library when backing out.
Some devices were still causing a crash due to device resets coming too quickly on the song library screen while scrolling with the keyboard. Now the library is more responsive while simultaneously inserting a longer pause between device resets.
Ctrl+left click is now correctly treated as a right-click in OS X.
The black key above the last available software keyboard note will no longer appear to also be available.
Device resets could cause certain devices to report an error.
"You Play, Muted" tracks are now considered for "Zoom to 'You Play'".
Rewinding a song no longer corrupts your average speed statistic.
Added an option to discard notes that never end in MIDI files. Enable this if you see a key that is stuck pressed down with sparks forever.
The ancient QuickTime bug now has a work-around! If your MIDI songs go silent after some time while using the built-in QuickTime synth on the Mac turn the new "Discard Pedal Events while using QuickTime synth" option in the advanced section of the options menu.
The last played song will no longer scroll off the screen due to changes in the song library list (notably just after entering the library).
Corrected one-frame label flickering between changes in keyboard setup.
Don't crash when text is pasted into the LP screen with non-ASCII in it.
Labels with rapidly changing text (e.g., keyboard setup input preview) will no longer incorrectly disappear until the next change.

Synthesia 0.7.1 — Bookmarks
May 2010

Song Bookmarks. Click "Edit Bookmarks" button and then click in the left margin of the falling notes. Use the buttons to navigate.
You can now click the on-screen keyboard to play notes that may be outside the range of your input device. This is fun on a touch-screen.
Added speed and song position controls to playing screen.
Song timeline is now clickable to navigate song.
The sustain pedal can now be used while playing. It will hold notes "open" in the falling note display longer.
Added helpful tooltip messages while hovering over certain UI elements.
Added "HKCU/Software/Synthesia/FPS Limit" string key. Set to an integer to prevent the game from rendering more than that number of frames per second. This is especially good at reducing CPU usage.
You can now mouse-wheel scroll through the song while it's paused.
Option to import "markers" stored in MIDI files as song bookmarks.
Unknown crashes in Windows now produce a mini-dump on the desktop.
Option under 'Advanced' (in OS X only) to ignore leading NULL bytes in device input. This may improve compatibility with certain MIDI adapters.
Installer option to add a "Send To" right-click item to "Synthesia Music"
Synthesia is now built against the Feb-2010 version of DirectX.
The options screen will now fill any available screen height.
Sheet music notes will now be placed on the "correct" staff much more often based on the rest of the notes in that track.
In practice mode, "Played Automatically" that start at the same time as a "You Play" note will no longer sound until you hit your notes first.
Instead of single-letter searching in the Song Library, you can now continue typing to search for complete song names.
Page-up and page-down can now be used to page through the Song Library.
In the Song Library pressing enter just after a new song is selected (and still loading) will jump to the next screen when loading is complete.
"Fixed Do Note Names" are now referred to as "'Do Re Mi' Note Names".
You can now start songs (first time only) by playing any note.
Improved the "X songs found" visual cue on the Add Watched Folder screen.
Updated 3 more of the songs in the Harder folder to have split left and right hand parts. (Thanks again Choul, Rickeeey, and TieDyeGuy!)
Added a short delay between successive song previews on the Song Library screen. Previewing too quickly sent device resets faster than some devices were able to handle.
Corrected some drawing artifacts that occurred with ATI cards in DirectX.
Scores above 1M will no longer show in scientific notation.
All non-note events in You Play tracks are now passed through to the output device. (Before only program change messages were.)
Right-click "View in Synthesia" association now sets percussion tracks to "Played But Hidden" instead of "Played Automatically".
The song length was being calculated incorrectly in some rare cases. This led to the game stopping before the final notes were finished sounding.
Attempt to overcome errors while loading bad events in MIDI files.
Show text even when 'Trebuchet MS' font isn't installed (under Windows).
Selections in lists will now always appear fully on-screen.
Adding a CD or USB drive as a watched folder will no longer cause a crash when there is no CD in the drive or the USB device is removed.
Number of special folders/drives shown on the Add Watched Folder screen is now limited to the first nine found.
Stopped text and texture flicker at the first frame of every screen.
Prevent multiple instances from running concurrently.
The entire keyboard is now shown (without shading) when no tracks are set to 'You Play' regardless of selected input device.
Always show Practice Mode button, even if no tracks are set to "You Play" mode. That way the rhythm/practice setting doesn't reset on you.
Clicks from tablet/pen devices are now handled correctly again.

Synthesia 0.7.0 — Metadata
September 2009

The sheet music view now contains rests.
Practice mode scoring.
Added option to toggle "concurrent chord notes" in practice mode.
Added option to toggle the "next note" markers in practice mode.
Added option to display English note names in rainbow colors.
Added option to toggle constant-speed song scrolling by adding extra space between notes.
Added measure numbers to falling-note-display measure lines.
Add a string key named "HKCU/Software/Synthesia/Fixed Do Note Names" and set its value to a set of 12 names all separated by exactly one space to override the default Anglo-Saxon Solfege names. For reference the default is: "Do Di Re Ri Mi Fa Fi Sol Si La Li Ti". Currently, this will not work with non-ASCII values.
Built-in "Song Library" with "Watched Folder" list, auto-preview, and rating/difficult controls. The old "File Open" boxes have been removed.
Instrument icons on the track selection screen.
Synthesia can now read and make use of additional metadata provided by .synthesia metadata files. There is a free editor.
Added 26 new songs, updated 109 to split the left and right tracks. (Thanks Choul, Rickeeey, and TieDyeGuy from the forums!)
New graphics littering the interface.
While using a Learning Pack demo song various animated cues will appear on certain screens, highlighting Learning Pack features.
Keyboard setup screen with fun preview areas.
Percussion icons if a percussion track is set to "You Play". Can also be set to always-on from the options screen.
Windows command-line options. Type "Synthesia.exe --help" to see them.
Windowed mode (Win32 OpenGL only) via command-line.
Press F5 during gameplay to toggle hiding all notes and sheet music.
Hold the tab key to adjust the speed by 1% at a time instead of 10%.
Number of note "errors" is now shown during play.
Added quit button to gameplay screen so you can interact mouse-only.
Huge overhaul in the font rendering portion of both graphics back-ends, as well as some new much-needed flexibility in texture loading.
Added "Note Window Length" and "Note Window Length After First" settings to fiddle with the input window that controls which notes are considered part of the same "concurrent chord notes" or not. The values are in microseconds. The defaults are 165000 and 95000.
Note labels have been moved to the "head" of notes and had their readability improved by adding a contrasting background.
The performance of Key/Note labels has been improved dramatically.
Note labels should no longer appear "jumpy".
Added two new Learning Pack demo songs.
Title screen update.
Improved the beginning-of-gameplay keyboard shortcut graphic.
Input is no longer muted on score screen, play settings screen, or while the game is paused.
The score screen has been significantly revamped.
The size of the sheet music display is now saved between songs.
Duplicate scores on the scoreboard will now be ranked the same. So, the following scores would be ranked #1, #1, #2: 200 200 195.
Removed startup "device list open test", obsoleting the need for the "Skip Device Open Test" registry setting.
Don't show empty slots on the scoreboard.
Allow MIDI Type-0 files containing more than one track. They're surely non-conforming, but we may still be able to load it.
The log file now includes date/time for every entry.
Made the title screen device input preview box always-on.
Added a silly particle burst effect when Learning Pack key is pasted.
In rare cases, spacing in the sheet music display may have been incorrect so a note would sound before/after the cursor was directly hovering over it. All notes are now placed in the correct position.
Very short filenames no longer cause a crash.
Mac device input drivers that sometimes report more than one event at the same timestamp will now be handled correctly.
Crash after opening 255 songs fixed.
Channels that are re-used later in a song with a different instrument now no longer prematurely send the later-used instrument change message.
Unicode characters in names shown on the Learning Pack display correctly.
Made the file association option in the installer work in Windows Vista.
Don't crash if the track settings or saved scores become corrupt.
Switching input devices after playing a song using the software keyboard will no longer cause the software keyboard's octave shift to be applied to the new input device.
Attempt to prevent screensaver and monitor power-off events in Windows.
If the DirectX renderer has trouble, causing the game not to start, switch to the OpenGL renderer for the next run.
Note blocks for multiple Note-Ons for the same note on the same channel are now displayed correctly.
MIDI Meta events that arrive from input devices will no longer cause a program crash. They are still reported in the extended (F7) log output.
Added option to relax output device reset (so it doesn't perform a full device close/re-open). Set the following string key to a value of "1": "HKCU\Software\Synthesia\Disallow Hard Device Reset".
Cleaned up a really old bug that caused new, never-opened songs to inherit the track settings from the previously-opened song (vs. getting assigned a default set of track settings).

Synthesia 0.6.5 — Note Labels, Song Bundle
September 2008

Note Labels option on the Play Settings screen.
Resize sheet music display with F3 or by dragging border with mouse.
Name of the current song key displayed down in status area.
120+ new songs from gmajormusictheory.org included in the release.
Added a marker to the "middle C" keyboard key.
Mouse auto-fade after a few seconds of no movement.
Pause/Resume button in the bottom right corner of the gameplay screen.
Enhanced the keyboard display with a red strip of felt.
Changed the appearance of various windows and buttons a little.
Pushed MIDI output to a separate thread, which should improve performance.
Game startup should be a little faster when loading large songs.
Toggle "Full Debug Output" with F7. If you're running into a repeatable problem, it may be useful to run the game with full debug output on before sending me the log from the run containing the problem.
Notes from "You Play" tracks should always appear above other notes.
Practice mode "next note" markers no longer appear at staggered times when more than one note exists at the same time.
Practice mode "next note" markers are now always removed properly when rewinding at low speeds.
Controller, after-touch, and pitch bend events are no longer sent to the output device for "You Play" tracks.
Notes can no longer be skipped in practice mode at high speeds.
The "next note" marker is now shown for all notes that can be hit while waiting for user input, not just notes directly on the line.
Track selection boxes can not longer run off the bottom of the screen.
Sheet music button on track selection screen is much easier to see now.
Practice mode can no longer be selected when no tracks have been set to "You Play" mode. A helpful message is indicated instead.

Synthesia 0.6.4 — The Learning Pack
June 2008

Sheet music display with scrolling and page-flip progression modes.
Practice mode that waits for you to hit the right notes.
Measure lines in falling note display. (Toggle with F4.)
Learning Pack key entry screen (off the main menu) with four "demo" songs that temporarily unlock all the new features.
Added "Play Settings" screen to handle the growing set of song options.
Added option to lock keyboard height to conserve screen space for notes.
Game continues to play in the background if alt-tabbed or minimized.
Added the old "Notes played" statistic to the playing screen (from 0.4.0).
Made "Play all user input" the default behavior.
Changed the vertical-guide layout for falling notes.
Added option to disable auto-"System MIDI volume" adjust in Windows.
Bounded max size of praise/combo text.
Removed un-openable MIDI input/output devices from device lists. (However, this requires a quick "open" test on each device at startup. Some devices can take a very long time (>30s) to open. So, the open test can be turned off via the "HKCU\Software\Synthesia\Skip Device Open Test" string key set to a value of "1".
Don't crash while FF'ing an event heavy song with certain output devices.
Caps-lock no longer affects octave shifting keys.
Windows installer now includes DirectX redistributable, so no more missing DLL errors. Stand-alone zip users should run directx_redist/DXSETUP.exe.

Synthesia 0.6.3 — Options
January 2008

Keyboard zoom options (on the Track Selection screen).
Options screen:
  • Play all user input / Play only correct user input.
  • Default track mode: Played Automatically / Played But Hidden.
  • Play notes using velocity from the: song / user input.
  • Toggle sparks for performance.
  • Toggle ignore SysEx messages.
  • Toggle bank select fix.
  • Toggle renderer backend in Windows.
DirectX rendering backend.
Better looking white keys.
Highest score for current settings shown on track selection screen.
Software mouse cursor.
Copy error text to clipboard before exiting.
Added log. Found in "Application Data\Synthesia\log.txt"
Note scoring is now additionally based on timing accuracy.
Split all remaining "Various" tracks into single-instrument tracks.
Sometimes first note of "You Play" track would use wrong instrument.
Caps-lock no longer affects the software keyboard.
Windows crash from attempting to send output to a MIDI device too fast.
Made MIDI output reset stronger in Windows, to avoid locked-"on" notes.
Events using running status after a meta event weren't loaded correctly.

Synthesia 0.6.2a
September 2007

Files with .kar extensions are now supported.
"You Play, Muted" track mode.
Renamed "stray notes" to "extra notes" and made them break the combo.
Only reset the MIDI output device after playing something through it. (In some cases, a reset takes upwards of one second. This reduces how often that time hit occurs.)
Program change and channel pressure events are now sent correctly when using an external output device on the Mac.

Synthesia 0.6.2 — Song Navigation and Sparks
August 2007

Fast-forward and Rewind. Press the left/right arrows to jog the song.
High score list per-song, per-track-configuration.
Tracks that use more than one MIDI channel are now split into one-track-per-channel. This makes almost every format-0 and even some format-1 songs MUCH more playable.
Software Keyboard. Tries to guess the best starting octave to shift to based on the average location of all notes in "You Play" tracks.
Sparkle effect while holding down keys correctly
Track settings are remembered across game sessions
"Visible Only" track mode.
Mac version fades between the game and the desktop on start and quit.
Fade transition between screens.
You can override the window size with registry/plist string settings named "Window Width" and "Window Height". Use whatever number you want in either string setting.
Gameplay starts out paused so you can get your bearings on input.
The software license Synthesia is released under has changed. It is no longer the open-source MIT license, but rather a proprietary closed-source license. No worries, the game is still free.
New keyboard mapping: view stretch is PgUp/PgDn, Speed is Up/Down.
Track selection screen is now sorted left-to-right by average note pitch.
Remember view stretch between multiple tries of the same song.
Remember octave offset between multiple tries of the same song.
Possible track modes are based on whether input and output devices have been selected. e.g. "You Play" won't be available when input is disabled.
The falling note display runs much smoother (especially at low speeds).
SysEx MIDI messages in songs are now sent to output devices.
File Open dialog no longer pops under the game window in Windows Vista.
Bank Select events sometimes cause tracks not to play in Vista and Mac. Now on those platforms, bank select messages have been disabled. If this causes problems, set a "Disallow Bank Select Fix" string in the registry or plist to anything other than "0" to stop the special behavior.
Pausing the game while holding keys down caused sound (in "You Play" tracks) and key images to "stick" after resuming gameplay.
Removed (poorly written, first-attempt at) multi-monitor OpenGL code to fix a crash for many users.

Synthesia 0.6.1 — Mac Quality Pass
May 2007

On the Mac, output to external devices is now available.
On the Mac, you can now drag a MIDI file to the application on the Dock or in Finder or right click a MIDI file and choosing "Open With..." to open.
In Windows, added a low-tech solution to choose between different monitors connected to the SAME video card (doesn't work in multi-video-card situations.) (Set the string key HKCU\Software\Synthesia\Monitor to "0" for primary monitory, "1" for secondary, etc.)
Mac OpenGL display now has v-sync enabled.
Mac game window is now much less obtrusive. Other windows are allowed to be on top and the Dock and Application bar can both be made visible by hovering the mouse over there positions for a second or so. The game window also no longer must be hidden during file selection or error boxes.
In Windows, MIDI SysEx messages in input are no longer flagged as errors.
On the Mac, fixed MIDI that used RPN / NRPN controller events (e.g. to set pitch bend) so they're now handled correctly.
On the Mac, output devices are now reset much harder than before, so output device internal state that may be set by one song isn't carried over to another.
On the Mac, there was a potential problem with some input devices that might send bursts of events all at once. Previously, only the first event in the incoming list of events was recognized. Now, any number of incoming events will be recognized correctly.
Picked a font for the Mac version to use that is actually a default system font. (Apparently "Palatino" only ships with iLife now.)
On the Mac, fixed a problem where the (modal!) file open dialog could be hidden underneath the game window, leaving you not choice but to force-quit the program.
Disabled OpenGL depth testing to fix a problem where text would sometimes not appear above other controls (TrackBox, SongBox, etc.) in Windows.
Score state now displays correctly at low resolutions (like 800x600).
Title bar no longer pops when changing speed at the beginning of gameplay.
Text centering and placement on the Mac is now properly implemented.
MIDI files with non-all-lowercase file extensions can now be selected in the File Open dialog box.

Synthesia 0.6.0 — Now for Mac
April 2007

Mac Version!
All new note and keyboard graphics!
All new menu graphics.
Right-click association option in installer.
Renamed and rebranded the project to "Synthesia"
Switched from base 2D OS drawing to 3D accelerated OpenGL drawing.
Moved status display to the bottom of the screen during play.
Made default music folder less imposing. Now the game will only default to the directory the very first run. Afterwards, it will remember the last file you attempted to play (like it used to).
Improved exception handling.
Don't crash if "Synthesia Music" folder doesn't exist.
No more crash sometimes when app regains focus on the title screen.

Version 0.5.1 — Small Improvements
February 2007

Your notes are played (in the correct instrument for the track).
Tooltips on all menu controls and settings.
10 Sample songs from Game Music Themes.
"Stray Notes" metric on stats screen.
"Average Speed" metric on stats screen.
Box around MIDI input test on title screen.
Combo counter and much improved stats display during play.
Improved Klavarskribo staff notation.
Match input to closest unplayed note's opportunity window center instead of matching against the first available unplayed note.
Swapped blue and yellow in the track color order, making blue the new "first" color.
ReasonableSynthVolume object replaces MidiCommOut::SetReasonableSynthVol and now works for all mixers in the system instead of only the first.
Darkened the border for a few different colors to increase the contrast between sharp/flat notes in a series.
Default to new "Piano Hero Music" folder at startup. (User configurable in the future.)
Disabled MIDI input while game is paused to prevent cheating.
Made MidiCommOut::Reset() actually reset everything by fully closing and reopening the device. midiOutReset() apparently only turns off the keys and pedals on each track. It *doesn't* reset patches or volume.
Reworked MIDI engine to correct a sync/lag issue in songs that started with a considerable delay before the first note.
Notes don't draw on top of keys anymore.
MIDI track default color order is now consistent for all files.
Two tracks with identical notes would cause the "second" track's note to not appear. This normally would not matter, as they overlap completely, but when hiding the first track, the second note would not show.

Version 0.5.0 — MIDI Input
January 2007

Klavarskribo staff notation (thanks to Troy Ramos for the suggestion!)
MIDI input instrument selection (early version by Luis Anton)
MIDI input with note matching and scoring (early version by Luis Anton)
Note hit/miss effects
If muted, temporarily unmute the selected MIDI device during gameplay
Level progress bar along top of game play screen
In-game open file dialog
Song finish screen with score, rating, and statistics

Version 0.4.0 — Initial Release
October 2006

Initial Release

Last Modified 12-13-2011

Privacy

The Synthesia website and the Synthesia application limit the collection of personally identifiable user data to purposes including but not limited to the following:

  1. To enhance your experience. Statistical information may be used in a variety of ways to improve the website or the game.
  2. To solve technical problems. Log data may be examined in the course of solving technical problems and in tracking down badly-behaved code or interactions.
  3. To monitor website conditions. We statistically sample raw log data from users' visits and activity to help maintain functionality of the website and related services.

Release of Personally Identifiable Information

It is our policy that personally identifiable data collected in the server logs, or through records in the database, or through other non-publicly-available methods, may be released in any of the following situations:

  1. In response to a valid subpoena or other compulsory request from law enforcement,
  2. With permission of the affected user,
  3. When necessary for investigation of abuse complaints,
  4. Where the information pertains to a technical issue and its dissemination is necessary to illustrate or resolve it,
  5. Where the user has been behaving in a disruptive way, data may be released to a service provider, carrier, or other third-party entity to assist in the targeting of IP blocks, or to assist in the formulation of a complaint to relevant Internet Service Providers,
  6. Where it is reasonably necessary to protect the rights, property or safety of Synthesia LLC, Synthesia, its users or the public.

Disclaimer

We believe that maintaining and preserving the privacy of user data is an important value. This Privacy Policy represents a committed effort to safeguard the security of the limited user information that is collected and retained on Synthesia servers. Nevertheless, we cannot guarantee that user information will remain private. We acknowledge that, in spite of our committed effort to protect private user information, determined individuals may still develop data-mining and other methods to uncover such information and disclose it. For this reason, we can make no guarantee against unauthorized access to information provided in the course of using the Synthesia website or the online features built into the Synthesia application itself.

Software and Documentation Copyright ©2006-2015 Synthesia LLC, all rights reserved.

THIS SOFTWARE IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE WHICH ARE HEREBY DISCLAIMED. IN NO EVENT WILL SYNTHESIA LLC BE LIABLE FOR ANY SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES RESULTING FROM POSSESSION, USE, OR MALFUNCTION OF THIS SOFTWARE PRODUCT.

SOME STATES DO NOT ALLOW LIMITATIONS AS TO HOW LONG AN IMPLIED WARRANTY LASTS AND/OR EXCLUSIONS OR LIMITATIONS OF INCIDENTAL OR CONSEQUENTIAL DAMAGES SO THE ABOVE LIMITATIONS AND/OR EXCLUSIONS OF LIABILITY MAY NOT APPLY TO YOU. THIS WARRANTY GIVES YOU SPECIFIC RIGHTS, AND YOU MAY ALSO HAVE OTHER RIGHTS WHICH VARY FROM STATE TO STATE.

SYNTHESIA LLC RESERVES THE RIGHT TO MAKE IMPROVEMENTS IN THIS FILE AND TO THE SOFTWARE AT ANY TIME AND WITHOUT NOTICE.

THIS FILE AND THE SOFTWARE HEREWITH IS COPYRIGHTED. ALL RIGHTS ARE RESERVED. NO PART OF THIS FILE OR THE SOFTWARE MAY BE COPIED, REPRODUCED, TRANSLATED, OR REDUCED TO ANY ELECTRONIC MEDIUM OR MACHINE-READABLE FORM WITHOUT THE PRIOR WRITTEN CONSENT OF SYNTHESIA LLC.


Synthesia uses the pugixml XML parsing library. It is licensed under the MIT license:

Copyright (c) 2006-2012 Arseny Kapoulkine.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


Synthesia uses The FreeImage Project. It is licensed under the FIPL v1.0:

FreeImage Public License - Version 1.0

1. Definitions.

1.1. "Contributor" means each entity that creates or contributes to the creation of Modifications.

1.2. "Contributor Version" means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor.

1.3. "Covered Code" means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof.

1.4. "Electronic Distribution Mechanism" means a mechanism generally accepted in the software development community for the electronic transfer of data.

1.5. "Executable" means Covered Code in any form other than Source Code.

1.6. "Initial Developer" means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A.

1.7. "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.

1.8. "License" means this document.

1.9. "Modifications" means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a
Modification is:

A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications.

B. Any new file that contains any part of the Original Code or previous Modifications.

1.10. "Original Code" means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License.

1.11. "Source Code" means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control
compilation and installation of an Executable, or a list of source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge.

1.12. "You" means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or otherwise, or (b) ownership of fifty percent (50%) or more of the outstanding shares or beneficial ownership of such entity.

2. Source Code License.

2.1. The Initial Developer Grant.
The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims:

(a) to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, or as part of a Larger Work; and

(b) under patents now or hereafter owned or controlled by Initial Developer, to make, have made, use and sell ("Utilize") the Original Code (or portions thereof), but solely to the extent that
any such patent is reasonably necessary to enable You to Utilize the Original Code (or portions thereof) and not to any greater extent that may be necessary to Utilize further Modifications or
combinations.

2.2. Contributor Grant.
Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims:

(a) to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code or as part of a Larger Work; and

(b) under patents now or hereafter owned or controlled by Contributor, to Utilize the Contributor Version (or portions thereof), but solely to the extent that any such patent is reasonably necessary to enable You to Utilize the Contributor Version (or portions thereof), and not to any greater extent that
may be necessary to Utilize further Modifications or combinations.

3. Distribution Obligations.

3.1. Application of License.
The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or
restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5.

3.2. Availability of Source Code.
Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party.

3.3. Description of Modifications.
You must cause all Covered Code to which you contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code.

3.4. Intellectual Property Matters

(a) Third Party Claims.
If You have knowledge that a party claims an intellectual property right in particular functionality or code (or its utilization under this License), you must include a text file with the source code distribution titled "LEGAL" which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If you obtain such knowledge after You make Your Modification available as described in Section 3.2, You shall promptly modify the LEGAL file in all copies You make
available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained.

(b) Contributor APIs.
If Your Modification is an application programming interface and You own or control patents which are reasonably necessary to implement that API, you must also include this information in the LEGAL file.

3.5. Required Notices.
You must duplicate the notice in Exhibit A in each file of the Source Code, and this License in any documentation for the Source Code, where You describe recipients' rights relating to Covered Code. If You created one or more Modification(s), You may add your name as a Contributor to the notice described in Exhibit A. If it is not possible to put such notice in a particular Source Code file due to its
structure, then you must include such notice in a location (such as a relevant directory file) where a user would be likely to look for such a notice. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or
liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of
warranty, support, indemnity or liability terms You offer.

3.6. Distribution of Executable Versions.
You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You
describe recipients' rights relating to the Covered Code. You may distribute the Executable version of Covered Code under a license of Your choice, which may contain terms different from this License,
provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer.

3.7. Larger Works.
You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code.

4. Inability to Comply Due to Statute or Regulation.

If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it.

5. Application of this License.

This License applies to code to which the Initial Developer has attached the notice in Exhibit A, and to related Covered Code.

6. Versions of the License.

6.1. New Versions.
Floris van den Berg may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number.

6.2. Effect of New Versions.
Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Floris van den Berg
No one other than Floris van den Berg has the right to modify the terms applicable to Covered Code created under this License.

6.3. Derivative Works.
If you create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), you must (a) rename Your license so that the phrases "FreeImage", `FreeImage Public License", "FIPL", or any confusingly similar phrase do not appear anywhere in your license and (b) otherwise make it clear that your version of the license contains terms which differ from the FreeImage Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.)

7. DISCLAIMER OF WARRANTY.

COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.

8. TERMINATION.

This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive.

9. LIMITATION OF LIABILITY.

UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.

10. U.S. GOVERNMENT END USERS.

The Covered Code is a "commercial item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" and "commercial computer software documentation," as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein.

11. MISCELLANEOUS.

This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by Dutch law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in, the The Netherlands: (a) unless otherwise agreed in writing, all disputes relating to this License (excepting any dispute relating to intellectual property rights) shall be subject to final and binding arbitration, with the losing party paying all costs of arbitration; (b) any arbitration relating to this Agreement shall be held in Almelo, The Netherlands; and (c) any litigation relating to this Agreement shall be subject to the jurisdiction of the court of Almelo, The Netherlands with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys fees and expenses. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License.

12. RESPONSIBILITY FOR CLAIMS.

Except in cases where another Contributor has failed to comply with Section 3.4, You are responsible for damages arising, directly or indirectly, out of Your utilization of rights under this License, based
on the number of copies of Covered Code you made available, the revenues you received from utilizing such rights, and other relevant factors. You agree to work with affected parties to distribute
responsibility on an equitable basis.

EXHIBIT A.

"The contents of this file are subject to the FreeImage Public License Version 1.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://home.wxs.nl/~flvdberg/freeimage-license.txt

Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.