From 7012cd36abfbaa91042e32d306b421d9d8f50e28 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Sat, 10 Jun 2023 23:00:11 -0700 Subject: [PATCH] Instrument macro docs & images. --- doc/4-instrument/8930.md | 16 +++--- doc/4-instrument/README.md | 67 ++++++++++++++++++++++--- doc/4-instrument/amiga.md | 6 ++- doc/4-instrument/ay8910.md | 10 ++-- doc/4-instrument/c64.md | 19 ++++--- doc/4-instrument/fm.md | 2 +- doc/4-instrument/game-boy.md | 24 ++++++--- doc/4-instrument/lynx.md | 13 +++-- doc/4-instrument/macro-ADSR.png | Bin 0 -> 11379 bytes doc/4-instrument/macro-ADSRchart.png | Bin 0 -> 9285 bytes doc/4-instrument/macro-LFO.png | Bin 0 -> 7939 bytes doc/4-instrument/macro-button-ADSR.png | Bin 0 -> 395 bytes doc/4-instrument/macro-button-LFO.png | Bin 0 -> 350 bytes doc/4-instrument/macro-button-seq.png | Bin 0 -> 232 bytes doc/4-instrument/macro-seq.png | Bin 0 -> 11526 bytes doc/4-instrument/macroview.png | Bin 0 -> 3678 bytes doc/4-instrument/n163.md | 15 ++++-- doc/4-instrument/pce.md | 11 ++-- doc/4-instrument/saa.md | 9 ++-- doc/4-instrument/scc.md | 3 +- doc/4-instrument/standard.md | 11 ++-- doc/4-instrument/tia.md | 3 +- doc/4-instrument/vera.md | 6 ++- doc/4-instrument/vrc6.md | 5 +- 24 files changed, 160 insertions(+), 60 deletions(-) create mode 100644 doc/4-instrument/macro-ADSR.png create mode 100644 doc/4-instrument/macro-ADSRchart.png create mode 100644 doc/4-instrument/macro-LFO.png create mode 100644 doc/4-instrument/macro-button-ADSR.png create mode 100644 doc/4-instrument/macro-button-LFO.png create mode 100644 doc/4-instrument/macro-button-seq.png create mode 100644 doc/4-instrument/macro-seq.png create mode 100644 doc/4-instrument/macroview.png diff --git a/doc/4-instrument/8930.md b/doc/4-instrument/8930.md index d155a511a..4a97999c1 100644 --- a/doc/4-instrument/8930.md +++ b/doc/4-instrument/8930.md @@ -1,14 +1,16 @@ # AY8930 instrument editor -AY8930 instrument editor consists of 10 macros. +AY8930 instrument editor consists of these macros. - [Volume] - volume levels sequence - [Arpeggio]- pitch sequence -- [Noise frequency] - AY8930 noise generator frequency sequence +- [Noise Freq] - AY8930 noise generator frequency sequence - [Waveform] - selector of sound type - pulse wave tone, noise or envelope generator -- [Duty cycle] - duty cycle of a pulse wave sequence +- [Pitch] - fine pitch +- [Phase Reset] - trigger restart of waveform +- [Duty] - duty cycle of a pulse wave sequence - [Envelope] - allows shaping an envelope -- [Auto envelope numerator] - sets the envelope to the channel's frequency multiplied by numerator -- [Auto envelope denominator] - sets the envelope to the channel's frequency multiplied by denominator -- [Noise AND mask] - alters the shape/frequency of the noise generator, allowing to produce various interesting sound effects and even PWM phasing -- [Noise OR mask] - see above +- [AutoEnv Num] - sets the envelope to the channel's frequency multiplied by numerator +- [AutoEnv Den] - sets the envelope to the channel's frequency multiplied by denominator +- [Noise AND Mask] - alters the shape/frequency of the noise generator, allowing to produce various interesting sound effects and even PWM phasing +- [Noise OR Mask] - see above diff --git a/doc/4-instrument/README.md b/doc/4-instrument/README.md index 58d7bac9d..b119d123e 100644 --- a/doc/4-instrument/README.md +++ b/doc/4-instrument/README.md @@ -30,16 +30,69 @@ depending on the instrument type, there are currently 13 different types of an i - [Namco 163](n163.md) - for use with Namco 163. - [Konami VRC6](vrc6.md) - for use with VRC6's PSG sound source. + + # macros -one common feature to instruments is macros (also known as sequences). +Macros are incredibly versatile tools for automating instrument effects. -these run on every tick and are useful for controlling parameters automatically. +After creating an instrument, open the Instrument Editor and select the "Macros" tab. There may be multiple macro tabs to control individual FM operators and such. -![macro view](macro.png) +![macro view](macroview.png) -to change the loop portion/point, click on the bar under the macro. -right click on it to disable macro loop. +The very first numeric entry sets the visible width of the bars in sequence-type macros. The scrollbar affects the view of all macros at once. There's a matching scrollbar at the bottom underneath all the macros. -to change the release point, shift-click the bar under the macro. -shift-right click on it to remove the release point. +Each macro has two buttons on the left. +- Macro type (explained below). +- Timing editor, which pops up a small dialog: + - Step Length (ticks): Determines how many ticks pass before each change of value. + - Delay: Delays the start of the macro until this many ticks have passed. + +## macro types + +Every macro can be defined though one of three methods, selectable by the leftmost button under the macro type label: + +- ![](macro-button-seq.png) **Sequence:** Displayed as a bar graph, this is a sequence of numeric values. +- ![](macro-button-ADSR.png) **ADSR:** This is a traditional ADSR envelope, defined by the rate of increase and decrease of value over time. +- ![](macro-button-LFO.png) **LFO:** The Low Frequency Oscillator generates a repeating wave of values. + +Some macros are "bitmap" style. They represent a number of "bits" that can be toggled individually, and the values listed represent the sum of which bits are turned on. + +### sequence + +![sequence macro editor](macro-seq.png) + +The number between the macro type label and the macro type button is the macro length in steps. The `-` and `+` buttons change the length of the macro. Start out by adding at least a few steps. + +The values of the macro can be drawn in the "bar graph box". Just beneath the box is shorter bar graph. +- Click to set the start point of a loop; the end point is the last value unless a release point is set. +- Shift-click to set the release point. When played, the macro will hold here until the note is released. + +Finally, the sequence of values can be directly edited in the text box at the bottom. +- The loop start is entered as a `|`. +- The release point is entered as a `/`. +- In arpeggio macros, a value starting with a `@` is an absolute note (instead of a relative shift). No matter the note played, `@` values will be played at that exact note. This is especially useful for noise instruments with preset periods. + +### ADSR + +![ADSR macro editor](macro-ADSR.png) + +![macro ADSR chart](macro-ADSRchart.png) + +- **Bottom** and **Top** determine the range of values generated by the macro. (Bottom can be larger than Top to invert the envelope!) All generated values will fall between these two points. +- **Attack** is how quickly the value goes from Bottom to Top. A 0 means nothing will change; a 255 instantly jumps to the Top value. +- **Hold** sets how many ticks the note will wait at Top before decay. +- **Decay** is how quickly the value moves to the Sustain level. +- **Sustain** is the where the value will stay while the note is held until SusTime has passed. +- **SusTime** is how many ticks until SusDecay. +- **SusDecay** is the rate at which the value moves toward Bottom while the note is held. +- **Release** is the rate at which the note changes once the note is released. + +### LFO + +![LFO macro editor](macro-LFO.png) + +- **Bottom** and **Top** determine the range of values generated by the macro. (Bottom can be larger than Top to invert the waveform!) +- **Speed** is how quickly the values change – the frequency of the oscillator. +- **Phase** is which part of the waveform the macro will start at, measured in 1/1024 increments. +- **Shape** is the waveform used. Triangle is the default, and Saw and Square are exactly as they say. diff --git a/doc/4-instrument/amiga.md b/doc/4-instrument/amiga.md index 9c9a86ac1..3c748bb2e 100644 --- a/doc/4-instrument/amiga.md +++ b/doc/4-instrument/amiga.md @@ -1,6 +1,6 @@ # Amiga/PCM sound sourceinstrument editor -PCM instrument editor consists of four macros and sample selector: +PCM instrument editor consists of a sample selector and several macros: # Amiga/sample @@ -11,3 +11,7 @@ PCM instrument editor consists of four macros and sample selector: - [Volume] - volume sequence WARNING: it works only on Amiga system, as of version 0.5.5!! - [Arpeggio] - pitch sequence - [Waveform] - sample sequence +- [Panning (left)] - output level for left channel +- [Panning (right)] - output level for right channel +- [Pitch] - fine pitch +- [Phase Reset] - trigger restart of waveform \ No newline at end of file diff --git a/doc/4-instrument/ay8910.md b/doc/4-instrument/ay8910.md index 732d4e5ef..a5acc2f1c 100644 --- a/doc/4-instrument/ay8910.md +++ b/doc/4-instrument/ay8910.md @@ -1,11 +1,13 @@ # AY-3-8910 instrument editor -AY-3-8910 instrument editor consists of 7 macros. +AY-3-8910 instrument editor consists of these macros. - [Volume] - volume levels sequence - [Arpeggio]- pitch sequence -- [Noise frequency] - AY-3-8910 noise generator frequency sequence +- [Noise Freq] - AY-3-8910 noise generator frequency sequence - [Waveform] - selector of sound type - square wave tone, noise or envelope generator +- [Pitch] - fine pitch +- [Phase Reset] - trigger restart of waveform - [Envelope] - allows shaping an envelope -- [Auto envelope numerator] - sets the envelope to the channel's frequency multiplied by numerator -- [Auto envelope denominator] - ets the envelope to the channel's frequency multiplied by denominator +- [AutoEnv Num] - sets the envelope to the channel's frequency multiplied by numerator +- [AutoEnv Den] - sets the envelope to the channel's frequency multiplied by denominator diff --git a/doc/4-instrument/c64.md b/doc/4-instrument/c64.md index 9d612f478..8c4ca86a1 100644 --- a/doc/4-instrument/c64.md +++ b/doc/4-instrument/c64.md @@ -1,8 +1,9 @@ # C64 SID instrument editor -C64 instrument editor consists of two tabs: one controlling various parameters of sound channels and macro tab containing seven macros: +The C64 instrument editor consists of two tabs: "C64" to control various parameters of sound channels, and "Macros" containing several macros. ## C64 + - [Waveform] - allows selecting a waveform. NOTE: more than one waveform can be selected at once, logical AND mix of waves will be produced, with an exception of a noise waveform, it can't be mixed. - [Attack] - determines the rising time for the sound. The bigger the value, the slower the attack. (0-15 range) - [Decay]- Determines the diminishing time for the sound. The higher the value, the longer the decay. It's the initial amplitude decay rate. (0-15 range) @@ -15,16 +16,20 @@ C64 instrument editor consists of two tabs: one controlling various parameters o - [Initialize filter] - initializes the filter with the specified parameters: - [Cutoff] - defines the "intensity" of a filter, to put in in layman terms (0-2047 range) - [Resonance] - defines an additional controlled amplification of that cutoff frequency, creating a secondary peak forms and colors the original pitch. (0-15 range) -- [Filter mode] - determined the filter mode NOTE: SID's filter is muliti-mode, you can mix different modes together (like low and high-pass filters at once) CH3-OFF disables the channel 3, for no reason whatsoever lmao -- [Volume Macrio is a Cutoff macro] - turns a volume macro in a macros tab into a filter cutoff macro. -- [Absolute Cutoff macro] - changes the behaviour of a cutoff macro from the old-style, compatible to much more define-able. -- [Absolute Duty macro] - changes the behaviour of a duty cycle macro from the old-style, compatible to much more define-able. +- [Filter mode] - determined the filter mode NOTE: SID's filter is multi-mode, you can mix different modes together (like low and high-pass filters at once) CH3-OFF disables the channel 3, for no reason whatsoever lmao +- [Volume Macro is Cutoff Macro] - turns a volume macro in a macros tab into a filter cutoff macro. +- [Absolute Cutoff Macro] - changes the behaviour of a cutoff macro from the old-style, compatible to much more define-able. +- [Absolute Duty Macro] - changes the behaviour of a duty cycle macro from the old-style, compatible to much more define-able. +- [Don't test/gate before new note] - (document this) ## Macros -- [Volume/Cutoff] - volume sequence (WARNING: Volume sequence is global for ALL three channels!!) + +- [Volume] - volume sequence (WARNING: Volume sequence is global for ALL three channels!!) - [Arpeggio] - pitch sequence -- [Duty cycle] - pulse duty cycle sequence +- [Duty] - pulse duty cycle sequence - [Waveform] - select the waveform used by instrument +- [Pitch] - fine pitch - [Filter mode] - select the filter mode/sequence - [Resonance] - filter resonance sequence - [Special] - ring and oscillator sync selector +- [Test/Gate] - (document this) \ No newline at end of file diff --git a/doc/4-instrument/fm.md b/doc/4-instrument/fm.md index 68c8f32d9..31de4de85 100644 --- a/doc/4-instrument/fm.md +++ b/doc/4-instrument/fm.md @@ -12,7 +12,7 @@ FM editor is divided into 7 tabs: ## FM -FM synthesizers Furnace supports are for-operator, meaning it takes four oscillators to produce a single sound. Each operator is controlled by a dozen of sliders: +FM synthesizers Furnace supports are four-operator, meaning it takes four oscillators to produce a single sound. Each operator is controlled by a dozen sliders: - [Attack Rate (AR)] - determines the rising time for the sound. The bigger the value, the faster the attack. (0-31 range) - [Decay Rate (DR)]- Determines the diminishing time for the sound. The higher the value, the shorter the decay. It's the initial amplitude decay rate. (0-31 range) diff --git a/doc/4-instrument/game-boy.md b/doc/4-instrument/game-boy.md index 69401cb0e..0b5ace257 100644 --- a/doc/4-instrument/game-boy.md +++ b/doc/4-instrument/game-boy.md @@ -1,17 +1,25 @@ # Game Boy instrument editor -GB instrument editor consists of two tabs: one controlling envelope of sound channels and macro tab containing only four macros: +GB instrument editor consists of two tabs: one controlling envelope of sound channels and macro tab containing several macros. ## Game Boy -- [Volume] - this slider affect the channel volume (range 0-15) -- [Envelope length] - this slider specifies the envelope decay/attack (range 0-7) -- [Sound length] - this slider cuts off the sound after specified length, overriding the previous slider's value +- [Use software envelope] - switch to volume macro instead of envelope +- [Initialize envelope on every note] - forces a volume reset on each new note +- [Volume] - initial channel volume (range 0-15) +- [Length] - envelope decay/attack duration (range 0-7) +- [Sound Length] - cuts off sound after specified length, overriding the Length value -- [UP an DOWN radio buttons] - these buttons alter the behaviour of a second slider. Up makes it specify the envelope attack, down the decay. WARNING: for envelope attack to have any effect, volume should be at the lower rates! +- [Up and Down radio buttons] - Up makes the envelope an attack, down makes it decay. _Note:_ For envelope attack to have any effect, volume should start at a lower value! + +- [Hardware Sequence] - (document this) ## Macros -- [Volume] - volume sequence -- [Arpeggio] - pitch sequence -- [Duty cycle] - pulse wave channels duty cycle sequence + +- [Volume] - volume sequence. _Note:_ This only appears if "Use software envelope" is checked. +- [Arpeggio] - pitch in half-steps +- [Duty/Noise] - pulse wave duty cycle or noise mode sequence - [Waveform] - ch3 wavetable sequence +- [Panning] - output for left and right channels +- [Pitch] - fine pitch +- [Phase Reset] - trigger restart of waveform diff --git a/doc/4-instrument/lynx.md b/doc/4-instrument/lynx.md index 5badd47f2..b181e8e28 100644 --- a/doc/4-instrument/lynx.md +++ b/doc/4-instrument/lynx.md @@ -1,15 +1,18 @@ # Atari Lynx instrument editor -Atari Lynx instrument editor consists of only three macros: +Atari Lynx instrument editor consists of these macros: - [Volume] - volume sequence -- [Arpeggio] - pitch sequencer -- [Duty/Int] - bit pattern for LFSR taps and integration. +- [Arpeggio] - pitch in half-steps +- [Duty/Int] - bit pattern for LFSR taps and integration +- [Panning (left)] - output level for left channel +- [Panning (right)] - output level for right channel +- [Pitch] - fine pitch +- [Phase Reset] - trigger restart of waveform ## Audio generation description -Atari Lynx to generate sound uses 12-bit linear feedback shift register with configurable tap. Nine separate bits can be enable to be the source of feedback. -Namely bits 0, 1, 2, 3, 4, 5, 7, 10 and 11. To generate ANY sound at least one bit MUST be enable. +Atari Lynx generates sound using a 12-bit linear feedback shift register with configurable tap. Nine separate bits can be enabled to be the source of feedback: 0, 1, 2, 3, 4, 5, 7, 10 and 11. To generate _any_ sound at least one bit _must_ be enabled. ### Square wave diff --git a/doc/4-instrument/macro-ADSR.png b/doc/4-instrument/macro-ADSR.png new file mode 100644 index 0000000000000000000000000000000000000000..e514a85bb95ddbd1accdae7dcc3495b871c39763 GIT binary patch literal 11379 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 tkPY~jfF*z>U;o literal 0 HcmV?d00001 diff --git a/doc/4-instrument/macro-button-LFO.png b/doc/4-instrument/macro-button-LFO.png new file mode 100644 index 0000000000000000000000000000000000000000..e02e94f93e91aefb49263358054c4f0415f90344 GIT binary patch literal 350 zcmV-k0iphhP)gwvGq@>~D;jyu?WMpJ~e0()E zHBL@WP*6~(r>EuREpLKP0-QC^m>+7zru0KCN^YimQK0f;T`nQH3 zBme*aut`KgRCr$P)Yl3EF%X5}N#ADgy}bWJ%5oNmy>T)k3hIBI4-O=RzP-Ahl0IYX z=hbA0_H&JzH3nIYqHs_uw0K4(^+F)M0&?pN<+r;&ilGse9~l>Wh$t*qkCiWRl9Bi} zfWSlq)y+e0BO)lwYMeHq)$ literal 0 HcmV?d00001 diff --git a/doc/4-instrument/macro-button-seq.png b/doc/4-instrument/macro-button-seq.png new file mode 100644 index 0000000000000000000000000000000000000000..916153d5c4a0aebbb5f1e6e6357aca6518800362 GIT binary patch literal 232 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 C3!KdW literal 0 HcmV?d00001 diff --git a/doc/4-instrument/macroview.png b/doc/4-instrument/macroview.png new file mode 100644 index 0000000000000000000000000000000000000000..d2bd5971819b5ee375e3a5936e31d6bd05b1cad7 GIT binary patch literal 3678 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 literal 0 HcmV?d00001 diff --git a/doc/4-instrument/n163.md b/doc/4-instrument/n163.md index ca4dd2e7c..317d336e1 100644 --- a/doc/4-instrument/n163.md +++ b/doc/4-instrument/n163.md @@ -3,21 +3,28 @@ Namco 163 instrument editor consists of two tabs: one controlling various parameters for waveform initialize and macro tab containing 10 macros. ## Namco 163 -- [Initial Waveform] - Determines the initial waveform for playing. -- [Initial Waveform position in RAM] - Determines the initial waveform position will be load to RAM. -- [Initial Waveform length in RAM] - Determines the initial waveform length will be load to RAM. + +- [Waveform] - Determines the initial waveform for playing. +- [Offset] - Determines the initial waveform position will be load to RAM. +- [Length] - Determines the initial waveform length will be load to RAM. - [Load waveform before playback] - Determines the load initial waveform into RAM before playback. - [Update waveforms into RAM when every waveform changes] - Determines the update every different waveform changes in playback. ## Macros + - [Volume] - volume levels sequence - [Arpeggio]- pitch sequence -- [Waveform pos.] - sets the waveform source address in RAM for playback (single nibble unit) - [Waveform] - sets waveform source for playback immediately or update later +- [Panning] - output for left and right channels +- [Pitch] - fine pitch +- [Phase Reset] - trigger restart of waveform + \ No newline at end of file diff --git a/doc/4-instrument/pce.md b/doc/4-instrument/pce.md index ac0a6824b..12b425c24 100644 --- a/doc/4-instrument/pce.md +++ b/doc/4-instrument/pce.md @@ -1,9 +1,14 @@ # NEC PC Engine instrument editor -PCE instrument editor consists of only three macros, almost like TIA: +PCE instrument editor consists of these macros: - [Volume] - volume sequence -- [Arpeggio] - pitch sequence -- [Waveform] - spicifies wavetables sequence +- [Arpeggio] - pitch in half-steps +- [Noise] - enable noise mode (ch5 and ch6 only) +- [Waveform] - wavetable sequence +- [Panning (left)] - output level for left channel +- [Panning (right)] - output level for right channel +- [Pitch] - fine pitch +- [Phase Reset] - trigger restart of waveform It also has wavetable synthesizer support, but unfortunately, it clicks a lot when in use on the HuC6280. diff --git a/doc/4-instrument/saa.md b/doc/4-instrument/saa.md index cdfc35572..92583fb0f 100644 --- a/doc/4-instrument/saa.md +++ b/doc/4-instrument/saa.md @@ -1,9 +1,12 @@ # Philips SAA1099 instrument editor -SAA1099 instrument editor consists of five macros: +SAA1099 instrument editor consists of these macros: - [Volume] - volume sequence - [Arpeggio] - pitch sequence -- [Duty cycle/ Noise] - noise generator frequency +- [Duty/Noise] - noise generator frequency - [Waveform] - selector between tone and noise -- [Envelope] - specifies the envelope generator shape +- [Panning (left)] - output level for left channel +- [Panning (right)] - output level for right channel +- [Pitch] - fine pitch +- [Envelope] - envelope generator shape diff --git a/doc/4-instrument/scc.md b/doc/4-instrument/scc.md index 2650e0a30..06eccd6a8 100644 --- a/doc/4-instrument/scc.md +++ b/doc/4-instrument/scc.md @@ -1,7 +1,8 @@ # Konami SCC/Bubble System WSG instrument editor -SCC/Bubble System WSG instrument editor consists of only three macros: +SCC/Bubble System WSG instrument editor consists of these macros: - [Volume] - volume sequence - [Arpeggio] - pitch sequence - [Waveform] - spicifies wavetables sequence +- [Pitch] - fine pitch diff --git a/doc/4-instrument/standard.md b/doc/4-instrument/standard.md index 5f116c74f..0cf7a7290 100644 --- a/doc/4-instrument/standard.md +++ b/doc/4-instrument/standard.md @@ -1,7 +1,10 @@ # Standard instrument editor -SMS and NES instrument editor consists of only three macros: +The instrument editor for NES and PSG (SMS, MSX, and such) consists of these macros: -- [Volume] - volume sequence -- [Arpeggio] - pitch sequencr -- [Duty cycle] - spicifies duty cycle and noise mode for NES channels NOTE: it obviously has no effect on Sega Master System +- [Volume] - volume +- [Arpeggio] - pitch in half-steps +- [Duty] - duty cycle and noise mode for NES channels. _Note:_ This has no effect on Sega Master System. +- [Panning] - output for left and right channels +- [Pitch] - fine pitch +- [Phase Reset] - trigger restart of waveform \ No newline at end of file diff --git a/doc/4-instrument/tia.md b/doc/4-instrument/tia.md index 41fffd384..1efd14bf6 100644 --- a/doc/4-instrument/tia.md +++ b/doc/4-instrument/tia.md @@ -1,7 +1,8 @@ # Atari TIA instrument editor -TIA instrument editor consists of only three macros: +TIA instrument editor consists of these macros: - [Volume] - volume sequence - [Arpeggio] - pitch sequencr - [Waveform] - 1-bit polynomial pattern type sequence +- [Pitch] - "fine" pitch diff --git a/doc/4-instrument/vera.md b/doc/4-instrument/vera.md index b577ccd23..ed6cbbec2 100644 --- a/doc/4-instrument/vera.md +++ b/doc/4-instrument/vera.md @@ -1,8 +1,10 @@ # VERA instrument editor -VERA instrument editor consists of only four macros: +VERA instrument editor consists of these macros: - [Volume] - volume sequence - [Arpeggio] - pitch sequence -- [Duty cycle] - pulse duty cycle sequence +- [Duty] - pulse duty cycle sequence - [Waveform] - select the waveform used by instrument +- [Panning] - output for left and right channels +- [Pitch] - fine pitch diff --git a/doc/4-instrument/vrc6.md b/doc/4-instrument/vrc6.md index bd87e050a..4a8e86ae2 100644 --- a/doc/4-instrument/vrc6.md +++ b/doc/4-instrument/vrc6.md @@ -1,10 +1,11 @@ # VRC6 instrument editor -The VRC6 (regular) instrument editor consists of only three macros: +The VRC6 (regular) instrument editor consists of these macros: - [Volume] - volume sequence - [Arpeggio] - pitch sequence -- [Duty cycle] - specifies duty cycle for pulse wave channels +- [Duty] - specifies duty cycle for pulse wave channels +- [Pitch] - fine pitch ## VRC6 (saw) instrument editor