From 5de2c2dc4bccb26833be7c789f0a9aed1b45e051 Mon Sep 17 00:00:00 2001 From: LTVA1 <87536432+LTVA1@users.noreply.github.com> Date: Wed, 1 Nov 2023 21:15:10 +0300 Subject: [PATCH 1/7] Update c64.md Update C64 instrument info --- doc/4-instrument/c64.md | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/doc/4-instrument/c64.md b/doc/4-instrument/c64.md index bd864b0313..3f2b7e8800 100644 --- a/doc/4-instrument/c64.md +++ b/doc/4-instrument/c64.md @@ -5,15 +5,13 @@ the C64 instrument editor consists of two tabs: "C64" to control various paramet ## C64 - **Waveform**: allows selecting a waveform. - - more than one waveform can be selected at once. in that case logical AND mix of waves will occur. + - more than one waveform can be selected at once. in that case logical AND mix of waves should occur, bit actually a weird bit mixing occurs (due to the hardware flaws; 6581 and 8580 models handle those "combined waves" differently). - noise is an exception. it cannot be used with any of the other waveforms. - **Attack**: determines the rising time for the sound. the bigger the value, the slower the attack. (0 to 15). - **Decay**: determines the diminishing time for the sound. the higher the value, the longer the decay (0 to 15). - **Sustain**: sets the volume level at which the sound stops decaying and holds steady (0 to 15). - **Release**: determines the rate at which the sound fades out after note off. the higher the value, the longer the release (0 to 15). - - **Duty**: specifies the width of a pulse wave (0 to 4095). - - **Ring Modulation**: when enabled, the channel's output will be multiplied with the previous channel's. - **Oscillator Sync**: enables oscillator hard sync. as the previous channel's oscillator finishes a cycle, it resets the period of the channel's oscillator, forcing the latter to have the same base frequency. this can produce a harmonically rich sound, the timbre of which can be altered by varying the synchronized oscillator's frequency. @@ -26,9 +24,8 @@ the C64 instrument editor consists of two tabs: "C64" to control various paramet - **high**: a high-pass filter. higher cutoff values result in a less "bassy" sound. - **band**: a band-pass filter. cutoff determines which part of the sound is heard (from bass to treble). - **ch3off**: mutes channel 3 when enabled. not sure why is this part of the chip's design, but it is. + - Different filter modes can be selected simultaneously, e.g. low+high. The resulting sound would be as if input was passed through lowpass filter and then highpass filter (or vice versa, you get the idea). -- **Volume Macro is Cutoff Macro**: turns the volume macro in the Macros tab into a filter cutoff macro. - - volume control is global (affects entire chip output), hence the option. - **Absolute Cutoff Macro**: when enabled, the cutoff macro will go from 0 to 2047, and it will be absolute (in other words, control the cutoff directly rather than being relative). - **Absolute Duty Macro**: when enabled, the duty macro will go from 0 to 4095. - **Don't test before new note**: this option disables the one-tick hard reset and test bit before a new note. @@ -37,12 +34,21 @@ the C64 instrument editor consists of two tabs: "C64" to control various paramet - **Volume**: volume sequence. - warning: volume sequence is global! this means it controls the chip's volume and therefore affects all channels. - - this macro becomes **Cutoff** when the **Volume Macro is Cutoff Macro** option is enabled in the C64 tab. - **Arpeggio**: pitch sequence. - **Duty**: pulse width sequence. - **Waveform**: select the waveform used by instrument. - **Pitch**: fine pitch. +- **Cutoff**: filter cutoff. - **Filter mode**: select the filter mode. - **Resonance**: filter resonance sequence. -- **Special**: ring and oscillator sync selector. -- **Test/Gate**: when on, the test bit is set, which mutes the channel. +- **Special**: ring and oscillator sync selector, as well as: + - **gate bit**: + - set (1) = key on, if previous state was 0 it triggers envelope start/restart, if previous state was 1 does nothing + - reset (0) = key off, if previous state was 1 it triggers envelope release, if previous state was 0 does nothing + - **test bit**: + - set (1) = channel immediately muted (if the channel is a source of ring mod and/or hard sync those stop working until you reset the bit) + - reset (0) = unmute channel, restore ring mod/hard sync functionality described above +- **Attack**: sets envelope attack speed. If you modify attack speed when envelope is in attack phase it immediately changes. +- **Decay**: sets envelope decay speed. If you modify decay speed when envelope is in decay phase it immediately changes. +- **Sustain**: sets envelope sustain level. If you modify sustain level when envelope is in sustain phase it immediately changes, although you can only go down (e.g. 9->8 and 8->8 works, but if you go 8->9 channel immediately mutes itself). +- **Release**: sets envelope release speed. If you modify release speed when envelope is in release phase it immediately changes. From d04f4da359131debd9e4d01a2945f0bd8a07b806 Mon Sep 17 00:00:00 2001 From: LTVA1 <87536432+LTVA1@users.noreply.github.com> Date: Wed, 1 Nov 2023 21:19:46 +0300 Subject: [PATCH 2/7] Update effects.md Change macro attribution table for C64 insturment --- doc/3-pattern/effects.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/3-pattern/effects.md b/doc/3-pattern/effects.md index b2622426cf..c76826c025 100644 --- a/doc/3-pattern/effects.md +++ b/doc/3-pattern/effects.md @@ -154,16 +154,16 @@ ex | FM | OPM | OPZ | OPLL | AY-3-8910 | AY8930 | Lynx W | | LFO Shape | LFO Shape | Patch | Waveform | Waveform | | Waveform | 1 | | AMD | AMD | | | Duty | | FilterMode | 2 | | PMD | PMD | | Envelope | Envelope | | Resonance | - 3 | LFOSpd | LFO Speed | LFO Speed | | AutoEnvNum | AutoEnvNum | | Special | - A | ALG | ALG | ALG | | AutoEnvDen | AutoEnvDen | | | + 3 | LFOSpd | LFO Speed | LFO Speed | | AutoEnvNum | AutoEnvNum | | | + A | ALG | ALG | ALG | | AutoEnvDen | AutoEnvDen | | Cutoff | B | FB | FB | FB | | | Noise AND | | | C | FMS | FMS | FMS | | | Noise OR | | | D | AMS | AMS | AMS | | | | | | - 4 | OpMask | OpMask | | | | | | Test/Gate | - 5 | | | AMD2 | | | | | | - 6 | | | PMD2 | | | | | | - 7 | | | LFO2Speed | | | | | | - 8 | | | LFO2Shape | | | | | | + 4 | OpMask | OpMask | | | | | | Special | + 5 | | | AMD2 | | | | | Attack | + 6 | | | PMD2 | | | | | Decay | + 7 | | | LFO2Speed | | | | | Sustain | + 8 | | | LFO2Shape | | | | | Release | ex | SAA1099 | X1-010 | Namco 163 | FDS | Sound Unit | ES5506 | MSM6258 | ---|----------|------------|------------|-----------|------------|-----------|----------| From f0738c19a02a38963adbe4c8890a3fb8bb307911 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Thu, 2 Nov 2023 22:47:51 -0700 Subject: [PATCH 3/7] Editing the C64 instrument doc. Edits for style consistency and clarity (I hope). --- doc/4-instrument/c64.md | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/doc/4-instrument/c64.md b/doc/4-instrument/c64.md index 3f2b7e8800..239f077820 100644 --- a/doc/4-instrument/c64.md +++ b/doc/4-instrument/c64.md @@ -5,7 +5,8 @@ the C64 instrument editor consists of two tabs: "C64" to control various paramet ## C64 - **Waveform**: allows selecting a waveform. - - more than one waveform can be selected at once. in that case logical AND mix of waves should occur, bit actually a weird bit mixing occurs (due to the hardware flaws; 6581 and 8580 models handle those "combined waves" differently). + - more than one waveform can be selected at once. in that case a logical AND mix of waves will occur... + - due to hardware flaws, the mixing is a bit weird and sounds different between the 6581 and the 8580. - noise is an exception. it cannot be used with any of the other waveforms. - **Attack**: determines the rising time for the sound. the bigger the value, the slower the attack. (0 to 15). - **Decay**: determines the diminishing time for the sound. the higher the value, the longer the decay (0 to 15). @@ -24,7 +25,7 @@ the C64 instrument editor consists of two tabs: "C64" to control various paramet - **high**: a high-pass filter. higher cutoff values result in a less "bassy" sound. - **band**: a band-pass filter. cutoff determines which part of the sound is heard (from bass to treble). - **ch3off**: mutes channel 3 when enabled. not sure why is this part of the chip's design, but it is. - - Different filter modes can be selected simultaneously, e.g. low+high. The resulting sound would be as if input was passed through lowpass filter and then highpass filter (or vice versa, you get the idea). + - multiple filter modes can be selected simultaneously. for example, selecting both "low" and "high" would combine the effects of both, resulting in a bandpass filter. - **Absolute Cutoff Macro**: when enabled, the cutoff macro will go from 0 to 2047, and it will be absolute (in other words, control the cutoff directly rather than being relative). - **Absolute Duty Macro**: when enabled, the duty macro will go from 0 to 4095. @@ -43,12 +44,17 @@ the C64 instrument editor consists of two tabs: "C64" to control various paramet - **Resonance**: filter resonance sequence. - **Special**: ring and oscillator sync selector, as well as: - **gate bit**: - - set (1) = key on, if previous state was 0 it triggers envelope start/restart, if previous state was 1 does nothing - - reset (0) = key off, if previous state was 1 it triggers envelope release, if previous state was 0 does nothing + - set (1): key on. if previous state was 0 it triggers envelope start/restart; if previous state was 1, it does nothing. + - reset (0): key off. if previous state was 1 it triggers envelope release; if previous state was 0, it does nothing. - **test bit**: - - set (1) = channel immediately muted (if the channel is a source of ring mod and/or hard sync those stop working until you reset the bit) - - reset (0) = unmute channel, restore ring mod/hard sync functionality described above -- **Attack**: sets envelope attack speed. If you modify attack speed when envelope is in attack phase it immediately changes. -- **Decay**: sets envelope decay speed. If you modify decay speed when envelope is in decay phase it immediately changes. -- **Sustain**: sets envelope sustain level. If you modify sustain level when envelope is in sustain phase it immediately changes, although you can only go down (e.g. 9->8 and 8->8 works, but if you go 8->9 channel immediately mutes itself). -- **Release**: sets envelope release speed. If you modify release speed when envelope is in release phase it immediately changes. + - set (1): immediately mute channel + - if the channel is a source of ring mod and/or hard sync, those stop working until the bit is reset. + - reset (0): unmute channel and restore ring mod/hard sync. +- **Attack**: sets envelope attack speed. + - if you modify attack speed when the envelope is in attack phase it immediately changes. +- **Decay**: sets envelope decay speed. + - if you modify decay speed when envelope is in decay phase it immediately changes. +- **Sustain**: sets envelope sustain level. + - if you modify sustain level when envelope is in sustain phase it immediately changes, although you can only go down. for example, 9-to-8 and 8-to-8 both work, but 8-to-9 immediately mutes the channel. +- **Release**: sets envelope release speed. + - if you modify release speed when envelope is in release phase it immediately changes. \ No newline at end of file From 5909c2e1ed50c9b3599c90101fbde15030a1572d Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Thu, 2 Nov 2023 23:11:11 -0700 Subject: [PATCH 4/7] Small correction. --- doc/4-instrument/c64.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/4-instrument/c64.md b/doc/4-instrument/c64.md index 239f077820..a9bb080b61 100644 --- a/doc/4-instrument/c64.md +++ b/doc/4-instrument/c64.md @@ -25,7 +25,7 @@ the C64 instrument editor consists of two tabs: "C64" to control various paramet - **high**: a high-pass filter. higher cutoff values result in a less "bassy" sound. - **band**: a band-pass filter. cutoff determines which part of the sound is heard (from bass to treble). - **ch3off**: mutes channel 3 when enabled. not sure why is this part of the chip's design, but it is. - - multiple filter modes can be selected simultaneously. for example, selecting both "low" and "high" would combine the effects of both, resulting in a bandpass filter. + - multiple filter modes can be selected simultaneously. for example, selecting both "low" and "high" results in a bandstop (notch) filter. - **Absolute Cutoff Macro**: when enabled, the cutoff macro will go from 0 to 2047, and it will be absolute (in other words, control the cutoff directly rather than being relative). - **Absolute Duty Macro**: when enabled, the duty macro will go from 0 to 4095. From 28065f7eb2c24fb56ff1fea29eb12a9d2be4e076 Mon Sep 17 00:00:00 2001 From: LTVA1 <87536432+LTVA1@users.noreply.github.com> Date: Fri, 3 Nov 2023 09:19:39 +0300 Subject: [PATCH 5/7] Clearer ch3off bit explanation --- doc/4-instrument/c64.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/4-instrument/c64.md b/doc/4-instrument/c64.md index a9bb080b61..0beb20d949 100644 --- a/doc/4-instrument/c64.md +++ b/doc/4-instrument/c64.md @@ -24,7 +24,7 @@ the C64 instrument editor consists of two tabs: "C64" to control various paramet - **low**: a low-pass filter. the lower the cutoff, the darker the sound. - **high**: a high-pass filter. higher cutoff values result in a less "bassy" sound. - **band**: a band-pass filter. cutoff determines which part of the sound is heard (from bass to treble). - - **ch3off**: mutes channel 3 when enabled. not sure why is this part of the chip's design, but it is. + - **ch3off**: mutes channel 3 when enabled. It was originally planned for usage with two registers where program could read current oscillator and envelope outputs, thus making vibrato and SFX generation easier. But who wanted to sacrifice one channel out of three! So aforementioned was just done in software, and the feature was never used. - multiple filter modes can be selected simultaneously. for example, selecting both "low" and "high" results in a bandstop (notch) filter. - **Absolute Cutoff Macro**: when enabled, the cutoff macro will go from 0 to 2047, and it will be absolute (in other words, control the cutoff directly rather than being relative). @@ -57,4 +57,4 @@ the C64 instrument editor consists of two tabs: "C64" to control various paramet - **Sustain**: sets envelope sustain level. - if you modify sustain level when envelope is in sustain phase it immediately changes, although you can only go down. for example, 9-to-8 and 8-to-8 both work, but 8-to-9 immediately mutes the channel. - **Release**: sets envelope release speed. - - if you modify release speed when envelope is in release phase it immediately changes. \ No newline at end of file + - if you modify release speed when envelope is in release phase it immediately changes. From d3e46921ddc4f3a5c6cf14b39fa1863f764da79c Mon Sep 17 00:00:00 2001 From: LTVA1 <87536432+LTVA1@users.noreply.github.com> Date: Fri, 3 Nov 2023 09:33:12 +0300 Subject: [PATCH 6/7] Update c64.md --- doc/4-instrument/c64.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/4-instrument/c64.md b/doc/4-instrument/c64.md index 0beb20d949..7f2acb996a 100644 --- a/doc/4-instrument/c64.md +++ b/doc/4-instrument/c64.md @@ -24,7 +24,7 @@ the C64 instrument editor consists of two tabs: "C64" to control various paramet - **low**: a low-pass filter. the lower the cutoff, the darker the sound. - **high**: a high-pass filter. higher cutoff values result in a less "bassy" sound. - **band**: a band-pass filter. cutoff determines which part of the sound is heard (from bass to treble). - - **ch3off**: mutes channel 3 when enabled. It was originally planned for usage with two registers where program could read current oscillator and envelope outputs, thus making vibrato and SFX generation easier. But who wanted to sacrifice one channel out of three! So aforementioned was just done in software, and the feature was never used. + - **ch3off**: mutes channel 3 when enabled. It was originally planned for usage with two registers where program could read current oscillator and envelope outputs, thus making vibrato and SFX generation easier. but who wanted to sacrifice one channel out of three! so aforementioned was just done in software, and the feature was never used. - multiple filter modes can be selected simultaneously. for example, selecting both "low" and "high" results in a bandstop (notch) filter. - **Absolute Cutoff Macro**: when enabled, the cutoff macro will go from 0 to 2047, and it will be absolute (in other words, control the cutoff directly rather than being relative). From c5ed20a2b24c88f5f6e31c6276928798b413b488 Mon Sep 17 00:00:00 2001 From: LTVA1 <87536432+LTVA1@users.noreply.github.com> Date: Fri, 3 Nov 2023 09:45:34 +0300 Subject: [PATCH 7/7] Update c64.md --- doc/4-instrument/c64.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/4-instrument/c64.md b/doc/4-instrument/c64.md index 7f2acb996a..8442560bf2 100644 --- a/doc/4-instrument/c64.md +++ b/doc/4-instrument/c64.md @@ -24,7 +24,7 @@ the C64 instrument editor consists of two tabs: "C64" to control various paramet - **low**: a low-pass filter. the lower the cutoff, the darker the sound. - **high**: a high-pass filter. higher cutoff values result in a less "bassy" sound. - **band**: a band-pass filter. cutoff determines which part of the sound is heard (from bass to treble). - - **ch3off**: mutes channel 3 when enabled. It was originally planned for usage with two registers where program could read current oscillator and envelope outputs, thus making vibrato and SFX generation easier. but who wanted to sacrifice one channel out of three! so aforementioned was just done in software, and the feature was never used. + - **ch3off**: mutes channel 3 when enabled. it was originally planned for usage with two registers where program could read current oscillator and envelope outputs, thus making vibrato and SFX generation easier. but who wanted to sacrifice one channel out of three! so aforementioned was just done in software, and the feature was never used. - multiple filter modes can be selected simultaneously. for example, selecting both "low" and "high" results in a bandstop (notch) filter. - **Absolute Cutoff Macro**: when enabled, the cutoff macro will go from 0 to 2047, and it will be absolute (in other words, control the cutoff directly rather than being relative).