CHANGELOG.md: Adjust for LADIOS jack_mixer
[jack_mixer.git] / CHANGELOG.md
blob4fae8b9a81b8a790f302a2f19af73480406d2714
1 Change Log
2 ==========
4 ## LADIOS Version 18 (2024-01-04)
6 Fixed:
8 * Compilation with Cython >= 3 has been fixed (#176).
9 * Output channel name changes are properly reflected in input channel control
10   groups (#177).
11 * Prefader kmeters now also fall at same rate regardless of jack buffer size.
12 * The Spanish translations was updated (#168).
14 Changes:
16 * `PyXDG` has been replaced with `appdirs` (#150).
17 * `mesonep517` has been replaced with `meson-python` for PEP-517 compliant
18   builds (for testing needs only) (#179).
19 * The included `nsmclient` module was updated (#164).
21 Features:
23 * NSM implementation now includes support for dirty/clean save status (#154).
25 With contributions from Christopher Arndt, Daryl Hanlon, Nils Hilbricht, Mark
26 Knoop and Daniel Sheeler.
29 ## Version 17 (2021-10-15)
31 Fixed:
33 * Uniform fall rate for kmeter peak indicators across different jack
34   buffer sizes was enforced (#133).
36 Features:
38 * Install a Ray Session template file that tells Ray Session this
39   version has nsm support (#131).
40 * A Spanish translation was added.
41 * Ability to reset absolute peak meter readings after a user chosen
42   time was added (#135).
43 * Custom slider mouse behavior was changed to mimic that of gtk slider,
44   in particular, the fader no longer jumps to click position but requires
45   a click and drag to move it (#137).
46 * Minimum and maximum width for custom sliders was added.
47 * Minimum and maximum width for meters was added.
48 * Meter redraw period as a user preference was added (#139).
49 * Ability to meter pre-fader signal was added (#97).
50 * Keypad plus and minus accelerator for channel shrink/expand (#141)
52 With contributions from Daniel Sheeler and Christopher Arndt and with
53 Daryl Hanlon providing the Spanish translation.
56 ## Version 16 (2021-04-15)
58 Fixed:
60 * Some global settings were not properly persisted in the settings file
61   when changed in the preferences dialog (#124).
62 * Selecting a custom default project path in the preferences dialog via
63   folder selection widget did not update the path in the text entry.
64 * The message formatting in error dialogs was corrected and when an error
65   dialog is shown, the error message printed to the console now only
66   contains a Python traceback when the debug option is active.
67 * Various debug log messages received minor fixes and improvements.
69 Features:
71 * Internationalization (i18n) support was added, making GUI labels and
72   messages and the command line help translatable.
73 * A German translation was added.
74 * A French translation was added.
75 * A global language setting was added to the preferences.
76 * French and German translations of the application description were added to
77   the XDG desktop file.
79 Documentation:
81 * A man page for `jack_mix_box` was added.
82 * A new [contributing guide](./docs/CONTRIBUTING.md) was added to repository.
83 * The section on environment variables in `jack_mixer's` man page was updated
84   and enhanced.
85 * The NSM project URL was updated in various documents.
87 This release was created by Christopher Arndt with Olivier Humbert providing
88 the French translation.
91 ## Version 15.1 (2021-03-15)
93 **Bugfix release**
95 Fixed:
97 * In fixing issue #81 a regression was introduced in version 15, which caused
98   channel volume levels to not be restored when loading a project XML file.
100 * The `Channel.autoset_*_midi_cc` methods in the Cython extension module didn't
101   return the int result from the C functions they call, causing mis-leading
102   debug log messages.
105 Project infrastructure and internals:
107 * A [wiki] was added to the `jack_mixer` GitHub project and a page with
108   instructions on how to install from source on debian / Ubuntu.
110 * The dependencies for building a Python wheel via `pip` were updated.
112 * When building from a Git checkout, the `cython` program is also found when it
113   is installed as `cython3`.
115 * Debug logging can be enabled by setting the `JACK_MIXER_DEBUG` environment
116   variable (for when the `-d` command line switch can't be used, e.g. when run
117   via NSM).
119 This release was created by Christopher Arndt.
122 [wiki]: https://github.com/jack-mixer/jack_mixer/wiki
125 ## Version 15 (2021-02-25)
127 **Important change:** `jack_mixer` now uses [meson] for building and
128 installation. See [INSTALL.md] for new build instructions.
131 New:
133 * A global setting for default project file path was added and can be changed
134   in the preference dialog.
136     The default value is `$XDG_DATA_HOME/jack_mixer` (which is normally
137     `~/.local/share/jack_mixer`).
139 * A "Recent projects" menu was added, to allow loading recently used / saved
140   projects more quickly.
142 * Direct channel output ports are now optional and can be enabled/disabled in
143   the channel preferences dialog.
145 * Ctrl+left-click on the mute ("M") or solo ("S") channel buttons now activates
146   exclusive mute resp. solo.
148 * A man page for `jack_mixer` was added.
150 * `jack_mix_box` now supports the `-p|--pickup` command line option to enable
151   MIDI pickup mode, to prevent sudden volume or balance value jumps.
154 Fixed:
156 * Activating the solo function on an input channel could cause its
157   output signal be sent to the monitor outputs instead of the signal
158   from the channel, which had monitoring activated.
160 * Volume and balance level and mute and solo state changes originating from
161   the UI now send the correct assigned MIDI CCs, allowing for MIDI feedback
162   to controllers. Same for changes originating from reception of assigned MIDI
163   CCs.
165 * The handler for right-clicking the input channel mute/solo buttons, was
166   accidentally removed and is now re-instated.
168 * Creating a new output channel assigns it a randomly chosen color,
169   which can be changed in the new channel dialog (used to work
170   some releases ago, but was broken at some point).
172 * The `jack_mix_box` command line options `--help` and `--stereo`
173   erroneously required an argument.
175 * Saving the current project on reception of the `SIGUSR1` signal, which is a
176   requirement for LADISH level L1 support, was broken in version 14.
178 * When re-ordering channels via drag-and-drop, the order of the edit / remove
179   channel menu items were not updated.
181 * When creating an output channel, it could happen that the initial channel
182   volume would randomly be set to -inf or 0 dB, regardless of what was
183   selected in new channel dialog.
186 Changed:
188 * The minimum supported Python version is now 3.6.
190 * The `jack_mix_box` command line usage help message was improved.
192 * The channel strip buttons (solo, mute, etc.) now have more distinctive colors
193   when activated or the mouse hovers over them.
195 * The balance slider step size was increased slightly so right-clicking the
196   slider changes the value more rapidly.
198 * When using the "Save as..." function, `jack_mixer` now sets the default
199   filename and directory for file chooser to the last ones used.
201 * A window title was added to the preferences dialog.
203 * MIDI control for mute and solo now interprets control value 0-63 as off
204   and 64-127 as on, instead of toggling the state on reception of any
205   controller value.
208 Project infrastructure and internals:
210 * The `jack_mixer_c` Python extension module, which was originally implemented
211   in hand-written C code using the PYTHON C API, was replaced with the
212   `_jack_mixer` extension module implemented in [Cython], which generates the C
213   code in `_jack_mixer.c`.
215 * The autotools build toolchain was replaced with a build setup using [meson],
216   which improves build times and maintainability markedly. See the file
217   [INSTALL.md] for updated build and installation instructions.
219 * A build option to allow building only `jack_mix_box` was added (`-Dgui=disabled`).
221 * All Python code was re-formatted with [black].
223 * All errors and warnings reported by [flake8] were fixed or are explicitly and
224   selectively ignored.
226 * The file `version.py` is now generated from the version set in the project
227   definition in the top-level `meson.build` file, leaving this as the only
228   place where the version number needs to be updated before a release.
230 * The `NEWS` file was renamed to `CHANGELOG.md` and converted to Markdown
231   format.
233 This release was created by Christopher Arndt. With a contribution from
234 Athanasios Silis.
237 [INSTALL.md]: ./INSTALL.md
238 [black]: https://pypi.org/project/black/
239 [Cython]: https://cython.org/
240 [meson]: https://mesonbuild.com/
241 [flake8]:  https://pypi.org/project/flake8/
244 ## Version 14 (2020-10-15)
246 * Changes to channel fader/meter layout and features:
247     * Added K20 and K14 scales.
248     * Added tick marks for left/center/right on balance slider and add tooltip
249       displaying left/right value.
250     * Added maximum width for control group labels. Labels are ellipsized if
251       too long and a tooltip with the full name is added.
252 * Channel add/property dialogs usability improvements:
253     * Remember last used settings for new input/outut channel dialogs (MIDI CCs
254       are always initialized with -1 by default, so they can be auto-assigned).
255     * Channel name is pre-filled in with "Input" or "output" and an
256       auto-incremented number suffix.
257     * Add mnemonics for all input/output channel dialog fields.
258 * When running under NSM, closing the main window only hides UI and the "Quit"
259   menu entry is replaced with a "Hide" entry.
260 * Added a global option to always ask for confirmation when quitting
261   jack_mixer.
262 * Allow drag'n'drop to change channel positions.
263 * Added ability to shrink/expand width of input and output channels.
264 * The font color of control group labels automatically adapts to their
265   background color for better contrast and readability.
266 * Fixed: Ctrl-click on volume fader sets it to 0.0 dbFS, not 1.0.
267 * Fixed: some issues with channel monitoring.
268 * Fixed: don't create empty project file on new NSM session.
269 * Fixed: on project load, give input focus to fader of last added channel and
270   deselect volume entry widget so keyboard input doesn't accidentally change
271   the value.
273 With contributions from Christopher Arndt, Daniel Sheeler and Frédéric Péters.
276 ## Version 13 (2020-07-16)
278 * Added NSM support.
279 * Store preferences to per session config file to override global
280   preferences.
281 * Added accelerator shortcuts to menu items.
282 * New ctrl-click, double-click, scroll, and click-drag-anywhere
283   fader behaviors.
284 * Added MIDI 'Pick Up' behavior to avoid discontinuities.
285 * Can choose output channel colors.
286 * Changed to logarithmic ramping on volume changes.
287 * Added a pre/post fader button.
288 * Pick volume for new channels.
289 * Allow manual setting of MIDI control change numbers.
290 * Remove GConf; use plaintext .ini preferences file instead.
291 * Remove remnants of Swig python bindings.
293 With contributions from Daniel Sheeler and Christopher Arndt.
296 ## Version 12 (2020-06-22)
298 * Added reporting of the current volume through SIGUSR1 signal to
299   jack_mix_box.
300 * Reset color of over 0db/NaN peak on click.
301 * Fixed memory leaks.
302 * Fixed some Python 3 compatibility leftovers.
304 With contributions from Daniel Sheeler and Athanasios Silis.
307 ## Version 11 (2020-06-18)
309 * Spread out volume transition over a period of time to reduce
310   discontinuities.
311 * Port to pygobject and GTK3.
312 * Port to Python 3.
314 With contributions from Daniel Sheeler.
317 ## Version 10 (2014-04-27)
319 * Fixed change of channel settings (#18299)
320 * Added a MIDI out port for feeding back volume levels into motorized
321   controllers
322 * Added jack_mix_box, a minimalistic (no UI) jack mixer
323 * Added a trayicon and minimize to tray feature
325 With contributions from John Hedges, Sarah Mischke, and Nedko Arnaudov.
328 ## Version 9 (2010-10-04)
330 * Changed to no longer appends PID to jack client name (#15006)
331 * Added 'Edit .. channel' submenus
332 * Set a default 'apply' button in channel properties
333 * Fixed creation of  mono channels
334 * Removed bad crackling when changing the volume through MIDI
335 * Moved back to polling for MIDI events, to avoid the need for threads
336 * Changed to use backward compatible call to gobject.timeout_add (#14999)
337 * Updated not to fail if we can't get lash server name
338 * Added support for Ladish level 1
339 * Improved SIGUSR1 handling
341 With contributions from Nedko Arnaudov and Arnout Engelen.
344 ## Version 8 (2009-12-16)
346 * Fix private modules lookup
347 * Fix rotation of output channel colours
348 * New menu items to remove output channels
349 * New command line parameter to not connect to LASH
352 ## Version 7 (2009-12-14)
354 * New maintainer, thanks Nedko for everything!
355 * New icon by Lapo Calamandrei
356 * Option to have a gradient in the vumeters
357 * Option to use stock GtkScale widget for volume and balance
358 * Rewrite of the C/Python binding (this removed the dependency on SWIG)
359 * Improve performance when drawing vumeters
360 * New menu items to load/save settings
361 * New "Channel Properties" dialog, allowing to change assigned MIDI CCs
362 * Automatic post fader outputs for input channels
363 * Possibility to add new output channels, besides main mix
364 * New "monitor" output, assignable to any output channel, or input channel
365   (in which case it will take its prefader volume)
366 * Removal of PyXML dependency
368 With contributions from Nedko Arnaudov, Lapo Calamandrei, Arnout Engelen,
369 and Krzysztof Foltman.
372 ## Version 6 (2009-07-25)
374 * Fix building against jack 0.102.20
375 * Handle python prefix different from install prefix
376 * Fix LASH-less operation
377 * Update install instructions after lash-0.5.3 and phat-0.4.1 releases
378 * Apply Markus patch (thanks!) for sr #1698 (can't restore session using LASH)