Version 1.3.0 (2026-08-05)

  This new feature release is all about usability improvements, most of them of
  visual nature.

  One of the most important features of this new release is multi-region
  selection: By either Ctrl-clicking or Shift-clicking you can now select
  (or unselect) multiple regions, such that you can change sound parameters of
  specific regions simultaniously while working with the editors right-hand
  side parameters pane. The ironic thing here is that we already had
  multi-selection for dimension regions for a very long time, exact in the same
  way by ctrl/shift-clicking individual dimension regions (a.k.a. "cases") from
  the editor's dimension region pane on the lower section of the editor (just
  below the virtual keyboard). But for some reason we had never extended this
  multi-selection concept to the regions level, except that we had the
  "all regions" checkbox basically from the beginning of course. You can
  naturally also combine multi-region selection with multi-dimension-region
  selection, like say you only wanted to change parameters of these certain
  regions, and of those regions only those specific dimension regions. This is
  not limited to mouse operations, there are also keyboard accelerators for all
  these multi-selection operations which you can all find listed from the app's
  "Edit" menu.

  The next important new feature(s) in this release help you not getting lost
  with complex .gig sounds by handling so called "alternative values": the
  challenge with the Giga format has always been its potential massive amount
  of so called "cases", that is the sheer amount of different sound parameters
  for different situations. Because in the end, the sound editor can only show
  you for each sound parameter only exactly one value at a time, right? So what
  is that sound parameter value that you currently see on the right-hand side
  of the editor? Because remember, the editor allows multi-selection?
  The answer is, the editor was always just showing you exactly the one and
  only parameter value of the so called "primary selection" exclusively, that
  is exactly the case that is highlighed in all-blue (whereas the other
  selected "cases" are marked in blue-hatched pattern). So this restriction
  also applies when there are multi-selected regions / dimension regions; they
  would also always be limited to show the parameter value of exactly ONE
  "case" (or ONE dimension region if you will).
  But here is the catch: all other currently selected regions and selected
  dimension regions might have different values for the respective sound
  parameter. So the only way to find out was going through all of them manually
  by selecting each one of those regions and dimension regions individually and
  see if the parameter value displayed would change.
  Let's just stop this nonsense: as soon as you have multi-selection applied,
  the editor is now highlighting all sound parameters that have multiple
  different values ("alternative values") in bronze coloured and bold font,
  based on the current multi-selection of regions / dimension regions that is.
  When you then move the mouse pointer over a highlighted parameter, it then
  now also shows you their specific, alternative parameter values, however not
  in the parameter entry box, but instead directly within the zones (or cells)
  of the respective dimension regions on the lower section of the screen, and
  additionally in compact coloured form on the region cells (that is on a higher
  structural level). This approach has the advantage that you not only see the
  raw parameter values alone, but also to which dimension regions (and their
  parent regions) those are currently assigned to exactly, such that you can
  immediately see their assigned locations as well.
  And as all sound parameters are distributed over a number of tabs in Gigedit,
  the respective tab itself is highlighed in bronze and bold as well if any of
  the tab's parameters is highlighted in turn, which further improves keeping
  oversight, since only one tab can be displayed at a time.
  Hopefully these new features make working on even the most complex
  instruments in the Giga format much more intuitive from now on.

  The next important new feature is the "prelisten" feature: so far we have
  just talked about parameters. But what about samples? A complex Giga
  instrument not only has a massive amount of parameters, it typically also has
  a massive amount of samples. The previously introduced new features described
  above could help you with understanding complex multi-samples as well, in the
  sense that you can for instance go to the "Sample" tab on the right-hand
  side, move the mouse pointer over the "Sample" field, and then see which
  sample names are displayed in the individual dimension region cells below
  (and on the regions above). You can do the same by moving the mouse pointer
  over the sample group field by the way. However these are just names of the
  samples and their groups. For a musician it is more important though, how do
  they actually sound, which is often not obvious by just reading a name. This
  is where the new "prelisten" features comes to play (literally): on the
  "Sample" tab you now have a simple and probably self-explantory play button.
  So while clicking and holding the play button, this specific sample is
  played, and stopped as soon as you release the mouse button again. However
  there is more: by Alt-clicking a dimension region on the lower section of the
  screen, you can now also play their specific sample directly (without
  changing selection) which allows you to understand very quickly how the
  instrument is comprised of with different samples. It is important to
  understand that this is really just playing this one specific sample, not
  multiple samples. This is therefore especially useful for multi-layer combi
  sounds, where you otherwise would have no easy way to understand how the
  sound is comprised of with individual samples. Because for velocity splits
  you could also trigger the right note with the right velocity to simulate the
  respecitve "case", but with a multi-layered sound there was no conventional
  way to just get one isolated sample of a multi-layer being played alone.

  Configurable UI theme: In the previous maintenance releases of Gigedit there
  were numerous visual fixes when running Gigedit on a system with "dark mode"
  enabled. This release goes a bit further and allows you to override not only
  whether you want Gigedit to appear in dark or bright mode (independent of
  what is globally configured on your system), but also to override the theme
  to be used by Gigedit. Those two apperance settings can be configured via the
  two new submenus "View" -> "Colors" and "View" -> "Theme" respectively.

  Follow subwindows: There is another new submenu for configuring visual
  behaviour: "View" -> "Subwindows follow Main Window", if enabled then all
  Gigedit child windows will automatically follow Gigedit's main window when
  Gigedit's main window is being moved around on screen. That is the child
  windows would automatically retain their relative position to Gigedit's main
  window.

  New "Referenced" column in "Scripts" tree view: on the left-hand side of
  Gigedit there are 3 tabs: "Samples", "Instruments" and "Scripts". The
  "Scripts" tree view now shows a "Referenced" column for each script, this
  number reflects how often that particular script is referenced by some
  instrument. That way you can for instance easily see if a script is currently
  not, or barely used.

  The NKSP instrument script editor received configurabale diagnostics: As you
  might know, while typing new code into the NKSP code editor, all issues are
  automatically highlighted in real-time. What's new is that when you move the
  mouse pointer over some highlighed code issue, you can now also see the issue
  type category in squared brackets, along to the already existing detailed
  issue description of the tooltip. From the editor's new "Diagnostics" menu
  you can then configure how the sampler's parser shall handle those individual
  issue categories. You can configure warnings to be entirely ignored (in which
  case they are no longer highlighted in the code editor). The sampler's API
  also supports the opposite by allowing to promote warnings to errors, however
  this is currently not supported by the Gigedit UI. These diagnostic settings
  are currently saved as user preference for all your .gig files you are
  working on.
  Furthermore, on the code editor's left hand side, issues are now visually
  prominently marked in red color for errors and yellow for warnings
  respectively, so that you can more easily spot any kind of issues while
  scrolling a long instrument script, as this is more easy to perceive for the
  eye than having to spot these issues directly in the code section alone.

  Auto highlighting selected NKSP code: another minor but actually quite useful
  feature in the NKSP editor is that wen you select a code portion (e.g. a
  variable or a function), all other occurences of the same text string are now
  automatically highlighted as well. This is very useful for instance to quickly
  spot all code locations where a certain variable is currently used, or seeing
  all callers of a certain function.

  These were only the most note-worthy new features in this release. For a
  complete list of all new features and bug fixes, please refer to the
  ChangeLog file.

