13
0
Commit Graph

15274 Commits

Author SHA1 Message Date
54d794e242 rough-in global Cue functions (rec-enable and play-enable i.e. cue-ffwd) 2022-02-12 21:46:30 -06:00
bb67041938 public_editor: expose toggle_cue_behavior for access from ArdourUI 2022-02-12 21:46:30 -06:00
de9f73c040 cue page: remove the unmarked rec-enable button from the cues column 2022-02-12 21:46:30 -06:00
bfd698bef8 mini-timeline: rough-in Stop Cue markers 2022-02-12 21:46:30 -06:00
04bd9187e4 temporal: add (back) first set of unit tests
This just uses the old Evoral BeatTest. Some of the tests needed amending
because temporal uses rint() to convert between float and int, not just
a cast.
2022-02-12 15:12:35 -07:00
9cea6b7359 trigger_ui: don't allow Stretch options to be edited on an active clip 2022-02-12 11:14:40 -06:00
d20dfe8f88 clip_picker: fix logic to show MIDI file properties 2022-02-12 09:35:24 -06:00
6bc881086b Fix a bug where the spinner skipped values because it was always rounding down
Until we have a trimmer, the clip length spinner sets integer beats (beatcnt)
This allows the user some minimal ability to fix a clip of the wrong bpm.
We assumed that 'clips' are already be pre-trimmed to a beat length.
Our internal heuristic always forced tempo to match an integer beatcnt

However: when bouncing a Range to a Trigger Clip, you can know the tempo, and also have a non-integer beat length.
In those cases, the clip-length spinner could behave oddly.

While it's arguably wrong to show integer beats when the internal value is something else,
  we still want to show the spinner in integer beats, so it remains usable for its main purpose
2022-02-12 09:10:23 -06:00
40b483e71e trigger_ui: move the patch-dialog to the properties area.
* patch-dialog is now launched from a button and stays open
* patch-dialog now tracks the current selection
2022-02-11 15:32:00 -06:00
a8cf442bc9 pixel-pushing: clean up the dialog for Range->Bounce to Trigger Clip 2022-02-11 15:32:00 -06:00
a02689f41e Range->Bounce to Trigger Clip: use UISTate api to set tempo of clip
* also use the desired name without the extra stuff that bouncing adds to the filenam
2022-02-11 15:32:00 -06:00
02e9222221 trigger_ui: implement new UIState api for drag&drop 2022-02-11 15:32:00 -06:00
76ae8f29f7 triggerbox GUI: stop-all cue marker uses INT32_MAX now 2022-02-11 13:37:14 -07:00
17e5667216 triggerbox: use translatable marker name function in GUI 2022-02-11 11:33:43 -07:00
9b3d0ddd11
Fix incorrect check for existing directory
Glib::file_test returns true if **any** of the tests in the
bitfield test are true (not *all*).
2022-02-10 22:04:40 +01:00
ff56cd61b3
Do not switch to Clip Library when moving a file into the dropzone 2022-02-10 21:59:53 +01:00
a63a18a338
Do not allow to add the same folder to the clip library path twice 2022-02-10 18:25:11 +01:00
76a133cdf0
Allow to add folders to the clip-list via DnD 2022-02-10 18:09:45 +01:00
9f45e1a1fe
Copy Bank/Patch changes from auditioner to trigger-slot
This will need some refinement, we should only copy the settings
if the file in question was previously auditioned, and perhaps
only if GMsynth.lv2 is used.
2022-02-10 02:22:35 +01:00
46b8b0963e
Fix bounce_range_selection trigger slot dropdown 2022-02-10 00:43:09 +01:00
a309f237f2
Allow direct trigger -> trigger selection changes
Previously there were two signals for a ::set()
1. Clear Selection -> Emit Signal
2. Select TriggerEntry -> Emit Signal

As result the Trigger Patch Selector was reset and hidden at (1),
only to be set and presented again at (2).

