samplv1 - an old-school polyphonic sampler
------------------------------------------

ChangeLog


0.9.8  2019-06-06  A Spring'19 Release.

- Improved slew-rate to DCF Formant coefficient updates.
- Refactored the LFO Sync for correctness.
- Fixed all LFO Panning and Volume modulation, now being
  correctly isolated on a per voice basis.
- Fixed initial LFO wave shapes on LV2 plug-in UI.
- Minor update to Debian packaging control file.


0.9.7  2019-04-14  A Spring-Break'19 Release.

- Corrected sample offset and loop range internal reset.
- All audio input now get through without being processed
  by any or whole effects stage anymore.
- Re-defined all JACK stand-alone client application UNIX
  signal handling.
- Probable fix to sample offset and loop range changes across
  native UI and loading and saving state.


0.9.6  2019-03-18  Pre-LAC2019 Release Frenzy.

- A gentlier shutdown for the JACK client standalone client.


0.9.5  2019-03-04  The End of Winter'19 release.

- Improved overall stability for current sample offset and
  loop range, cross-fade and zero-crossing property changes
  across UI's, eg. LV2 plug-in native GUI and a host generic
  provided one.
- HiDPI display screen support (Qt >= 5.6).
- A fake/visual piano-keyboard widget is now being introduced
  to the status bar.
- Avoid destructing the possibly shared QApplication instance
  on LV2 plug-in UI clean-up.


0.9.4  2018-12-12  A Late Autumn'18 release.

- Make sure all LV2 state sample file references are resolved
  to their original and canonical file-paths (not symlinks).
- Fixed a severe bug on saving the LV2 plug-in state: the
  sample file reference was being saved with the wrong name
  identifier and thus gone missing on every session or state
  reload thereafter.
- Sample waveform drawing is a bit more keen to precision.
- Old deprecated Qt4 build support is no more.
- Normalized wavetable oscillator phasors.
- Added missing include <unistd.h> to shut up some stricter
  compilers from build failures.


0.9.3  2018-10-22  An Autumn'18 release.

- For safety reasons, all processing is now suspended while
  loading presets or program changes are issued.
- AppStream metadata updated to be the most compliant with
  latest freedesktop.org specification and recommendation.
- SIGTERM (and SIGINT) signal handler added to close the JACK
  stand-alone client applications properly.
- Make the GUI not to show initially on NSM.
- Sample offset/loop start/end parameters automation is now a
  possibility, on the LV2 plug-in form only.
- Make NSM state independent to session display name, keeping
  backward compatibility for old sessions.
- Give some more slack to schedule/worker thread ring-buffer.


0.9.2  2018-07-24  A Summer'18 release.

- Frame-time display format option added to new offset,
  loop-start and loop-end spin-boxes.
- Sample start point (offset) added as a brand new property
  parameter.
- Add LV2 UI Resize extension data support.
- Process MIDI Controlllers even though the channel filter
  is on (DEF Channel is set anything but "Omni").
- AppData/AppStream metadata is now settled under an all
  permisssive license (FSFAP).


0.9.1  2018-06-26  An Early Summer'18 release.

- Loop crossfading and zero-crossing detection (the later
  being an old staple by default) are now set as brand new
  user options accessible from the main UI.
- Fixed for some g++ >= 8.1.1 warnings and quietness.
- Added LV2 UI X11 support option.
- Disable reference micro-tuning settings when a Scala
  keyboard map override is in effect.
- Added "All files (*.*)" filter to every file requestor
  dialog, wherever missing.


0.9.0  2018-03-07  The End of Winter'18 release.

- Introducing Scala micro-tuning classes, borrowed, stirred
  and refactored from original Nick Dowell's amsynth code,
  all under the GPL umbrella, of course.
- An internal note-key/frequency indirection table is now in
  place, as a baseline for any micro-tuning implementations.
- Whether to use native file browser/requester dialogs is
  now an effective option when launching under NSM session
  management (was once disabled initially).
- Initializing and/or requesting a New blank preset doesn't
  open a sample file picker dialog anymore as it was more
  than nagging while under on NSM sessions.
- Trying to get CC14 MSB+LSB (course+fine) running status on,
  no matter whether each pairing event are under 200ms apart.
- A little hardening on the configure (autoconf) macro side.


0.8.6  2017-12-20  The End of Autumn'17 release.

- Micro-fade-in/out that were stapled at the loop start/end
  points respectively is now gone.
- Set on a minimum attack time of 500usec as much to prevent
  audible clicking on low-pitched notes.


0.8.5  2017-10-29  An Autumn'17 release.

