The synchronization problem of the singing in singshot.com most probably because of the propagation delay of network. e.g. you sing “a”, after a small amount of time (maybe 100 milliseconds [propagation delay]), the voice arrived at the server, so the delay probably is 200ms (the sound track transfer to your computer and your voice transfer to the server), then the voice is not in-sync. Several years ago, I want to develop a platform for playing band sound online, but, it seems that it's very difficult to tackle the propagation delay problem. FYI, the acceptable delay of sound for human is below or equal to 50ms.
Several possible solutions for singshot.com:
Let user adjust the delay after recording (but actually, the delay during the recordings varies)
System automatically adjust the delay by estimating the propagation delay by ping
Records the sound at the user's computer directly
Transfer the sound track and the recording together to the server
Today, we played a board game called ANTIKE. It is a board similar to the “Civilization” in computer game. You can build temples, armies and knowledges in the game.
Temple can help you to build more resources and armies in each turn. Armies can be used to attack other cities or defense. Knowledges can help you to improve your strength e.g. faster armies, faster ships, more production and increase defense power.