Age | Commit message (Collapse) | Author |
|
This use-case is better served via stem-export.
|
|
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.
|
|
After exporting a time-span, the next time-span was started
directly from the rt-callback. This had various issues.
In particular with realtime export.
Post-processing of a realtime-export enables freewheeling
and is driven by freewheel callbacks. Freewheeling needs to be
safely disabled for an upcoming realtime export.
A similar issues existed when mixing realtime and non-realtime exports.
|
|
i18n alsways needs to be included last. This fixes an ambiguity of "_"
boost/function_types/detail/class_transform.hpp:23:26:
error: ‘boost::mpl::placeholders::_’ has not been declared
using mpl::placeholders::_;
|
|
|
|
According to the cdrdao man page, they should be defined as follows:
INDEX MM:SS:FF
Increments the index number at given position within the track.
The first statement will increment from 1 to 2. The position is
relative to the real track start, not counting an existing pre-gap.
|
|
|
|
|
|
|
|
Previously, stem-exports of more than 1 channel always included
the export-format, even if only one format was exported.
|
|
config_map.erase() is only called in ExportHandler::finish_timespan().
When an export fails (throw) or is aborted, the export-handler's
config remains as is and the next export will run it again.
The export-handler is global, per session and
ExportHandler::add_export_config() only ever inserts or ignores insert.
This is in preparation to fix:
1) export to invalid path -> fail, error is thrown
2) correct path -> new config is inserted in the map
3) try to export again, first runs the not-completed export from (1)
-> constant errors.
|
|
Delay ports being exported by their playback latency.
|
|
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
|
|
|
|
Another 90% solution which hopefully gives us another year :(
see comments Session::start_audio_export() for explanation.
|
|
|
|
|
|
post-processing is no longer just Normalization. RealtimeExport
does Encoding - faster than realtime - using the same infrastructure.
|
|
|
|
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.
|
|
|
|
(substitute underscores)
|
|
|
|
needs testing on windows with UTF8
|
|
|
|
|
|
|
|
Patch taken (and forward-ported to HEAD) from
<https://anonscm.debian.org/cgit/pkg-multimedia/ardour.git/plain/debian/patches/0100-fix-typos.patch>
|
|
|
|
|
|
|
|
|
|
The "Stop" button results in ExportHandlerPtr being destroyed.
This must not happen while it's in use -- in particular during
ExportHandler::start_timespan() and ExportHandler::finish_timespan()
|
|
(Post-processing step should announce itself during an export)
|
|
|
|
|
|
|
|
Paul Davis was responsible for introducing almost all of this.
|
|
|
|
This allows TagLib to open the file and create a Tag object (see 2a0365c)
Tagging still fails later (taglib seek/SetFilePointer fails when writing)
|
|
|
|
[Reviewed by] Andriy Mishyn
|
|
cue2ddp definitely wants the bar code number *not* enclosed in quotes in
.cue files. Leave the quotes in .toc files: cdrdao definitely does need
these.
|
|
cdrdao seems to want the CATALOG field to be enclosed in double-quotes.
|
|
toc_escape_text() already encloses its result in ""s, and if album_artist
is empty, the resulting PERFORMER """" line makes cdrdao upset. Just remove
the extra quotes.
|
|
The tool mp4chaps by the following command
$ mp4chaps -i test.mp4
looks for the file "test.chapters.txt" to read the chapter marks
from. So removing the original file name extension (e.g. wav or flac)
makes it slightly more convenient for the user.
|
|
Players like vlc seem to stumble, if there es no chapter at the zero
position. As Ardour wouldn't let us put a track mark at the zero
position we can just use our header_func to put some kind of dummy intro
chapter. If a future version of Ardour allows track marks at zero, we
need to do a bit more work.
|
|
The mp4 file format supports chapter marks using the so called
mp4chaps format to enable chapter wise navigation in an mp4 file. The
format is like
hh:mm:ss.sss Chapter Title
This commit adds the ability to export those kind of chapter marks
along with TOC and CUE marks. The filename extension for the chapter
mark file is "chapters.txt". The format specification description is
"MP4ch".
|
|
Add "PERFORMER" to the exported .toc & .cue files based on the value of the
"album_artist" metadata field, and also use the value of the "album" field
for the TITLE if is set, falling back to the session or range name if it is
blank.
|
|
|