Version 1.2.4 (2025-12-17)

  Maintenance release. Fixes a few issues, foremost visibility issues when
  running the app with Dark Mode enabled. Refer to ChangeLog for other fixes.

Version 1.2.3 (2025-11-07)

  Maintenance release which fixes issues on sample import (i.e. after adding new
  samples to a gig file and then saving the file).

  Only one minor new feature: the sample tab now provides a name search filter
  field.

Version 1.2.2 (2025-06-02)

  Maintenance release with some fixes and code updates to latest libgig C++ API.

Version 1.2.1 (2024-01-26)

  This is a maintenance release with some fixes.

  Most changes are about adopting to libgig 4.4.0 API changes, which in turn
  fix various multi-threading issues.

Version 1.2.0 (2021-05-09)

  This release provides various new features and as always of course also
  numerous fixes.

  A C++11 compliant compiler is now at least required to build Gigedit from
  source.

  The real-time instrument script editor supports now syntax highlighting for
  LinuxSampler's new standard measuring units (kHz, c, ms, dB, etc.) feature for
  the NKSP script language. On the right hand side of Gigedit (the main working
  area actually) there is now a new tab "Script" which reveals a list of so
  called NKSP "patch" variables, which are variables published by instrument
  script authors to be directly accessible from the instrument editor and allows
  to override the values of certain instrument script variables on a per
  instrument basis in order to fine tune certains aspects of a script for
  individual instruments.

  Latest LinuxSampler 2.2.0 added various gig format extensions which are now
  available on Gigedit side as well: for instance for LFOs you can select from
  multiple wave forms (sine, triangle, square and saw) and you can fine tune
  the start phase of each LFO. To make it more intuitive the resulting LFO wave
  is drawn as preview on screen according to the chosen LFO parameters. Another
  gig format extension by latest LinuxSampler are new filter types which can be
  chosen from (along to the already existing filter types which will continue to
  co-exist): lowpass 1/2/4/6-pole, highpass 1/2/4/6-pole, bandpass 2-pole and
  bandreject 2-pole.

  A new dialog has been added to access the meta info of individual samples,
  similar to the meta info dialog that already existed for individual
  instruments.

  Gain can now be set to any arbitary value between -96 dB .. +96 dB. Previously
  it was only possible to set gain to max. 0 dB and there was a checkbox which
  allowed a hard coded boost to exactly +6 dB. The previous appearance
  replicated the appearance of GigaStudio's original instrument editor. The
  previous limitation of having just a single possible value for positive gain
  was unfortunate, but as it turned out this was actually not a limitation of
  the original gig file format. And in fact we have not added any gig file
  format extension for this reason to achieve this new freedom of arbitrary gain
  settings. So setting a positive gain of e.g. let's say +1.45 dB does not break
  compatibility of your sounds with GigaStudio.

  And last but not least various minor convenience functions have been added,
  for instance the default double click behaviour on instruments (which would
  open their meta info dialog) can now optionally be disabled, window size,
  position and vertical spliter position are now auto saved and restored among
  Gigedit sessions and the up/down buttons' steps have been individually
  adjusted to make more sense for the individual synthesis parameters they
  control. And regarding the latter: remember that the up/down steppers do 
  actually have two distinct operations per button: a regular left-mouse click
  for small changes and middle-mouse click for larger changes. Both have been
  adjusted appropriately for the individual synthesis parameters they control.

