Subversion Repositories svn.mios

Rev

Rev 1164 | Rev 1190 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
44 tk 1
$Id: CHANGELOG.txt 1189 2014-12-19 20:00:14Z tk $
2
 
1137 tk 3
MIDIboxSID V2.044
4
~~~~~~~~~~~~~~~~~
5
 
1189 tk 6
   o This version got an improved rotary encoder handling.
7
     Please update to MIOS V1.9h before uploading the application, otherwise the improvements
8
     won't be effective.
1137 tk 9
 
1164 tk 10
   o swapped behaviour of ENC speed control again, so that encoders are at fast speed
11
     by default, and slow if SHIFT button pressed.
12
     This behaviour can now be alternated in your setup_*.asm file by changing
13
     the DEFAULT_SHIFT_SPEED_CONTROL_MODE option
14
 
1163 tk 15
   o implemented special encoder testmode which can be enabled with
16
     DEFAULT_TESTMODE_ENC_SPEED in the setup_*.asm file
1137 tk 17
 
1189 tk 18
   o envelopes are now released properly when a note is played via the SysEx editor
19
     (or with the PLAY button)
1163 tk 20
 
1189 tk 21
   o added new "SuperSaw" detune mode which has been created by Lis0r.
22
     In distance to the normal (legacy) mode, results are much better especially on
23
     higher detune values!
24
     The detune mode (DtM) can be selected in the OSC page for lead engine patches, and
25
     in the O23 page for bassline patches.
26
 
27
 
1109 tk 28
MIDIboxSID V2.043
29
~~~~~~~~~~~~~~~~~
30
 
1122 tk 31
   o fixed NRPN handling for Multi patches
32
 
33
   o implemented CCs for Bassline/Drum/Multi Engine
34
     See doc/mbsidv2_cc_chart.txt for available CCs
35
 
1109 tk 36
   o display updated when the patch name has been changed from external
37
 
38
 
1102 tk 39
MIDIboxSID V2.042
40
~~~~~~~~~~~~~~~~~
41
 
42
  o new SysEx commands to support the Lemur Editor
43
 
44
  o MIDI Clock is now optionally sent with the "Out" option of the Ensemble Clk page.
45
 
46
  o default encoder mode is "DETENTED3" now, since it works better for most encoders
47
    available on the market
48
 
49
  o swapped behaviour of ENC speed control: encoder now at fast speed if SHIFT button is pressed
50
 
51
 
1075 tk 52
MIDIboxSID V2.041
53
~~~~~~~~~~~~~~~~~
54
 
55
  o corrected sysex handling for MIOS Studio SysEx Librarian
56
 
57
 
1044 tk 58
MIDIboxSID V2.040
59
~~~~~~~~~~~~~~~~~
44 tk 60
 
1044 tk 61
  o fixed SysEx patch write issue which happened when patches were received
62
    with the common format (e.g. preset patches)
63
 
64
 
65
MIDIboxSID V2.039
66
~~~~~~~~~~~~~~~~~
67
 
68
  o LFO MIDI Clock Sync has been overworked, it now supports 32 different
69
    rates from 16 bars to 1/32 notes including triple and dotted delays!
70
 
71
    If the CSn flag enabled the available rates are:
72
    0=LFO disabled, 8=16 bars, 16=14 bars, 24=12 bars, 32=10 bars,
73
    40=9 bars, 48=8 bars, 56=7 bars, 64=6 bars, 72=5 bars, 80=4 bars,
74
    88=3.5 bars, 96=3 bars, 104=2.5 bars, 112=2 bars, 120=1.5 bars,
75
    128=1 bar, 136=1/2., 144=1/1T, 152=1/2, 160=1/4., 168=1/2T,
76
    176=1/4, 184=1/8., 192=1/4T, 200=1/8, 208=1/16., 216=1/8T,
77
    224=1/16, 232=1/32., 240=1/16T, 248=1/32
78
 
79
    Note that in MIDI Sync mode, the LFO Delay won't work because
80
    the appr. resource is used as MIDI clock counter.
81
 
82
  o current bank and patch number won't be changed anymore on direct RAM
83
    access via SysEx
84
 
85
 
86
MIDIboxSID V2 RC38
87
~~~~~~~~~~~~~~~~~~
88
 
89
  o optimized MBNet Handler for fast external access to SID registers
90
 
91
  o added DEFAULT_CC32_FILTER switch to setup_*.asm - it filters CC#32 for
92
    programs which send this CC always together with CC#0 on bank changes
93
 
94
  o support for "extended SysEx dump" - see also mbsidv2_sysex_implementation.txt
95
 
96
  o filter mode/channel and waveform flags can now be optionally passed to
97
    J5 (configuration has to be done in setup_*.asm file)
98
 
99
  o (only for Multi Engine): "W+16" flag - waveform can be changed from
100
    offset +16 of the wavetable, in combination with another parameter
101
    (such as #249), it's possible to control pitch and waveform from
102
    a single WT track
103
 
104
 
105
MIDIboxSID V2 RC37
106
~~~~~~~~~~~~~~~~~~
107
 
108
  o SW based feedback loops won't lead to endless repeated replies
109
 
110
 
111
MIDIboxSID V2 RC36
112
~~~~~~~~~~~~~~~~~~
113
 
114
  o Bassline engine: detune parameter now mapped to Parameter #003
115
  o a table based calibration table is now provided for the SID filter.
116
    It has to be adapted under src/sid_filter_table.inc and can either be
117
    uploaded together with the firmware build, or separately if by uploading
118
    "sid_filter_table.hex" after the "make" command (type "make sid_filter_table"
119
    to build only this file)
120
    The table can be used to compensate technology related non-linearities
121
    of the 6581 R-2R DAC
122
  o various minor bugfixes
123
 
124
 
125
MIDIboxSID V2 RC35
126
~~~~~~~~~~~~~~~~~~
127
 
128
  o modulation source "KEY" now uses current frequency instead of key number
129
    to consider frequency sweeps correctly
130
  o bugfix for "jump to page" (empty page if current item position outside new page)
131
  o bugfix for knob page (min/max value modified Pa1 if multiple SIDs selected)
132
 
133
 
134
MIDIboxSID V2 RC34
135
~~~~~~~~~~~~~~~~~~
136
 
137
  o fixed race condition in SusKey portamento function
138
  o Note Off keys which are not in the note stack are ignored now
139
  o implemented CC#123 (All Notes Off)
140
    Complies to MIDI spec. Means: only CC#123=0 will unplay all notes,
141
    all other values (1..127) are silently ignored
142
  o new wavetable control function "Key" allows to select a wavetable
143
    step with the currently played note inside the given Begin/End range.
144
    E.g., with Begin=0x00, End=0x7f, KEY=on, Par=200 you are able to
145
    define different ENV1 Decay parameters for each note.
146
    There are much more usecases of course (e.g. different LFO values,
147
    different waveforms, Sync/Ring enable/disable in certain keyranges)
148
    - be creative :)
