diff --git a/doc/4-instrument/README.md b/doc/4-instrument/README.md index f9d029242..1825371a7 100644 --- a/doc/4-instrument/README.md +++ b/doc/4-instrument/README.md @@ -1,221 +1,221 @@ -# instrument editor - -the instrument editor allows you to edit instruments. -it can be activated by double-clicking on an instrument in the instrument list. - -alternatively, window > instrument editor displays it. - -## main - -![top of instrument editor](instrument-editor-top.png) - -**TODO: add descriptions to buttons in the image. it really needs them.** - -- **Instrument Selector**: displays a list of instruments in the song. -- **Open**: open an instrument file. -- **Save**: save current instrument to a file. - - right-click to see additional options, such as saving in DefleMask preset format (.dmp). -- **Name**: changes the instrument name. -- **Type**: changes the instrument type (usually chip-specific). - - if changed, all applicable settings and macros will remain unchanged. - - you may have to adjust them afterwards. - -## instrument types - -the following instrument types are available: - -- [SN76489/Sega PSG](psg.md) - for use with TI SN76489 and derivatives like Sega Master System's PSG. -- [FM (OPN)](fm-opn.md) - for use with YM2612, YM2203, YM2608, YM2610 and YM2610B. -- [Game Boy](game-boy.md) - for use with Game Boy APU. -- [C64](c64.md) - for use with Commodore 64 SID. -- [Generic Sample](sample.md) for controlling Amiga and other sample channels/chips like YM2612's Channel 6 PCM mode, NES channel 5, Sega PCM, X1-010 and PC Engine's sample playback mode. -- [PC Engine](pce.md) - for use with PC Engine's wavetable synthesizer. -- [AY-3-8910/SSG](ay8910.md) - for use with AY-3-8910 PSG sound source and SSG portion in YM2610. -- [AY8930](ay8930.md) - for use with Microchip AY8930 E-PSG sound source. -- [TIA](tia.md) - for use with Atari 2600 chip. -- [SAA1099](saa.md) - for use with Philips SAA1099 PSG sound source. -- [VIC](vic.md) - for use with VIC-20 sound chip. -- [PET](pet.md) - for use with Commodore PET. -- [VRC6](vrc6.md) - for use with VRC6's PSG sound source. -- [FM (OPLL)](fm-opll.md) - for use with YM2413. -- [FM (OPL)](fm-opll.md) - for use with YM3526 (OPL), YM3812 (OPL2) and YMF262 (OPL3). -- [FDS](fds.md) - for use with Famicom Disk System sound source. -- [Virtual Boy](virtual-boy.md) - for use with Virtual Boy. -- [Namco 163](n163.md) - for use with Namco 163. -- [Konami SCC/Bubble System WSG](scc.md) - for use with Konami SCC and Wavetable portion in Bubble System's sound hardware. -- [FM (OPZ)](fm-opz.md) - for use with YM2414. -- [POKEY](pokey.md) - for use with Atari 8-bit computers and their POKEY sound source. -- [Beeper](beeper.md) - for use with PC Speaker and ZX Spectrum Beeper (SFX-like engine). -- [WonderSwan](wonderswan.md) - for use with WonderSwan's wavetable synthesizer. -- [Atari Lynx](lynx.md) - for use with Atari Lynx handheld console. -- [VERA](vera.md) - for use with Commander X16 VERA. -- [Seta/Allumer X1-010](x1_010.md) - for use with Wavetable portion in Seta/Allumer X1-010. -- [ES5506](es5506.md) - for use with Ensoniq ES5506 sound chip. -- [SNES](snes.md) - for use with SNES. -- [Sound Unit](su.md) - for use with Sound Unit chip. -- [Namco WSG](wsg.md) - for use with Namco WSG wavetable chips, including C15 and C30. -- [FM (OPM)](fm-opm.md) - for use with YM2151. -- [NES](nes.md) - for use with NES. -- [MSM6258](msm6258.md) - for use with MSM6258 sample chip. -- [MSM6295](msm6295.md) - for use with MSM6295 sample chip. -- [ADPCM-A](adpcm-a.md) - for use with ADPCM-A sample chip. -- [ADPCM-B](adpcm-b.md) - for use with ADPCM-B sample chip. -- [SegaPCM](segapcm.md) - for use with SegaPCM sample chip. -- [QSound](qsound.md) - for use with QSound sample chip. -- [YMZ280B](ymz280b.md) - for use with YMZ280B sample chip. -- [RF5C68](rf5c68.md) - for use with RF5C68 sample chip. -- [MSM5232](msm5232.md) - for use with MSM5232 PSG sound source. -- [T6W28](t6w28.md) - for use with Toshiba T6W28 PSG sound source. -- [K007232](k007232.md) - for use with K007232 sample chip. -- [GA20](ga20.md) - for use with GA20 sample chip. -- [Pokémon Mini/QuadTone](pokemini.md) - for use with these systems. -- [SM8521](sm8521.md) - for use with SM8521 chip, used in Tiger Game.com. -- [PV-1000](pv1000.md) - for use with Casio PV-1000. -- [K053260](k053260.md) - for use with K053260 sample chip. -- [TED](ted.md) - for use with Commodore Plus/4 and Commodore 16's TED chip. -- [C140](c140.md) - for use with C140 sample chip. -- [C219](c219.md) - for use with C219 sample chip. - -## macros - -macros are incredibly versatile tools for automating instrument parameters. - -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](macroview.png) - -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 is a matching scrollbar at the bottom underneath all the macros. - -each macro has the following parameters: -- macro type (explained below) -- timing options: - - **Step Length (ticks)**: determines the number of ticks between macro steps. default is 1. - - **Delay**: delays the macro until this many ticks have elapsed. default is 0. - - the button is highlighted if either of these parameters is set to non-default values. -- release mode: determines how macro release (`===` or `REL` in the pattern) is handled: - - **Active**: jumps to release position on release. - - **Passive**: does not jump to release position. this will result in delay if release position has not been reached yet. - -## macro types - -there are three macro types: - -- ![sequence](macro-button-seq.png) **Sequence:** a sequence of numeric values. -- ![ADSR](macro-button-ADSR.png) **ADSR:** this is an attack/decay/sustain/release envelope. -- ![LFO](macro-button-LFO.png) **LFO:** Low Frequency Oscillator. - -### sequence - -this is the most basic macro type. when the instrument is played, every value in the macro will be output sequentially, from left to right. - -![sequence macro editor](macro-seq.png) - -![clipped sequence macro editor](macro-seq-clip.png) - -![bitmask sequence macro editor](macro-seq-bitmask.png) - -**TODO: once again, text in the image. this sucks.** - -the Length field allows you to set the number of steps in the sequence. - -the sequence view allows you to edit the macro. -- press and hold the left mouse button to start drawing. release to stop drawing. -- press and hold the right mouse button to draw a line. - - the start point will be set to the cursor position. - - move the cursor to change the end point. - - release to finish drawing the line. - -the sequence view may be adjusted using the following combinations: -- hold Ctrl and use the scroll wheel to zoom horizontally. -- hold Ctrl-Shift and use the scroll wheel to zoom vertically. -- the scrollbar at the right allows you to scroll vertically (if possible). -- you may hold Shift and use the scroll wheel to scroll vertically as well. - -right-click on the sequence view to open a menu: -- **copy**: copy this macro to clipboard. -- **paste**: pastes the macro. -- **clear**: clears the macro. -- **clear contents**: resets all values to 0. -- **offset**: - - **X**: slides the data "horizontally" within the macro, filling the gap with zeroes. data moved past the start or end is lost. - - **Y**: increases or decreases all values, clipping them if they would move past the allowed range. -- **scale**: - - **X**: stretches the macro. - - **Y**: multiplies all values by the scale factor, clipping them if they would exceed the allowed range. -- **randomize**: replaces all values with random values between **Min** and **Max**. - -arpeggio and pitch macros may have values above or below the visible area. indicators will be shown until they are scrolled into view. - -bitmask-style macros show labels for each of their bits. these are edited as toggles. -- drawing lines is not possible in these macros. - -under the sequence view there is a bar that allows you to set loop and release points. -- click to set the loop start point; the end point is the last step or release point. - - right-click to remove the loop point. -- shift-click to set the release point. - - the macro will stop at the release point until the note is released (`===` or `REL`). - - if the loop point is set, and it is placed before the release point, the macro will loop until note release instead. - - shift-right-click to remove the release point. - -arpeggio macros have an additional bar under the sequence view to set steps to "relative" or "fixed": -- by default, step values are offsets **relative** to the note. -- if clicked on, a step value becomes **fixed** and will be played at its corresponding note without regard to the currently playing note. - - values are counted from `C-0`. for example, a fixed value of 48 produces a `C-4` note. - - fixed values are especially useful for noise or percussion. - -the sequence can be edited in the text input field at the very bottom. the following symbols have special meanings: -- `|`: loop point. -- `/`: release point. -- in arpeggio macros, `@` prefixed to a value indicates that it is a fixed value as described above. - -in bitmask-style macros, the values are added up in binary and converted to decimal. - -### ADSR - -![ADSR macro editor](macro-ADSR.png) - -- **Bottom** and **Top** determine the macro's output range (Bottom can be larger than Top to invert the envelope!). all outputs will be between these two values. -- Attack, Decay, Sustain, SusDecay, and Release accept inputs between 0 to 255. these are scaled to the distance between Bottom and Top. - - the output starts at Bottom. - - **Attack** is how much the output moves toward Top with each tick. - - **Hold** sets how many ticks to stay at Top before Decay. - - **Decay** is how much the output moves to the Sustain level. - - **Sustain** is how far from Bottom the value stays while the note is on. - - **SusTime** is how many ticks to stay at Sustain until SusDecay. - - **SusDecay** is how much the output moves toward Bottom with each tick while the note is on. - - **Release** is how much the output moves toward Bottom with each tick after the note is released. - -![macro ADSR chart](macro-ADSRchart.png) - -### LFO - -![LFO macro editor](macro-LFO.png) - -- **Bottom** and **Top** determine the macro's output range (Bottom can be larger than Top to invert the waveform!). -- **Speed** is how quickly the LFO position moves. -- **Phase** defines the starting LFO position, measured in 1/1024 increments. -- **Shape** is the waveform of the LFO. there are three waveforms: - - Triangle: Bottom > Top > Bottom. - - Saw: moves from Bottom to Top, and then jumps back to Bottom. - - Square: alternates between Bottom and Top. - - - -## wavetable - -this tab appears for PC Engine, FDS, Namco WSG, and other wavetable-based instruments. - -![wavetable tab](wavetable.png) - -when **Enable synthesizer** is off, the wavetable used for the instrument may be selected by creating a Waveform macro with a single value. - -to use the wavetable synthesizer, refer to [the wavetable synthesizer section](wavesynth.md). - - -## sample - -this tab appears for Generic PCM DAC, Amiga and SNES. - -![sample tab](sample-map.png) - -see the [Generic Sample section](sample.md) for more information. +# instrument editor + +the instrument editor allows you to edit instruments. +it can be activated by double-clicking on an instrument in the instrument list. + +alternatively, window > instrument editor displays it. + +## main + +![top of instrument editor](instrument-editor-top.png) + +**TODO: add descriptions to buttons in the image. it really needs them.** + +- **Instrument Selector**: displays a list of instruments in the song. +- **Open**: open an instrument file. +- **Save**: save current instrument to a file. + - right-click to see additional options, such as saving in DefleMask preset format (.dmp). +- **Name**: changes the instrument name. +- **Type**: changes the instrument type (usually chip-specific). + - if changed, all applicable settings and macros will remain unchanged. + - you may have to adjust them afterwards. + +## instrument types + +the following instrument types are available: + +- [SN76489/Sega PSG](psg.md) - for use with TI SN76489 and derivatives like Sega Master System's PSG. +- [FM (OPN)](fm-opn.md) - for use with YM2612, YM2203, YM2608, YM2610 and YM2610B. +- [Game Boy](game-boy.md) - for use with Game Boy APU. +- [C64](c64.md) - for use with Commodore 64 SID. +- [Generic Sample](sample.md) for controlling Amiga and other sample channels/chips like YM2612's Channel 6 PCM mode, NES channel 5, Sega PCM, X1-010 and PC Engine's sample playback mode. +- [PC Engine](pce.md) - for use with PC Engine's wavetable synthesizer. +- [AY-3-8910/SSG](ay8910.md) - for use with AY-3-8910 PSG sound source and SSG portion in YM2610. +- [AY8930](ay8930.md) - for use with Microchip AY8930 E-PSG sound source. +- [TIA](tia.md) - for use with Atari 2600 chip. +- [SAA1099](saa.md) - for use with Philips SAA1099 PSG sound source. +- [VIC](vic.md) - for use with VIC-20 sound chip. +- [PET](pet.md) - for use with Commodore PET. +- [VRC6](vrc6.md) - for use with VRC6's PSG sound source. +- [FM (OPLL)](fm-opll.md) - for use with YM2413. +- [FM (OPL)](fm-opll.md) - for use with YM3526 (OPL), YM3812 (OPL2) and YMF262 (OPL3). +- [FDS](fds.md) - for use with Famicom Disk System sound source. +- [Virtual Boy](virtual-boy.md) - for use with Virtual Boy. +- [Namco 163](n163.md) - for use with Namco 163. +- [Konami SCC/Bubble System WSG](scc.md) - for use with Konami SCC and Wavetable portion in Bubble System's sound hardware. +- [FM (OPZ)](fm-opz.md) - for use with YM2414. +- [POKEY](pokey.md) - for use with Atari 8-bit computers and their POKEY sound source. +- [Beeper](beeper.md) - for use with PC Speaker and ZX Spectrum Beeper (SFX-like engine). +- [WonderSwan](wonderswan.md) - for use with WonderSwan's wavetable synthesizer. +- [Atari Lynx](lynx.md) - for use with Atari Lynx handheld console. +- [VERA](vera.md) - for use with Commander X16 VERA. +- [Seta/Allumer X1-010](x1_010.md) - for use with Wavetable portion in Seta/Allumer X1-010. +- [ES5506](es5506.md) - for use with Ensoniq ES5506 sound chip. +- [SNES](snes.md) - for use with SNES. +- [Sound Unit](su.md) - for use with Sound Unit chip. +- [Namco WSG](wsg.md) - for use with Namco WSG wavetable chips, including C15 and C30. +- [FM (OPM)](fm-opm.md) - for use with YM2151. +- [NES](nes.md) - for use with NES. +- [MSM6258](msm6258.md) - for use with MSM6258 sample chip. +- [MSM6295](msm6295.md) - for use with MSM6295 sample chip. +- [ADPCM-A](adpcm-a.md) - for use with ADPCM-A sample chip. +- [ADPCM-B](adpcm-b.md) - for use with ADPCM-B sample chip. +- [SegaPCM](segapcm.md) - for use with SegaPCM sample chip. +- [QSound](qsound.md) - for use with QSound sample chip. +- [YMZ280B](ymz280b.md) - for use with YMZ280B sample chip. +- [RF5C68](rf5c68.md) - for use with RF5C68 sample chip. +- [MSM5232](msm5232.md) - for use with MSM5232 PSG sound source. +- [T6W28](t6w28.md) - for use with Toshiba T6W28 PSG sound source. +- [K007232](k007232.md) - for use with K007232 sample chip. +- [GA20](ga20.md) - for use with GA20 sample chip. +- [Pokémon Mini/QuadTone](pokemini.md) - for use with these systems. +- [SM8521](sm8521.md) - for use with SM8521 chip, used in Tiger Game.com. +- [PV-1000](pv1000.md) - for use with Casio PV-1000. +- [K053260](k053260.md) - for use with K053260 sample chip. +- [TED](ted.md) - for use with Commodore Plus/4 and Commodore 16's TED chip. +- [C140](c140.md) - for use with C140 sample chip. +- [C219](c219.md) - for use with C219 sample chip. + +## macros + +macros are incredibly versatile tools for automating instrument parameters. + +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](macroview.png) + +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 is a matching scrollbar at the bottom underneath all the macros. + +each macro has the following parameters: +- macro type (explained below) +- timing options: + - **Step Length (ticks)**: determines the number of ticks between macro steps. default is 1. + - **Delay**: delays the macro until this many ticks have elapsed. default is 0. + - the button is highlighted if either of these parameters is set to non-default values. +- release mode: determines how macro release (`===` or `REL` in the pattern) is handled: + - **Active**: jumps to release position on release. + - **Passive**: does not jump to release position. this will result in delay if release position has not been reached yet. + +## macro types + +there are three macro types: + +- ![sequence](macro-button-seq.png) **Sequence:** a sequence of numeric values. +- ![ADSR](macro-button-ADSR.png) **ADSR:** this is an attack/decay/sustain/release envelope. +- ![LFO](macro-button-LFO.png) **LFO:** Low Frequency Oscillator. + +### sequence + +this is the most basic macro type. when the instrument is played, every value in the macro will be output sequentially, from left to right. + +![sequence macro editor](macro-seq.png) + +![clipped sequence macro editor](macro-seq-clip.png) + +![bitmask sequence macro editor](macro-seq-bitmask.png) + +**TODO: once again, text in the image. this sucks.** + +the Length field allows you to set the number of steps in the sequence. + +the sequence view allows you to edit the macro. +- press and hold the left mouse button to start drawing. release to stop drawing. +- press and hold the right mouse button to draw a line. + - the start point will be set to the cursor position. + - move the cursor to change the end point. + - release to finish drawing the line. + +the sequence view may be adjusted using the following combinations: +- hold Ctrl and use the scroll wheel to zoom horizontally. +- hold Ctrl-Shift and use the scroll wheel to zoom vertically. +- the scrollbar at the right allows you to scroll vertically (if possible). +- you may hold Shift and use the scroll wheel to scroll vertically as well. + +right-click on the sequence view to open a menu: +- **copy**: copy this macro to clipboard. +- **paste**: pastes the macro. +- **clear**: clears the macro. +- **clear contents**: resets all values to 0. +- **offset**: + - **X**: slides the data "horizontally" within the macro, filling the gap with zeroes. data moved past the start or end is lost. + - **Y**: increases or decreases all values, clipping them if they would move past the allowed range. +- **scale**: + - **X**: stretches the macro. + - **Y**: multiplies all values by the scale factor, clipping them if they would exceed the allowed range. +- **randomize**: replaces all values with random values between **Min** and **Max**. + +arpeggio and pitch macros may have values above or below the visible area. indicators will be shown until they are scrolled into view. + +bitmask-style macros show labels for each of their bits. these are edited as toggles. +- drawing lines is not possible in these macros. + +under the sequence view there is a bar that allows you to set loop and release points. +- click to set the loop start point; the end point is the last step or release point. + - right-click to remove the loop point. +- shift-click to set the release point. + - the macro will stop at the release point until the note is released (`===` or `REL`). + - if the loop point is set, and it is placed before the release point, the macro will loop until note release instead. + - shift-right-click to remove the release point. + +arpeggio macros have an additional bar under the sequence view to set steps to "relative" or "fixed": +- by default, step values are offsets **relative** to the note. +- if clicked on, a step value becomes **fixed** and will be played at its corresponding note without regard to the currently playing note. + - values are counted from `C-0`. for example, a fixed value of 48 produces a `C-4` note. + - fixed values are especially useful for noise or percussion. + +the sequence can be edited in the text input field at the very bottom. the following symbols have special meanings: +- `|`: loop point. +- `/`: release point. +- in arpeggio macros, `@` prefixed to a value indicates that it is a fixed value as described above. + +in bitmask-style macros, the values are added up in binary and converted to decimal. + +### ADSR + +![ADSR macro editor](macro-ADSR.png) + +- **Bottom** and **Top** determine the macro's output range (Bottom can be larger than Top to invert the envelope!). all outputs will be between these two values. +- Attack, Decay, Sustain, SusDecay, and Release accept inputs between 0 to 255. these are scaled to the distance between Bottom and Top. + - the output starts at Bottom. + - **Attack** is how much the output moves toward Top with each tick. + - **Hold** sets how many ticks to stay at Top before Decay. + - **Decay** is how much the output moves to the Sustain level. + - **Sustain** is how far from Bottom the value stays while the note is on. + - **SusTime** is how many ticks to stay at Sustain until SusDecay. + - **SusDecay** is how much the output moves toward Bottom with each tick while the note is on. + - **Release** is how much the output moves toward Bottom with each tick after the note is released. + +![macro ADSR chart](macro-ADSRchart.png) + +### LFO + +![LFO macro editor](macro-LFO.png) + +- **Bottom** and **Top** determine the macro's output range (Bottom can be larger than Top to invert the waveform!). +- **Speed** is how quickly the LFO position moves. +- **Phase** defines the starting LFO position, measured in 1/1024 increments. +- **Shape** is the waveform of the LFO. there are three waveforms: + - Triangle: Bottom > Top > Bottom. + - Saw: moves from Bottom to Top, and then jumps back to Bottom. + - Square: alternates between Bottom and Top. + + + +## wavetable + +this tab appears for PC Engine, FDS, Namco WSG, and other wavetable-based instruments. + +![wavetable tab](wavetable.png) + +when **Enable synthesizer** is off, the wavetable used for the instrument may be selected by creating a Waveform macro with a single value. + +to use the wavetable synthesizer, refer to [the wavetable synthesizer section](wavesynth.md). + + +## sample + +this tab appears for Generic PCM DAC, Amiga and SNES. + +![sample tab](sample-map.png) + +see the [Generic Sample section](sample.md) for more information. diff --git a/doc/4-instrument/beeper.md b/doc/4-instrument/beeper.md index 18fca296d..75c61d6ae 100644 --- a/doc/4-instrument/beeper.md +++ b/doc/4-instrument/beeper.md @@ -1,9 +1,9 @@ -# beeper instrument editor - -used in PC Speaker and ZX Spectrum (SFX-like engine). - -- **Volume**: on-off volume sequence. -- **Arpeggio**: pitch sequence. -- **Pulse Width**: pulse width sequence. - - only on ZX Spectrum. -- **Pitch**: fine pitch. +# beeper instrument editor + +used in PC Speaker and ZX Spectrum (SFX-like engine). + +- **Volume**: on-off volume sequence. +- **Arpeggio**: pitch sequence. +- **Pulse Width**: pulse width sequence. + - only on ZX Spectrum. +- **Pitch**: fine pitch. diff --git a/doc/4-instrument/msm5232.md b/doc/4-instrument/msm5232.md index 31c10320e..0c7648afe 100644 --- a/doc/4-instrument/msm5232.md +++ b/doc/4-instrument/msm5232.md @@ -1,16 +1,16 @@ -# MSM5232 instrument editor - -the instrument editor for MSM5232 consists of these macros: - -- **Volume**: volume sequence. - - only has effect when the envelope mode of a group is set to External. -- **Arpeggio**: pitch sequence. -- **Group Ctrl**: group control sequence: - - **sustain**: enable sustain mode. - - **2'**: enable 2' overtone. - - **4'**: enable 4' overtone. - - **8'**: enable 8' overtone. - - **16'**: enable 16' overtone. -- **Group Attack**: set attack rate of group. -- **Group Decay**: set decay rate of group. -- **Noise**: toggle noise mode. +# MSM5232 instrument editor + +the instrument editor for MSM5232 consists of these macros: + +- **Volume**: volume sequence. + - only has effect when the envelope mode of a group is set to External. +- **Arpeggio**: pitch sequence. +- **Group Ctrl**: group control sequence: + - **sustain**: enable sustain mode. + - **2'**: enable 2' overtone. + - **4'**: enable 4' overtone. + - **8'**: enable 8' overtone. + - **16'**: enable 16' overtone. +- **Group Attack**: set attack rate of group. +- **Group Decay**: set decay rate of group. +- **Noise**: toggle noise mode. diff --git a/doc/4-instrument/nes.md b/doc/4-instrument/nes.md index 64f5c0d08..742fc2109 100644 --- a/doc/4-instrument/nes.md +++ b/doc/4-instrument/nes.md @@ -1,52 +1,52 @@ -# NES instrument editor - -the NES instrument editor consists of two tabs. - -## DPCM - -this tab is somewhat similar to [the Sample instrument editor](sample.md), but it has been tailored for use with NES' DPCM channel. - -- **Sample**: specifies which sample should be assigned to the instrument. -- **Use sample map**: enables mapping different samples to notes. see next section for more information. - - when this option is disabled, 16 notes (from C-0 to D#1 and repeating) will map to the DPCM channel's 16 possible pitches. - -### sample map - -the sample map allows you to set a sample for each note. - -after enabling this option, a table appears with the contents of the sample map. -- the first column represents the input note. -- the second column allows you to type in a sample number for each note. - - you may press Delete to clear it. -- the third one is used to set the DPCM pitch at which the specified sample will play. - - for possible values, refer to the table below. - - you may press Delete to clear it. if no value is specified, the last pitch is used. -- the fourth column allows you to set the initial delta counter value when playing the sample. - - this is an hexadecimal number. - - the range is `00` to `7F`. - - you may press Delete to clear it. if no value is specified, the delta counter isn't altered. -- the fifth and last column provides a combo box for selecting a sample. - -you may right-click anywhere in the number, pitch and delta columns for additional options: -- **set entire map to this pitch**: sets the DPCM pitch of all notes to the selected cell's. -- **set entire map to this delta counter value**: sets the initial delta counter value of all notes to the selected cell's. -- **set entire map to this sample**: sets the sample number of all notes to the selected cell's. -- **reset pitches**: resets the sample map's DPCM pitches to defaults (15). -- **clear delta counter values**: removes all delta counter values from the map. -- **clear map samples**: removes all samples from the map. - -## Macros - -- **Volume**: volume sequence. -- **Arpeggio**: pitch sequence. -- **Duty/Noise**: duty cycle and noise mode. - - pulse duty cycles: - - `0`: 12.5% - - `1`: 25% - - `2`: 50% - - `3`: 75% - - noise modes: - - `0`: long noise - - `1`: short noise -- **Pitch**: fine pitch. -- **Phase Reset**: trigger restart of waveform. +# NES instrument editor + +the NES instrument editor consists of two tabs. + +## DPCM + +this tab is somewhat similar to [the Sample instrument editor](sample.md), but it has been tailored for use with NES' DPCM channel. + +- **Sample**: specifies which sample should be assigned to the instrument. +- **Use sample map**: enables mapping different samples to notes. see next section for more information. + - when this option is disabled, 16 notes (from C-0 to D#1 and repeating) will map to the DPCM channel's 16 possible pitches. + +### sample map + +the sample map allows you to set a sample for each note. + +after enabling this option, a table appears with the contents of the sample map. +- the first column represents the input note. +- the second column allows you to type in a sample number for each note. + - you may press Delete to clear it. +- the third one is used to set the DPCM pitch at which the specified sample will play. + - for possible values, refer to the table below. + - you may press Delete to clear it. if no value is specified, the last pitch is used. +- the fourth column allows you to set the initial delta counter value when playing the sample. + - this is an hexadecimal number. + - the range is `00` to `7F`. + - you may press Delete to clear it. if no value is specified, the delta counter isn't altered. +- the fifth and last column provides a combo box for selecting a sample. + +you may right-click anywhere in the number, pitch and delta columns for additional options: +- **set entire map to this pitch**: sets the DPCM pitch of all notes to the selected cell's. +- **set entire map to this delta counter value**: sets the initial delta counter value of all notes to the selected cell's. +- **set entire map to this sample**: sets the sample number of all notes to the selected cell's. +- **reset pitches**: resets the sample map's DPCM pitches to defaults (15). +- **clear delta counter values**: removes all delta counter values from the map. +- **clear map samples**: removes all samples from the map. + +## Macros + +- **Volume**: volume sequence. +- **Arpeggio**: pitch sequence. +- **Duty/Noise**: duty cycle and noise mode. + - pulse duty cycles: + - `0`: 12.5% + - `1`: 25% + - `2`: 50% + - `3`: 75% + - noise modes: + - `0`: long noise + - `1`: short noise +- **Pitch**: fine pitch. +- **Phase Reset**: trigger restart of waveform. diff --git a/doc/4-instrument/pokemini.md b/doc/4-instrument/pokemini.md index ceec01a1c..3368c2506 100644 --- a/doc/4-instrument/pokemini.md +++ b/doc/4-instrument/pokemini.md @@ -1,8 +1,8 @@ -# Pokémon Mini/QuadTone instrument editor - -used in these two chips/systems. these macros are available: - -- **Volume**: volume sequence. -- **Arpeggio**: pitch sequence. -- **Pulse Width**: pulse width sequence. -- **Pitch**: fine pitch. +# Pokémon Mini/QuadTone instrument editor + +used in these two chips/systems. these macros are available: + +- **Volume**: volume sequence. +- **Arpeggio**: pitch sequence. +- **Pulse Width**: pulse width sequence. +- **Pitch**: fine pitch. diff --git a/doc/4-instrument/pokey.md b/doc/4-instrument/pokey.md index 8b3ac7fc4..091e8f45a 100644 --- a/doc/4-instrument/pokey.md +++ b/doc/4-instrument/pokey.md @@ -1,25 +1,25 @@ -# Atari POKEY instrument editor - -the instrument editor for POKEY consists of these macros: - -- **Volume**: volume sequence. -- **Arpeggio**: pitch sequence. -- **AUDCTL**: audio control register sequence: - - **poly9**: reduces size of LFSR. only on noise waveforms! - - **high1**: runs channel 1 at 1.79MHz. - - **high3**: runs channel 3 at 1.79MHz. - - **16-bit 1+2**: enables 16-bit frequency mode by combining channels 1 and 2. - - **16-bit 3+4**: enables 16-bit frequency mode by combining channels 3 and 4. - - **filter 1+3**: applies a high-pass "filter" by combining channels 1 and 3. - - **filter 2+4**: applies a high-pass "filter" by combining channels 2 and 4. - - **15KHz**: runs channels at 15KHz. -- **Waveform**: wave selection sequence: - - 0: harsh noise (poly5+17) - - 1: square buzz (poly5) - - 2: weird noise (poly4+5) - - 3: square buzz (poly5) - - 4: soft noise (poly17) - - 5: square - - 6: bass (poly4) - - 7: buzz (poly4) -- **Pitch**: fine pitch. +# Atari POKEY instrument editor + +the instrument editor for POKEY consists of these macros: + +- **Volume**: volume sequence. +- **Arpeggio**: pitch sequence. +- **AUDCTL**: audio control register sequence: + - **poly9**: reduces size of LFSR. only on noise waveforms! + - **high1**: runs channel 1 at 1.79MHz. + - **high3**: runs channel 3 at 1.79MHz. + - **16-bit 1+2**: enables 16-bit frequency mode by combining channels 1 and 2. + - **16-bit 3+4**: enables 16-bit frequency mode by combining channels 3 and 4. + - **filter 1+3**: applies a high-pass "filter" by combining channels 1 and 3. + - **filter 2+4**: applies a high-pass "filter" by combining channels 2 and 4. + - **15KHz**: runs channels at 15KHz. +- **Waveform**: wave selection sequence: + - 0: harsh noise (poly5+17) + - 1: square buzz (poly5) + - 2: weird noise (poly4+5) + - 3: square buzz (poly5) + - 4: soft noise (poly17) + - 5: square + - 6: bass (poly4) + - 7: buzz (poly4) +- **Pitch**: fine pitch. diff --git a/doc/4-instrument/psg.md b/doc/4-instrument/psg.md index 6b09e534f..aac9260c1 100644 --- a/doc/4-instrument/psg.md +++ b/doc/4-instrument/psg.md @@ -1,15 +1,15 @@ -# Sega PSG instrument editor - -the instrument editor for Sega PSG (SMS, and other TI SN76489 derivatives) consists of these macros: - -- **Volume**: volume sequence. -- **Arpeggio**: pitch sequence. -- **Duty**: noise mode. - - `0`: short noise; preset frequencies. - - `1`: long noise; preset frequencies. - - `2`: short noise; use channel 3 for frequency. - - `3`: long noise; use channel 3 for frequency. -- **Panning**: output for left and right channels. - - only on Game Gear! -- **Pitch**: fine pitch. -- **Phase Reset**: trigger restart of waveform. +# Sega PSG instrument editor + +the instrument editor for Sega PSG (SMS, and other TI SN76489 derivatives) consists of these macros: + +- **Volume**: volume sequence. +- **Arpeggio**: pitch sequence. +- **Duty**: noise mode. + - `0`: short noise; preset frequencies. + - `1`: long noise; preset frequencies. + - `2`: short noise; use channel 3 for frequency. + - `3`: long noise; use channel 3 for frequency. +- **Panning**: output for left and right channels. + - only on Game Gear! +- **Pitch**: fine pitch. +- **Phase Reset**: trigger restart of waveform. diff --git a/doc/4-instrument/t6w28.md b/doc/4-instrument/t6w28.md index 8343733bd..3d548408e 100644 --- a/doc/4-instrument/t6w28.md +++ b/doc/4-instrument/t6w28.md @@ -1,13 +1,13 @@ -# T6W28 instrument editor - -the instrument editor for T6W28 consists of these macros: - -- **Volume**: volume sequence. -- **Arpeggio**: pitch sequence. -- **Noise Type**: noise type sequence: - - `0`: short noise - - `1`: long noise -- **Panning (left)**: output level for left channel. -- **Panning (right)**: output level for right channel. -- **Pitch**: fine pitch. -- **Phase Reset**: trigger restart of waveform. +# T6W28 instrument editor + +the instrument editor for T6W28 consists of these macros: + +- **Volume**: volume sequence. +- **Arpeggio**: pitch sequence. +- **Noise Type**: noise type sequence: + - `0`: short noise + - `1`: long noise +- **Panning (left)**: output level for left channel. +- **Panning (right)**: output level for right channel. +- **Pitch**: fine pitch. +- **Phase Reset**: trigger restart of waveform.