How To Write a Trillion-Year Piece of Music

Allow me to introduce the polyprimiad, a musical form anyone can use to produce works that are extremely long and continuously varied.

The principle behind it would work nicely as the stuff of a conceptual artwork, but I’d hate to see it limited to that.  I think it also has real aesthetic potential, even if composing effectively with it poses some novel challenges.   With that in mind, I’d like to frame it here as a form that’s open for democratic exploitation, just like the canon or the rondo.  I don’t mean to claim that the polyprimiad idea itself is new with me; as we’ll see, others have either published musical works that are much like polyprimiads or at least spelled out the principle behind them.  However, I did coin the term “polyprimiad,” and I believe I may be alone in promoting the polyprimiad as something other people ought to try their hands at writing.   Of course I’ve composed some sample polyprimiads of my own—see below—but I’m not sure any of them count as good polyprimiads.  Maybe there ought to be some kind of annual polyprimiad competition to encourage further development.

The polyprimiad isn’t the only option available to those who want to compose musical works of unusual length.  For context, here are some examples based on other strategies:

  • Erik Satie’s Vexationswith the direction that it should be repeated 840 times.  One performance of it in 1963 lasted over eighteen hours.  A more extreme case of the same kind is ΩΣPx0(2^18×5^18)p*k*k*k by Bull of Heaven, which consists of 5.755859375×1053 repetitions of a 32/175-second pulse (see Appendix B for a technical analysis).  Strategy in both cases: take X and repeat it identically many times.
  • The Song That Never Ends, Badger Badger Badger (as a musical work), and any other piece that repeats in an infinite loop.  Strategy: take X and repeat it identically forever.
  • Clarence Barlow’s Stochroma, of which Tom Johnson observes (here, on page 7) that “the duration of the rest between event 4 and event 5 must last 252 seconds,” or roughly 142,710,460 years.  Strategy: carry out a single instruction for a very long time.
  • John Cage’s As Long As Possible, for organ, and more specifically a performance of it currently underway in which each note or rest lasts for months on end, giving it a total projected duration of 639 years.  Strategy: take a sequence of instructions and take a very long time to carry out each one.
  • Any music that continues indefinitely based on chance operations of some kind.  For example, an Aeolian harp could theoretically play for as long as there’s wind.  Also any music that draws on an infinite external pattern, such as Canton Becker’s Shepherd’s Pibased on the first billion digits in the number π, with a projected duration of about 114 years: “Because the numbers in pi never repeat, each of the million hours…are in fact unique. By fast forwarding to some distant moment in the song, you are virtually guaranteed to find yourself listening to something that nobody else—including the composer himself—has ever heard before.”
  • Jem Finer’s Longplayer The main version of this work was set in motion at midnight on December 31, 1999, and is designed to continue without repetition for exactly one thousand years, until midnight on December 31, 2999.  It consists of a looped recording of Tibetan singing bowls being repeatedly played at six different sample rates for as far as they each get in a two-minute period, with the six parts restarting from different points in the source recording every two minutes, and with each cycle’s starting point advancing by a consistent increment each time.  Longplayer is streamed continuously over the Internet; to listen, you need to download a pls file and open it in the media player of your choice.  There’s also at least one “live” version of the piece adapted for human performance.  Longplayer is probably the best-known extremely long musical work based on the use of interlocking cycles, but its mechanism is rather complicated, and for all that’s been written about it—including Finer’s own book—I was unable to find a concise technical explanation anywhere of all its defining calculations, which I ended up working out for myself (see Appendix A).
  • Method ringing, a subtype of change ringing in which a set of bells is rung in various permutations according to a generative algorithm.  The most extreme example I know of this type is the chime generator associated with the Clock of the Long Now project, the plan—conceived by Brian Eno—being to cycle through all possible permutations of ten bells.  Calculating 10! gives 3,628,800 permutations, which at a rate of one chime per day would run for around 9,935 years, close to the 10,000-year target of the project as a whole.  The bell notes are C4, F4, G4, A4, B♭4, C5, D5, E5, F5, and G5, and you can find a zipped list of daily chimes here for the period from January 1, 2000, through December 31, 12001, as well as the algorithm itself here in a Perl script.  I checked, and the chime for January 1, 2000, is scheduled to repeat on April 27, 11935.  In a similar vein, Philip Crevier’s “Sadist Factory” is “based on a computer readout of the 40,320 possible combinations of the C major musical scale,” which occupies 1,680 pages in sixteen volumes, contains 322,560 notes, and was the subject of a hundred-hour-long performance on piano, organ, and synthesizer (see reports in the New York Times of August 10 and 15, 1973).  8! = 40320 (the number of permutations), and 40320 × 8 = 322560 (the total number of notes).  “Sadist Factory” was apparently listed at one time in the Guinness Book of World’s Records as the world’s longest musical composition.  This approach could, of course, be taken much further.  Say we had forty-eight bells, tuned to two octaves’ worth of quarter tones: that would give us 48! = 12,413,915,592,536,072,670,862,289,047,373,375,038,521,486,354,677,760,000,000,000 permutations.  If we were to sound one chime per minute, with a generative algorithm comparable to the one designed for the Clock of the Long Now, we wouldn’t get a repeated chime for roughly 23.6 septendecillion years.

To recapitulate, ultra-long pieces of music have relied on such principles as: (a) exact repetition, (b) extremely long individual events, (c) external patterns or chance operations, (d) interlocking cycles, and (e) permutations.

The polyprimiad is a variant on the “interlocking cycles” type, and it stands out within that category for its conceptual simplicity.  It’s comparatively easy to explain, easy to understand, and easy to implement.

We want to compose a number of interlocking parts, each of which is a different prime number of bars long, with no identical bars either within a part or across parts.  A “bar” can be defined here either in notation by a certain number of beats or in audio as a segment of a given length, depending on what approach you want to take to composition.   Either way, the first part should be a repeating two-bar cycle, and the second part should be a repeating three-bar cycle.  The interlocking of these first two cycles will continue without repetition for six bars.The third part should be a repeating five-bar cycle.  The interlocking of the first three cycles will continue without repetition for thirty bars.

The fourth part should be a repeating seven-bar cycle.  The interlocking of the first four cycles will continue without repetition for 210 bars.

To illustrate how this works in practice, here are four cycles with appropriate length ratios, all written to fit an A minor chord:

And here’s what we get when we superimpose them for 210 bars, which at two seconds per bar runs for seven minutes:


Now, I don’t think this is necessarily a good example of a polyprimiad.  That’s not to say it couldn’t be, and I’ve heard it’s “relaxing.”  But it feels monotonous to me, even though each of the 210 bars is technically different—that endless A minor chord eventually starts to grate on my nerves.  But critiquing an example like this one might help us work out how to devise better ones.  Moreover, when it comes to potential quantity of cycles, we’ve still hardly scratched the surface.  Continuing the pattern five more times gives us the following:

  • Adding fifth part: 11-bar cycle × 210 = 2,310 bars
  • Adding sixth part: 13-bar cycle × 2,310 = 30,030 bars
  • Adding seventh part: 17-bar cycle × 30,030 = 510,510 bars
  • Adding eighth part: 19-bar cycle × 510,510 = 9,699,690 bars
  • Adding ninth part: 23-bar cycle × 9,699,690 = 223,092,870 bars

