I'll add my on thoughts at this point.
I wrote a 4k synth from scratch with nothing but listening to Abba as background experience. I learnt a few things:
1. No music format will ever beat your own.
- With lots of design work I was able to get 3 minutes, 8 tracks of *fast* music, down to 300 bytes with my own format. The music file is 14.1kb and compresses to 300 bytes. Thats a compression of about 46x. So the format is very good for compression. kb quotes 30 as being good.
2. A good 4k musician is one who is willing to work in a limited environment
- After 4 months of coding tools and synth (version 6 was eventually used) only one musician could be bothered to use the tool out of maybe 6. I wrote tutorial, help file, had a place to log bugs and still no response. Such size limited music means compromise at an enormous level and not all musicians want to even try.(*)
3. Sound effects are ten times more important than oscillators
- I spent loads of time writing basic oscillators (sin, saw, noise, triangle, square, ramp, sqr, ramp down and so on) and envelopes but the synth only came to life when I wrote effects (echo, distort etc).
4. lo-hi pass use lots of bytes
- In the end I ditched them in favour of some smaller effects. Maybe my code was rubbish though.
5. I wouldnt do the synth it that way again but the music code was good.
- At a basic level, I used my own code to decode the music and generate a wav file that plays using playSnd. No synch. Next time I'll cut down to maybe three oscillators (sin, ramp, noise) or Ill use samples in gm.dls, then I'll concentrate entirely on effects, for example I could pump it through direct sound.
(*) any artist or musician who thinks coders dont make serious compromise at 4k too should think again :-)