Sound Only Happens When Things Touch
Short answer: There is no score and no list of events. Shapes drift across the screen, each on its own path, and a sound starts when two of them overlap. What you hear is what is happening on the screen.
The one rule
Every shape moves by itself. It doesn't know about the others. When two shapes overlap, they sound. When they drift apart, they stop.
There are two kinds of sound. Long ones fade in while a shape is overlapping something and fade out when it leaves: these are the circles, squares and bars. Short ones fire once, at the moment of contact: these are the triangles and diamonds. Which shape makes which sound is in Shapes as Instruments.
That is the whole idea. I wanted the simplest rule that would still surprise me.
Why I wanted it this way
Most generated music has a plan underneath, even if the plan is random. Something counts, and notes land on the count. Here the busy and quiet moments come from the picture. When shapes crowd into one corner, there is a lot of sound. When they spread out, it thins to almost nothing.
The part I like most is that you can see it coming. Two shapes drift toward each other and you know a sound is about to start. Sight and sound have the same cause.
One correction
It is tempting to say there is no clock at all. That isn't quite true. When a drone is sounding it gives a slow pulse, and the short sounds lean toward that pulse so they land together and don't scatter. Contact decides whether a sound happens. The pulse nudges when, by a fraction of a second. I wrote about it in The Drone Is the Clock.
What I gave up
Control. I can't make a particular sound happen at a particular moment. I can only change the odds: how many shapes there are, how big they are, how fast they move. The Objects slider in the app does the first of these. More shapes means more meetings.
There was one practical problem too. Two shapes hovering at the edge of contact made the sound stutter. The fix has a name, and it is in Hysteresis: How to Stop a Sound From Flickering.
Try it: open Ocean and watch two shapes drift into each other. It is free and starts in one click, with no account.
Open Ocean, free