0e930ae5f4
Re-add another explicit sigc::disconnect
...
Apparently signals are not disconnected when the connection
is destroyed.
2021-12-17 17:28:32 +01:00
8b5711238e
Mysterious fix crash on selection
...
This was removed in 422ad6656d
since disconnecting
sigc::connection in the d'tor is not supposed to be a no-op.
2021-12-17 17:11:48 +01:00
422ad6656d
Re-do source-code cleanup and formatting
...
Some of this was lost in 26df9ccdf8
This also removes some excess code
2021-12-17 16:53:16 +01:00
49b1eb401d
Yet more code cleaning and formatting
2021-12-17 16:21:33 +01:00
26df9ccdf8
pixel pushing: return of drop-shadows (maybe)
2021-12-17 08:55:30 -06:00
27ba2c7ea6
Cleanup and clang-format source
2021-12-17 15:30:14 +01:00
6e3ed7f822
Clean up trigger-page layout
...
* move strip name-button to the top
* only manage() Gtk Widgets, not Canvas Items
* use identical layout for Cue and Strip
2021-12-17 14:51:19 +01:00
cf41055f7c
Disambiguate another Rect (fixes macOS builds)
...
/usr/include/MacTypes.h:550:41: note: candidate found by name lookup is 'Rect'
libs/canvas/canvas/canvas.h:57:8: note: candidate found by name lookup is 'ArdourCanvas::Rect'
2021-12-17 12:07:45 +01:00
b4c98f10e8
tweak towards getting handling of trigger_display in MixerStrip correct
2021-12-16 22:52:56 -07:00
d59a1944fe
Tweak trigger/clip media browser layout
2021-12-17 03:57:17 +01:00
50b5ba51bf
Revert "fix initial (and only) ::show() calls for triggerbox and trigger master widgets"
...
This was wrong. Busses do not have triggerboxen (at this time).
This reverts commit 8ebf91ae14
.
2021-12-16 18:59:48 -07:00
8ebf91ae14
fix initial (and only) ::show() calls for triggerbox and trigger master widgets
2021-12-16 18:55:40 -07:00
4c8559ecdf
fix redisplay/reset of triggerbox ui as part of set_route()
2021-12-16 18:55:05 -07:00
de6178093e
allow FittedCanvasWidget to have it's root first child replaced
2021-12-16 18:54:32 -07:00
5ad5603f1e
Unset CueMaster session-handle on session close
2021-12-17 00:42:07 +01:00
e3be6836ca
Trigger-clip-picker audition
2021-12-17 00:42:06 +01:00
95aad0dc15
Disambiguate Rect(angle) -- fixes Windows and macOS builds
2021-12-17 00:42:06 +01:00
8193d579de
trigger master widget visibility now also visibility group controlled
2021-12-16 15:53:49 -07:00
81ebe47fdd
triggerbox: some initial fixups for always-there trigger display
2021-12-16 15:45:46 -07:00
6a0b720d8f
convert trigger display into a permanent, VisibilityGroup-controlled element of MixerStrip
...
Likely to be soem SNAFUs to find
2021-12-16 15:30:25 -07:00
d933af6c81
attach triggerbox to triggerbox widget after construction
2021-12-16 15:15:14 -07:00
1e09a12642
remove TriggerBoxWindow API (not used)
2021-12-16 15:09:20 -07:00
9fd0b20b2a
Towards a proper media/clip-browser
2021-12-16 19:08:04 +01:00
21ed6a2626
add Config variable for trigger enable
2021-12-16 10:39:43 -07:00
39d9c39452
remove redundant double-add of "solo-selection" to session-sensitive-actions
2021-12-16 10:39:43 -07:00
f4009e0e09
triggerbox: display pass_thru state and allow control via context menu
2021-12-16 10:53:30 -06:00
ce40f82cc4
triggerbox: add TriggerMaster widget to mixer strip
2021-12-16 10:40:16 -06:00
9593cb97d1
triggerbox gui: replace stop-button with Loopster progress-indicator
2021-12-16 08:15:29 -06:00
1bf8f9bd0e
Remove 'l', 'i', 'b', 'p', 't', 'f', 'o', 'r', 'm', 'a', 't'
...
This fixes obj.use += 'libptformat' vs. obj.use += [ 'libptformat' ]
however the latter is already added unconditionally.
2021-12-16 04:09:25 +01:00
07d5b16e6f
more missing files
2021-12-15 20:48:10 -06:00
1812769f84
add missing files
2021-12-15 19:27:43 -06:00
a15397f746
triggerbox: new trigger_property widgets, because trigger data != a region
2021-12-15 18:08:22 -06:00
2e48fbc8cb
fix shutdown crash
2021-12-15 18:08:22 -06:00
4b26ce3f5f
remove assert(video_timeline)
...
The idle visual changer can run after the video timeline has been deleted, and this
is not an error.
2021-12-15 16:09:28 -07:00
7ade2099ce
move point of deletion of video timeline
...
The "ask about deletion" dialog will run a recursive main loop
which will call idle handlers, which could call the visual change
handler if the playhead is rolling. VTL is assumed to stoll
exist when this is called
2021-12-15 15:52:15 -07:00
ed6121d76e
triggerbox: continued work on Repeat trigger mode
2021-12-15 12:26:46 -07:00
8b1f7a696d
triggerbox: TriggerMaster widget: better loop-progress indication
2021-12-15 12:27:56 -06:00
abf0eecca3
triggerbox: cont'd work on TriggerMaster widget
2021-12-15 11:45:17 -06:00
da00c50271
disambiguate Rectangle for win/macOS
2021-12-15 09:38:10 -07:00
8b600d0080
disambiguate Rect for win/macOS
2021-12-15 09:32:58 -07:00
91f38f9c4e
remove Session::bbt_time() and use TempoMap::use()->bbt_at() explicitly everywhere (GUI edition)
2021-12-14 21:59:33 -07:00
66a114a892
triggerbox: draw icons for follow-actions (for testing)
2021-12-14 20:40:15 -06:00
142ca9fd07
Allow DnD to TriggerBox from Editor's sidebar
2021-12-14 21:34:21 +01:00
8d137b1514
Add API to support Editor sidebar DnD outside of the editor
2021-12-14 21:33:24 +01:00
56605c48da
Prevent editor to grow vertically > 1080px (temp. workaround)
...
This will require some overhaul and re-layout of the selection
sidebar.
2021-12-14 21:09:32 +01:00
509c247bfe
Add strip dialog to blank Trigger Page
2021-12-14 21:03:48 +01:00
36e995b2e4
triggerbox: rough-in sliders for velocity and probability
2021-12-14 13:11:11 -06:00
4d4fdc2b55
trigger_ui: remove dynamic widget allocation (leftovers from canvas)
2021-12-14 10:40:37 -06:00
f8e9ac893e
trigerbox: de-sensitize follow-action widgets when FA is off
2021-12-14 10:40:37 -06:00
f632a57aaf
Triggerbox: add a widget for follow_count (ToDo: need ArdourSpinner?)
2021-12-14 10:40:37 -06:00
a07750faa1
Clip Properties: remove Loop buttons (we will use Follow action instead)
2021-12-14 10:40:37 -06:00
fde1b3d27e
Highlight Drop Trigger Slot
2021-12-14 03:10:03 +01:00
237dfb53e7
remove add trigger check box from add route dialog (always use triggers)
2021-12-13 15:12:36 -07:00
5e38da36c6
Allow to drop file into dedicated Triggerbox slot
2021-12-13 23:05:03 +01:00
4f89834e7b
Remove comments that clash with git merge markers
2021-12-13 22:51:42 +01:00
28410ebb9a
Triggerbox accept file DnD
2021-12-13 22:51:16 +01:00
4720a45868
Make convert_drop_to_paths() reusable
2021-12-13 22:50:13 +01:00
a9e1a8a885
fix compilation on macOS (usual conflicts over "Rect" typename)
2021-12-13 12:02:57 -07:00
a0db260daa
audio clip editor: hide ruler if we do not know the tempo, since we can't draw it under such circumstances
2021-12-13 09:21:06 -07:00
3e5606415f
Trigger Cues: implement Stop button (gtk part)
2021-12-13 07:27:16 -06:00
c862b604e1
TriggerBox: change highlight behavior and experiment with black borders
2021-12-13 07:02:51 -06:00
f5049cda74
audio clip editor: restore ruler removed during merge conflict resolution; incrementally improve its behavior
2021-12-12 22:49:29 -07:00
e5d40e86e7
Do not dynamically allocate persistent widgets
2021-12-12 14:34:14 +01:00
be7882d7a7
Skeleton for trigger clip file dialog
2021-12-12 14:25:49 +01:00
8bb0e18f3f
Fix merge-conflict and clang-format in previous commit
2021-12-12 14:01:46 +01:00
efed7343e0
NO-OP: clang-format, cleanup
2021-12-12 13:48:52 +01:00
c233609c7c
audio clip editor: add an incomplete ruler to the display
2021-12-11 21:05:32 -07:00
208010ff18
Fix Wreorder
2021-12-11 15:51:46 +01:00
3c03e4951e
Use updated temporal API 2/2
2021-12-11 15:51:31 +01:00
3efd26e864
audio clip editor: actual scrolling with the scroll bar
...
Some issues remain to be solved, related to scroll groups and coordinate offsets
2021-12-10 17:56:10 -07:00
e61c493fa5
audio clip editor: not-quite-working scrollbar
...
Something about Canvas::ScrollGroup::scroll_to() is not working quite
as expected ... to be determined
2021-12-10 17:16:47 -07:00
0e9eef46a0
audio clip editor: lines belong to scroll group
2021-12-10 16:06:39 -07:00
cb2b78bb41
audio clip editor: add scroll bar handle
2021-12-10 16:04:47 -07:00
02026c98ff
basic skeleton for clip editor bindings
2021-12-10 15:15:56 -07:00
ef07d47bf8
audio clip editor: use scroll group for waves container
2021-12-10 15:15:16 -07:00
82f2392d85
fix binding for "bar" key in step editing bindings
...
It is not possible to generate "bar" without the shift modifier on most (all?)
keyboards. The same condition exists for the _ key in the main bindings
2021-12-10 13:20:20 -07:00
e3cac796b3
audio clip editor: primitive (left-focus) zoom
2021-12-10 12:50:44 -07:00
5b4dd8dcf4
audio clip editor: basics of line dragging
2021-12-10 11:59:19 -07:00
eac0f28642
audio clip editor: change line widths and fix frame color
2021-12-10 11:07:51 -07:00
56835d342c
audio clip editor: basic line drawing
2021-12-10 09:47:56 -07:00
3bbe54f07a
audio clip editor: draw entire source file(s), not just region
2021-12-10 08:54:38 -07:00
5ada2b7ce1
audio clip editor: draw waveforms (not sized horizonally appropriately yet)
2021-12-09 21:44:23 -07:00
fbfbdbe266
include size request for audio clip editor
2021-12-09 21:21:05 -07:00
757debb711
start putting some relevant elements into the AudioClipEditor
2021-12-09 21:12:47 -07:00
12dc428a60
change class names and heirarchy for the GUI elements that will be used to edit/trim clips
2021-12-09 19:45:25 -07:00
7426c96812
remove incorrectly added files
2021-12-09 19:41:21 -07:00
972229a02f
Remove some spurious printouts
2021-12-08 13:39:38 -06:00
be27e7359f
Property Boxen: handle more {audio|midi} cases; move code around.
2021-12-08 12:58:12 -06:00
132779ab39
Property Boxen: populate the Trigger page with property-editor placeholders
2021-12-08 12:58:12 -06:00
d30f87bf00
PropertyBoxen: provide all slot property editors in a popup dialog (?)
2021-12-08 12:58:12 -06:00
1e38797efc
PropertyBoxen: move selection-properties into the sidebar
2021-12-08 12:45:11 -06:00
50aa2c490d
PropertyBoxen: initial draft of property-editing widgets that follow the Selection
2021-12-08 12:45:11 -06:00
62662f888c
PropertyBoxen: Publish some region operations to PublicEditor so we can access them more easily
2021-12-08 12:45:11 -06:00
cdce9e120e
Trigger_UI: De-Canvas the trigger_ui widget so it can be reused in other places
2021-12-08 12:45:05 -06:00
d7116c985e
Trigger_UI: change API to use set_trigger() instead of constructor arg
2021-12-08 12:40:20 -06:00
9d0d8e1785
Selection: Region Operations in a Slot need a RegionView proxy (ToDo)
2021-12-08 12:40:20 -06:00
1489fabbcd
Selection: make trigger slots more exclusive wrt some other selectables
2021-12-08 12:40:20 -06:00
fcab855fca
Trigger Cues: continued work on triggers, cues and master widgets
2021-12-08 12:35:32 -06:00
d20298549e
Trigger Cues: add to trigger page
2021-12-08 12:35:32 -06:00
0e26bd19c4
Trigger Cues: Rough-in controls for Cues
2021-12-08 12:35:32 -06:00
c0ff182e5f
triggerbox: add a master-stopper-widget (currently it stops whatever slot is playing)
2021-12-08 12:35:17 -06:00
ab8a2cb4d0
FittedCanvas: a GtkCanvas wrapper that follows ui-scale and ignores child size requests
2021-12-07 16:32:49 -06:00
80939f2228
Option to show gain-knob on Meterbridge
2021-12-07 17:56:39 +01:00
54c71c3d61
skeleton/experiment for audio clip editor
2021-12-06 14:53:04 -07:00
c7b70c6318
new GUI preference item for showing only 1 plugin GUI at a time. Disabled by default
2021-12-05 11:07:27 -07:00
d7fdec2ef5
remove another instance of std::numeric_limits<timepos_t>::max()
2021-12-05 09:22:02 -07:00
eb0b3f253a
make Drag::grab_time() etc. follow the drag's _time_domain
2021-12-04 19:52:42 -07:00
796785b42f
in Drags, use Drag::pixel_to_time() rather than Editor::pixel_to_sample()
...
This preserves the TimeDomain of the drag
2021-12-04 19:48:31 -07:00
845b5d81a9
add Drag::pixel_to_time() which reflects the Drag's _time_domain setting
2021-12-04 19:38:26 -07:00
fc155e76b4
give every Drag an explicit time domain
2021-12-04 18:44:57 -07:00
Houston4444
692aa7bbb8
Add NSM ':switch:' capability
...
This allows to switch from one Ardour session to another without
application restart.
This also include some minor related NSM fixes.
2021-12-04 14:34:44 +01:00
3723b71620
TriggerStrip: replace gain-knob with slider
2021-12-03 02:25:52 +01:00
01c83ec122
TriggerStrip: add solo,mute,pan,gain controls and meter
2021-12-02 22:28:05 +01:00
59b012ddb0
Implement TriggerStrip and TriggerPage (WIP)
2021-12-01 23:10:08 +01:00
9ce604bc03
New Tabbable: Trigger-Page skeleton
2021-12-01 23:10:08 +01:00
229a8aea13
Add option to toggle TriggerBox PI
...
This does not show/hide the Triggerbox in the Mixer itself,
it only sets the presentation-info flag (to be used on the Trigger Page).
2021-12-01 23:10:07 +01:00
f584335f28
follow Beats API change in MidiRegionView::paste_internal()
2021-11-29 21:50:29 -07:00
60e522f4ee
MIDI Program Changes: Fix some thinkos in patch-change flag locations
...
Program Changes are stored as an offset from the 'source' start, and must be translated to/from region time.
Better locating of patches wrt the grid:
You can't assume time_to_pixel is steady across the timeline
* calculate position of the patch-change flag
* calculate region start position, and set flag's x offset from there
also: consolidate patch-location code into display_patch_changes()
2021-11-23 14:14:35 -06:00
c27bfde045
MIDI Program Changes: prevent patch-changes from moving after every edit by the dialog.
...
The clock widget shows absolute time but must be converted to+from source time
2021-11-23 14:14:35 -06:00
5212fc9677
MIDI Program Changes: dragging patches was resulting in the wrong location or disappearing altogether
...
a Program Change's position is referenced from the midi Source which might not be the same as the region start
2021-11-23 14:14:35 -06:00
ec88635555
MIDI Draw: potential workaround for sticky menu items at startup
2021-11-19 13:01:54 -06:00
84111a343e
Deinterlace MIDI: gui part
2021-11-19 10:28:37 -06:00
ca7e133e3d
MIDI Draw: fix thinko in length=Auto
2021-11-19 10:28:37 -06:00
bc6766fc3f
midi region view: fix crashes when adding notes
...
A region may have no notes, or none in the correct time range. Finding
a note to get channel or velocity info from may fail
2021-11-18 10:03:34 -07:00
252ae56a08
MIDI Draw: change behavior regarding MIDI Channel of new notes
...
When adding a note, use these criteria to choose the channel number:
* if the user has explicitly specified a note in the pulldown, use that
* if the user has AUTO selected and we are in a region, choose the nearest note's channel (consistent with velocity behavior)
* as a fallback, query the track for its channel-filter (old behavior)
2021-11-18 08:23:08 -06:00
eebf3717e3
MIDI Draw: note-length-auto means 'use the Grid for note-length' (prior behavior)
2021-11-18 07:35:13 -06:00
93e68a5a00
MIDI Draw: provide a menu for Channel and Velocity
2021-11-18 07:35:13 -06:00
2a6da0113f
MIDI Draw: Provide a menu to explicitly select note-length
...
ToDo: 3,5,7's? keyboard shortcuts?
2021-11-18 07:35:13 -06:00
c24cabead0
GUI changes to follow TempoMap::sample_at() API changes
2021-11-17 15:57:30 -07:00
fd5594f831
use Editor::reassociate_metric_markers() before performing edits on tempo map
...
The objects referenced by markers point to the copy of the map held by the per-thread ptr. But
the edits must be done on a writable copy of the map. ::reassociate_metric_markers() fixes
the references to use the writable copy, so that when we pass references to the objects in the map
to the writable copy, it will find them and modify them (rather then ones in the previous
generation of the tempo map)
2021-11-17 12:16:39 -07:00
18e851cd73
catch too-early use of PublicEditor::instance()
2021-11-17 12:16:39 -07:00
710c5b9b78
do not use PublicEditor::instance() in MainClock, since these obejcts can exist before the editor
...
The AudioEngine on the other hand is created in the global libardour init method, so use that instead
2021-11-17 12:16:39 -07:00
f0cd3b5c0c
editor: when the tempo map changes, update the per-thread pointer
...
TempoMap::use() merely returns the current per-thread tempo map
pointer; if a change is signalled, we should force an update
of the per-thread ptr via TempoMap::fetch()
2021-11-17 12:16:38 -07:00
dd4e495d90
audioclock: use correct call for "right now" tempo display
2021-11-17 12:16:38 -07:00
2735022357
audio_clock: fix uninitalized variable
2021-11-17 12:16:38 -07:00
f6adf9c897
MIDI Import: gtk part
2021-11-14 08:21:00 -06:00
4c472ca1c5
TriggerSlot: Remove Queued menu-item (for now)
2021-11-13 15:54:11 -06:00
85fc3d5629
add missing file
2021-11-10 21:16:27 -07:00
4f58a92c6d
show trigger/slot selection
2021-11-10 17:51:04 -07:00
a9949f20e6
basic architecture for Trigger selection
...
This is all done in the GUI, using GUI objects. THe primary goal
here is to allow actions to be applied to selected triggers, so
there's no real need for a trigger aspect to libardour (core)
selection.
2021-11-10 16:37:15 -07:00
0d96753364
remove unused variable
2021-11-10 11:55:20 -07:00
605daf23f2
add default bindings for note shortening
2021-11-06 10:21:31 -06:00
8cfdd0ca5b
add actions to provide access to note-shortening
2021-11-06 09:49:39 -06:00
7fca55eeb5
Fix placement of drawn MIDI notes.
...
Important logic from 6.9 was either missing or incorrectly implemented. New
version is much simpler - we just use the RoundDownMaybe mode of round_to_bbt()
to ensure that the note start is always within the current grid even if the
mouse is more than halfway "through" it.
2021-11-04 18:27:02 -06:00
2d9eb6ec81
Fix error in drawing length of ghost MIDI notes in note drawing mode
2021-11-04 18:25:45 -06:00
efdd3e86c3
remove unused variable
2021-11-04 13:59:43 -06:00
af2af29c95
remove Kiwi constraint-based packing code from canvas library and users (GUI version)
2021-11-04 11:25:56 -06:00
0c5d41039a
more scene triggering actions
2021-11-03 18:44:31 -06:00
aba0de91f8
add missing file
2021-11-01 13:40:23 -06:00
b7ce131557
triggerboxUI: skeleton for triggerbox bindings and actions, include triggering of scene 1
2021-11-01 12:11:57 -06:00