summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/export_graph_builder.h
AgeCommit message (Collapse)Author
2020-03-06Fix potential deadlock when exporting w/normalizingRobin Gareus
start_post_processing() may be called from the freewheeling callback, when starting to normalize.
2020-03-06Fix export alignment (#7916)Robin Gareus
Ardour's playback is aligned to master-out: "When the playback clock reads 01:00:00:00, the sample corresponding to 01:00:00:00 is audible at the speaker(s)" When exporting, and grabbing data from output ports, the signal is offset by the master-bus physical playback latency. This was compensated for, but lead to initial silence in the exported file. New approach is to start capturing export data during pre-roll, at the time when playback is written to the output buffers. To also shaves off a common offset to make this work with realtime export. Effectively this emulates processing with disconnected master-output port, while still keeping any latency of effects on the master-bus itself. Last but not least: jack updates latencies when freewheeling, (setting HW latency to zero). The callback arrives asynchronously some time after enabling freewheeling, but after Export Ports have been configured. Those callbacks are ignored.
2019-08-03Update libardour GPL boilerplate and (C) from git logRobin Gareus
2019-04-08NO-OP: whitespaceRobin Gareus
Fix space-alignment, mostly due to "frame" -> "sample" changes.
2018-11-19Initial backend support for external export encoderRobin Gareus
This adds an experimental pipe to ffmpeg to encode mp3. Currently quality is hardcoded and various aspects remain to be implemented. However, it is sufficient for initial testing.
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
2016-07-18Normalize API rename part 2Robin Gareus
2016-07-18No-Op: rename Normalizer to IntermediateRobin Gareus
post-processing is no longer just Normalization. RealtimeExport does Encoding - faster than realtime - using the same infrastructure.
2016-07-16libardour support for timespan realtime exportRobin Gareus
2016-07-16Refactor TmpFile into an abstract base classRobin Gareus
This allows a TmpFile pointer to be either a Sync or Async (Threaded) writer. As result we must be able to handle both RT and non RT processing. Still, post-processing (normalization and encoding) should always happen faster than realtime (freewheeling). Since jack does not allow a client to change to freewheeling from within the process-callback, the async-writer disk-thread FileFlushed is used to initiate post-processing.
2016-07-14refactoring to prepare for real-time exportRobin Gareus
* add a threaded TmpFile Writer * update API calls to that process_export_fw() can be used as process_function The idea is to re-use export infrastructure from normalization: export to a tmp-file and then encode target formats after that.
2016-05-02Add loudness normalization to Export Format & GraphRobin Gareus
2016-02-16chunk data before analysis, prefer 8KRobin Gareus
* consistent spectrum display for all reports (same binsize) * improved performance (power of two)
2016-02-15Add normalization gain factor to Export AnalysisRobin Gareus
2016-02-10make post-export analysis optional (default to enabled)Robin Gareus
2016-02-10Post-export AnalysisRobin 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-29no-op: indentation and whitespace fixesPaul Davis
2015-06-29[Summary] Added export cleanupGZharun
[Reviewed by] Andriy Mishyn
2013-10-17add export visibility macros across libardourPaul Davis
2012-06-24Inrease the export "chunk size" to speed it up over 10% at least in some ↵Sakari Bergen
situations git-svn-id: svn://localhost/ardour2/branches/3.0@12919 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-01-24Show proper progress information for export while normalizingSakari Bergen
git-svn-id: svn://localhost/ardour2/branches/3.0@11337 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-11Fix #4094: show total export progress instead of per timespan progressSakari Bergen
git-svn-id: svn://localhost/ardour2/branches/3.0@9710 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-11Typedef all globally used export smart pointer types in one file.Sakari Bergen
Some of them need to be ordered in STL containers, and thus need a special comparable wrapper for boost::shared_ptr, defined in comparable_shared_ptr.h. This also alleviates the typedef hell present earlier in some export classes :) Making the timespan pointer comparable should fix bug #4093 git-svn-id: svn://localhost/ardour2/branches/3.0@9702 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-01-10Make export channels own their buffers + some other small code tidy-ups. ↵Sakari Bergen
Preparation for more stem export options git-svn-id: svn://localhost/ardour2/branches/3.0@8494 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-18Finally implement position aware silence adding in export (i.e. bbt times ↵Sakari Bergen
are converted to frames correctly) This will work when Session::convert_to_frames_at is fixed :) git-svn-id: svn://localhost/ardour2/branches/3.0@8295 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-03Remove all use of nframes_t.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@8166 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-04-02Make audiographer SndfileWriter use PBD::Signal and use it properly. Also ↵Sakari Bergen
make export graph stuff use boost::ptr_list (because of ScopedConnection non-copyability) git-svn-id: svn://localhost/ardour2/branches/3.0@6844 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-03-30Fix split channel export (which was broken during export refactoring)Sakari Bergen
Possibly fixes bug #3052 Also clarify some comments which weren't quite clear :) git-svn-id: svn://localhost/ardour2/branches/3.0@6808 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-03-15Fix export, which has been broken since the boost::signals2 changes. Also ↵Sakari Bergen
update Audiographer, bacause of its incomplete sndfile handling. Audiographer is equal to revision 74 git-svn-id: svn://localhost/ardour2/branches/3.0@6760 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-02-23Fix various code quality issues found by cppcheck (e.g. uninitialized ↵David Robillard
members, larger than necessary variable scope, memory leaks, etc). git-svn-id: svn://localhost/ardour2/branches/3.0@6710 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-27- Fix process callbakc handling during exportSakari Bergen
- Fix filename handling when exporting multiple files - Some updates to audiographer git-svn-id: svn://localhost/ardour2/branches/3.0@6402 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-27Re-integrate export-optimization branch.Sakari Bergen
Export now happens directly to file (unless normalizing is required), and can be easily optimized even further. The Session process connection is still broken during export (as it was before this commit also). git-svn-id: svn://localhost/ardour2/branches/3.0@6401 d708f5d6-7413-0410-9779-e7cbd77b26cf