summaryrefslogtreecommitdiff
path: root/libs/ardour/session_process.cc
AgeCommit message (Collapse)Author
2014-11-14add abort() to non-reached codeRobin Gareus
This cleans up a lot of false-positives in static analysis and also helps compilers to optimize code paths in general. (tagging the fatal stingstream operator as ‘noreturn’ is far less trivial)
2014-10-10subtle changes to accomplish two goals (1) playhead should stop where the ↵Paul Davis
user pressed stopped (2) captured regions should end where the playhead ends
2014-09-17use Config->get_skip_playback() when handling Skip eventsPaul Davis
2014-09-17add new Skip event to SessionEventsPaul Davis
2014-07-02add a method to cancel a pending play_range. this is needed when we are ↵Ben Loftis
modifying the range with keyboard commands.
2014-04-28merge (squash) with scenechange topic branch to provide MIDI-driven scene ↵Paul Davis
change markers
2014-04-17new transport option, "loop-is-mode" which optionally changes the role of ↵Paul Davis
the "play loop" button. If enabled, then the button simply changes the behaviour of the "play" button rather than actually starting playback. If disabled transport behaviour should be unchanged from before.
2014-01-16allow auditioning via the monitor section to work.Paul Davis
Ideally, we would feed the monitor section via an internal (aux) send/return, but this is an improvement over what we had before
2014-01-03don't split process cycle at endRobin Gareus
Keep in mind: While this is the correct thing to do, it hides another another bug under the hood, related to _global_port_buffer_offset in MidiPort::flush_buffers. For debugging the latter issue, revert this.
2013-12-02don't run MIDI clock "tick" if session is silent (e.g. due to a locate)Paul Davis
2013-08-13fixes to get MTC (and probably MIDI clock) slaving working againPaul Davis
incoming MIDI data has to be parsed EVERY process cycle, not just when Slave::speed_and_position() is called. The private MIDI::Parser owned by the MTC and MClck slaves was irrelevant, since the port has its own. See comments in midi_port.h on the strangled inheritance heirarchy.
2013-08-07major redesign of MIDI port heirarchy and management (part 2)Paul Davis
2013-07-10remove another instance of xmmintrin.hPaul Davis
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