The MusiFrog is a simple deterministic algorithm that can be used to produce nice pseudo-random melodies that I discovered while experimenting with generative-music (but perhaps someone else has already found it).
It is based on a frog that jumps over a sequence of stones. Each stone has a jump value and is associated with a musical note. Initially the frog is on stone 1 and suppose it has jump value X. The note associated with stone 1 is played, and the frog jumps forward X steps on stone N=1+X; the jump value of stone 1 is increased by 1. Then the note associated with stone N is played, the frog jump forward according to the jump value of the stone which is then incremented by one. The process is repeated and when the frog jumps off the last stone it “wraps-up” and return to the beginning of the sequence.
Forbidden Planet is a 1956 American Science Fiction film; one of the best SF films of those years (and of all time); all science fiction fans should see it (on a regular basis :-). Forbidden Planet – directed by Fred M. Wilcox – pioneered several elements that were resumed and developed later in many other SF films: humans traveling in a faster-than-light starship; it was the first to be set entirely on another planet far away from Earth; a robot with its own personality that has an active role on the plot.
The Random Clock is a short experiment that combines a sequence of random notes with a random colored pattern that moves clockwise. The notes are “arranged” in two “voices” and, at the beginning, their pitches and the intervals between them are completely random. As times passes, the notes “converge” to the single note E2 and also the tempo “converges” to ~120 bpm. When each note is played, a random box is drawed on the screen; its distance form the centre is proportional to the pitch and the angle increases at a constant speed.
The notes are played using a basic synth built in Reaktor Blocks (by Native Instruments), essentially they are sine waves.
This is the final video:
If you’re interested in the source code (Processing 3), let me know.
More ideas: try to mimic a real clock with the two clock hands rotating at different speeds; the speed and length of the clock hands should be initially random, then they should stabilize to a fixed speed and lenght towards the end.