Minor Python module installation tweak
[jack_mixer.git] / CHANGELOG.md
blobb19c02a13c6785326ca26b8408f13133a486874c
1 Change Log
2 ==========
5 ## Version 15 (2021-02-25)
7 **Important change:** `jack_mixer` now uses [meson] for building and
8 installation. See [INSTALL.md] for new build instructions.
11 New:
13 * A global setting for default project file path was added and can be changed
14   in the preference dialog.
16     The default value is `$XDG_DATA_HOME/jack_mixer` (which is normally
17     `~/.local/share/jack_mixer`).
19 * A "Recent projects" menu was added, to allow loading recently used / saved
20   projects more quickly.
22 * Direct channel output ports are now optional and can be enabled/disabled in
23   the channel preferences dialog.
25 * Ctrl+left-click on the mute ("M") or solo ("S") channel buttons now activates
26   exclusive mute resp. solo.
28 * A man page for `jack_mixer` was added.
30 * `jack_mix_box`now supports the `-p|--pickup` command line option to enable
31   MIDI pickup mode, to prevent sudden volume or balance value jumps.
34 Fixed:
36 * Activating the solo function on an input channel could cause its
37   output signal be sent to the monitor outputs instead of the signal
38   from the channel, which had monitoring activated.
40 * Volume and balance level and mute and solo state changes originating from
41   the UI now send the correct assigned MIDI CCs, allowing for MIDI feedback
42   to controllers. Same for changes originating from reception of assigend MIDI
43   CCs.
45 * The handler for right-clicking the input channel mute/solo buttons, was
46   accidentally removed and is now re-instated.
48 * Creating a new output channel assigns it a randomly chosen color,
49   which can be changed in the new channel dialog (used to work
50   some releases ago, but was broken at some point).
52 * The `jack_mix_box` command line options `--help` and `--stereo`
53   erroneously required an argument.
55 * Saving the current project on reception of the `SIGUSR1` signal, which is a
56   requirement for LADISH level L1 support, was broken in version 14.
58 * When re-ording channels via drag-and-drop, the order of the edit / remove
59   channel menu items were not updated.
61 * When creating an output channel, it could happen that the initial channel
62   volume would ranmdomly be set to -inf or 0 dB, regardless of what was
63   selected in new channel dialog.
66 Changed:
68 * The minimum supported Python version is now 3.6.
70 * The `jack_mix_box` command line usage help message was improved.
72 * The channel strip buttons (solo, mute, etc.) now have more distinctive colors
73   when activated or the mouse hovers over them
75 * The balance slider step size was increased slightly so right-clicking the
76   slider changes the value more rapidly.
78 * When using the "Save as..." function, `jack_mixer` now sets the default
79   filename and directory for file chooser to the last ones used.
81 * A window title was added to the preferences dialog.
83 * MIDI control for mute and solo now interprets control value 0-63 as off
84   and 64-127 as on, instead of toggling the state on reception of any
85   controller value.
88 Project infrastructure and internals:
90 * The `jack_mixer_c` Python extension module, which was originally implemented
91   in hand-written C code using the PYTHON C API, was replaced with the
92   `_jack_mixer` extension module implemented in [Cython], which generates the C
93   code in `_jack_mixer.c`.
95 * The autotools build toolchain was replaced with a build setup using [meson],
96   which improves build times and maintainability markedly. See the file
97   [INSTALL.md] for updated build and installation instructions.
99 * A build option to allow buidling only `jack_mix_box` was added (`-Dgui=disabled`).
101 * All Python code was re-formatted with [black].
103 * All errors and warings reported by [flake8] were fixed or are expressivley and
104   selectively ignored.
106 * The file `version.py` is now generated from the version set in the project
107   definition in the top-level `meson.build` file, leaving this as the only
108   place where the version number needs to be updated before a release.
110 * The `NEWS` file was renamed to `CHANGELOG.md` and converted to Markdown
111   format.
114 [INSTALL.md]: ./INSTALL.md
115 [black]: https://pypi.org/project/black/
116 [Cython]: https://cython.org/
117 [meson]: https://mesonbuild.com/
118 [flake8]:  https://pypi.org/project/flake8/
121 ## Version 14 (2020-10-15)
123 * Changes to channel fader/meter layout and features:
124     * Added K20 and K14 scales.
125     * Added tick marks for left/center/right on balance slider and add tooltip
126       displaying left/right value.
127     * Added maximum width for control group labels. Labels are ellipsized if
128       too long and a tooltip with the full name is added.
129 * Channel add/property dialogs usability improvements:
130     * Remember last used settings for new input/outut channel dialogs (MIDI CCs
131       are always initialized with -1 by default, so they can be auto-assigned).
132     * Channel name is pre-filled in with "Input" or "output" and an
133       auto-incremented number suffix.
134     * Add mnemonics for all input/output channel dialog fields.
135 * When running under NSM, closing the main window only hides UI and the "Quit"
136   menu entry is replaced with a "Hide" entry.
137 * Added a global option to always ask for confirmation when quitting
138   jack_mixer.
139 * Allow drag'n'drop to change channel positions.
140 * Added ability to shrink/expand width of input and output channels.
141 * The font color of control group labels automatically adapts to their
142   background color for better contrast and readability.
143 * Fixed: Ctrl-click on volume fader sets it to 0.0 dbFS, not 1.0.
144 * Fixed: some issues with channel monitoring.
145 * Fixed: don't create empty project file on new NSM session.
146 * Fixed: on project load, give input focus to fader of last added channel and
147   deselect volume entry widget so keyboard input doesn't accidentally change
148   the value.
150 With contributions from Christopher Arndt, Daniel Sheeler and Frédéric Péters.
153 ## Version 13 (2020-07-16)
155 * Added NSM support.
156 * Store preferences to per session config file to override global
157   preferences.
158 * Added accelerator shortcuts to menu items.
159 * New ctrl-click, double-click, scroll, and click-drag-anywhere
160   fader behaviors.
161 * Added MIDI 'Pick Up' behavior to avoid discontinuities.
162 * Can choose output channel colors.
163 * Changed to logarithmic ramping on volume changes.
164 * Added a pre/post fader button.
165 * Pick volume for new channels.
166 * Allow manual setting of MIDI control change numbers.
167 * Remove GConf; use plaintext .ini preferences file instead.
168 * Remove remnants of Swig python bindings.
170 With contributions from Daniel Sheeler and Christopher Arndt.
173 ## Version 12 (2020-06-22)
175 * Added reporting of the current volume through SIGUSR1 signal to
176   jack_mix_box.
177 * Reset color of over 0db/NaN peak on click.
178 * Fixed memory leaks.
179 * Fixed some Python 3 compatibility leftovers.
181 With contributions from Daniel Sheeler and Athanasios Silis.
184 ## Version 11 (2020-06-18)
186 * Spread out volume transition over a period of time to reduce
187   discontinuities.
188 * Port to pygobject and GTK3.
189 * Port to Python 3.
191 With contributions from Daniel Sheeler.
194 ## Version 10 (2014-04-27)
196 * Fixed change of channel settings (#18299)
197 * Added a MIDI out port for feeding back volume levels into motorized
198   controllers
199 * Added jack_mix_box, a minimalistic (no UI) jack mixer
200 * Added a trayicon and minimize to tray feature
202 With contributions from John Hedges, Sarah Mischke, and Nedko Arnaudov.
205 ## Version 9 (2010-10-04)
207 * Changed to no longer appends PID to jack client name (#15006)
208 * Added 'Edit .. channel' submenus
209 * Set a default 'apply' button in channel properties
210 * Fixed creation of  mono channels
211 * Removed bad crackling when changing the volume through MIDI
212 * Moved back to polling for MIDI events, to avoid the need for threads
213 * Changed to use backward compatible call to gobject.timeout_add (#14999)
214 * Updated not to fail if we can't get lash server name
215 * Added support for Ladish level 1
216 * Improved SIGUSR1 handling
218 With contributions from Nedko Arnaudov and Arnout Engelen.
221 ## Version 8 (2009-12-16)
223 * Fix private modules lookup
224 * Fix rotation of output channel colours
225 * New menu items to remove output channels
226 * New command line parameter to not connect to LASH
229 ## Version 7 (2009-12-14)
231 * New maintainer, thanks Nedko for everything!
232 * New icon by Lapo Calamandrei
233 * Option to have a gradient in the vumeters
234 * Option to use stock GtkScale widget for volume and balance
235 * Rewrite of the C/Python binding (this removed the dependency on SWIG)
236 * Improve performance when drawing vumeters
237 * New menu items to load/save settings
238 * New "Channel Properties" dialog, allowing to change assigned MIDI CCs
239 * Automatic post fader outputs for input channels
240 * Possibility to add new output channels, besides main mix
241 * New "monitor" output, assignable to any output channel, or input channel
242   (in which case it will take its prefader volume)
243 * Removal of PyXML dependency
245 With contributions from Nedko Arnaudov, Lapo Calamandrei, Arnout Engelen,
246 and Krzysztof Foltman.
249 ## Version 6 (2009-07-25)
251 * Fix building against jack 0.102.20
252 * Handle python prefix different from install prefix
253 * Fix LASH-less operation
254 * Update install instructions after lash-0.5.3 and phat-0.4.1 releases
255 * Apply Markus patch (thanks!) for sr #1698 (can't restore session using LASH)