Music Theory Utility
Music Theory Utility
Hi all
I have recently been reading up on my music theory and my understanding is slowly starting to improve. As a result I began working on an online music theory tool. It's really only in the very early stages of development but I thought it might be good to share it with people here to get some feedback on the types of features that would be useful to add. My original goal was to make it a very pragmatic tool that your average home musician/ songwriter could use to answer questions such as: what key is this song in? what other chords could I try? etc. The down side at the moment is that it only knows about major scales, but the up side is that it figures out everything it knows from first principles (ie. it only knows the intervals for the chord types and the intervals for the major scale and calculates all the chords in the key etc). The advantage to this over just entering tables of information is that it should make it easy to expand in a variety of interesting ways depending on what people think would be useful.
Anyway, it's all free and open-source, so take a look at http://jacl.animats.net/fastcgi-bin/kielbasa.jacl if you are interested.
Regards,
Stuart
I have recently been reading up on my music theory and my understanding is slowly starting to improve. As a result I began working on an online music theory tool. It's really only in the very early stages of development but I thought it might be good to share it with people here to get some feedback on the types of features that would be useful to add. My original goal was to make it a very pragmatic tool that your average home musician/ songwriter could use to answer questions such as: what key is this song in? what other chords could I try? etc. The down side at the moment is that it only knows about major scales, but the up side is that it figures out everything it knows from first principles (ie. it only knows the intervals for the chord types and the intervals for the major scale and calculates all the chords in the key etc). The advantage to this over just entering tables of information is that it should make it easy to expand in a variety of interesting ways depending on what people think would be useful.
Anyway, it's all free and open-source, so take a look at http://jacl.animats.net/fastcgi-bin/kielbasa.jacl if you are interested.
Regards,
Stuart
Re: Music Theory Utility
LoopStationZebra wrote:it's like a hipster commie pinko manifesto. Rambling. Angry. Nearly divorced from all reality; yet strangely compelling with a ring of truth.
-
jimmynitcher
- Posts: 399
- Joined: Fri Mar 26, 2004 6:30 pm
- Location: UK
Re: Music Theory Utility
Really cool thanks a lot - just put G major in and worked out the majority of Bowie's Quicksand in like 2 mins

-
justchris86
- Posts: 236
- Joined: Mon Apr 11, 2011 5:33 pm
- Location: Calgary, Alberta, Canada
Re: Music Theory Utility
Awesome!
-
stringtapper
- Posts: 6321
- Joined: Sat Aug 28, 2004 6:21 pm
Re: Music Theory Utility
The biggest hitch I see with this is that there's no way to differentiate between enharmonically spelled pitches.
For instance if I input the notes Bb, D, and F on your keyboard I get A#, D, and F, and your program tells me that this chord can be in either A# major, D# major, or F major. The first problem is that there are no such keys as A# major or D# major. Second, you wouldn't find an A# in the key of F major because that would be a chromatic alteration of the third scale degree, A.
Of course both of these issues arise from the fact that first note I picked was in fact Bb and not A# yes, in 12-tone equal temperament Bb and A# sound identical, but in terms of how they function they are quite different, and understanding function is key (!) in gaining a deeper understanding of music theory.
So I would suggest you look into a way to differentiate between enharmonic spellings, which means you have to add flat accidentals into the scheme and give the user some way to choose which spelling they intend.
It's the beginning of a great little app you have going there. Keep it up!
For instance if I input the notes Bb, D, and F on your keyboard I get A#, D, and F, and your program tells me that this chord can be in either A# major, D# major, or F major. The first problem is that there are no such keys as A# major or D# major. Second, you wouldn't find an A# in the key of F major because that would be a chromatic alteration of the third scale degree, A.
Of course both of these issues arise from the fact that first note I picked was in fact Bb and not A# yes, in 12-tone equal temperament Bb and A# sound identical, but in terms of how they function they are quite different, and understanding function is key (!) in gaining a deeper understanding of music theory.
So I would suggest you look into a way to differentiate between enharmonic spellings, which means you have to add flat accidentals into the scheme and give the user some way to choose which spelling they intend.
It's the beginning of a great little app you have going there. Keep it up!
Unsound Designer
Re: Music Theory Utility
Thanks for the feedback, I really appreciate it. Although the system currently does have the ability determine whether a note or key should be expressed as sharps or flats, this doesn't kick in until there is only one possible key the song could be in. So, for example, it will say the song could be in A# or D until a note is added that rules out D and then it will say the song is in Bb. I need to have a think about naming all the possibilities correctly earlier in the process.stringtapper wrote:The biggest hitch I see with this is that there's no way to differentiate between enharmonically spelled pitches.
...
So I would suggest you look into a way to differentiate between enharmonic spellings, which means you have to add flat accidentals into the scheme and give the user some way to choose which spelling they intend.
Once that is working I'd like to add some features for transposition and chord substitution.
Thanks again,
Stuart
-
stringtapper
- Posts: 6321
- Joined: Sat Aug 28, 2004 6:21 pm
Re: Music Theory Utility
To be clear, there is no key of A#, i.e. there is no conventional key signature for such a key. It would mean you would have three double sharps in the key, and doubled accidentals don't exist in key signatures. By offering enharmonic differentiation from the start you can take away the possibilities that are clearly wrong. In the case of A#, it should never be an option as a key that any chord would exist in. An example that would involve a real key would be if you had a chord spelled B-D#-F#. Now (limiting the options to diatonic chords in major keys) this chord could exist as I in B major, IV in F# major, or V in E major. It could not, however, be I in Cb major (which is a real conventional key), or IV in Gb major (real key), and certainly not V in Fb major (not a real key), because even though a B major triad and a Cb major triad are sonically identical in twelve-tone equal tempered tuning, they are not functionally identical.DangarStu wrote:Although the system currently does have the ability determine whether a note or key should be expressed as sharps or flats, this doesn't kick in until there is only one possible key the song could be in. So, for example, it will say the song could be in A# or D until a note is added that rules out D and then it will say the song is in Bb.
Sorry to repeat myself a little but I wanted to make sure what I was saying was clear. Keep at it!
Unsound Designer
Re: Music Theory Utility
No need to apologise, I appreciate the help.stringtapper wrote: Sorry to repeat myself a little but I wanted to make sure what I was saying was clear. Keep at it!
I think I have the naming better now - I believe I avoid any of the completely incorrect naming I had in the previous version. The trouble I think I've hit up against now that might be hard to solve is that internally I only have a single representation of each enharmonic key. For example, the system only knows about Db, not C# and F# not Gb. I'm not sure how much of problem this is going to be yet given the real purpose of the utility and the target audience, but time will tell I guess.
If you add the C# chord and click on the possible keys the note names and chord names in the drop down list now all change dynamically. One other remaining oddity is that you can still get the chord 'A#' appearing in the drop down list if you select a key such as 'F#'. This is because by selecting F# it tells the system to express everything as sharps. Of course the chord Bb Major (shown as A# Major) isn't in the key F# so it's only a problem in chromatic drop down list, not in the list of chords in the key.
Regards,
Stuart
Re: Music Theory Utility
Brilliant, thanks!
p.s. I love your song, Glass Slipper.
p.s. I love your song, Glass Slipper.
Re: Music Theory Utility
Thanks for that. In the time I've been playing with Ableton Live, The Glass Slipper is the only song so far that has come out the way I wanted.c33 wrote:Brilliant, thanks!
p.s. I love your song, Glass Slipper.
Stuart