* implemented choosing patches with context menu on the program change flag
* added convenience method and a little refactoring in midi_patch_manager.h
Conflicts:
.cproject
build-tmp.sh
git-svn-id: svn://localhost/ardour2/branches/3.0@4338 d708f5d6-7413-0410-9779-e7cbd77b26cf
* commented out a crash line in ardour_ui2.cc (added a warning message).
(I thought, it may be fairly efficient to keep issues as code instead of putting
them in the tracker where hardly ever one would notice the needle in the haystack)
* forgot to clear two other collections on MidiPatchManager::refresh()
git-svn-id: svn://localhost/ardour2/branches/3.0@4312 d708f5d6-7413-0410-9779-e7cbd77b26cf
* created ArdourCanvas::CanvasFlag as a base class for flags
* removed obsolete cruft from midi_model
* made MidiTimeAxisView and MidiRegionView work together to display program changes as
names by means of MidiPatchManager
git-svn-id: svn://localhost/ardour2/branches/3.0@4307 d708f5d6-7413-0410-9779-e7cbd77b26cf
Only resize vertically (don't reaload model) on range changes.
Keep track of range in model while loading (writing to model), rather than double display MIDI regions to find out.
Don't go crazy and chew CPU blinking around and doing nothing on initial show of MIDI track context menu.
Change radio 'full range' and 'contents range' menu items to non-radio actions that just set the range appropriately.
Fix crashes on some esoteric case of control data I can't figure out, but fixed anyway, so I guess it all worked out well in the end for everybody.
git-svn-id: svn://localhost/ardour2/branches/3.0@3794 d708f5d6-7413-0410-9779-e7cbd77b26cf
Sane event type interface between evoral and libardour (no more shared magic numbers).
Cleanup Evoral::Sequence iterator, fix bugs, probably introduce new ones.
Move MIDI specific event functions to Evoral::MIDIEvent (is-a Evoral::Event).
git-svn-id: svn://localhost/ardour2/branches/3.0@3785 d708f5d6-7413-0410-9779-e7cbd77b26cf
Fix track y positioning and initial region size/location.
Fix automation click-to-add-points (i.e. points actually show up where you click).
Fancy whiz-bang dynamic resize 2.0 professional edition support for MIDI/CC/Automation tracks/regions.
git-svn-id: svn://localhost/ardour2/branches/3.0@3769 d708f5d6-7413-0410-9779-e7cbd77b26cf
Anything related to the storage of events/values over a range of time lives in evoral.
This includes MidiModel (Evoral::Sequence) and automation data (AutomationList (Evoral::ControlList),
Automatable (Evoral::ControlSet), etc).
libs/evoral synced with http://svn.drobilla.net/lad/trunk/evoral r1511.
git-svn-id: svn://localhost/ardour2/branches/3.0@3754 d708f5d6-7413-0410-9779-e7cbd77b26cf
Make copy and brush operations type generic (i.e. fix brushing for MIDI regions).
git-svn-id: svn://localhost/ardour2/branches/3.0@3724 d708f5d6-7413-0410-9779-e7cbd77b26cf
Fix selection preservation across MIDI model editing commands (for both note moving and resizing).
Fix selection breakage introduced by old selection preservation stuff (fix zombie selection).
git-svn-id: svn://localhost/ardour2/branches/3.0@3381 d708f5d6-7413-0410-9779-e7cbd77b26cf
Handle stuck notes more gracefully in the view (probably should show up as a diamond though?).
git-svn-id: svn://localhost/ardour2/branches/3.0@3359 d708f5d6-7413-0410-9779-e7cbd77b26cf
* fixed corruption bugs due to allocation hell of MidiModel::const_iterator::_event: Changed it into boost::shared_ptr
* fixed MidiModel::const_iterator bugs:
-First note on lost, if an automation event comes first
-corrupt MidiEvent compared to automation event if there are no notes in the region
* (hopefully) fixed possible race condition
* fixed range check in MidiDiskstream::set_state for channel mask
* treating notes with duration 0 more gently in MidiRegionView (warning instead of assertion)
git-svn-id: svn://localhost/ardour2/branches/3.0@3345 d708f5d6-7413-0410-9779-e7cbd77b26cf
Re-enable MIDI CC controller bars and other immediate output (hans commented out, tsk tsk).
Write channel mode as textual enumeration instead of magic number.
Better atomic (almost) channel mode switching on MIDI ring buffer (was a possible, if unlikely, source of corruption).
Handle some cases of broken MIDI, and oversized events, more gracefully.
git-svn-id: svn://localhost/ardour2/branches/3.0@3335 d708f5d6-7413-0410-9779-e7cbd77b26cf
* bugfix: midi_util.h only considered channel events up to E0, but had to be EF
* bugfix: parameter.h operator == should also compare channel (drobilla, correct me if I am wrong)
* added some assert() guards
git-svn-id: svn://localhost/ardour2/branches/3.0@3330 d708f5d6-7413-0410-9779-e7cbd77b26cf
* fixed: velocity value left on canvas
* fixed: end-of-track problem still showed up sometimes
* enabled heaps of debugging output in order to debug MidiModel corruption
git-svn-id: svn://localhost/ardour2/branches/3.0@3329 d708f5d6-7413-0410-9779-e7cbd77b26cf
* Added preliminary support for program changes flags from automation lists
git-svn-id: svn://localhost/ardour2/branches/3.0@3327 d708f5d6-7413-0410-9779-e7cbd77b26cf
* Added Automation based implementation for Program Changes, Pitch Bender and Channel Aftertouch
git-svn-id: svn://localhost/ardour2/branches/3.0@3304 d708f5d6-7413-0410-9779-e7cbd77b26cf
* make MidiModel keep track of its CanvasProgramChange instances
git-svn-id: svn://localhost/ardour2/branches/3.0@3297 d708f5d6-7413-0410-9779-e7cbd77b26cf
* changed MidiModel::write_to to include note off handling *and* time sorting
git-svn-id: svn://localhost/ardour2/branches/3.0@3294 d708f5d6-7413-0410-9779-e7cbd77b26cf
* Fixed crash bug when NoteMode = Percussive on MidiRegionView
* Fixed possible MemoryLeaks and added Signal in MidiMultipleChannelSelector
git-svn-id: svn://localhost/ardour2/branches/3.0@3263 d708f5d6-7413-0410-9779-e7cbd77b26cf
* fixed bug: dragging of notes beyond left region bounds made it disappear (unsigned int wrap around)
git-svn-id: svn://localhost/ardour2/branches/3.0@3249 d708f5d6-7413-0410-9779-e7cbd77b26cf
* fixed bug: after adding new notes, notes above/below region bounds appear
git-svn-id: svn://localhost/ardour2/branches/3.0@3237 d708f5d6-7413-0410-9779-e7cbd77b26cf
* bugfix: resizing notes not sample accurate
* bugfix: resizing notes broken due to region resizing patch
git-svn-id: svn://localhost/ardour2/branches/3.0@3221 d708f5d6-7413-0410-9779-e7cbd77b26cf
* Bugfix: resizing ends of MIDI tracks did not hide noted beyond region boundaries (in the moment only all notes with note_on >= region end are hidden, their note offs still may exceed region boundaries, but so much for now.....)
git-svn-id: svn://localhost/ardour2/branches/3.0@3219 d708f5d6-7413-0410-9779-e7cbd77b26cf
* added MIDI panic button (http://tracker.ardour.org/view.php?id=2118)
* bugfix: moving notes above midi 127 or below 0 does not wrap around anymore
* bugfix: deadlock on editing notes after playback (http://tracker.ardour.org/view.php?id=2140) due to unbalanced lock acquire/release
* bugfix: First note off lost in playback (http://tracker.ardour.org/view.php?id=2132)
* bugfix: Last note off lost in saving MIDI files (http://tracker.ardour.org/view.php?id=2132)
* bandaid fix for http://tracker.ardour.org/view.php?id=1985 (Cannot reopen session because jack ports are not unregistered on session close)
* bandaid fix: replaced conf.CheckPKGExists ('\"slv2 >= 0.6.0\"') by conf.CheckPKGExists ('slv2') in SConstruct, because the former would fail,
even if SLV 0.6.0 was installed
* added/enabled debugging output for debugging MIDI model (might be removed later)
git-svn-id: svn://localhost/ardour2/branches/3.0@3211 d708f5d6-7413-0410-9779-e7cbd77b26cf