As a complete beginner, here's how I'd most like to use Synthesia to learn.

I'd like to use a 'how long can you play' progression game, where pieces of increasing difficulty are automatically queued up to play.

I'd like a score that would increase where I played the right notes, for the right duration, and an energy bar that would decrease where I play the wrong notes or made errors. When the energy bar reached zero - game over and the final score is shown. The aim is simply to get a higher score by playing the correct notes.

The game would use a library of pieces of similar length sorted into difficulty levels. To provide variety, for each game a piece is randomly selected from each difficulty level and queued up in order of difficulty. The lower difficulty pieces would cover a range of basic skills, scales, exercises, drills as well as tunes. As with many games, the player needs to repeat the lower levels to get a chance to play the higher levels. This repetition should be helpful in making the skills automatic.

As the user hits the higher levels, he 'levels up', and may be considered to have mastered the lower levels, so starts on a higher level for the next play.

I think with this mode of play, a beginner could realistically start to use Synthesia to learn to play. I would hope the pieces could be selected and developed to encourage good playing habits from the outset.

I'm posting this on the Modding board, rather than Feature Request board, because I'd like to volunteer to work on this.

As far as I can see, there are two major parts to it - i) Modification of the software to support the game modeii) Selecting and creating content for the levels

I think either part could be improved indefinitely, so in the first instance, I'd like to look at what's involved in making a prototype - something that would give us an idea whether the game mode was worth pursuing in the main product.

So one way to proceed for the two parts -

i) Rapid prototype, PC version only, created without regard for integration with other program features. As a software developer, I'm confident I can achieve this without requiring support or getting in the way of your development.

ii) I have a disadvantage here as I'm a beginner on piano, I'd likely only be able to create the first few levels, adding new materials as I was able to progress. I'd select from materials that are already freely available with fingering, and create materials that were not.

I would hope this prototype would give the community an idea of the value (or not) of this type of game mode. You'd be free to ignore it, integrate it or redevelop it as you saw fit. I'm just a software developer with some free time, and I haven't found the software that I'd like to see exist, so I'd like to make it for others.

Personnally, it's when the music become alive that i really enjoy playing piano; and i can spend ton of hours without a progress bar studuying with synthesia.and for the difficult increasing pièces i choose only the one i like by ear not by difficulty and i love many songs easy or not.

For me it's not a game i would like to play; for me synthesia is not a game but more a teacher/ tutor and the game is to learn music not scoring for me (even if i achieve 100/100 in synthesia it's not enough for me ) i need then to be free with my piece of music so the real works come after .

If the game doesn't allow to continue if you make mistakes it has no sense i prefer to study with the loopbar it's more efficient than repeating hundred of time the begginning of a song like a platformer game).

The only benefit i see is more for synthesia to be famous because you 'll see some youtube videos with titles like "Beethoven 3eme movements 100/100 difficulty ultimate scoring" ^^ .Like we can seee for guitar hero.

So some guys who certainly enjoy you're concept because GH is popular.

Yes, this mod is not really targeted at people who already use and enjoy Synthesia. It's more for new users who want something to get started with easily. I don't think they are catered for at all with the current software and it will really help to broaden Synthesia's appeal.

Beginners learn best when they are working on material that is not too easy (or they get bored), and not too challenging (or they get frustrated) - the idea for this mod is that appropriate material will be queued up for them that they can play without interruption.

Progression games like this punish do mistakes harshly - you might only be allowed 2 or 3 mistakes before the game ends and you've got to restart. This helps make the game addictive (just one more try! I won't make the same mistake again!), ensures the player isn't struggling with material that is too advanced, and focuses the user on not making mistakes at either the lower or higher level. Observe the kind of concentration that gamers have when on later levels of games . . it's really quite intense and skills are being really effectively perfected. It's just a shame that the skills being perfected in ordinary games are not transferable and useful like playing piano.

