Commit Graph

154 Commits

Author SHA1 Message Date
Paul Davis 5644c8587e only show scroomer note names in draw/internal edit modes (if at all) 2023-09-13 11:53:18 -06:00
Paul Davis d1caa2401f the return of double-click on scroomer zooms to data-based note range 2023-09-11 13:16:27 -06:00
Paul Davis e52d9a41da NO-OP: whitespace/indent 2023-09-11 13:16:27 -06:00
Paul Davis df95ec6b43 partial response to note name display option 2023-09-10 18:20:35 -06:00
Paul Davis 090b9d4f60 remove MIDI scroomer from code 2023-09-10 18:20:35 -06:00
Paul Davis baa32aa5bd merged commit from alexander mitchell, implementing a new piano roll header 2023-09-10 18:20:35 -06:00
Paul Davis 744208f556 lollis: no more channel-based choice, just a single check menu item like gain/pan/etc. 2023-06-26 14:18:18 -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 0dc4f4bf45 spelling fix, PR#725 2022-10-07 19:14:01 -06:00
John Emmas 30efdbe0f8 Some minor reverts to commit #63f94d29463 (from 25th May 2022)
These were preventing Ardour from compiling on Windows (Clang or MSVC)

Possibly would've been buildable with MinGW but I don't have that available to test.
2022-08-21 12:34:10 +01:00
itmuckel 63f94d2946 Remove unused includes 2022-08-19 09:27:19 -06:00
Paul Davis a3c5db5d51 ensure that non-drag track height changes cause a call to Editor::redisplay_track_views() 2022-04-05 20:52:10 -06:00
Robin Gareus 5d7ff24130
Hide scroomer when using layered mode
In layered mode the scroomer is not usable with stacked MIDI regions.

Ideally we'd only hide it if there is more than one layer
but that is for another day.
2022-03-29 01:30:51 +02: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
Paul Davis 5b2a435e02 getting editor_drag.cc to compile 2021-08-13 12:51:29 -06:00
Paul Davis 7433bc27e0 intermediate, unfinished snapshot of ongoing timeline types work on GTK GUI 2021-08-13 12:51:29 -06:00
Robin Gareus ab6d46c24c
Add GUI control to block MIDI patch change on session load 2021-07-13 03:29:28 +02:00
Robin Gareus 198f97e126
Ask before showing 2k automation lanes 2020-09-07 16:57:55 +02:00
Robin Gareus 68082abc22
Fix track-header visibility for inactive tracks
This supersedes 0708cdb6b4, an explicit `name_label.show()`
is not needed. The inactive label was missing an explicit call
to show.

This also fixes MIDI track MIDNAM Selector visibility
2020-07-10 18:16:18 +02:00
Paul Davis 65f7a6a938 changes to deal with region/note selection when changing into/out of internal edit mode
Also, activate MIDI editing actions so that they are effective in internal edit mode
2020-04-16 17:48:12 -06:00
Robin Gareus 4e43aaef64
Add automation lane for poly-key-pressure 2020-04-15 15:37:54 +02:00
Robin Gareus 4b9f6208e7
Limited listed CC-channels to ChannelNameSet channels 2020-04-15 01:51:05 +02:00
Robin Gareus 714e2f1736
Optimize MTAV creation, speed up new MIDI track
This removes various duplicate code-paths leading to midi-model
updates, and expensive context-menu rebuilds. This significantly
speeds up MIDI track creation.
2020-04-03 03:42:56 +02:00
Robin Gareus 8d28115ec7
Update MIDNAM handling in GUI
* Always use InstrumentInfo for lookups.
  Remove name lookups that directly used gui_property()
* Use set/get_gui_property() only to save/restore state,
  push custom selection to InstrumentInfo.
* Only store custom selection, use unset for "default"
  default = plugin-provided (if available) otherwise general-midi
2020-04-01 16:33:40 +02:00
Paul Davis 8242478da5 try to fix awful confusion and misbehavior for plugin-provided MIDNAM situations
We do not store the MIDNAM model as a GUIObject property if the using the plugin-provided MIDNAM. Selecting a different MIDNAM for
the plugin should now result in that choice being saved/restored correctly.

This all feels crazily complicated, but I don't want to change more of the architecture at this time
2020-02-06 14:43:58 -07:00
Paul Davis 799ec6a8f1 use new method in MidiPatchManager to use MIDNAM data when setting a MidiTimeAxisView 2019-12-23 10:27:00 -07:00
Robin Gareus 4050ca5633
Update GPL boilerplate and (C)
Copyright-holder and year information is extracted from git log.

