Neat! I've been reading up and playing around with this stuff the past few weeks, from both the waveform synthesis side and the music theory side. I don't think I've quite wrapped my head around the basic concepts yet. (i.e.: Why have non-chromatic scales that skip semitones? Why do some sets of notes sound good and not others? What parts of sound quality derive from innate psychoacoustics, and what parts are my bias from growing up in the Western world?) I'll definitely be taking a closer look at saebekassebil's Javascript code, which seems to be an attempt to organize these concepts.<p>It's strange how once you get interested in a topic, you start seeing stuff about it everywhere. First the Clojure-based Overtone project, and now this...
I made a quick fork to add audio to this using the Web Audio API (webkit only, tested on Chrome and Safari).<p><a href="http://acarabott.github.com/teoria/" rel="nofollow">http://acarabott.github.com/teoria/</a>
Okay, this link doesn't look like it does this justice. I found the Github page to be much better:<p><a href="https://github.com/saebekassebil/teoria" rel="nofollow">https://github.com/saebekassebil/teoria</a>
On a similar note to this, I had great fun writing the keyboard and stave search input for for <a href="http://www.folktunefinder.com" rel="nofollow">http://www.folktunefinder.com</a> in JavaScript (you'll find keyboard-xxx.js file in there if you look).<p>(For bonus points the search engine is written in Go).
I've never considered the waveform of a chord before, is the reason that some intervals sound harmonious because the period of their combined waves is short?
As a once undergrad music student now working in acoustics, thanks for creating this. Something like this has been on my list of things to program, especially with libraries out there like D3.js. Good luck!