Have you ever wondered what the first 500 prime numbers sound like? (Of course you have). Well, wonder no longer, as with the help of Python, it’s easy to find out!
The is no known pattern to the primes, a fact which has tantalized mathematicians since ancient times, since there are nonetheless hints of pattern – a kind of ordered chaos is you will. For example, in the sound clip above, can you hear how the higher notes (representing prime numbers) frequently come in pairs? These are known as twin primes.
What else do you notice when you listen to the track?
There is also a great book availabe that explores computer science through making music using Jython Music.
For those curious to try it themselves, download Jython Music (or use this link to an online version), open a new file, paste in the code below and hit play. Of course you can experiment by changing some of the values to see what happens. For example you can easily speed up/slow down the piece by adjusting the tempo value.
from music import *
"""Check if integer n is a prime."""
# make sure n is a positive integer
n = abs(int(n))
# 0 and 1 are not primes
if n < 2:
# 2 is the only even prime number
if n == 2:
# all other even numbers are not primes
if not n & 1:
# range starts with 3 and only needs to go up the squareroot of n
# for all odd numbers
for x in range(3, int(n ** 0.5) + 1, 2):
if n % x == 0:
# create lists of pitches and durations
pitches1 = 
durations1 = 
for n in range(500):
# create an empty phrase, and construct piece using pitch/rhythm data
piece = Phrase()
# set the instrument and tempo for the piece
# play it