mirror of
https://github.com/storytold/soundcraft.git
synced 2026-11-15 06:42:16 +00:00
* Strip Silence: the sliders move a tenth as far while Ctrl or Command is held While Ctrl (Command on a Mac) is held, a drag on one of the four Strip Silence sliders moves the value a tenth as far as the same drag without the key, on the slider and on its value box. Pressing or releasing the key during a drag leaves the value where it is, and the drag goes on from there. Releasing the mouse button leaves the value too. A drag without the key works as before. The new widgets::fine_slider uses the modifier test and the tenth of widgets::fader. Threshold and Clip Start Pad show one decimal place, and a drag on the slider during which the key was held rounds the value to the places the box shows. * Plugins: parameter sliders move a tenth as far while Ctrl or Command is held While Ctrl (Command on a Mac) is held, a drag on a parameter slider in the plugin window, the Clip Effects window or an AudioSuite plugin's window moves the value a tenth as far as the same drag without the key, as the Strip Silence sliders do. A logarithmic slider moves a tenth as far along the slider, and a whole-number slider, such as the Sampler's Root Note, stays on whole numbers. A drag without the key works as before. widgets::FineSlider is a new builder with the slider options these windows use (no value box, logarithmic, whole numbers, a salt for unlabeled sliders); widgets::fine_slider keeps its signature and calls it. * Plugins: Alt-click returns a parameter to its default value An Alt-click (Option-click on a Mac) on a parameter in the plugin window, the Clip Effects window or an AudioSuite plugin's window sets the parameter's default value, as an Alt-click sets a fader to 0 dB. It works on a slider, on a slider's value box and on a choice list. The click on a value box does not open it for typing, and the click on a choice list does not open the list. In the plugin window and the Clip Effects window the reset runs the same command as a drag, so it is one undo step. While Alt is held, a drag on one of these sliders leaves the value where it is. widgets::FineSlider has a new default_value option for this. * Plugins: FineSlider::default_value describes what a held Alt does While Alt is held, a drag leaves the value where it is, and an Alt-click on the value box does not open it for typing. An Alt-click on the rail sets the default. * Dialogs: Enter on a focused Cancel or Don't Save no longer runs OK Enter on a focused button clicks it and also presses the dialog's OK. In Strip Silence, Enter on Cancel closed the dialog and still stripped the selected clips. Cancel and Escape now drop the command and the save that OK asked for, in every dialog. In Unsaved Changes, Enter on a focused Don't Save closes without saving instead of opening Save. * Read send destinations only while the menu is open * Tests: pressing Ctrl during a value-box drag keeps the value The rest of the drag on the Threshold value box moves as far as a drag with Ctrl held from the start. * Bounce Mix: Cancel starts no bounce; fine adjust on more AudioSuite sliders Enter on a focused Cancel also pressed Bounce, which started the bounce before the Cancel check ran. The bounce now starts after that check. The Normalize, Time Shift and Pitch Shift sliders in the AudioSuite window move a tenth as far while Ctrl or Command is held. * Tests: give the Enter-on-Cancel bounce test its own scratch folder It shared bounce-cancel with cancel_or_escape_stops_a_bounce_and_leaves_no_file, so the two tests removed each other's folder when run in parallel. * Clip Effects: log-taper parameter sliders use a logarithmic rail The EQ and Dynamics sliders in the Clip Effects window now follow the parameter's taper, as the plug-in window does, so a frequency, Q, ratio, attack or release slider moves along a logarithmic rail. * Dialogs: leave Enter on a focused Cancel or Don't Save to its own pull request The dialog changes for Enter on a focused Cancel or Don't Save, the Bounce Mix change that started the bounce after the Cancel check, and their tests in save_changes.rs, strip_silence_dialog.rs and bounce.rs are removed from this branch. The fine adjustment on the sliders stays. * Plugins: tests cover Alt reset and Ctrl fine adjustment on more slider kinds Tests now cover Ctrl without Command, Alt pressed during a drag, one undo step for a choice-list reset, whole-number and logarithmic sliders, Alt-click and Ctrl-drag on the AudioSuite and Clip Effects value boxes, and Alt on a Strip Silence slider, which behaves like a plain click or drag. The ROADMAP entry limits the choice-list reset to the plugin window, and the docs/ui-parity.md fine-adjustment row names the Clip Effects and AudioSuite sliders. * Plugins: a short Ctrl-drag at the low end of a log slider with a value box moves the value A fine drag rounded to at most three decimal places, so a one-point drag near the bottom of a range such as Attack at 0.01 ms rounded back to where it started. The rounding now allows up to six places. * Strip Silence: the fine slider's response reports each change of a drag The value moved by a drag that the key has touched is set before the slider reads it, so the Response's changed() stayed false on those passes. fine_slider now marks the response when the value changed. Tests: a Control-only drag, and changed() on every pass of a Ctrl-drag. The value box test releases the button once and checks the value after. * Tests: plugin sliders with Control alone and with Ctrl toggled during a drag The plugin window's logarithmic and whole-number sliders keep their value when Ctrl is pressed or released during a drag, and a drag with Control alone is fine. The tenth-as-far test names the parameters it drags and checks the others do not change, and the low-end test checks the value after the release.