Listening to golden angles
The other day I wrote about the golden angle, a variation on the golden ratio. If I is the golden ratio, then a golden angle is 1/I2 of a circle, approximately 137.5, a little over a third of a circle.
Musical notes go around in a circle. After 12 half steps we're back where we started. What would it sound like if we played intervals that went around this circle at golden angles? I'll include audio files and the code that produced them below.
A golden interval, moving around the music circle by a golden angle, is a little more than a major third. And so a chord made of golden intervals is like an augmented major chord but stretched a bit.
An augmented major triad divides the musical circle exactly in thirds. For example, C E G#. Each note is four half steps, a major third, from the previous note. In terms of a circle, each interval is 120. Here's what these notes sound like in succession and as a chord.
https://www.johndcook.com/augmented.wav(Download)
If we go around the musical circle in golden angles, we get something like an augmented triad but with slightly bigger intervals. In terms of a circle, each note moves 137.5 from the previous note rather than 120. Whereas an augmented triad goes around the musical circle at 0, 120, and 240 degrees, a golden triad goes around 0, 137.5, and 275.
A half step corresponds to 30, so a golden angle corresponds to a little more than 4.5 half steps. If we start on C, the next note is between E and F, and the next is just a little higher than A.
If we keep going up in golden intervals, we do not return to the note we stared on, unlike a progression of major thirds. In fact, we never get the same note twice because a golden interval is not a rational part of a circle. Four golden angle rotations amount to 412.5, i.e. 52.5 more than a circle. In terms of music, going up four golden intervals puts us an octave and almost a whole step higher than we stared.
Here's what a longer progression of golden intervals sounds like. Each note keeps going but decays so you can hear both the sequence of notes and how they sound in harmony. The intention was to create something like playing the notes on a piano with the sustain pedal down.
https://www.johndcook.com/bell.wav(Download)
It sounds a little unusual but pleasant, better than I thought it would.
Here's the Python code that produced the sound files in case you'd like to create your own. You might, for example, experiment by increasing or decreasing the decay rate. Or you might try using richer tones than just pure sine waves.
from scipy.constants import goldenimport numpy as npfrom scipy.io.wavfile import writeN = 44100 # samples per second# Inputs:# frequency in cycles per second# duration in seconds# decay = half-life in secondsdef tone(freq, duration, decay=0): t = np.arange(0, duration, 1.0/N) y = np.sin(freq*2*np.pi*t) if decay > 0: k = np.log(2) / decay y *= np.exp(-k*t) return y# Scale signal to 16-bit integers,# values between -2^15 and 2^15 - 1.def to_integer(signal): signal /= max(abs(signal)) return np.int16(signal*(2**15 - 1))C = 262 # middle C frequency in Hz# Play notes sequentially then as a chorddef arpeggio(n, interval): y = np.zeros((n+1)*N) for i in range(n): x = tone(C * interval**i, 1) y[i*N : (i+1)*N] = x y[n*N : (n+1)*N] += x return y# Play notes sequentially with each sustaineddef bell(n, interval, decay): y = np.zeros(n*N) for i in range(n): x = tone(C * interval**i, n-i, decay) y[i*N:] += x return ymajor_third = 2**(1/3)golden_interval = 2**(golden**-2)write("augmented.wav", N, to_integer(arpeggio(3, major_third)))write("golden_triad.wav", N, to_integer(arpeggio(3, golden_interval)))write("bell.wav", N, to_integer(bell(9, golden_interval, 6)))