Guitar Scale Formula
Last week I found myself wanting for a simple guitar application containing a number of fairly simple utilities that could replace all the books, charts and little devices each with there own specific task. Being as awkward as I am it wasn’t long before I was looking into how to solve these problems myself.
First up I have to find a way for the application to hold guitar scales. At first this seemed like a task of titanic proportions. I figured I would want to store at least 15 scales, in all 12 keys up to at least the 12th fret. The average scale has around 6 notes per key which let me estimate there will be around 35 notes per key in a scale, or a total of 35*15*12 = 6300 notes in the scope I set. Given that each note can be one of twelve (A - Ab), each note can be represented as a byte giving a data storage size of around 6.5k. This doesn’t sound too bad, until you consider the scope for error. Storing 6.5k of data is one thing but bug checking it is something quite different.
Luckily this would be a very bad design. An application would not need to store every note in a scale that is visible on the neck, only the notes used in the scale itself which averages out around 6 notes. This cuts the data size to 12*6 = 72 values per scale and 15*72 = 1080 for the scope of the project. A good start but there is a better way.
This is where the scale formula comes in. The formula works by representing each note in the scale by its relation to the major scale. This would mean that a value of b3 would represent a note a half step lower than the 3rd note of the major scale in the same key. This makes it sound more confusing that it really is and can better be explained with an example.
This example will use the minor pentatonic scale in the key of E. The minor pentatonic scale formula is 1, b3, 4, 5, b7.
First lets look at all the formula and note values, which is based on the major scale (this starting point is the same for any scale or key you want to work out):
formula: 1 b2 2 b3 3 4 b5 5 b6 6 b7 7 notes: A A# B C Db D D# E F F# G Ab
Now we need to shift the formula list so it starts on the note of the key we want. In this example the key we want is E. This is shown below:
formula: 1 b2 2 b3 3 4 b5 5 b6 6 b7 7 notes: E F F# G Ab A A# B C Db D D#
Now we use the scale formula to get the correct notes for this scale:
formula: 4 5 b7 1 b3 notes: A B D E G
The notes left are the E minor pentatonic scale.
|average values per scale||72||6|
|total values for 15 scales||1080||90|
Not only does this mean that a huge number of scales can be stored with very little data but it also means that testing is minimized to checking the formulas only. And because the values are calculated and not stored it means that the application no longer has to limit the number of frets it supports due to storage or testing.
But thats not all; not only does this work for all scales, it can be used in exactly the same way to represent any chord. Very handy when writing a guitar application.
- FIN -
About this entry
You’re currently reading “Guitar Scale Formula,” an entry on ReloadSystems
- 07.24.07 / 3pm
- Theory and Formulas