Looks really nice and it's fun to play around with. Maybe a control for inversing the chords would be fun? That would mean support for chords like A7/c# and maybe also closer chord voicings.
I should also add that the app became much more fun when I accidentally read the "Help" menu and became aware of "play" and "root" - maybe that information should be a bit more visible?
I'm interested in what if any library you've used for the theory - did you just built one yourself? You could take a look at teoria(https://github.com/saebekassebil/teoria) which is a by now pretty seasoned music theory library in js, with a chord parser included.
> I like freshly squeezed oranges off my orange tree but they don't grow all year round. I am mostly happy not to consume oranges out of season but that isn't really a basis for a sustainable industry...
Actually I'd call that the definition of a basis for a sustainable industry...
I think this is very suitable description of today's HN - I'd just love this to emphasized more clearly, since it seems like a common mistake to believe that HN is about actual ground-breaking stuff. It's not even if it were ment to be just that.
I must say that I agree with people stating that people should present their creative works here, with the intention of getting feedback of the product - How is it any relevant for any other HN reader (than OP), that we praise him/her as a person, rather than the product? The FAQ states, that relevant information is "anything that gratifies one's intellectual curiosity" - Of course that's a quite vague definition, but still this is hardly intellectually stimulating.
So this is all in the holy name of making JavaScript the assembly language of the web? Making it possible for every JavaScripter to write "his own" JavaScript syntax definitions meaning that I'll (as a contributor or just casual watcher) would have to read his whole collection of macros before I could begin to understand the code?
I don't think this can be compared to API's as they still follow the regular syntactic definitions - This will be like reading a completely new language every time I read a different repository. (Of course this is a worst-case scenario as I imagine that many macros will be used across several projects, but still.)
Is all hope gone for writing vanilla JS gone? And isn't macros kinda going in the opposite direction than the ES specs? There's no use for many of the ES6/7 features as they could just be mocked up in macros.
Of course, as in every aspect of understanding, here for source code, it is important first to learn the context, here the macro definitions. My concern is that this will impose more than just a paradigm - it will impose new syntax which could effectively completely ruin the readability of JavaScript source.
The macro syntax is definitely not simple, and it could possibly get really complex for more elaborate syntactic definitions, thus rendering the source much less readable. Is the overall benefits of introducing macros to JavaScript really worth the costs of readability? And does the effort to integrate macros into the browser mean that it'll be possible to evaluate macros "runtime"?
May be off-topic but: Is it just me, or are macros just a new way to get confused while reading JavaScript? Introducing language-foreign syntactic constructs seems to me superfluous and confusing - This is the job of transcompiling languages like CoffeeScript.
I should also add that the app became much more fun when I accidentally read the "Help" menu and became aware of "play" and "root" - maybe that information should be a bit more visible?
I'm interested in what if any library you've used for the theory - did you just built one yourself? You could take a look at teoria(https://github.com/saebekassebil/teoria) which is a by now pretty seasoned music theory library in js, with a chord parser included.
EDIT: (PS: Also add9 add11 chords would be nice)