Meneer_Jansen

SID-Wizard, my notes

May 22nd, 2022 (edited)
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.26 KB | None | 0 0
  1. ____ ___ ____ __ ___ _
  2. / ___|_ _| _ \ \ \ / (_)______ _ _ __ __| |
  3. \___ \| || | | | \ \ /\ / /| |_ / _` | '__/ _` |
  4. ___) | || |_| | \ V V / | |/ / (_| | | | (_| |
  5. |____/___|____/ \_/\_/ |_/___\__,_|_| \__,_|
  6.  
  7. https://pastebin.com/j43U7jWV
  8.  
  9. .-----------------.
  10. ( C O N T E N T S )
  11. `-----------------´
  12.  
  13. Summary
  14.  
  15. PART I. GENERAL
  16. 1. Shortcut keys
  17. 2. Workflow
  18.  
  19.  
  20. PART II. INSTRUMENT EDITOR
  21. 3. Wave & arpeggio (WFARP)
  22. a. Waveform settings
  23. b. Arpeggio settings
  24. c. Detune (DT)
  25. d. Other instrm. param.
  26. 4. Filter (FILT.)
  27. a. Set filter characteristics
  28. b. Filter sweep (A/D)
  29. c. Jump from row to row (LFO)
  30. d. Keyboard tracking (KT)
  31. 5. Pulse width modulation (PULSE)
  32. a. Pulse width
  33. b. Modulation
  34. 6. Instrument examples
  35.  
  36. PART III. PATTERN EDITOR
  37. 7. Shortcut keys
  38. 8. Pattern columns
  39. 9. Effects
  40.  
  41. PART IV. ORDERLIST
  42.  
  43. PART V. REFERENCES
  44.  
  45. -<>-<>-<>-<>-<>-
  46.  
  47.  
  48.  
  49.  
  50. o=========o
  51. | Summary |
  52. o=========o
  53.  
  54. F8 = Menu
  55.  
  56. $1 = Triangle
  57. $2 = Sawtooth
  58. $4 = Pulse
  59. $8 = Noise
  60.  
  61. $1 = Gate on (don't forget)
  62. $0 = Gate off, start release part of ADSR
  63.  
  64. $9 = Low pass filter
  65. $9F = Low pass filter, resonance max.
  66. S9F10 = Low pass filter, resonance max., cutoff a bit open (16/256 = 6%)
  67.  
  68. $8400 = $8 means set pulse width, width is $400/$800 (half square)
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76. .---------------------------.
  77. ( P A R T I . G E N ER A L )
  78. `---------------------------´
  79. 1. Shortcut keys
  80. 2. Workflow
  81.  
  82.  
  83. o===================o
  84. | 1. Shortcut keys |
  85. o===================o
  86.  
  87. Menu : F8
  88. Play/pause : F1 (once), F2 (from cursor) or F3 (loop) / F4, run-stop
  89. Orderlist : F6
  90. Instrument change: + -
  91. Instrument editor: F7 or cursor keys
  92. Pattern editor : F5 or cursor keys
  93. Tempo up/down : Shift <>
  94.  
  95.  
  96. o===============================o
  97. | 2. Workflow and general info |
  98. o===============================o
  99.  
  100. 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.
  101.  
  102. Via the *Orderlist* one can play patterns in order, three at the same time (like a song).
  103.  
  104. 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.
  105.  
  106. Usually the instruments' parameters are unique so you can see on what line it's supposed to be on by its (hexadecimal) value.
  107.  
  108. 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).
  109.  
  110. 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).
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117. .-------------------------------------------------.
  118. ( P A R T II . I N S T R U M E N T E D I T O R )
  119. `-------------------------------------------------´
  120. 3. Wave & arpeggio (WFARP)
  121. 4. Filter (FILT.)
  122. 5. Pulse width modulation (PULSE)
  123. 6. Instrument examples
  124.  
  125.  
  126. o=============================o
  127. | 3. Wave & arpeggio (WFARP) |
  128. o=============================o
  129.  
  130. Change instrument with + and - keys. Shift + Del (= Inst) inserts, Del deletes.
  131.  
  132. 3a. Waveform settings
  133. ~~~~~~~~~~~~~~~~~~~~
  134. Waveform and advanced waveform settings:
  135.  
  136. WFARP
  137. L|||__ W = Row number.
  138. |||
  139. L||__ F = Waveform (1st nibble of byte):
  140. || $1 = %0001 = Triangle
  141. || $2 = %0010 = Sawtooth
  142. || $4 = %0100 = Pulse
  143. || $8 = %1000 = Noise
  144. ||
  145. L|__ A = Wave option (2nd nibble of byte):
  146. | $0 = Gate off, start release part of ADSR.
  147. | $1 = Gate on (don't forget).
  148. | $2 = Sync
  149. | $4 = Ring mod
  150. | $8 = Test (resets and locks the oscillator until value is cleared)
  151. |
  152. L__ RP = Advanced settings (one byte):
  153. [$00 = No arpeggio, see below]
  154. $01 - $5F (= 001 - 095) = Relative pitch shift upwards, halftones.
  155. [$60 - $7E = Waveform and wave-option combinations (see above)]
  156. [$7F = Arpeggio, see below]
  157. $80 = No process (useful when you don’t want to touch pitch and
  158. detune, just waveform). ??
  159. $81 - $DF (= 129 - 223) = Absolute pitch (convert notes from C1
  160. to A8, use table in manual [1]).
  161. $E0 - $FF (= 224 - 255) = Relative pitch shift downwards (whole tones?).
  162.  
  163. Example: 0021-- = row 0, sawtooth wave, gate on, no arpeggiator.
  164. 0081DF = row 0, noise, gate on, absolute pitch of B-flat.
  165.  
  166. Notice: to use a pulse wave one needs to insert at least one row in the Pulse table to set the pulse width.
  167.  
  168. Waveforms (F) and options (A) can be combined by adding their hex values. Example:
  169.  
  170. Saw + Pulse = $2 + $4 = $6
  171. Gate on + Ring mod = $1 + $4 = $5
  172.  
  173. 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).
  174.  
  175. 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).
  176.  
  177. 3b. Arpeggio settings
  178. ~~~~~~~~~~~~~~~~~~~~~
  179. This is very hard to get your head around. Skip if this is your first read of this document.
  180.  
  181. 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.
  182.  
  183. Example of a Cord Table (hex): 00, 03, 07, 0C, 07,03, 7F.
  184.  
  185. 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:
  186.  
  187. WFARP
  188. L|_|__ W = Row number.
  189. | |
  190. L_|__ FA = Arpeggio settings 1:
  191. | $00 - $0F = Arpeggio speed (if $7F is set in the "RP" column below).
  192. | $FE = Jump to position in 2nd column. If >=$40 then it jumps to itself.
  193. |
  194. L__ RP = Arpeggio settings 2:
  195. $7F = Use Chord Table for an arpeggio effect (speed is set in the "FA"
  196. column above).
  197. $00 = No arpeggio.
  198.  
  199. Example: 010A7F = row 01, speed 10, use chord table (= arpeggio).
  200.  
  201. 3c. Detune (DT)
  202. ~~~~~~~~~~~~~~~~~~~
  203. Sets detune with one byte.
  204.  
  205. $00 -$FE = Fine-detuning amount. The higher the value the sharper the pitch will be.
  206. $FF = No process in detune-table (previously set detune-value is retained).
  207.  
  208. 3d. Other instrm. param.
  209. ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  210. Octave shift: place cursor on the number and type in number of octaves to shift. Press Enter for + or - (i.e. up or down).
  211.  
  212.  
  213. o====================o
  214. | 4. Filter (FILT.) |
  215. o====================o
  216.  
  217. 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.
  218.  
  219. 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).
  220.  
  221. 4a. Set filter characteristics
  222. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  223. FILT.
  224. L|||___ F = Row number.
  225. |||
  226. L||___ I = Filter band (1st nibble of byte):
  227. || $8 = Filter deactivated.
  228. || $9 = Low pass
  229. || $B = Low pass & band pass
  230. || $C = High pass
  231. || $D = Low pass & high pass
  232. || $E = Band pass
  233. || $F = All modes
  234. ||
  235. L|___ L = Resonance (2nd nibble):
  236. | $0 - $F = Res.
  237. |
  238. L___ T. = Cutoff frequency (1 byte):
  239. $00 - $FF = 0 - 255 = 0 - 100% = Cutoff frequency. Note: the SID's
  240. cutoff freq. is 11 bits (2048 steps).
  241.  
  242. Example: 009F10 = row 0, low pass, 15 (max) resonance, cutoff a bit open (6% = 123 of 2048).
  243.  
  244. 4b. Filter sweep (A/D)
  245. ~~~~~~~~~~~~~~~~~~~~~~
  246. First "advanced" setting: filter sweep. It's like setting attack and decay for the filter cutoff.
  247.  
  248. FILT.
  249. L_|__ IL = Number of times to add/subtract "T." from cutoff:
  250. | $00 - $7F (0 - 127)
  251. |
  252. L__ T. = Signed value (from 0 - $7F or $80 - $FF) that will be added to
  253. or subtracted from cutoff:
  254. $00 - $7F = 0 to 127 (press = to make it negative)
  255. $80 - $FF = -128 to -1
  256.  
  257. 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.
  258.  
  259. The quantity "T." is like intensity.
  260.  
  261. 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.
  262.  
  263. Example: 010540 = row 1, add 5 times 64 to cutoff (= 123 + 320 = 443).
  264. 0205B0 = row 2, add 5 times -80 to cutoff (= 443 - 400 = 43).
  265.  
  266. 4c. Jump from row to row (LFO)
  267. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  268. Second "advanced" setting: jump to a row's 2nd column. Handy to create LFO on filter. Use in a new line:
  269.  
  270. FILT.
  271. L_|__ IL = $FE = Jump to a row's 2nd column (can jump to itself).
  272. |
  273. L__ T. = Row nr. to jump to.
  274.  
  275. Example: 03FE00 = row 3, jump back to row 0 (keeps repeating row 01 to 02).
  276.  
  277. 4d. Keyboard tracking (KT)
  278. ~~~~~~~~~~~~~~~~~~~~~~~~~~
  279. 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.
  280.  
  281.  
  282. o====================================o
  283. | 5. Pulse width modulation (PULSE) |
  284. o====================================o
  285.  
  286. 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
  287. program is reset on every note played, while a dark ‘PULSE’ header means
  288. that the program won’t restart unless a new (or the same) instrument
  289. gets selected in a pattern.
  290.  
  291. 5a. Pulse width
  292. ~~~~~~~~~~~~~~~
  293. PULSE
  294. L||____ P = Row number.
  295. L|____ U = Not used. Must be $8 ~ $F ($0 - $7 is PWM).
  296. L____ LSE = Three nibbles that determine initial pulse width.
  297. $000 - $800 = 0 - 2048 = Make PW smaller
  298. $800 = Square wave.
  299. $800 - $FFF = 2048 - 4095 Make PW larger.
  300.  
  301.  
  302. Example: 0088-- = row 0, unused nibble $8, PW $800 (perfect square)
  303.  
  304. 5b. Modulation
  305. ~~~~~~~~~~~~~~
  306. 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.
  307.  
  308. PULSE
  309. L|_|___ P = Row number.
  310. L_|___ UL = Number of times to add/subtract the value "SE" from initial PW:
  311. | $00 - $7F = 0 - 127 = Time unit is a frame (PAL: 20 ms).
  312. | $FE = Jump to row.
  313. |
  314. L___ SE = Value to add/subtract. Type in positive value and press "="
  315. to turn into negative:
  316. $00 - $7F = 0 to 127 = Positive value.
  317. $80 - $FF = -128 to -1 = Neg. val.
  318.  
  319. The value "UL" can be regarded as attack/decay time, "SE" as intensity.
  320.  
  321. Example: 01057F = row 1, in 5 x 20 ms (0.1 s) add max. value (127) 5 times (= 635),
  322. so max. PW is 0 + 635 = 31% from 2048
  323. 020581 = subtract same value from 635
  324.  
  325. 5c. Keyboard tracking (KT)
  326. ~~~~~~~~~~~~~~~~~~~~~~~~~~
  327. Usually a value of 10 is about right.
  328.  
  329.  
  330. o========================o
  331. | 6. Instrument examples |
  332. o========================o
  333.  
  334. 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).
  335.  
  336. "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).
  337.  
  338. Snare Drum that has different pitch for each note (use note E-6 or F-6): ADSR 0907 / FARP 81DF,41A8,80-- / PULSE 8A--
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347. .------------------------------------------.
  348. ( P A R T III . P A T T E R N E D I T O R )
  349. `------------------------------------------´
  350. 7. Shortcut keys
  351. 8. Pattern columns
  352. 9. Effects
  353.  
  354.  
  355. o==================o
  356. | 7. Shortcut keys |
  357. o==================o
  358.  
  359. ___________________________________________________________________
  360. Key | Result
  361. ____________|______________________________________________________
  362. C= Del or | Wipe a note
  363. Space, A |
  364. Del | Delete a step (and move the rest up)
  365. Shift Del | Insert a step
  366. (= Inst) |
  367. Shift Q/W | Transpose notes up/down by half-notes (in current
  368. | pattern after cursor-position)
  369. C= Q/W | Transpose notes up/down by octaves (in current pattern
  370. | after cursor-position)
  371. |
  372. Shift - | Select pattern on track
  373. C= C, V, Z | Copy, paste, undo
  374. |
  375. Shift 1,2,3 | Mute pattern 1, 2 or 3 (Vice: Shift 2 is the at-sign,
  376. | so use Shift ")
  377. ____________|________________________________________________________
  378.  
  379.  
  380. o====================o
  381. | 8. Pattern columns |
  382. o====================o
  383.  
  384. 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.
  385.  
  386. Press Enter on an instrument number in row 2 to go to its editor panel.
  387.  
  388. To enter a note press the space bar (= 'edit mode') and use the keyboard (it has 2 rows of note-keys).
  389.  
  390. Optionally transpose notes an octave (C= Q/W see shortcut keys).
  391.  
  392. 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.
  393.  
  394.  
  395. o============o
  396. | 9. Effects |
  397. o============o
  398.  
  399. 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.
  400.  
  401. Column 3 is for "small" effects, 4 is for "big" effects. Big effects start with nibble 0 or 1 (ex. 08 vibrato).
  402.  
  403. Small effect example:
  404. 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.
  405.  
  406. 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.
  407.  
  408. Big effect examples:
  409. 07 = Use chord table. Col. 4 contains the number of the chord table. Use for "arpeggio" (see the separate chapter about arpeggio).
  410.  
  411. 08 = Vibrato. In col. 4 an F in the 1st nibble means high amplitude and an F in the 2nd nibble means low frequency (!).
  412.  
  413. 0E = Pulse width. The first nibble in column 4 seems to do nothing.
  414.  
  415.  
  416.  
  417.  
  418.  
  419. .----------------------------------.
  420. ( P A R T IV . O R D E R L I S T )
  421. `----------------------------------´
  422.  
  423. 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".
  424.  
  425. Pressing Enter over a pattern-number in the Orderlist will take you to the pattern-editor window and open the corresponding pattern.
  426.  
  427.  
  428.  
  429.  
  430. .-----------------------------------.
  431. ( P A R T V . R E F E R E N C E S )
  432. `-----------------------------------´
  433.  
  434. [1] "Creating Chiptunes with SID-Wizard - Second Edition" (The Manual),
  435. by WitchMaster for version 1.6:
  436. https://csdb.dk/release/?id=129032
  437.  
  438. [2] Manual by Hermit (dev of SID-Wizard) in the Zip file:
  439. https://csdb.dk/release/?id=165302
  440. https://csdb.dk/release/download.php?id=205117
  441.  
  442. [3] Youtube video tutorial by Uctumi:
  443. https://www.youtube.com/watch?v=OoijGJEDfdA&t=736s
  444.  
  445. [4] SID-Wizard 1.7 Instruments Overview
  446. https://youtu.be/llAFRgOLdMk
  447.  
  448.  
  449.  
Add Comment
Please, Sign In to add comment