149
  o Arpeggiator "Easy Chord" function now active in default Lead/Bassline/Multi
150
    patch
151
  o sammichSID: F2 button now jumps to Knob page by default (especially
152
    nice for bassline patches, for other engines the knob assignments
153
    are mostly not preconfigured)
154
  o Multi Engine: Knob parameter #6 and #7 now allow to control CutOff
155
    frequency of left/right channel SID separately. Note that this isn't
156
    consistent to Lead/Bassline assignments, but unfortunately there is
157
    no other possible solution.
158
  o filter page now allows direct L/R channel selection
159
  o the full control surface now handles the first press of Osc Select,
160
    Env Select, LFO Select and Filter Mode/Channel Select as a
161
    "jump to page" function if that page was not displayed, and
162
    thereafter, function as a "change selection" function. Thus
163
    if you are not on the LFO page, pressing LFO Select jumps to
164
    LFO page, and then pressing it again will change the selected LFO.
165
  o this is the christmas edition, therefore the Matrix LEDs are flickering
166
    during startup ;-)
167
 
168
 
169
MIDIboxSID V2 RC33
170
~~~~~~~~~~~~~~~~~~
171
 
172
  o built for MIOS V1.9g (or higher) to support new encoder types.
173
    Rotary encoders won't work with older MIOS versions!
174
    Note that MIOS only has to be updated on the master SID, as encoders
175
    are not connected to SID slaves anyhow.
176
  o a new LED matrix visualisation mode for sammichSID has been added
177
    which is selected with DEFAULT_LEDMATRIX_MODE 2
178
    - Lead and Bassline engine: 6x8 LEDs show VU meters for OSC frequency
179
    - Multi and Drum engine: 6x8 LEDs show animated VU meters for OSC triggers
180
    - ASID player mode: 6x8 LEDs show animated VU meters for OSC triggers
181
  o animated VU meters are a bit faster now
182
  o a special configuration file and prebuilt binary for sammichSID
183
    is now part of the release package -> setup_sammich_sid.hex
184
 
185
 
186
MIDIboxSID V2 RC32
187
~~~~~~~~~~~~~~~~~~
188
 
189
  o fixed strange Oct display output in Bassline Sequence Editor
190
  o added "DEFAULT_ENABLE_UPPER_WAVEFORMS" switch to setup_* files to enable the
191
    selection of additional waveforms for SwinSID
192
  o overworked Meter display mode in Bassline Mode (enjoy the effect! :)
193
  o changed behaviour of Play button: now it plays all SIDs regardless if they
194
    are selected or not.
195
    Dedicated SIDs can be played by pressing & holding the appr. SID buttons
196
    before pressing PLAY
197
 
198
 
199
MIDIboxSID V2 RC31
200
~~~~~~~~~~~~~~~~~~
201
 
202
  o fixed storing ensemble in internal EEPROM if no BankStick selected
203
  o the ensemble stored in internal EEPROM (previously called E001) is now called EInt
204
  o the patch stored in internal EEPROM (previously called [A-H]001) is now called PInt
205
  o EInt now automatically selected after startup if no ensemble BankStick connected
206
  o E002 now automatically selected after startup if EInt was selected before
207
  o fix for communication with Rutger's SysEx editor: mod matrix direct assignments
208
    are handled correctly now in stereo edit mode
209
 
210
 
211
MIDIboxSID V2 RC30
212
~~~~~~~~~~~~~~~~~~
213
 
214
  o fixed OSC button behaviour (OSC selection corrupted on page changes)
215
 
216
 
217
MIDIboxSID V2 RC29
218
~~~~~~~~~~~~~~~~~~
219
 
220
  o fixed CC#07 (now controls volume as intended)
221
  o for 4x20 LCD: MIDI channels and Engines of selected ensemble are displayed at upper line
222
  o OSC button now cycles between 1--, -2-, --3 and 123
223
  o added optional CS_MENU_BUTTON_Arp function, which can be assigned to a button in setup_*.asm
224
 
225
 
226
MIDIboxSID V2 RC28
227
~~~~~~~~~~~~~~~~~~
228
 
229
  o fixed arpeggiator note handling bug
230
  o arpeggiator: the previously hardcoded "experimental arp behaviour" switch is now
231
    available as software controlable switch called "Easy Chord".
232
    It has to be enabled in the ARP menu ("Esy" flag)
233
    Difference compared to normal chord entry: depressed keys will still
234
    be cylced by the arpeggiator until a new key is pressed.
235
    This feature is especially useful when slow arpeggios are played, since
236
    it avoids unintended "long notes" on chord changes.
237
    It is not useful if you intend to play a voice like a common lead instrument,
238
    which should turn into a fast arpeggio when more than one key is played
239
    (in this case, ensure that the "Esy" switch is disabled)
240
  o fixed drum model handling (listen to the drum patches again - they sound much better now :)
241
  o preliminary support for parameter access via 7bit CC
242
    (only available for Lead Engine yet)
243
 
244
 
245
MIDIboxSID V2 RC27
246
~~~~~~~~~~~~~~~~~~
247
 
248
  o Super Poly voice queue now handled centrally from master.
249
    Slaves notes are triggered via MBNet
250
  o SPV value now changed simultaneously for all slaves
251
    It can only be changed if master SID selected
252
  o PLAY button now plays a chord in superpoly mode
253
  o Mod matrix changes forwarded to all selected SIDs
254
 
255
 
256
MIDIboxSID V2 RC26
257
~~~~~~~~~~~~~~~~~~
258
 
259
  o various improvements for Super Poly Mode and SysEx distribution via CAN
260
 
261
 
