hexnot: an experimental musical notation
Over the past year or so, I’ve been experimenting with making my own musical notation. I called it *hexnot*, because it uses (sparingly) the hexadecimal number system.
Fully half of this initiative stems from my unavoidable and incurable tendency to reinvent the wheel.
As for the other half of my motivation, it consisted of my desire to have a musical notation that:
- Would treat each of the 12 tones as equal citizens (no sharps or flats).
- Would be easy to read/write in a text editor (and perhaps would be amenable to machine readability sometime in the future).
After some experimentation, I decided to use the numbers from 1 to 12 for each of the notes (1 being C, 2 being C# or Db, 3 being D, and so forth, and finally 12 being B). Only that to represent 10, 11 and 12, instead of using digits, I use the letters A, B and C respectively. This allows representing each tone with one character only, so you don’t need spaces to distinguish (for example) 1 2 from 12.
With this system, the dodecaphonic scale can be written as 123456789ABC. To express a rest (silence), we can use a 0.
Besides tones, we need at least two more things: note value (the length of the note) and octave. To avoid creating a jumble of numbers, I opted to use the lowercase letters a, b, c, … to represent the numbers 1, 2, 3, etc.
How are these lowercased letters used? In the case of octaves, a means that whatever tone it applies to, it is on the first octave, whereas d means that the tone belongs to the fourth octave (to represent [A440], also known as A4, we would use A for the tone and d for the octave). The octaves start at tone 1 (that is, C).
In the case of note values, I use a for the whole note (4 beats), b for the half note, c for the quarter note, d for the eight note, e for the sixteenth note, etc. If you want to represent one and a half units (dotted note), you use the uppercase letter. For example, a dotted quarter note would be D.
To organize music, I decided to create three parallel lines. The middle one expresses the tone; the bottom one expresses the octave; while the top one expresses the value (length) of the note.
A quick example can show what we have so far. Here’s the first three bars of the right hand on the Happy Birthday song for piano (in 3/4, I mean, 3/c).
rh bDe|c |bDe rh 011|316|511 rh d | |
Notice that both for the value and the octave, if the next note has the same letter as the previous one, the letter is not written. This unclutters the notation a lot. Compare the example above with this:
rh bDe|ccc|bDe rh 011|316|511 rh dd|ddd|ddd
However, the octave and value must be added every time you start a new line.
To represent chords, I use the special letter s in lieu of the value. For example, the first three left hand bars of the Happy Birthday song can be written like this:
lh B|Bss|Bs lh 0|6A1|B1 lh |c d|cd
The chords are always written from the lowest note to the highest. The value of the first note is always written, to disambiguate where the chord starts.
To express repetitions within the same bar, I use the notation 2X, 3X, 4X, etc. and delimitate the repeated group by spaces. I put these indicators on all three lines.
Every group of three lines (how should I name it? Triptic? Trifecta?) can only express either simultaneous or consecutive notes. Sometimes that’s not enough, and then you need more than one triptic/trifecta per piano hand.
Here’s what the notation cannot do, so far:
- Ligatures. I’m experimenting with a fourth line made of underscores and dashes, but I’m not sure about it yet.
- Dynamics (volume).
- Show digitations.
Overall, however, this notation is helping me read music in a different way. Those who like numbers might appreciate the numeric patterns that emerge from transcribing music onto hexnot. Programmers might appreciate the ASCII and fixed-length nature of hexnot.
Stay tuned for updates and more transcribed pieces. And thanks for reading!