mirror of
https://github.com/tildearrow/furnace.git
synced 2024-10-31 18:12:40 +00:00
4748e185a7
Hey, all those files I thought I clobbered!
2.5 KiB
2.5 KiB
Commodore 64
a home computer with a synthesizer-grade sound chip of which people took decades to master. three oscillators with four selectable waveforms, ring modulation, oscillator sync, multi-mode filter and ADSR envelope.
very popular in Europe and mostly due to the demoscene, which stretched the machine's limbs to no end.
two versions of aforementioned chip exist - 6581 (original chip) and 8580 (improved version with working waveform mixing and somewhat more consistent filter curves).
effects
10xx
: change wave. the following values are accepted:00
: nothing01
: triangle02
: saw03
: triangle and saw04
: pulse05
: pulse and triangle06
: pulse and saw07
: pulse and triangle and saw08
: noise
11xx
: set coarse cutoff.xx
may be a value between 00 to 64.- this effect only exists for compatibility reasons, and its use is discouraged.
- use effect
4xxx
instead.
12xx
: set coarse duty cycle.xx
may be a value between 00 to 64.- this effect only exists for compatibility reasons, and its use is discouraged.
- use effect
3xxx
instead.
13xx
: set resonance.xx
may be a value between 00 and 0F.14xx
: set filter mode. the following values are accepted:00
: filter off01
: low pass02
: band pass03
: low+band pass04
: high pass05
: band reject/stop/notch06
: high+band pass07
: all pass
15xx
: set envelope reset time.- this is the amount of ticks the channel turns off before a note occurs in order to reset the envelope safely.
- if
xx
is 0 or higher than the song speed, the envelope will not reset.
1Axx
: disable envelope reset for this channel.1Bxy
: reset cutoff:- if
x
is not 0: on new note - if
y
is not 0: now - this effect is not necessary if the instrument's cutoff macro is absolute.
- if
1Cxy
: reset duty cycle:- if
x
is not 0: on new note - if
y
is not 0: now - this effect is not necessary if the instrument's duty macro is absolute.
- if
1Exy
: change additional parameters.x
may be one of the following:0
: attack (y
from 0 to F)1
: decay (y
from 0 to F)2
: sustain (y
from 0 to F)3
: release (y
from 0 to F)4
: ring modulation (y
is 0 or 1)5
: oscillator sync (y
is 0 or 1)6
: disable channel 3 (y
is 0 or 1)
3xxx
: set duty cycle.xxx
range is 000-FFF4xxx
: set cutoff.xxx
range is 000-7FF.