262
MIDIboxSID V2 RC25
263
~~~~~~~~~~~~~~~~~~
264
 
265
  o improved "SusKey" (fingered portamento) handling
266
 
267
 
268
MIDIboxSID V2 RC24
269
~~~~~~~~~~~~~~~~~~
270
 
271
  o voice allocation of multi engine working again
272
  o Lead engine: MdW (ModWheel) and Key modulation source now provide a value in
273
    positive range only
274
  o overworked oscillator pitch handling: now completely linear frequency
275
    calculations.
276
    Advantages:
277
      - modulation frequency (e.g. LFO vibrato) independent from oscillator frequency
278
      - accurate filter key tracking
279
      - the O2A option (forward pitch to AOUT) doesn't result into out-of-scale
280
        SID frequencies anymore
281
  o the presets under presets/v2_vintage_bank.syx have been overworked according to
282
    the new osc frequency handling
283
 
284
 
285
MIDIboxSID V2 RC23
286
~~~~~~~~~~~~~~~~~~
287
 
288
  o finetune is working properly again
289
 
290
 
291
MIDIboxSID V2 RC22
292
~~~~~~~~~~~~~~~~~~
293
 
294
  o "menu labels" (activated if DEFAULT_LCD_LINES >= 3) now completely implemented
295
  o added keyboard transpose function for bassline sequencer. MIDI channels and
296
    keyboard zones have to be configured for L/R bassline separately with
297
    ensemble instrument 3 and 4. The transposer uses C-3 as base note.
298
    Example configuration:
299
    Ins1 Chn 1 SpL C-3 SpU B-3 Trn 0     L Bassline sequence selected with key C-3..B-3
300
    Ins2 Chn 1 SpL C-4 SpU G-8 Trn 0     R Bassline sequence selected with key C-4..
301
    Ins3 Chn 1 SpL c-2 SpU B-2 Trn +12   L Bassline sequence transposed with lower keys until B-2
302
    Ins4 Chn 1 SpL c-2 SpU B-2 Trn +12   R same as for L
303
    "Trn +12" is required in this setup to compensate the octave range of the transposer
304
    (base note C-3 is outside the selected keyboard zone c-2..B-2)
305
  o bassline and drum sequences not stopped anymore on patch changes
306
  o random generator for bassline O23 settings
307
 
308
 
309
MIDIboxSID V2 RC21
310
~~~~~~~~~~~~~~~~~~
311
 
312
  o added "Log" flag to ENS->FIL menu: cutoff frequency converted through log function
313
    to achieve better linearisation of 8580 filter
314
  o Filter Keytracking parameter now also available for Lead Engine, the scaling has been slightly
315
    changed, so that the maximum value 255 leads to 1:1 tracking (e.g. if 8580 Log function activated,
316
    or an external filter is connected)
317
  o added "DOR" flag to the ENS->SID menu: Disable automatic Oscillator Reset during patch change
318
    could also be called DAORDPC flag ;-)
319
  o MB-6582 setup: swapped page up/down button, added Inc/Dec button function
320
  o support for 4x20 LCD has used for MB-6582: DEFAULT_LCD_LINES and DEFAULT_LCD_LINE_Y* can
321
    be configured in the setup_*.asm file
322
  o MB-6582 screen now centered at 2nd and 3rd line
323
  o if DEFAULT_LCD_LINES >= 3, the name of the menu will be print at the upper line
324
  o if DEFAULT_LCD_LINES >= 4: the value of the currently edited parameter will be displayed
325
    as horizontal bar graph at the lower LCD line
326
    TODO: display bidirectional parameters like "depth" with a left/right splitted graph
327
    TODO: update when a new OSC/Channel/SID is selected
328
  o the "blinking LCD cursor" which was set to the selected parameter position is
329
    disabled by default now (DEFAULT_LCD_PRINT_CURSOR set to 0), since it clashes with
330
    the horizontal bar graph output routine
331
  o added experimental features to bassline engine:
332
    - new menu page O23 which allows to use OSC2 and OSC3 as slave oscillators
333
    - waveforms of slave oscillators can be selected separately
334
    - individual sync and ringmod flags
335
    - individual octavewise transpose
336
    - individual pulsewidth
337
    - optional static note (decoupled from master osc) for nice sync/ringmod effects or chords
338
    - phase offset
339
    - detune
340
    - TODO: Knob assignments and maybe more functions
341
 
342
 
343
MIDIboxSID V2 RC20
344
~~~~~~~~~~~~~~~~~~
345
 
346
  o Multi Engine: arp handler working properly again
347
  o Lead Engine: ENV encoder section working properly again
348
  o increased startup delay, so that slave cores will be found even if no BankStick connected
349
 
350
 
351
MIDIboxSID V2 RC19
352
~~~~~~~~~~~~~~~~~~
353
 
354
  o Enhancements for SysEx Editor
355
    (see also doc/mbsidv2_sysex_implementation.txt)
356
    - introduced <WOPT> function which allows to change parameters of
357
      multiple voices with a single SysEx command
358
    - introduced <sids> selection which allows to access slave SIDs
359
      via master SID (command 0C 00 <sids>)
360
    - added SysEx command for all notes/sequences off (command 0C 08)
361
    - added SysEx command to play the current patch (command 0C 09 [<ins>])
362
      Note: for proper handling of <ins>, separate keyboard zones or MIDI channels
363
      for multi instruments are currently required - this is no bug,
364
      but just an imperfection (I was too lazy to overwork SID_PATCH_NotesOn yet)
365
  o parameter assignment/patch/bank selection: "big message" now displayed
366
    immediately when menu item has been selected
367
  o The "note off" function of the SHIFT menu now works as "Note On/Off" (called "Ply")
368
    This function is intended as replacement for the optional Play button
369
    Patch will be played/stopped on all selected SIDs
370
  o Removed button combination "SIDx+MENU" (which was previously used for Play function)
371
    This combination could get a different purpose on future
372
  o LFOs and ENVs of right channel bassline working properly again
373
  o AOUT_LC driver now supports 12/12/8 resolution (requires 4 combined 74HC595)
374
 
375
 
376
MIDIboxSID V2 RC18
377
~~~~~~~~~~~~~~~~~~
378
 
379
  o modulation matrix: comparison operators >, < and = now return 0 instead
380
    of full negative value if comparison is false