At this point, then, the interlocking sequence would continue without repeating a single identical bar for over two hundred million bars.  At two seconds per bar, 223,092,870 bars would last 446,185,740 seconds, which is exactly 7,436,429 minutes, which is about 123,940½ hours, or 5,164 days plus 4½ hours, which comes out to just under fourteen years and two months.  Below is an example of a polyprimiad written to these specifications, and in such a way that I think it holds up better than the previous one to continued listening.  I’ve provided audio for just the first 224 bars, which cover one millionth of the time it would take for all nine cycles to line up again.


Although this latest example would continue for over fourteen years without a single identical bar, it would admittedly contain many similar bars, differing from each other only in a single note that might be largely obscured by other notes in the same bar.  Maybe that’s OK, or maybe it’s something a well-constructed polyprimiad should avoid.  You may notice also that I’ve taken some shortcuts in composition.  Cycle five is an extended version of cycle three, with quarter notes instead of eighth notes, and (in the audio) played using a different MIDI voice, so that the two instruments sometimes play in unison, but most of the time not.  In cycle 5, bars 6-10 are bars 1-5 transposed down an octave and shifted backwards by one beat.  The second half of cycle seven is the first half shifted backwards by two beats with the order of notes reversed.  The second half of cycle eight consists of the first half shifted two beats forward.  Cycle nine repeats the same pattern of notes three times in a row, transposed up one octave each time.  Are such techniques tolerable, or to be avoided as a means of maximizing variation over time, or to be actively pursued as a means of giving coherence to a work?  All open questions, as far as I’m concerned.

And why stop here?  Continuing the same pattern yet further, using the sidereal year for our calculations (a choice that now starts to make a difference), we get approximately:

  • Adding tenth part: 29-bar cycle = 410 years
  • Adding eleventh part: 31-bar cycle = 12,711 years
  • Adding twelfth part: 37-bar cycle = 470,290 years
  • Adding thirteenth part: 41-bar cycle = 19,281,882 years
  • Adding fourteenth part: 43-bar cycle = 829,120,936 years
  • Adding fifteenth part: 47-bar cycle = 38,968,683,982 years (around three times the age of the known universe)
  • Adding sixteenth part: 53-bar cycle = 2,065,340,251,020 years

Of course this pattern could be drawn out indefinitely.  We’d exceed a googol (10100) years with the fifty-seventh part, a 269-bar cycle; and by the hundredth part, a 541-bar cycle, we’d be at 2.986×10212 years.  But for present purposes, let’s say that any polyprimiad with a cycle count in the teens counts as a respectably “high-level” polyprimiad.

We could start all the parts simultaneously, but we could also stagger their entrances so that each new cycle is added in at the beginning of the first repetition of the previous cycle, allowing the complex interlocking pattern to build up gradually over time.  If we take the second approach, the first part would begin with bar 1, the second part with bar 3, the third part with bar 6, and subsequent parts with bars 11, 18, 29, 42, 59, 78, 101, 130, 161, 198, 239, 282, and 329.  Bar 329 would then not repeat until over two trillion years have elapsed, and the first 328 bars would never repeat.  My own feeling, for what it’s worth, is that staggered entrances can work well for “demonstration,” “test,” or “trial” performances, but that “real” performances ought to begin all their cycles simultaneously and should then conclude whenever all the cycles end simultaneously, so that they are, in theory, not infinite loops, and instead have very long but finite durations.

Various compositions have already made use of prime-length cycles in one way or another, including Messiaen’s Quartet for the End of Time, which superimposes a 17-note rhythm on a sequence of 29 chords, and Evan Hause’s Inventions on Prime Numbers, with two parts at tempos in the ratio 139:97.  Reginald Bain’s The Music of the Primes also makes use of various groups of seven prime-length cycles in connection with some other prime-inspired experimentation.

And a few prior works have resembled polyprimiads even more closely, to the point that the might arguably even be polyprimiads, depending on what definition we use.  I discovered them only after I’d gotten pretty far along in my own experiments, but I happily acknowledge them as anticipating key aspects of the polyprimiad principle.

One is a series of connected pieces by the experimental band Bull of Heaven, numbered 238 through 260 in their catalog.  238 consists of a single two-second cycle; 239 adds a three-second cycle to 238; 240 adds a five-second cycle to 239, and so on up through 260, entitled LCM(2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83), which contains twenty-three interlocked prime-length cycles.  “LCM” stands for “Least Common Multiple,” and I’ll call the series as a whole LCM for want of a more convenient title.  LCM came out back in 2011 as a set of twenty-two SWF files, which can accommodate the looping, and they’re currently available at, where the information page for piece number 260 is here, and the SWF file is here.  Each bar lasts for one second, so the total duration comes out to around 8.462×1024 years.  The use of interlocking prime cycles was apparently the brainchild of the late Clayton Counts, as his bandmate Neil Keener recalled in an obituary:

The group recorded an album that has a track time exceeding eight septillion years — which is many times longer than the age of the known universe.

“Clayton became obsessed with making the longest piece of music that he possibly could,” says Keener. “He found a way to make loops the lengths of prime numbers so the loops wouldn’t repeat again for longer than you can calculate.”

I like LCM, which has a thoughtfully-constructed suspenseful feel; you should give it a listen if you haven’t.  (I got the SWF files to play in Winamp, and Bull of Heaven recommends the Flash 10 debugger.)  It’s long for the same reason my polyprimiads are long: a vast amount of time would need to pass between any two moments in which all the cycles line up together in exactly the same way.  However, it doesn’t vary over time to the same extent as my polyprimiads do.  A large part of each of its cycles consists of silence.  The first three cycles consist of just one note each, a low-pitched bowed-string hit on the first beat, if we count the first cycle as two beats long, the second cycle three beats, the third cycle five beats, and so on.  The fourth cycle also consists of a note on its first beat, a higher-pitched pizzicato plunk, except that its entry is delayed by one cycle.  The fifth and sixth cycles begin at the start, but with one note each that drags out over multiple beats.  I haven’t analyzed the cycles beyond that, but because so much of each cycle is silent, fairly long stretches of LCM will end up repeated identically in the long run, in some cases spanning over eighty exactly-repeated bars.  In the kind of polyprimiad I’ve been describing, by contrast, every bar in every cycle is required to be different, with the result that no two composite bars will ever be the same.

The closest thing I’ve encountered to the kind of polyprimiad I’ve been describing may be Rodney Graham’s Verwandlungsmusik (Transformation Music): Orchestral Highlights from Parsifal (1882 – 38,969,364,735), which contains prime-length cycles from three bars to 47 inclusive—but no two-bar cycle—and has a projected duration of 39 billion years.  Graham constructed it from “filler” music originally arranged to extend a segment of Wagner’s Parsifal as needed to coincide with the time it took to scroll through a multi-canvas landscape panorama onstage.  It was issued as a limited edition of 1,000 compact discs, but I haven’t had access to this or to a score, so I can’t assess the presence or absence of repetition among bars.

