Commit Graph

35175 Commits

Author SHA1 Message Date
Ben Loftis de9f18b4f9 when Drawing MIDI notes, enforce a minimum length
This fixes the issue where you click to create a note, but move the mouse
 just a little, resulting in a note of invisibly small length

Do the calculation in ::motion so it displays the final
 size while you are dragging. "what you see is what you will get"
2022-05-10 20:00:26 -05:00
luz paz 36ae8e7022
Fixed typo that may also be a bugfix 2022-05-11 00:14:28 +02:00
luz paz 1e640563d6
Fix source comment typos in `libs/ardour`
Found via `codespell`
2022-05-11 00:14:28 +02:00
Ben Loftis a251ba3b76 pt_import: since we aren't using undo here, need to delete the diff_command manually 2022-05-10 15:47:56 -05:00
Ben Loftis 5f6f01a8e2 fix trim_region_to_{loop|punch} ... coverage logic was reversed 2022-05-10 15:47:56 -05:00
Ben Loftis 764aa75f09 reset_region_scale_amplitude is redundant with reset_region_gain 2022-05-10 15:47:56 -05:00
Ben Loftis 62fd8ecd35 crop_region_to_selection: remove redundant check for a Range
get_edit_op_range() already checks for the existence of a Range
2022-05-10 15:47:56 -05:00
Ben Loftis 256549e0c7 correctly abort the undo record when Editor::clear_markers (et al) have no effect
* move abort_reversible_command into the correct bracketed location

* check for missing _session at top of function to avoid unnecessary nesting

* this fixes an undo 'assert' when an action like "clear xrun markers" has no effect

* this was likely a copy+paste thinko since they are adjacent in the code
2022-05-10 15:47:56 -05:00
Ben Loftis dbd80a6dd0 fix thinko in command name ('set session END' not start) 2022-05-10 15:47:56 -05:00
Ben Loftis 07b468b108 fix undo for toggle_region_mute 2022-05-10 15:47:56 -05:00
Ben Loftis ee137333b9 midi_region_view: implement undo for duplicating a note selection 2022-05-10 15:47:56 -05:00
Ben Loftis dbe49ae8c4 editor::paste fix a thinko in undo nesting 2022-05-10 15:47:56 -05:00
Ben Loftis 5310e1e099 create_note: fix a few thinkos which resulted in nested undo 2022-05-10 15:47:56 -05:00
Ben Loftis 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
Ben Loftis 133600d5dc midi_region_view::apply_diff: implement using renamed midi_model functions 2022-05-10 15:47:48 -05:00
Ben Loftis 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
Ben Loftis 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
Ben Loftis f9d73957ce midi_list_editor: adopt midi_model diff function renaming (gtk part) 2022-05-10 15:47:47 -05:00
Ben Loftis 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
Ben Loftis c44d692390 Create a trap for overlapping or nested undo commands 2022-05-10 13:14:08 -05:00
Paul Davis 9c9273e694 scrolling the midi track/region works only if pointed-at-region is selected 2022-05-10 11:45:52 -06:00
Paul Davis 126a85aaca midi editing: simple click on region in internal edit/draw modes selects region 2022-05-10 11:45:10 -06:00
Paul Davis 26816fc696 remove debugging output 2022-05-10 11:44:51 -06:00
Paul Davis 6f9aa3677f tempo markers: ctrl-drag now alters tempo for that section 2022-05-10 09:46:08 -06:00
Paul Davis a57f4fbce6 temporal: after changing a tempo point, reset the map starting at that point 2022-05-10 09:46:08 -06:00
Paul Davis be2a29b8c3 remove debug output during tempo marker redisplay 2022-05-10 09:46:08 -06:00
Paul Davis 9b51d80210 explanatory comment 2022-05-10 09:46:08 -06:00
Paul Davis 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
Paul Davis eff34f2e1b use editor tempo editing API rather than TempoMap API 2022-05-10 09:46:08 -06:00
Robin Gareus 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
Todd Naugle 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
Robin Gareus 834ca29cde
Silence DR after freewheel export 2022-05-10 16:01:39 +02:00
Robin Gareus 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
Robin Gareus 2fc43c59c4
Fix audible hiccup at end of realtime export 2022-05-10 16:01:39 +02:00
Robin Gareus 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
Robin Gareus 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
Robin Gareus 3d7b8f0df3
Implement I/O Plugin GUI 2022-05-09 17:39:06 +02:00
Robin Gareus f8e1202ed4
Bootstrap IO Plugin UI 2022-05-09 17:39:05 +02:00
Robin Gareus d4c15aab3f
List I/O Plugins in DSP-load window 2022-05-09 17:39:05 +02:00
Robin Gareus a97e910b70
Debug efficiency of latency and graph order callbacks 2022-05-09 17:39:05 +02:00
Robin Gareus 3f1420880b
Implement IOPlug processing using the Process Graph 2022-05-09 17:39:05 +02:00
Robin Gareus af6f8abdc7
Prepare IOPlug processing as GraphNode 2022-05-09 17:39:05 +02:00
Robin Gareus c45a6b80c7
Session support to add/remove save/load IOPlugs 2022-05-09 17:39:05 +02:00
Robin Gareus 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
Robin Gareus 8a90d4a414
Fix another possible memory leak in BPM detection code 2022-05-09 17:34:59 +02:00
Robin Gareus f0a8b8cd6d
Fix an unlikely memory leak in zita-resampler 2022-05-07 04:19:16 +02:00
Robin Gareus 221975a982
Fix memory-leak in BPM detection 2022-05-07 04:19:12 +02:00
Robin Gareus 46117303da
Fix some potentially uninitialized variables 2022-05-07 04:19:09 +02:00
Robin Gareus 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