summaryrefslogtreecommitdiff
path: root/libs/ardour/track.cc
AgeCommit message (Collapse)Author
2016-11-27NO-OP; Backport changes from Mixbus branchRobin Gareus
2016-07-19save/restore track monitoring, rec-enable and rec-safe statesPaul Davis
2016-07-14Make Route and Track ::silent_roll() also flush out ports buffersJulien "_FrnchFrgg_" RIVAUD
So that MIDI in the ports is really made silent.
2016-07-14Consolidate delivery buffer flushing of all route typesJulien "_FrnchFrgg_" RIVAUD
Route::no_roll(), Route::roll(), Track::no_roll(), AudioTrack::roll() and MidiTrack::roll() all had the exact same loop for flushing buffers of their Delivery processors. That was a lot of replicated code that had to be kept synchronised by hand. Put that code into a protected method Route::flush_processor_buffers_locked() which is called instead.
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-06-25major internal plugin & processor API change:Robin Gareus
Pass current (latency compensated) cycle times to plugin. This fixes time-reporting to plugins and also fixes automation and when bouncing (the session->transport* is not valid) etc.
2016-05-31use new record safe control in libardourPaul Davis
2016-05-31first vaguely working version using PresentationInfoPaul Davis
remote control ID and "order keys" have been removed.
2016-05-31remove explicit setting of Toggle flag for AutomationControlsPaul Davis
Make it be based on the ParameterDescriptor, which indicates toggle status anyway
2016-05-31add track controls to its Automatable selfPaul Davis
2016-05-31universal change in the design of the way Route/Track controls are designed ↵Paul Davis
and used. The controls now own their own state, rather than proxy for state in their owners. Massive changes all over the code to accomodate this. Many things are not finished. Consider this a backup safety commit
2016-05-31change API of Controllable::Changed signal to include (from_self, ↵Paul Davis
GroupControlDisposition) This allows the signal to convey more information, which may be required by some handlers of a control's Changed signal
2016-05-24backend check for rec-safe (only allow to lock if not armed)Robin Gareus
2016-05-04OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one)Paul Davis
2016-02-01clean up mess in Route/Track controllables caused by not understanding the ↵Paul Davis
significance of ParameterDescriptor
2016-01-31make Track::set_monitoring() use a GroupControlDisposition; expose an ↵Paul Davis
AutomationControl for track monitoring choice
2016-01-22first compiling, mostly working version of group controls changesPaul Davis
2016-01-02change Controllable::set_value() API to include grouped control consideration.Paul Davis
This also removes Route::group_gain_control() and associated machinery. Not yet tested with Mackie or other surfaces. More work to done to start using the group capabilities, and also potentially to add or derive more controls as RouteAutomationControls
2015-10-21Add AutomationControl::set_value_unchecked() and ↵Paul Davis
AutomationControl::writable() and use them. Classes derived from AutomationControl now check ::writable() in their ::set_value() methods to ensure that they do not attempt to overwrite data sent to them while automation playback is underway.
2015-10-05NOOP, remove trailing tabs/whitespace.Robin Gareus
2015-10-04globally remove all trailing whitespace from ardour code base.Paul Davis
Paul Davis was responsible for introducing almost all of this.
2015-06-29add the Tracks version of Track::monitoring_state()Paul Davis
This drastically-stripped down version of the Ardour original is used only when USE_TRACKS_CODE_FEATURES is defined. It doesn't respond to many aspects/features of libardour.
2015-06-16add Record-Safe feature to libardour (from Nikolay Polyanovskii)Paul Davis
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-11-02Automation of LV2 plugin properties.David Robillard
Work towards ParameterDescriptor being used more universally to describe control characteristics.
2014-10-15allow internal generators to make noise, even if we are not rolling, and ↵Ben Loftis
using auto-input
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-06-26option to use track-number and take-name as part of file-nameRobin Gareus
2014-04-10redesign technique for naming/creating regions for MIDI clone (or other ↵Paul Davis
non-capture driven MIDI region creation operations). See comments in Session::new_midi_source_name() for details.
2013-08-09more purging of JACK as an explicit name from libardourPaul Davis
2013-08-03advance track's play-position even if processing is lockedRobin Gareus
fixes * http://tracker.ardour.org/view.php?id=5628 * http://tracker.ardour.org/view.php?id=5561
2013-07-30use dedicated buffers for route (and track)Robin Gareus
"scratch buffers are by definition scratch and their contents are undefined at all times" "silent buffers are by definition all-zero and should not be used for real data" But track & route were using those for actual data; plugins (which may run in the same thread and may get the same buffers) use them for scratch thereby overwriting real data. In particular get_silent_buffers() (used by LadspaPlugin::connect_and_run) clears the buffer which can holds real data: e.g. via Route::passthru_silence() -> plugin1 -> plugin2 (clears output of plugin1)
2013-07-28fix compiler warnings.Robin Gareus
2013-07-25reset meters only when *really* necessaryRobin Gareus
..and continue to calculate fall-off in audio-cycle (rather than UI thread) TODO: check if this works properly when switching between audio/midi meter modes on a midi-track. One of the motivations to always reset meters when the meter-point changes was to resolve peak-hold & fall-off issues when a midi-meter replaces an audio-meter and vice versa.
2013-07-16meter-state 17 and 49 + code-commentRobin Gareus
2013-07-16rework metering states 2, 6, 18 and 22Robin Gareus
2013-07-16revert functionality of f842e8af2 (meter display in DISK mode)Robin Gareus
2013-07-16yet another meter+monitoring detail:Robin Gareus
"explicit Monitor DISK" + "Transport Stop" + "not track rec-en" -> meter is always zero
2013-07-16fix metering states 34, 38, 49, 50, 53 and 54Robin Gareus
for state descriptions see http://www.oofus.co.uk/ardour/Ardour3MonitorModesV3.pdf
2013-07-16zero meters for inactive tracksRobin Gareus
2013-07-16fix "monitor mode 11"Robin Gareus
see http://www.oofus.co.uk/ardour/Ardour3MonitorModesV2.pdf the overall logic can probably be simplified somewhat track-rec-enable on -> always monitor input
2013-07-16fix input metering:Robin Gareus
if meter==input, meter depends on In/Disk see also 29108187ed
2013-07-07fix metering when monitoring track input. (ran twice)Robin Gareus
2013-03-30fix input metering when not rolling but using h/w monitoring: need to ↵Paul Davis
explicitly run meter in this case, since we are otherwise just passing silence
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.
2012-12-19prevent MIDI tracks from ever being in MonitoringSilence state, allows use ↵Paul Davis
of piano roll whether rolling or not git-svn-id: svn://localhost/ardour2/branches/3.0@13679 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-07fix wierd rec-enable behaviour, at possible expense of adding more RT costPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13615 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-07fix issues with rec-enabling being done in RT context by splitting it into ↵Paul Davis
two parts, an RT-safe and RT-unsafe part. along the way, remove "do not record plugins" option which is just so 1999 and creates problems for various (all?) plugin APIs git-svn-id: svn://localhost/ardour2/branches/3.0@13613 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-09-27different version of previous commit that leaves previous semantics intact ↵Paul Davis
unless punch in/out are enabled git-svn-id: svn://localhost/ardour2/branches/3.0@13200 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-09-27when deciding monitoring state, only consider the session to be in global ↵Paul Davis
record state if we are actively recording, not just if we are rec-enabled. this provides correct monitoring when punch in/out are enabled git-svn-id: svn://localhost/ardour2/branches/3.0@13199 d708f5d6-7413-0410-9779-e7cbd77b26cf