[stella] New idea for 6 channel music on the 2600
Subject: [stella] New idea for 6 channel music on the 2600|
From: Kevin Horton <khorton@xxxxxxxxxxx>
Date: Wed, 19 Sep 2001 03:43:15 -0500
I have an interesting idea for generating 6 channel music using nothing but
a stock 2600. The basic idea is to use the two volume registers on the
chip to generate 3 channels each.
It appears that I can generate square waves, ramps, and triangle waves in
this fashion, mix them in software, and then output their values to the
volume registers with just enough time to spare. The only downside is
there can be no video while this is occurring (except for maybe flashing
the screen or some other relatively static display).
The basic idea for this is to increment a phase accumulator for each
channel every scanline and use the upper bits of it to select bytes from a
waveform table; then add them to an accumulator, and finally output the
results to the sound volume registers.
I already have some basic code written for this, and should post more about
it in a couple days. Unfortunately, due to cycle constraints, this thing
will only work for linear note/length/instrument data, and cannot use a
track/pattern/note setup (which I originally wanted to use). There's just
not enough cycles otherwise.
Would such a piece of code be at all useful? I was thinking maybe a
power-on tune, in between level tunes, etc. It may be possible to
"multiplex" the sound updating every couple scanlines with some TIA
updating, but I dunno yet if this will be possible to do. This code as it
stands is very very cycle-intensive.
Archives (includes files) at http://www.biglist.com/lists/stella/archives/
Unsub & more at http://www.biglist.com/lists/stella/
- Re: [stella] Tentative plans for 2nd Edition Stella Guide, (continued)
- Roger Williams - Mon, 17 Sep 2001 21:21:10 -0400 (EDT)
- Kevin Horton - Tue, 18 Sep 2001 01:46:40 -0400 (EDT)
- Tim Boescke - Tue, 18 Sep 2001 11:17:48 -0400 (EDT)
- Mark De Smet - Tue, 18 Sep 2001 21:11:31 -0400 (EDT)
- Kevin Horton - Wed, 19 Sep 2001 04:52:07 -0400 (EDT) <=
- Glenn Saunders - Wed, 19 Sep 2001 11:48:40 -0400 (EDT)
- Kevin Horton - Wed, 19 Sep 2001 21:38:17 -0400 (EDT)
- B. Watson - Wed, 19 Sep 2001 10:57:39 -0400 (EDT)
- Roger Williams - Wed, 19 Sep 2001 21:49:52 -0400 (EDT)