git history begins in 2005. So (C) from 1998..2005 is lost. Also some
(C) assignment of commits where the committer didn't use --author.
2019-08-03 15:53:15 +02:00
Robin Gareus 53c677e08f
Remember MIDI-track note-range -- #7773
Previously only manual changes of the note-range using the scroomer.
The NoteRangeChanged() was ignored for implicit changes (e.g. while
recording, step-entry) and automatic-fit that didn't involve a drag
event.
2019-07-14 18:49:30 +02:00
Robin Gareus 18958af3d8
Remove cruft: unused callback 2019-07-14 18:49:25 +02:00
Paul Davis fb1387b740 remove unused declaration 2018-12-22 14:45:44 -05:00
Paul Davis 7db12f6b12 convert codebase to use Temporal for various time types 2017-09-24 12:03:54 -04:00
Paul Davis 30b087ab3d globally change all use of "frame" to refer to audio into "sample".
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
Robin Gareus b5e1eb7538 Migrate PC dialog to RouteUI, midnam handing to RTAV.
This allows to to bring up the PC dialog from Editor/Editor-Mixer & Mixer
for both MIDI Tracks as well as MIDI Busses.
2017-09-09 18:25:36 +02:00
Robin Gareus c3e8cdb418 PatchChange Dialog: update title & refresh midnam on change 2017-09-08 23:35:00 +02:00
Robin Gareus 6376730093 Rework Patch-Change/Select Dialog 2017-09-08 02:19:31 +02:00
Robin Gareus 0e9dab6aab Allow to send immediate PC messages without closing the dialog.
Perhaps every change should trigger a PC (without "Apply") button?!
2017-08-24 23:41:21 +02:00
Robin Gareus b5e9451bc7 Remove unused sources & includes 2017-07-17 21:06:04 +02:00
Robin Gareus 5c92613698 Separate Ardour UI widgets into dedicated library 2017-07-17 21:06:04 +02:00
Robin Gareus e66ba382da Remove expensive menu for sending immediate Patch Changes, use a dialog 2017-03-29 23:53:56 +02:00
nick_m 59daffea1d rework snap
snap now fills in a struct (MusicFrame) which contins a snapped frame
along with a music divisor.
this gives useful information wrt magnetic snap which may or may not
have rounded to an exact musical position.

region position may now be set musically (using quarter notes for now).

this patch fixes several problems in the current code:

	- dragging a list of music-locked regions now maintains correct
	  musical offsets within the list.

	- splitting regions using magnetic snap works correctly (#7192)

	- cut drag should now work correctly with magnetic snap.

	- musical length of split midi regions is no longer frame based.
2017-02-04 22:57:36 +11:00
Paul Davis 7688d22456 remove channel filter status and button from MIDI track header, access via context menu 2016-12-17 17:59:08 +00:00
Robin Gareus ac814d32d1 Allow to send Immediate Patch Changes 2016-12-06 18:48:36 +01:00
nick_m 2ec2c1c017 midi scroomer updates streamview during drags. 2016-11-25 00:50:29 +11:00
Robin Gareus 9773cfa926 Drop UpdateMidnam shared_ptr reference when the plugin is removed 2016-10-30 17:39:55 +01:00
Robin Gareus cfafb01b32 GUI support for plugin provided midnam 2016-10-29 19:57:43 +02:00
Paul Davis 5af281afb1 add nascent poly-phonic pressure to automation menu for MIDI tracks 2016-08-25 13:42:38 -04:00
Robin Gareus 140258d8ab remove reference "const int32_t&" -> const int32_t"
this simplifies lua-bindings and also let's the compiler worry about
constant primitive types.
2016-07-10 15:30:41 +02:00
nick_m 93c24e4433 Paste uses exact beats. rework _start_beats calculation in copy-with-offset ctor. 2016-07-10 02:18:36 +10:00
nick_m 2d5238d875 Make some musical operations on music-locked regions operate in beats.
- use exact beats to determine frame position.
	- see comments in tempo.cc for more.
	- this hasn't been done for split yet, but dragging and
	  trimming are supported.
2016-07-10 02:18:36 +10:00
Julien ROGER d405a0059d Fix 6031: Fix inactive MIDI track headers when reloading session
Update the visual state of MidiTimeAxisView accordingly to its route in
MidiTimeAxisView::set_route()
2016-02-13 12:52:34 +10:00