$Id: CHANGELOG.txt 1748 2013-04-14 18:27:30Z tk $

MIDIbox NG V1.024
~~~~~~~~~~~~~~~~~

   o bugfix for "single_usb" option

   o support for LED Digits (7-segment displays).
     Configuration examples can be found under cfg/tests/leddig*.ngc

   o the DIN_MATRIX and DOUT_MATRIX configuration command now allows to
     mirror the row pattern with "mirrored_row=1"

   o added EVENT_RECEIVER emu_enc_mode and emu_enc_hw_id parameters.
     See cfg/tests/emu_enc.ngc for an usage example

   o .NGR now allows to cast the ID type: (id) or (hw_id).
     E.g. (id)LED:1 will search for the EVENT specified with id=1, and
     (hw_id)LED:1 will search for the EVENT specified with hw_id=1

     if (hw_id) is used (default if no type specified), and no EVENT with
     a matching hw_id can be found, a virtual event will access the control
     element directly. This is currently only relevant for the SET command.

     This matches with the behaviour of the "EVENT ... fwd_id=<id>" function.

   o added RunStop meta event to stop the execution of a .NGR file

   o added "runstop" terminal command

   o new .NGR command: set_rgb <id> <r:g:b>
     E.g. "set_rgb (id)LED:1001 15:8:4"


MIDIbox NG V1.023
~~~~~~~~~~~~~~~~~

   o the current AIN/AINSER pot values can now be taken over by the meta events
     RetrieveAinValues and RetrieveAinserValues

   o new .NGR command: EXEC_META


MIDIbox NG V1.022
~~~~~~~~~~~~~~~~~

   o support for run scripts.
     See also the new manual page: http://www.ucapps.de/midibox_ng_manual_ngr.html

   o the new SysEx command ^label has been added. It allows to insert the ASCII code
     of a label string into a SysEx stream.
     See also cfg/tests/syxlabel.ngc

   o big GLCD font now correctly handled by ^txt and ^txt56 SysEx command

   o line number now displayed on errors in .NGC, .NGL or .NGR file

   o various bugfixes and improvements


MIDIbox NG V1.021
~~~~~~~~~~~~~~~~~

   o support for the "single_usb" option, which can be enabled with the
     bootloader update application V1.012 ("set usb_single 1")

     Use this option if you are working with a Windows PC which can't handle
     the 4 USB ports correctly (e.g. stucking MIDI, Filebrowser operations are failing, etc.)

   o added .NGS file which allows to store and restore values into
     up to 128 snapshots (0..127).
     The snapshot can be changed in the "Snap" menu in the SCS

   o the "Snap" menu also allows to dump all events (e.g. after a new
     snapshot has been loaded)

   o added new (hopefully selfexplaining) meta events:
     SetSnapshot, DecSnapshot, IncSnapshot, CycleSnapshot, LoadSnapshot,
     SaveSnapshot and DumpSnapshot
     Note that multiple meta commands can be assigned to an event, e.g.
     to set, auto-load and dump a snapshot from an encoder write:
     EVENT_ENC ... type=Meta meta=SetSnapshot meta=LoadSnapshot meta=DumpSnapshot

   o added "no_dump" parameter to EVENT_xxx
     It specifies if an EVENT_xxx should be sent during a DumpSnapshot.

     no_dump=1 is set for EVENT_RECEIVER and EVENT_KB and events which are using
     type=Meta by default.
     If such events should be part of the dump, set no_dump=0

     For all other events/types no_dump=0 is set by default, set no_dump=1 if
     they shouldn't send MIDI events on a snapshot dump.

   o new label printf-control "%S" prints the snapshot number 0..127


MIDIbox NG V1.020
~~~~~~~~~~~~~~~~~

   o added "rgb" parameter.
     See cfg/tests/rgb_*.ngc for various examples.

   o added "spread_center" option to AIN/AINSER calibration.
     See cfg/tests/kb_1.ngc for an usage example.

   o reduced memory consumption of EVENT_* definitions

   o added MIOS Terminal commands: "show id" and "show hw_id"


