Microtonal and Just Intonation Soundfonts
I have been exploring alternative musical tuning systems. Western music uses 12 tone equal temperament, which divides the space between octaves into 12 equally-spaced steps. There are many other ways to divide a scale, though, such as 22-TET, which divides the octave into 22 equal parts. Just intonation is another 12-tone system, but instead of dividing things equally, it uses a series of pleasing ratios:
C | D | E | F | G | A | B | C |
---|---|---|---|---|---|---|---|
1 | 9/8 | 5/4 | 4/3 | 3/2 | 5/3 | 15/8 | 2/1 |
This sounds great, except that it only works with one key. As an example, check out the perfect fifths below for the C major just scale. The in-key fifth, C-G sounds lovely. If we play the root and fifth of a D major chord, though, it sounds terrible because the scale was not designed for the key of D.
- D to A fifth in a C Major Justly Tuned scale
- D to A fifth in 12-tone equal temperment
Thus as a compromise western instruments divide the notes equally so they can play in all keys, albeit slightly out of tune. Check out the audio below to hear the difference between intervals in Just intonation and 12 tone equal temperment (apologies for clunky scales, I don't play piano much). If you listen closely, you can hear that the Just intonation intervals have a high-pitched ringing tail. This is because the root and the fifth have common harmonics. This does not happen in the equal-tempered version because the fundamentals are not properly aligned.
- C Major scale in Just Intonation
- C Major scale in 12-tone ET
- Just Perfect 5th
- 12-TET Perfect 5th
- Just Perfect 4th
- 12-ET Perfect 4th
- Just Major 3rd
- ET Major 3rd
I just finished creating a draft of a C major Just Intonation soundfont for my USB MIDI keyboard, which you can download here. To make the soundfont, I used the FOSS Polyphone soundfont editor. To ensure everything was tuned correctly, connected the audio output of Polyphone to the lingot tuner program and checked it against the table of frequencies I generated with Python. I plan to go back and extend the range plus add in the chromatics. I would also like to make a 22-TET and 24-TET soundfont to get something really different sounding. I am hoping to be able to compose a couple short pieces soon.