summaryrefslogtreecommitdiff
path: root/ChangeLog
blob: 86d795b0f82cdaeb5ff4fd7e6c631762ff6e131b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
Version 0.9.15
==============
Release date: August 12th 2018
Contributors: deva, chaot4, suhr, trebmuh

Resampler has been refactored.
It now depends strictly on zita-resampler and is no longer optional.

Bugfixes:
 - Fix latency reporting in VST.
 - Fix timing humanizer stops normal cymbal samples too early.
 - Samples are cut off when looping.
 - LV2: Don't export any symbols except the plugin entry point to avoid clashes with the DAW or other plugins.
 - VST: Don't export any symbols except the plugin entry point to avoid clashes with the DAW or other plugins.
 - Report latency from resampling.
 - Fix LV2 Buffer overflow.
 - Add message to execution of CLI without arguments that mentions that the GUI is only supported in the plugins.
 - Update French translation of manpage.
 - Fix crash or noise when changing jack buffersize while running.
 - Stuttering when resampling is active.

Version 0.9.15
==============
Release date: July 24th 2018
Contributors: deva, chaot4, meka, suhr, Muldjord, cglocke, Roman Garifullin, James Cowgill

New engine features:
 - New humanized timing feature.
 - Master bleed control.
 - Remove memory warning.
 - Replaced cppunit with new dgunit header-only test framework.

New CLI features:
 - OSS midi input support.
 - Finish and integrate getoptpp as a submodule.

UI:
 - Double click knobs to reset them to their default value.
 - Ignore spacebar key in UI (used by DAW and toggled the buttons).
 - Add cute little image in the inline display.

Bugfixes:
 - Fix X11 BadValue crash bug.
 - Fix black render when opened as LV2 on Ardour and FreeBSD.
 - Fix UI crash on underflow in resize()
 - Fix valgrind errors of GUI.
 - Fix crash if CLI is invoked without input and/or output engine. (deva)
 - Fix out of bounds drawing of frame (chaot4)

Version 0.9.14
==============
Note: LAC2017 release
Release date: May 14th 2017
Contributors: deva, chaot4, Muldjord, meka, Hans Petter Selasky
Special extra thanks with a cherry on top: Robin Gareus

Features:
 - Introduced new resampler module in ui

Bugfixes:
 - CLI
   - CLI exits right away, doesn't do anything
   - Make ''-i midifile -I midimap=~/...'' recognize the home directory. Replace "~" by the home directory in ./drumgizmo/input/midifile.cc
   - Properly get/set OSS buffers
   - Add ---no-resampling option

 - Engine
   - Fix midi note on/off mask
   - Streamer BUG: If there is a cache miss on one of the audiofiles (1 channel) in a sample that one sample will get delayed compared to the others
   - Streamer BUG: When nodata buffer is being reallocated we need to make sure that the old buffer is not being used by one of the cache ids
   - Resampler BUG: Fix corruption/crash when enabling/disabling resampler at run-time
   - Update Window build environment to a more recent mingw64
   - Remove obsolete old mingw32 thread hacks
   - Introduce clear signal, showing if we had an underrun because of diskstreaming
   - Fix crash on with low preload size
   - Initial status of drumkit is "Error" on first opening the plugin

 - UI
   - Scroll-wheel on tab buttons should iterate through the tabs
   - Refactor TextEdit. (use vector in preprocessing etc.)
   - Fix "unexpected easter egg"
   - Fix high CPU load of plugingui when shown in a host (All platforms/DAWs)
   - Return handle to the newly created window in ''PluginLV2::uiInstantiate'' in the ''widget'' pointer
   - Add bypass button for the resampler
   - Fix redraw on changing desktops

 - General
   - Don't put .a and .la files in lv2 folder on install

Version 0.9.13
==============
Release date: April 23rd 2017
Contributors: deva, chaot4, Muldjord, meka

Highlighted changes / fixes:
 - New ui
 - Diskstreaming
 - OSS support