This should perhaps be done for other ::set() calls as well.
2022-02-09 21:09:46 +01:00
42df6be0fa
Show Trigger Patch Selector on selection 2022-02-09 21:09:46 +01:00
a4fd29fa7d
Refactor PC Dialog/Window -- non-modal tabbed dialog 2022-02-09 21:09:46 +01:00
eb674d3b58
Prepare for non-modal PatchChangeTriggerDialog 2022-02-09 21:09:46 +01:00
6d64120e0e trigger_ui: move the follow-count text to the right side of trigger-master; it was obscured by the midi 'note' icon
also rethink the update mechanism; TriggerBox.cc generates far too many updates (see comments)
2022-02-09 13:11:31 -06:00
c8ed5fdef6 revert 'testing' part of e0b14f: always showing the pgm-picker was an annoyance 2022-02-09 13:09:07 -06:00
e3e7f587bd
Use audition synth when creating new trigger tracks via DnD 2022-02-09 14:32:12 +01:00
c9607d2fed change non-save button in "Name Session" dialog to be "Cancel" not "Discard" which is confusing 2022-02-08 20:33:46 -07:00
43b98524b5 Cue page: cues are timeline rulers so color them(?); pixel-pushing 2022-02-08 17:04:09 -06:00
6c6e7ba2ee cue markers: pixel pushing 2022-02-08 17:04:09 -06:00
292faff26e Mini-timeline: Cues are events but they are also continuous 2022-02-08 17:04:09 -06:00
6b064c1599
NO-OP: whitespace 2022-02-08 23:20:40 +01:00
ba32ee0e87
Initial version of MIDI Trigger patch override UI 2022-02-08 23:15:24 +01:00
e0b14f0231 clip picker: Add midi file properties; only shown when .mid is chosen 2022-02-07 19:33:43 -06:00
65f7e158a9 clip picker: tweak layout and rename _dir variable 2022-02-07 19:33:43 -06:00
51f458220d
Abstract Patch Change Widget, prepare to reuse for Slots 2022-02-08 01:25:37 +01:00
0a49586b1a
Fix macOS builds (incomplete type, missing include in 9eb626cc37) 2022-02-06 00:39:36 +01:00
d22269f59f Trigger Page: add an audition-synth selector to Clip Picker 2022-02-04 21:41:34 -06:00
9ad82787a1 Instrument Selector: use a 3-way Disposition to disambiguate the uses of this widget 2022-02-04 21:33:12 -06:00
9eb626cc37 Auditioner: hide unnecessary widgets for auditioner synth GUI 2022-02-04 20:18:00 -06:00
91609791b4
Format used MIDI channels in Import Dialog Info Box 2022-02-05 00:13:28 +01:00
ef8904210e
Add method to format set of MIDI channels
eg. channels 1,2,3,5,6
will be formatted as "1-3, 5, 6"
2022-02-05 00:13:28 +01:00
6df1bd3ad5
Triggger Clip Picker: fix crash at session close 2022-02-04 13:58:22 +01:00
834e164df0
Trigger Clip Picker: Idle update audition synth
This keeps the plugin in sync with any changes made to the
Plugin UI. In particular General MIDI Synth will send
notifications once patch/program changes are processed.
ACE Fluidsynth can load sf2 files, etc.
2022-02-04 13:57:33 +01:00
604652b7d6 fix duplicate behavior
We were adding the "span" value to the position before calling
Playlist::duplicate(), but it does that internally.
2022-02-03 20:51:04 -07:00
c7d4729238
Expose session config triggerbox-overrides-disk-monitoring option 2022-02-04 01:47:29 +01:00
e2bc670e6b
Update monitoring display when TB cues change 2022-02-04 01:47:26 +01:00
05f4ffa598
Fix cue selection
TriggerEntry has 3 child items:
 * play-button, follow-button, name-button.

