qmidiarp-0.7.0 (2023-05-18)

New Feature
  o The LV2 plugins of the modules now also ship with new UIs based on 
    the robtk toolkit by Robin Gareus. A copy of robtk is included in 
    the source tarball. Depending on the LV2 host, either the Qt-based 
    X11 UIs or the new RTK UIs will be displayed. They feature all 
    functions of the original UIs with exception of the Arp plugin's 
    pattern string editor, which wasn't working properly on some LV2 
    hosts anyway. The provided Arp presets are, however, selectable 
    from the host.
    
qmidiarp-0.6.7 (2023-04-11)

New Features
  o Package: a cmake build environment is now available with the goal
    of less pain with libtool.
  
Fixed Bugs:
  o fixed two small non-realtime function calls that had sneaked in last
    year.
  o fixed several lv2lint FAILS: lv2:resize extension was removed, 
    lv2ui:qt5ui is no longer exposed, globally visible library symbols 
    were hidden. lv2lint still reports being unable to instantiate the 
    uis, but all tested hosts were able to do it.
    
qmidiarp-0.6.6 (2023-04-08)

New Features
  o LFO: New control for phase of calculated waveforms (Matthew McGuire)
  o Global Store: Each storage location now has a "number of repetitions"
    property accessible through the context menu. 
  o Global Store: Each storage location now has a "Go here and stay" 
    storage sub-button to force remaining at that location.
  o ALSA MIDI: Sending MIDI Clock to a specified ALSA port is now 
               available as a new preferences option

Improvements
  o LFO and SEQ: More size and resolution values including odd values
    Although there is compatibility check in place for saved sessions,
    this may lead to wrong values for saved LV2 states if someone
    uses this at all.
    Long sequences only make sense for lower resolution. Drawing would
    not be possible with high resolutions and lengths.
  o SEQ: Improved display of loop marker
  o SEQ: Increased lower octave transpose range
  o Global Store: Preferences option to choose whether to store mute states
  o LV2: a X11 plugin UI interface is now available

Fixed Bugs:
  o Regression: Arp strayed in notes with zero velocity
  o LV2: restored compatibility with suil > 0.10.2
  o Crash when session managers tried to save/restore empty session
  o Regression with application of compact widget style
  o Regression when reading files with time module index -1
  o Output port count could not be changed on commandline

Changes:
  o Jack-Session support has been removed due to "official deprecation"

qmidiarp-0.6.5 (2017-12-17)

Improvements
  o MIDI OMNI Mode receiving on all MIDI channels is now available and
    even default for all modules.
  o Arp: Some more 'factory' patterns added to the LV2 presets and to
    the .qmidiarprc file. Latter requires deleting the original one in 
    the home directory and launching the standalone application.
  o Arp: New pattern repeat mode "As Played" for following the played
    note order instead of reorganizing them up, down or random. 
  o Arp: For deliberately clearing buffered incoming notes the modules
    now all react to ALL_NOTES_OFF and ALL_SOUND_OFF MIDI messages.
  o LV2: The DSP ("generic") parameter interface has gotten some 
    improvements for better usability (thanks Holger Wirtz for input on 
    this)

Fixed Bugs:
  o LV2: Latch mode was not working properly when using release function.
  o LV2 Arp: when running with host transport sync, transport start 
    caused received notes to be cleared. This also cleared those notes 
    received before the transport was starting and led to missed notes
    especially in qtractor. This should work better now.
  o Seq and LFO: the "Note Off" option had no effect (regression).
  o Recent Files menu in main app displayed extra characters with Qt5.

General changes:
  o Building against Qt5 is now default. No more --enable-qt5 needed.
  o LV2: Category set to MIDIPlugin instead of Instrument
  o The DSP classes including the LV2 DSP modules no longer use
    Qt libraries. However the LV2 and App GUIs do.
  o New build configure options for more flexibility
    --enable-alsa (default=yes) set no for building on systems without alsa
    --enable-buildapp (default=yes) set no for building only LV2 modules
    --enable-lv2-pluginuis (default=yes) set no for LV2 module dsps only

qmidiarp-0.6.4 (2016-11-01)

