Commit graph

99 commits

Author SHA1 Message Date
Paul Davis
5635144e42 initial rename of MidiCueEditor -> Pianoroll 2025-01-07 11:30:26 -07:00
Robin Gareus
e7ac13a834
Use dropdown instead of trigger-page sidebar notebook tabs 2025-01-06 22:53:54 +01:00
Robin Gareus
72d03fb9a4
Vertically line up cues with trigger slots 2024-12-03 18:03:20 +01:00
Robin Gareus
940e1bc2df
NO-OP: rename layout widgets for clarity 2024-11-20 18:56:20 +01:00
Robin Gareus
1c5117444f
Replace custom TriggerUI pane with Tabbable pane 2024-11-16 19:31:28 +01:00
Robin Gareus
0b933127e9
Use new Tabbable API 2024-11-15 04:40:39 +01:00
Robin Gareus
19fc6e831b
Fix missing calls to SessionHandlePtr::session_going_away()
Explicit calls to set_session(0) will disconnect the
callback to session_going_away(). So don't do that.
2024-11-10 23:27:36 +01:00
Ben Loftis
983236f348
implement focus_on_clock for each tabbable 2024-11-10 23:27:35 +01:00
Ben Loftis
9a03fa59b1
store and recall the sidebar List visibility on the trigger page 2024-11-10 23:27:35 +01:00
Ben Loftis
8f183e26ee
Use tabbable visibility functions on all pages 2024-11-10 23:27:35 +01:00
Ben Loftis
4b1e09f810
Pack Pages using Tabbable constructs 2024-11-10 23:27:35 +01:00
Ben Loftis
1b18c3e76c
Use Transport Bar in top-level pages 2024-11-10 23:27:34 +01:00
Robin Gareus
b2e4dd91b9
Update Tabbable c'tor to allow member as top-level widget
Derived classes cannot use `Tabbable (_content_vbox,..)`
`_content_vbox` is a member of Tabbable (which has not
yet been initialized) at the point of construction.

This breaks internal API, hence the omnibus commit
2024-11-10 23:27:34 +01:00
Paul Davis
e11caf2dea various changes to get MIDI clip recording to display the post-capture region 2024-10-22 14:49:50 -06:00
Robin Gareus
74c4ca3e52
Reduce reliance on boost - the hard part
the rest from `tools/convert_boost.sh`.

* replace boost::function, boost::bind with std::function and std::bind.

This required some manual fixes, notably std::placeholders,
some static_casts<>, and boost::function::clear -> = {}.
2024-10-19 03:47:21 +02:00
Paul Davis
70b41d10b1 actally stop doing clip recording visual stuff when disarmed (gui) 2024-10-18 09:50:48 -06:00
Paul Davis
229506147a playhead for MIDI clip editor during playback (first steps) 2024-10-17 15:06:33 -06:00
Paul Davis
e390c2c3dd trigger page should respond to rec-enable changes 2024-10-17 07:44:33 -06:00
Paul Davis
d7e85de7c2 first somewhat version of show-clip-capture MIDI notes as they arrive 2024-10-17 07:44:33 -06:00
Paul Davis
35f16f1bb6 preparations for clip data display (MIDI) while recording (GUI edition) 2024-10-17 07:44:33 -06:00
Paul Davis
1961a9207c provide a better method to decide if a trigger(slot) is occupied
This is necessary with clip recording because for some short time after recording,
a trigger may be playable despite not yet having a region.