- Sample files are now saved as symlinks when saving to JACK
  and/or NSM session directories/folders.
- Opening multiple preset files is now possible, populating
  the preset drop-down listing, while only the first one is
  loaded effectively into the scene as usual.
- Mono(phonic) "Legato" mode option introduced.
- Desktop entry specification file is now finally independent
  from all build/configure template chains, whatever.
- Updated target path for freedesktop.org's AppStream metainfo
  file (formerly AppData).


0.8.4  2017-08-22  A Late-Summer'17 release.

- Disabled "Custom style theme" option on LV2 plug-in form.


0.8.3  2017-06-21  A Summer'17 release.

- Added StartupWMClass entry to desktop file.
- Long overdue, some brand new and fundamental icons revamp.
- Play (current sample) menu item has been added to sample
  display right-click context-menu as for triggering it as
  an internal MIDI note-on/off event.


0.8.2  2017-05-02  Pre-LAC2017 release frenzy.

- A custom knob/spin-box behavioral option have been added:
  Configure/Knob edit mode, as to avoid abrupt changes upon
  editing values (still the default behavior) and only take
  effect (Deferred) when enter is pressed or the spin-box
  loses focus.
- The main GUI has been partially revamped, after replacing
  some rotary knob/dial combos with kinda more skeuomorphic
  fake-LED radio-buttons or check-boxes.
- A MIDI In(put) status fake-LED is now featured on the
  bottom-left status bar, adding up to eye-candy as usual.


0.8.1  2017-03-21  A Spring'17 release.

- Fixed a probable old miss about changing spin-box and
  drop-down list not reflecting changes immediately into
  the respective parameter dial knobs.
- Fixed middle-button clicking on the dial-knobs to reset
  to the current default parameter value.
- Help/Configure.../Options/Use desktop environment native
  dialogs option is now set initially off by default.
- Added French man page (by Olivier Humbert, thanks).
- Make builds reproducible byte for byte, by getting rid of
  the configure build date and time stamps.


0.8.0  2016-11-17  A Fall'16 release.

- LV2_STATE__StateChanged is now transmitted as a regular
  atom notification event, as far as to give some careful
  hosts enough slack to raise a dirty flag.
- Fixed input MIDI RPN/NRPN running status processing.
- Once forgotten, loop on/off setting is now consequential.
- Almost complete overhaul on the configure script command
  line options, wrt. installation directories specification,
  eg. --prefix, --bindir, --libdir, --datadir and --mandir.


0.7.6  2016-09-19  The Eleventh official beta.

- MIDI RPN/NRPN running status and RPN NULL reset command
  are now supported (input only).
- The core engine implementation is now delivered as a shared
  object library, common to both the JACK stand-alone client
  and the LV2 instrument plug-in.
- Discretely fixed MIDI Controlllers catch-up algorithm.


0.7.5  2016-06-16  The Tenth official beta.

- LV2 Patch property parameters and Worker/Schedule support
  are now finally in place, allowing for sample file path
  selections from generic user interfaces.
- All changes to most continuous parameter values are now
  smoothed to a fast but finite slew rate.
- All BPM sync options to current transport (Auto) have been
  refactored to new special minimum value (which is now zero).
- In compliance to the LV2 spec. MIDI Controllers now affect
  cached parameter values only, via shadow ports, instead of
  input control ports directly, mitigating their read-only
  restriction.
- Make sure LV2 plug-in state is properly reset on restore.
- Dropped the --enable-qt5 from configure as found redundant
  given that's the build default anyway (suggestion by Guido
  Scholz, while for Qtractor, thanks).


0.7.4  2016-03-02  The ninth-bis official beta.

- Fixed the DCF Formant filter voice initialization reset.
- French translation updated (by Olivier Humbert, thanks).


0.7.3  2016-02-22  The ninth official beta.

- Avoid out-of-bound MIDI events as much as possible, coping
  with LV2 plug-in hosts that feed/run them in on border line
  circumstances (as reported by Thorsten Wilms, on suspected
  Ardour looping crash/bug, probably fixed already, thanks).
- Tentatively safe defaults are being introduced to internal
  OUT FX buffer-sizes, as read from JACK buffer-size changes
  and LV2 block-length instantiation bound options.
- Added application keywords to freedesktop.org's AppData.


0.7.2  2015-12-04  The eighth official beta.

- A brand new LFO BPM control parameter is being introduced,
  as a subordinate to LFO Rate, with follow/sync to current
  transport/host option (BPM=Auto).
