Studio One X (Extensions) executable and scripts libraries ChangeLog
====================================================================


[2017-07-08]

Executable library v1.2.5:
--------------------------

+ Added memoryStatusMode parameter to config.cfg to set the initial Memory Status window mode.

+ Added memoryStatusColor parameter to set the color of the text in Memory Status window.

+ Changed the way mouse buttons 4 & 5 (Forward and Back) are mapped. A sequence of up to
    four keys can now be assigned to each button, so CTRL+C and CTRL+SHIFT+A are now possible.

+ Added an alternative mode for the mapped mouse buttons 4 & 5, activated with Scroll Lock key.
    When Scroll Lock is active (led is lit on the keyboard) the alternative mappings specified by
    the mapMouseButtonFalt and mapMouseButtonBalt parameters in config.cfg are used.

+ Added auto-scroll mode which can be activated with RightALT + Middle Mouse button. Move the
    mouse sideways to accelerate/decellerate the auto-scroll speed. Press the RightALT key
    to temporarily pause the auto-scroll, release to continue scrolling. Press the Middle Mouse
    button to exit the auto-scroll mode.



[2017-06-18]

Scripts library v2.5.6 Technology Preview:
------------------------------------------

+ Added export functions to the Chord Assistant. Chords selected in the list can be exported in
    plain text (TXT) or a spreadsheet (CSV) formats.

+ Chords can now be added in relation to the selected scale/key in Chord Assistant. This is
    highly experimental and is available from the Scale menu in CA.

+ Added Mute/Solo mode to Channel Presets where only Mute, Solo and SoloSave properties of the
    channels are saved and restored. The MS Mode doubles the number of available preset slots.

+ Stale Channel Presets will no longer load. This is to prevent partial changes to the channels
    which happened to match the required criteria (as was in the previous version). Stale Channel
    Presets will be quickly overwritten with with up-to-date data once they get selected.

+ Minor changes and improvements.



[2017-06-13]

Scripts library v2.5.5 Technology Preview:
------------------------------------------

+ Added a simple Notepad accessible from Studio One X main menu -> Studio One X -> Notepad.
    Notepad contents are unique for each song and are saved in plain text format alongside the
    respective song file.

+ Added Channel Presets toolbar panel. Channel Presets enable taking snapshots of the state of all
    the channels in a song and allow instant comparison of different mixes. Channel Presets are
    unique for each song and are stored alongside the respective song file. A precondition of
    using Channel Presets is that the channels are not renamed and do not change their position in
    the Mixer Console.

+ Code optimization and other improvements.



[2017-06-04]

Scripts library v2.5.2 Technology Preview:
------------------------------------------

+ Added more commands to the Chord Display menu (faster workflow).

+ Added ability to save Command History as Macro.

+ Added Chord Toolbar with shortcuts for adding quickly common chords to notes. Accessible from
    Studio One X Main Menu -> Studio One X -> Toolbar -> Reset to Chord Toolbar

+ Added Reverse command to reverse selected notes in PRV.

+ Other changes, code optimization and improvements.




[2017-06-01]

Scripts library v2.5.1 Technology Preview:
------------------------------------------

+ Fixed Legato and Trim Overlaps commands in Action menu having no effect.

+ Fixed various problems with notes painted in Piano Roll in Chord Assistant. Painted notes will now
    display and behave correctly when changing inversion where notes go into higher/lower octave.

+ Fixed problem with Added (painted) notes in Chord Assistant not being applied correctly when a chord
    also has been inverted.

+ Fixed Chord Transform Display in CA showing incorrect target chord transformation in certain cases.

+ Added some of the most useful Chord Assistant features to the Chord Display dropdown menu in
    Studio One X Toolbar panel (faster workflow).

