Drum Parameters
Let's have a look at the Drum Editor again:
As mentioned in the Drum Editor page, the Drum Editor is divided into 5 sub-groups and each one of these sub-groups contains the sound generating parameters for each of the NES's 5 voices for each Drum Patch.
Within those sub-groups, the parameters are further divided into sections which are mostly organised into vertical columns. Those columns are given 3-letter headings and the single parameters are given a single-letter ID. For example, the LFO Speed is under the LFO column, indicated by the letter 'S'
Many of the parameters are common between all Voices but there are some that are unique to particular Voices and some that perform slightly different functions depending on which Voice they are used on. We'll start off with Voice A as (along with Voice B which is identical) this is the most complicated one with the most parameters. I'll just give an overview of what the parameters do here, the Synthesis page explains what's going on in a bit more depth.
Voice A / Voice B Parameters (Square-wave)
Table Headings: Parameter is the three-letter sub-section name and the single-letter ID of each parameter of a Drum Voice. Function is a simple translation of the parameter name. Usage describes the functions of the parameters and values required to access those functions. Tx shows you the 3-letter ID that is used for the Trigger Parameters in the Auxiliary section of Drum Patches (see Drum Editor page for more detail).
Parameter | Function | Usage | Tx A/B |
OSC-C | Oscillator Coarse Offset |
| |
00 | Pitch is equal to Trigger Note |
01-4F | Positive semi-tone offset |
50-AF | Absolute note, 50 being the lowest pitch and AF being the highest |
FF-B0 | Negative semi-tone offset (FF = -1) |
|
AOC BOC |
OSC-F | Oscillator Fine Tuning |
| |
00 | No detune |
01-7F | Positive detuning |
FF-80 | Negative detuning |
|
AOF BOF |
OSC-D | Oscillator Distortion |
| |
00 | Off |
01-7F | Number of ticks that effect is audible from start of new note |
|
AOD BOD |
Parameter | Function | Usage | Tx A/B |
LFO-D | LFO Mode/Delay |
| |
00-7F | Pitch Sweep mode. Delay in ticks from beginning of new note before effect starts |
80 | One-shot Arpeggio |
81-FF | Cycling Arpeggio, number of cycles is 'value minus 80' |
|
ALD BLD |
LFO-S | LFO Speed |
If mode is One-shot Arpeggio:
| |
00 | Off |
01-FF | Number of ticks to hold first note |
or if mode is Cycling Arpeggio:
| |
00 | Off |
01-FF | Ticks between each arpeggio note |
or if mode is Pitch Sweep:
| |
00 | sweep is in one direction |
01-FF | number of ticks before sweep changes direction (vibrato) |
|
ALS BLS |
LFO-W | LFO Width (Depth) |
If mode is One-Shot Arpeggio:
| |
00-7F | positive semi-tone offset |
FF-80 | negative semi-tone offset |
Or if mode is Cycling Arpeggio:
| |
00-FF | Left-hand digit is 2nd semi-tone offset, right-hand digit is 2nd semi-tone offset. Trigger Note is the 'root' of the arpeggio chord |
Or if mode is Pitch Sweep:
| |
00 | Off |
01-7F | Pitch Sweep up |
FF-80 | Pitch Sweep down |
|
ALW BLW |
Parameter | Function | Usage | Tx A/B |
AMP-V | Amplitude Volume/Curve |
| |
0x-Fx | Left-digit specifies the curve for Envelope Attack and Release. 8x is roughly linear, 0x is the steepest exponential curve while Fx is the steepest logarithmic curve |
x0-xF | Right-digit is the volume scaling, x0 being silent and xF being full volume |
|
AAV BAV |
AMP-E | Amplitude Envelope |
| |
0x-Fx | Left-digit specifies the Attack speed, 1x is the slowest, while Fx is the fastest and 0x specifies no Attack phase |
x0-xF | Right-digit specifies the Release speed, 1x is the slowest, while Fx is the fastest and 0x specifies no Release phase |
|
AAE BAE |
AMP-H | Amplitude Hold Time |
| |
00 | Off |
01-FF | Number of ticks that a note is held before being released. |
|
AAH BAH |
Parameter | Function | Usage | Tx A/B |
DTY-P0 | Duty Setting 0 |
| |
00 | set fixed pulse-width 00 |
40 | set fixed pulse-width 40 |
80 | set fixed pulse-width 80 |
C0 | set fixed pulse-width C0 |
Or if you want Duty Modulation:
01-3F | set pulse-width 00 for 01-3F ticks |
41-7F | set pulse-width 40 for 01-3F ticks |
81-BF | set pulse-width 80 for 01-3F ticks |
C1-FF | set pulse-width C0 for 01-3F ticks |
and the selected pulse-width will play for the specified number of ticks before moving to the value in DTY-P1 (below)
|
AP0 BP0 |
DTY-P1 | Duty Setting 1 |
Exactly same as DTY-P0 above except that if you're using Duty Modulation, the pulse-width setting goes back to DTY-P0 once the specified number of ticks has passed. |
AP1 BP1 |
Voice C Parameters (Triangle)
Voice C shares many of the same parameter types as Voice A and Voice B. OSC-C and OSC-F are exactly the same (though of course in the NES sound chip, Voice C plays back one octave lower than A and B!). LFO-D, LFO-S and LFO-W also operate exactly the same as A and B. Voice C (triangle) doesn't have either a Duty setting or variable amplitude so there are no parameters relating to these aspects. The only parameter from the AMP section is AMP-T which, like it does for Voice A and B, sets the number of ticks that the note is held for.
Voice C has one extra parameter that Voices A and B don't have:
Parameter | Function | Usage | Tx |
AMP-P | Triangle Pulse |
| |
00-FF | the left-digit sets the time that the voice is on while the right-hand digit sets the time that voice is turned off. The effect cycles between these two states for the duration of a note and produces an odd 'warbling' sound. The higher the digit value, the faster the phase (on or off) will be |
|
CAP |
Of course, even though Voice C does have many parameters in common with Voices A and B, it has it's own set of Tx IDs. The difference is that the three-letter codes start with 'C' instead of 'A' or 'B'.
Voice D Parameters (Noise)
Voice D (Noise) also shares some parameters with Voice A, B and C. AMP-V, AMP-E and AMP-H all behave the same way as they do for Voice A and B. Because Voice D doesn't have 'pitch' as such, OSC-C for this voice is a little different from the first three voices.
Parameter | Function | Usage | Tx |
OSC-C | Noise 'Pitch' Offset |
| |
00-4F | sets a relative offset from the Trigger Note |
50-5F | sets absolute pitch, noise mode |
60-6F | sets absolute pitch, 'tone' mode (metallic noise) |
|
DOC |
I think the 50-5F and 60-6F ranges are fairly straightforward but the relative mode might need a little explaining. Basically you've only got 32 'pitches' for the noise (16 in the 'noise' mode and another 16 in the 'tone' mode) and these are represented by the values 00-0F and 10-1F in PR8 respectively. When using the relative offset to set the pitch, the value is added to the Trigger Note so really only the first 32 notes are valid i.e. the lowest pitch note is 'A-1' which equates to 00 as noise pitch. 'A#1' is 01, 'B1' is 02 etc. If the Trigger Note plus the relative offset you set in OSC-C exceeds the valid range, the actual value written to the frequency will wrap around back to 00.
While Voice D has a full complement of LFO parameters, they behave a bit differently from their Voice A, B and C counterparts:
Parameter | Function | Usage | Tx |
LFO-D | LFO Mode/Delay |
| |
00-7F | Noise Sweep mode. Delay in ticks from beginning of new note before effect starts |
80 | One-shot Arpeggio |
81-FF | Cycling Arpeggio, number of cycles is 'value minus 80' |
|
DLD |
LFO-S | LFO Speed |
If mode is One-shot 'Arpeggio':
| |
00 | Off |
01-FF | Number of ticks to hold first note |
or if mode is Cycling 'Arpeggio':
| |
00 | Off |
01-FF | Ticks between each arpeggio note |
or if mode is Noise Sweep:
| |
00 | Off |
01-FF | number of ticks between adding Width value to noise pitch |
|
DLS |
LFO-W | LFO Width (Depth) |
If mode is One-Shot 'Arpeggio':
| |
00-7F | positive offset |
FF-80 | negative offset |
Or if mode is Cycling 'Arpeggio':
| |
00-7F | positive offset |
FF-80 | negative offset |
Or if mode is Noise Sweep:
| |
00 | Off |
01-7F | Pitch Sweep up |
FF-80 | Pitch Sweep down |
|
DLW |
There are two main differences between the LFO operations for Voice D and that of the 'melodic' voices (A, B and C). First of all, the reason 'Arpeggio' is in quotation marks is because instead of 3 notes, for Noise the effect just toggles between the original pitch and the pitch value resulting from adding the LFO-W value to the original pitch. Also, whereas for Voices A, B and C, the arpeggio values are only positive (e.g. 47 would add 4 then 7 to the original pitch), for Voice D the offset in LFO-W is signed.
Secondly, because sweeping the pitch of the Noise is very low resolution (there are only 16 values compared to about 2048 values for the melodic Voices), the LFO-S parameter becomes a delay between modifying the noise pitch. Otherwise, you'd go between the limits of the noise pitch in 16 ticks.
Voice E Parameters (DCM)
OK, Voice E is completely different from the other voices. All the parameters are used to control the (DCM) sample playback and come under the heading 'DCM'
Parameter | Function | Usage | Tx |
DCM-S | Sample Number |
| |
00-FF | Selects the sample number to play. 00 plays silence |
|
ESM |
DCM- | Sample Start Offset |
| |
00-FF | offsets the playback starting point of the sample |
|
EST |
DCM- | Sample End Offset |
| |
00-FF | truncates the length of the sample by the specified value |
|
EEN |
DCM-P | Sample Playback Speed |
| |
00-0F | sets the playback speed of the sample |
|
ESP |
DCM-L | Sample Loop |
| |
00 | Sample does not loop |
01-FF | Sample loops |
|
ESP |