381
  o changed SusKey handling, so that it also works in Mono mode (previously
382
    it was only working in Legato mode)
383
  o SusKey and Legato flags now accessible in Bassline CFG menu
384
  o Individual Attack/Decay/Release Curve assignments now accessible in
385
    Multi/Bassline ENV menu
386
  o Trigger Matrix: since the BPM clock generator concept has been changed in
387
    one of the previous releases, we now have a Clk/6 and Clk/24 trigger instead
388
    of Clk/4 and Clk/16
389
  o LFO and ENV MIDI sync working properly again
390
  o portamento omitted after patch change when first key is played
391
 
392
 
393
MIDIboxSID V2 RC17
394
~~~~~~~~~~~~~~~~~~
395
 
396
  o switched from MPASM to gpasm
397
    code now under version control (SVN)
398
 
399
 
400
MIDIboxSID V2 RC16
401
~~~~~~~~~~~~~~~~~~
402
 
403
  o "ENV Misc" layer added for MB6582 Control Surface
404
  o SIDPlayer: lower line now always cleared when new LCD message
405
    is sent by host
406
  o changed encoder speed behaviour: values incremented fast by
407
    default now. Incrementer is slowed down by pressing the SHIFT button
408
    (previously it was the opposite behaviour)
409
 
410
 
411
MIDIboxSID V2 RC15
412
~~~~~~~~~~~~~~~~~~
413
 
414
  o improved FIP function (linear interpolation of filter cutoff) - it
415
    is working now the same way as implemented in MIDIbox CV
416
  o F2A and V2A flags moved to new storage position in ensemble - old
417
    ensemble setups (where F2A and/or V2A was set) have to be adapted!
418
  o added new AOUT forwarding functions:
419
     - P2A (Pulsewidth-to-AOUT)
420
     - K2A (Key-to-AOUT)
421
     - O2A (Oscillator Frequency-to-AOUT)
422
    Channel assignments have to be adapted in setup_*.asm - all channels
423
    are disabled by default
424
  o added functions to forward the 6 gates/slide/accent signals to the
425
    digital outputs at J5. Assignments have to be configured in the
426
    setup_*.asm file.
427
    Note that DEFAULT_J5_FUNCTION has to be set to 3 in order to
428
    enable the digital output function of CORE:J5
429
 
430
 
431
MIDIboxSID V2 RC14
432
~~~~~~~~~~~~~~~~~~
433
 
434
  o BankStick write via SysEx now gracefully aborted if only 32k BankStick
435
    is addressed and patch number >= 065
436
    SysEx error number 0x11 ("BankStick too small") will be returned in this case
437
  o the "send dump" function of the "shift menu" now sends the edit buffer
438
    of the selected SID, which also includes the corresponding device ID.
439
    BankStick content won't be overwritten if such a dump is sent back.
440
  o menu page automatically changed to the previous selection if SID master
441
    or slave selected which is running with a different engine
442
 
443
 
444
MIDIboxSID V2 RC13
445
~~~~~~~~~~~~~~~~~~
446
 
447
  o multi engine: improved approach for routing LFOs to filters (only
448
    LFO of last assigned voice will be used for more predictable results)
449
  o reduced intensity of LFO pitch modulation for multi and bassline engine
450
    (Lead engine: intensity can be reduced by decreasing the depth
451
    of the modulation path)
452
  o 8 external switches can now be connected to
453
     - DOUT shift register (-> DEFAULT_EXT_SWITCH_DOUT != 0)
454
     - port J5 of the core mode (-> DEFAULT_J5_FUNCTION == 3)
455
    The switch states are stored in the patch structure, and
456
    can be accessed via Control Surface (EXT menu) or via Parameter Change
457
    (NRPNs/Knobs/Wavetables)
458
  o support for dumping ensembles via SysEx
459
  o the SysEx structures are now completely documented under
460
    doc/mbsidv2_sysex_implementation.txt
461
 
462
 
463
MIDIboxSID V2.0 Initial Beta History (RC13)
464
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
465
 
44 tk 466
   o created patch structure for Lead engine
467
   o removed old sound engine, the new one will be built up from scratch
468
   o overworked control surface handler - now we can control left and
379 tk 469
     right SID channel separately (or together)
44 tk 470
   o press and hold LINK button to select the SID channel (left/right) with GP button #1
471
   o this menu also allows to send a patch via SysEx
472
   o new patches can now also be received - this is important during
473
     development phase to store/restore sound patches via MIDI-Ox
474
   o Portamento effect implemented - "normal" and "constant time glide" CTG
475
     CTG can be selected in the OSC menu (PMd item)
476
   o A third portamento effect implemented: Glissando (PMd item: "Gls")
477
   o SusKey and Legato implemented (-> CFG menu)
478
   o LFO implemented - in addition to Sine/Triangle/Saw/Pulse/Random
479
     now also "Positive" Sine/Triangle/Saw/Pulse is available - they
480
     can be inverted with negative depth
481
   o menu items with toggle function now never go into "entry" mode
482
     where parameter has to be modified with datawheel - this is for
483
     faster usage
484
   o implemented modulation matrix:
485
     - there are 8 modulation paths
486
     - each path has two sources: ENV1..2, LFO1..LFO6, Constant 0-127 - much more will be added later
487
     - an operation parameter is available for each path:
488
       SRC1 only, SRC2 only, SRC1+SRC2, SRC1-SRC2, SRC1*SRC2, XOR, OR, AND, MIN, MAX, 1<2, 1>2, 1=2)
489
     - a depth parameter is available for each path
490
     - paths can be routed to Pitch Voice 1/2/3, Pulsewidth Voice 1/2/3,
379 tk 491
       Filter and Volume of left/right SID separately
44 tk 492
     - in addition they can be routed to 2 individual targets
493
       LFO1-6 Rate, LFO1-6 Depth
494
       More (e.g. ENV parameters) will be added later
495
     - Target 1/Left Channel and Target 2/Right Channel subpath can
496
       be inverted for simple stereo effects
497
   o added pulsewidth as modulation target
498
   o ENV implemented - it provides the parameters
499
     Attack1/ALevel/Attack2/Decay1/DecayLevel/Decay2/Sustain/Release1/
500
     ReleaseLevel/Release2 + Curve for Attack/Decay/Release phase
501
   o added filter as modulation target
