58 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			58 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								# Commodore 64
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								a home computer with a synthesizer-grade sound chip of which people took decades to master.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								very popular in Europe and mostly due to the demoscene, which stretched the machine's limbs to no end.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# effects
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- `10xx`: change wave. the following values are accepted:
							 | 
						||
| 
								 | 
							
								  - `00`: nothing
							 | 
						||
| 
								 | 
							
								  - `01`: triangle
							 | 
						||
| 
								 | 
							
								  - `02`: saw
							 | 
						||
| 
								 | 
							
								  - `03`: triangle and saw
							 | 
						||
| 
								 | 
							
								  - `04`: pulse
							 | 
						||
| 
								 | 
							
								  - `05`: pulse and triangle
							 | 
						||
| 
								 | 
							
								  - `06`: pulse and saw
							 | 
						||
| 
								 | 
							
								  - `07`: pulse and triangle and saw
							 | 
						||
| 
								 | 
							
								  - `08`: 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 off
							 | 
						||
| 
								 | 
							
								  - `01`: low pass
							 | 
						||
| 
								 | 
							
								  - `02`: band pass
							 | 
						||
| 
								 | 
							
								  - `03`: low+band pass
							 | 
						||
| 
								 | 
							
								  - `04`: high pass
							 | 
						||
| 
								 | 
							
								  - `05`: band reject/stop/notch
							 | 
						||
| 
								 | 
							
								  - `06`: high+band pass
							 | 
						||
| 
								 | 
							
								  - `07`: 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.
							 | 
						||
| 
								 | 
							
								- `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.
							 | 
						||
| 
								 | 
							
								- `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-FFF
							 | 
						||
| 
								 | 
							
								- `4xxx`: set cutoff. `xxx` range is 000-7FF.
							 |