Version 1.1.1 (2019-07-27)

  This is a maintenance release with numerous fixes and the following
  few new features:

  From the file properties dialog you can now choose to specifically save a
  gig file in GigaStudio v4 file format (from the main menu select
  "File" -> "Properties" -> "File Format"). So you can override the file
  format version of already existing gig files that way.

  There is now a combo box and checkbox on "Misc" tab which allow to define
  when precisely release trigger samples shall be played. This is an
  extension of the original gig file format. You have the option to play
  release trigger samples only on note-off events (which is now the default
  behaviour in the latest release version of LinuxSampler), or only on
  sustain pedal up events, or both on note-off events and on sustain pedal
  up events. These are options on dimension region level, so you can
  override this behaviour even for individual cases, not just for the
  entire instrument.

  When working on gig files with more than one real-time instrument script
  per file, it was sometimes a bit tedious to keep track of which instrument
  was using which script exactly, because it involved a right-click on the
  individual instrument to get to the script slots dialog of the instrument,
  which finally listed the scripts being used. You no longer have to do that
  just to check which scripts are being used: Just hover your mouse over the
  "Scripts" column of the instruments table on the left hand side of
  gigedit; a coloured popup will appear with the list of scripts currently
  being assigned to the instrument.

  Likewise it is a very common task to remove all scripts from an
  instrument. There is now a keyboard shortcut for that: Just select the
  instrument from the instruments list and then hit Shift + Backspace.

  Gigedit provides a large number of tooltips when you are hovering your
  mouse over the huge amount of individual controls and menu items the
  application is offering in the meantime. In case you find that annoying,
  you can now disable those particular tooltips which are specifically
  intended for beginners from the main menu by unchecking "View" ->
  "Tooltips for Beginners". All other tooltips that are still useful for
  daily work with gigedit are still being shown when this option is
  unchecked.

  The previous release of gigedit introduced "Macros" for quickly
  performing frequently used sequences of editor actions, and you were able
  to assign your macros to keyboard function keys F1 .. F12. In this release
  you can now also assign macros to function keys up to F19, in case you own
  one of those keyboards with such a large amount of function keys.

