2022-01-16 06:10:43 +00:00
# Commodore 64
2022-10-16 05:53:05 +00:00
a home computer with a synthesizer-grade sound chip of which people took decades to master. three oscillators with four selectable waveforms, ring modulation, oscillator sync, multi-mode filter and ADSR envelope.
2022-01-16 06:10:43 +00:00
very popular in Europe and mostly due to the demoscene, which stretched the machine's limbs to no end.
2022-10-16 05:53:05 +00:00
two versions of aforementioned chip exist - 6581 (original chip) and 8580 (improved version with working waveform mixing and somewhat more consistent filter curves).
2022-06-06 14:49:39 +00:00
2022-01-16 06:10:43 +00:00
# effects
2023-06-24 01:13:37 +00:00
- **`10xx`**: change wave. the following values are accepted:
2022-01-16 06:10:43 +00:00
- `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
2023-06-24 01:13:37 +00:00
- **`11xx`**: set coarse cutoff. `xx` may be a value between 00 to 64.
2022-01-16 06:10:43 +00:00
- **this effect only exists for compatibility reasons, and its use is discouraged.**
- use effect `4xxx` instead.
2023-06-24 01:13:37 +00:00
- **`12xx`**: set coarse duty cycle. `xx` may be a value between 00 to 64.
2022-01-16 06:10:43 +00:00
- **this effect only exists for compatibility reasons, and its use is discouraged.**
- use effect `3xxx` instead.
2023-06-24 01:13:37 +00:00
- **`13xx`**: set resonance. `xx` may be a value between 00 and 0F.
- **`14xx`**: set filter mode. the following values are accepted:
2022-01-16 06:10:43 +00:00
- `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
2023-06-24 01:13:37 +00:00
- **`15xx`**: set envelope reset time.
2022-01-16 06:10:43 +00:00
- 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.
2023-06-24 01:13:37 +00:00
- **`1Axx`**: disable envelope reset for this channel.
- **`1Bxy`**: reset cutoff:
2022-01-16 06:10:43 +00:00
- 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.
2023-06-24 01:13:37 +00:00
- **`1Cxy`**: reset duty cycle:
2022-01-16 06:10:43 +00:00
- 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.
2023-06-24 01:13:37 +00:00
- **`1Exy`**: change additional parameters.
2022-01-16 06:10:43 +00:00
- `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)
2023-06-24 01:13:37 +00:00
- **`3xxx`**: set duty cycle. `xxx` range is 000-FFF
- **`4xxx`**: set cutoff. `xxx` range is 000-7FF.