Commit Graph

14783 Commits

Author SHA1 Message Date
Ben Loftis 3186a85b0c PropertyBoxen: add some proposed audio-region property controls. (can be squashed) 2021-12-02 11:26:17 -06:00
Ben Loftis 7635e5e6a2 Property Boxen: handle more {audio|midi} cases; move code around. (can be squashed) 2021-12-02 10:50:19 -06:00
Ben Loftis ab44ede65d Property Boxen: populate the Trigger page with property-editor placeholders 2021-12-01 23:52:03 -06:00
Ben Loftis 99ce14558b PropertyBoxen: provide all slot property editors in a popup dialog (?) 2021-12-01 23:51:18 -06:00
Ben Loftis 2b0eb2ac5d squash to de-canvas 2021-12-01 23:50:16 -06:00
Ben Loftis c07a7736b7 PropertyBoxen: move selection-properties into the sidebar 2021-12-01 23:08:51 -06:00
Ben Loftis aff4715eb2 PropertyBoxen: initial draft of property-editing widgets that follow the Selection 2021-12-01 23:08:51 -06:00
Ben Loftis f315778d10 PropertyBoxen: Publish some region operations to PublicEditor so we can access them more easily 2021-12-01 23:08:51 -06:00
Ben Loftis f5a9c7118c Trigger_UI: De-Canvas the trigger_ui widget so it can be reused in other places 2021-12-01 22:35:25 -06:00
Ben Loftis 87b052085e Trigger_UI: change API to use set_trigger() instead of constructor arg 2021-12-01 22:35:25 -06:00
Ben Loftis 0e60872950 Selection: Region Operations in a Slot need a RegionView proxy (ToDo) 2021-12-01 22:35:25 -06:00
Ben Loftis 210fa7a97a Selection: make trigger slots more exclusive wrt some other selectables 2021-12-01 22:35:25 -06:00
Robin Gareus 59b012ddb0
Implement TriggerStrip and TriggerPage (WIP) 2021-12-01 23:10:08 +01:00
Robin Gareus 9ce604bc03
New Tabbable: Trigger-Page skeleton 2021-12-01 23:10:08 +01:00
Robin Gareus 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
Paul Davis f584335f28 follow Beats API change in MidiRegionView::paste_internal() 2021-11-29 21:50:29 -07:00
Ben Loftis 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
Ben Loftis 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
Ben Loftis 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
Ben Loftis ec88635555 MIDI Draw: potential workaround for sticky menu items at startup 2021-11-19 13:01:54 -06:00
Ben Loftis 84111a343e Deinterlace MIDI: gui part 2021-11-19 10:28:37 -06:00
Ben Loftis ca7e133e3d MIDI Draw: fix thinko in length=Auto 2021-11-19 10:28:37 -06:00
Paul Davis 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
Ben Loftis 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
Ben Loftis eebf3717e3 MIDI Draw: note-length-auto means 'use the Grid for note-length' (prior behavior) 2021-11-18 07:35:13 -06:00
Ben Loftis 93e68a5a00 MIDI Draw: provide a menu for Channel and Velocity 2021-11-18 07:35:13 -06:00
Ben Loftis 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
Paul Davis c24cabead0 GUI changes to follow TempoMap::sample_at() API changes 2021-11-17 15:57:30 -07:00
Paul Davis 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
Paul Davis 18e851cd73 catch too-early use of PublicEditor::instance() 2021-11-17 12:16:39 -07:00
Paul Davis 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
Paul Davis 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
Paul Davis dd4e495d90 audioclock: use correct call for "right now" tempo display 2021-11-17 12:16:38 -07:00
Paul Davis 2735022357 audio_clock: fix uninitalized variable 2021-11-17 12:16:38 -07:00
Ben Loftis f6adf9c897 MIDI Import: gtk part 2021-11-14 08:21:00 -06:00
Ben Loftis 4c472ca1c5 TriggerSlot: Remove Queued menu-item (for now) 2021-11-13 15:54:11 -06:00
Paul Davis 85fc3d5629 add missing file 2021-11-10 21:16:27 -07:00
Paul Davis 4f58a92c6d show trigger/slot selection 2021-11-10 17:51:04 -07:00
Paul Davis 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
Paul Davis 0d96753364 remove unused variable 2021-11-10 11:55:20 -07:00
Paul Davis 605daf23f2 add default bindings for note shortening 2021-11-06 10:21:31 -06:00
Paul Davis 8cfdd0ca5b add actions to provide access to note-shortening 2021-11-06 09:49:39 -06:00
Paul Davis 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
Paul Davis 2d9eb6ec81 Fix error in drawing length of ghost MIDI notes in note drawing mode 2021-11-04 18:25:45 -06:00
Paul Davis efdd3e86c3 remove unused variable 2021-11-04 13:59:43 -06:00
Paul Davis af2af29c95 remove Kiwi constraint-based packing code from canvas library and users (GUI version) 2021-11-04 11:25:56 -06:00
Paul Davis 0c5d41039a more scene triggering actions 2021-11-03 18:44:31 -06:00
Paul Davis aba0de91f8 add missing file 2021-11-01 13:40:23 -06:00
Paul Davis b7ce131557 triggerboxUI: skeleton for triggerbox bindings and actions, include triggering of scene 1 2021-11-01 12:11:57 -06:00
BrunoVernay e16ac4b036 Typo in comment: paramater 2021-10-30 23:02:35 +02:00