Version 1.1.0 (2017-11-25)

  This release adds various improvements for the NKSP real-time instrument
  script editor of gigedit. LinuxSampler's NKSP script editor API is now
  used by gigedit to visualize all issues of scripts (errors and warnings)
  in real-time while you are typing with the script editor. The respective
  locations of script errors / warnings are automatically highlighted in
  red and yellow color respectively and when the mouse pointer is moved
  over those code locations, then the precise error / warning message is
  displayed as tooltip. And since gigedit's script editor is now tightly
  coupled with the sampler's script engine this way, all the heavy work of
  handling all aspects of the script language is now performed by the actual
  sampler's script engine and thus you can now be sure and immediately see
  whether there are any issues with your scripts with any character you are
  typing, and if yes what kind of issues exactly, and that without
  requiring to actually load the script into the sampler. To use these
  features, gigedit must be compiled and linked against liblinuxsampler.
  If gigedit is not compiled with liblinuxsampler support then the old hand
  written, error prone and very feature limited script editor implementation
  is used instead. Needless to say that compiling gigedit without
  liblinuxsampler support is discouraged. Additionally when clicking on the
  script editor's "Apply" button or using Ctrl+S keyboard shortcut, then
  the script is automatically reloaded by the sampler. So you no longer
  have to reload the respective instrument manually while you are
  developing instrument scripts. There are also visual enhancements for the
  script editor, for example the line numbers are now shown on the left,
  the font size can be altered by the user, and unused code portions (i.e.
  disabled by NKSP preprocessor statements) are automatically striked
  through.

  Another major new feature in this release are macros. A macro is a set of
  changes that should be applied to currently selected instrument. Such
  macros can be reviewed and edited, and they can be saved permanently for
  example as templates for common instrument creation tasks. Macros can be
  assigned to F keys on the keyboard so that they can be quickly triggered,
  you can transfer them over the OS clipboard and you can write comments
  to your macros so that you never forget what kind of purpose you had in
  mind for them. The macro features are based on libgig's new
  "Serialization" framework and accordingly you need at least libgig 4.1.0
  for using these macro features.

  All user settings of gigedit are now persistently saved and automatically
  restored. This also includes gigedit's windows' dimensions and positions.

  Multi-row selection has been added to all list views now, so you can now
  more efficiently apply actions to multiple samples, instruments or scripts
  simultaneously at once, instead of requesting those actions for each item
  individually.

  Also modifying key features of several dimension region zones
  simultaneously is now supported. That means you can now delete, split and
  resize multiple dimension region zones at once.

  You will also note that there are now icons displayed on the individual
  regions and dimension region zones. Those icons visualize common key
  features of regions and dimension region zones. For example if you forgot
  to assign any sample to one of them, then you will see a red dot on the
  respective region or dimension region zone. Another icon type is showing
  you whether a region or dimension region zone uses a sample loop. This way
  you can immediately see and control the key features of all regions
  and their dimension region zones, without requiring to browse through all
  of them individually.

  Various new keyboard shortcuts have been added so you can work more
  efficiently on your sounds. For example you can now use Ctrl+Left and
  Ctrl+Right to navigate through all regions of the currently selected
  instrument, and likewise you can use Alt+Left, Alt+Right, Alt+Up and
  Alt+Down to navigate through all dimension region zones of the currently
  selected region. Since there are many actions that can be either applied
  on instrument level, or on region level, or on dimension region level, as
  a general rule, for all keyboard shortcuts the Alt key is used by gigedit
  for actions on dimension region level, whereas the Ctrl key is used on
  region level and the Shift key is used for actions on instrument level.
  So as another example you may copy all parameters of the currently
  selected dimension region zone by hitting Alt+C, then you might select
  another dimension region zone, or another instrument and then use Alt+V
  to apply the parameters from the clipboard. While the parameters are
  (as macro actually) on the clipboard you can also review, edit and
  delete the individual parameters before applying them. As a final
  example for new important shortcuts you may now use Shift+Up and
  Shift+Down for switching between instruments.

  Also the Combine Tool has been improved. You can now simply select the
  (multiple) instruments you want to combine directly from the applications
  main window, i.e. by Ctrl or Shift clicking them from the instruments
  list view, and then right click to call the combine tool on that
  selection. The Combine Tool now also shows you as preview the order in
  which the selected instruments are going to be combined. This is
  especially useful when combining instruments with certain dimension
  types where the order matters for the actual resulting sound; for example
  when using the velocity dimension. Simply use drag n drop to reorder
  the previously selected instruments before combining.

  Since LinuxSampler 2.1.0 added a Giga format extension which allows to
  control the envelope generators' state machines more precisely; new
  options have been added to gigedit to control these new EG features.
  For example there are new check box which you can use to define for
  each envelope whether the individual EG stages should still be completed
  or rather aborted if a note-off was received. These new EG settings matter
  a lot for certain instrument types like percussive instruments.

  And last but not least a filter option field had been added to the
  instruments list and samples list, which allows you to find specific
  samples and instruments very quickly by typing search key words, which is
  especially very helpful in case you are working on gig files which contain
  a very large amount of samples or instruments in a single gig file.

