the successor to NES to compete with Genesis, packing superior graphics and sample-based audio.
its Sony-developed audio system features a DSP chip, SPC700 CPU, and 64KB of dedicated SRAM used by both.
this whole system itself is pretty much a separate computer that the main CPU needs to upload its program and samples to.
Furnace communicates with the DSP directly and provides a full 64KB of memory. this memory might be reduced excessively on ROM export to make up for playback engine and pattern data. you can go to window > statistics to see how much memory your samples are using.
some notable features of the DSP are:
Furnace also allows the SNES to use wavetables (and the wavetable synthesizer) in order to create more 'animated' sounds, using less memory than regular samples.
10xx
: set waveform.11xx
: toggle noise mode.12xx
: toggle echo on this channel.13xx
: toggle pitch modulation. frequency modulation by the previous channel's output. no effect on channel 1.14xy
: toggle inverting the left or right channels. x
is left, y
is right.15xx
: set envelope mode. see gain chart below for 1
through 5
.0
: ADSR mode.1
: gain (direct). volume holds at one level.2
: linear decrement. volume lowers by subtractions of 1/64.3
: exponential decrement. volume lowers by multiplications of 255/256.4
: linear increment. volume rises by additions of 1/64.5
: bent line (inverse log) increment. volume rises by additions of 1/64 until 3/4, then additions of 1/256.16xx
: set gain. 00
to 7F
if direct, 00
to 1F
otherwise.18xx
: enable echo buffer.19xx
: set echo delay. range is 0
to F
.1Axx
: set left echo channel volume.1Bxx
: set right echo channel volume.1Cxx
: set echo feedback.00
to 7F
for 0 to 127.80
to FF
for -128 to -1.1Dxx
: set noise generator frequency. range is 00
to 1F
. see noise frequencies chart below.1Exx
: set left dry / global volume.1Fxx
: set right dry / global volume.20xx
: set attack. range is 0
to F
.21xx
: set decay. range is 0
to 7
.22xx
: set sustain. range is 0
to 7
.23xx
: set release. range is 00
to 1F
.3xyy
: set echo filter coefficient.x
is the coefficient from 0 to 7.yy
is the value (signed number).00
to 7F
for 0 to 127.80
to FF
for -128 to -1.this chip uses the SNES instrument editor.
attack | 0→1 time | decay | 1→S time | sustain | ratio | release | S→0 time |
---|---|---|---|---|---|---|---|
00 |
4.1s | 00 |
1.2s | 00 |
1/8 | 00 |
∞ |
01 |
2.5s | 01 |
740ms | 01 |
2/8 | 01 |
38s |
02 |
1.5s | 02 |
440ms | 02 |
3/8 | 02 |
28s |
03 |
1.0s | 03 |
290ms | 03 |
4/8 | 03 |
24s |
04 |
640ms | 04 |
180ms | 04 |
5/8 | 04 |
19s |
05 |
380ms | 05 |
110ms | 05 |
6/8 | 05 |
14s |
06 |
260ms | 06 |
74ms | 06 |
7/8 | 06 |
12s |
07 |
160ms | 07 |
37ms | 07 |
1 | 07 |
9.4s |
08 |
96ms | 08 |
7.1s | ||||
09 |
64ms | 09 |
5.9s | ||||
0A |
40ms | 0A |
4.7s | ||||
0B |
24ms | 0B |
3.5s | ||||
0C |
16ms | 0C |
2.9s | ||||
0D |
10ms | 0D |
2.4s | ||||
0E |
6ms | 0E |
1.8s | ||||
0F |
0ms | 0F |
1.5s | ||||
10 |
1.2s | ||||||
11 |
880ms | ||||||
12 |
740ms | ||||||
13 |
590ms | ||||||
14 |
440ms | ||||||
15 |
370ms | ||||||
16 |
290ms | ||||||
17 |
220ms | ||||||
18 |
180ms | ||||||
19 |
150ms | ||||||
1A |
110ms | ||||||
1B |
92ms | ||||||
1C |
74ms | ||||||
1D |
55ms | ||||||
1E |
37ms | ||||||
1F |
18ms |
reference: Super Famicom Development Wiki
value | linear inc. | bent line inc. | linear dec. | exponent dec. |
---|---|---|---|---|
00 |
∞ | ∞ | ∞ | ∞ |
01 |
4.1s | 7.2s | 4.1s | 38s |
02 |
3.1s | 5.4s | 3.1s | 28s |
03 |
2.6s | 4.6s | 2.6s | 24s |
04 |
2.0s | 3.5s | 2.0s | 19s |
05 |
1.5s | 2.6s | 1.5s | 14s |
06 |
1.3s | 2.3s | 1.3s | 12s |
07 |
1.0s | 1.8s | 1.0s | 9.4s |
08 |
770ms | 1.3s | 770ms | 7.1s |
09 |
640ms | 1.1s | 640ms | 5.9s |
0A |
510ms | 900ms | 510ms | 4.7s |
0B |
380ms | 670ms | 380ms | 3.5s |
0C |
320ms | 560ms | 320ms | 2.9s |
0D |
260ms | 450ms | 260ms | 2.4s |
0E |
190ms | 340ms | 190ms | 1.8s |
0F |
160ms | 280ms | 160ms | 1.5s |
10 |
130ms | 220ms | 130ms | 1.2s |
11 |
96ms | 170ms | 96ms | 880ms |
12 |
80ms | 140ms | 80ms | 740ms |
13 |
64ms | 110ms | 64ms | 590ms |
14 |
48ms | 84ms | 48ms | 440ms |
15 |
40ms | 70ms | 40ms | 370ms |
16 |
32ms | 56ms | 32ms | 290ms |
17 |
24ms | 42ms | 24ms | 220ms |
18 |
20ms | 35ms | 20ms | 180ms |
19 |
16ms | 28ms | 16ms | 150ms |
1A |
12ms | 21ms | 12ms | 110ms |
1B |
10ms | 18ms | 10ms | 92ms |
1C |
8ms | 14ms | 8ms | 74ms |
1D |
6ms | 11ms | 6ms | 55ms |
1E |
4ms | 7ms | 4ms | 37ms |
1F |
2ms | 3.5ms | 2ms | 18ms |
reference: Super Famicom Development Wiki
value | freq. | value | freq. |
---|---|---|---|
00 |
0 Hz | 10 |
500 Hz |
01 |
16 Hz | 11 |
667 Hz |
02 |
21 Hz | 12 |
800 Hz |
03 |
25 Hz | 13 |
1.0 KHz |
04 |
31 Hz | 14 |
1.3 KHz |
05 |
42 Hz | 15 |
1.6 KHz |
06 |
50 Hz | 16 |
2.0 KHz |
07 |
63 Hz | 17 |
2.7 KHz |
08 |
83 Hz | 18 |
3.2 KHz |
09 |
100 Hz | 19 |
4.0 KHz |
0A |
125 Hz | 1A |
5.3 KHz |
0B |
167 Hz | 1B |
6.4 KHz |
0C |
200 Hz | 1C |
8.0 KHz |
0D |
250 Hz | 1D |
10.7 KHz |
0E |
333 Hz | 1E |
16 KHz |
0F |
400 Hz | 1F |
32 KHz |
reference: Super Famicom Development Wiki