51 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Super NES
 | |
| 
 | |
| The successor to NES to compete with Genesis. Now packing superior graphics and sample-based audio. Also known as Super Famicom in Japan.
 | |
| 
 | |
| Its audio subsystem, developed by Sony, features the DSP chip, SPC700 microcontroller 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. As of version 0.6pre2, you can go to `window -> statistics` to see how much memory your samples are using.
 | |
| 
 | |
| Some notable features of the DSP are:
 | |
| - It has pitch modulation, meaning that you can use 2 channels to make a basic FM synth without eating up too much memory
 | |
| - It has a built in noise generator, useful for hihats, cymbals, rides, sfx, among other things.
 | |
| - It famously features per-channel echo, which unfortunately eats up a lot of memory but can be used to save channels in songs.
 | |
| - It can loop samples, but the loop points have to be multiples of 16.
 | |
| - It can invert the left and/or right channels, for surround sound.
 | |
| - It features ADSR, similar to the Commodore 64, but its functionality is closer to the OPL(L|1|2|3)'s implementation of ADSR.
 | |
| - It features an 8-tap FIR filter, which is basically a procedural low-pass filter that you can edit however you want.
 | |
| - 7-bit volume, per-channel.
 | |
| - Per-channel interpolation, which is basically a low-pass filter that gets affected by the pitch of the channel.
 | |
| 
 | |
| 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. This, however, is not a hardware feature, and might be difficult to implement on real hardware.
 | |
| 
 | |
| # effects
 | |
| 
 | |
| Note: this chip has a signed left/right level. Which can be used for inverted (surround) stereo. A signed 8-bit value means 80 - FF = -128 - -1. Other values work normally. A value of -128 is not recommended as it could cause overflows.
 | |
| 
 | |
| - `10xx`: Set waveform.
 | |
| - `11xx`: Toggle noise generator mode.
 | |
| - `12xx`: Toggle echo on this channel.
 | |
| - `13xx`: Toggle pitch modulation.
 | |
| - `14xy`: Toggle inverting the left or right channels. (x: left, y: right)
 | |
| - `15xx`: Set envelope mode. (0: ADSR, 1: gain/direct, 2: decrement, 3: exponential, 4: increment, 5: bent)
 | |
| - `16xx`: Set gain. (00 to 7F if direct, 00 to 1F otherwise)
 | |
| - `18xx`: Enable echo buffer.
 | |
| - `19xx`: Set echo delay. (0 to F)
 | |
| - `1Axx`: Set left echo channel volume.
 | |
| - `1Bxx`: Set right echo channel volume.
 | |
| - `1Cxx`: Set echo feedback.
 | |
| - `1Dxx`: Set noise generator frequency. (00 to 1F)
 | |
| - `20xx`: Set attack (0 to F)
 | |
| - `21xx`: Set decay (0 to 7)
 | |
| - `22xx`: Set sustain (0 to 7)
 | |
| - `23xx`: Set release (00 to 1F)
 | |
| - `30xx`: Set echo filter coefficient 0
 | |
| - `31xx`: Set echo filter coefficient 1
 | |
| - `32xx`: Set echo filter coefficient 2
 | |
| - `33xx`: Set echo filter coefficient 3
 | |
| - `34xx`: Set echo filter coefficient 4
 | |
| - `35xx`: Set echo filter coefficient 5
 | |
| - `36xx`: Set echo filter coefficient 6
 | |
| - `37xx`: Set echo filter coefficient 7
 | 