Quick Tips:
    * click in the Chord Display (in the toolbar) to display the first chord of the selected notes
    * use mouse scroll wheel over Chord number (#) in CA to quickly browse through chords
    * use mouse scroll wheel over Chord inversion dropdown list in CA to quickly see chord inversions
    * Chord Assistant works with notes selected in multiple regions/tracks
    * start typing in CA filter text boxes to see matching chords being highlighted in PRV
    * adjust the threshold value (default 0.3) of the algorithm finding chords by editing Config.txt
    * try the new Double command (also accessible from Toolbar->Transpose menu) to quickly double notes
      in octaves



[2017-05-29]

Executable library v1.2.3:
--------------------------

+ Minimum inner DAW window width is now 1714px to avoid Memory Status Window overlap with UI elements.
    Memory Status Window is automatically hidden if the window width is too narrow.

+ Minor optimizations.


Scripts library v2.5.0 Technology Preview:
------------------------------------------

+ Toolbar Panel redone.

+ Added "Randomize" command.

+ Added "Chord Assistant" command.

+ "Track Notes" command replaced with "Track Properties".

+ Huge number of changes, big and small, see if you can spot any.



[2017-05-21]

Executable library v1.2.2:
--------------------------

+ Added display of system clock (useful in fullscreen mode).

+ Fixed F11 + Shift/CTRL/ALT modifiers not passed down to Studio One when fullscreenKeyF11 is enabled.



[2017-04-04]

Executable library v1.2.1:
--------------------------

+ Added configuration option "fullscreenAtStart" which, when enabled, instructs Studio One to enter fullscreen
    mode at start up of the application.

+ Added install.cmd script to simplify the installation process of the Executable Library.



[2017-03-07]

Scripts library v2.1.0:
-----------------------

+ Fixed rare problem with "Select All Following ..." commands sometimes selecting notes past playhead cursor.

+ Redesigned "Repeat Last Command" such that the last ten executed commands from Studio One X toolbar are kept
    in a list and can be selected and executed from a dropdown menu. The "Repeat" button executes the last
    command.

    REMEMBER: reset the toolbar to see the changes in this new version!

+ Added "About Studio One X" dialog box (accessible from Toolbar->Help menu) which displays the version of the
    currently installed Studio One X scripts library.

+ Replaced some of the Humanize commands with their Randomize equivalents. Randomize functions do not perform
    groove (quantized) randomization of note parameters.

+ Added alternative "Dynamics" menu which goes from "ffff" to "pppp". To replace the default one Right-click
    the "Dynamics" menu button and choose "Assign" -> "Music Note Alt Velocity Menu".

+ Minor fixes, code optimization and other improvements.



[2017-03-06]

Executable library v1.2.0:
--------------------------

+ Added new mouse command: when LMB and RMB are held down, the mouse movement is constrained to the axis
    along which it is moved. Useful in PRV when moving notes around without changing pitch (y-axis lock) or
    position (x-axis lock). Once RMB is released, the axis lock is lifted and the mouse cursor can be moved
    freely. As long as the LMB is held down, RMB down/up will engage/disengage the relevant axis lock depending
    on the movement of the mouse cursor.

- Removed option "midMouseButtonZoom" from the config.cfg file. Smooth zoom is here to stay since noone wants to
    disable it.

+ Added option "memoryStatusOffset" to position the Memory Status window (in High DPI mode) at a user defined
    offset specified in pixels.

+ The option "memoryStatusUpdate" now specifies the lower bound of Memory Status window update frequency. The
    update frequency adapts to the changes in memory load in order to avoid unneccessary window updates. An LMB
    click in Memory Status window will now switch to version/heartbeat display and back.

+ Added option "boostThreadPriority" to boost the priority class of the application. Since Studio One can be
    assumed to be the most important application running for the duration of a musical session, boosting its
    priority in relation to all other programs in a system will prompt the OS scheduler to prioritize the tasks
    executed by Studio One. Two modes: "Above Normal" and "High" can be used with this option. Use "High" with
    caution since it will elevate Studio One to the same priority level as Task Manager and Desktop Window Manager.



[2017-02-26]

Scripts library v2.0.5:
-----------------------

+ Bug fixes and improvements.



[2017-02-25]

Scripts library v2.0.3:
-----------------------

+ Added "Repeat Last Command" button to the Studio One X Toolbar. The last command executed from the toolbar
    is remembered and can be repeated by pressing the "R" button located beside the Undo/Redo buttons.
    Note that only the commands executed from the toolbar can be repeated, and if a macro command containing
    multiple commands is launched from Studio One X Toolbar, only the last executed command can be repeated.

    REMEMBER: reset the toolbar to see the changes in the new version!

+ Improved the cleanup algorithm of the Articulation Assistant.

+ Added sliders to the color selectors in the "Track Notes" script.

+ Bug fixes and improvements.



[2017-02-25]

Scripts library v2.0.1:
-----------------------

+ Added scripts "Humanize Length" and "Humanize Length Less". These scripts humanize the length of the selected
    notes. NOTE: all the humanize functions (including the stock ones) perform quantized randomization of the
    note parameters, i.e. the amount of random jitter applied is related to the note position on the grid. If
    pure randomization is needed, use the List command function RND.

+ Added "Run Command" script which allows running a command from a presented command list. Arguments (if any)
    can be specified in the form: "Name1=value, Name2=value" etc. Macros, if installed, are supported as well.
    Also useful for just browsing through the list of all the available commands in Studio One.

+ Improvements in the Studio One X Toolbar. Use the "Reset Toolbar" menu option to update the toolbar after
    installation of a new scripts library package.

+ Bug fixes and improvements.



[2017-02-23]

Scripts library v2.0.0:
-----------------------

+ Added Studio One X toolbar. The new toolbar combines all the extension features with a selection of the default
    Studio One commands and menus, and allows working in fullscreen mode while retaining access to Studio One's
    menu functions. The toolbar works with or without Studio One Macros package being installed.

- Removed extension commands from the Action menu. All the extension functionality is now available through the
    Studio One X toolbar's UI.

+ Added selection scripts:
    Select All Following
    Select All Following with Equal Pitch
    Select All Following with Similar Pitch
    Select All Following with Equal Velocity

    These scripts work in a similar way to the previously introduced selection scripts, with playhead cursor
    limiting the end-range of the select functions.

+ Renamed and improved scripts:
    Select By Equal Subposition -> Select All Following with Equal Subposition
    Select By Quantized Subposition -> Select All Following with Similar Subposition

    These scripts are now able to handle simultaneous selection in multiple regions/tracks.

+ Filter Presets menu in the List script now includes an option to reset the presets to default setings. Use this
    option every time you update to a new version of scripts library.

+ Fixed problem with notes being stuck in selected state after using the "List" command.

+ Lots of small fixes and improvements.



[2017-02-21]

Scripts library v1.4.0:
-----------------------

+ Improved filter functionality of the "List" script. User defined filter presets now include filters for:

    . Same note pitch/velocity/length
    . Ascending/Descending note pitch/velocity
    . Note velocity from (ppp) to (fff)
    . Overlapping notes
    . and more...

    If a filter preset is successfully applied, the notes will be automatically selected in the PRV (faster workflow).

    NOTE: Remove the "FilterPresets.txt" file in .../Documents/Studio One/Macros directory so that the updated filter
    presets can be re-created in its stead (do this every time after scripts library update). If custom presets have
    been added to "FilterPresets.txt", backup the file and add custom presets to the re-created presets file manually.



[2017-02-16]

Executable library v1.1.1:
--------------------------

+ Changed method of loading original mp3 dll (optimization).

+ Minor optimization and fixes to the Memory Status window. The Load status is now color coded such that the text becomes
    red the higher the memory load.



[2017-02-13]

Scripts library v1.3.9:
-----------------------

+ Added "Select Between First And Last" script. Selects all the notes in range between two already selected ones.
    This script properly handles selection in multiple regions/tracks.

+ Added "Select By Equal Subposition" and "Select By Quantized Subposition" scripts. The first script selects all the
    notes in a region with exactly the same subposition as the already selected ones. The search algorithm starts
    at the end of the last selected note event and continues to the position of the playhead cursor, or, if the playhead
    is located before the already selected notes, to the end of the region. The second script works in a similar way
    but applies quantization rules currently specified in the Studio One Quantize UI to each note event being tested.



[2017-02-11]

Executable library v1.1.0:
--------------------------

+ Added Memory Status window showing memory load in percent and the remaining free physical memory. Memory Status window
    is located on the top toolbar to the left of Start/Song/Project buttons. Note: presently Memory Status window
    cannot be displayed properly when Studio One is running in High DPI mode. If using HiDPI, disable Memory Status
    in config.cfg .

+ Added blacklist for certain windows which caused problems when window opacity was enabled. In particular, some
    3rd party plugins would not render properly in transparent windows. This has now been fixed.


Scripts library v1.3.7:
-----------------------

+ The behaviour of "Track Notes" script has been changed to open one single text file for all the tracks. This is
    because uniquely identifying a track name has proven to be a challenge once tracks are moved, inserted and renamed
    in a song project.

+ "Track Notes" script in multi-select mode can now be used to rename multiple tracks either by specifying one common
    name, or by specifying a list of names (one line per track).

+ Bug fixes and improvements.



[2017-02-08]

Scripts library v1.3.5:
-----------------------

+ Fixed problem with AA painting at wrong position when region offset is non zero.

Thanks to all for your feedback, much appreciated!


Scripts library v1.3.3:
-----------------------

+ Improved AA painting and cleanup algorithms to better handle various cases of overlapping notes.



[2017-02-07]

Scripts library v1.3.1 (quick fix):
-----------------------------------

+ AA script preserves the velocity of the previously painted articulations (when painting over existing ones).

+ AA cleanup pass now cleans up super-short articulation notes (can happen with different offset and painting over).

+ AA articulation menu can handle separators ("-" in .pitchlist names).

+ AA presets menu is alphabetically ordered.


Scripts library v1.3.0:
-----------------------

+ Added "Articulation Assistant" script.



[2017-02-06]

Scripts library v1.2.3:
-----------------------

+ Added "Track Notes" script.

+ Bug fixes and improvements.



[2017-01-26]

Executable library v1.0.8:
--------------------------

+ Added transparency effect for pop up windows. Can be disabled by setting winOpacity to 0 in config.cfg.

- Removed Forward Mouse button zoom since it was redundant (CTRL + Shift + Middle Mouse drag works just fine).

+ Minor code optimization.


Scripts library v1.2.1:
-----------------------

+ Some changes to the "List" script:

    . added Track column
    . velocity is displayed with two decimals of precision (as in inspector)
    . floating point math is rounded off to match the values in inspector
    . corrected parsing of timing values which can now be entered as bars/beats (/1 = whole, /2 = half, /4 = quarter etc)
    . added custom filter functions "eq, timeEq, contains, startsWith, endsWith" to simplify writing of user defined filter presets
    . lots of other minor changes



[2017-01-19]

Scripts library v1.2.0:
-----------------------

+ Added "Copy Velocity" script.

+ "Remove Overlaps" script no longer added to the Action menu, but is still available and can be bound to a macro button.

+ "Filter" script can now filter events by Mute status.

+ "List" script is out of beta.



[2016-12-23]

Executable library v1.0.7:
--------------------------

+ Fixed problem with Enter key not being passed on to Studio One.

+ Fixed problem with F11 key not being passed on to Studio One when "fullscreenKeyF11" option is disabled.

+ Configuration file config.cfg location is now derived from the path to Studio One executable.

+ Added ability to smooth zoom horizontally when Forward mouse button is pressed down. See options midMouseButtonZoom and fwdMouseButtonZoom in config.cfg .


Scripts library v1.0.7:
-----------------------

+ Renamed script "Select Conditional" to "Filter Events" to better reflect the fact that the script filters note events already selected in the Note Editor.

+ Filter Events can now apply Mirror and Inversion operations in the final stage of note events filtering.



[2016-12-22]

Executable library v1.0.5:
--------------------------

+ Added CTRL + SHIFT + Middle Mouse Button (hold) & horizontal drag to perform smooth horizontal zoom.

+ Added ALT + Middle Middle Mouse Button (click) to open Studio One Toolbar at mouse cursor. This functionality was previously lost since Middle Mouse Button was used to perform panning.

+ Added "enable" configuration parameter to enable/disable Studio One X extensions without the need to rename dlls.


Scripts library v1.0.5:
-----------------------

+ Select Conditional script has now additional filter to select All, every 2nd, 3rd, 4th and 8th notes.

- Removed scripts Select Every 2nd, 3rd, 4th and 8th Notes. This functionality is now moved into the powerful Select Conditional script.



[2016-12-21]

Executable library v1.0.2:
--------------------------

- No changes.

Scripts library v1.0.3:
-----------------------

+ Added "Select Conditional" script (supercedes Select Short Notes) to constrain notes selection to values matching the given conditions based on note velocity, pitch and length.



[2016-12-19]

Executable & Scripts libraries v1.0.2:

+ First release.
