Commit graph

15732 commits

Author SHA1 Message Date
Robin Gareus
b4a7c8a17d
Better version of 6a57baf193
This also fixes Menu > Edit Delete "delete MIDI" operation.
Pressing backspace/delete calls "Delete Selection" which is
unrelated to MRV::cut_copy_clear.
2022-07-14 01:23:04 +02:00
Robin Gareus
2848cc5f38
Disambiguate clip/sample/slot 2022-07-14 00:06:48 +02:00
Robin Gareus
6a57baf193
Fix MIDI note cut
1. Editor::cut_copy() calls begin_reversible_command ("cut MIDI")
2. Editor::cut_copy_midi calls mrv->cut_copy_clear()
3. MidiRegionView::cut_copy_clear calls start_note_diff_command()
4. second call to  begin_reversible_command()
- debug builds assert() here, optimized builds continue
5. abort_reversible_command() is called, _current_trans = NULL;
6. MidiModel::apply_diff_command_as_subcommand()
7. Session::add_command, segfault because _current_trans == NULL

```
An UNDO transaction was started while a prior command was underway.
Aborting command (midi edit) and prior (cut MIDI)
```
2022-07-13 22:12:30 +02:00
Robin Gareus
95fceceeb4
Engine-dialog: move MIDI system to advanced (amend 0a5b62a9e1b0) 2022-07-11 21:45:55 +02:00
Robin Gareus
0b2be03196
Overhaul Engine Dialog
* Update Layout
* Move action buttons to action-area
* Hide insensitive "Control App" button
* Set MIDI device option from backend
* Hide Latency Setup in Expander by default
2022-07-11 21:45:55 +02:00
Robin Gareus
ddca042b7b
Engine Dialog: fix memory-leak, do not manage Labels
Gtk::manage only destroys managed widgets when the parent container
is destroyed. In Ardour's case this is not the case since
Gtkmm2ext::container_clear() is used to unpack/repack widgets
as required.
2022-07-11 21:45:54 +02:00
Robin Gareus
8f4aab9584
NO-OP: clang-format 2022-07-11 21:45:54 +02:00
Robin Gareus
ee63b65df8
Engine Dialog: append monitor-model option
The Monitor Model usually depends on the studio setup (hardware
mixing desk), but also to some extent on the audio interface (zero-
latency monitoring). Since a user may also use different interfaces
(e.g. with a laptop), it makes sense to expose the monitor model
preference in the engine-dialog.

NB. It is not part of the engine-state (!), but still a preference.
2022-07-11 21:45:54 +02:00
Robin Gareus
f587f7f2cd
Simplify and Cleanup New User Wizard
* Remove Monitor Model Option
* Remove Monitor Section Option

These days those can be toggled after setup, even while the
session is loaded and engine is running. There is no need to bother
a user very early on with this question about Monitoring.
2022-07-11 21:45:54 +02:00
Robin Gareus
bdf6570ea6
Engine Dialog: remove I/O channel count setting
This has no been useful since years. Both Ardour and JACK
backends always use all available ports and the setting was
only useful to "hide" excess ports.
2022-07-11 21:45:54 +02:00
Robin Gareus
2970cd4b70
Engine Dialog: move start/stop button to action-area 2022-07-11 21:45:54 +02:00
Robin Gareus
45fddc8533
Slightly improve rendering of muted regions
A fully transparent waveform (with only a semi-transparent outline)
looks very odd with all themes.

Perhaps this was a typo and the initially intended rendering was
supposed to be 31% transparent, however this is not distinguishable
from non-opaque regions (27% transparency).
2022-07-11 21:45:26 +02:00
Paul Davis
15f67632ee CueEntry must inherit from sigc::trackable
It connects to the ParameterChanged (sigc++) signal, and to ensure automated
disconnection on object death, sigc::trackable is required in the
inheritance tree
2022-07-07 18:23:51 -06:00
Paul Davis
28279e120f TriggerMaster must inherit from sigc::trackable
It connects to the ParameterChanged (sigc++) signal, and to ensure automated
disconnection on object death, sigc::trackable is required in the
inheritance tree
2022-07-07 17:29:55 -06:00
Robin Gareus
baeb5cbafd
Consistent mixer-scene query dialog (use Yes/No question) 2022-07-07 17:07:46 +02:00
Robin Gareus
6631273356
Fix inverted mixer-scene-clear Cancel/OK dialog response 2022-07-07 16:49:36 +02:00
Robin Gareus
effc209070
Place Pool in PBD namespace
A public class named "Pool" in the global namespace just
calls for symbol name conflicts.
2022-07-07 05:21:54 +02:00
Robin Gareus
c7ec2bbe1f
Consistent monitor-choice text
This uses uppercase like the application-name and matches the
label "Record monitoring handled by: ..."
2022-07-06 23:27:26 +02:00
Robin Gareus
8ead1439d8
Fix ruler/canvas separator
The track-header (gtk) is packed with 1px box spacing. This
is added at the top of each box (best seen by looking at the
group-tab vs track-header alignment in the editor).

However the actual track separator line on the canvas is at the
bottom of each track, aligning with the top of the next track
or automation-lane.

The first track however lacks a separator at the top, which
needs to be provided by the ruler. Once the canvas is scrolled
this ruler/canvas separator overlaps with the bottom separator of
each TAV.

Using ruler Rectangle::set_outline had various issues.
The outline extends outside the rectangle. It bled into the
video-timeline instead of the canvas' top y-axis pixel.