MIDIbox NG V1.019
~~~~~~~~~~~~~~~~~

   o added "Autoload" function: whenever a .NGC file has been uploaded via the
     MIOS Filebrowser, it will be automatically loaded, so that "load <file>" 
     doesn't need to be entered in the MIOS Terminal anymore.


   o EVENT_LED_MATRIX: now expects the 'colour' parameter to address the
     red (colour=0), green (colour=1) or blue (colour=2) LED.

     Note that it's still possible to control the LEDs from a single incoming
     MIDI message, e.g. by assigning the 3 EVENT_LED_MATRIX entries to the
     same CC number.

     But now it's also possible to address the LEDs independent from each other.


   o LEDs can now be dimmed with 16 brightness levels over the value range.
     This feature has to be enabled with dimmed=1 in the EVENT_* definition.
     Configuration example: cfg/tests/dimled.ngc

   o LEDs in a matrix configuration can be dimmed as well. The dim range is the
     same (0..15), but the effective dim level is limited by the number of 
     scanned rows:
        - 4  rows: only 8 levels (0..1, 2..3, 4..5, 6..7, 8..9, 10..11, 12..13, 14..15)
        - 8  rows: only 4 levels (0..3, 4..7, 8..11, 12..15)
        - 16 rows: only 2 levels (0..7, 8..15)
     Configuration example: cfg/tests/dimled_m.ngc

   o the new MIOS Terminal command "lcd" allows to directly output a (formatted)
     string to the LCD(s).
     E.g. try "lcd @(1:1:1)Hello World!"

     Note that terminal strings can also be sent via SysEx from a DAW:
     F0 00 00 7E 32 00 0D 00 <ascii-text> 0A F7

     Accordingly, this SysEx string will print "Hello World!" as well:
     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




MIDIbox NG V1.018
~~~~~~~~~~~~~~~~~

   o added EVENT_KB. See cfg/tests/kb_*.ngc for usage examples

   o new LCD formats: %N prints the note name based on the specified MIDI event,
     and %n based on the event value

   o new meta event: SwapValues - it swaps the primary and secondary value of an event.
     E.g. on a note event, velocity can be swapped with the key value.
     A usage example can be found in cfg/tests/kb_4.ngc, where the key and velocity
     value should be output by separate CV channels

   o AIN/AINSER configuration: added pinrange parameter.
     It allows to specify individual ranges for the connected pots to calibrate
     the physical min/max limits.

   o SCS configuration: added SCS num_items and lcd_pos parameters


MIDIbox NG V1.017
~~~~~~~~~~~~~~~~~

   o it's now possible to use the same hw_id in multiple event definitions.
     This allows for example to send multiple MIDI events from a single
     control element (e.g. from a single button)

   o the fwd_id now forwards to the event(s) with the given hw_id
     (which is the same like the "normal id" if not explicitely specified)

   o implemented "conditional events".
     See the user manual (.NGC chapter) for details and examples.

   o the new meta event UpdateLcd allows to force a refresh of the complete
     LCD content. This is especially useful in conjunction with conditional
     events: whenever a source value has been changed (e.g. a button state),
     all events which have this value in their condition will print out the
     label if the specified condition matches.


MIDIbox NG V1.016
~~~~~~~~~~~~~~~~~

   o LPC17: robustness of LCD driver has been improved


MIDIbox NG V1.015
~~~~~~~~~~~~~~~~~

   o support for GLCD_SSD1306_ROTATED

   o the ^txt and ^txt56 SysEx command now allows to map incoming characters to
     different cursor positions. An example can be found in cfg/templates/logictrl.ngc

   o independent from this map feature, ^txt and ^txt56 now also take lcd_pos=... and
     label=... into account to set the initial LCD and cursor position, at which the
     message will start. The label can be used to change the GLCD font before the
     characters will be print.
     An example can be found in cfg/templates/logictrl.ngc as well.


MIDIbox NG V1.014
~~~~~~~~~~~~~~~~~

   o the keyboard handler of MIDIbox KB has been integrated.
     The configuration commands are identical "set kb..." as documented at
     the MIDIbox KB page: http://www.ucapps.de/midibox_kb.html

   o keyboard parameters are also stored in the .NGC file, and can be
     configured from there.

   o please note that the latency is 10 times higher than in the MIDIbox KB
     application! Each row is scanned in 320 uS (instead of 32 uS).
     This has to be considered in the velocity delay configuration.
     delay_slowest should be 100 (instead of 1000), and delay_fastest should
     be 5 (instead of 50)

   o DOGM and SSD1306 GLCDs: support for more than 12 displays via DOUT shift
     registers connected to J28


MIDIbox NG V1.013
~~~~~~~~~~~~~~~~~

   o overworked LCD handling: there is no buffer limitation anymore, any LCD and GLCD size
     is accepted, which especially means that GLCD fonts are displayed correctly
     independent from the specified number of connected devices.

   o this change has freed some RAM which can be used for other purposes in future


MIDIbox NG V1.012
~~~~~~~~~~~~~~~~~

   o The application boots a little bit faster now

   o support for more than 2 LCDs.
     A documentation can be found under http://www.ucapps.de/midibox_ng_manual_lcd.html


MIDIbox NG V1.011
~~~~~~~~~~~~~~~~~

   o EVENT_SENDER and EVENT_RECEIVER can now also be assigned to a radio_group.
     This can not only be used in conjunction with BUTTON/LED radio groups, but also
     to distribute MIDI events to from receiver to multiple senders without
     forwarding chains (which then can be used for a different purpose)

   o the "sdcard_format" command allows to format the connected SD Card with FAT32
     from the MIOS Terminal


