Robin Gareus
7bb9d04859
cont’d work on a16dd7c, fixes #6170
2015-03-12 15:23:05 +01:00
David Robillard
5d8021bf44
Maintain correct tracker state on MIDI overwrite.
...
This is a little hard-edged in that edits while rolling will prematurely chop
off any playing notes, but at least the state of things actually reflects
reality. More sophisticated solution hopefully to come...
2014-12-20 01:13:25 -05:00
David Robillard
008bfceb77
Clean up state tracking of raw MIDI.
2014-11-30 23:56:19 -05:00
Robin Gareus
c6a3d6bc48
small round of compiler warning fixes
2014-10-23 03:43:04 +02:00
Paul Davis
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
Paul Davis
0d7ee3fbd3
fix another semantically-significant statement buried in an assert() macro
...
git-svn-id: svn://localhost/ardour2/branches/3.0@14020 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-28 15:18:52 +00:00
Paul Davis
d7e39ee5c7
fix breakage for optimized build caused by semantically critical statement inside an assert()
...
git-svn-id: svn://localhost/ardour2/branches/3.0@14004 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-26 23:20:17 +00:00
David Robillard
fc77ae0738
Replace a bunch of potential crashes with graceful handling of the situation.
...
We really need some kind of more sophisticated assert macro that can be
switched to non-fatal logging mode for release builds. A log message, which is
often all that would happen, is a lot better than a trainwrecked performance...
git-svn-id: svn://localhost/ardour2/branches/3.0@13892 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-19 07:00:43 +00:00
Paul Davis
d89f209f4a
tentative redesign of MIDI looping, will probably fix #5050 but needs more extensive testing; remove several unused parameter names
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13810 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-08 21:36:42 +00:00
Paul Davis
a8237f1aed
make switching between input+disk monitoring work "right" for MIDI tracks; also fix a bug that led to messages about notes already being on at program start because of a double seek with no read in between
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12762 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-18 19:20:59 +00:00
David Robillard
27a1cf2cf7
Compile cleanly with clang.
...
To compile Ardour with LLVM/clang, do the usual thing but set the CXX and CC
environment variables, e.g.:
CC=/usr/bin/clang CXX=/usr/bin/clang++ ./waf configure build
git-svn-id: svn://localhost/ardour2/branches/3.0@12418 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-24 02:54:10 +00:00
Paul Davis
5558b3cf06
a grab bag of changes correcting and improving the way MIDI note on/off tracking is done. may/should fix a number of problem with spurious note-offs under a variety of circumstances
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11074 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-26 17:01:31 +00:00
Paul Davis
0f7e423422
fix incorrect use of MidiBuffer::reserve() and MidiBuffer::write() if channel mask discards a MIDI event ( fixes #4138 )
...
git-svn-id: svn://localhost/ardour2/branches/3.0@9811 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-08 17:50:02 +00:00
Paul Davis
be614d0538
change default overlapping note strategy to "relax" (i.e. do nothing); fix crash when looping with MIDI data; add back note-off resolution at loop point (if it was actually there) so that notes are turned off (but don't forget Ye Olde Sustain Pedal/Controller) when looping; minor other non-functional tweaks
...
git-svn-id: svn://localhost/ardour2/branches/3.0@9753 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-21 21:29:22 +00:00
David Robillard
a473d630eb
Fix broken whitespace. I'd apologize for the compile times if it was my fault :D
...
git-svn-id: svn://localhost/ardour2/branches/3.0@9654 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-01 16:50:12 +00:00
Paul Davis
0a9f5423f5
detect buffer "overflow" when delivering immediate events and queue remainder for delivery next time (though without actually requeing - just leave ringbuffer ptrs/indexes where they are. required some deep but minor changes in how MidiRingBuffer::read() works, so that we can detect if we're going to be able to deliver an event before we actually read any of its data. Peek FTW!
...
git-svn-id: svn://localhost/ardour2/branches/3.0@9629 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-29 17:35:21 +00:00
David Robillard
71222c2e6e
Fix broken whitespace (no functional changes).
...
git-svn-id: svn://localhost/ardour2/branches/3.0@9289 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-04 23:00:48 +00:00
Paul Davis
ab376e10a7
reimplement MidiRingBuffer::dump()
...
git-svn-id: svn://localhost/ardour2/branches/3.0@9283 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-04 21:43:40 +00:00
Paul Davis
ea9979b4b9
remove Evoral::RingBuffer, which was (a) duplicating PBD::RingBufferNPT and (b) broken; replace it with PBD::RingBufferNPT
...
git-svn-id: svn://localhost/ardour2/branches/3.0@9212 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-26 19:01:12 +00:00
Carl Hetherington
bc84cb7479
Make a couple of bits of debug conditional to avoid mallocs when they are turned off.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@8492 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-01-10 17:31:43 +00:00
Carl Hetherington
73192bc1a7
Remove all use of nframes_t.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@8166 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-03 22:26:29 +00:00
Carl Hetherington
cf4091a03a
Fix assert. Remove some debug output.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7833 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-09-23 21:48:17 +00:00
Carl Hetherington
8502e50377
Hopefully fix dropped MIDI notes on loop. Fixes #3133 .
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7613 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-13 02:13:03 +00:00
Paul Davis
1e728e728a
basically, fix all kinds of odds and ends with MIDI playback, including missed notes and applying gain
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7247 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-09 13:00:54 +00:00
Carl Hetherington
5fd862ebc5
Small cleanup.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7242 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-08 01:21:24 +00:00
Carl Hetherington
e67a6d8989
Update ring buffer read pointer correctly in case of a failure to insert an event into the MidiBuffer.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7241 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-08 01:21:01 +00:00
Paul Davis
db8b575c30
the mega-properties/SequenceProperty patch. split is broken at present (right hand starts has start-in-source of zero)
...
git-svn-id: svn://localhost/ardour2/branches/3.0@6718 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-03-02 00:00:00 +00:00
Paul Davis
738387f9a4
remove a couple of boost::signals2 trouble spots; fix some --strict compile time warnings
...
git-svn-id: svn://localhost/ardour2/branches/3.0@6378 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-20 16:50:41 +00:00
Paul Davis
de5e463904
make per-region note-tracking in MidiPlaylist work correctly, or something very close to it. note that locking isssues remain when regions (and thus note trackers) are removed
...
git-svn-id: svn://localhost/ardour2/branches/3.0@5912 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-25 14:42:46 +00:00
David Robillard
bb9cc45cd2
Strip trailing whitespace and fix other whitespace errors (e.g. space/tab 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-10-14 16:10:01 +00:00
Paul Davis
ddf532a655
(full commit): fix MIDI playback by not writing into the playback buffer from MidiDiskStream::process() unless recording. This has a negative impact on "monitoring" MIDI, but that needs a different, somewhat more expansive solution anyway
...
git-svn-id: svn://localhost/ardour2/branches/3.0@5685 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-09-21 15:43:11 +00:00
Paul Davis
fa4e858eb3
do not allow smf_source's reads to stomp on cached read_end position in 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-09-16 01:08:51 +00:00
Paul Davis
bf0a99f0c0
fix up marshall/unmarshall of note data for MidiModel::DiffCommand
...
git-svn-id: svn://localhost/ardour2/branches/3.0@5662 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-09-14 16:01:32 +00:00
Paul Davis
3845af6ce9
lots of MIDI editing stuff. to be explained on the website when its done
...
git-svn-id: svn://localhost/ardour2/branches/3.0@5596 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-08-27 03:09:30 +00:00
David Robillard
9faf3bd048
Fix crash when playing back MIDI within a loop.
...
Fixes mantis issue #0002570 .
git-svn-id: svn://localhost/ardour2/branches/3.0@5052 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-05 02:04:56 +00:00
David Robillard
848df74e58
Fix MIDI playback.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@5024 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-01 17:32:48 +00:00
David Robillard
5a48f99f72
Use nframes_t for timestamps of real (jack) time MIDI events (i.e. in MidiBuffer and MidiRingBuffer).
...
Use iterator interface of Sequence to read events in a MIDISource rather than Sequence::read, avoiding timestamp confusion.
Disable no longer useful Sequence::read.
git-svn-id: svn://localhost/ardour2/branches/3.0@4570 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-15 01:24:26 +00:00
David Robillard
2f6327c113
Disable excessive console output (please comment this stuff before committing...).
...
git-svn-id: svn://localhost/ardour2/branches/3.0@4479 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-02 15:51:19 +00:00
Hans Baier
018fff15ef
* fix misleading/wrong comment
...
git-svn-id: svn://localhost/ardour2/branches/3.0@4477 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-02 09:10:26 +00:00
Hans Baier
858f0cb5ab
* debugging output
...
* style guide
git-svn-id: svn://localhost/ardour2/branches/3.0@4476 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-02 08:50:36 +00:00
David Robillard
166ef64e3d
Make (MIDI) event time stamp type a template parameter.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@4473 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-02 02:36:05 +00:00
David Robillard
44ac5f5097
Removed fixed/maximum event size assumption/limitation from MIDI buffer.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@4471 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-01 21:04:12 +00:00
David Robillard
8cbbfa4159
Fix immediate event delivery (panic button, controller sliders, etc).
...
git-svn-id: svn://localhost/ardour2/branches/3.0@4353 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-27 19:52:02 +00:00
David Robillard
487de9741b
Move MidiRingBuffer::read into .cc file to avoid the 2 hour dev cycle (no functional changes).
...
git-svn-id: svn://localhost/ardour2/branches/3.0@4352 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-27 18:39:11 +00:00