Age | Commit message (Collapse) | Author |
|
There are no float <=> string conversions and they are all now performed using
PBD::to_string/string_to via XMLNode
|
|
|
|
* Start recording at preroll, trim region to skip preroll at rec-stop
* Keep old punch-in rec-at-preroll API for tape-tracks (later)
|
|
* rename: indicate that recording happens after preroll, punch-in
* move API into libardour: rec+roll (no separate setup, seek, roll APIs)
|
|
|
|
Actually, when duplicating a track with "share playlist", the current
playlist is owned by the new created track(orig-track-id). The sharing
mecanism is made by diskstreams pointing on the same(shared) playlist.
Since playlist now owned by the new track, selecting another playlist in
the original track "forgets" the playlist for this track.You can't
select the shared playlist anymore from the original track.
This commit adds a way to keep trace of shared playlist between tracks.
|
|
|
|
|
|
|
|
- for those not in the know, this series provides a way to
remove the temporal distortion introduced when using an
audio frame-based gui for music-locked objects.
In short, the gui uses an audio frame representation to move
objects. It displays the object using frame_at_beat(), quantizing
the time value to audio frames. This is fine until the user selects
that frame but expects it to be interpreted as a beat.
Thus beat_at_frame() would not produce the user-expected beat
(temporal quantization error of up to 0.5 audio samples).
This is one method of mapping audio time to music time accurately.
|
|
|
|
|
|
|
|
|
|
channels
|
|
when removing a connected port, IO::remove_port() emits
(IOChange::ConnectionsChanged | IOChange::ConfigurationChanged)
|
|
|
|
|
|
|
|
Paul Davis was responsible for introducing almost all of this.
|
|
on Windows)
|
|
|
|
AudioDiskstream::transport_looped
|
|
(old gcc has a built-in)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
disk buffer refill.
The size of the buffer now needs to reflect that we calculate read
refills in bytes, and if we are not using 32 bit float sample format
on disk, that can translate into > 1M samples.
|
|
|
|
Remove AudioDiskstream and AudioSource _working_buffers_size members, since they are no longer used
|
|
session loading
Conflicts:
libs/ardour/diskstream.cc
libs/ardour/session.cc
libs/ardour/session_state.cc
Conflicts:
libs/ardour/session.cc
|
|
When refilling playback buffer, try to fill it completely, or at least
using the next-lowest power-of-2 as the amount to read. When locating,
where we use do_refill_with_alloc(), only partially fill the buffer.
Work not yet finished, but possibly promising.
|
|
|
|
|
|
Due to the change to use a 64bit timeline (int64 as opposed
to previously [unsigned] pframes_t) many cases special to tape-tracks
no longer work.
e.g. region->length() can returns -1, rather than INT64_MAX.
which breaks ‘overlap’ in Evoral::Coverage. which in turn
breaks tape track’s use of ::find_next_region().
This commits begins the slow process to move away from relying
on integer overflow to wrap negative numbers for tape tracks and
restores basic functionality.
Still various edge cases pertaining tape tracks remain. particularly
when changing the session start-time and moving destructive regions.
|
|
|
|
later, when coming back to the loop)
Conflicts:
libs/ardour/ardour/session.h
libs/ardour/session.cc
libs/ardour/session_transport.cc
|
|
return an invalid ptr, so let's make sure we test for it)
Note 1: Potentially we could have the same issue with 'AutomationLine::nth()' (although the current code seems okay)
Note 2: This (specific) problem seems mostly to affect Mixbus3 when it tries to load an old (version2) session from Ardour2. Mixbus can mark certain IO ports as being 'unused'. While loading sessions, function 'ARDOUR::IO::ensure_ports_locked()' deletes any unused ports. But later, the function 'ARDOUR::IO::make_connections_2X()' was crashing while trying to connect those (now NULL) ports. This commit fixes that crash but there's some evidence that it might only have moved the problem elsewhere. The version2 sessions now open successfully - but an MSVC (Debug) build now crashes whilst closing them (the Release build however, is okay). Someone who's more familiar with the code than me should review the Mixbus3/Ardour2 loading procedure to make sure it's safe.
|
|
reading. Write chunk size should remain unchanged from before.
|
|
operation is undefined. C works on all platforms
|
|
|
|
Attempt to make mistakes much less likely in the future by statically requiring
caller to pass scoped locks where necessary.
|
|
(supports both normal pthreads usage and PTW32)
|
|
capture/playback buffers are too full/empty
|
|
Comments in various call sites of Evoral::coverage() marking things I think
are dubious (with XXX). Also straightened up the alignment of some ASCII
art in libs/ardour/diskstream.cc
|
|
user pressed stopped (2) captured regions should end where the playhead ends
|
|
|