Mon Jun 8 20:37:35 CEST 2009
Something like but instead of a maximal run length, a maximal
"meaningful" run length with sound output. Maybe this doesn't make
much sense for a finite machine though..
However, this is related to the idea of "maximum spaghetti code".
Code which is written in non-modular form to maximize utility towards
a particular goal, achieving maximum "amplification of behaviour" by
giving up locality, a key element of modular design. This idea comes
from I think a Vernor Vinge novel. It's also related to the
self-modifying noise machine ap0202. The original thought inspired
by this program to encode PCM for playback on an MSX using the 3
PSG channels and an optimal driving strategy, however that is not
Meaningful sound could be short static grains of simple modulations.
Maybe a genetic algorithm on top of sheepsint is more interesting,
like Dave's Fastbreeder.
My hunch is that, since the synth itself is quite simple, the
interesting sounds are going to be configurations changes over time on
top of that. The deal is to find a machine encoding that has maximum
interestingness for a minimum number of bits. Some elements that
- logarithmic frequency scales
- FSR sequences
- stacks (push sound, change, pop sound)
- bias towards low frequencies (drone)
- repetitive drum patterns
Instead of looking at state machines that output all-audible sound, it
might be more interesting to look at the lower part of the spectrum
only, which consists of the average behaviour of the "fast bits" of a
binary modulated signal. More precisely, when the "sound state" of a
machine is an 8-bit value, the audio output could be the carry flag of
an 8-bit accumulation. This is the simplest sigma-delta modulator,
and works well for a PIC chip. In fact, this might be used as an
"external synth". Configuring one of the simplest PICs that have an
internal OSC to work as a (serially controlled) sound generator.