Commit Graph

14774 Commits

Author SHA1 Message Date
Paul Davis dc8382c0b5 some enforcement of NoInsert KeyEnforcementPolicy 2021-11-18 16:44:16 -07:00
Paul Davis e8baad9efa more centralized code for deciding if a note is visible or note based on key 2021-11-18 15:41:59 -07:00
Paul Davis d0cdd0c9db somewhat functional menu to control KeyEnforcementPolicy
And yes, this should likely be global, not per track
2021-11-18 14:17:21 -07:00
Paul Davis 407936277f NOOP: whitespace 2021-11-18 11:35:01 -07:00
Paul Davis bfe52ca668 key enforcement: if NoInsert is in effect, MIDI mouse editing does not insert non-scale notes 2021-11-18 11:34:50 -07:00
Paul Davis a3a8f355ee key enforcement: use NoDraw to help decide whether or not to show ghost notes 2021-11-18 11:25:42 -07:00
Paul Davis 9f4bf02980 change type of MidiTrack's key enforcement to new enum type 2021-11-18 11:16:50 -07:00
Paul Davis 331377212e tweak menu item names to be more reflective of common (western) practice 2021-11-18 10:36:31 -07:00
Paul Davis eb0c1984de midi region view: don't show ghost note if it is not in key 2021-11-18 10:36:07 -07:00
Paul Davis 2bb880aac0 midi track redisplay when mode/root is changed 2021-11-18 08:30:46 -07:00
Paul Davis 4648785935 prefer major/minor to ionian/aeolian (but show both names) 2021-11-18 08:30:46 -07:00
Paul Davis 6cdbd4174d Implement mode/root context menus and modification methods to MidiTimeAxisView 2021-11-18 08:30:46 -07:00
Paul Davis 22efa2bf17 use color on MIDI tracks to show off-key notes 2021-11-18 08:30:45 -07:00
Paul Davis 15e4ba5123 add new color name for offkey notes 2021-11-18 08:30:45 -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
Paul Davis 65f85dfdfe triggerboxUI: GUI elements to load slots from selected regions 2021-10-24 09:25:49 -06:00
Paul Davis 28d8ad1ede triggerbox UI: no need for a render method 2021-10-19 19:08:52 -06:00
Paul Davis 9ed9544f87 triggerbox UI: indicate clip playing status with full-height, shaded fill color 2021-10-19 14:41:05 -06:00
Paul Davis ed823defe0 triggerbox_UI: mark text for size-allocate-based resizing 2021-10-19 10:55:10 -06:00
Paul Davis d129a64890 when GUI scale changes, drop Canvas::Text font size maps 2021-10-19 10:54:51 -06:00
Paul Davis ccc1fd8a2d remove some debug output 2021-10-17 21:18:06 -06:00
Paul Davis 291adf11cd triggerbox UI: add two more quantization settings 2021-10-17 17:58:48 -06:00
Paul Davis ae83d8121d triggerbox UI: size_allocate() for trigger name text 2021-10-17 17:58:34 -06:00
Paul Davis 82ba897be6 triggerbox UI: some color work 2021-10-17 17:58:08 -06:00