Since tim cook removed midi support in mt lion, I've been looking for ways to get the midis that play on my professional homepage to work again. I tried this one and it's cool, but as far as I was able to use it, it was limited to just one instrument.
I've recently used this library to make an ear trainer app (http://www.earbuilder.com). It's pretty easy to use and the creator responds really quickly - the only issue I have at the moment is playing sounds simultaneously within Chrome.
This is really cool! I had some trouble with the harmonic setting at first (in Chrome), but after refreshing the page it seems to work fine. It's crazy how much harder it got once that setting went on.
Sounds absolutely terrible on Firefox 18.0.2/Linux... I think it's sad MIDI isn't in the Web Audio API, the code for 95% of this is written already, just not accessible. The web really needs to reinvent everything in JavaScript I guess.
Yup; crackles abound. I pulled it up in Chromium 24.0.1312.70 to see if the sound was any better, and (most of) the crackles are gone. When > 4 notes play you still get a bit of crackle, but it's far, far better.
It's sad that everything HAS to be re-invented, but I am frequently excited to see what can be done with ES5. I'm eager to see what ES6 brings us.
I see a lot of jokes about the mid-90s, Geocities, & by extension the Crescendo plugin, but that comes from a misunderstanding of what MIDI is. It's a set of instructions, not a sound format. The awful music you might associate with MIDI was your crappy soundcard interpreting note instructions. When you send those MIDI instructions to a more capable device, the results can be much better.
Where this is exciting is not in that you can embed background music in a web page without the bandwidth required of compressed audio, so much as that it is a step toward further opening up the realm of building interfaces for professional musical instruments (and not so professional musical instruments).
Anecdote time: In the late 90s, I'd bought a Roland drum machine that I felt had a really horrible programming interface, and I wanted to put my budding programming skills to use and build a nice visual interface that emulated the more intuitive devices from the 80s - and I had no idea where to start.
Fast forward to a couple of years ago, and in the heat of the "HTML5 can do anything Flash does" debate, I decided to try emulating one of my drum machines using only HTML5 & CSS - http://bitrotten.com/dr110/ - because while I felt it was impossible to do something like http://www.audiotool.com/ in HTML/JS/CSS, I wanted to put my money where my mouth was. (Result: Javascript timing is horrrrrible, audio handling is a work in progress, playback is inconsistent between browsers... Flash still wins by a very long mile on this front) But aside from the audio, I felt I could actually do a decent job of building out an interface.
I guess the point I'm getting at is that in the coming years, not only will audio improve, but with the ability to output MIDI, a very accessible set of free tools (as in, a text editor, and a web browser) means that fewer people will experience the frustration I had over 15 years ago when I wanted to roll-my-own interface for external music hardware.
Having said that, I think that solid timing will prove to be a formidable foe, particularly in a realm where you still have holdouts from the DIN SYNC era who say MIDI isn't responsive enough.
This is fantastic! A Javascript library that can transport you back to 1996 Geocities! Seriously, it is nice to start seeing sound tools for Javascript. Javascript, CSS, and HTML5 were to be the great Flash Slayers, but the things that Flash are "good" at, Video and Sound, seem the be last on the list of items to be implemented.
I'm seeing an indefinite "Loading: Soundfont..." spinner. Looking at the console, it looks like a few assets take a long time to download and then fail before finishing. Could it be your server is serving assets itself and killing the connection after ~10s?