Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ____ ___ ____ __ ___ _
- / ___|_ _| _ \ \ \ / (_)______ _ _ __ __| |
- \___ \| || | | | \ \ /\ / /| |_ / _` | '__/ _` |
- ___) | || |_| | \ V V / | |/ / (_| | | | (_| |
- |____/___|____/ \_/\_/ |_/___\__,_|_| \__,_|
- https://pastebin.com/j43U7jWV
- .-----------------.
- ( C O N T E N T S )
- `-----------------´
- Summary
- PART I. GENERAL
- 1. Shortcut keys
- 2. Workflow
- PART II. INSTRUMENT EDITOR
- 3. Wave & arpeggio (WFARP)
- a. Waveform settings
- b. Arpeggio settings
- c. Detune (DT)
- d. Other instrm. param.
- 4. Filter (FILT.)
- a. Set filter characteristics
- b. Filter sweep (A/D)
- c. Jump from row to row (LFO)
- d. Keyboard tracking (KT)
- 5. Pulse width modulation (PULSE)
- a. Pulse width
- b. Modulation
- 6. Instrument examples
- PART III. PATTERN EDITOR
- 7. Shortcut keys
- 8. Pattern columns
- 9. Effects
- PART IV. ORDERLIST
- PART V. REFERENCES
- -<>-<>-<>-<>-<>-
- o=========o
- | Summary |
- o=========o
- F8 = Menu
- $1 = Triangle
- $2 = Sawtooth
- $4 = Pulse
- $8 = Noise
- $1 = Gate on (don't forget)
- $0 = Gate off, start release part of ADSR
- $9 = Low pass filter
- $9F = Low pass filter, resonance max.
- S9F10 = Low pass filter, resonance max., cutoff a bit open (16/256 = 6%)
- $8400 = $8 means set pulse width, width is $400/$800 (half square)
- .---------------------------.
- ( P A R T I . G E N ER A L )
- `---------------------------´
- 1. Shortcut keys
- 2. Workflow
- o===================o
- | 1. Shortcut keys |
- o===================o
- Menu : F8
- Play/pause : F1 (once), F2 (from cursor) or F3 (loop) / F4, run-stop
- Orderlist : F6
- Instrument change: + -
- Instrument editor: F7 or cursor keys
- Pattern editor : F5 or cursor keys
- Tempo up/down : Shift <>
- o===============================o
- | 2. Workflow and general info |
- o===============================o
- For each oscillator (or: voice) of the SID chip a *Pattern* can be played. A pattern is like a track in a DAW. In a pattern one can switch from one instrument to another from step to step. That way one can create, for instance, a bass- and snare-drum sequence in a single pattern.
- Via the *Orderlist* one can play patterns in order, three at the same time (like a song).
- Each of an *Instrument*'s sections (waveform, PWM, filter) is divided in multiple rows. The first row usually contains basic/obligatory settings like waveform etc. The following rows contain additional settings/effects like filter sweep, arpeggio, modulation, etc. Strictly speaking one only needs the first row.
- Usually the instruments' parameters are unique so you can see on what line it's supposed to be on by its (hexadecimal) value.
- It may be hard to get your head around the setting of "effects" like vibrato, detune, pulse width, etc. They can be set in various windows like the Instrument Editor, the Pattern Editor and even in those they can sometimes be set in more than one place/column (like "big" and "small" effects).
- To import instruments from the SID-Wizard Zip file into a .D64 disk image you have to import it as a PRG file (not SEQ). Example: rename 'instrument.swi' to 'instrument.swi.prg' and drag and drop into .D64 file with Dir Master (Windows) or V1541Commander (Linux).
- .-------------------------------------------------.
- ( P A R T II . I N S T R U M E N T E D I T O R )
- `-------------------------------------------------´
- 3. Wave & arpeggio (WFARP)
- 4. Filter (FILT.)
- 5. Pulse width modulation (PULSE)
- 6. Instrument examples
- o=============================o
- | 3. Wave & arpeggio (WFARP) |
- o=============================o
- Change instrument with + and - keys. Shift + Del (= Inst) inserts, Del deletes.
- 3a. Waveform settings
- ~~~~~~~~~~~~~~~~~~~~
- Waveform and advanced waveform settings:
- WFARP
- L|||__ W = Row number.
- |||
- L||__ F = Waveform (1st nibble of byte):
- || $1 = %0001 = Triangle
- || $2 = %0010 = Sawtooth
- || $4 = %0100 = Pulse
- || $8 = %1000 = Noise
- ||
- L|__ A = Wave option (2nd nibble of byte):
- | $0 = Gate off, start release part of ADSR.
- | $1 = Gate on (don't forget).
- | $2 = Sync
- | $4 = Ring mod
- | $8 = Test (resets and locks the oscillator until value is cleared)
- |
- L__ RP = Advanced settings (one byte):
- [$00 = No arpeggio, see below]
- $01 - $5F (= 001 - 095) = Relative pitch shift upwards, halftones.
- [$60 - $7E = Waveform and wave-option combinations (see above)]
- [$7F = Arpeggio, see below]
- $80 = No process (useful when you don’t want to touch pitch and
- detune, just waveform). ??
- $81 - $DF (= 129 - 223) = Absolute pitch (convert notes from C1
- to A8, use table in manual [1]).
- $E0 - $FF (= 224 - 255) = Relative pitch shift downwards (whole tones?).
- Example: 0021-- = row 0, sawtooth wave, gate on, no arpeggiator.
- 0081DF = row 0, noise, gate on, absolute pitch of B-flat.
- Notice: to use a pulse wave one needs to insert at least one row in the Pulse table to set the pulse width.
- Waveforms (F) and options (A) can be combined by adding their hex values. Example:
- Saw + Pulse = $2 + $4 = $6
- Gate on + Ring mod = $1 + $4 = $5
- When "A" is set to 0 (gate off) then the release part of the volume's envelope generator will start. Playback of a row lasts 1 frame (= 1/50 th of a second (20 ms) PAL).
- Does playback of one line in a pattern also last 20 ms? If so, it's practically no use to to have more than 4 rows in an instrument (if you play an instrument for one beat and if a beat is 4 lines).
- 3b. Arpeggio settings
- ~~~~~~~~~~~~~~~~~~~~~
- This is very hard to get your head around. Skip if this is your first read of this document.
- First, you need to know how the Chord Table works. Whilst in the Chord Table you can change table number with + and -. Toggle between note mode and number mode (hexadecimal) with C= N. The table always ends with 7E or 7F. 7E means returning to the WfArp-table, 7F means looping the chord over (which is what you'll use for arp's). A zero means "no chord change", so start with that.
- Example of a Cord Table (hex): 00, 03, 07, 0C, 07,03, 7F.
- The row after the first one (in which you set wave form to use etc.) of an instrument on which you want to use an arpeggio should look like this:
- WFARP
- L|_|__ W = Row number.
- | |
- L_|__ FA = Arpeggio settings 1:
- | $00 - $0F = Arpeggio speed (if $7F is set in the "RP" column below).
- | $FE = Jump to position in 2nd column. If >=$40 then it jumps to itself.
- |
- L__ RP = Arpeggio settings 2:
- $7F = Use Chord Table for an arpeggio effect (speed is set in the "FA"
- column above).
- $00 = No arpeggio.
- Example: 010A7F = row 01, speed 10, use chord table (= arpeggio).
- 3c. Detune (DT)
- ~~~~~~~~~~~~~~~~~~~
- Sets detune with one byte.
- $00 -$FE = Fine-detuning amount. The higher the value the sharper the pitch will be.
- $FF = No process in detune-table (previously set detune-value is retained).
- 3d. Other instrm. param.
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Octave shift: place cursor on the number and type in number of octaves to shift. Press Enter for + or - (i.e. up or down).
- o====================o
- | 4. Filter (FILT.) |
- o====================o
- Set filter Mode with C= + F. A bright 'FILT.' header means that the filter program resets on every note played, a dark header means that the program won’t restart unless a new (or the same) instrument gets selected in a pattern.
- In the fist row you set filter parameters (band, cutoff, resonance) and in the following rows attack/decay (sweep) and LFO (row to row jump).
- 4a. Set filter characteristics
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- FILT.
- L|||___ F = Row number.
- |||
- L||___ I = Filter band (1st nibble of byte):
- || $8 = Filter deactivated.
- || $9 = Low pass
- || $B = Low pass & band pass
- || $C = High pass
- || $D = Low pass & high pass
- || $E = Band pass
- || $F = All modes
- ||
- L|___ L = Resonance (2nd nibble):
- | $0 - $F = Res.
- |
- L___ T. = Cutoff frequency (1 byte):
- $00 - $FF = 0 - 255 = 0 - 100% = Cutoff frequency. Note: the SID's
- cutoff freq. is 11 bits (2048 steps).
- Example: 009F10 = row 0, low pass, 15 (max) resonance, cutoff a bit open (6% = 123 of 2048).
- 4b. Filter sweep (A/D)
- ~~~~~~~~~~~~~~~~~~~~~~
- First "advanced" setting: filter sweep. It's like setting attack and decay for the filter cutoff.
- FILT.
- L_|__ IL = Number of times to add/subtract "T." from cutoff:
- | $00 - $7F (0 - 127)
- |
- L__ T. = Signed value (from 0 - $7F or $80 - $FF) that will be added to
- or subtracted from cutoff:
- $00 - $7F = 0 to 127 (press = to make it negative)
- $80 - $FF = -128 to -1
- The number of times a value is added/subtracted ("IL") is a number of frames. PAL is 50 frames/second which is 20 ms per frame. So "IL" can regarded as (attack/decay) time. It is an amount of 20 milliseconds.
- The quantity "T." is like intensity.
- Filter sweep can "roll over". After subtracting a value from cut-off so many times that it reaches 0 it rolls the cut-off to max and starts subtracting again until the amount of times to subtract is done.
- Example: 010540 = row 1, add 5 times 64 to cutoff (= 123 + 320 = 443).
- 0205B0 = row 2, add 5 times -80 to cutoff (= 443 - 400 = 43).
- 4c. Jump from row to row (LFO)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Second "advanced" setting: jump to a row's 2nd column. Handy to create LFO on filter. Use in a new line:
- FILT.
- L_|__ IL = $FE = Jump to a row's 2nd column (can jump to itself).
- |
- L__ T. = Row nr. to jump to.
- Example: 03FE00 = row 3, jump back to row 0 (keeps repeating row 01 to 02).
- 4d. Keyboard tracking (KT)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~
- Keyboard-tracking strength of cut-off frequency. KT = $00 - $7F (0 - 127) will increase the cut-off frequency the higher a note is played. KT = $FF - $90 (-1 to -127) will do the same but not as drastically.
- o====================================o
- | 5. Pulse width modulation (PULSE) |
- o====================================o
- First row sets initial pulse width, next rows the intensity and attack/decay time of the modulation. Modulation reset with C= + P. A bright ‘PULSE’ header means that the pulse
- program is reset on every note played, while a dark ‘PULSE’ header means
- that the program won’t restart unless a new (or the same) instrument
- gets selected in a pattern.
- 5a. Pulse width
- ~~~~~~~~~~~~~~~
- PULSE
- L||____ P = Row number.
- L|____ U = Not used. Must be $8 ~ $F ($0 - $7 is PWM).
- L____ LSE = Three nibbles that determine initial pulse width.
- $000 - $800 = 0 - 2048 = Make PW smaller
- $800 = Square wave.
- $800 - $FFF = 2048 - 4095 Make PW larger.
- Example: 0088-- = row 0, unused nibble $8, PW $800 (perfect square)
- 5b. Modulation
- ~~~~~~~~~~~~~~
- If you set initial PW too large and start adding values to PW in the second row than it will roll over. So choose init. PW in row 0 wisely.
- PULSE
- L|_|___ P = Row number.
- L_|___ UL = Number of times to add/subtract the value "SE" from initial PW:
- | $00 - $7F = 0 - 127 = Time unit is a frame (PAL: 20 ms).
- | $FE = Jump to row.
- |
- L___ SE = Value to add/subtract. Type in positive value and press "="
- to turn into negative:
- $00 - $7F = 0 to 127 = Positive value.
- $80 - $FF = -128 to -1 = Neg. val.
- The value "UL" can be regarded as attack/decay time, "SE" as intensity.
- Example: 01057F = row 1, in 5 x 20 ms (0.1 s) add max. value (127) 5 times (= 635),
- so max. PW is 0 + 635 = 31% from 2048
- 020581 = subtract same value from 635
- 5c. Keyboard tracking (KT)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~
- Usually a value of 10 is about right.
- o========================o
- | 6. Instrument examples |
- o========================o
- Some sort of Bell ring mod can be achieved by setting OSC1 to 15 (= triangle, gate on + ring mod). Set OSC3 3 notes higher than OSC1 (both in octave 6).
- "Glass" from youtu.be/Pq-4jzoocGY: ADSR 1068 / FARP 81D4,170C,2700,100C = noise, triangle with ring & sync, saw with ring & sync (you can omit the sync & ring, sounds the same).
- Snare Drum that has different pitch for each note (use note E-6 or F-6): ADSR 0907 / FARP 81DF,41A8,80-- / PULSE 8A--
- .------------------------------------------.
- ( P A R T III . P A T T E R N E D I T O R )
- `------------------------------------------´
- 7. Shortcut keys
- 8. Pattern columns
- 9. Effects
- o==================o
- | 7. Shortcut keys |
- o==================o
- ___________________________________________________________________
- Key | Result
- ____________|______________________________________________________
- C= Del or | Wipe a note
- Space, A |
- Del | Delete a step (and move the rest up)
- Shift Del | Insert a step
- (= Inst) |
- Shift Q/W | Transpose notes up/down by half-notes (in current
- | pattern after cursor-position)
- C= Q/W | Transpose notes up/down by octaves (in current pattern
- | after cursor-position)
- |
- Shift - | Select pattern on track
- C= C, V, Z | Copy, paste, undo
- |
- Shift 1,2,3 | Mute pattern 1, 2 or 3 (Vice: Shift 2 is the at-sign,
- | so use Shift ")
- ____________|________________________________________________________
- o====================o
- | 8. Pattern columns |
- o====================o
- There are four columns in a pattern for a voice/instrument. Column 1 is the note, col. 2 is the instrument which can change row by row for a base drum/snare drum pattern ($01 to $3E). The third and fourth columns are for effects.
- Press Enter on an instrument number in row 2 to go to its editor panel.
- To enter a note press the space bar (= 'edit mode') and use the keyboard (it has 2 rows of note-keys).
- Optionally transpose notes an octave (C= Q/W see shortcut keys).
- In 'edit mode' the Enter key inserts a note-off (rectangular symbol), Shift Enter inserts a note-on (++). Shift P inserts a glide/portamento (arc upwards symbol). Shift V inserts vibrato of which the amplitude can be set from 1 to F (symbol: ~1 to ~F), 0 deletes.
- o============o
- | 9. Effects |
- o============o
- In the instrument column (col. 2) also some "small effects" can be set for example: tied note ($3F), waveform change, sustain, release and chord override. Effects start at $3F.
- Column 3 is for "small" effects, 4 is for "big" effects. Big effects start with nibble 0 or 1 (ex. 08 vibrato).
- Small effect example:
- D2 = Detune $2 steps. When a pattern with its instruments is copied to another track and notes on that track are detuned you get a sort of flanging effect.
- The Big effects have their effect-type in effect-column 3 and their value ($00 to $FF or -$7f to +$80) in the last column of a pattern.
- Big effect examples:
- 07 = Use chord table. Col. 4 contains the number of the chord table. Use for "arpeggio" (see the separate chapter about arpeggio).
- 08 = Vibrato. In col. 4 an F in the 1st nibble means high amplitude and an F in the 2nd nibble means low frequency (!).
- 0E = Pulse width. The first nibble in column 4 seems to do nothing.
- .----------------------------------.
- ( P A R T IV . O R D E R L I S T )
- `----------------------------------´
- To get to the Orderlist, press F6. For each voice (or: oscillator) there's a chain of patterns (a list). Three chains of patterns (one for each voice) form a song. Insert a pattern in a list with the Inst key (= Shift Del). At the end of a list there's "-E".
- Pressing Enter over a pattern-number in the Orderlist will take you to the pattern-editor window and open the corresponding pattern.
- .-----------------------------------.
- ( P A R T V . R E F E R E N C E S )
- `-----------------------------------´
- [1] "Creating Chiptunes with SID-Wizard - Second Edition" (The Manual),
- by WitchMaster for version 1.6:
- https://csdb.dk/release/?id=129032
- [2] Manual by Hermit (dev of SID-Wizard) in the Zip file:
- https://csdb.dk/release/?id=165302
- https://csdb.dk/release/download.php?id=205117
- [3] Youtube video tutorial by Uctumi:
- https://www.youtube.com/watch?v=OoijGJEDfdA&t=736s
- [4] SID-Wizard 1.7 Instruments Overview
- https://youtu.be/llAFRgOLdMk
Add Comment
Please, Sign In to add comment