bug:
1) freeze a track
2) Session Cleanup > Cleanup unused sources
2a) confirm playlist deletion
3) quit, reload -> track is no longer frozen
because _freeze_record.playlist is missing.
session is in an odd state.
Grouped "checkbox" preferences together, reducing visual clutter.
Some widget settings affected the visibility/sensitivity of other widgets.
In some cases they were not adjacent; this has been fixed.
Added some additional grouping headers.
This has been tested on four devices:
- A RME HDSP Multiface
- A Yamaha AG06
- A Focusrite 2i2
- A built-in soundcard running ASIO4ALL
The HDSP and the AG06 only return one buffer size when queried so the preferred
size is used as before.
The Focusrite returns a min corresponding to the position of the slider in the
control dialog and the max is 1024. The granularity is 1 so this means that the
number of values needs to be reduced for the current UI design with a combo
box so the granularity is increased until there are around 8-9 buffer sizes to
choose from evenly spaced between min and max(but we could easily change this
if the UI changes etc).
The ASIO4ALL driver returns a min of 64 and a max of 2048 and a granularity of
8. So where the minimum buffer size and granularity is a power of 2 use only
buffer sizes that are power of 2.
If the driver returns different values for min and max it is not currently
possible to indicate which is the driver preferred value. A checkbox or other
UI element could be added to the AudioSetup dialog to only use the preferred
value but that is more work and perhaps not necessary.
This allows debug symbol information to be included for optimized builds. This
may not always be useful for debugging but it is necessary to use profiling
tools like perf.
The default optimize level is -O0 if no other optimize flag is specified so the
optimization level will be the same unless overridden.
- add_midi_region used to commit, resulting in
_region->set_position() adding a command when there was
no current transaction. The sub-bug here was that repeatedly
calling set_position() on the new region resulted in nonsensical
automation movement after the drag.