f1ce235b6b
some deep tweaking to get MIDI channel control into nearly done shape for 3.1
2013-03-28 17:10:57 -04:00
4abbabdcf9
Squashed commit of the following:
...
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-03-27 21:50:18 -04:00
4e6d0c9e61
Show matching controller name in automation lane header.
...
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-20 08:56:00 +00:00
88de45b7cc
Support note names from midnam files (tested with the DM5).
...
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-20 00:46:55 +00:00
444d89b669
Set MIDI device mode to the first by default if unset.
...
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-19 20:15:15 +00:00
b1bc353f0d
Add standard MIDI midnam file and remove hard coded equivalent.
...
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
2013-01-19 10:02:00 +00:00
Hans Baier
8f55ca6a50
make the time axis view remember it midnam model/mode settings
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13255 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-12 09:25:55 +00:00
Hans Baier
5bb898fa41
nicer layout of MIDI channel selector
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13245 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-11 08:13:40 +00:00
Carl Hetherington
add52f1c0e
Remove believed-unnecessary and broken MIDI thru option;
...
should fix #4749 .
git-svn-id: svn://localhost/ardour2/branches/3.0@12746 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-17 14:28:10 +00:00
Carl Hetherington
4a174039ae
Shrink the midi scroomer to match the keyboard in stacked mode.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12710 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-13 20:37:34 +00:00
Carl Hetherington
b524fe05d5
Make a few more MIDI track menu options apply to the current selection ( #4106 ).
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12706 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-13 17:24:15 +00:00
Carl Hetherington
daf84122ca
Make fit contents / show full range work for all
...
selected tracks (part of #4106 ).
git-svn-id: svn://localhost/ardour2/branches/3.0@12703 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-13 15:38:27 +00:00
960de7306f
partially-done (but compile-friendly) move of instrument info into a new backend object
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12652 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-11 12:07:17 +00:00
23350c195d
remove craziness of propagating MIDI 7 bit limits into MIDNAM handling by replacing bank_msb/lsb with "bank" ; move responsibility for discovering patch names into MIDI trackview (soon to move again)
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12647 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-10 16:42:17 +00:00
Carl Hetherington
dcd6dbf14b
Persist track MIDNAM settings via a GUI property. Fix a
...
couple of crashes with the MIDNAM code.
git-svn-id: svn://localhost/ardour2/branches/3.0@12543 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-02 14:53:34 +00:00
5de9a8f38b
make mouse range mode do something interesting when in internal/note edit mode. not entirely finished because the usual modifiers to add/extend the selection don't work correctly. note that this works both on the scroomer (where the modifiers do work correctly) and in the track (where they do not)
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11273 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-20 02:54:23 +00:00
Carl Hetherington
25b4913c78
Save position of MIDI scroomers ( #4140 ).
...
git-svn-id: svn://localhost/ardour2/branches/3.0@9993 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-08-14 18:40:57 +00:00
10cb0a7646
introduce GUIObjectState; massive, pervasive changes in visibility and height management for track displays in the editor
...
git-svn-id: svn://localhost/ardour2/branches/3.0@9796 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-07 00:37:13 +00:00
1060243302
major, substantive reworking of how we store GUI information (visibility, height) for automation data. old design stored (insufficient) identifying information plus actual data in a GUI-only XML node; new scheme adds GUI data via extra_xml node to each AutomationControl object. reworked public/private methods for showing/hiding TimeAxisView objects; changed labelling of automation tracks to just show the name of the controlled parameter - more info can be viewed in the tooltip for the track headers. NOTE: Session file format ALTERED. No data loss but track visibility may be different than previous ardour3 versions
...
git-svn-id: svn://localhost/ardour2/branches/3.0@9703 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-11 15:35:34 +00:00
ed626628b5
Delete trailing whitespace
...
git-svn-id: svn://localhost/ardour2/branches/3.0@9656 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-01 17:00:29 +00:00
Carl Hetherington
711db34a81
Remove MIDI track default channel and its menu, and choose the channel for new notes using MidiTimeAxisView::get_channel_for_add() ( fixes #3998 and #3865 ).
...
git-svn-id: svn://localhost/ardour2/branches/3.0@9585 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-25 15:19:47 +00:00
c425e61bb9
Fix double MIDI track display on initial load.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@9559 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-19 21:29:47 +00:00
Carl Hetherington
7390303728
Make MIDI channel selector button colours more distinct ( #3772 ).
...
git-svn-id: svn://localhost/ardour2/branches/3.0@9524 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-16 18:18:13 +00:00
Carl Hetherington
8f45604f27
Make Active apply to the selection.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@9089 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-07 13:04:46 +00:00
Carl Hetherington
92a5e4da48
Make stuff in the automation menu apply to the track selection.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@9088 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-07 13:04:36 +00:00
2c72f58aa1
experiment with making MIDI region boxes vanish when in note/internal edit mode ... to be continued
...
git-svn-id: svn://localhost/ardour2/branches/3.0@9054 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-03 14:51:02 +00:00
Carl Hetherington
27cbe72d96
Remove dependence on the order of calls of listeners to MidiTrack::StepEditStatusChange, and rename the step entry menu item to make it consistent with the dialogue title. Should fix #3765 .
...
git-svn-id: svn://localhost/ardour2/branches/3.0@8831 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-12 12:29:20 +00:00
Carl Hetherington
8000b39c8c
Create MIDI track gain automation tracks as non-region-based. Fix construction of MidiTimeAxisViews to use the same first_idle arrangement as AudioTimeAxisViews to prevent use of partially constructed objects.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7847 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-09-27 02:04:16 +00:00
Carl Hetherington
812e95da01
Allow drag when creating a MIDI region. Fixes #3363 .
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7657 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-20 12:01:13 +00:00
faca3e5f5d
split out the logic behind step editing from MidiTimeAxisView as much as possible
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7633 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-15 16:39:51 +00:00
d6166084b1
step editor: add double, triple dotted note support + back + resync-to-ep buttons
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7623 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-13 21:48:31 +00:00
aac46a38fb
add step editing sustain support
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7615 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-13 14:11:01 +00:00
8bdf5cf1d0
fix up initial step edit pos when operating on an existing region
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7600 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-11 19:42:42 +00:00
afd5b2002a
vari-size rect as step-edit cursor
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7599 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-11 19:11:14 +00:00
5182f0770c
add a first hack at a step edit cursor (to be changed); add program+bank stubs (non-functional for the foreseeable future); fix up step edit changes propagating across all MIDI tracks; make program change "flags" change height along with track
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7598 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-11 18:21:37 +00:00
38f2336b45
add beat-resync button to step editor (move insertion point to next whole beat from region start)
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7541 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-04 20:28:10 +00:00
46eaff772d
endless further tweaks to step editor; stop stealing the "r" key inside MidiRegionView key handling
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7537 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-04 17:04:20 +00:00
6b641cdde4
properly track step edit status in editor & mixer windows
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7533 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-03 21:50:15 +00:00
b1f5a6a68d
a bunch of tweaks for the step entry process (computer keyboard input now works, for example)
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7532 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-03 19:22:57 +00:00
64f9fac9a8
make step entry chord & triplet buttons do their thing, or something close to it
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7530 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-03 04:13:05 +00:00
e0edca5a2a
first, incomplete pass at step entry dialog, along with various SVG and PNG files for notes and dynamics notation
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7529 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-02 21:52:21 +00:00
32b2ddd24a
catch the step edit region if it goes away and prepare to use a new one; step edit insert position starts at the edit point, not the start of the edited region
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7515 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-27 15:42:14 +00:00
c685724c80
step editing now accessed via a context menu on MIDI track rec-enable buttons. along the way, fixed up confusion between set_rec_enable() and set_rec_enabled() methods in Route/Track/Diskstream
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7482 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-24 16:40:56 +00:00
Carl Hetherington
8dd31447be
Fix handling of the mapping between parameters and automation CheckMenuItems. Should fix #3206 , #3215 and the remainder of #3228 .
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7245 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-08 21:48:38 +00:00
a04b1fee6a
heavy-handed and crude way to stop WM-stolen-alt keys from causing MidiRegionView from losing track of SelectTouchDraggingMode (may not be optimal or in the right place, but it works for now); add primary-click-on-MRV-blank-space and tertiary-click-on-MRV-blank-space to select all notes above or below the click, using recently committed methods for Sequence
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7192 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-05-28 21:39:12 +00:00
Carl Hetherington
c8376522b1
Fix disappearing plugin menu ( #3182 )
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7163 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-05-25 23:39:44 +00:00
Carl Hetherington
ef94fbf11c
Remove some dead code. Clean up storage of automation axis menu
...
items. Fixes #3174 .
git-svn-id: svn://localhost/ardour2/branches/3.0@7157 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-05-25 14:50:45 +00:00
ca2f505ec1
lots of debug code still in place, but get a much improved structure for MIDI automation menus actually working. tweaks to follow
...
git-svn-id: svn://localhost/ardour2/branches/3.0@6470 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-01-09 02:36:47 +00:00
2e30bdba9f
select-by-pitch from the piano roll header (inspired by Rosegarden); some improvements underway to controller/automation menu, but still broken there
...
git-svn-id: svn://localhost/ardour2/branches/3.0@6466 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-01-07 19:15:33 +00:00
ed6545eb5b
screw up MIDI control "automation" tracks quite a bit while trying to improve menu structure BUT add a MIDI tracer window and fix a crashing bug caused by regions prematurely being destroyed
...
git-svn-id: svn://localhost/ardour2/branches/3.0@6465 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-01-06 21:56:23 +00:00