On mouse-down the TriggerEntry is grab()bed in preparation
to start a drag. From then on all events are directly sent to
TriggerEntry, which can only pass it up to parent items.
Mouse-release hence reaches the TriggerStrip and selects it.
2022-02-03 23:29:01 +01:00
e51427413c
Tweak TB event passthrough
Play/Stop and Follow buttons no longer pass events up.
That way the strip will not be selected on mouse-up.
2022-02-03 21:57:13 +01:00
511ff3290f
Implement TriggerStrip selection
This also changes TriggerBox Selection to act on release
(like all other selection). Otherwise strip selection will
de-select the TriggerBox on mouse-release.
2022-02-03 05:50:07 +01:00
65e3177910
Trigger Clip Picker: fix crash at exit (auditioner reference) 2022-02-02 23:08:49 +01:00
2c8427773f
Trigger-clip audition: show audition-synth GUI (WIP)
This is somewhat experimental, also the Plugin UI is only
available while MIDI audition plays...
2022-02-02 22:09:47 +01:00
b250c69eb8 trigger_ui: return the gain-spinner to MIDI clips; it adjusts velocity 2022-02-02 11:47:50 -06:00
cooltehno
bf2ff23e44
Update dark-ardour.colors 2022-02-02 16:45:18 +01:00
bb11be9936
Consistent height of MIDI and Audio Track connection buttons
Audio track shows a trim-knob -- which is SCALED(19x19px),
MIDI input button should follow suit.
2022-02-02 14:18:18 +01:00
1725fdadf6 pre-size Grid and Draw-option menus so they are less likely to dynamically resize with every click 2022-02-01 17:02:56 -06:00
26beea89ea changes to the Draw options should immediately sync state to instant.xml 2022-02-01 17:02:56 -06:00
b7a3de126c Fix some menus that occasionally act 'stuck'
* when a menu uses RadioActions, their initial state must be synced
* we use various methods to 'fix' this throughout the program
-> I'm forcing internal state to match in the case the Action is already active
* question:  we tend to use RadioActions for all these menu items,
   because they represent a choice between many options;
   but do we really need to use RadioActions here?
2022-02-01 17:02:56 -06:00
a100d46249 midi_input_enable_button does not need to be dynamically allocated 2022-02-01 12:26:41 -06:00
6fc4ab87de trigger_ui: MIDI trigger strips have a centered note-icon 2022-02-01 10:34:35 -06:00
69cdccb912 Add eighth-note symbols to ArdourMono font file 2022-02-01 10:12:24 -06:00
2f94e28f5b
Add Preference to change user clip library dir 2022-02-01 15:47:54 +01:00
34c8307a38
Fix DirectoryOption set filename
This properly updates the display if the preference changes.
Even with FILE_CHOOSER_ACTION_SELECT_FOLDER the API is
is get/set_filename -- set_current_folder() sets the parent folder.
2022-02-01 15:47:54 +01:00
e5efb57166 terminology: the user-visible name for Trigger object is a 'Trigger Slot' 2022-01-31 20:25:06 -06:00
64e4964101 terminology: the TB widget in a mixer strip is called a Trigger Grid 2022-01-31 20:25:06 -06:00
da09d1dd9a terminology: the content in a trigger is a Trigger Clip 2022-01-31 20:25:06 -06:00
bb99c53cca terminology: change visibility text to 'Cue Window' to match button name 2022-01-31 20:25:06 -06:00
2df7a8d961 terminology: set the title of the Cue(s) Window 2022-01-31 20:25:06 -06:00
bd7ffdbadb remove trigger visibility from mixer-strip context menu
* we handle trigger visibility from the Track visibility tabs
2022-01-31 20:25:06 -06:00
7748e939b8 trigger_ui: remove the popup slot-editor window until it is finished 2022-01-31 20:25:06 -06:00
5f10817126 trigger_ui: add menu items and bindings to trigger Cues A-H 2022-01-31 20:25:05 -06:00
63912069f4 trigger_ui: remove redundant action bindings; rename trigger_scene to trigger_cue 2022-01-31 20:25:05 -06:00
2fdf54874a triggerbox: remove unused enable_triggers config var (reverts 21ed6a) 2022-01-31 20:25:05 -06:00
6ca8326c6a trigger_ui: tweak menu actions for multi-jump 2022-01-31 14:59:30 -06:00
bfc3f6fa4f
Bouncing to trigger enables Cue-Page visibility 2022-01-31 21:53:57 +01:00
3704b47249 trigger_ui: first draft of a multi-jump dialog 2022-01-30 19:00:50 -06:00
0da02b582d
Trigger clip picker: button to open library folder 2022-01-30 22:44:39 +01:00
cdda0b6d30 removal of TriggerBox passthru property, GUI edition 2022-01-30 13:38:10 -07:00
663a843484 Add explanatory text to '+' symbol on mixer and recorder pages 2022-01-30 13:44:41 -06:00
7d34397a35 triggerbox: handling double-click is necessary to cancel an unneeded grab() 2022-01-30 13:44:38 -06:00
97fe05e4de
Improve GUI HiDPI support
* scale default track heights
* scale region-gain, automation lane control points
* scale max. MIDI note lane height
2022-01-29 22:33:07 +01:00
0b055ad66e
Add option to copy bounced regions/range to clip library 2022-01-29 20:48:23 +01:00
ac6835c7d8
DnD export of Regions to shared clip library 2022-01-29 16:22:51 +01:00
57a93380b6
No need to keep the sorter struct around 2022-01-29 05:27:55 +01:00
a4ee7fa2fa
Explicitly suspend redisplay while adding/removing tracks
This should not be needed, however Editor::idle_remove_tracks()
has the same priority as Editor::redisplay_track_views() and this
might save us another redisplay call.
2022-01-29 05:27:21 +01:00
101829b280
Revert "Fix crash when removing Routes and VCA"
There is probably a good reason why _vca.reset() is called
immediately, and 6dc66ea78f is a better solution to the issue