Ian D. “Mel” Mellish has composed some works that likewise have much in common with the polyprimiad.  One of them, Rothko, juxtaposes two tape loops which are respectively 2419 and 2671 seconds long.  Those durations are mutually prime (although 2419 = 41 × 59), so the loops will take 2419 × 2671 = 6,461,149 seconds to resynchronize.  Another work by Mellish, called Olitsky and dating apparently from the year 1987, juxtaposes four tape loops which are respectively 2683, 2679, 2686, and 2694 seconds long; of these, only 2683 is prime, but the least common multiple of the lot still has them resynchronizing only after 8,668,535,570,598 seconds, or a bit over 274,877 years.  According to an official description, Olitsky “has a circular score, with the staves on the background and the note-heads on four moveable transparent sheets. It could be said to be through composed.”  A number of excerpts of both Rothko and Olitsky are available on YouTube.  I see a few ways in which these works differ from the kind of polyprimiad I’ve been describing—such as fewer and longer cycles—but perhaps the most important is that they don’t seem consciously to exploit prime numbers; indeed, the composer doesn’t seem to appreciate the advantage of primes, since the “official” duration of Olitsky is given wrongly as the multiple of all four loop durations, which it would be only if all four durations were mutually prime.  If the tape loops for Olitsky had been respectively 2677, 2683, 2687, and 2689 seconds long—those are all primes—they would take 51,895,238,535,113 seconds, or a little over 1,644,496 years, to resynchronize, which is much closer to the “official” duration alleged for the work.

Finally, Jem Finer describes—in his Longplayer book, on p. 14—an insight that came to him “on a tour bus somewhere in Germany in the autumn of 1995”:

I was looking for ways of making music that would, to an extent, compose itself.

My favoured method was to make several simple phrases of different lengths and let them play in and out of phase with each other—à la Steve Reich.

For example: a 3-second loop and a 5-second loop started at the same time will come into phase once every 15 seconds (3×5).  Adding another loop of 7 seconds they come into phase once every 105 seconds (3×5×7).  So from just 17 seconds of music one can make a piece 105 seconds long.

I figured that by extending this process, by adding longer and longer loops it would be possible to make a composition in which they all came into phase only once every 1000 years.

An accompanying facsimile of a notebook page shows Finer’s calculations of the products of primes up through 31, juxtaposed with a tentative calculation of the number of seconds in 1000 years.  Finer ended up rejecting this loop-based approach in favor of the one he actually adopted for Longplayer.  So it seems he’d come up with the idea of the polyprimiad, and even experimented practically with it while touring in Germany, but it’s uncertain—at least from his Longplayer book—whether he ever composed one with more than just a few cycles.  I don’t know of any published example of a Jem Finer polyprimiad, which is a shame, because I’d like to hear one.

High-Level Polyprimiads: First Experiments

Many of the older projects I’ve been describing draw on rich and infrequently-encountered timbres, embrace a minimalist aesthetic (think ambient or drone music), and aspire to some degree of universality and timelessness.  By contrast, I composed my first few experimental polyprimiads in MuseScore using a limited palette of stock MIDI voices, which are about as blandly culture-bound a set of raw materials as it would be possible to choose.  That said, I prepared these pieces mainly as proofs of concept, and by building them out of such pedestrian stuff, maybe I can better use them to highlight the characteristics of the polyprimiad per se.   There’s obviously no reason why the genre would need to rely on this kind of low-prestige source material, but there’s also no reason why an ultra-long piece of music needs to sound like Longplayer or Olitsky.  Not that there’s anything wrong with how those works sound—far from it.  But how they sound is a matter of aesthetic choice, rooted in a subjective opinion about “what an x-year musical work ought to sound like,” and not a natural consequence of their ultra-long durations.

I’ve aimed for a decent amount of stylistic variation within the limits of my chosen tools, so that these first few sample polyprimiads don’t sound all that much like one another.  They tend towards maximalism rather than minimalism, though, sometimes suggesting—to me, at least—the intricate workings of an excessively complex clockwork mechanism.  That’s an aesthetic choice too.

After I composed the parts for these polyprimiads separately in MuseScore, I exported them as WAV files and then wrote some MATLAB code to combine the WAVs with each repeating at the correct interval.  The code does basically what you’d expect, except that whenever a cycle begins over again, I combine the audio from the first bar with the audio from the bar after the final bar to carry over any decay from the cycle’s final notes.  The notes are almost entirely diatonic with respect to C major, partly to avoid dissonances, but also partly because I’m lazy: keying in sharps and flats takes time.

I wrote the two sample polyprimiads given above after the examples presented below, so we’ll actually be taking a step backwards here in terms of my learning curve as a polyprimiadist.

My very first experiment was a two-trillion-year sixteen-cycle polyprimiad.  It’s presented below with staggered entrances for the cycles, with the audio stopping arbitrarily when the final cycle completes its third repetition.  The lower cycles are all dedicated to percussion, while pitched instruments are relegated to the higher cycles with some mid-cycle changes of voice, octave, and so forth.  The percussion is thus relatively consistent throughout, but the texture of the music still varies somewhat over time.  There are some permuting melodic sequences, which I’ve split up over different instrument voices to make their hocketing aspect readily apparent.  There are also a few more consistent melodic lines in the uppermost cycles which, I’m afraid, become tiresome in the long run.  Conclusion: it’s possible to compose a “consumable” sixteen-cycle polyprimiad.  As in downright kitschy.  Let the avant-garde cringe.  Maybe I’ll even cringe myself.


My second experiment was a leaner fourteen-cycle polyprimiad that would only continue without repeating for a measly 829 million years.  Most of the percussion and bass is in cycle #7, while the higher cycles interlock to form two permuting melodic sequences (cycles #8-11 on the harpsichord, mostly, and cycles #12-14 on the harp).  Once cycles #1-7 lock in, the texture of the music doesn’t vary much, but the melodic permutations still keep things vaguely interesting.  The result feels a bit like change-ringing over an ostinato beat.  Once again, the audio stops here after the final cycle has repeated three times.  Conclusion: it’s possible to dance to a higher-level polyprimiad.  Please do.  Send me a video.


My third experiment was another sixteen-cycle polyprimiad of the two-trillion-year type, but with a difference: this time I decided to compose the whole thing for a single instrument, specifically piano.  This took more planning than the previous two experiments, which I’d plunged right into without much forethought, relying on the contrast among different voices to do much of the hard work of avoiding exact repetitions.  For the first twelve cycles, I decided to assign each cycle two adjacent beats in an eight-beat bar, and a particular assortment of notes on each beat such that the same note would (unless I made a mistake) never be sounded twice simultaneously by two different cycles.  Bars 1, 2, 5, 6, 9, and 10 are assigned to the bass clef, and the rest to the treble clef.