Also the separator was above the video-timeline, not above the
canvas. Hence a dedicated separator Line is preferable.
It also provides a consistent separator if no rulers are visible.
2022-07-06 20:50:06 +02:00
Paul Davis
6678cd74f4 peak amplitude thread needs tempo map 2022-07-05 19:27:55 -06:00
Robin Gareus
3ea5fd5d91
Fix incorrect use of timepos_t::increment API 2022-07-06 01:49:51 +02:00
Robin Gareus
2220280776
Only create coverage frames to cover muted parts
Do not create transparent coverage frames for audible sections.
This should improve rendering of stacked region views.
2022-07-06 01:49:51 +02:00
Robin Gareus
0bd1d9bc17
Fix layered region non-playing shade (timepos_t API)
Before nutempo, ::find_next_region_boundary() used to return -1
when no boundary was found (now timepos_t::max is returned).

timepos_t::increment() returns the incremented value, not increments
the variable itself.
2022-07-06 01:49:50 +02:00
Robin Gareus
811f625623
transcode debug should not print (null) array termination 2022-07-04 18:05:49 +02:00
Alexandre Prokoudine
cbba298ca2 Remove user-visible excess colons in Preferences 2022-07-02 19:58:37 +03:00
Paul Davis
f631f742fa remove debug output 2022-06-29 08:17:16 -06:00
Robin Gareus
09e8ba00c2
Replace ::user_double() with ::get_double() 2/2 2022-06-29 01:39:02 +02:00
Paul Davis
fadf77e39c NO-OP: update comment to reflect the context 2022-06-28 12:24:54 -06:00
Paul Davis
5c2831e218 tempo display: modify how we implement MidiRegionView::_redisplay() so that the width is also correctly updated 2022-06-28 12:21:44 -06:00
Paul Davis
ecf554aa4a tempo display: basics of updating MIDI during tempo-related drag operations 2022-06-28 11:44:25 -06:00
Paul Davis
bf87916fb1 tempo display: further simplifications to handling map changes
When a tempo map change originates from a drag, we know the required redraws have
already been done. Use a new bool member, ignore_map_change, to tell the Editor
to ignore the map change signal. For all other map changes, do the full reset.
2022-06-28 10:16:31 -06:00
Paul Davis
32a3bf229e remove commented code 2022-06-27 22:27:15 -06:00
Paul Davis
6dfaac9e94 redesign the mechanisms for updating tempo/meter display during drags and other map changes
We now simply move markers during drags, and do not seek to create/delete markers.

When the map is changed, we rebuild the markers from scratch. This might need optimization to avoid doing
when the editor itself changed the map.
2022-06-27 22:21:27 -06:00
Paul Davis
602a029773 tempo curves: fix width so that the curve from the Nth marker does not overlap the Nth+1 2022-06-27 22:21:27 -06:00
Robin Gareus
65956407bb
Fix initial display of markers that are glued to BeatTime 2022-06-28 02:55:53 +02:00
Robin Gareus
b0738b1950
Fix tempo-marker/curve z-axis stacking
Previously it was possible that the tempo-curve display was rendered
above a tempo-marker (e.g. create a marker in the between of existing
markers). With the tempo-curve in front, markers on the right
became inaccessible.
2022-06-26 16:20:00 +02:00
Robin Gareus
944b0ed6e0
Prefer const iterators when container does not change 2022-06-26 13:55:46 +02:00
Paul Davis
c3f40aedeb tempodisplay: fix thinko in display of tempo/meter/bartime markers
Code used to just push back new markers to the end of the relevant list, and
this would then the new marker to be deleted soon thereafter. Instead pass
an interator indicating where to place the marker in the list.

Note that we rely on the use of std::list<T> here to keep the iterator to the
existing marker valid.
2022-06-25 22:26:34 -06:00
Robin Gareus
7b7f17085b
Fix crash when using get_all_equivalent_regions wih VCAs in a session 2022-06-22 22:22:52 +02:00
Paul Davis
e8e21b3152 NOOP: fix comment for abort-after-fatal to follow norms 2022-06-22 13:31:08 -06:00
Paul Davis
3245a89bfe add comment explaining non-idiomatic C++ 2022-06-22 13:31:08 -06:00
Paul Davis
b2d553cc51 editor: fix HitCreateDrag to (a) not crash (b) use the right length (c) snap correctly 2022-06-22 13:31:08 -06:00
Paul Davis
1de542120a editor: remove a couple of unnecessary uses of Beats::from_double() and uses ::ticks() method instead 2022-06-22 13:31:08 -06:00
Paul Davis
22e77130e2 use new macros to cleanup #ifndef NDEBUG as much as possible (GUI edition) 2022-06-22 13:31:08 -06:00
Paul Davis
4fd676aad5 fix optimized build buffer size/snprintf warning 2022-06-22 13:31:07 -06:00
Paul Davis
a78fbf919d fix optimized unused variable warning 2022-06-22 13:31:07 -06:00
Paul Davis
fc1a0140a3 fix may-be-used-unset warning 2022-06-22 13:31:07 -06:00
Paul Davis
5a0767bd7b fix may-be-used-unset warning 2022-06-22 13:31:07 -06:00
Paul Davis
02b77ca88a better fix for CURL debugging unused variable warning 2022-06-21 17:36:26 -06:00
Paul Davis
e1f9d28d6a fix unused code warning 2022-06-21 17:32:50 -06:00