MIDIbox NG V1.010
~~~~~~~~~~~~~~~~~

   o SysEx: added ^cursor, ^txt and ^txt56 identifiers.
     They allow to send messages to the LCD via SysEx.
     A usage example can be found under cfg/templates/logictrl.ngc

   o Labels: ^# allows to terminate a label.
     E.g. "^label^#MyText" prints "MyText" directly after the specified ^label


MIDIbox NG V1.009
~~~~~~~~~~~~~~~~~

   o with a button assigned to 'type=Meta meta=MidiLearn range=0:1' it's now possible
     to activate a MIDI Learn mode which allows to assign an incoming MIDI event to any
     control element

   o with 'type=Meta meta=MidiLearn range=0:2' also NRPN events can be learned (in this case,
     CC#62 and CC#63 will be ignored!)

   o MIDI Learn mode can also be activated in the SCS menu


MIDIbox NG V1.008
~~~~~~~~~~~~~~~~~

   o DIN_MATRIX with rows=4 now properly supported

   o DIN_MATRIX/DOUT_MATRIX: it's now possible to invert the rows as well:
     inverted=1 or inverted_sel=1 will invert the selection lines
     inverted_row=1 will invert the row pattern

   o configuration examples for the 16x4 Button/Duo-LED matrix are now
     available under cfg/tests/blm16x4*.ngc


MIDIbox NG V1.007
~~~~~~~~~~~~~~~~~

   o changed bank concept: the BANK command has been removed, instead the EVENT
     command got a new "hw_id" and "bank" parameter.
     A simple configuration example can be found under cfg/tests/encbanks.ngc
     More complex configuration examples under cfg/tests/bnk*.ngc

   o added meta=CycleBank (increments bank, resets to 1 if last bank reached)

   o additional new metas: SetBankOfHwId, DecBankOfHwId, IncBankOfHwId, CycleBankOfHwId


MIDIbox NG V1.006
~~~~~~~~~~~~~~~~~

   o corrected LED pattern output for the case that the selection lines are inverted.

   o the new SCS command allows to assign emulated button/encoder functions if the SCS
     shows the mainpage.
     A usage example can be found under cfg/templates/lre8x2.ngc


MIDIbox NG V1.005
~~~~~~~~~~~~~~~~~

   o support for value MAPs.
     Various examples can be found under cfg/tests/map*.ngc

   o support for EVENT_CV
     Various examples can be found under cfg/tests/cv*.ngc

   o AINSER modules now disabled after RESET_HW
     They have to be explicitely enabled with the AINSER command

   o the AINSER command now supports the "resolution" and "num_pins" parameters


MIDIbox NG V1.004
~~~~~~~~~~~~~~~~~

   o some minor code cleanup


MIDIbox NG V1.003
~~~~~~~~~~~~~~~~~

   o added "enc_speed_mode" parameter to EVENT_ENC
     Valid modes are Auto (speed automatically adapted according to the value range),
     Slow:0 .. Slow:7 (divides the increments),
     Normal (no special measure) and
     Fast:0 .. Fast:7 (accelerates the increments)
     A configuration example can be found under cfg/tests/encspeed.ngc


MIDIbox NG V1.002
~~~~~~~~~~~~~~~~~

   o the patterns specified with LED_MATRIX_PATTERN are now reversed so that the
     bit orientation matches with the hardware.

   o reversed value ranges (min value greater than max value) now properly supported

   o support for ain_mode Direct/Snap/Relative/Parallax

   o incoming MIDI values can now trigger the output of EVENT labels if the "fwd_to_lcd"
     option is set to 1 in the related EVENT_* definitions.

   o support for "Radio Groups": button and LEDs can now be assigned to groups, which
     handle the same value over multiple elements.
     A configuration example can be found under: cfg/tests/radiogrp.ngc


MIDIbox NG V1.001
~~~~~~~~~~~~~~~~~

   o maximum length of DIN/DOUT shift register chain increased to 32.
     This means that up to 256 digital inputs, and 256 digital outputs are available.

   o Number of virtual button and LED functions increased to 1024

   o New meta event for speeding up ENC movements (EncFast, see .NGC documentation)

   o New meta events for emulating SCS buttons/encoder (see .NGC documentation)

   o Ethernet and OSC setup now stored with ETH/OSC commands in .NGC file

   o SysEx variables are now stored with a SYSEX_VAR command in .NGC file

   o EVENT_BUTTON_MATRIX and EVENT_LED_MATRIX now properly supported
     See cfg/tests/blm8x8.ngc for a simple configuration example


MIDIbox NG V1.000
~~~~~~~~~~~~~~~~~

   o initial version
