This page contains supplementary material for "Exploring the space of perfectly balanced rhythms and scales". These include MATLAB routines used in the paper, and illustrative videos and musical examples.
The routines are bundled in two zip files.
The file Rebalance.zip
contains a single MATLAB function
Rebalance.m
which, given a periodic location vector, finds the closest perfectly balanced pattern, as detailed in Sec. 5.3.1.
The file MinimalEntropyPB.zip
comprises all the routines used to find perfectly balanced scales that minimize spectral entropy, as detailed in Sec. 6.2.1.
Leaderboarder.m
is the master routine, which calls the following functions:
TabooCheck.m
adds a penalty to ensure previous local minima are not refound;
LocalSearchGrad.m
defines the perfect balance constraint and sends a starting pattern to MATLAB's built-in fmincon
function for optimization against the spectral entropy utility function (and its gradient) calculated by scaleSpectralEntropyIZWG.m
. The interval content of the optimized scales are calculated by
expectationTensor.m
. The function
MakeDistanceMatrix.m
calculates the pairwise distances between scales; for each pair, the distance is the lowest distance under any rotation, being the greatest absolute difference between corresponding step sizes.
The text file PrimitiveMinimalsInSphenics.txt
lists, as indicator vectors, all primitive minimals in sphenic N up to 102.
Babylon 19|30—performed by DNIG! (Andrew Milne, Gareth Hearne, Felix Dobrowohl, Ian Colley) on 2nd September 2016 at The Playhouse, Kingswood, Western Sydney—is based upon a well-formed rhythm in 19 and a perfectly balanced rhythm in 30. The perfectly balanced part runs from 07:25–08:05 and again from 08:40–11:10; it uses regular and primitive minimals in 30 (Table 1 and Fig. 6) to create an interweaving polyrhythmic structure.
The mo.nzoli Pygmy dance rhythm, and the "Deal With It" and "Dots..." loops detailed in Sec. 7.1.
A physical demonstration of perfect balance using weights on the rim of a bicycle wheel, as detailed in Sec. 1.
An overview of how perfectly balanced rhythms are parameterized in XronoMorph, as detailed in Sec. 6.1. XronoMorph can be downloaded from http://www.dynamictonality.com/xronomorph.htm, and further video demonstrations are available at https://www.youtube.com/c/xronomorph.