I was thinking what it would mean if vgm files are played through Javascript. There are two ways the files can come to the user as part of the playback routine; a zip file containing all files or loose vgm files. How common is it that the zip files contain uncompressed vgm files? It's the advice I got, so probably common? Transporting the zip file to the user is going to take too long, so then it would mean uncompressed vgm files... that's not that great.
![Surprised :o](./images/smilies/icon_surprised.gif)
I guess it's not that hard to fix though with some scripting.
About the player; I have a progress bar but I'm not very happy about it because it takes too much CPU+GPU. I guess it's just implemented bad, it uses an image (96 bytes, but still), it can be done in regular CSS, but I'm not very familiar with the DOM/CSS3 thing and finding a good howto proved difficult, stuff that stopped working when new Chrome releases came etc. I guess it could be done properly these days, but I have to really dive into CSS3 to learn. I feel HTML progress bars are not smooth enough, even if they're called smooth... I haven't seen anything close to what OSX or Windows do natively. The youtube one is the best I've seen I think. For now I'll leave it to this, I can fix it later on....
On the javascript side, I'm using callbacks now, functions in the main script can then expect a call when stuff happens. So the main player can respond visually and change the track etc.
I'm pretty sure I can pull of the mp3 thing, using lamejs. I think I'll make it can be enabled. This would mean all generated data is saved in memory. If all wave data has been generated in memory, creating the mp3 won't take long!
And I'm still thinking about the buffering thing; to separate the generation of the playing. So just generate everything, then make it seek able. I think mobile phones like it much better like this; one boost at the beginning, then play the wave. Yes, it uses more memory, but what is 50MB these days?
But, before features like those last two I'll finish normal playback completely.
![Smile :)](./images/smilies/icon_smile.gif)