Sarah Vaughan's 'Stardust', written by Hoagie Carmichael, and 'Black Coffee', written by Paul Francis Webster and Reginald (Sonny) Burke are beautiful songs. Listening to them, I noticed that they were basically in the same tempo and seemed to have other relations also. So I cut them both into loops to see how they intermixed together. This piece is not 'interactive' but is 'generative'. I've cut 'Stardust' into 24 parts and 'Black Coffee' into 13 parts. Not all of 'Black Coffee' is in the mix but all of 'Stardust' is; 'Stardust' is more rhythmically homogenous than 'Black Coffee'. The program starts with the first bars of 'Stardust' and 'Black Coffee' and then, somewhat randomly, selects another sound file that sounds OK after the one that just played. This process is repeated until it eventually plays to the end of 'Stardust', sometimes sooner, sometimes later. If the program is playing sound x, then the sound that will play next is drawn from ones that I thought sounded OK or interesting after x.
Each sound file is 8 beats long. If you count the beats, you can tell when the next cut will be heard.
The program starts up quickly for slow modems. It only selects sounds from among those that have already finished downloading.
What we see below is the decision structure. The first 24 sounds are from 'Stardust'. When it reaches 25, it plays nothing more, that's the end. Sounds 26 to 38 are from 'Black Coffee'. So, for instance, if sound 3 is currently playing, then what will play after sound 3 is any of the sounds [2,3,4,5,6,8,10,13,15,26,28,32,38]. It is possible that after the first two hard-wired sounds play, 'Stardust' could play through in its original order. But that isn't very likely. It is also possible that the thing could play forever, so the combinatorium is, in this sense, infinite. But it is very unlikely that the piece will play much longer than the songs themselves. Usually it lasts about as long as the songs themselves, maybe a little longer.
It's like a hypertext structure with internal links, where a page can also link to itself.
1 => [1,2,6,8,26,38]