summaryrefslogtreecommitdiff
path: root/libs/ardour/audio_track.cc
AgeCommit message (Collapse)Author
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-06-08fix mute automation for busses & consolidate code.Robin Gareus
2016-05-31first vaguely working version using PresentationInfoPaul Davis
remote control ID and "order keys" have been removed.
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-07make boost shared_ptr debugging a little easier to turn on/offPaul Davis
2016-05-07fix LocaleGuard contstructor (3dc77280)Robin Gareus
2016-05-05we always only use the "C" locale when saving.Robin Gareus
2016-05-04OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one)Paul Davis
2016-01-18add group disposition argument to Route::set_gain() and use it in various UIsPaul Davis
Executive decisions were necessary in a couple of places about the correct group disposition behaviour, notably faderport and OSC surfaces
2016-01-18working version of new gain control designPaul Davis
2015-11-21fix playlist refcount on track un-freeze.Robin Gareus
2015-11-20prevent deletion of playlists on frozen tracks:Robin Gareus
bug: 1) freeze a track 2) Session Cleanup > Cleanup unused sources 2a) confirm playlist deletion 3) quit, reload -> track is no longer frozen because _freeze_record.playlist is missing. session is in an odd state.
2015-10-21fix mute automation in Play automation statePaul Davis
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-07-23avoid llabs ambiguityRobin Gareus
(old gcc has a built-in)
2015-06-29Tracks does not (want to) support destructive tracksPaul Davis
2015-04-28Track mode needs to be set before loading Track stateRobin Gareus
parent Track::set_state() sets the diskstream and ::set_diskstream() depends on the track mode. fixes Tape tracks on session load
2015-04-22Initial Gain Coefficient tweaksBen Loftis
1) Disambiguate 1.0 to GAIN_COEFF_UNITY, and 0.0 to GAIN_COEFF_ZERO 2) Add GAIN_COEFF_SMALL which replaces SMALL_SIGNAL (-140dB) 3) GAIN_COEFF_SMALL can used to avoid interpolating towards -inf on a db scale 4) GAIN_COEFF_SMALL is used to detect very small (denormal?) gains and memset to zero
2015-01-19use C locale, because POSIX locale is not supported on windows, and ↵Ben Loftis
operation is undefined. C works on all platforms
2014-11-29Somewhat working gain automation.David Robillard
This probably isn't correct in several ways, but it works more than it did, so I figure it's push worthy. Still not working: * Saving mute automation list * Dragged control points are not snapped to model restrictions (boolean, in this case, but general problem) * Line goes funny if you record mute automation (as opposed to drawing it which works)
2014-06-04Revert "add API to query a processor's frozen state."Robin Gareus
Theoretically one could alter the plugins after a delivery even on a frozen track. ..or even change settings, the ordering and add/remove plugins after the frozen part of a track. We won't go there. Frozen is frozen. this API is not needed after all. This reverts commit a771dea20332bf31162ccb13a518e0348b441dd1.
2014-06-04add API to query a processor's frozen state.Robin Gareus
2014-06-04re-work bounce/freeze. Freezer stops at first active delivery.Robin Gareus
amend to 8f52bf7d9f
2014-05-25compensate for processor latency during bounceRobin Gareus
2014-05-15fix midi output on audio-tracks (e.g. audio->midi plugins)Robin Gareus
2014-01-23fix merge conflict with masterPaul Davis
2014-01-22remove cruftRobin Gareus
2013-09-12incomplete merge of master into windows (requires upcoming changes to master ↵Paul Davis
to be complete)
2013-09-05'libs/ardour' - Revert 'std::llabs' to 'llabs' until we find a ↵John Emmas
platform-neutral solution (MOTE - 'llabs' and '::llabs' are being used successfully in other parts of Ardour)
2013-09-03Merge branch 'master' into audioenginePaul Davis
2013-09-02add std:: to clarify use of llabs on OS XPaul Davis
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-31fix stupid copy/paste error in 00f26394a9Robin Gareus
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-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-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-10-18change input/output button context menus for mixer strip to be non-additive: ↵Paul Davis
when selecting a new IO bundle, disconnect from any existing connections before connecting to the new one (fixes #5087) git-svn-id: svn://localhost/ardour2/branches/3.0@13308 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-07-13dramatic overhaul of automation. too long to explain here. this work is not ↵Paul Davis
finished - write/touch passes do not correctly overwrite existing data because the semantics of ControlList::insert_iterator need clarification. more to follow git-svn-id: svn://localhost/ardour2/branches/3.0@13038 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-06do not deactivate the meter in a frozen trackPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@12991 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-03-15radically rethink export/bounce/freeze code design. probably not 100% done ↵Paul Davis
by freeze+unfreeze now work and behave sensibly w.r.t. processors that do routing git-svn-id: svn://localhost/ardour2/branches/3.0@11701 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
2011-12-23Clarify ensure vs. request for JACK monitoring, naming-wise.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@11064 d708f5d6-7413-0410-9779-e7cbd77b26cf