summaryrefslogtreecommitdiff
path: root/libs/ardour/midi_buffer.cc
AgeCommit message (Collapse)Author
2009-10-22Fix MidiBuffer::merge_in_place and add aggressive correctness checking.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@5854 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-21Fix MIDI thru, though why this is any different from audio (monitoring) I ↵David Robillard
don't know. git-svn-id: svn://localhost/ardour2/branches/3.0@5837 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-20Implement out-of-place MidiBuffer::merge.David Robillard
Completely untested. git-svn-id: svn://localhost/ardour2/branches/3.0@5817 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-14Strip trailing whitespace and fix other whitespace errors (e.g. space/tab ↵David Robillard
mixing). Whitespace changes only. Vimmers, try let c_space_errors = 1 in your .vimrc to highlight this kind of stuff in red. I don't know the emacs equivalent... git-svn-id: svn://localhost/ardour2/branches/3.0@5773 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-09-25implement MidiBuffer::merge_in_place() and use to support MIDI passthrough ↵Paul Davis
(control over this feature to be added. historical note: implemented and debugged during keith packard's excellent presentation on X at 25 during LPC2009 git-svn-id: svn://localhost/ardour2/branches/3.0@5686 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-09-16do not allow smf_source's reads to stomp on cached read_end position in ↵Paul Davis
parent class, which creates chaos by being out of sync with MidiSource::_model_iterator. this doesn't totally fix MIDI playback, but it helps git-svn-id: svn://localhost/ardour2/branches/3.0@5665 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-08-28more MIDI editing tweaks ; flip mouse mode buttons around for MIDI so that ↵Paul Davis
"object" mode is the most likely mode for both region \& region editing ; frame handle events (from lincoln's region trimming patch) are now handled more explicitly git-svn-id: svn://localhost/ardour2/branches/3.0@5600 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-07-21Fix some unused parameter warnings.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@5403 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-06-16first pass (ok, third really) at internal send+return - audio routing inside ↵Paul Davis
ardour without JACK. lots still to do, but at least the obvious works git-svn-id: svn://localhost/ardour2/branches/3.0@5202 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-06-09Remove aliased _size member.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@5141 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-04Preliminary MIDI plugin support.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@5036 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-01Fix MIDI playback.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@5024 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-04-23remove offset from process callback tree. some breakage may have occured. ↵Paul Davis
yes, really. git-svn-id: svn://localhost/ardour2/branches/3.0@4999 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-25*** NEW CODING POLICY ***David Robillard
All #include statements that include a header that is a part of a library bundled with ardour MUST use quotes, not angle brackets. Do this: #include "ardour/types.h" NOT this: #include <ardour/types.h> Rationale: This is best practice in general, to ensure we include the local version and not the system version. That quotes mean "local" (in some sense) and angle brackets mean "system" (in some sense) is a ubiquitous convention and IIRC right in the C spec somewhere. More pragmatically, this is required by (my) waf (stuff) for dependencies to work correctly. That is: !!! FAILURE TO DO THIS CAN RESULT IN BROKEN BUILDS !!! Failure to comply is punishable by death by torture. :) P.S. It's not that dramatic in all cases, but this (in combination with some GCC flags specific to the include type) is the best way I have found to be absolutely 100% positive the local ones are being used (and we definitely want to be absolutely 100% positive on that one). git-svn-id: svn://localhost/ardour2/branches/3.0@4655 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-16Gracefully ignore illegal MIDI events at the buffer level (i.e. from Jack).David Robillard
Ardour should now be able to more or less tolerate crazy incoming MIDI (except for SYSEX). git-svn-id: svn://localhost/ardour2/branches/3.0@4592 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-11verbosity--David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@4536 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-02* fixed crash: MidiBuffer::reserve returned wrong write locationHans Baier
git-svn-id: svn://localhost/ardour2/branches/3.0@4475 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-02Make (MIDI) event time stamp type a template parameter.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@4473 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-01Removed fixed/maximum event size assumption/limitation from MIDI buffer.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@4471 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-01Templateify MidiBuffer iterators (avoid code duplication since they're about ↵David Robillard
to get less trivial). Clean up MidiBuffer code. git-svn-id: svn://localhost/ardour2/branches/3.0@4469 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-29Fix some compiling warnings and errors in OS XSakari Bergen
git-svn-id: svn://localhost/ardour2/branches/3.0@4358 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-27Fix immediate event delivery (panic button, controller sliders, etc).David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@4353 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-10-10Apply MIDI looping patch from torbenh, with minor changes.David Robillard
General idea: use internal events to mark loop boundaries in MIDI buffers so readers can make sense of timestamps. git-svn-id: svn://localhost/ardour2/branches/3.0@3905 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-10-08torben's port buffer reworking; torben's panner automation loading patch ↵Paul Davis
(allows loading of 2.X sessions) git-svn-id: svn://localhost/ardour2/branches/3.0@3890 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-22Move event specific ringbuffer stuff to evoral.David Robillard
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
2008-09-19Factor out sequencing related things into an independant new library: "evoral".David Robillard
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
2008-06-02rollback to 3428, before the mysterious removal of libs/* at 3431/3432Paul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@3435 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-06-02remove empty sigc++2 directoryDoug McLain
git-svn-id: svn://localhost/ardour2/branches/3.0@3432 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-05-23Remove pointless Byte typedef that didn't really match any other typedef in ↵David Robillard
ardour anyway. git-svn-id: svn://localhost/ardour2/branches/3.0@3409 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-05-15Eliminate excessive allocation (for every event) during MidiModel iteration.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@3351 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-05-12Fix various MIDI corruption bugs.David Robillard
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
2008-04-22* disabled some debugging outputHans Baier
* make record buttons appear in MIDI mixer strips git-svn-id: svn://localhost/ardour2/branches/3.0@3280 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-04-03* implemented editing velocities (http://tracker.ardour.org/view.php?id=2148)Hans Baier
* 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
2008-03-18refactor JACK MIDI port to allow writing from a non-process() thread, and ↵Paul Davis
move ARDOUR::MidiEvent into MIDI namespace along with midi_events.h header git-svn-id: svn://localhost/ardour2/branches/3.0@3155 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-01-10Merge libs/ardour and gtk2_ardour with 2.0-ongoing R2837.David Robillard
git-svn-id: svn://localhost/ardour2/trunk@2883 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-10-31new port design, probably about 90% done (i.e it mostly works and this ↵Paul Davis
commit is to stop anyone else from stomping on my changes :) git-svn-id: svn://localhost/ardour2/trunk@2579 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-10-17new internal port type, round I, plus tiny fix for legalize_for_xml() (also ↵Paul Davis
for 2.0-ongoing) git-svn-id: svn://localhost/ardour2/trunk@2559 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-10-14Fix displaying of notes in auto-created MIDI region when it's the first ↵David Robillard
region in the track. Fix crash after recording long phrases of MIDI. Fix MIDI looping (kinda). Add note-off exposure to MidiModel::iterator. Fix first-note-is-stuck-note problem. Fix resolving long notes while recording. Fix several other things I forget now. MIDI works pretty well..... git-svn-id: svn://localhost/ardour2/trunk@2555 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-08-31Reading of MIDI CC from MIDI regions (MidiModel). UI still needs work though..David Robillard
Various fixes for linear/integer AutomationList interpolation (for CC). git-svn-id: svn://localhost/ardour2/trunk@2359 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-08-01Better MidiModel command framework, ready to go for all your canvas editing ↵David Robillard
needs. Rewrote MidiEvent to be a well-behaved self-contained object that optionally owns it's buffer, has proper copying semantics, etc. Fixed crazy bugs triggered by adding lots of events with varying times to a region. Speed up initial session display significantly (don't redraw each MIDI region tons of times, though still happens more than once and can use fixing...). git-svn-id: svn://localhost/ardour2/trunk@2213 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-07-28Playback from MIDI model, playback of clicked-in events.David Robillard
Note the diskstream chunk size affects reading of clicked-in, so you may need to seek away and back again to have new events read (this will be fixed). git-svn-id: svn://localhost/ardour2/trunk@2183 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-07-06Midi CC automation sending (send points only, no linear interpolation yet).David Robillard
Split buffer.cc into buffer.cc audio_buffer.cc midi_buffer.cc. Renamed 'send_buffers' to 'mix_buffers'. This is the first revision of Ardour where clicking around and drawing things can send MIDI and thus generate wonderful world-changing music. Break out the champagne. git-svn-id: svn://localhost/ardour2/trunk@2115 d708f5d6-7413-0410-9779-e7cbd77b26cf