Version 1.0.0 (2015-07-17)

  With this release we added support for new GigaStudio 4 features, for
  example there are now dialogs for editing some of the new so called
  "iMIDI rules". These can be used i.e. to trigger notes by MIDI CC and to
  define a set of legato samples. You may have heard that the GigaStudio
  software has seen its last version with GigaStudio 4. Tascam officially
  discontinued this product, its intellectual property has been sold several
  times among companies and there is currently no way to buy a new copy of
  GigaStudio anymore. However the GigaStudio format is still under active
  development with gigedit and LinuxSampler. For the first time ever we added
  our own extensions to the Giga format: one of it is major new feature
  called "real-time instrument scripts", which allows to bundle small programs
  with your .gig sounds, which extend the sampler with custom behavior for
  specific sounds. You may know such kind of instrument scripts from
  commercial software samplers. Find out more about this new feature on
  http://doc.linuxsampler.org/Instrument_Scripts/. Another rather minor
  extension to the Giga format is support for various other MIDI CCs which
  were never supported by GigaStudio before. So you can now use any MIDI CC
  for EG1 controller, EG2 controller and attenuation controller. Obviously all
  those extensions will not work with any GigaStudio version, they only work
  with a recent version of Gigedit and LinuxSampler. Gigedit will inform you
  whenever you are using such kind of custom Giga format extension, so that you
  are always aware in case your changes are not cross/backward compatible with
  the GigaStudio software. A load of enhancements have been added to Gigedit
  in the last six years: Until now you were only able to edit either exactly
  one dimension region or all dimension regions simultaneously. With this
  release you may now hold the Ctrl button and select a specific set of
  dimension region zones in the dimension region selector area (on the very
  bottom of the Gigedit window) with your mouse. All synthesis parameters you
  then change, will all be applied to that precise set of dimension region
  zones. Also managing dimensions have been improved: previously to change the
  amount of zones of a dimension you had to delete and recreate the dimension.
  Which was not just inconvenient, but you also had to redefine your synthesis
  parameters from scratch. Now you can just open the dimension manager dialog
  and increase or decrease the amount of zones of a dimension with few clicks.
  Same applies to the dimension type: you may now simply open the dimension
  manager dialog and alter the type of a dimension with few clicks.
  When working on complex Giga sounds you certainly noticed that one could
  easily get confused about which samples are exactly used by which instrument
  or even whether a sample is actually used at all by any instrument or just
  left orphaned and wasting disk space. This was also due to the fact that the
  Giga format does not require unique names for samples. We have worked on
  resolving this usability issue. In the sample list view you can now read the
  amount of times a sample is referenced by instruments of your .gig file. If a
  sample is not used at all, then it will be shown in striking red color in
  the sample list view. You may also right click on a sample and select
  "Show references...", a new window appears on your screen which will show you
  where exactly that particular sample is used by, that is which by which
  instruments and by which regions of those instruments. Also the other way
  around has been addressed: when you now edit the synthesis parameters of a
  particular dimension region, you may now click on the new "<- Select Sample"
  button and Gigedit automatically selects and displays the respective sample
  in the samples list view, which you may then might rename to some more
  appropriate sample name, or you might check by which other instrument(s) that
  sample is used by, etc. You may now also remove the current sample reference
  from individual dimension regions (assigning a so called "NULL" sample) by
  clicking on the new "X" button next the sample reference field on the
  "Sample" tab of a dimension region; this allows you to define "silent cases",
  that is a case where no sample should be played at all, for example this is
  often used for very low velocity ranges of i.e. between 0 and 6. If you are
  working on .gig files with a large amount of Instruments, then you might also
  be glad to know that you can finally also re-order the instruments of a file
  by simply dragging the instruments around in the instruments list view.
  Another handy new feature for sound designers is the new "Combine" tool,
  which you can reach from the main menu. It allows you to select two ore more
  instruments (by holding down the Ctrl key while selecting with mouse click)
  from your currently open Giga file and combine those selected instruments to
  a new instrument. This way you may for example create stunning layered
  sounds, or you may create velocity splits, crossfade sounds by MIDI
  controller and much more, all with just a few clicks. This may sound like a
  trivial task, but if you have worked on this before, you certainly noticed
  that this was often a very time consuming and error prone task before,
  especially with complex individual sounds which had custom region ranges,
  custom velocity splits and much more exotic stuff to take care of. The
  combine tool handles all such cases for you automatically.
  Last but not least, the interaction of Gigedit with LinuxSampler (in so
  called "live mode") had been improved: When you click on the "Edit" button of
  a channel strip in QSampler or Fantasia, Gigedit will be launched with the
  respective instrument automatically being selected. Vice versa you may now
  also just select another instrument with Gigedit's instrument list view and
  LinuxSampler will automatically load and play that instrument on the
  respective sampler part for you. So no more need to switch between the
  Gigedit window and QSampler/Fantasia window all the time while working on
  your sounds.

