57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# tildearrow Sound Unit
 | 
						|
 | 
						|
a fantasy sound chip, used in the specs2 fantasy computer designed by tildearrow.
 | 
						|
 | 
						|
it has the following capabilities:
 | 
						|
- 8 channels of either waveform or sample
 | 
						|
- stereo sound
 | 
						|
- 8 waveforms (pulse, saw, sine, triangle, noise, periodic noise, XOR sine and XOR triangle)
 | 
						|
- 128 widths for the pulse wave
 | 
						|
- per-channel resonant filter
 | 
						|
- ring modulation
 | 
						|
- volume, frequency and cutoff sweep units (per-channel)
 | 
						|
- phase reset timer (per-channel)
 | 
						|
 | 
						|
# effects
 | 
						|
 | 
						|
- **`10xx`**: set waveform
 | 
						|
  - 0: pulse wave
 | 
						|
  - 1: sawtooth
 | 
						|
  - 2: sine wave
 | 
						|
  - 3: triangle wave
 | 
						|
  - 4: noise
 | 
						|
  - 5: periodic noise
 | 
						|
  - 6: XOR sine
 | 
						|
  - 7: XOR triangle
 | 
						|
- **`12xx`**: set pulse width (0 to 7F)
 | 
						|
- **`13xx`**: set resonance of filter (0 to FF)
 | 
						|
  - despite what the internal effects list says (0 to F), you can use a resonance value from 0 to FF (255)
 | 
						|
- **`14xx`**: set filter mode and ringmod
 | 
						|
  - bit 0: ring mod
 | 
						|
  - bit 1: low pass
 | 
						|
  - bit 2: high pass
 | 
						|
  - bit 3: band pass
 | 
						|
- **`15xx`**: set frequency sweep period low byte
 | 
						|
- **`16xx`**: set frequency sweep period high byte
 | 
						|
- **`17xx`**: set volume sweep period low byte
 | 
						|
- **`18xx`**: set volume sweep period high byte
 | 
						|
- **`19xx`**: set cutoff sweep period low byte
 | 
						|
- **`1Axx`**: set cutoff sweep period high byte
 | 
						|
- **`1Bxx`**: set frequency sweep boundary
 | 
						|
- **`1Cxx`**: set volume sweep boundary
 | 
						|
- **`1Dxx`**: set cutoff sweep boundary
 | 
						|
- **`1Exx`**: set phase reset period low byte
 | 
						|
- **`1Fxx`**: set phase reset period high byte
 | 
						|
- **`20xx`**: toggle frequency sweep
 | 
						|
  - bit 0-6: speed
 | 
						|
  - bit 7: up direction
 | 
						|
- **`21xx`**: toggle volume sweep
 | 
						|
  - bit 0-4: speed
 | 
						|
  - bit 5: up direction
 | 
						|
  - bit 6: loop
 | 
						|
  - bit 7: alternate
 | 
						|
- **`22xx`**: toggle cutoff sweep
 | 
						|
  - bit 0-6: speed
 | 
						|
  - bit 7: up direction
 | 
						|
- **`4xxx`**: set cutoff (0 to FFF)
 |