13
0
Commit Graph

35212 Commits

Author SHA1 Message Date
1fa7a72f72 midi_region_view: rename 'apply_diff' to 'apply_note_diff' for clarity
these functions operate on the _note_diff_command,
 which is explicitly a NoteDiff,  not a generic DiffCommand

also fix a few thinkos where the ambiguous naming led to errors
2022-05-10 15:47:48 -05:00
133600d5dc midi_region_view::apply_diff: implement using renamed midi_model functions 2022-05-10 15:47:48 -05:00
9fcf8b3a11 midi_region_view: rename commit_resizing -> finish_resizing
* 'commit' suggests that this function would commit an undo record
2022-05-10 15:47:48 -05:00
f9c9fd099d midi_region_view: adopt midi_model renaming (gtk patch_change part)
* apply_diff_command_as_commit explicitly tells us we don't
  need the begin/commit pair here
2022-05-10 15:47:47 -05:00
f9d73957ce midi_list_editor: adopt midi_model diff function renaming (gtk part) 2022-05-10 15:47:47 -05:00
f50d5507c3 midi_model: rename some midi diff functions, to (try to) avoid confusion
syntax for beginning and ending a diff command is:
 "new_diff_command"  ->  "apply_diff_command"

syntax for applying a diff_command is:
 "_as_commit" :  Begins and Commits a standalone undo Command
 "_as_subcommand" :  adds to undo but does not Begin or Commit a Command
 "_only" : (new) applies the note_diff but does not have any effect on undo
2022-05-10 15:47:20 -05:00
c44d692390 Create a trap for overlapping or nested undo commands 2022-05-10 13:14:08 -05:00
9c9273e694 scrolling the midi track/region works only if pointed-at-region is selected 2022-05-10 11:45:52 -06:00
126a85aaca midi editing: simple click on region in internal edit/draw modes selects region 2022-05-10 11:45:10 -06:00
26816fc696 remove debugging output 2022-05-10 11:44:51 -06:00
6f9aa3677f tempo markers: ctrl-drag now alters tempo for that section 2022-05-10 09:46:08 -06:00
a57f4fbce6 temporal: after changing a tempo point, reset the map starting at that point 2022-05-10 09:46:08 -06:00
be2a29b8c3 remove debug output during tempo marker redisplay 2022-05-10 09:46:08 -06:00
9b51d80210 explanatory comment 2022-05-10 09:46:08 -06:00
66a3513dbd remove copy option for TempoMarkerDrag
This just seems like a dumb UI to implement. Drag-copying tempo markers is not a thing
2022-05-10 09:46:08 -06:00
eff34f2e1b use editor tempo editing API rather than TempoMap API 2022-05-10 09:46:08 -06:00
f9353243c2
Do not unconditionally query git revision
Set version for configure, build and dist only.
This fixes an issue with `sudo ./waf install` where
`sudo git describe` can fail.


See also
 https://discourse.ardour.org/t/waf-error-when-buliding-on-linux-ubuntu/107201/11
 https://github.blog/2022-04-12-git-security-vulnerability-announced/
2022-05-10 16:43:29 +02:00
be90b4e0ca US2400 - fix crash when no strip is selected
first selected could be null, so check that first.
This is untested since I don't have a surface.
2022-05-10 09:17:33 -05:00
834ca29cde
Silence DR after freewheel export 2022-05-10 16:01:39 +02:00
445e8c468e
Add TSFM API to immediately stop the transport
This is useful after a freewheel export, where a realtime-stop
is called, but the actual Locate/MustStop event is only processed
later. Once the session switches back to normal processing after
export the transport is still rolling, TSFM schedules a de-click
locate. This may play some remaining audio.