Some of the beats and notes assigned to lower prime cycles ended up unused by the time I’d finished all twelve cycles, so I assigned the leftovers to cycle 13 and filled out the rest of that cycle out with sixteenth-notes positioned midway between the earlier beats.  Cycles 14, 15, and 16 were then spread out over the same intermediate beats, but with variation within each cycle as to which beats these were, the goal being to avoid rhythmic monotony.  The audio presented here contains 250 bars, with all sixteen cycles beginning simultaneously at the start.


If this piece were presented as a conventional piano score, with all the cycles combined, its opening would look as shown below, according to Notation Software and its automated MIDI-importing engine (I’ll concede that some of this fingering would be physically impossible for a single pianist, although I think sheer fatigue would be a bigger obstacle after the first few hours):

It obviously isn’t repetitive in the sense of Satie’s Vexations, but it wasn’t necessarily “through-composed” either (although it was to the same extent that Olitsky was, no more and no less).  Meanwhile, I feel that it should be considered a human composition, since I chose every single note myself, and not an algorithmic work generated by computer; and yet what I did to compose it might also be better construed as designing an algorithm.  Overall, it strikes me as falling neatly between a lot of familiar categories, and as not fitting any one category very well except its own.  But I like how it sounds.  Conclusion: polyprimiads for solo piano could be a thing.

The examples I’ve presented so far are “strict polyprimiads,” with one cycle per prime.  But I also see room here for “loose polyprimiads” that adopt slightly modified approaches.

Let’s say we think the first few prime cycles (2, 3, 5, and so on) repeat too often and thereby create monotony.  If so, we could always start with a higher prime and skip the lower ones; but a better solution, I think, would be to multiply the lower primes with each other.  For example, we might take the products 22 (2×11), 27 (3×9), and 35 (5×7) and substitute them for the first six primes, giving us a sequence of fourteen cycles that are respectively 13, 17, 19, 22, 23, 27, 29, 31, 35, 37, 41, 43, 47, and 53 bars long.  The result would play without an identical bar for exactly as long as sixteen equivalent prime cycles, but with a lot more time between the shortest repetitions of individual parts.  Another similar option would be a sequence of fifteen cycles 19, 23, 29, 31, 34 (2×17), 37, 39 (3×13), 41, 43, 47, 53, 55 (5×11), 59, 61, and 63 (7×9) bars long, which wouldn’t repeat identically until a little after its septillionth (1024) bar.  If we continue to give each bar a duration of two seconds, our composition would now run for around seven and a half quadrillion years without a single identical bar.  In terms of Adams and Laughlin’s Five Ages of the Universethis means that the piece would wrap up in the early Degenerate Era, when bright stars are projected to be a thing of the past.  The audio file below contains the first 1500 bars of a loose polyprimiad composed as I’ve just described.  Technical note: I pitch-shifted some of the cycles up or down an octave as audio rather than as MIDI; thus, identifying cycles by their lengths in bars, cycles 29 (down) and 31 (up) are built on cycle 34, cycle 53 (up) is built on cycle 55, and cycles 59 (down) and 61 (up) are built on cycle 63.


Reflections (Part One)

Based on these last four experiments, I can offer a few tips to anyone who might like to try composing a polyprimiad along similar lines:

  • Anything you want to occur frequently should go in lower cycles; whatever appears in the lowest cycles (2, 3, 5, etc.) will happen almost constantly.  By contrast, anything you want occur rarely should go in higher cycles.
  • Hocketing can be advantageous—the idea being to restrict given beats within the bar to given cycles so that notes from different cycles won’t be sounded at the same time (a likely source of muddiness and dissonance).  So, for example, you might assign four different beats in a bar to four different cycles.  The downside is that the individual parts will become less attractive on their own.
  • If your cycles are consistent as to rhythm, voice, and octave, your result will be too—which is likely to make it boring.  If you want a varied result, be sure to vary individual cycles as to rhythm, voice, and octave.  For hocketing, this might mean assigning a cycle more than one beat, or else varying what it puts into a single beat (one quarter note, two eighth notes, etc.).  Variation within the highest cycles will produce the most noticeable differences in the composite result over time.  Conversely, associating each of several beats rigidly with a different cycle will produce an effect comparable to that of method ringing, but more limited as to quantity of permutations.
  • It’s beneficial to vary a cycle incrementally, as when moving note by note up or down a scale, since the interaction among many such cycles will give the impression of a gradually evolving pattern over time.  By the same token, it’s best to group similar bars together within a cycle so that any transitions in character will contribute to that same process of gradual composite change.
  • Use recognizable flourishes or melodies sparingly if at all, and only in the highest cycles.  They’ll get annoying after they’ve been heard hundreds of times.
  • It’s harder to avoid duplicate bars than you might think.  Be attentive!

I’m interested in the polyprimiad more as an appealing compositional challenge than as something that could run continuously in practice for billions upon billions of years.  After all, I don’t think it would be remotely possible to enact one of these works through all the way to its conclusion.  I can imagine As Slow As Possible making it to the year 2640, and Longplayer making it to the year 2999, and some version of the Clock of the Long Now working its way through 9,935 years’ worth of daily chimes, but I just can’t imagine finishing out a two-trillion-year sixteen-cycle polyprimiad.  I’m nearly certain that all the time in the world wouldn’t be enough to play one of these compositions all the way through.

Still, let’s consider what would properly count as a continuous performance of such a work through—say—five hundred years, a thousand years, ten thousand years, or any other duration that might actually be manageable.

Let’s say there was an installation playing it in a bricks-and-mortar museum that’s open daily from 10 AM until 5 PM, as well as an audio stream available via the Internet on request, in both cases run by computer—a bit like the actual situation with Longplayer.  Presumably there would eventually come some moment when nobody was listening to it either in the museum or over the Internet.  As with the tree that falls in the forest with nobody to hear it, would the “music” then still be happening?  Or let’s say that to save energy and resources, the museum shuts off the installation’s loudspeakers whenever it’s closed to visitors; would that make a difference?  Or let’s say that the computer itself goes into sleep mode after nobody has listened for a few minutes, but that it can pick things up at exactly the right point whenever the museum opens or someone activates the Internet stream; would that make a difference?

I don’t think those questions have clear-cut answers.  Practically speaking, though, it strikes me that a “continuous performance” on this kind of time scale would really just be one tethered to an uninterrupted time base, accessible whenever anyone visits or tunes in, with unique programming designated for every moment, but not necessarily being actualized at every moment.  And it wouldn’t be difficult to make such arrangements for a polyprimiad.

Any point in a polyprimiad can be characterized by the current bar numbers for each of its cycles.  For example, the last bar in a sixteen-cycle strict polyprimiad would feature the combination “2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53.”  Let’s say for purposes of illustration that our polyprimiad consists of two-second bars, as in the examples presented above.  If we let x equal the number of seconds elapsed since a designated start time, divided by two, then the corresponding position within the polyprimiad will always be modulo 2, modulo 3, modulo 5, modulo 7, and so on up through modulo 53, with 0 always corresponding to the last bar in the cycle.  As long somebody can calculate what time it is relative to the time we’ve chosen as our starting point, it should be possible to pick up the work in the correct spot whenever anyone desires.  Granted, we’d have to be explicit about how to calculate the current position of the polyprimiad, for example:

  • The start time is defined as 00:00:00 UTC on January 1, 1970, such that equals current Unix time divided by two, with each two-second bar occupying the space of one odd and one even timestamp number.  In the event of a leap second, repeat the corresponding half-bar twice.

