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. |