GUI edition.
2024-10-17 07:44:32 -06:00
Paul Davis
ee305a7169 catch up on TriggerReference API changes in GUI 2024-10-17 07:44:31 -06:00
Paul Davis
69871e0021 trigger page: use a VPane so we can enlarge the cue editor if desired
Plus fixup to get MIDI notes redrawn as pane is resized
2024-10-17 07:44:31 -06:00
Paul Davis
fcfa4fecb4 more preparation for MIDI cue editing to propagate to the slot (trigger) 2024-10-17 07:44:30 -06:00
Paul Davis
0d01e73b86 some state mgmt for EditingContexts 2024-10-17 07:44:30 -06:00
Paul Davis
fcf5bb88d5 cue editor/piano roll: starting to get mode buttons working and keybindings too 2024-10-17 07:44:30 -06:00
Paul Davis
e3205bded0 do something to make MIDI bindings accessible in any EditingContext 2024-10-17 07:44:29 -06:00
Paul Davis
182a24751b get standalone MidiView to display notes
This also removes an unused TriggerBoxWidget from each regular
MixerStrip.
2024-10-17 07:44:29 -06:00
Paul Davis
2b997343a4 first working visual evidence of MIDI display/editing on cue page 2024-10-17 07:44:29 -06:00
Paul Davis
204d4237f8 further steps towards MidiRegionView outside the Editor 2024-10-17 07:44:29 -06:00
Paul Davis
6149771910 fix yet more cases where SMF are imported and named incorrectly 2024-10-15 22:35:04 -06:00
Paul Davis
b35518e212 switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00
Paul Davis
303f838a53 define new actions for stopping triggers/slots 2022-12-10 10:33:39 -07:00
Robin Gareus
d808315e2a
Offer dedicated alternatives for Delete/Backspace
This follows Processor Box:
 <Binding key="Delete" action="ProcessorMenu/delete"/>
 <Binding key="BackSpace" action="ProcessorMenu/backspace"/>
2022-12-02 19:50:39 +01:00
Robin Gareus
899cacdf86
Delete/BackSpc clears selected trigger-clos 2022-12-02 19:19:20 +01:00
Paul Davis
93adb3fe1f bindings and actions for trigger stuff owned by trigger page 2022-11-16 14:15:34 -07:00
Paul Davis
0c2176dd71 move default_triggers_per_box into a namespace ; change value for Ardour to 16 (GUI edition) 2022-10-04 19:55:15 -06:00
Robin Gareus
07dea50456
Fix DnD import to grouped tracks
Import via Drag/Drop previously worked by selecting a track,
and then importing to the selected track.

This approach fails when the selected track is in a track-group,
and selecting the track also selects other tracks of different type.

Now the track to drop onto is passed directly passed through to
::finish_bringing_in_material as existing_track.
2022-09-30 21:30:48 +02:00
Mads Kiilerich
7f649efd42
gtkmm: use set_can_focus() instead of deprecated Gtk::Widget::set_flags(CAN_FOCUS) 2022-04-08 21:11:06 +02:00
Mads Kiilerich
d52c727ec5
gtkmm: use get_mapped instead of deprecated Gtk::Widget::is_mapped() 2022-04-08 20:20:10 +02:00
Paul Davis
ca22ba77e1 Constification: make Stateful::get_state() const, with all other required const-ness added (GUI) 2022-04-06 21:56:59 -06:00
Ben Loftis
de9f73c040 cue page: remove the unmarked rec-enable button from the cues column 2022-02-12 21:46:30 -06:00
Ben Loftis
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
Robin Gareus
42df6be0fa
Show Trigger Patch Selector on selection 2022-02-09 21:09:46 +01:00
Robin Gareus
e3e7f587bd
Use audition synth when creating new trigger tracks via DnD 2022-02-09 14:32:12 +01:00
Ben Loftis
9ad82787a1 Instrument Selector: use a 3-way Disposition to disambiguate the uses of this widget 2022-02-04 21:33:12 -06:00
Robin Gareus
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
Ben Loftis
2df7a8d961 terminology: set the title of the Cue(s) Window 2022-01-31 20:25:06 -06:00
Ben Loftis
5f10817126 trigger_ui: add menu items and bindings to trigger Cues A-H 2022-01-31 20:25:05 -06:00
Robin Gareus
92024697aa
Prepare clip-export DnD 2022-01-29 03:04:17 +01:00