You might be able to try a rough approximation of this inside Synthesia today. In the Advanced settings of the Synthesia Configuration utility, find the "Gameplay.LoopMaxErrors" entry in the drop-down list. Change it to something like 3 or 4.

Then, while playing a song in Synthesia, create a loop across the whole thing (default shortcut '>' if the song doesn't have any bookmarks) or a smaller section. Play that. If you make too many mistakes, the loop restarts immediately. Certainly that could be cleaned up to be less sudden. And there is only a cumulative number of errors -- not a sliding "power" bar like you find in Guitar Hero -- but it's still close enough to try out.

Thanks for the tips. I gave it a try and it does immediately have the effect of making it more game like, and importantly, more addictive. In the default mode, I can play a song and feel good about hitting most of the notes, but with the loopmaxerrors, getting kicked out before the end of the song makes me want to play it again and reach the end of the song. So definitely a move in the right direction.

A power bar is just an implementation display detail - the key thing is the random selection of appropriate pieces so that a learner doesn't have to be so self-directed. I could probably put together external software to stitch together random midi pieces in ascending order of difficulty into a single midi file and then play as described above with a new compilation each play. However that would just be for my own amusement and learning - users have a very low tolerance for any sort of configuration so it would be difficult for new learners to try out.

Well, it's a little more than that. Having only a constant number of allowed errors doesn't quite reach the Guitar Hero-style behavior of a system that forgives over time.

Imagine making 4 of your 5 allowed errors in the first measure, playing the next twenty measures perfectly, and then making a mistake on the last note just to get a game over. From the user's perspective, a single mistake causing failure after twenty perfect measures would feel super unfair.

Instead, using a sliding scale (like Guitar Hero's) that you can build back up over time would solve the frustration. It also helps to build tension whenever the meter starts to scrape bottom. I've experienced some really strong emotional responses along the lines of "did you see how close that was?!" when barely making it through a hard part in Guitar Hero (and Rock Band).

I think both styles of game mode are viable and might appeal to different types of users. I think a guitar hero mode might be best for learning to play particular pieces, and a progression style game with random selections for learning piano skills and the basics.

I'm volunteering to work on it. I currently have free time and am enthusiastic about the project but of course I'd need access to the source to implement it. I can understand why you might be reticent to provide that. Can you think of any way we could collaborate on it?

Yeah, for now there isn't a great way that I'm comfortable allowing access to the source. The only other developer on the project had to spend about 6 years hanging out with me before I was convinced it made sense to open those doors... and it was still a big leap for me.

An outdated answer was that work could be demonstrated on the old open-source repository and I could integrate it with the new stuff... but so many years have passed that the last open-source version is almost completely different than the repository today.

Still, the "random selection of appropriate pieces" part could be done in a stand-alone fashion and integrated later. What would your criteria be for "appropriate pieces"? What sort of data would you need at your disposal to make those decisions?

Nicholas wrote:Yeah, for now there isn't a great way that I'm comfortable allowing access to the source. The only other developer on the project had to spend about 6 years hanging out with me before I was convinced it made sense to open those doors... and it was still a big leap for me.

That's okay. I can understand that.

Nicholas wrote:Still, the "random selection of appropriate pieces" part could be done in a stand-alone fashion and integrated later. What would your criteria be for "appropriate pieces"? What sort of data would you need at your disposal to make those decisions?

Well I think you've got pieces divided into different levels . . . so a game might simply consist of picking one randomly from each level and queuing them up in order. I think I'd want some lower level piece in there for the absolute beginner - just beating out time, or playing a simple scale.

Alexander you can create any prototype you want with older Synthesia with command line support, not sure which was last version. You can even jump directly to markers I guess? Loop, too many errors, game over, new command line from next successful marker. You would loop the game/song from marker to marker, each marker region would be your 'game level'. I had an older idea changing game speed, too many errors > slower, playing better > faster. Auto-linking errros per 'marker region' to game speed. I thought this is an interesting and useful idea. Like background image of song analysis. Different key segment colors, above on timeline.