I just now checked the Unix time, and it was 1579650674, which corresponds to the polyprimiad cycle combination “1, 1, 2, 0 (=7), 4, 2, 16, 11, 1, 13, 21, 27, 25, 4, 19, 45.”  For any Unix time in the more-or-less-foreseeable future, the combination would take just a moment to calculate and just another moment to launch as audio.  In this way, a self-contained player could “tune in” to the work at any point as long as it was given the current Unix time, just as accurately as if it were receiving a live stream from some centralized source.

Back-dating the start time to January 1, 1970, in this way might raise some eyebrows, but projecting a work a few decades into the past may not be all that much more absurd than projecting it a trillion years into the future.

Resampling-Based Polyprimiads

Composing individual cycles by placing notes on a staff is one way to create a polyprimiad, but it’s obviously not the only one.  Any approach that yields cycles with mutually prime lengths and (ideally) no repeated “bars” within or across cycles is fair game.  However, some of them wouldn’t lend themselves quite as easily to the convenient timing mechanism I’ve just described.

Bearing in mind Longplayer‘s treatment of the Tibetan singing bowl recording, one approach would be to resample a piece of source audio by different prime multiple lengths: 2x, 3x, 5x, 7x, 11x, and so on.  For a one-second piece of source audio with a sample rate of 44.1 kHz, the lengths in samples would be 88200, 132300, 220500, 308700, 485100, etc.  But there’s a problem here.  If we go with just the first five primes, a 100 Hz tone in the 2cycle will be transposed into a 18 Hz tone by the time we reach the 11cycle; and if we go with sixteen primes, as in some of my earlier examples, a 500 Hz tone in the 2cycle will be transposed into a tone around 19 Hz in the 53x cycle.  Overall, the extreme changes in frequency would render some of the source content inaudible by pushing it below the threshold of human hearing, which bottoms out around 20 Hz.  Conversely, if we were to divide the length of the source audio instead of multiplying it—x/2, x/3, x/5, x/7, x/11, and so on—we’d push many frequencies above the threshold of human hearing.

There’s another solution that would let us get by with much less drastic resamplings.  Cycles with lengths 2/3, 3/5, and 5/7, whatever the unit of time may be, will resynchronize exactly as often as cycles with lengths 2, 3, and 5—that is, after 2×3×5=30.  Or, to put things more generally: as long as all the numerators are mutually prime integers and all the divisors are also mutually prime integers, the time it will take fractional-length cycles to resynchronize equals the product of their numerators.  This is also true of fractions with values above 1 (e.g., 3/2, 5/3, 7/5, 11/7….).  But to take practical advantage of this strategy in the digital world, we’d need to choose integer cycle lengths that mutually correspond to these fractions, and the minimum source audio length in samples—equal to “1” relative to all the fractions—is the product of the denominators, which means it can get awfully large.  For just the eight cycles 3/2, 5/3, 7/5, 11/7, 13/11, 17/13, 19/17, and 23/19, we’d need our source audio to be 2×3×5×7×11×13×17×19 = 9,699,690 samples long (or some multiple thereof).  That’s about three minutes and forty seconds at a 44.1 kHz sample rate.  The actual cycle lengths, in samples, would then be 14,549,535, 16,166,150, 13,579,566, 15,242,370, 11,463,270, 12,684,210, 10,840,830, and 11,741,730, and the result would run without repetition for just over 777 years.  Here are the first twenty-two minutes of a piece based on those lengths, Stairwell No. 1, with the source audio being a melodized recording of my footsteps in a stairwell in the Global and International Studies Building on the Bloomington campus of Indiana University.


Unfortunately, extending the same piece by more cycles would quickly push the minimum number of samples per cycle up into the stratosphere.

If we want to achieve greater duration at the expense of conceptual elegance, we could instead resample to a set of larger prime lengths chosen according to some more arbitrary scheme.  So, for example, we might start with the 50,000th prime number (611,953) and then repeatedly advance 5,000 primes to the 55,000th prime, the 60,000th prime, and so on.  If we keep this up for fifty cycles, we end up with a duration of just under seven centillion years (~6.9713×10303).  Here are just the first few minutes of a piece matching that description, Stairwell No. 2, with the source audio this time being a melodized recording of my footsteps in a stairwell at the Archives of Traditional Music in Morrison Hall on the Bloomington campus of Indiana University, and with some stereo separation between adjacent cycles.


Resampling is only one way to create multiple cycles of particular lengths, and it happens to be a relatively easy way—a kind of shortcut, if you will—but it may also be attractive for other reasons.   Cyclical interactions among resampled versions of the same source recording are probably more likely to sound interesting than interactions among wholly unrelated source recordings juxtaposed at random.

Reflections (Part Two)

I may not yet be quite ready to compose any “serious” polyprimiads myself, but if I were, here are a few subjects I might associate them with:

  • Lightspeed: a suite of polyprimiads each designed to play for as long as it would take light to reach Earth from a particular astronomical object, such as the Large Magellanic Cloud (160,000 years) or the Andromeda Galaxy (2.5 million years).
  • Periods of Earth: a suite of polyprimiads each designed to play for as much time has elapsed since particular geologic periods, such as the Jurassic or Ordovician.
  • Radioactive Half-LivesDecomposition of Landfill Materials, etc.—enough said.
  • Cicada, with interlocking thirteen and seventeen-year cycles constructed from recordings of cicadas.

Meanwhile, an anniversary polyprimiad could have its starting point projected into the past (à la January 1, 1970) but its conclusion scheduled for some target in the present.  So, for example, a bicentennial could be commemorated with a two-hundred-year polyprimiad that’s scheduled to end at the climax of a celebration—the idea being that it will, in some notional sense, have been playing for the whole of the previous two centuries.  A Christmas polyprimiad could have its starting point set to the moment of the birth of Christ—however calculated—and its conclusion set to Christmas Eve, with the cycle lengths adjusted slightly each year, getting gradually longer.

How do we go about targeting an exact duration?  One way might be to adjust the bar length to make some number of cycles equal to the target.  So, for example, if we want a nine-cycle strict polyprimiad (223,092,870 bars) to play for exactly ten sidereal years (315,581,497.635 seconds), each bar would need to run exactly 315,581,497.635/223,092,870 = ~1.414574556484033 seconds.  That obviously isn’t a very practical duration to use, at least digitally—it surely wouldn’t come out to an integer number of samples—and any rounding would produce a huge cumulative error over time.  Another alternative would be to work out the target duration, perhaps in seconds or samples, and then find the nearest number with an amenable prime factorization—accepting, as I think we can, that we might be off by a few samples or seconds in the end.  This approach probably won’t give us a strict polyprimiad, but it should still let us harness the power of prime-length cycles.

