Interesting Esoterica

On The Euclidean Algorithm: Rhythm Without Recursion

Article by Thomas Morrill
  • Published in 2022
  • Added on
A modified form of Euclid's algorithm has gained popularity among musical composers following Toussaint's 2005 survey of so-called Euclidean rhythms in world music. We offer a method to easily calculate Euclid's algorithm by hand as a modification of Bresenham's line-drawing algorithm. Notably, this modified algorithm is a non-recursive matrix construction, using only modular arithmetic and combinatorics. This construction does not outperform the traditional divide-with-remainder method; it is presented for combinatorial interest and ease of hand computation.

Links

Other information

key
OnTheEuclideanAlgorithmRhythmWithoutRecursion
type
article
date_added
2022-07-08
date_published
2022-09-14

BibTeX entry

@article{OnTheEuclideanAlgorithmRhythmWithoutRecursion,
	key = {OnTheEuclideanAlgorithmRhythmWithoutRecursion},
	type = {article},
	title = {On The Euclidean Algorithm: Rhythm Without Recursion},
	author = {Thomas Morrill},
	abstract = {A modified form of Euclid's algorithm has gained popularity among musical
composers following Toussaint's 2005 survey of so-called Euclidean rhythms in
world music. We offer a method to easily calculate Euclid's algorithm by hand
as a modification of Bresenham's line-drawing algorithm. Notably, this modified
algorithm is a non-recursive matrix construction, using only modular arithmetic
and combinatorics. This construction does not outperform the traditional
divide-with-remainder method; it is presented for combinatorial interest and
ease of hand computation.},
	comment = {},
	date_added = {2022-07-08},
	date_published = {2022-09-14},
	urls = {http://arxiv.org/abs/2206.12421v1,http://arxiv.org/pdf/2206.12421v1},
	collections = {easily-explained,fun-maths-facts,music},
	url = {http://arxiv.org/abs/2206.12421v1 http://arxiv.org/pdf/2206.12421v1},
	urldate = {2022-07-08},
	year = 2022,
	archivePrefix = {arXiv},
	eprint = {2206.12421},
	primaryClass = {math.HO}
}