Version 0.2.0 (2009-07-31)

  When gigedit is running as a plugin in LinuxSampler the gigedit
  keyboard may now be used to trigger notes. The settings in the file
  properties window are now editable. A new function for replacing all
  samples is added. Otherwise this is mostly a bug fix release, and
  upgrading gigedit and libgig is strongly recommended, as previous
  versions had bugs that may cause edited gig files to be corrupted.

Version 0.1.1 (2007-12-06)

  Parameter edits can now be applied to multiple regions and dimension
  regions simultaneously - three checkboxes were added that select if
  changes apply to all regions and/or all dimension regions.

Version 0.1.0 (2007-10-15)

  Many fixes have been made to make sure that the gig files created by
  gigedit are working properly in LinuxSampler and GigaStudio. Gigedit
  can now be run as a LinuxSampler plugin, allowing live editing of
  loaded instruments. Sample loop parameters and instrument global
  properties can now be edited. 24 bit samples can be imported. A
  quick-start document has been added. Lots of other minor fixes and
  improvements have been done.

Version 0.0.3 (2007-03-24)

  First version of gigedit. The program is renamed from gigview to
  gigedit as it is now an editor, not just a viewer. Basic support for
  both editing existing gig files and creating new ones from scratch
  is provided.

Version 0.0.2 (2006-11-05)

  Quick fix for a thread initialization problem.

Version 0.0.1 (2006-11-05)

  First version of gigview.