This reverts commit 83719fba1a.
2022-01-29 05:19:03 +01:00
532e212882
Speed up Route deletion
Session::remove_routes() first calls IO::disconnect()
before eventually calling route->drop_references().

RouteTimeAxisView::io_changed() is called while the route still
exists and requests a redraw which in turn emits
_stripable->gui_changed ("track_height").

Since the RTAV is deleted later during an idle-callback, there
was another redraw performed just before the RTAV is actually deleted.
2022-01-29 05:13:23 +01:00
83719fba1a
Fix crash when removing Routes and VCA
VCATimeAxisView::self_delete () resets _vca and queues delete_when_idle.
From now on STAV::strippable () will return 0.

Editor::idle_remove_tracks() returns, and before the VCATimeAxisView
is destroyed. Editor::redisplay_track_views() may be called.

The VCATimeAxisView still exists at this point and is in
Editor::track_views, but has no valid stripable.

This causes a crash in TrackViewStripableSorter which depends
on STAV::stripable();
2022-01-29 05:06:57 +01:00
92024697aa
Prepare clip-export DnD 2022-01-29 03:04:17 +01:00
c6a31250ba alter Source::_length from timecnt_t to timepos_t
THe length of a Source(File) is always measured from its start. In this sense,
the length is like a position on the timeline, which is a duration with an
implicit origin, or a Region start, also a duration with an implicit origin (in
that case the start of the Source). There is no good reason for using
a timecnt_t for this value, because the position component of a timecnt_t
(the origin for the duration) is implicit and always zero. So we make
this property into a timepos_t, and include a number of asserts() to check
for common possible coding errors related to the time domain
2022-01-28 15:52:27 -07:00
b7bbb27c7c
Fix Editor::write_region for multi-channel regions
This method, and ::write_selection() is currently unused.
It should perhaps be removed after dome discussion.
2022-01-28 02:01:23 +01:00
8e7b01bd5f
Remove debug output 2022-01-27 22:26:31 +01:00
c9e9843a9e
Fix Trigger DnD
Revert parts of 8c144d6e69 and 0f4a5f2d52
Allow to drag regions out of trigger-boxes (this will be needed
to export triggers).
2022-01-27 22:24:55 +01:00
93401d1883 remove debug output 2022-01-27 14:02:34 -07:00
0f4a5f2d52 trigger_ui: slot-to-slot drag, with static variable implementation (gtk part) 2022-01-27 13:23:05 -06:00
8c144d6e69 trigger_ui: trigger-to-trigger drags use a different target-name 2022-01-27 13:15:27 -06:00
78270d6754 trigger_ui: remove thinko (I think? what does double-click have to do with ungrab?) 2022-01-27 13:15:27 -06:00
2e5a266d24 trigger_ui: no need for right-clicking or extra menu levels for a single menu 2022-01-27 13:15:27 -06:00
4e1606e0f0 CanvasWidgets have a grab() api. fixes: sometimes the wrong region is dragged 2022-01-27 13:15:27 -06:00
5cebd64924
Fix fit tracks
The track-height change needs to be applied so that
vertical_adjustment max range is set correctly.
Otherwise vertical_adjustment.set_value() may fail
or scroll to the wrong position.

In 5b3eacd421 `redisplay_track_views()` was moved from
EditorRoutes to Editor. The call was delegated to the idle
thread, potentially collecting multiple calls before performing
the update.

This resulted in "Fit selection" to set the y-offset before the
height-change was applied.
2022-01-27 19:57:58 +01:00