All changes / fixes:
 - Fixed rcgen compilation with BSD make
 - Made ui and engine compile as internal libs instead of compiling all sources in each component
 - Implemented settings for controlling diskstreaming
 - Complete gui makeover
 - Made changes to UI to incorporate diskstreaming controls
   - Now generates resources at compile-time
   - Made window resize flicker-free on X11
   - Fixed missing redraw on resize event on X11
   - Now uses XShmImage for rendering on X11
   - Refactored event system on X11 and Win32
   - Now supports size and position changes in the same event on X11
   - New rendering system based on ''dirty'' flag
   - Added "partial rendering" support in rendering system
   - Fixed double click
   - Scroll-wheel inside textareas now works
 - Made diskstreaming controls work in the engine
   - Made DrumKitLoader use disk streaming settings
   - Fixed crash or channel overload on stop/start command or loop due to invalid pointer returned to the engine from the diskstreamer
   - Made AudioCache use configurable fixed size chunks
   - Stores memory limit and chunk size in config as ints instead of floats
 - Made cli support for disk cache controls
   - ''-s'' and ''-S'' enables diskstreaming and set its parameters
   - Updated man page
   - Changed onsite info for cli
   - Added FreeBSD OSS audio output support
   - Added buffer size control for OSS audio output module
 - Fixed the dgreftest for aasimonster2
 - Added dependency check for rcgen so resource_data.cc is regenerated whenever one of the resource png files change


Version 0.9.12
==============
Release date: January 18th 2017
Contributors: deva, chaot4, Muldjord, meka
 - Fix semaphore EINT assertion in MusE
 - Fix atomic link check - always link with atomic
 - Draw boxes instead of nothing when trying to render characters not in the
   font map
 - Extend character map to include full latin1 character set
 - Added full support for FreeBSD
 - Fix missing "mouse-up" events when runnnig lv2 plugin on linux in a JUCE
   based host (Helio or Tracktion)
 - Added missing ttl as per: https://github.com/falkTX/Carla/issues/412
 - Algorithmically generate the test .wav files to be able to run the tests
   also with the tarball
 - Add --lv2dir parameter to configure

Version 0.9.11
==============
Release date: October 29th 2016
Contributors: deva, cglocke, chaot4, Jin^Eld
 - Unicode crash bug fixed
 - lv2 inline display
 - Fixed problems when running more than one instance of DrumGizmo plugin in
   the same host

Special thanks to 'Maxim Alexandrovich (Ljutingr)' for helping debugging the
unicode problem.

Version 0.9.10
==============
Release date: March 30th 2016
Contributors: deva, suhr
 - Fix the 'no sound from plugin when resampler active' bug.
 - Fix the 'freeze on tempo change' bug.
 - Fix backspace in lineedits.

Version 0.9.9
=============
Release date: March 24th 2016
Contributors: cglocke, chaot4, deva, muldjord, suhr, viccuad

Highlighted changes / fixes:
 - Switch to LGPLv3
 - Linux VST
 - Embedded UI
 - Prepped for diskstreaming (but not yet implemented in UI)
 - Load of bug fixes

All changes / fixes:
 - Remove unused libraries
 - Headers are currently a mix and gpl2 and gpl3. Should be fixed

 - UI refactor
   - Move textedit widget to refactor branch
   - Move autolayout to refactor branch
   - Use new notifier and refactor to new code guidelines:
     - LineEdit fixes:
       - Follow marker
       - Scroll with long line and cursor in beginning of line
   - Update Linux build agents so they support C++11

 - Refactor CLI
   - Rewrite all modules to be compiled directly into the binary
   - Modernise all cli files

 - Add diskstreaming feature with infinite buffer size:
   - Test on windows
   - Make sure on-the-fly framesize change is working
   - Set pre-cache size to "infinite"
   - Make std::mutex work with mingw
   - Make unit tests:
     - AudioCacheIDManager
     - AudioCacheFile
     - AudioCacheEventHandler
     - AudioCache
   - Design and implement AudioCache
   - Use AudioCache in inner-loop
   - Get framesize dynamically from output engine
   - Handle snd files with refcounter
   - Collapse events from same file and position into single multichannel event
   - Make sure free-wheel-mode works in jack, lv2 and vst

 - Add referenced drumkit/midi files feature
 - Remove version number from man page

 - Make benchmark performance comparisons with the "old" engine
 - Add a valgrind test script
 - Fix some problems reported by valgrind

 - Add memory check to warn the user if the drumkit about to be loaded cannot fit into memory

 - LV2/VST: Make UI event handling based on idle/run calls from the plugin host instead of in a thread
 - Port "The Aasimonster" to new velocity format