502
   o filter of both SIDs now calibratable, settings stored in internal EEPROM
503
   o mod matrix + meter display working
504
   o init patch function implemented (press & hold LINK button)
505
   o random function implemented (press & hold LINK button)
506
   o added LFO Rate and Depth as modulation target
507
   o the sound won't stop anymore if a note is played during the
508
     patch is changed/initialized/randomized - instead, the new sound
509
     will be played
510
   o support for slave SIDs (access via MBNet)
511
   o new operations: 1<2, 1>2, 1=2
512
   o added Volume 1/2 as modulation target
513
   o Note, LFO and ENV delay implemented
514
     LFO delay and phase only takes effect when sync flag set (not freerunning)
515
   o LFO oneshot mode implemented
516
   o implemented global clock generator
517
     Since there is no free timer resource, it's realized as a clock
518
     divider, which is incremented on each update cycle (819.2 uS)
519
     A clock event will be trigger each time the clock divider value
520
     has been reached.
521
     Div=1 -> event all 1*819.2 uS
522
     Div=2 -> event all 2*819.2 uS = 1.6 mS
523
     Div=3 -> event all 3*819.2 uS = 2.5 mS
524
     etc...
525
   o optionally the clock generator can be used as MIDI clock receiver
526
     (Mod: Slv) - the MIDI clock can be divided as well
527
     Div=3  -> event all 32th notes
528
     Div=6  -> event all 16th notes
529
     Div=12 -> event all 8th notes
530
     Div=24 -> event all 4th notes
531
     etc...
532
   o "Mod: Auto" not implemented yet - should switch automatically to
533
     slave mode when a MIDI clock is received
534
   o implementation of Arpeggiator has started
379 tk 535
     it is located in a separate menu now
44 tk 536
     each voice has its own arpeggiator with own parameter sets (!)
537
     it's clocked by the global clock generator
538
     Spd divides the global clock again
539
     GLn (Gatelength) defines, at which clock between 1 and Spd the
540
       gate will be released
541
     Rng defines the octave range
542
   o Arp: added Up/Down/U&D/D&U/UD2/DU2/Random direction
543
   o Arp: added Sorted mode
544
   o Arp: added Hold mode
545
   o Arp: added "sync divider" mode
546
     - if disabled, the clock divider will be reset with a new chord, so
547
       that the arp starts immediately - perfect for live playing
548
     - if enabled, the clock divider won't be reset, so that it is always
549
       in synch with the global clock generator - perfect for MIDI slave mode
550
   o "Constant Arp Cycle" implemented
551
   o Velocity, Aftertouch, PitchBend, Keynumber, Knob #1-5 now
552
     available as modulation source
553
   o Knobs controllable via CC
554
     - Knob #1 assigned to CC#1 (ModWheel)
555
     - Knob #2-5 assigned to CC#16-19