This new API allows to hard stop the transport, without going
via any session-events and process_with_events. It is intended to
be called from the freewheel process-callback in the last export
cycle.
2022-05-10 16:01:39 +02:00
2fc43c59c4
Fix audible hiccup at end of realtime export 2022-05-10 16:01:39 +02:00
1809b6ae9a
Reset port resampler after freewheeling
This clears out any data potently left there by export processing.
Previously this could cause an audible click.
2022-05-10 16:01:39 +02:00
b26f0b3e85
I/O Plugin GUI: set min height, fix context menu generic/edit 2022-05-10 16:01:35 +02:00
John Emmas
04c7cba961 Add a missing #include (needed when building with MSVC) 2022-05-10 11:20:43 +01:00
3d7b8f0df3
Implement I/O Plugin GUI 2022-05-09 17:39:06 +02:00
f8e1202ed4
Bootstrap IO Plugin UI 2022-05-09 17:39:05 +02:00
d4c15aab3f
List I/O Plugins in DSP-load window 2022-05-09 17:39:05 +02:00
a97e910b70
Debug efficiency of latency and graph order callbacks 2022-05-09 17:39:05 +02:00
3f1420880b
Implement IOPlug processing using the Process Graph 2022-05-09 17:39:05 +02:00
af6f8abdc7
Prepare IOPlug processing as GraphNode 2022-05-09 17:39:05 +02:00
c45a6b80c7
Session support to add/remove save/load IOPlugs 2022-05-09 17:39:05 +02:00
74f71c6683
Session-wide plugin support (IOPlug)
The idea is to run a plugin outside the process graph, and provide
its I/O as port (much like an external JACK app).

The intended use-case is NDI (provide additional I/O), but it could
also be useful for other cases.
2022-05-09 17:39:05 +02:00
8a90d4a414
Fix another possible memory leak in BPM detection code 2022-05-09 17:34:59 +02:00
f0a8b8cd6d
Fix an unlikely memory leak in zita-resampler 2022-05-07 04:19:16 +02:00
221975a982
Fix memory-leak in BPM detection 2022-05-07 04:19:12 +02:00
46117303da
Fix some potentially uninitialized variables 2022-05-07 04:19:09 +02:00
f5b280a850
Generalize graph processing
This allows to pass any GraphChain to the Graph to process.
It removes the need to use a mutex to swap two dedicated
chains (setup-chain <> active-chain, pending-chain).

Also various special cases pertaining to graph interaction
while auditioning and route-deletion can be removed.

This also unconditionally creates a graph-thread for GraphChains
to be processed, even if the main callback uses a special-cased
sorted RouteList if there is only one process thread.
2022-05-06 17:43:01 +02:00
5fa7d481c1
Optimize Route::direct_feeds_according_to_reality
Consolidate duplicate function calls, cache result in local variable.
2022-05-06 14:02:35 +02:00
44bb8caa65
Use new Route fed-by API (2/2) 2022-05-06 14:02:35 +02:00
9b1440ab23
Use new Route fed-by API (1/2) 2022-05-06 14:02:35 +02:00
9ad154f265
Untangle Graph from Route
The process-graph should only be concerned with GraphNodes,
which may or may not be Routes.

This also removes intrinsic connection information from
the graph-node. Connection information is to be kept separate
from the nodes.

When the graph is re-calculated in the background, old information
has to be retained until the new graph becomes active.

Previously *new* information was already stored in the nodes
while the graph is sorted, even though the new graph was not
active.
2022-05-06 14:02:34 +02:00
3862d13e21
Prepare for GraphNode::feeds () and fed-by API update (2/2) 2022-05-06 14:02:34 +02:00
f2016f2408
Prepare for GraphNode::feeds () and fed-by API update (1/2) 2022-05-06 14:02:34 +02:00
078e652859
Implement rt-safe deletion - delegate to butler 2022-05-06 14:02:32 +02:00
itmuckel
b4edbae7af Add hidden ui config for close without asking 2022-05-06 10:12:17 +02:00
itmuckel
d7f2c35beb Cruft removal 2022-05-06 10:12:17 +02:00
226dadbd19
Further reduce DSP load of debug builds
In all years of using these assert()s never triggered. Besides
there are valid_port() tests in other strategic locations that
are not periodically hit in realtime context.
2022-05-06 02:04:55 +02:00
ed21ea8fc6
Speed up valid-port changes O(n) -> O(log(n))
This significantly reduces DSP load of sessions with many ports
when using debug builds.
2022-05-06 02:04:49 +02:00
37c0fceeac
Prefer comparison operators as part of the class 2022-05-06 02:04:43 +02:00
ce95c9fb09
Fix std::set< BackendPortPtr> lookup by key
The set uses a custom sort-by-name comparator.
Previously it was possible to have an inconsistent set iterator.
std::set::find() did not find a given port while std::find() did.

This fixes using std::set::find() on the PortIndex set.
2022-05-06 02:04:33 +02:00