- LFO Sync (free running) mode option has been introduced.
- A fourth DCF type has been added: a vocal Formant filter.
- A third DCF slope/type has been added: the RBJ's bi-quad.
- Prefer Qt5 over Qt4 by default with configure script.
- Introducing brand new OUT FX Send parameter per engine.
- Special value (0=Off) added to GEN Glide knob spin-box.


0.7.1  2015-08-24  A seventh-bis official beta.

- Improved Qt4 vs. Qt5 configure builds (via qmake).


0.7.0  2015-07-24  A seventh official beta.

- Complete rewrite of Qt4 vs. Qt5 configure builds.
- Reset ramps after LV2 control port reconnection; small fixes
  to LV2.ttl (pull-requests by Hanspeter Portner aka. ventosus
  on synthv1, thanks).
- MIDI Controllers/Programs is now an optional feature on the
  LV2 plugin forms, as some LV2 hosts might enforce the purity
  restriction to input control ports as being absolutely read-
  only parameter values from a plugin's instance perspective.
- MIDI Controller mapping/learn is now possible on all parameter
  control knobs; with global configuration also avaiable on the
  Help/Configure dialog.
- French (fr) translation line to desktop file added (by Olivier
  Humbert, thanks).


0.6.3  2015-05-09  A sixth official beta.

- Main widget layout changed as much to allow sampler display to
  expand or grow vertically as needed.


0.6.2  2015-04-30  A fifth official beta.

- Custom knob/dial behavior mode options are now introduced:
  linear and angular (aka. radial) as far to avoid abrupt
  changes on first mouse click (still the default behavior).
- Fixed for some strict tests for Qt4 vs. Qt5 configure builds.


0.6.1  2015-03-09  A fourth official beta.

- Added application description as freedesktop.org's AppData.
- Introducing LV2 port-groups (as proposed by Amadeus Folego aka.
  badosu, thanks).
- Improved envelope widget nodes click-and-drag precision.
- Sample file drag-and-drop support has been added.
- Introducing a brand new user preference on eye-candy: cf.Help
  /Configure.../Options/Custom style theme (applies to the JACK
  stand-alone client only though).
- Envelope and filter now rendered with anti-aliased lines.
- Fixed a Qt5 FTBFS re. QHeaderView::set[Section]ResizeMode().


0.6.0  2014-01-23  A third official beta.

- MIDI bank-select/program-changes is now supported, for patch,
  preset and/or instrument program control.
- New Help/Configure dialog is introduced for editing the also
  new MIDI bank/programs interface and user preference options
  as well (new home of the old Help/Use native dialogs option).
- Presets may now be specified by base name, as an alternative
  to the complete preset file-path on command line argument (re.
  stand-alone JACK client).
- Fixed parameters A/B comparison swap.


0.5.1  2014-09-12  One second official beta.

- One decimal digit added to all scalar parameters and knobs.
- Stand-alone JACK client ports outrageously renamed from a
  zero based numbering scheme into a plus one natural one.
- Experimental LV2 Time/position atom-event support (Delay BPM).


0.5.0  2014-06-30  Officially beta now.

- LV2 UI Idle and Show interfaces support added.
- First attempt to allow a headless stand-alone JACK client
  application run mode, without a GUI, with option given as
  command line argument (--no-gui).
- A man page has beed added (re. stand-alone JACK client).
- Reverse sample option and parameter knob added.
- Allow the build system to include an user specified LDFLAGS.


0.4.2  2014-04-29  A pre-LAC frenzy beta.

- Badly named 'Noise' wave-shapes re-labeled as 'Rand'; also
  a brand new wave-shape 'Noise' is then introduced (now for
  real :)).
- New user preference option, cf. Help/Use native dialogs.
- An anti-denormal regression applied to the Phaser fx stage
  (affecting early proto-beta >= 0.4.0).


0.4.1  2014-04-07  A proto-beta bis.

- Once so called 'Noise' wave-shapes are now being made a lot
  more deterministic, read idempotent ;).
- Late optimizations to basic wave-table oscillators.
- Make sure the LV2 plugin back-end always builds first, before
  its respective LV2 UI front-end client.


0.4.0  2014-03-06  A proto-beta party.

- All knobs default value setting slightly improved.
- A run-time circumvention have been hacked, strictly related
  to when NSM session management is in charge: the native file
  browser/requester dialogs are then disabled (were taking too
  long to list the current directory on first time invocation).
- Auto-detection of the correct target library path for the
  LV2 plugin, whether it may be .../lib or .../lib64 on bi
  -arch targets, when libdir is not specified on configure
  time (--libdir=LIBDIR).
- Reverb has been added as a brand new effects stage, though
  based on good old FreeVerb :).
- Introduced a variable env.stage time control parameter.
- Purging out some dead code (eg. non-looping, zero-crossing).


