summaryrefslogtreecommitdiff
path: root/libs/ardour/audio_track.cc
AgeCommit message (Collapse)Author
2020-05-04fix note-tracking in Editor::write_one_track()Paul Davis
We need a MidiStateTracker to determine notes whose end is not reached during the call to ::write_one_track(), so that we can resolve them in the output (SMF) source. This required some changes to the ::export_stuff() API for tracks. In addition, we now take the source "lock" just once during ::write_one_track() rather than every time we write. This isn't an integral part of the note tracking, but fell out along the way. Finally, note that although we use a vector to handle MIDI "sources" here, it is expected that there is only 1 MIDI source at present. Leave vectors in place since it is possible that ::write_one_track() could be modified in the future to change that.
2020-03-17restore being able to load a 5.12 session with a destructive track.Paul Davis
Not all is working right yet, however
2020-03-14Fix SessionHandleRef shared-ptr leak when unfreezing tracksRobin Gareus
2020-03-14Prevent freeze/bounce of sidechain processorsRobin Gareus
This also consolidates code to test if a processor can be frozen from various places.
2020-01-20Change tape-machine-mode to auto-input-does-talkback (libardour part)Ben Loftis
In prior versions: if Auto Input was enabled, the default behavior was to monitor the Input of all tracks when stopped; even if they aren't armed. Tape Machine Mode changed the behavior of Auto Input so that it doesn't always monitor the track inputs when transport is stopped. After some discussion on IRC, we determined that Tape mode is likely more practical for a DAW user, and therefore a better default. Rather than default an ambiguously-named preference "on", we decided to invert the behavior, rename it sensibly(?), and default it OFF.
2019-11-02rename all Evoral source from .(hpp|cpp)$ to .(h|cc)Paul Davis
2019-09-25goodbye Profile->...trxPaul Davis
2019-08-03Update libardour GPL boilerplate and (C) from git logRobin Gareus
2019-08-01(Source List) Clean up the natural_position implementation (libardour part).Ben Loftis
2019-03-19Remove global Session::playlists variable, use getter method (1/2)Robin Gareus
Global variables that can written by anyone are to be avoided. This also simplifies exposing SessionPlaylists as Lua bindings.
2019-03-18NO-OP: Use API to set/test state-of-the-stateRobin Gareus
2018-02-14Auto-monitor == Cue for MIDI tracks.Ben Loftis
2017-10-04Clean up State API:Robin Gareus
* Processor implement get_state(), classes derived from Processor implement protected ::state() -- as documented in processor.h * likewise for Route, Track: make ::state() a protected interface * removal of "full_state", use explicit "template_save" * use RAII/Unwind to skip saving automation-state
2017-10-01Fix recording MIDIRobin Gareus
- Fix API call to add region(midi_region) -- set count to "1" - Forward DataRecorded() signal - remove botched merge/rebase" a4a87f56 accidentally brought back code from old-destructive API which was removed in af103cf3 and 08c13007 There is no per track NonLayered record mode anymore, it's session global. - set can_record correctly to not accidentally clear last capture sources for cont'd recording (toggle track's rec-arm)
2017-09-18consolidate roll methods into Route::roll()Paul Davis
We want Track to shrink, and logic consolidation is always good. Route already knew about disk_reader and disk_writer, now it knows about _monitoring_control too
2017-09-18globally change all use of "frame" to refer to audio into "sample".Paul Davis
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode and video in order to keep the legible
2017-09-18addd more DEBUG_TRACE for DiskIO; set DiskIOProcess::_need_butler more ↵Paul Davis
appropriately; other minor adjustments
2017-09-18fully remove diskstream codePaul Davis
2017-09-18remove Diskstream from Track and derivatives; get ardour to actually startupPaul Davis
2017-09-18mega-commit to save state of first "it compilesand links" state for ↵Paul Davis
separated disk i/o changes. THIS WILL NOT RUN. THIS REQUIRES MANY CHANGES
2017-08-18Remove old destructive API (non layered is a dynamic mode) 2/2Robin Gareus
2017-06-22Remove LocaleGuard from ARDOUR::AudioTrack classTim Mayberry
The gain property float <=> string conversion is now performed using PBD::to_string/string_to via XMLNode
2017-04-19Use XMLNode::get/set_property in ARDOUR::AudioTrack classTim Mayberry
2017-04-19Use ID::to_s() in libardour instead of ID::print()Tim Mayberry
2016-12-17Hide/remove per-track record-mode in favor of global setting.Robin Gareus
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