Improvements
  o All Modules now have the Note Filter already present in the Arps.
    Also, the note range entries can now be set by MIDI learn
  o Arp: The octave mode is now defined by independent upper/lower bounds
    (feature request #12 by ssj71)
  o LFO: New waveform flip button (feature request #11 by MilkMiruku)
  o Seq: The output MIDI channel is now a MIDI controllable item. This
    allows for instance an LFO to control the Seq MIDI channels for 
    dispatching sounds within a sequence (feature request #13 by Menno)

Fixed Bugs
  o LFO: Offset slider didn't follow drawing and led to jumps on 
    first use
  o LFO: Waveform type switched to custom when muting points (bug #16
    reported by MilkMiruku)
  o Arp: When using Global Storage "Restore", the restore step was 
    incorrect


qmidiarp-0.6.3 (2015-11-01)

Fixed Bugs
  o LV2 Arp: Regression: Display updates no longer worked when changing
    arp patterns
  o Configure script caused trouble on certain build systems (bug #15
    raised by the Mageia team)
  o LV2: Qt5 UIs did not have the correct UI type entry in ttl files
  
Improvements
  o LV2 Arp: Factory pattern presets are now accessible as LV2 presets
  o LV2 Arp: Latch mode now also available in LV2 plugin


qmidiarp-0.6.2 (2015-10-06)

Fixed Bugs
  o Arp: Regression: Latch mode caused the first note playing on 
    forever and other annoyances (Bug #12 reported by Alois Cochard)
  o Seq: Small position error of the helper tick line relative to the
    notes placed
  o Seq: Note length values saved to file were not correct and had no
    correct default (Bug #14 reported by Steve Grace)
  o LV2 Seq and Lfo: Display was not correct when diminishing resolution
    or length in plugin UI
    
Minor improvement
  o LV2 Seq: Vertical zoom values are part of the controls and therefore
    saved in presets as well 


qmidiarp-0.6.1 (2014-09-24)

New Features
  o Arp: There is now an octave mode allowing for cycling up and down
    octaves after finishing a pattern, a somewhat long missing feature
  o Build on Qt5 is now supported via configure option: --enable-qt5

Fixed Bugs
  o MIDI 'Note Off' events are now sent as such as required by JACK MIDI
    and LV2 specification, in which 'Note On - Velocity zero' is not
    equivalent and not even allowed
  o LV2
    - On transport stop, currently active notes were not switched off
    - Muted LFO wave points caused the offset slider to not work properly
    - Removal of .la files did not account for DESTDIR (bug #8, thanks to
      Karl Lindèn)
  o MIDI Clock Sync sometimes got off the hook after several measures
  o Better autoconf library checks

Changes
  o LV2 module Transport Mode is now set to Host Transport by default so
    that the modules come up in stopped state

  
qmidiarp-0.6.0 (2014-01-01)

New Features
  o LV2 Plugins are now available for Arp, LFO and Seq modules
    - They have full functionality as known from the standalone
      application except MIDI control, which can be provided by the host
    - The LFO plugin also has a LV2 control output scaled from 0 to 1
    - When the 'Sync to host' option is checked, the plugins support
      transport LV2 atom data from hosts as well as host transport
      information available from designated lv2 time ports (Qtractor,
      thanks Rui!)
    - Arp pattern presets are available in the LV2 module but cannot be
      written to the .qmidiarprc file. This has to be done with the
      standalone application
    - On hosts with small atom port capacities that do not honor the
      lv2 rsz:MinimumSize property, there will be issues with displaying
      very large LFO waveforms
    - Features of QMidiArp beyond the modules themselves (including
      global storage) are not available

Fixed Bugs
  o Trying to open an inexistent file from the recent files menu led to
    crash (reported by Frank Neumann)


qmidiarp-0.5.3 (2013-11-26)

New Features
  o Random functions for sequencer and LFO steps and arp repeat mode
    (feature request #5 Keith Milner)

Improvements
  o NSM support now handles import/export/clear to facilitate
    getting started (Roy Vegard Ovesen)
  o Tempo is now MIDI-controllable (MIDI-learn)
  o Sequencer transpose slider is now MIDI controllable (MIDI-learn)
    (feature request #7)
  o Sequencer pattern maximum length extended to 32 bars
    (feature request #6)

Fixed Bugs
  o LFO offset jumped back to fixed value when MIDI controlled
    (bug #6 distrozapper)
  o Arp trigger behavior was not practical with chords pressed on keyboard
    (bug #7 Burkhard Ritter)
  o JACK Transport no longer worked when no JT Master tempo was present
    (bug #5 Barney Holmes)
  o Deleting an arp pattern in text window while running caused crash
  o Note lengths were not consistent between alsa and jack backends
  o Note lengths did not account for current tempo
  o Sequencer did not honor "D" button when MIDI controlled
  o Seq note length is now a 16th at half slider scale


qmidiarp-0.5.2 (2013-05-09)

New Features
  o Tempo changes are again possible while running, both manually or by
    a Jack Transport Master
  o Jack Transport position is now taken into account when starting,
    QMidiArp used to start always at zero
  o Muting and sequencer parameter changes can be deferred to pattern
    end using a new toolbutton
  o Modules in the Global Storage window have mute/defer buttons
  o Global Storage location switches can be set to affect only the pattern
  o Non Session Manager support with "switch" capability (thanks to
    Roy Vegard Ovesen)

General Changes
  o NSM support requires liblo development headers (liblo-dev package)


qmidiarp-0.5.1 (2012-11-17)

New Features
  o Global Storages have new features accessible through right-click
    on each storage location. You can choose if at pattern end another
    storage location is automatically selected and create dynamic pattern
    sequences.
  o Global Storage now has a position pacman indicator for each module
  o Clicking on the top button in the global store window now raises the
    selected module window
  o When Jack is not available at program start, show a message window
  o Introduce semitone shifts in Arp patterns (request 3574549 by gionnico)
  o Allow repetition of the 0 note within chords to stack notes when only
    a single note is played on the keyboard (request 3574549 by gionnico)
  o The module input-output panels on the left can now be hidden, this
    leaves some more space when running several modules side-by-side

Fixed Bugs
  o When starting from scratch, qmidiarp sometimes didn't start with
    internal clock
  o When editing an arp pattern while running, qmidiarp crashed when the
    pattern length reached zero
  o Deleting the last module sometimes crashed qmidiarp
  o Trigger mode sometimes caused hanging when a new note was received
  o Global Storage locations did not get updated when module names changed

General Changes
  o There have been many changes toward realtime compatibility under the
    hood. In particular, there are no more memory allocations/frees in
    the realtime component.
  o LFO Waveforms with high resolutions and lengths appear with finer
    streaks
  o The Mute state of each module is no longer changed when a parameter
    restore is done
  o Overall CPU usage should be slightly reduced


qmidiarp-0.5.0 (2012-03-24)

New Features
  o New global storage handler allows storing and switching of parameters
    and patterns between different storage locations. The restore switch
    can be triggered after a specified module reaches its pattern end or
    after a full number of beats. Switch can be done for a specific
    module only or for all modules globally.
  o Storage switches can be done by MIDI controller. The controller value
    specifies the storage location.
  o A new Legato option permits module triggering also by notes played
    legato.

Fixed Bugs
  o ALSA backend had become unstable in version 0.4.4 by some direct
    function calls across threads.
  o LFO waveform display didn't get updated during recording
  o LFO recording caused restarting/triggering when it shouldn't
  o Seq cloning led to crashes under certain conditions


qmidiarp-0.4.5 (2012-01-21)

Fixed Bugs
  o JACK Transport start with ALSA backend was broken in 0.4.4
  o Event forwarding port index was uninitialized in JACK MIDI backend


qmidiarp-0.4.4 (2011-12-24)

New Features
  o JACK MIDI backend doesn't require Jack Transport anymore

Improvements
  o Better usability of the sequencer loop marker
  o Improved LFO offset slider behavior
  o Quantization to the minimum stepwidth in Arp modules active when
    changes in Arp patterns occur

Fixed Bugs
  o Crash on startup in JACK MIDI mode on certain systems
  o When cloning modules, the current play direction wasn't copied
  o Unmatched MIDI event forwarding didn't work with Arp modules
  o Typo in english manpage


qmidiarp-0.4.3 (2011-11-20)

New Features
  o Groove functions now work for all modules, not only Arps
  o Effect of groove settings is displayed in the Arp/LFO/Seq screen
  o LFOs can be triggered and restarted by the keyboard
  o When reducing the size of LFO waves or Sequences, the original data
    is kept in memory and is also saved to the session file as a whole
  o LFO and Seq play direction can now be chosen, and bouncing loops are
    possible
  o New user positionable loop marker in Seq module. The marker is
    placed by left or right mouse click on the bottom cursor line of the
    sequencer and represents an additional return/loop point. It can be
    removed again by clicking in the bottom left or right area of the
    Seq screen.
  o Triggered one-shot play of LFO and Seqs improved
  o JACK MIDI backend available. This is now default, use the -a option
    for getting the ALSA backend
  o JACK Session support when using JACK MIDI backend

Fixed Bugs
  o A rounding error led to desync when Arps were used with groove shift
  o MIDI controls for Groove did not initialize upon "New..."
  o MIDI Controllers assigned to multiple destinations stopped at the
    first one encountered and ignored all others

General Changes
  o JACK MIDI is now the default backend, -a option enables ALSA backend
  o Obsolete .qma text file import removed


qmidiarp-0.4.2 (2011-07-10)

New Features
  o LFO wave lengths up to 32 bars for very low frequencies
  o Groove Settings and LFO & Seq resolutions now also MIDI-controllable
  o One-click duplication of LFO and Seq modules
  o Option to add new modules in muted state
  o Vertical Zoom switch for Seq module display
  o ToolBars can be positioned vertically
  o Nested arrangement of modules allows more flexible layouts

Fixed Bugs
  o 0.4.1-patch had been available for the following two:
    o Jack Transport sync arbitrarily stopping with only arp modules
    o Instability with ALSA clock with only Seq and LFO modules
  o Faster response to Jack Transport state changes
  o Incorrect response to two Seq sliders

General Changes
  o Jack Transport sync uses jack process callback not sync callback


qmidiarp-0.4.1 (2011-05-29)

New Features
  o All modules now have a playhead cursor
  o LFOs can record controller data by a MIDI-learnable Record button.
  o Seq modules handle note events at the input for triggering
  o Spanish translation thanks to Pedro Lopez-Cabanillas (plcl)
  o Czech translation thanks to Pavel Fric
  o Functional doxygen documentation available by "make doxygen-doc"
  o New SVG icon and desktop file


qmidiarp-0.3.9 (2011-01-05)

New Features
  o Arpeggio pattern preset infrastructure
  o Synchronized MIDI LFO modules added
    LFOs have calculated and drawable waveforms, selectable frequency,
    amplitude, offset, time resolution and length
  o Synchronized step sequencer modules added
    Step sequencer can be transposed and velocity-modulated by received
    notes, sequence can be drawn on the fly
  o Pianoroll-type display of arp patterns and cursor line
  o Envelope function for chord arpeggios with high polyphony
  o Latch mode or Footswitch for holding notes in arpeggio buffer
  o Keyboard-triggered or -restarted arpeggiator mode
  o Input note delay strongly reduced making QMidiArp suitable for live
    play
  o MIDI-learnable control of many live-relevant functions
  o MIDI realtime clock slave synchronization
  o JACK transport client synchronization
  o Event log entries are color-coded, optional MIDI Clock event display
  o Re-designed graphical user interface:  all modules and dialogs
    are dockable floatable windows, main and file icon toolbars added
  o New .qmidiarprc file containing GUI settings, user arp patterns and
    last file path
  o Save and SaveAs functions with modification monitoring
  o All relevant session parameters stored in new .qmax XML session file
  o Manual pages in English, French and German
  o Handler for SIGINT added to handle unsaved or changed files more
    carefully at program termination.
  o Handler for SIGUSR1 added to provide support for LADISH level 1.
  o Separate threads for ALSA Sequencer Queue handler and arpeggio engine


General Changes
  o Port form Qt3 to Qt4 library.
  o MIDI Channels and ALSA port id's displayed from 1...16
  o On-the-fly tempo changes are disabled
