13
0
Commit Graph

16544 Commits

Author SHA1 Message Date
9089694e36 pops visible and somewhat responsive to note changes 2023-06-26 14:18:17 -06:00
805ba0442f file deleted 2023-06-26 14:18:17 -06:00
b157132807 do not need these files 2023-06-26 14:18:17 -06:00
4bafadc419 steps to an ecology of lollipops 2023-06-26 14:18:17 -06:00
52f10ad2a8 velocity views will be ghost regions 2023-06-26 14:18:17 -06:00
e54e8f3f4c tweaks to GhostRegion to prepare for possible inheritance 2023-06-26 14:18:17 -06:00
ba2f9411e2 oops, remove typo 2023-06-26 14:18:17 -06:00
59ccc9c5ee velocity region views: strip out existing event handling (avoids crash) 2023-06-26 14:18:17 -06:00
9e071f70d7 remove debug output 2023-06-26 14:18:17 -06:00
2797ea9666 remove unusued "MIDI underlay" cruft 2023-06-26 14:18:17 -06:00
fcba147acd remove concept of a velocity time axis view, just use velocity region view 2023-06-26 14:18:17 -06:00
bc60f7492f automation stream view now creates VelocityRegionView when appropriate 2023-06-26 14:18:17 -06:00
5c42f6ea71 copy VelocityRegionView from AutomationRegionView 2023-06-26 14:18:17 -06:00
db055df9d8 add new files 2023-06-26 14:18:17 -06:00
ea6717f041 empty, useless velocity lane for MIDI tracks 2023-06-26 14:18:17 -06:00
6cb4d01f1f add velocity item to MIDI track automation menu 2023-06-26 14:18:17 -06:00
Edgar Aichinger
fbc776de52
fix typos, clean up and complete new time/range section strings, ensure consistent translation of "playhead"
(recreated after broken merge and reset to upstream master)
2023-06-26 13:17:36 +02:00
87ad86d464
More codenames 2023-06-26 13:16:55 +02:00
e1950ec49e Update Russian translation 2023-06-23 03:10:52 +02:00
705321b015
Fix compilation with --luadoc 2023-06-23 00:49:58 +02:00
JungHee Lee
52d488e2ce Update ko.po 2023-06-22 15:49:13 +02:00
a996645ef1
Update plugin-pin dialog when route or plugin name changes 2023-06-22 15:28:37 +02:00
71a83ed199
Fix heap-use-after-free when toggling manual pin-control
When toggling "Manual Config", Route::customize_plugin_insert()
or Route::reset_plugin_insert() emits processors_changed.

This destroyed the widget from which the change was initiated,
in ppw.clear(), leading to a use-after-free in
ArdourButton::on_button_release_event(_GdkEventButton*) ../libs/widgets/ardour_button.cc:995

