Subversion Repositories svn.mios

Rev

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