0.3.6  2013-12-31  A fifth of a Jubilee.

- Effects/Delay BPM sync option to current transport (Auto).
- Fixed for relative paths on preset file references.
- More preparations for Qt5 configure build.


0.3.5  2013-09-30  Fall greetings.

- First attempt on separating the DSP code from UI as runtime
  objects, effective for the LV2 plugin deploy.
- MIDI channel filter switch is now introduced.
- Fixed uninstall target make rule.
- Mono(phonic) mode switch is now being introduced.
- Another minor fix to note-off fast-release.


0.3.4  2013-07-16  Brand new icon ready.

- Preset file icon and mimetype now introduced.
- A brand new icon drops the lamest old-schooler's out, in a
  master lesson taught by Jarle Richard Akselsen, thanks.


0.3.3  2013-05-31  Late spring blossoming.

- Some sympathy to extreme dark color (read black) schemes is
  now being indulged; some discrete changes on the icon front
  has also emerged ;)
- MIDI Key pressure/polyphonic aftertouch events now properly
  recognized, in addition to MIDI channel pressure/aftertouch
  processing.
- Parameter value ramping moved into the late post-processing,
  an attempt to reduce some pop/click artifacts even further.
- NSM support introduced to JACK client.
- A slight GUI behavior change: (re)writing existing names
  doesn't load the respective preset anymore (after ticket
  by Jiri Prochazka aka. Anchakor, thanks).
- Introducing LV2 External UI "rogue" support.
- Moog-like 24dB/oct resonant filter slight modification.
- Fixed JACK client fail/fake initialization.


0.3.2  2013-03-01  One third bug-fix release.

- Pitch-bend, Modwheel and LFO Pitch range internal fixes.
- LV2 State save flags now forced to be portable POD.
- Sustain/damper pedal switch (MIDI CC#64) support added.
- Color palette hack on Qt5 dark themes.


0.3.1  2013-02-08  One second bug-fix release.

- Improved filters parameter sensitivity (cutoff, reso).
- Envelope generators stage curves now gone a little more old-
  schooler and analog-like, hopefully improving on the punchy
  and click-less sound front.
- Experimental LV2 Time designated port support (Delay BPM).
- Preparations for Qt5 migration.
- Sample loop points were missing the LV2 UI state restoration.


0.3.0  2012-12-21  Third coming release.

- Sample loop points (start, end) support added.
- Dropped all SSE dummy build optimization flags as they were
  making more harm than real good, performance wise.
- GUI layout moved from a toolbox into a stacked tab widget;
  also, a status-bar has been added at the bottom display.
- LV2 Atom/MIDI event processing is now official, a replacement
  for the formerly deprecated LV2 Event/MIDI specification.
- Added dirty checking also on switching from unamed presets.
- JACK stand-alone: preset loader initialization fix.


0.2.0  2012-11-22  Second public release.

- Parameters A/B comparison toggle buttons have been added.
- Keep LV2 event buffer valid on each run(), as found for strict
  LV2 specification and compliance (as suggested by falkTX).
- Increased polyphony baseline from 24 to 32 voices.
- Prepared for relative paths from preset file references.
- Audio files browser filter support for the old but everlasting
  8.3 filename formats.
- Velocity sensitivity configuration control has been added.
- Reset (all values to preset defaults) button has been added.
- Slight minor fix on fast-release re-triggering.
- Sample widget context menu's now a reality.
- Added some command line options to the stand-alone JACK client
  program (--help and --version information).
- Reimplemented mouse-wheel stepping on combo-dial knob widgets.
- Access to core engine instance has been slightly refactored.
- Detached generic double-linked list class into its own header.


0.1.1  2012-09-24  One first bug-fix release.

- Fixed a crash bug on LV2 main widget close (GUI) due to some
  superfluous preset dirty checking.
- Fixed a nasty rather fundamental bug introduced by late voice
  list optimization, which was seriously crippled and noticeable
  when more than one LV2 plug-in were being instantiated.


0.1.0  2012-09-10  First true official release.

- Preset drop-down list is now sorted.
- Migrated to sourceforge.net.


0.0.9  2012-08-27  Post-vacation relax.

- LV2 plugin also asking for sample file when initializing (GUI).
- Main widget now a plain basic QWidget, instead of QDialog.
- Preset salvage query check on main widget close (GUI).
- Voice list alloc/free optimization--doubled polyphony.


0.0.8  2012-07-15  Second coming consolidation.

- Proto-icon, Desktop file and Help About menus added.
- LV2 State Files support added.


0.0.7  2012-07-07  Initial change-log entry.
