summaryrefslogtreecommitdiff
path: root/libs/ardour/session_process.cc
AgeCommit message (Collapse)Author
2013-04-06rename Route::is_hidden() to Route::is_auditioner() and Route::Hidden to ↵Paul Davis
Route::Auditioner. this has been the meaning of these terms for years now and it would be better to make it explicit
2013-04-05ignore "external timecode is sync locked" for non timecode slaves.Robin Gareus
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-24we ain't stop for nothin' when slaved to ext time source.Robin Gareus
git-svn-id: svn://localhost/ardour2/branches/3.0@13985 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-23Revert "fix for problem when reverse playback hits 00:00:00:00 (may be ↵Robin Gareus
incomplete)" This reverts commit 13708 -- because it's the wrong approach to fix this. git-svn-id: svn://localhost/ardour2/branches/3.0@13713 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-21fix for problem when reverse playback hits 00:00:00:00 (may be incomplete)Robin Gareus
should fix #5221 git-svn-id: svn://localhost/ardour2/branches/3.0@13708 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-14merge robin gareus' libltc into ardour source tree for conveniencePaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13665 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-26LTC generator checks itself if to send LTC or not.Robin Gareus
git-svn-id: svn://localhost/ardour2/branches/3.0@13348 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-26clean up consequences of using IO/Port/Buffer for LTC output, and in related ↵Paul Davis
work, move calls to Session::ltc_tx_send_time_code_for_cycle() into Session::no_roll() to cover most cases where we "do not roll" git-svn-id: svn://localhost/ardour2/branches/3.0@13343 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-23fix backwards playback position calculationRobin Gareus
git-svn-id: svn://localhost/ardour2/branches/3.0@13322 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-21add LTC generatorRobin Gareus
git-svn-id: svn://localhost/ardour2/branches/3.0@13315 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-20LTC slave rewrite #2Robin Gareus
git-svn-id: svn://localhost/ardour2/branches/3.0@13313 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-16prepare for non-seekahead [LTC] slave. fix state machineRobin Gareus
locate() will call realtime_stop which will reset the slave-state. git-svn-id: svn://localhost/ardour2/branches/3.0@13290 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-12tweaks to be ready for more information timecode display in Timecode clock modePaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13264 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-10move timecode-is-clock-synced option to global configuration parameters, not ↵Paul Davis
per session git-svn-id: svn://localhost/ardour2/branches/3.0@13235 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-10ignore slave/engine time-delta when recording.Robin Gareus
git-svn-id: svn://localhost/ardour2/branches/3.0@13227 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-25convert from Glib:: to Glib::Threads for all thread-related APIPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13084 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-22introduce the idea of a "default transport speed", used whenever ↵Paul Davis
Session::start_transport() is called. Only the shuttle controller alters it, and even that only alters it in wheel mode, which means that stopping the transport does not rever the default speed back to zero. To get back to zero either switch the shuttle controller back to sprung mode, or change the speed back to zero (fixes #451 ... yes, really, a 3 digit bug fixed!) git-svn-id: svn://localhost/ardour2/branches/3.0@12819 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-22fix reset of transport speed when seamless looping; add a few comments and ↵Paul Davis
tidy-ups to related transport code git-svn-id: svn://localhost/ardour2/branches/3.0@12818 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-21smooth 0.5 second fade out during quit, plus MIDI panic to turn everything ↵Paul Davis
off (someone will want an opton for that, no doubt) git-svn-id: svn://localhost/ardour2/branches/3.0@12814 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-20Declick before the end of seamless loops, not after the end, so that loops ↵Carl Hetherington
are rendered accurately (#4213, #4593). git-svn-id: svn://localhost/ardour2/branches/3.0@12801 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-20Comment declick stuff a bit, and fix confusing use of bool instead of int to ↵Carl Hetherington
hold the value. git-svn-id: svn://localhost/ardour2/branches/3.0@12800 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-24Remove over 500 unnecessary includes (including 54 of session.h).David Robillard
It's slightly possible that this causes trivial build failures on different configurations, but otherwise shouldn't cause any problems (i.e. no actual changes other than include/naming/namespace stuff). I deliberately avoided removing libardour-config.h since this can mysteriously break things, though a few of those do seem to be unnecessary. This commit only targets includes of ardour/*.h. There is also a very large number of unnecessary includes of stuff in gtk2_ardour; tackling that should also give a big improvement in build time when things are modified. git-svn-id: svn://localhost/ardour2/branches/3.0@12420 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-24revert previous commit (it should work, but did not); minor tweaks elsewherePaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@12084 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-23move MIDI::Manager::cycle_{start,end}() calls from Session into AudioEngine ↵Paul Davis
so that they will continue even if the session has been disconnected from the session git-svn-id: svn://localhost/ardour2/branches/3.0@12066 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-16Fairly major change to the way in which crossfades are handled;Carl Hetherington
they are now done with region fades, rather than separate objects. After this commit, Ardour will try to convert your session files to the new crossfade format, but will make a backup in your session folder first. If you have works in progress using Ardour 3 it is ***STRONGLY RECOMMENDED*** that you back up session files before updating to this commit. git-svn-id: svn://localhost/ardour2/branches/3.0@11986 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-02-06attempt to stop sending MMC/MTC while exporting or freewheeling for any reasonPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@11457 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-30Fix faulty comment in previous commit.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@11392 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-30Fix non-summon of butler when a track that needs it is followed by a track ↵Carl Hetherington
that does not (in the single-process-thread-CPU case). Should fix #4677. git-svn-id: svn://localhost/ardour2/branches/3.0@11391 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-27further simplification of midi clock ticker APIPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@11361 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-27rework design of midi clock ticker to avoid expensive generalization that ↵Paul Davis
has turned out to have no particular use, and fix bug that caused incorrect ticks to be sent (or attempted) as the transport starts up git-svn-id: svn://localhost/ardour2/branches/3.0@11359 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-22For now, only use the multi-threaded process code if we areCarl Hetherington
using >1 processor for DSP; this involves making the DSP use setting only take effect on a restart of Ardour. git-svn-id: svn://localhost/ardour2/branches/3.0@11302 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-14Add some debug code to time things in the processCarl Hetherington
thread(s). git-svn-id: svn://localhost/ardour2/branches/3.0@11246 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-06remove messages when tempo map is not available in RT contextPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@11175 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-05possibly fix deadlocking issues with tempo map by rearranging code and ↵Paul Davis
adding RT variants for a couple of functions that would normally try to rebuild the map when necessary; instead the variants throw an exception and the RT code that called them tries to do something reasonable git-svn-id: svn://localhost/ardour2/branches/3.0@11164 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-11Clarify stop-at-session-end behaviour; should fix #4033.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@10978 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-09Alert the user if a connection is made which causesCarl Hetherington
feedback, and preserve the route graph in the state that it was in before the feedback was introduced. The intent being to simplify the code, reduce the number of areas of code which must consider feedback, and fix a few bugs. git-svn-id: svn://localhost/ardour2/branches/3.0@10510 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-21correctly track monitoring changes in libardour and the GUI; required ↵Paul Davis
removing propagation of session rec-enabled status through process chain and replacing it with call to Session::actively_recording() where necessary (may require a new RT event) git-svn-id: svn://localhost/ardour2/branches/3.0@10265 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-09-30fixes for 98% of all the warnings/errors reported by OS X gcc on tigerPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@10179 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-09-18Remove unused rec_monitors_input variables.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@10091 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-09-16Remove unused parameter.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@10090 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-02Fix some set-but-not-used variable warnings from gcc 4.6Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@9783 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-01Fix broken whitespace. I'd apologize for the compile times if it was my ↵David Robillard
fault :D git-svn-id: svn://localhost/ardour2/branches/3.0@9654 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-02Factor out stop limit computation into its own method. Ignore ↵Carl Hetherington
stop-at-session-end if there is a punch range and punch-in is enabled (#4022). git-svn-id: svn://localhost/ardour2/branches/3.0@9457 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-04Fix broken whitespace (no functional changes).David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@9288 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-04move some DEBUG::Graph traces to DEBUG::ProcessThreads ; remove ↵Paul Davis
Diskstream::rename_write_sources() which is no longer relevant (sources are not created on disk until needed); fixup calling Diskstream::non_realtime_input_change() when calling Diskstream::set_track() with a track that doesn't yet have any I/O (i.e. typical case) git-svn-id: svn://localhost/ardour2/branches/3.0@9281 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-18actual working fix for threads/graph/route removal problemPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@9167 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-11sorta-kinda working latency compensation, latency reporting and capture ↵Paul Davis
alignment ... working except that we report the wrong information to JACK and i've noticed a couple of odd circumstances where turning on a latent plugin caused punch recording to fail git-svn-id: svn://localhost/ardour2/branches/3.0@9121 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-07fix all manner of wrongness with port buffer offsetsPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@9098 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-05revert recent-ish change so that regardless of the number of DSP threads, we ↵Paul Davis
always use the graph code (fixes a crash or lockup when removing a track and using only 1 DSP thread) git-svn-id: svn://localhost/ardour2/branches/3.0@9082 d708f5d6-7413-0410-9779-e7cbd77b26cf