Subversion Repositories svn.mios

Rev

Rev 1228 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1096 tk 1
HEADER 3 ChangeLog of MIDIbox NG
2
 
3
<CENTER><H1>MIDIbox NG Change Log</H1></CENTER>
1231 tk 4
<CENTER><H3>Last Release: 2018-03-04</H3></CENTER>
1096 tk 5
 
6
<P CLASS=DESC>Current firmware, schematics, additional infos are located at <A HREF="midibox_ng.html">http://www.uCApps.de/midibox_ng.html</A>.</P>
7
 
8
<IMG SRC="images/1x1dot.gif" height=10 ALT=""><BR>
9
 
10
<UL CLASS=CL>
11
 
12
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
1231 tk 13
<LI><I>V1.036</I>
14
  <UL CLASS=CL>
15
   <LI> new .NGR script command: send_seq (see cfg/test/seq* examples)
16
 
17
   <LI> added new MIDI event types: Clock, Start, Stop, Cont
18
 
19
   <LI> added new meta events to control a MIDI clock divider:<BR>
20
     MClkSetDivider, MClkDecDivider, MClkIncDivider
21
 
22
   <LI> added new .NGC file configuration parameters:<BR>
23
     MidiClkOutPorts and MidiClkInPorts
24
 
25
   <LI> new LCD format character '%L' allows to display logic control digits
26
     (MTC and status digits)
27
 
28
   <LI> added new .NGR commands SET_KB_TRANSPOSE and SET_KB_VELOCITY_MAP.
29
     The configuration example can be found under cfg/tests/kb_6.ng*
30
 
31
   <LI> encoder absolute mode: negative ranges are now handled correctly
32
 
33
   <LI> .NGR LCD command: %d outputs the ^value
34
  </UL>
35
</LI>
36
 
37
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
1228 tk 38
<LI><I>V1.035</I>
39
  <UL CLASS=CL>
40
   <LI> Support for secure keyboard handling if patch is switched: keep original
41
     MIDI port, note, channel when playing Note Off
42
     (this feature is not supported for LPC17 due to high memory consumption)
43
 
44
    <LI> Fixed encoder incrementer in absolute mode
45
  </UL>
46
</LI>
47
 
48
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
49
<LI><I>V1.034</I>
50
  <UL CLASS=CL>
51
   <LI> Support for interpolation tables:<BR>
52
     MAPs can now apply linear interpolation between data points.<BR>
53
     This allows to quickly define curves without the need to enter the values for the complete range.
54
     E.g. previously it was required to enter 128 values to create a curve for a CC controller,
55
     now it's mostly sufficient to define the same with 3..4 data points. MBNG will interpolate
56
     the values between these points.<BR>
57
 
58
     Interpolation tables can be defined with following commands:
59
     MAP&lt;n&gt;/BYTEI and MAP&lt;n&gt;/HWORDI<BR>
60
 
61
     A BYTEI map can define up to 64 datapoints with 8bit resultion,
62
     and a HWORDI map can define up to 32 datapoints with 16bit resolution.<BR>
63
 
64
     Usage examples can be found under cfg/test/map* and cfg/test/kb_2.ngc<BR>
65
 
66
     See the user manual for further explanations.
67
 
68
   <LI> Support for 16bit maps: with MAP&lt;n&gt;/HWORD 16bit values can be mapped.
69
 
70
   <LI> label "std_rgbled" renamed to "std_rgb" to avoid error message
71
 
72
   <LI> Cursor handling on SysEx based GLCD output should now work correctly if the big font is activated
73
  </UL>
74
</LI>
75
 
76
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
1200 tk 77
<LI><I>V1.033</I>
78
  <UL CLASS=CL>
79
   <LI> with this release, .NGR scripts running on a STM32F4 are directly executed from RAM in a compressed
80
     format, and therefore they are significantly faster, so that they could even be used for timing
81
     critical operations.</LI>
82
 
83
   <LI> added basic support for SPI_MIDI<BR>
84
     This feature requires an update to MIOS32 bootloader v1.018<BR>
85
     In the bootloader update app, enter "set spi_midi 1" to enable the SPI MIDI device at J16 (RC2 chip select line).
86
     This will also disable the OSC ports via MBHP_ETH module, which is normally connected to this port.</LI>
87
 
88
   <LI> support for WS2812 LED strips (currently only for the MBHP_CORE_STM32F4 module).<BR>
89
     The data input has to be connected to J4B.SC, ground to J4B.VS and +5V to an external PSU (required, since
90
     each RGB LED can consume up to 20 mA!)<BR>
91
 
92
     Following meta event commands are available:
93
     <UL CLASS=CL>
94
       <LI> RgbLedClearAll (clears all LEDs)
95
       <LI> RgbLedSetRgb:&lt;led&gt;:&lt;r&gt;:&lt;g&gt;:&lt;b&gt; (led=1..64, r/g/b=0..255)