Let’s consider what would be involved in designing a “bicentennial” polyprimiad in this way, with a duration as close to two hundred years as we can hit.  If we want to use a two-second “bar,” as in most of my earlier examples, we would want 3155814976.35455 of them.  Searching nearby integers (with the two closest shown in boldface), we find:

  • 3,155,814,975 = 3 × 52 (=25) × 172 (=289) × 19 × 79 × 97
  • 3,155,814,976 = 26 × 49,309,609
  • 3,155,814,977 = 7 × 41 × 10,995,871
  • 3,155,814,978 = 2 × 3 × 43 × 1583 × 7727

I doubt we’d want to compose a cycle with 7727 bars, much less 49,309,609; but 3, 19, 25, 79, 97, and 289-bar cycles would be manageable and would get us within one and a half seconds of our two-hundred-year target.  If we wanted to be particularly methodical, the whole thing could be built up from three motifs a=3, b=18, and c=25 bars long, variously transposed and assigned to different instruments, the cycles being a, 1+b, c, 1+(c×3)+a, 1+(c×3)+a+b, and 1+((((c×3)+a+b)×3), with the single bars silent.  But I wasn’t so methodical in the following example, which I’ll call the Indiana University Bicentennial Polyprimiad.  The first five cycles are based on “Annie Lisle” (the tune for “Hail to Old IU”) and the sixth and longest cycle is based on “The Viking March” (the tune for “Indiana, Our Indiana”).  In both cases, I had some trouble eliminating duplicate bars, although I was able to accomplish this to a point through a combination of changing instruments midway through cycles and transposing up or down an octave.  In the case of “The Viking March,” I introduced some syncopation to differentiate bars that would otherwise have been identical, and in the case of “Hail to Old IU,” I took an old vocal arrangement, drew on different parts for each cycle, and exchanged parts among cycles as needed to avoid duplication within each one.  I’m not sure how successful this all was, but the result at least provides an example of a polyprimiad built on preexisting melodies.


Two hundred sidereal years also comes out to 278342880914472.2 audio samples at 44.1 kHz.  If we again search nearby integers, we find:

  • 278342880914463 = 3 × 619 × 53173 × 2818883
  • 278342880914464 = 25 × 31 × 101 × 3733 × 744199
  • 278342880914465 = 5 × 449693 × 123792401
  • 278342880914466 = 2 × 32 × 15463493384137
  • 278342880914467 = 214177 × 1299592771
  • 278342880914468 = 22 × 10271 × 33529 × 202063
  • 278342880914469 = 3 × 7 × 29 × 47 × 8573 × 1134311
  • 278342880914470 = 2 × 5 × 112481 × 247457687
  • 278342880914471 = 71 × 127 × 131 × 1087 × 216779
  • 278342880914472 = 23 × 3 × 11 × 19 × 37 × 1499756891
  • 278342880914473 is prime
  • 278342880914474 = 2 × 2557369 × 54419773
  • 278342880914475 = 33 × 52 × 13 × 43 × 737674103
  • 278342880914476 = 22 × 7 × 17 × 584753951501
  • 278342880914477 = 59 × 4717675947703
  • 278342880914478 = 2 × 3 × 23 × 102871 × 19606861
  • 278342880914479 = 43867 × 6345154237

Which of these is most promising?  Personally, I might go with 278342880914478 and combine the lowest four factors to get just two cycles of 14196198 samples (~5.365 minutes) and 19606861 samples (~7.41 minutes).  This would bring us within 5.8 samples of our two-hundred-year target, or 0.00013152 second.  Below is the start of an actual polyprimiad constructed to those specifications, with the two cycles resampled to the necessary lengths from two different (but overlapping) medleys of Scott phonautograms taken from tracks 14-16 of Pictures of Sound and melodized, one to F major and one to F minor, with reverb added to the combination.  I could imagine presenting something along these lines—though surely not exactly this—to commemorate the bicentennial of the invention of the phonautograph in 2057.


One parting thought, which I’ve already touched on above.  A polyprimiad constructed as I’ve described wouldn’t technically present an exact repetition for some length of time, but the differences between sections would sometimes be imperceptible.  This is especially true when we’re working with prime quantities of digital samples, since we’ll often produce sections that differ only in that one cycle is offset relative to the others by a tiny fraction of a second.  But it can also be true of polyprimiads composed of more conventional musical bars, in which case two bars will routinely differ by only a single note in one out of perhaps a dozen or more cycles.  It’s probably worth aiming for perceptible differences rather than merely technical ones, if I can make that distinction.  On the other hand, the high-level polyprimiad is arguably only an extraordinarily long work in a certain technical sense anyway.  Nobody could listen to one continuously through to its end, so the experience of hearing it would necessarily be fragmented and incomplete.  If its whole real-time structure is humanly imperceptible, maybe it doesn’t matter whether two segments (say) a decade apart sound the same as one another to the ear, so long as they differ a little at least in theory.

Further Readings


Jem Finer’s Longplayer uses a single looped piece of source audio 1220 seconds long—”a limit defined only by the size of a sound-file that could fit into an iMac’s maximum RAM” (p. 44 in Finer’s book)—but six segments of it are constantly being played at six different speeds.  Finer explains (p. 49): “The computer only needs to store one copy of the source music.  It can pitch shift this, literally slowing it down or speeding it up (like a record) to lower or raise the pitch.”  He’s clearly referring here to resampling (such as I’ve demonstrated above), or to playback at different sample rates, which alters both pitch and duration, and not to a pitch shift that preserves the original duration, as with a phase vocoder.  Finer’s book doesn’t give the specific transpositions, but the Longplayer website does, on a page entitled “How does Longplayer work?”:

One is the original 20’20” score, one is an octave below, and the others are 7 semitones below, 5 semitones below, 5 semitones above and 7 semitones above, respectively.

Ordering these from highest to lowest, we get the following resampled durations:

  • Cycle 1: 7 semitones up  = 814.2523 (1220 / 27/12) seconds
  • Cycle 2: 5 semitones up = 913.9673 (1220 / 25/12) seconds
  • Cycle 3: Original = 1220 seconds
  • Cycle 4: 5 semitones down = 1628.5046 (1220 / 2-5/12) seconds
  • Cycle 5: 7 semitones down = 1827.9346 (1220 / 2-7/12) seconds
  • Cycle 6: Octave down = 2440 (1220 / 2-1) seconds

But these cycles don’t simply work their way continuously around the loop at different speeds, as in the examples I’ve provided.  Instead, Longplayer proceeds in two-minute chunks.  At the start of each chunk, each cycle begins playing from a particular point in the source audio and continues however far it gets.  Then, at the start of the next chunk, each cycle beings playing from a point one “increment” ahead of the previous point, with a different increment for each cycle, and with shorter increments corresponding to longer cycle durations.  The durations and increments are calculated as follows (adapted from figures on p. 45, but reformatted here to expose their logic), with the increments given in terms of the original speed of the source audio rather than the different playing speeds associated with the different cycles (a detail that’s nowhere made explicit, and that caused me a lot of confusion until I figured it out).

  • The main thousand-year cycle
    Cycle A: duration 365243 (=365243/1) days = 1000 years; increment 1×1220/262974960 second.
    262974960 is the number of two-minute periods in 365243 days.
  • The prime factors of 365243
    Cycle B: duration 1609 (=365243/227) days; increment 227×1220/262974960 second.
    Cycle C: duration 227 (=365243/1609) days; increment 1609×1220/262974960 second.
  • Three other subdivisions of the thousand-year cycle
    Cycle D: duration 365243/13003 (~28) days, or about a lunar month; increment 13003×1220/262974960 second.
    Cycle E: duration 365243/52000 (~7) days, or about a week; increment 52000×1220/262974960 second.
    Cycle F: duration 365243/91311 (~4) days, chosen to “create perceptible change” for “short periods of listening”; increment 91311×1220/262974960 second.

In other words, the cycles last respectively x, x/227, x/1609, x/13003, x/52000, and x/91311, where x equals a thousand years; and the increment by which the starting point in each cycle advances after each two-minute period is inversely proportional to the duration—y, 227y, 1609y, 13003y, 52000y, and 91311y—where equals the number of samples in the source audio divided by the total number of two-minute periods in a thousand years.

Online graphical display designed to show which part of each Longplayer cycle is playing at any given moment (left), and a polar-to-rectangular coordinates transform of it in which the different lengths of the parts are easier to see (right).  The innermost/top cycle is playing almost three times as fast as the outermost/bottom cycle, so it gets through almost three times as much source audio in two minutes.

So far we’ve considered the six transpositions and the six increments, but not which transpositions go with which increments, and as it turns out that information is surprisingly elusive.  It can be worked out indirectly, however, as a kind of logic puzzle.  We read of the “live” version of Longplayer: “Physically the six layers of the music are laid out as concentric circles, the highest pitched layer in the centre, spreading out to the lowest pitched layer on the outside” (p. 51).  The online graphical display that shows the current cycle configuration of Longplayer is laid out similarly, judging from the different lengths of the highlighted two-minute segments.  We then read further (in “How does Longplayer work?”): “The incremental advance of the third circle, is so small that it will take the full thousand years for it to pass once through the source music. Conversely the increment for the second circle is such that it makes its way through the music every 3.7 days.”  There shouldn’t actually be any 3.7-day cycle, judging from other documentation, but Cycle F is the closest match at ~3.99998 days.  It’s unclear from the statement whether circles are being counted outward from the center or inward from the periphery, but if we compare updates of the graphical display, we find that the “fast” cycles (counting from the center) are two (fastest), five (almost as fast), and six (even less fast), and that cycle three is the only one that doesn’t move perceptibly even over long intervals.  That points to the “third circle” and “second circle” being counted from the center outward.  Meanwhile, a separate set of handwritten notes posted here appear to give corresponding increments expressed not in time but in degrees and numbered the other way around, from the outside in.  By combining all these clues, I believe we can reconstruct the following:

  • Cycle 1 (7 semitones up) = Cycle C (increment 1609y)
  • Cycle 2 (5 semitones up) = Cycle F (increment 91311y)
  • Cycle 3 (original) = Cycle A (increment y)
  • Cycle 4 (5 semitones down) = Cycle B (increment 227y)
  • Cycle 5 (7 semitones down) = Cycle E (increment 52000y)
  • Cycle 6 (octave down) = Cycle D (increment 13003y)

That “key” provides almost enough information to allow someone who was sufficiently determined to recreate Longplayer from the 1220-second source recording.  There’s now just one missing piece.  In a description of the “live” variant, we read (p. 50): “Any dampening of the bowl playing at the 2-minute mark must be done so as to slowly fade over into the next period—or there will be an audible ‘jerk’ every two minutes.”  I assume there must be some comparable fade-out and fade-in mechanism for the audio in the primary version of Longplayer, since there are no audible “jerks” in the audio stream.  The need to cross-fade in this way strikes me as the work’s main structural weakness, but it could also contribute to more long-term evolutionary change, since parts of the longest cycle wouldn’t end up sounded for centuries, potentially affecting the overall character of the music.

APPENDIX B: ΩΣPx0(2^18×5^18)p*k*k*k

The Bull of Heaven piece known as ΩΣPx0(2^18×5^18)p*k*k*k is the final part of a six-part series in which each new part builds on the previous one, extending its duration first by a factor of one quintillion (for part two), and then repeatedly by a factor of one million (for parts three through six).  Each part has been released as a 7z file containing other zipped folders that contain more or less deeply-nested mp3 files.  As far as I’m aware, Bull of Heaven has never published an explanation of how the work was created, but I assume they must have generated multiple numbered copies of a sound file, created a zipped folder from them, generated multiple numbered copies of that, created a zipped folder from those, and so on.

  • (286): This contains a million sequentially-numbered 7z files organized into a hundred zipped folders of ten thousand files apiece.  Each of the million files contains a file that in turn contains a file 0.mp3, at 32 kbps, running for 29:14:10, or 105,250 seconds.  The audio content is a synth-pulse that repeats identically every 32/175 second.  Playing the million mp3s in sequence yields a duration of 105,251,000,000 (1.0525×1011) seconds, or 29,236,388:53:20.
  • 0(2^18×5^18) (304): The expression “2^18×5^18” is equivalent to 1018, and this work multiplies the previous work that many times via six nested levels, each of which each contains 1000 copies of the preceding one.  The zipped folders, starting with the outermost one, are named “Christ” (1018 copies of the previous work), “Jesus” (1015 copies), “God” (1012 copies), “Help” (109 copies), “Me” (106 copies), and “Please” (103 copies).  Not-so-hidden message: “Christ Jesus God Help Me Please.”  The total duration of all the mp3s should now be 1.0525×1029 seconds, or 2.92×1025 hours.  However, Bull of Heaven claims this piece is “roughly 29.3 octillion hours long,” which (presuming we’re using the short scale) would be 2.93×1028 hours, corresponding to seven nested levels containing 1021 copies of the previous work.  I doubt I miscounted the layers, given that the title of the piece itself specifies the power of 18.  So I think Bull of Heaven must have miscalculated here by a factor of 1000, with the result carrying over into their subsequent calculations.
  • x0(2^18×5^18)p (307): A folder “x” contains 1000 copies of a folder “p,” which contains 1000 copies of the previous work.  Bull of Heaven claims that the result is “29.3 decillion hours (3.343 nonillion years) long.”  That translates to 2.93×1034 hours (3.343×1030 years), which would follow from the duration they claim for the previous work.   I come up instead with 2.92×1031 hours (3.351×1027 years).  The difference between the 3.343 and the 3.351 comes from our use of different years in our calculations—sidereal for me, Gregorian for them.
  • Px0(2^18×5^18)p*k (308): A folder “P” contains 1000 copies of a folder “k,” which contains 1000 copies of the previous work.  This multiplies the previous duration by another 106, making it “3.343 undecillion years long” according to Bull of Heaven, but 3.351×1033 years long based on my own calculations.
  • ΣPx0(2^18×5^18)p*k*k (309): A folder “Σ” contains 1000 copies of a folder “k,” which contains 1000 copies of the previous work.  This multiplies the previous duration by another 106, making it “3.343 tredecillion years long” according to Bull of Heaven, but 3.351×1039 years long based on my own calculations.
  • ΩΣPx0(2^18×5^18)p*k*k*k (310): A folder “Ω” contains 1000 copies of a folder “k,” which contains 1000 copies of the previous work.  This multiplies the previous duration by another 106, making it “3.343 quindecillion years long” according to Bull of Heaven, but 3.351×1045 years long based on my own calculations, which is 3.351 quattuordecillion.

One conclusion to be drawn from all this is that ΩΣPx0(2^18×5^18)p*k*k*k is probably a thousand times shorter than its creators claim, although it would be easy to boost it to the stated length just by nesting it one more level.  But another conclusion is that its musical strategy is no different from that of Satie’s Vexations: instead of “repeat this score 840 times,” it’s “repeat this pulse 5.755859375×1053 times.”  The elaborate nesting structure serves as nothing more than a mechanism for setting up that many repetitions without technically requiring that a media player repeat anything.

That said, it’s an ingenious way of compressing such a vast stretch of audio into a 467K file.  The format—mp3 inside zip file inside one or more 7z files—is even playable; Foobar2000 with the 7-Zip Archive Support component installed can handle it in principle, and I seem to be able to listen to piece 286 through jPlayer on the Bull of Heaven website.  In practice, I haven’t managed to get pieces 304 and 307-310 to play directly from the 7z files.  Of course, by “play” I mean “begin playing,” not “play all the way through.”  But that might be entirely consistent with Bull of Heaven’s intentions for the piece.  As the band’s FAQ states:

Some of the files are puzzles, non-music, or anti-music, not intended to be easily accessed, or—in some cases—opened at all…. Some of the files have been engineered to behave improperly, some have merely had their extensions changed, some are files hidden within files, or archives containing archives containing archives, some are password-protected, some incorporate databending techniques, and some include data concealed steganographically. Please be aware that some of these files can even harm your computer if mishandled. We make no apologies for making these difficult or impossible to acquire.

I was intrigued enough by what Bull of Heaven had done that I decided I had to try to replicate it myself—but with a difference.  Working out the duration of ΩΣPx0(2^18×5^18)p*k*k*k took me a bit of effort, and the band itself seems to have gotten understandably confused in the process of calculating it.  (And hey, I’d be surprised if I haven’t made at least one glaring mathematical blunder somewhere in this post myself.)  So I thought it would be nice to create a similarly nested structure that’s more transparent, with each nesting corresponding to a meaningful unit of time and each folder name stating how much time it represents.  You can download some of my results by clicking on hyperlinks in the account that follows.

I started with a 44.1 kHz, 16 bit WAV file, called minute.wav, that consists of a one-second sine tone followed by fifty-nine seconds of silence, and compressed it into a ZIP file.  What’s that you say?  That “isn’t music”?  Well, I can but smile.  Whatever it is, it’s definitely a phonogram (or “sound recording” insofar as this term can be applied to synthetic audio).  I chose WAV rather than mp3 so that I can say my result is losslessly compressed CD-quality audio.

Next, I used the same approach as  ΩΣPx0(2^18×5^18)p*k*k*k  to create hour.7z (60 copies of minute.wav); day.7z (24 copies of hour.7z); quarter_day.7z (6 copies of hour.7z); year.7z (365 copies of day.7z, plus one copy of quarter_day.7z, adding up to the Julian year of 365.25 days); decade.7z (ten copies of year.7z); century.7z (ten copies of decade.7z), and millennium.7z (ten copies of century.7z).  Then I began nesting thousand-copy layers as million.7z, billion.7z, trillion.7z, and so on.

I got up to quindecillion.7z in this way before I ran into a problem, and that’s almost exactly the same point at which Bull of Heaven called it quits with ΩΣPx0(2^18×5^18)p*k*k*k, which might not be a coincidence.  Up until then, file sizes hadn’t been changing much with each new step: duodecillion.7z was 61 KB, tredecillion.7z was 63 KB, quattuordecillion.7z was 65 KB, and quindecillion.7z was 67 KB.  At that rate, it seemed as though I might be able to continue the nesting process as long as I wanted.  But then file sizes suddenly started to go up exponentially, with sexdecillion.7z at 127 KB, septendecillion.7z at 257 KB, octodecillion.7z at 804 KB, novemdecillion.7z at 7817 KB.  That growth obviously couldn’t be kept up for long before the files would grow too big for comfort.

Maybe, I thought, 7zip is able to use one strategy to compress files below a certain size but has to resort to a different strategy when file sizes cross some threshold, such as 66 KB (at least when there are a thousand copies to contend with).  So I went back to quindecillion.7z and compressed it into a ZIP file, which reduced its size from 67 KB to 58 KB; and then for each of the next several nested layers, I again created a 7z file, and then a zip file from that, which let me get up to (67 KB) before I ran into the same problem as before: duovigintillion.7z jumped up to 144 KB.  It seemed there was indeed a threshold, somewhere around 66 KB, beyond which file sizes would rapidly swell out of hand.  The longer I could delay crossing that threshold, the more nestings I could achieve.

With that in mind, I began the whole project over again from minute.wav, trying to reduce file sizes more aggressively from the start.  This time I created 7z files for minute.7z (just 17K, as opposed to 34K for a ZIP file), hour.7z, day.7z, quarter_day.7z; and then I created 7z files compressed into zip files: containing year.7z, (skipping the intermediary units),, and so on.  This time, quindecillion.7z was a mere 54 KB instead of 67 KB, and I only hit the dreaded threshold between (67 KB) and septenvigintillion.7z (144 KB).

But could I now delay hitting the threshold even further by nesting groups of 100 files rather than groups of 1000?  Yes, it turned out, although putting the 7z file into a zip file no longer brought any significant reduction in file size.  Unfortunately, this new tactic also meant moving upwards by less linguistically convenient increments: 100 sexvigintillion (68 KB), 10 septenvigintillion (69 KB), octovigintillion (70 KB), 100 octovigintillion (71 KB), and so on.  When I hit duotrigintillion, which is 1099, I decided to group ten copies of it together as googol.7z as a nod to the cultural resonance of that most whimsical of super-large numbers.  Let’s call this work A Beep a Minute for a Googol Years.

I didn’t actually stop there, but that’s the longest version I’m going to share right now.  This way, if someone just compresses a hundred copies of googol.7z into yet another zip folder and claims the result as an even longer work than mine, I can honestly say I’d already done this myself.  Meanwhile, if Bull of Heaven’s ΩΣPx0(2^18×5^18)p*k*k*k had set any record for length, I think A Beep a Minute for a Googol Years has broken it—but using a technique that was their idea, so that any credit for it is still due largely to them.  (Note that Stairwell No. 2 is even longer.)  But it also seems to me that this exercise has a lot in common with efforts to represent a googolplex in decimal form (see here and here): whatever is going on here, it’s largely about something other than music.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.