The PluginPinDialog does not need to refill the widget list
when manual config is toggled, only the PluginPinWidget itself
needs to updated.
2023-06-22 04:50:43 +02:00
92b86d8dd6
Prepare for systemic_hw_*_latency API removal
This API is not used by any backend anymore.
2023-06-21 23:58:46 +02:00
1b6ba4d71d
Improve error message 2023-06-18 16:24:33 +02:00
311c1bff4e
EngineDialog: MIDI config is always directly apply-able
`can_change_systemic_latency_when_running()` is only relevant for
Audio. This allows to en/disable MIDI ports and set MIDI port
systemic latency with the PortAudio backend.
2023-06-18 02:41:06 +02:00
b55575d7c6
Hide snapped cursor when changing edit-point (#7966) 2023-06-17 23:49:42 +02:00
1251b90b66 midi notes: fix visual end point of notes
ArdourCanvas::Rectangle has exclusive end coordinates, so the - 1
is not necessary.
2023-06-15 20:10:32 -06:00
de334c14b1 drop use of Editor::sample_to_pixel_unrounded() in some cases
We want things rounded to the nearest pixel in these (and perhaps all) cases.
2023-06-15 20:10:32 -06:00
a7c21de229
Update Link to VST3 location spec 2023-06-16 01:38:59 +02:00
73ed3bc7e0 midi copy drag: select all new notes after drag
Cut-n-paste worked before, but Primary-drag only selected the dragged note.

This also contains several code changes to use for (auto ...) syntax.
2023-06-14 21:42:23 -06:00
b516d6abf9
Add keyboard shortcut for delete-section 2023-06-14 20:10:33 +02:00
f602618170
Expose delete-section function
(insert-section still remains hidden, it inserts the length
of the selection at the edit-point, it should perhaps insert
at the start of the selection instead)
2023-06-14 19:43:58 +02:00
6319980746
Fix TempoDialog port-list when devices are hotplugged 2023-06-13 17:03:27 +02:00
05c29e25f9 reorder tempo dialog contents, provide non-presented var to control focus behavior 2023-06-12 18:00:21 -06:00
d742e876d1 region/source lists: try to allow primary-(cxv) functionality when editing name/tag fields 2023-06-12 15:34:54 -06:00
a8fdf7315b keyboard: if a magic widget has focus, handle Primary-(x,c,v) specially
propagate first, so that the magic widget can handle things, then activate.

This fixes cut/copy/paste bindings within a "magic" widget.
2023-06-12 14:42:08 -06:00
66e714b476 fix crash when using -D accelerators 2023-06-12 14:41:41 -06:00
04b728fb38 MIDI: fix list editor display of note length (names) (#9371)
Triplets are still not handled well.
2023-06-12 14:01:06 -06:00
50232a23a7 temporal: hide superclock_t variant of TempoMap::metric_at()
This fixes several callsites that were passing samplepos_t to get a TempoMetric,
some of them somewhat significant (e.g. VST plugins that want tempo information).

Bad API design on my part, apologies.

This commit combines libs/ and gtk2_ardour because the new private status
of the ::metric_at() call would be a blocking point for git bisect
2023-06-12 12:36:16 -06:00
ac2ed95677
Keep Script-Dialog on top of Script-Manager Window 2023-06-10 21:37:09 +02:00
16030f63a1
Keep Ardour dialog on top of parent 2023-06-10 21:36:31 +02:00
b3f9b38088
Make it convenient to use ASAN 2023-06-10 16:47:38 +02:00
6ac0aae35f
Implement playlist switch undo/redo 2023-06-10 15:03:46 +02:00
322e7c328e
Vkeybd: Bind F5 to F8 keys to velocity 2023-06-10 15:03:09 +02:00
fbce94d55d
Fix playlist use-count 1/2 2023-06-10 03:33:51 +02:00
9486b4e6cb
Fix port-disconnection label w/pipewire (#9355, #9364) 2023-06-09 19:19:41 +02:00
72850d456f implement time-stretch from left of region
Make click & drag in the left-hand half of a region with the Timestretch
tool stretch the region on its left, leaving the end position of the new
time-stretched region in the same place as the end of the original.
2023-06-09 17:57:52 +01:00
96eb7652c9 fix warning from fallthrough comment typo
Fix "warning: this statement may fall through [-Wimplicit-fallthrough=]",
caused by the misspelling of "fallthrough" as "fallthough" in
editor_ops.cc.

Note that if you use ccache, you'll need to clear its cache to actually
get rid of the warning, because the pre-processed file (with comments
removed) is identical before & after this change, and thus won't get
recompiled otherwise.

Fix the equivalent typos in marker.cc too, though in those cases there's
no actual warning, because presently all the fall-throughs are from empty
cases.
2023-06-09 16:45:31 +01:00
586b109f9e
Remove unused variable, fix small memory leak 2023-06-08 23:14:33 +02:00
a5946ba2e2
Fix heap-use-after-free at exit
Deleting _track_canvas_viewport automatically destroys
any child Items. The LocationMarker's group was already destroyed
when ~ArdourMarker() runs and calls `delete group`.

So first delete the marker, then the canvas
2023-06-08 22:50:15 +02:00
44a6069694
Allow nonsensical meter-types for by default for tracks #9341 2023-06-07 22:22:52 +02:00
b4d95eec57
Do play MIDI notes on selection/draw by default
Since 4ad1c19166 "select all" etc no longer plays
all notes, and possibility to get a  loud speaker-blasting
cacophony is greatly reduced.

We may still want to add some additional heuristics, or
special case drawing new notes/hits, but for now this it
is sensible to enable this by default.
2023-06-07 22:22:52 +02:00
91579608b2
Remove duplicate API to find session files (ignore ._ files)
Session::possible_states correctly filters files
and also directly returns sorted base-names.

We can remove the redundant `get_state_files_in_directory`
API now.

see also 193b35e885
2023-06-07 17:37:40 +02:00
04d50ab880
Fix mouse edit-point cursor when dragging
Editor::motion_handler() only updates the snap-cursor
when no drags are active. While dragging, Drag::motion is
responsible to set the cursor accordingly.

In many cases the snap-cursor simply remained stuck at
the most recent position. Since in many cases
(e.g. RubberbandSelectDrag) it makes no sense to show the
cursor, so Drag::start_grab now hides the cursor by default.

This also fixes cases where the cursor is shown, but
was displayed in the wrong location.
2023-06-07 02:38:39 +02:00
3468ffddbb
Update GUI: add new section operations 2023-06-06 02:42:43 +02:00
961c6ae8d7
Prepare UI for section cut/copy API update 2023-06-06 02:42:43 +02:00
54fac9abac
Allow user to not be reminded about tempo-map not being pasted 2023-06-05 20:04:41 +02:00
dc338b7e93
Downgrade error messages that users cannot do anything about
Besides, it can happen under normal circumstances that the
Editor window, or any other window with clocks (prefs) is
visible while no session is loaded.
2023-06-05 15:58:50 +02:00
464df06419
Fix signal emission order ambiguity (record regionview)
A rec-region is added to the streamview just like any other region
(::add_region_view_internal). This subscribes to region->DropReferences.

When the DropReferences is handled first by StreamView::remove_region_view
the corresponding RegionView is destroyed.

This can happen even while recording is still active, eg. when locating
(which stops the current recording).
MidiStreamView::setup_rec_box() is called and crashes in
`dynamic_cast<MidiRegionView*> (rec_regions.back().second);`
due to a use after free.

Strictly speaking this is a logic error in how ::setup_rec_box()
determines if to add or remove the rec-box. But due to the
asynchronous nature of signal emission and transport-state changes
the best solution is to destroy the rec-region at the same
when the RegionView is destroyed.

To reproduce:
 * create a session with a MIDI track
 * disconnect the input (empty MIDI regions are removed)
 * Preferences > Transport > *enable* latched-record-enable
 * use the Dummy backend's MIDI generator
 * connect Hardware > MIDI > MMC -> Ardour misc > MMC in
   OR use JACK-transport to locate while recording.
2023-06-04 21:42:02 +02:00
1feb9b5e89
Streamview: NO-OP, consolidate code 2023-06-04 20:21:41 +02:00
Edgar Aichinger
1e8a1f29c4 a few corrections and (slightly) better translations regarding Varispeed/resampling 2023-06-04 17:34:02 +02:00
Edgar Aichinger
ba019053b6
more translation updates 2023-06-04 16:52:50 +02:00
Edgar Aichinger
714c093208
updated german translation 2023-06-04 16:52:50 +02:00
175f3c2405
Properly set xrun marker flags (#8952) 2023-06-04 16:49:10 +02:00
d6144ab8cf
partially revert db97db2513 - allow to activate sub-menu with LMB 2023-06-04 16:44:18 +02:00
4628be8ed3
Fix capitalization in running text 2023-06-04 16:08:11 +02:00
d206e5daa7
Allow translation, Track and Bus may have different gender 2023-06-04 15:55:33 +02:00
e9e4757a3c
Make a note how to use valgrind with gdb 2023-06-04 02:56:22 +02:00
36056597ce
GUI: use new MidiPort::set_tracer API 2023-06-04 01:15:14 +02:00
d16c5d69ed
Prepare GUI for MIDI trace API update 2023-06-04 01:15:08 +02:00
766e9dc7a1
Improve MidiTracer, format MMC messages 2023-06-03 19:10:27 +02:00
db97db2513
Activate track-header context menu items with RBM
Popup menu should handle the button that was used
to show the popup menu.
2023-06-03 15:13:04 +02:00
d66b70f3a2
Distinct engine-states per sample-rate
Previously only the one engine-state per device was
saved. However systemic latency depends on the sample-rate
(and buffersize)
2023-06-02 22:31:02 +02:00
8794145c9d
Centralize setting undo/redo action sensitivity
This fixes undo/redo action sensitivity for non-editor
history stack changes.

Notably recording was not undoable, because the butler
thread creates the reversible "capture" command.
2023-06-02 18:11:53 +02:00
921b4aaa75
Allow to drag time selection markers 2023-06-01 21:37:40 +02:00
c063be6a76
Implement Editor::abort_reversible_selection_op 2023-06-01 21:37:37 +02:00
6016c9624e Manage OptionEditor labels
Because those Widgets are added to managed frames (for search highlight)
the labels inside also need to be managed and not destroyed with the
Option (which happens first).

This fixes various GTK warnings at exit
```
gtk_widget_unparent: assertion 'GTK_IS_WIDGET (widget)' failed
```
2023-05-31 21:36:24 +02:00
8f1d188bf3
NO-OP: clang-format
This addresses various indentation problems caused by
`boost::` -> `std::` and other whitespace issues.
2023-05-31 16:53:38 +02:00
520b209c83
NO-OP: update comments 2023-05-31 15:53:12 +02:00
4bc8a3e9c7
Fix remove_selected_sources() for multi-channel sources
It is not sufficient to simply drop the first source
of a region. While destroying a whole-file region marks
all its sources as unused, only the source for 1st channel
was explicitly removed.

The session accumulated <Sources>, without corresponding
whole-file Regions. Those can prevent cleanup of unused
sources, particularly when using snapshots.
2023-05-29 21:15:50 +02:00
d8349b366e
Properly repopulate Region-list after regions are deleted 2023-05-29 18:05:34 +02:00
3c17721eff
Fix SourceListBase::remove_source
* It was never called because SourceListBase::set_session
  subscribed to the signal just before SessionHandle::set_session
  dropped _session_connections
* remove_source() only checked the first source of the whole-file
  region, not all sources of a multi-channel region.
  Stereo regions with mono sources are now properly cleaned up.
2023-05-29 18:04:27 +02:00
5dd35ff86a
Fix duplicate whole-file regions when embedding sources
playlist->add_region() derives a region in case a whole-file
region is added to the playlist.
2023-05-28 04:39:06 +02:00
0918f7fc09
Fix Mixbus build 2023-05-27 16:18:10 +02:00
cad949eb4e
Allow to rename plugins (#9352) 2023-05-27 15:16:46 +02:00
c9e13d49d4
PluginPinDialog: subscribe to processor name changes 2023-05-27 14:31:41 +02:00
159e677d8d user-visible action names should better match the intended shortcut mnemonic 2023-05-26 13:16:37 -05:00
ce6f156bc3 Add shortcuts for 'section copy+paste' actions, moving Crop to accommodate 2023-05-26 13:16:37 -05:00
9e91c01ca8 no-op (whitespace) 2023-05-26 13:16:37 -05:00
35cca5d47b
Fix crash when adding audio-ports without replicating plugin(s) 2023-05-26 19:18:00 +02:00
500a0c09e8
Exclude master-bus on monitor output connector 2023-05-24 07:15:01 +02:00
c9f95a1259
Amend a736ebfee, drop reference 2023-05-24 07:14:57 +02:00
a736ebfee4
Use IOButton in Monitor-Section
This not only remove duplicate redundant code, but also
fixes an issue with external port-disconnection not being
caught.
2023-05-24 04:07:30 +02:00
3b8cbd7c8f
Revert "Debug xwayland blank Engine dialog, allow to resize the window"
This reverts commit bb474b1b8e.
2023-05-24 00:45:16 +02:00
bb474b1b8e
Debug xwayland blank Engine dialog, allow to resize the window
Revert this before release
2023-05-23 03:19:34 +02:00
c1fe193def tempo mapping: handle the special case of trying to ramp the 'first' marker 2023-05-22 15:51:38 -05:00
cc630c6bbe tempo mapping: clicking on a bar line should always make a new tempo marker
* the process of tempo mapping requires/encourages you to click on the
   last-known good marker, before continuing to make tempo tweaks

* this conflicts with the idea that clicking in a ruler should start a
    playhead-drag.  TBD.   but tempo-mapping is a special and rare operation.
2023-05-22 15:51:33 -05:00
c669ff58e5
Cleanup, fix Wunused-private-field 2023-05-22 22:29:42 +02:00
515e67f784
NO-OP: clang-format 2023-05-22 22:23:41 +02:00