Version 0.9.8.1-hotfix
======================
Released March 16th 2015
 - Fixed bug where resampling resulted in sample skewing over the output channels

Version 0.9.8
=============
Released February 22nd 2015
 - Fix deprecated autoconf/automake macros. (Nils Tonnätt)
 - Update LV2 plugin to use new URID extension (http://lv2plug.in/ns/ext/urid/). (deva)
 - Fix state store so it does not store terminating zero in config xml. (deva)
 - "No sound" bug in resampler code. See: http://drumgizmo.org/irc-logs/drumgizmo.log.11Jan2015
 - Make cli wait for drumkit to finish loading before starting the engine. (Jin^eLD)
 - Make cli TYPE_STOP event wait until active events is empty. (deva)
 - Add basic man page. (Nils Tonnätt)
 - Reflect input/output parms in cli help text. (suhr)
 - Reflect input/output parms in cli man page. (muldjord)
 - Make resampler depend directly on zita-resampler and make libsamplerate an active opt-in. (suhr)
 - Include test directory in dist. (suhr)
 - Don't AC_SUBST zita libs and cflags if not used/detected by configure. (suhr)
 - Make all use of atof and sprintf("%f") locale independent. (deva)
 - Fix crash after rendering midi file to wav files via DG cli. (deva)
 - Remove wavfile.la in output dir. (deva)
 - Replace obsolete cli -p argument (preload) with -a (async-load) argument. (deva)

Version 0.9.7
=============
Released December 7th 2014
 - Resampling on channel output to match system. (in 'resample' branch) (deva)
   - Zita on windows, configure lib detection
   - Add missing resampler unit test files.
   - Make resample work on VST.
 - Fix LV2 UI crash on open. (deva)
 - Global config file. (suhr)
 - Remember last browse path. (suhr)
 - Don't show hidden folder in file browser. (suhr)
 - Lineedit follow marker. (suhr)
   - LineEdit, scroll when in end on line and arrow right typed.
   - Remove printf and uncommented code

Version 0.9.6
=============
Released September 9th 2014
 - Editor split out into own project. (deva,suhr)
 - Integrate VST build into autotools. (deva)
 - Make 64bit VST binary. (deva)
 - Accept loading the same kit twice. (deva)
 - Reduce probability of playing the same sample twice in a row. (deva)
 - Normalise velocity range (was 0 to hardest sample, now is weakest sample to hardest sample). (deva)
 - Make sure loading a new kit after another works properly. (muldjord)

Version 0.9.5
=============
Released April 27th 2014
 - Editor changes:
   - Add stroke power attribute to drumkit xml format. (suhr)
   - Realtime update of waveform view when dragging fadeout slider. (deva)
   - Export energy levels to .xml file. (deva)
   - Clicking hit circles in velocity view selects corresponding in waveform view. (deva)
   - After selecting a hit by clicking a circle, allow direct deletion using "delete" kbd key. (deva)
   - Make hits in velocity view dragable. (deva)
   - Marked selection (ie. its values) is shown as lineedits in "edit" tab, changable by-value. (deva)
   - Enable multichannel export both for .wav and for .xml. (deva)
   - Turn volume slider into actual mixer fader instead of sample multiplier. (suhr)
   - Create filebrowser for selecting export path. (suhr)
   - Create main config file for saving and loading current values. (suhr)
   - Make player use fadein/out while playing (controllable through checkbox somewhere?) (deva)
 - Make engine use version number in order to select velocity algorithms and remove --with-experimental configure parameter. (deva)
 - Use Atom lv2 midi events. (suhr)
 - Make jack backend work on all buffer sizes. (deva)

Version 0.9.4
==============
Released March 5th 2014
 - Add multichannel sample support. (John Hammen)
 - Write README, ChangeLog and AUTHORS files. (deva)
 - Delete old partially broken unit test system. (deva)
 - Fix double click on toggle button to not leave the button in its middle state. (deva)
 - Make plugin gui window fixed in size. (deva)
 - Fix lineedit mouseclick to the right of the text, which should position text cursor to the right of the text. (unassigned)
 - Handle sse optimisation toggling in configure.in. (suhr)
 - Fix memory leak in Image class (png structure currently not free'd). (deva)
 - Improve FileBrowser functionality. (suhr)
 -   If filename lineedit is empty and the other one is not, use the non/empty lineedit path initially when opening filebrowser. (deva)
 -   Make it possible to type a path and have the browser switch accordingly. (suhr)
 -   Sort list by directories first and files next. (suhr)
 -   Filter out non-drumkit files. (suhr)
 -   Identify folders by appending '/' to their names. (suhr)
 -   Remove double '\\' after drive letter in filebrowser on Windows. (suhr)
 -   Test new filebrowser on Windows. (suhr)
 -   Handle directory that can not be opened. (suhr)
 -   Scrollbar is drawed wrong when few elements in list. (deva)
 - Refactor GUI::EventHandler. (deva)
 - Make Carla store plugin setting. (deva)
 - Make it work in QTractor. (deva)
 - Add jackaudio output module. (deva)
 - Support multiple samplerates by resampling at load-time (feature request from Cédric 'SxDx'). (deva)
 - Modernise autoconf. (deva)
 - Add new unit test system. (deva)
 - Find and fix LV2 midi velocities magically disappearing. (suhr) We can't reproduce this. Please contact us if you have this problem.

Version 0.9.3
==============
Released on May 7th 2013, ie. LAC 2013 version
 - Make filebrowser use strings instead of chdir. (suhr)
 - Set "Creator" in the LV2 config. (deva)
 - Prevent mouse button up events from propagating after a double click if the window if closed. (deva)
 - libpng error handling (especially ubuntu libpng version mismatch vs. ardour, 12.49 vs. 1.6). (deva)
 - Optimise GUI rendering so that it doesn't feel sluggish to work with. (deva)
 - Fix bug, where the plugin starts using 100% cpu even with no notes playing. (deva)
 - Make midifile load send load status to GUI. (deva)
 - Make DrumKitLoader stop loading on plugin deletion and if a new drumkit is being loaded. (deva)
 - Make listview scrollbar knob work. (deva)
 - Make "give me all parameter value" message with engine respons for GUI initialisation. (deva)
 - Make humaniser parameters value set/get work using messages. (deva)
 - Create GUI::ProgressBar class for use in load feedback. (deva)
 - Implement engine -> GUI signaling mechanism (for load status, etc). (deva)
 - Implement GUI -> engine signaling mechanism (reload drumkit, read parameter, etc). (deva)
 - Make layout engine classes (Painter::Box/Painter::Bar). (deva)
 - Refactor GUI::Font. (deva)
 - Design and render as png-pixmaps new fonts. (muldjord)
 - Design new layout widgets. (muldjord)
   * Pushbutton
   * Knob
   * On/off switch
   * Lineedit
   * Combobox
   * Item view with scrollbars
 - Implement new layout as a new layout engine. (deva)
 - Create PNG loader. (deva)
 - Make GUI::Image class able to use libpng 1.2. (nemo)
 - Create RC handler (embed PNG images and fonts directly in the binary). (deva)
 - Make 'instrument group' feature that can stop an open hihat, when a closed hihat is played. (deva)
 - Check for x11 lib and headers in configure. (deva)

Version 0.9.2 and older (prehistoric)
=====================================
Released on March 25th 2013.
 - Make autotools project.
 - Make event interface.
 - Make midi-node -> sample mapping.
 - Make drumkit xml file format spec.
 - Make xml reader/parser.
 - Make alternative audio backends work
   * ALSA (output)
   * ALSA Midi (input)
   * Jack (output)
   * JackMidi (input)
   * SndFile (output)
   * Midifile (input)
 - Make Win32 port.
 - Make plugin-able
   * LV2
   * VST
 - Make basic drumkit editor.