summaryrefslogtreecommitdiff
path: root/gtk2_ardour/midi_time_axis.h
AgeCommit message (Collapse)Author
2020-04-16changes to deal with region/note selection when changing into/out of ↵Paul Davis
internal edit mode Also, activate MIDI editing actions so that they are effective in internal edit mode
2020-04-15Add automation lane for poly-key-pressureRobin Gareus
2020-04-15Limited listed CC-channels to ChannelNameSet channelsRobin Gareus
2020-04-03Optimize MTAV creation, speed up new MIDI trackRobin Gareus
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-01Update MIDNAM handling in GUIRobin Gareus
* 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-02-06try to fix awful confusion and misbehavior for plugin-provided MIDNAM situationsPaul Davis
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
2019-12-23use new method in MidiPatchManager to use MIDNAM data when setting a ↵Paul Davis
MidiTimeAxisView
2019-08-03Update GPL boilerplate and (C)Robin Gareus
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-07-14Remember MIDI-track note-range -- #7773Robin Gareus
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-14Remove cruft: unused callbackRobin Gareus
2018-12-22remove unused declarationPaul Davis
2017-09-24convert codebase to use Temporal for various time typesPaul Davis
2017-09-18globally change all use of "frame" to refer to audio into "sample".Paul Davis
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-09Migrate PC dialog to RouteUI, midnam handing to RTAV.Robin Gareus
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-08PatchChange Dialog: update title & refresh midnam on changeRobin Gareus
2017-09-08Rework Patch-Change/Select DialogRobin Gareus
2017-08-24Allow to send immediate PC messages without closing the dialog.Robin Gareus
Perhaps every change should trigger a PC (without "Apply") button?!
2017-07-17Remove unused sources & includesRobin Gareus
2017-07-17Separate Ardour UI widgets into dedicated libraryRobin Gareus
2017-03-29Remove expensive menu for sending immediate Patch Changes, use a dialogRobin Gareus
2017-02-04rework snapnick_m
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.
2016-12-17remove channel filter status and button from MIDI track header, access via ↵Paul Davis
context menu
2016-12-06Allow to send Immediate Patch ChangesRobin Gareus
2016-11-25midi scroomer updates streamview during drags.nick_m
2016-10-30Drop UpdateMidnam shared_ptr reference when the plugin is removedRobin Gareus
2016-10-29GUI support for plugin provided midnamRobin Gareus
2016-08-25add nascent poly-phonic pressure to automation menu for MIDI tracksPaul Davis
2016-07-10remove reference "const int32_t&" -> const int32_t"Robin Gareus
this simplifies lua-bindings and also let's the compiler worry about constant primitive types.
2016-07-10Paste uses exact beats. rework _start_beats calculation in copy-with-offset ↵nick_m
ctor.
2016-07-10Make some musical operations on music-locked regions operate in beats.nick_m
- 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-02-13Fix 6031: Fix inactive MIDI track headers when reloading sessionJulien ROGER
Update the visual state of MidiTimeAxisView accordingly to its route in MidiTimeAxisView::set_route()
2015-08-15Highlight note in piano roll - #6510Robin Gareus
2015-03-19add API to select TAV height mode.Robin Gareus
preparation for further Summary and Number of visible track count fixes. * “Only Self”: don’t resize child-views (old default) * “Total Height”: distribute height equally among all visible child [automation] lanes * “Height per Lane”: given height should be applied to all sub-views.
2015-01-12Trim include tree.David Robillard
2015-01-11Fix AutomationTrackItem rubberband click thinking it was unhandled.nick_m
Fix several other cases where a single mouse click could cause several (not nested) selection ops. Fix missing selection memento for midi notes and midi commands. Rename some variables. Fix random style issues.
2014-12-18Fix copy paste of MIDI and track automation.David Robillard
2014-12-18Remove internal edit mode and add "content" tool.David Robillard
2014-12-12Use ArdourDropdown for MIDI device selector.David Robillard
2014-11-30Factor out duplicated track automation code.David Robillard
Mute automation for MIDI tracks.
2014-09-09NOOP, indent & whitespace fixesRobin Gareus
2014-09-09clean up midi channel controlsRobin Gareus
2014-01-15merge with masterPaul Davis
2014-01-15Midi-track fader & pan automationRobin Gareus
NB. Fader automation lane always shows 'dB' value and is logarithmic. OK for pre-fader synths, but not for raw-midi data.
2013-04-04initial commit of hand merging, plus getting "ancient" waf script to work ↵Paul Davis
correctly
2013-03-28some deep tweaking to get MIDI channel control into nearly done shape for 3.1Paul Davis
2013-03-27Squashed commit of the following:Paul Davis
commit fdbae82077db53add90df7448a06869dac89acc6 Author: Paul Davis <paul@linuxaudiosystems.com> Date: Wed Mar 27 21:45:28 2013 -0400 mammoth changes in basic signal flow, total redesign of MIDI channel filtering and more. commit 59343a8283698e02bc0f622313b29e98f449e4c8 Author: Paul Davis <paul@linuxaudiosystems.com> Date: Wed Mar 27 01:58:53 2013 -0400 initial working version after changes to MIDI channel filtering. may affect metering input too. testing not yet finished this commit merges many deep changes in ardour's internal architecture, combined with a total redesign of how MIDI channel filtering works. data in a track used to flow from JACK port buffers to diskstream's ringbuffers and was then copied from the ringbuffers into a BufferSet for use during Route::process_output_buffers(). The butler thread would handle the movement of data between the ringbuffers and disk. with this commit, data now flows from JACK port buffers into the BufferSet used for Route processing, and is copied from the BufferSet into the diskstream's ringbuffers (the butler thread continues to handle interactions with disk as usual). this change allowed a dramatic consolidation of code and simplification of most aspects of Track/Route::roll() and Track/Route::no_roll(). in particular, see Route::fill_buffers_with_input() which now concisely describes how we move data from JACK port buffers into the BufferSet for all Route types (including Tracks). this work was initially motivated by changing MIDI channel filtering so that we can process capture and playback independently. there is now a very clean pathway for this - see MidiTrack::roll() (NOTE: This needs implementing in the no-roll case too - a TODO item). the channel selector for MIDI tracks has been moved out of the track header and is now accessible via the context menu. more work is likely here, to make it (more) obvious to the user when filtering is going on.
2013-01-20Show matching controller name in automation lane header.David Robillard
Completely eliminate static MIDI controller name code. Reduce dependency on midnam_patch.h (which would have saved me several hours if I did it earlier). Store controller name numbers as an integer. Keep controller names in a map keyed by int instead of a list for fast lookup. More cleanup of MIDI::Name code. git-svn-id: svn://localhost/ardour2/branches/3.0@13927 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20Support note names from midnam files (tested with the DM5).David Robillard
Do this via a simple MasterDeviceNames::note_name() function. The same really needs to be done for program names, this stuff is absolutely brutal to use. Store note names in a vector indexed by number instead of a list with string "numbers" for reasonable lookup time. Make some references const that should be. git-svn-id: svn://localhost/ardour2/branches/3.0@13908 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-19Set MIDI device mode to the first by default if unset.David Robillard
Give up trying to hide mode selector when it's useless. Fix display of program names for default mode. Abstract out (non-crashy) MidiTimeAxisView::get_device_names(). git-svn-id: svn://localhost/ardour2/branches/3.0@13903 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-19Add standard MIDI midnam file and remove hard coded equivalent.David Robillard
Accordingly, make "generic" MIDI truly generic, just numbered controllers. Break up MIDI name UI stuff into manageable functions of reasonable size. Add convenient method to MIDINameDocument for getting the names for a device. Tolerate comments in MIDINameDocument ControlNameList. Can't remove the MIDI name code just yet, since it's still erroneously used by Automatable::describe_parameter(). This is the cause of a bug where the name on the automation lane does not match that in the menu. The plan is to make a very simple pure abstract interface for getting MIDI names, and make it possible to set one for Automatable (or perhaps pass it to describe_parameter()). Thus we'll be on the way to supporting names from sources other than midnam files, namely plugins. git-svn-id: svn://localhost/ardour2/branches/3.0@13895 d708f5d6-7413-0410-9779-e7cbd77b26cf