556
   o Modulation parameters for Knobs (and Velocity=K#V,
557
     Aftertouch=K#A, PitchBender=K#P) are set within the Min/Max
558
     boundaries, which can now be edited in the new KNB menu page
559
     Note that sweeps from -128..127 and 127..-128 (swapped) are
560
     provided
561
   o Knob#1-Knob#5 now controllable directly from the CS Step C
562
     with the 5 rotary encoders of the oscillator section (select
563
     "Assign" layer)
564
   o removed "Balance" parameter, as it is redundant
565
     Can be realized with:
566
     MOD SRC1:K#1 In1:*, In2:o, Dep:127, Vol: L/R
567
   o support for AOUT/AOUT_LC
568
     - offset values (12 bit, 000-FFF) can be configured in new EXT menu
569
   o note: EXT (external) could also be read as "extension", because it
570
     the 12bit values could also be used for different purposes ("custom
571
     values")
572
   o implementation of trigger matrix
573
     It consist of 16 sources and 24 targets
574
     Sources are:
575
       Note On, Note Off, ENV1/2 Decay Phase, ENV1/2 Sustain Phase,
576
       LFO1-6 Period, Clock, Clock/4, Clock/16, MIDI Start
577
     Targets are:
578
       OSC1-3 L/R Gate (6 targets), ENV1/2 Attack, ENV1/2 Release,
579
       LFO1-6 Restart, Wavetable 1-4 Reset, Wavetable 1-4 Step
580
   o Trigger matrix connections can be configured in new TRG menu
581
   o Note that old patches have to be adapted the following way:
582
       - Note On: all 6 gates and ENV1/2 attack phase have to be assigned
583
       - Note Off: all 6 gates and ENV1/2 release phase have to be assigned
584
       - MIDI Start: ENV1/2 Attack and LFO 1-6 have to be assigned
585
       - the formerly LFO sync flag has now a new location in the trigger
586
         matrix. It has to be assigned in the Note On source. This can
587
         also be done from the LFO menu (shortcut for this TRG matrix connection)
588
   o Example 1 - LFO Chain:
589
     Assign all LFOs to OSC Pitch
590
     All LFOs in Oneshot Mode
591
     Use different LFO rates and depths
592
     Enable following Trigger connections:
593
        Note On->L1
594
        L1P -> L2
595
        L2P -> L3
596
        L3P -> L4
597
        L4P -> L5
598
        L5P -> L6
599
        L6P -> L1
600
   o Example 2 - ENV Retrigger via LFO1:
601
     Assign ENV1 to OSC Pitch
602
     Disable the Note On -> E1A connection
603
     Enable the LFO1 -> E1A connection
604
     Try different LFO1 rates and ENV A/D/S rates
605
   o Example 3 - Note Retrigger via LFO1:
606
     Enable the LFO1 -> O1L and O1R connection
607
     Try different LFO1 rates
608
     Try different OSC ADSR values (e.g. A=8, D=5, S=0, R=0) - remind the ADSR bug! :-/
609
     Try also different Delays between Left and Right SID
610
   o Example 4 - Simple ENV loop:
611
     Enable the E1S -> E1A connection
612
     Now ENV1 will loop between the attack and sustain phase
613
  o new button functions:
614
      - Link button now controls SHIFT function (and displays CFG page)
615
      - CC button now used as Page Up function (increments OSC/LFO/ENV/MOD/TRG/KNB depending on menu)
616
      - Edit button now used as Page Down function (increments OSC/LFO/ENV/MOD/TRG/KNB depending on menu)
617
      - Page Up/Down + datawheel (main encoder) allows to change the page via encoder
618
      - CC can be activated by pressing SHIFT+CC
619
      - Edit can be activated by pressing SHIFT+EDIT
620
      - SHIFT+E1/E2/L1..L6 button branches to the Envelope/LFO menu
621
  o SHIFT button now increases the speed of rotary encoders
622
  o added phase offset synchronisation feature
623
    Phases of the oscillators can be shifted in 0.4% steps!
624
    There is only one global phase available, which can be configured
625
    in the OSC menu. If != 0, the value specifies the phase offset
626
    between OSC1->OSC2 and OSC2->OSC3
627
  o added F2A (Filter to AOUT) function which allows to forward
628
    CutOff/Resonance to 4 AOUT channels (assignments are defined in setup_*.asm)
629
  o implemented knob parameters:
630
    - list of parameters can be found in mbsidv2_parameter_chart.txt
631
    - note that some parameters are not really suitable for live
632
      control - the table has been prepared for the WT handler, which
633
      will use the same parameter set
634
    - two different parameters can be assigned to a knob
635
    - the LCD shows the parameter in long format when the assignment is changed
636
      (selecting the item with a button does not already show the long format.
637
       I tried this, but the behaviour was too confusing... - you need to move
638
       the encoder to see the purpose of the value)
639
    - the handler automatically scales the knob value to the range of the
640
      target parameter. Regardless if a 4bit or a 12bit value should be controlled,
641
      the whole knob range from 0..255 will always be used
642
    - in addition, the knob range can be scaled a second time from a
643
      min to a max value
644
    - The formula:
645
         resulting parameter value = scale1(scale2(knob value))
646
      where scale2() scales over the specified min/max range
647
      and scale1() scales over the parameter range
648
    - Sounds confusing? Try this: Min=104, Max=152, Pa1=36 (Transpose OSC123)
649
      This will modify the 7bit value transpose from -12 to +12 notes
650
      (*2 because it's transposed from a 8bit value)
651
      Resp.: 128 +/- (2*12)
652
    - note that knob changes are non-destructive!
653
      This means: changing a parameter will not change the original value.
654
      Accordingly the value visible in the CS menu will stay the same.
655
      This is especially required to ensure, that changes made with knobs
656
      are really temporary and won't be stored with the "patch save" function.
657
    - OSC/Filter parameter changes are always applied on both SID channels.
379 tk 658
      Offset calculations are done separately
44 tk 659
    - TODO: "reset original value" function, accessible from the CFG menu,
660
      to remove the offsets from the original parameter values
661
  o implemented wavetable handler:
379 tk 662
    - there is a WTC (Wavetable Configuration) and a separate WTE
44 tk 663
     (Wavetable Edit) menu for easier navigation
664
    - it is possible to jump from WTC to WTE and back (last menu item)
665
    - WTC provides four different wavesets.
666
      You can specify a parameter, SID L/R, Speed (Clock Divider for
667
      clock events coming from the trigger matrix),
668
      begin, end and loop position (with optional oneshot mode) within wavetable
669
    - WTE allows to edit the wavetable like known from MBSID V1
670
      Even Notes and ARPs can be played :)
671
    - WTE value display can be changed between Hex/Dec view
672
    - wavetable values are forwarded to MOD matrix as additional sources
673
    - the wavetable pointer can be optionally controlled from the
674
      modulation matrix. For this, the "MOD" flag has to be set in
675
      the WTC menu. In this mode, the clock divider and loop pointer
676
      don't play a role anymore. WT1-WT4 are available as modulation
677
      target, the pointer is swept between the begin and end range.
678
      Try to control the position with a LFO or an Envelope or the
679
      velocity, and have fun! :)
680
  o there is now a new random generator menu which allows to randomize
379 tk 681
    different sections of a patch separately
44 tk 682
  o LFOs and ENVs can now be synchronized to the global clock (CSn flag)
683
    This clock is quadrubled to achieve better resolutions when it is
684
    synchronized to MIDI
685
    With Div=3, the LFO/ENV will be clocked 4 times for each 32th note,
686
    8 times for each 16th, 128 times for each measure...
687
 
688
    There are predefined rates for MIDI clock synchronisation, which
689
    can be selected in the LFO page when CSn is enabled
690
    They are starting at rate=245:
691
    64/1, 32/1, 16/1, 8/1, 4/1, 2/1, 1/1, 3/4, 1/2, 1/4, 1/16
692
 
693
  o BankStick support
694
    a 64k BS can store 127 patches, a 32k BS only 63 patches
695
    The BS size will be detected automatically during formatting
696
  o a "detune" parameter has been added to the CFG menu. It
697
    modifies the finetune of all oscillators
698
  o added GAE (gate always active) function - once set, the gate
699
    will never be released anymore. Instead, the voice volume has
700
    to be lowered externally or with a filter
701
  o added ABW (ADSR bug workaround) flag
702
    It adds an additional delay before the gate is activated.
703
    During this time, the ADSR registers are zeroed to ensure that
704
    the envelope has reached its final level before it will be
705
    triggered again.
706
    If you still notice ADSR hickups with a special configuration,
707
    just increase the ADSR delay in the OSC menu
708
    Note that the delay needs to be compensated from your sequencer.
709
    This feature is experimental and not suitable for live playing
710
  o the Env Ctrl button doesn't change the menu anymore
711
    so that the 5 rotary encoders of the ENV section can be used to
712
    change the currently visible menu items on a more confortable way
713
  o added V2A (Volume to AOUT) function which allows to forward
714
    the modulated volumes to 2 AOUT channels (assignments are defined in setup_*.asm)
715
    The internal volume is set to maximum if the V2A switch is enabled
716
  o added ARP oneshot mode
717
  o pitch (controlled by pitchbender) got a special parameter number: 80 dec, 0x50 hex
718
  o slave cloning function implemented
719
    press and hold the MENU button during boot to transfer the firmware
720
    of the master to all slaves via the CAN interface
721
    This procedure takes ca. 30 seconds, some messages will be print
722
    on screen (if not, something is wrong with the MENU button detection -
723
    please inform me in this case)
379 tk 724
  o preparation for multiple engines: separated SID_SE and CS_MENU_TABLE parts
44 tk 725
  o started with multi engine
726
  o implemented ensemble functions, so that different channels and
727
    keyboard splitzones can be assigned to multi channel instruments
728
    an ensemble contains for each master/slave MBSID:
729
    - Bank/Pattern/Flags (like V2A, F2A)
730
    - Global Clock Generator settings
731
    - Filter calibration values (Min/Max) for left/right channel
732
    - the setup for 6 instruments (channel, splitzone, transpose)
733
  o the new ensemble menu page can be entered from the main menu:
734
    - press the leftmost select button below the LCD to enter ensemble menu
735
    - press any other select button below the LCD to enter the patch menu
736
  o up to 128 ensembles can be stored in a BankStick (only 32k allocated,
737
    so it doesn't matter if a 32k or 64k BankStick is used)
738
  o first beta release :)
739
  o there is now a S&H (Sample & Hold) operator available in the
740
    modmatrix which samples SRC1 whenever SRC2 changes from a negative
741
    to a positive value
742
  o an incoming patch or bank change request doesn't update the
743
    the patch anymore if it was already selected before. This is to avoid
744
    "glitches" when a sequencer sends a program change shortly before
745
    a note is played.
746
  o the "Knobs" are sending CC values now when the CC function is
747
    activated (press SHIFT + Page Up/CC Button to toggle this mode)
748
    Other parameters are still not sending CCs over MIDI, as NRPNs
749
    are not implemented yet (low priority)
750
    The CC numbers are 1 for Knob #1 (Modulation wheel), and 16/17/18/19
751
    for Knob #2-#5 (GP values)
752
    In addition, Knob #P sends Pitchwheel Events in CC mode
753
  o support for analog inputs (J5:A0..A4)
754
    This feature has to be enabled in the setup_*.asm file by setting DEFAULT_J5_FUNCTION to 1
755
    Conversion results of the analog inputs are directly passed to the knob handler.
756
    This generic approach has the advantage, that it is possible to control 5*2 parameters
757
    within a specified Min/Max range, and that in addition the analog values are available
758
    as modulation source within the modulation matrix (K#1..K#5)
759
 
760
    The feature behaves differently on master and slaves:
761
    Master: analog inputs are forwarded to the selected SIDs - use this
762
            option as replacement for rotary encoders, or for adding
763
            analog control elements like pots/faders/joysticks to your CS
764
    Slave: analog inputs are only handled internally - use this option
765
           for modulation with analog signal generators
766
  o added "Notes Off" function to the SHIFT page (replaces Random
379 tk 767
    function which has a separate menu page anyhow)
44 tk 768
  o implemented bassline engine
769
  o support for AOUT_NG module
770
  o integrated support for ASID protocol, which has been originally
771
    developed for the SIDstation to replay .sid files.
772
    (see also http://www.midibox.org/forum/index.php?topic=2038.0)
773
    Only the master core (Device ID 00) will play SID tunes!
774
    Nice visual effect: the LED matrix of the CS shows three animated
775
    meters whenever a gate flag of an oscillator is set.
776
    SID player mode is automatically enabled once an ASID stream is
777
    received. It can be exit by stopping the player on the PC, and
778
    pressing the MENU button
779
 
780
    Unfortunately it turned out, that there is currently no SID player
781
    available which can replay .sid files properly via MIDI.
782
 
783
    - SIDplay (http://www.d.kth.se/~d93-alo/c64/spw/sidplayw.html)
784
      Perfect integration, but plays tunes too fast under WinXP.
785
      Works fine under Win95/Win98/WinME. Not tested under Vista
786
    - ASID (http://www.sidstation.com/sidsupport.php)
787
      Crashes under WinXP once the tune should be played
788
    - ASID XP (http://www.sidstation.com/files/asid_xp_1.0.zip)
789
      Tunes played correctly, but the MIDI stream is corrupted at
790
      the very beginning when the player is started. Accordingly the
791
      sounds are not properly initialized.
792
 
793
    Workaround: start a tune with SIDplay (for proper sound
794
    initialisation), thereafter play it with ASID XP
795
  o resonance now editable with 8bit resolution (only applicable for F2A option)
796
  o implemented global BPM generator, which replaces the global clock divider
797
    for more consistent clock handling
798
    Now it doesn't make a difference anymore, if MBSID receives a
799
    clock at a certain BPM, or if it generates it internally
800
  o support for sustain CC#64 (if CC value >= 0x40, notes will be
801
    held, with CC value < 0x40, notes will be released)
802
    Currently only supported for lead engine!
803
  o drum engine implemented
804
  o meter mode now also supported for multi/bassline/drum engine
805
  o superpoly function implemented for lead engine (experimental!)
806
  o various improvements for drum sequence editing:
807
    - cursor now controlled with encoder
808
    - the "<" function has been replaced by a rotate function, which
809
      allows you to scroll the pattern left/right
810
    - the ">" function has been replaced by a direct shortcut to
811
      the DRM menu page - the instrument number will be set
812
      automatically according to the selected track
813
    - the mod target buttons (named with E1/E2/L1/...L6) now
814
      change to the track editor, and select the appr. track (1-8)
815
  o implemented MIDI Clock Master/Slave Auto Detection
816
  o bassline/drum sequences now stopped when a MIDI Clock Stop
817
    event has been received
818
  o bassline/drum sequences now started when a MIDI Clock Start or
819
    Continue event has been received
820
  o improved "play button" function (e.g. only selected instruments
821
    played, selected drum is triggered, etc...)
822
  o support for "Sync" button (it just jumps into the ENS->CLK
823
    menu for Master/Slave/Auto mode and BPM selection)
824
  o support for full parameter access via NRPNs
825
    see mbsidv2_parameter_chart.txt for details
826
  o possibilities to select a patch:
827
      - moving datawheel in main screen (as before)
828
      - using Page Up/Down button in main screen and patch main menu
829
      - selecting bank and patch in the ENS->SID menu
830
  o possibilities to select an ensemble:
831
      - pressing MENU + moving datawheel in main screen
832
      - using MENU + Page Up/Down button in main screen
833
      - using Page Up/Down button in ENS menu
834
  o ensemble can now be initialised with preset (-> go into ENS
835
    menu, press SHIFT button, select "Ini.Ens" option)
836
    Note that Patch and Bank settings won't be touched by
837
    this initialisation!
838
  o there is now a new EXT page within the ensemble menu which
839
    contains following options:
840
       - F2A (Filter-to-Analog): was previously located in SID menu
841
       - V2A (Volume-to-Analog): was previously located in SID menu
842
       - Iv1..Iv8: inversion of output voltage at channel #1..#8
843
  o added optional FIP option (Filter Interpolation) which smoothes
844
    CutOff changes. It is especially useful when CutOff is changed
845
    via CC (-> low resolution) to reduce the steppyness.
846
    The option is not useful when the CutOff parameter is modulated from
847
    a fast LFO or envelope (on the other hand: it produces interesting
848
    effects in such cases ;-)
302 tk 849
 
850
 
851
 
852
 
1044 tk 853
--------------------------------------------------------------------------------
854
--------------------------------------------------------------------------------
855
--------------------------------------------------------------------------------
302 tk 856
 
857
 
44 tk 858
MEMO:
859
  - in Bassline mode, CCs could control individual knob parameters for
860
    left/right channel by using the "current" assignment, and selecting
861
    the instrument (L-, -R or LR) via different sets of CC
862
 
863
  - a solution has to be found for bassline mode, how values changed
864
    via knobs should be properly forwarded to the edit patch storage
865
    for consistent value sets
866
    As this method has advantages and disadvantages (e.g. destructive
867
    changes in the edit patch are mostly NOT wanted!), maybe a soft-option
868
    could be provided (but I'm sure, that most people would disable it
869
    quickly once they noticed the disadvantages)
870
 
871
  - There is currently a "Notes Off" in the Shift menu which allows to
872
    turn off all notes of the selected SID(s)
873
    For more comfort, it could make sense to send this command too all
874
    SIDs independent from the SID selection
875
    In addition, a "Note On" (Play) command could also be placed into
876
    the Shift menu - but where? (maybe as replacement for Init Patch,
877
    as a patch can also be initialized by changing the engine)
878
 
879
  - drum engine mode: additional parameter for WT table offset?
880
 
881
  - individual copy/paste/clr function for drum instruments?
882
 
883
  - individual save function for instruments (for all engines)
884
 
885
  - selection of bank/patch within same screen in ENS->SID->Bnk/Pat page
886
 
887
  - if multiple SIDs with different engines are connected, the
888
    performed CS modifications (button/encoder turns) can result into
889
    a big mess. A fix isn't so easy (easiest but inconsistent solution: the
890
    master has to remember the engines of SID1..4 in order to decide,
891
    if a parameter is allowed for beeing sent)
892
 
893
  - theoretically it could be possible to modulate 8 of 256 sound
894
    parameters (which are normaly only accessible via knobs, WT or NRPN)
895
    from the modulation pathes (e.g. envelope or LFO source) by providing
896
    a special EXT -> Par (AOUT Value -> Sound Parameter) routing.
897
    Since 8 EXT values are available with 12bit resolution, this should
898
    be sufficient for most cases.
899
    The AOUT option wouldn't be available in such a mode...
900
 
901
  - the external switches could be optionally triggered by notes, or
902
    maybe better: reflect the gate of ENV1 and/or ENV2 which is used to switch
903
    between attack/decay/sustain and release phase
904
    This would be a quite useful function for external ADSR generators
905
    Problem: which possibilities are really required, how should it
906
    behave for the different engines, how should it be configured? Within ensemble?
907
 
292 tk 908
  - a switch which disables the menu jumping when an encoder has been moved
909
    has been requested from multiple users meanwhile
910
 
911
  - a switch which swaps the encoder speed selection: slow by default, fast
912
    if SHIFT button pressed
913
 
745 tk 914
  - add Display the state of OSC1 arp on a custom LED
915
    (pendant to CS_MENU_BUTTON_Arp button function)
836 tk 916
 
869 tk 917
  - The WT "key" control feature could alternatively start a (short) sequence
918
    instead of only selecting a single WT position.
919
    This would allow to embedd multiple WT sounds (e.g. drums) into a patch,
920
    and to select them with the note number (especially nice for multi patches)
921
 
933 tk 922
-------------------------------------------------------------------------
923
Wilba wrote:
924
Starting with a completely init ensemble, init patch... turn on arp for osc 1, sort on,
925
 
926
dir up, range 1, play C3 E3 G3 => loop { C3 E3 G3 }   (good)
927
dir down, range 1, play C3 E3 G3 => loop { G3 E3 C3 }   (good)
928
 
929
dir up, range 2, play C3 E3 G3 => loop { C3 E3 G3 C4 E4 G4 }   (good)
930
dir down, range 2, play C3 E3 G3 => loop { C3 G3 E3 C4 G4 E4 }   (wtf? i expected loop { G4 E4 C4 G3 E3 C3 } )
931
 
932
This continues in a strange way if you add more notes:
933
dir down, range 2, play C3 E3 G3 A3 => loop { C3 A3 G3 E3 C4 A4 G4 E4 }   (wtf?)
934
 
935
anyway... I was expecting that the range parameter is always positive octaves, i.e. you will get the notes repeated with a +12 semitone transpose, and if you happen to play notes more spaced than 12 semitones then I wouldn't expect it to do anything fancy to avoid a sequence which is not an ordered "note number"
936
i.e. dir up, range 2, play C3 C4 C5 => loop ( C3 C4 C5 C4 C5 C6 ) no problem for me ;-)
937
 
938
but when using down direction and range > 1, shouldn't it be the exact inverse of what you would get for up direction and range > 1?
939
-------------------------------------------------------------------------
966 tk 940
 
941
  - additional LFO MIDI sync values: 1/4T 1/8T 1/16T... and 1/2P 1/4P, ...
1027 tk 942
 
943
-------------------------------------------------------------------------
944
Florian wrote:
945
when using bassline seq, if i sequence a c, it will run the first pattern ok.
946
So on a 16 step pattern on the md, i put a c on the first step, and a 4/4beat.
947
But if i say to the md roll on now on the 2 first step by changing the pattern lenght, the bassline seq continue is run even if the c is retrigerred which could be a cool thing, but can too do some desync if in fact i don't tell the md to re-go to 16 step perfectly in sync. So is there a way to force the sid seq to began at the beginnig of the pattern each time the c is trigerred???
948
-------------------------------------------------------------------------
1073 tk 949
 
950
Send MIDI Clock
951
 
952
-------------------------------------------------------------------------