96
       <LI> RgbLedSetHsv:&lt;led&gt;:&lt;h&gt;:&lt;s&gt;:&lt;v&gt; (led=1..64, h=0..359, s=0..100, v=0..100)
97
       <LI> RgbLedRainbow:&lt;speed&gt;:&lt;brightness&gt; (speed=1..255, brightness=0..100)
98
    </UL>
99
 
100
    Most simple way to test a LED strip: enter following command in MIOS Terminal<BR>
101
       ngr exec_meta RgbLedRainbow:9:100<BR>
102
    (don't forget to wear sunglasses, or start with brightness 20!!! ;-)
103
 
104
   <LI> added EVENT_RGBLED<BR>
105
     See cfg/test/rgbled_1.ngc for usage examples
106
 
107
   <LI> .NGR file: added "set_hsv" command which allows to control the hue parameters of a RGBLED
108
 
109
   <LI> SRIO num_sr=<value> reconfiguration works correctly with DIN/DOUT matrices now
110
 
111
   <LI> added "inverted=1" to EVENT_BUTTON and EVENT_LED
112
 
113
   <LI> .NGR file: added "load <setup>" command which allows to switch to another setup (.NGC, .NGS, .NGR, ... files)
114
 
115
   <LI> implemented new meta command "SendEvent" which allows to remote control one or more events from a single event
116
     within a given value range and direction.<BR>
117
     See cfg/test/metalrn.ngc for a usage example
118
 
119
   <LI> implemented new meta command "LearnEvent" which allows to learn SendEvent based controller assignments during runtime.
120
     See cfg/test/metalrn.ngc for a usage example
121
 
122
   <LI> added new meta command "SaveDelayedSnapshot:<seconds>"<BR>
123
     It will request to store a snapshot after at least the given seconds.
124
 
125
   <LI> added new event type "NoteOnOff", which will send a NoteOff event immediately after NoteOn (resp. actually it will
126
     send Note On with velocity 0 for runtime event optimisation)
127
 
128
   <LI> added possibility to calibrate the delay_slowest values for each individual key of a keyboard.<BR>
129
     New terminal commands:
130
     <UL CLASS=CL>
131
       <LI> set kb <1|2> key_calibration on: delay values will be measured (method described at the MIDIbox KB webpage)
132
       <LI> set kb <1|2> key_calibration off: captured delay values will be used: (<measured-delay> * delay_slowest / 1000)
133
       <LI> set kb <1|2> key_calibration clean: shows the captured measurement values
134
       <LI> set kb <1|2> key_calibration_value <key> <value>: allows to modify a calibration value directly
135
       <LI> kb <1|2> delays: shows the measured delay values
136
     </UL>
137
 
138
   <LI> keyboard calibration values are stored in a new file: .NGK, and can also be edited there
139
 
140
   <LI> bugfix for DELAY_MS
141
 
142
   <LI> bugfix for fwd_id to a non-existing ID with specific value
143
 
144
   <LI> bugfix for maps with duplicated values
145
 
146
   <LI> bugfix for sporadic file access errors reported during snapshot restore
147
  </UL>
148
</LI>
149
 
150
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
1186 tk 151
<LI><I>V1.032</I>
152
  <UL CLASS=CL>
153
   <LI> support for mathematical operations in .NGR script.
154
     They have to be surrounded with square-brackets ([...])<BR>
155
     Syntax: [&lt;left-operand&gt;&lt;operator&gt;&lt;right-operand&gt;]<BR>
156
     Example:
157
     <UL CLASS=CL>
158
        <LI> set LED:2000 [LED:2000 + 1]<BR>
159
          will increment the value stored in LED:2000
160
        <LI> set LED:2000 [LED:2000 - 1]
161
          will decrement the value stored in LED:2000
162
     </UL>
163
 
164
     Note that nested operations are supported as well, such as:
165
     <UL CLASS=CL>
166
        <LI> send CC USB1 1 [LED:2000 + [LED:2001 + [LED:2002 + LED:2003]]]
167
     </UL>
168
 
169
     More examples in cfg/tests/runscr5.ngc<BR>
170
     Support operators: + - * / % &amp; | ^
171
 
172
 
173
   <LI> number of scanned SRIOs now configurable in .NGC file
174
     with 'SRIO num_sr=&lt;1..32&gt;'<BR>
175
 
176
     By default 32 DIN and DOUT shift registers are scanned, which
177
     result into an update rate of ca. 420 uS on a STM32F4 based core.<BR>
178
 
179
     With (for example) 'sr_num=8' only up to 8 DIN and 8 DOUT SRs will
180
     be scanned anymore, but the update rate is reduced to ca. 110..120 uS
181
     (a little bit more than a quarter due to SR handling overhead)
182
 
183
 
184
    <LI> corrected DebounceCtr parameter (value was not passed to MIOS32).<BR>
185
      Now also part of the SRIO configuration, use: SRIO debounce_cycles=&lt;1..255&gt;
186
 
187
    <LI> added new meta event "KbBreakIsMake:&lt;keyboard-number&gt;" which will
188
      already trigger a note event when the break contact is activated
189
      (nice for playing organ style).<BR>
190
      Trigger it from a toggle button function as shown in cfg/test/kb_5.ngc
191
      Can be optionally set from the terminal as well with following
192
      command: "set kb &lt;keyboard-number&gt; break_is_make &lt;on|off&gt;"
193
      (e.g. "set kb 1 break_is_make on")
194
 
195
   <LI> added ain_mode=Toggle for AIN and AINSER events.<BR>
196
     Similar to ain_mode=Switch it can be used if buttons are connected to analog inputs.
197
     The event will toggle between the min and max value.
198
 
199
   <LI> .NGR: added "set_no_dump" command. It allows to change the "no_dump" flag
200
     which specifies if an EVENT_xxx should be sent during a DumpSnapshot.<BR>
201
     This feature can be used to handle different snapshot setups.
202
 
203
   <LI> STM32F4: support for bootloader "enforce_usb_device" flag
204
  </UL>
205
</LI>
206
 
207
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
1181 tk 208
<LI><I>V1.031</I>
209
  <UL CLASS=CL>
210
   <LI>the STM32F4 variant of the firmware supports USB Host mode!<BR>
211
     See also <A HREF="http://midibox.org/forums/topic/18906-usb-host-support-for-mbhp-core-stm32f4/" TARGET="_blank">this forum article</A>.
212
 
213
   <LI> MIDI clock input ports now disabled by default to avoid feedback loops
214
     in various setups
215
 
216
   <LI> improved "ain_filter_delay_ms" implementation to support sensors (experimental stage)
217
 
218
   <LI> Covered new use case which allows to transform velocity values of incoming notes.
219
     See cfg/test/conev_6.ngc<BR>
220
     EVENT_RECEIVER and EVENT_SENDER have to be specified with "key=any", so that any
221
     key will be received and sent.
222
 
223
   <LI> support for DIN/DOUT emulation on digital IO ports J10A/J10B (LPC17: J10/J28)<BR>
224
     See examples in cfg/test/diocfg_1.ngc and cfg/test/diocfg_2.ngc
225
  </UL>
226
</LI>
227
 
228
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
1172 tk 229
<LI><I>V1.030</I>
230
  <UL CLASS=CL>
231
   <LI> increased event pool size to 64k for MBHP_CORE_STM32F4
232
 
233
   <LI> added ain_mode=Switch for AIN and AINSER events.<BR>
234
     Can be used if buttons are connected to analog inputs. The event will send the
235
     min value if a 30% threshold is reached, and the max value if a 70% threshold
236
     is reached.<BR>
237
     Schematic:  Ground |----o Button o-----> analog input + 10k Pull-Up resistor to 3.3V (AIN) resp. 5V (AINSER)
238
 
239
   <LI> .ngr: added "change" command. It works similar to the "set" command, but
240
     only changes the value, and doesn't generate a MIDI event.
241
 
242
   <LI> .ngr: added "set_min" and "set_max" command which allows to modify the
243
     min/max range of a EVENT
244
 
245
   <LI> added new meta events to control the internal MIDI clock generator:
246
     MClkPlay, MClkStop, MClkPlayStop, MClkPause, MClkDecTempo, MClkIncTempo, MClkSetTempo.<BR>
247
     Example can be found under cfg/test/midiclk.ngc
248
 
249
   <LI> added new string formatting items:
250
    <UL CLASS=CL>
251
     <LI>%t to display MIDI clock state (Play/Stop)
252
     <LI>%T to display tempo (BPM)
253
    </UL>
254
 
255
   <LI> added new MClk menu page to SCS to control the tempo w/o dedicated controllers
256
 
257
   <LI> fixed AOUT_NG module communication issue if AINSER was used in addition
258
 
259
   <LI> added new meta events:
260
     <UL CLASS=CL>
261
       <LI> CvPitchBend14Bit:<cv-channel>
262
       <LI> CvPitchBend7Bit:<cv-channel>
263
       <LI> CvPitchRange:<cv-channel>
264
       <LI> CvTransposeOctave:<cv-channel>
265
       <LI> CvTransposeSemitones:<cv-channel>
266
     </UL>
267
     see cfg/test/cvtransp.ngc for usage examples
268
 
269
   <LI> BUTTON toggle function can now also handle with inverted and reduced value ranges
270
  </UL>
271
</LI>
272
 
273
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
1162 tk 274
<LI><I>V1.029</I>
275
  <UL CLASS=CL>
276
   <LI> added USB MIDI workaround for Windows
277
 
278
   <LI> if a EVENT_SENDER is part of a radio group, and got a new value, it will only
279
     send the MIDI event if the new value is matching with the specified range.<BR>
280
     Usage example: cfg/templates/pg300.ngc
281
 
282
   <LI> if EVENT_RECEIVER forwarded to EVENT_AIN, EVENT_AINSER or EVENT_BUTTON,
283
     send also MIDI event.<BR>
284
     Usage example: cfg/templates/pg300.ngc
285
 
286
   <LI> support for MBHP_CORE_STM32F4 module
287
  </UL>
288
</LI>
289
 
290
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
291
<LI><I>V1.028</I>
292
  <UL CLASS=CL>
293
   <LI> DOUT_MATRIX n=8 properly supported
294
 
295
   <LI> now up to 16 DOUT_MATRIX and DIN_MATRIX can be configured
296
  </UL>
297
</LI>
298
 
299
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
1148 tk 300
<LI><I>V1.027</I>
301
  <UL CLASS=CL>
302
   <LI> .NGR: added "set_active" command. It can be alternatively used
303
     instead of the bank mechanism to activate/deactivate events,
304
     e.g. if the same events should be activated in multiple banks under
305
     certain conditions.<BR>
306
     A demo can be found under cfg/tests/multibnk.*
307
 
308
   <LI> it's now possible to set a static forward value independent from the
309
     actual value of the event which initiates the forwarding.<BR>
310
 
311
     E.g. with<BR>
312
<TT><PRE style="margin-left:20px; font-size:8pt">
313
     EVENT_xxx fwd_id=SENDER:1:42
314
</PRE></TT>
315
     the SENDER:1 will always get value 42 for additional processing
316
 
317
   <LI> support for multiple MBHP_MF_NG modules in a chain.<BR>
318
     See cfg/test/mf_multi.ngc for a configuration example
319
 
320
   <LI> support for Logic Control Meters.<BR>
321
     Configuration example: see cfg/templates/logictrl.ngc
322
     (search for "meter")
323
 
324
   <LI> added new GLCD fonts (provided by Pcbatterij): Inverted and Tiny.<BR>
325
     In order to test these fonts, try following commands in the MIOS Terminal:<BR>
326
<TT><PRE style="margin-left:20px; font-size:8pt">
327
     lcd %C&t@(1:1:1)Tiny Font
328
     lcd %C&i@(1:1:1)Inverted Font
329
</PRE></TT>
330
 
331
   <LI> fixed OSC receiver (avoided stack overflow)
332
 
333
   <LI> various minor bugfixes
334
  </UL>
335
</LI>
336
 
337
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
1130 tk 338
<LI><I>V1.026</I>
339
  <UL CLASS=CL>
340
   <LI>support for nrpn_format=MsbOnly (e.g. for MBSEQ V4 NRPNs)
341
 
342
   <LI> new EVENT parameter ain_sensor_mode:
343
     <UL CLASS=CL>
344
       <LI>With ain_sensor_mode=NoteOnOff, AIN and AINSER events, which are
345
         assigned to Note events, send velocity 0 before a new Note is sent
346
         with velocity > 0 to avoid hanging notes.
347
       <LI>With ain_sensor_mode=None (default if no sensor mode specified),
348
         Note events will be generated as a continuous stream like CCs
349
     </UL>
350
  </UL>
351
</LI>
352
 
353
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
354
<LI><I>V1.025</I>
355
  <UL CLASS=CL>
356
   <LI> new terminal commands:
357
    <UL CLASS=CL>
358
     <LI> ngc: allows to execute a .NGC command directly
359
     <LI> ngr: allows to execute a .NGR command directly
360
     <LI> ngr_section: sets the ^section for .NGR execution
361
     <LI> ngr_value: sets the ^value for .NGR execution
362
     <LI> run: can now also executed without specified &lt;section&gt; &lt;value&gt;<BR>
363
       (the previously set values will be taken in this case)
364
    </UL>
365
 
366
   <LI> inofficial support for MAX72xx chains - see cfg/tests/max72xx.ngc for
367
     a configuration example (no schematic available yet)
368
 
369
   <LI> .NGR: fixed "delay statements in if branches" issue
370
 
371
   <LI> .NGR: added "set_lock" command. It allows to prevent, that received
372
     events will overwrite a value of an event.
373
 
374
   <LI> .NGR: the "set" command now also allows to change variables, e.g.:<BR>
375
       set ^value 1<BR>
376
       set ^section 2<BR>
377
       set ^bank 3<BR>
378
       (etc...)<BR>
379
     the last one (^bank) will also switch MBNG to the specified bank
380
 
381
   <LI> .NGR: added variables ^dev, ^pat, ^bnk, ^ins, ^chn<BR>
382
     These are the same which can be used in SysEx strings, and which can
383
     be changed in a SCS page (e.g. the variables could also be used for
384
     different purposes)
385
 
386
   <LI> added new SCS menu page to execute the .NGR file with given
387
     ^section and ^value
388
 
389
   <LI> the AIN command now supports the "resolution" parameter
390
 
391
   <LI> the AINSER command now supports the "muxed" parameter.<BR>
392
     Use muxed=1 for the AINSER64 module (default), and muxed=0 for the AINSER8 module.
393
 
394
   <LI> AIN and AINSER events, which are assigned to Note events, send velocity 0
395
     before a new Note is sent with velocity > 0 to avoid hanging notes.
396
 
397
   <LI> added "ain_filter_delay_ms" to support sensors (experimental stage)
398
 
399
   <LI> EVENT_RECEIVER in conjunction with ^txt or ^txt56: if ^cursor is not specified
400
     in the SysEx stream, it will start at offset 0 from the specified lcd_pos=<device>:<x>:<y>
401
 
402
   <LI> EVENT ... syxdumppos now supports the full receiver range 1..4095 (previously
403
     only 1..15)
404
 
405
   <LI> the MIDI router forwards SysEx messages regardless if channels are filtered,
406
     or "All" is used. It's ensured that messages are only sent once if multiple
407
     router nodes forward to the same destination port.
408
  </UL>
409
</LI>
410
 
411
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
1120 tk 412
<LI><I>V1.024</I>
413
  <UL CLASS=CL>
414
   <LI> bugfix for "single_usb" option
415
 
416
   <LI> support for LED Digits (7-segment displays).<BR>
417
     Configuration examples can be found under cfg/tests/leddig*.ngc
418
 
419
   <LI> the DIN_MATRIX and DOUT_MATRIX configuration command now allows to
420
     mirror the row pattern with "mirrored_row=1"
421
 
422
   <LI> added EVENT_RECEIVER emu_enc_mode and emu_enc_hw_id parameters.<BR>
423
     See cfg/tests/emu_enc.ngc for an usage example
424
 
425
   <LI> .NGR now allows to cast the ID type: (id) or (hw_id).<BR>
426
     E.g. (id)LED:1 will search for the EVENT specified with id=1, and
427
     (hw_id)LED:1 will search for the EVENT specified with hw_id=1<BR>
428
 
429
     if (hw_id) is used (default if no type specified), and no EVENT with
430
     a matching hw_id can be found, a virtual event will access the control
431
     element directly. This is currently only relevant for the SET command.<BR>
432
 
433
     This matches with the behaviour of the "EVENT ... fwd_id=<id>" function.
434
 
435
   <LI> added RunStop meta event to stop the execution of a .NGR file
436
 
437
   <LI> added "runstop" terminal command
438
 
439
   <LI> new .NGR command: set_rgb <id> <r:g:b><BR>
440
     E.g. "set_rgb (id)LED:1001 15:8:4"
441
  </UL>
442
</LI>
443
 
444
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
445
<LI><I>V1.023</I>
446
  <UL CLASS=CL>
447
   <LI> the current AIN/AINSER pot values can now be taken over by the meta events
448
     RetrieveAinValues and RetrieveAinserValues
449
   <LI> new .NGR command: EXEC_META
450
  </UL>
451
</LI>
452
 
453
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
1119 tk 454
<LI><I>V1.022</I>
455
  <UL CLASS=CL>
456
   <LI> support for run scripts.<BR>
457
     See also the <A HREF="midibox_ng_manual_ngr.html">new manual page</A>.
458
 
459
   <LI> the new SysEx command ^label has been added. It allows to insert the ASCII code
460
     of a label string into a SysEx stream.<BR>
461
     See also cfg/tests/syxlabel.ngc
462
 
463
   <LI> big GLCD font now correctly handled by ^txt and ^txt56 SysEx command
464
 
465
   <LI> line number now displayed on errors in .NGC, .NGL or .NGR file
466
 
467
   <LI> various bugfixes and improvements
468
  </UL>
469
</LI>
470
 
471
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
1117 tk 472
<LI><I>V1.021</I>
473
  <UL CLASS=CL>
474
   <LI> support for the "single_usb" option, which can be enabled with the
475
     bootloader update application V1.012 ("set usb_single 1")<BR>
476
 
477
     Use this option if you are working with a Windows PC which can't handle
478
     the 4 USB ports correctly (e.g. stucking MIDI, Filebrowser operations are failing, etc.)
479
 
480
   <LI> added .NGS file which allows to store and restore values into
481
     up to 128 snapshots (0..127).<BR>
482
     The snapshot can be changed in the "Snap" menu in the SCS
483
 
484
   <LI> the "Snap" menu also allows to dump all events (e.g. after a new
485
     snapshot has been loaded)
486
 
487
   <LI> added new (hopefully selfexplaining) meta events:<BR>
488
     SetSnapshot, DecSnapshot, IncSnapshot, CycleSnapshot, LoadSnapshot,
489
     SaveSnapshot and DumpSnapshot<BR>
490
     Note that multiple meta commands can be assigned to an event, e.g.
491
     to set, auto-load and dump a snapshot from an encoder write:<BR>
492
     EVENT_ENC ... type=Meta meta=SetSnapshot meta=LoadSnapshot meta=DumpSnapshot
493
 
494
   <LI> added "no_dump" parameter to EVENT_xxx<BR>
495
     It specifies if an EVENT_xxx should be sent during a DumpSnapshot.<BR>
496
 
497
     no_dump=1 is set for EVENT_RECEIVER and EVENT_KB and events which are using
498
     type=Meta by default.<BR>
499
     If such events should be part of the dump, set no_dump=0
500
 
501
     For all other events/types no_dump=0 is set by default, set no_dump=1 if
502
     they shouldn't send MIDI events on a snapshot dump.
503
 
504
   <LI> new label printf-control "%S" prints the snapshot number 0..127
505
  </UL>
506
</LI>
507
 
508
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
509
<LI><I>V1.020</I>
510
  <UL CLASS=CL>
511
  <LI>added "rgb" parameter.<BR>
512
     See cfg/tests/rgb_*.ngc for various examples.
513
 
514
  <LI>added "spread_center" option to AIN/AINSER calibration.<BR>
515
     See cfg/tests/kb_1.ngc for an usage example.
516
 
517
  <LI>reduced memory consumption of EVENT_* definitions
518
 
519
  <LI>added MIOS Terminal commands: "show id" and "show hw_id"
520
  </UL>
521
</LI>
522
 
523
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
524
<LI><I>V1.019</I>
525
  <UL CLASS=CL>
526
   <LI> added "Autoload" function: whenever a .NGC file has been uploaded via the
527
     MIOS Filebrowser, it will be automatically loaded, so that "load &lt;file&gt;"
528
     doesn't need to be entered in the MIOS Terminal anymore.
529
 
530
   <LI> EVENT_LED_MATRIX: now expects the 'colour' parameter to address the
531
     red (colour=0), green (colour=1) or blue (colour=2) LED.<BR>
532
 
533
     Note that it's still possible to control the LEDs from a single incoming
534
     MIDI message, e.g. by assigning the 3 EVENT_LED_MATRIX entries to the
535
     same CC number.
536
 
537
     But now it's also possible to address the LEDs independent from each other.
538
 
539
 
540
   <LI> LEDs can now be dimmed with 16 brightness levels over the value range.<BR>
541
     This feature has to be enabled with dimmed=1 in the EVENT_* definition.<BR>
542
     Configuration example: cfg/tests/dimled.ngc
543
 
544
   <LI> LEDs in a matrix configuration can be dimmed as well. The dim range is the
545
     same (0..15), but the effective dim level is limited by the number of
546
     scanned rows:
547
     <UL CLASS=CL>
548
        <LI> 4  rows: only 8 levels (0..1, 2..3, 4..5, 6..7, 8..9, 10..11, 12..13, 14..15)
549
        <LI> 8  rows: only 4 levels (0..3, 4..7, 8..11, 12..15)
550
        <LI> 16 rows: only 2 levels (0..7, 8..15)
551
     </UL>
552
     Configuration example: cfg/tests/dimled_m.ngc
553
 
554
   <LI> the new MIOS Terminal command "lcd" allows to directly output a (formatted)
555
     string to the LCD(s).<BR>
556
     E.g. try "lcd @(1:1:1)Hello World!"<BR>
557
 
558
     Note that terminal strings can also be sent via SysEx from a DAW:<BR>
559
     F0 00 00 7E 32 00 0D 00 &lt;ascii-text&gt; 0A F7
560
 
561
     Accordingly, this SysEx string will print "Hello World!" as well:<BR>
562
     F0 00 00 7E 32 00 0D 00 6C 63 64 20 40 28 31 3A 31 3A 31 29 48 65 6C 6C 6F 20 57 6F 72 6C 64 21 0A F7
563
  </UL>
564
</LI>
565
 
566
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
567
<LI><I>V1.018</I>
568
  <UL CLASS=CL>
569
   <LI> added EVENT_KB. See cfg/tests/kb_*.ngc for usage examples
570
 
571
   <LI> new LCD formats: %N prints the note name based on the specified MIDI event,
572
     and %n based on the event value
573
 
574
   <LI> new meta event: SwapValues - it swaps the primary and secondary value of an event.<BR>
575
     E.g. on a note event, velocity can be swapped with the key value.<BR>
576
     A usage example can be found in cfg/tests/kb_4.ngc, where the key and velocity
577
     value should be output by separate CV channels
578
 
579
   <LI> AIN/AINSER configuration: added pinrange parameter.<BR>
580
     It allows to specify individual ranges for the connected pots to calibrate
581
     the physical min/max limits.
582
 
583
   <LI> SCS configuration: added SCS num_items and lcd_pos parameters
584
  </UL>
585
</LI>
586
 
587
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
588
<LI><I>V1.017</I>
589
  <UL CLASS=CL>
590
   <LI> it's now possible to use the same hw_id in multiple event definitions.
591
     This allows for example to send multiple MIDI events from a single
592
     control element (e.g. from a single button)
593
 
594
   <LI> the fwd_id now forwards to the event(s) with the given hw_id
595
     (which is the same like the "normal id" if not explicitely specified)
596
 
597
   <LI> implemented "conditional events".<BR>
598
     See the <A HREF="midibox_ng_manual_ngc.html">User Manual</A> for details and examples.
599
 
600
   <LI> the new meta event UpdateLcd allows to force a refresh of the complete
601
     LCD content. This is especially useful in conjunction with conditional
602
     events: whenever a source value has been changed (e.g. a button state),
603
     all events which have this value in their condition will print out the
604
     label if the specified condition matches.
605
  </UL>
606
</LI>
607
 
608
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
609
<LI><I>V1.016</I>
610
  <UL CLASS=CL>
611
   <LI> LPC17: robustness of LCD driver has been improved
612
  </UL>
613
</LI>
614
 
615
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
1113 tk 616
<LI><I>V1.015</I>
617
  <UL CLASS=CL>
618
   <LI> support for GLCD_SSD1306_ROTATED
619
 
620
   <LI> the ^txt and ^txt56 SysEx command now allows to map incoming characters to
621
     different cursor positions. An example can be found in cfg/templates/logictrl.ngc
622
 
623
   <LI> independent from this map feature, ^txt and ^txt56 now also take lcd_pos=... and
624
     label=... into account to set the initial LCD and cursor position, at which the
625
     message will start. The label can be used to change the GLCD font before the
626
     characters will be print.<BR>
627
     An example can be found in cfg/templates/logictrl.ngc as well.
628
  </UL>
629
</LI>
630
 
631
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
632
<LI><I>V1.014</I>
633
  <UL CLASS=CL>
634
   <LI> the keyboard handler of MIDIbox KB has been integrated.
635
     The configuration commands are identical "set kb..." as documented at
636
     the <A HREF="http://www.ucapps.de/midibox_kb.html">MIDIbox KB page</A>.
637
 
638
   <LI> keyboard parameters are also stored in the .NGC file, and can be
639
     configured from there.
640
 
641
   <LI> please note that the latency is 10 times higher than in the MIDIbox KB
642
     application! Each row is scanned in 320 uS (instead of 32 uS).<BR>
643
     This has to be considered in the velocity delay configuration.
644
     delay_slowest should be 100 (instead of 1000), and delay_fastest should
645
     be 5 (instead of 50)
646
 
647
   <LI> DOGM and SSD1306 GLCDs: support for more than 12 displays via DOUT shift
648
     registers connected to J28
649
  </UL>
650
</LI>
651
 
652
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
653
<LI><I>V1.013</I>
654
  <UL CLASS=CL>
655
   <LI> overworked LCD handling: there is no buffer limitation anymore, any LCD and GLCD size
656
     is accepted, which especially means that GLCD fonts are displayed correctly
657
     independent from the specified number of connected devices.
658
 
659
   <LI> this change has freed some RAM which can be used for other purposes in future
660
  </UL>
661
</LI>
662
 
663
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
664
<LI><I>V1.012</I>
665
  <UL CLASS=CL>
666
   <LI> The application boots a little bit faster now
667
 
668
   <LI> support for more than 2 LCDs.<BR>
669
     A documentation can be found in the <A HREF="midibox_ng_manual_lcd.html">User Manual</A>.
670
  </UL>
671
</LI>
672
 
673
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
674
<LI><I>V1.011</I>
675
  <UL CLASS=CL>
676
   <LI> EVENT_SENDER and EVENT_RECEIVER can now also be assigned to a radio_group.<BR>
677
     This can not only be used in conjunction with BUTTON/LED radio groups, but also
678
     to distribute MIDI events to from receiver to multiple senders without
679
     forwarding chains (which then can be used for a different purpose)
680
 
681
   <LI> the "sdcard_format" command allows to format the connected SD Card with FAT32
682
     from the MIOS Terminal
683
  </UL>
684
</LI>
685
 
686
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
687
<LI><I>V1.010</I>
688
  <UL CLASS=CL>
689
   <LI> SysEx: added ^cursor, ^txt and ^txt56 identifiers.<BR>
690
     They allow to send messages to the LCD via SysEx.<BR>
691
     A usage example can be found under cfg/templates/logictrl.ngc
692
 
693
   <LI> Labels: ^# allows to terminate a label.<BR>
694
     E.g. "^label^#MyText" prints "MyText" directly after the specified ^label
695
  </UL>
696
</LI>
697
 
698
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
699
<LI><I>V1.009</I>
700
  <UL CLASS=CL>
701
   <LI> with a button assigned to 'type=Meta meta=MidiLearn range=0:1' it's now possible
702
     to activate a MIDI Learn mode which allows to assign an incoming MIDI event to any
703
     control element
704
 
705
   <LI> with 'type=Meta meta=MidiLearn range=0:2' also NRPN events can be learned (in this case,
706
     CC#62 and CC#63 will be ignored!)
707
 
708
   <LI> MIDI Learn mode can also be activated in the SCS menu
709
  </UL>
710
</LI>
711
 
712
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
713
<LI><I>V1.008</I>
714
  <UL CLASS=CL>
715
   <LI> DIN_MATRIX with rows=4 now properly supported
716
 
717
   <LI> DIN_MATRIX/DOUT_MATRIX: it's now possible to invert the rows as well:<BR>
718
     inverted=1 or inverted_sel=1 will invert the selection lines<BR>
719
     inverted_row=1 will invert the row pattern
720
 
721
   <LI> configuration examples for the 16x4 Button/Duo-LED matrix are now
722
     available under cfg/tests/blm16x4*.ngc
723
  </UL>
724
</LI>
725
 
726
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
727
<LI><I>V1.007</I>
728
  <UL CLASS=CL>
729
   o changed bank concept: the BANK command has been removed, instead the EVENT
730
     command got a new "hw_id" and "bank" parameter.<BR>
731
     A simple configuration example can be found under cfg/tests/encbanks.ngc<BR>
732
     More complex configuration examples under cfg/tests/bnk*.ngc
733
 
734
   <LI> added meta=CycleBank (increments bank, resets to 1 if last bank reached)<BR>
735
 
736
   <LI> additional new metas: SetBankOfHwId, DecBankOfHwId, IncBankOfHwId, CycleBankOfHwId
737
  </UL>
738
</LI>
739
 
740
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
1107 tk 741
<LI><I>V1.006</I>
742
  <UL CLASS=CL>
743
   <LI> corrected LED pattern output for the case that the selection lines are inverted.
744
 
745
   <LI> the new SCS command allows to assign emulated button/encoder functions if the SCS
746
     shows the mainpage.<BR>
747
     A usage example can be found under cfg/templates/lre8x2.ngc
748
  </UL>
749
</LI>
750
 
751
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
1101 tk 752
<LI><I>V1.005</I>
753
  <UL CLASS=CL>
754
   <LI> support for value MAPs.<BR>
1107 tk 755
     Various examples can be found under cfg/tests/map*.ngc
1101 tk 756
 
757
   <LI> support for EVENT_CV<BR>
1107 tk 758
     Various examples can be found under cfg/tests/cv*.ngc
1101 tk 759
 
760
   <LI> AINSER modules now disabled after RESET_HW<BR>
761
     They have to be explicitely enabled with the AINSER command
762
 
763
   <LI> the AINSER command now supports the "resolution" and "num_pins" parameters
764
  </UL>
765
</LI>
766
 
767
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
768
<LI><I>V1.004</I>
769
  <UL CLASS=CL>
770
   <LI>some minor code cleanup
771
  </UL>
772
</LI>
773
 
774
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
775
<LI><I>V1.003</I>
776
  <UL CLASS=CL>
777
   <LI>added "enc_speed_mode" parameter to EVENT_ENC<BR>
778
     Valid modes are:
779
     <UL CLASS=CL>
780
       <LI>Auto (speed automatically adapted according to the value range),
781
       <LI>Slow:0 .. Slow:7 (divides the increments),
782
       <LI>Normal (no special measure) and
783
       <LI>Fast:0 .. Fast:7 (accelerates the increments)
784
     </UL>
785
     A configuration example can be found under cfg/tests/encspeed.ngc
786
  </UL>
787
</LI>
788
 
789
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
1097 tk 790
<LI><I>V1.002</I>
791
  <UL CLASS=CL>
792
   <LI> the patterns specified with LED_MATRIX_PATTERN are now reversed so that the
793
     bit orientation matches with the hardware.
794
 
795
   <LI> reversed value ranges (min value greater than max value) now properly supported
796
 
797
   <LI> support for ain_mode Direct/Snap/Relative/Parallax
798
 
799
   <LI> incoming MIDI values can now trigger the output of EVENT labels if the "fwd_to_lcd"
800
     option is set to 1 in the related EVENT_* definitions.
801
 
802
   <LI> support for "Radio Groups": button and LEDs can now be assigned to groups, which
803
     handle the same value over multiple elements.<BR>
804
     A configuration example can be found under: cfg/tests/radiogrp.ngc
805
  </UL>
806
</LI>
807
 
808
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
1096 tk 809
<LI><I>V1.001</I>
810
  <UL CLASS=CL>
811
   <LI> maximum length of DIN/DOUT shift register chain increased to 32.<BR>
812
     This means that up to 256 digital inputs, and 256 digital outputs are available.
813
 
814
   <LI> Number of virtual button and LED functions increased to 1024
815
 
816
   <LI> New meta event for speeding up ENC movements (EncFast, see .NGC documentation)
817
 
818
   <LI> New meta events for emulating SCS buttons/encoder (see .NGC documentation)
819
 
820
   <LI> Ethernet and OSC setup now stored with ETH/OSC commands in .NGC file
821
 
822
   <LI> SysEx variables are now stored with a SYSEX_VAR command in .NGC file
823
 
824
   <LI> EVENT_BUTTON_MATRIX and EVENT_LED_MATRIX now properly supported<BR>
1097 tk 825
     See cfg/tests/blm8x8.ngc for a simple configuration example
1096 tk 826
  </UL>
827
</LI>
828
 
829
<IMG SRC="images/1x1dot.gif" height=20 ALT=""><BR>
830
<LI><I>V1.000</I>
831
  <UL>
832
    <LI>initial version</LI>
833
  </UL>
834
</LI>
835
 
836
</UL>
837
 
838
 
839
FOOTER