Age | Commit message (Collapse) | Author |
|
|
|
auto-return to last roll location or nothing
|
|
ardour-merge-from-tracks (just the libs/* section)
|
|
to match Tracks' logic
|
|
|
|
changes); remove debug output
|
|
add missing set_track_loop() call for playhead priority
|
|
Conflicts:
libs/ardour/ardour/session.h
libs/ardour/ardour/types.h
libs/ardour/enums.cc
libs/ardour/session_transport.cc
system_config
|
|
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.
|
|
|
|
MTC source is activated
This is required for the case when we leave Tracks ready for record and then activate MTC source.
|
|
The general design here is wrong, because it should be more general and cover all possible sync sources.
But it does work, it is used in Tracks, and my attempt to do it correctly revealed the problem to be
an EXTREMELY difficult design issue (as in: two weeks of work on it did not really solve the
fundamental issues with slave design).
So, here it is for now, c/o Grygorii
|
|
dropped to 0 outside, it's illegal. It may cause "should_do_transport_work" go below 0 and make butler to round for a very-very long time (hang and possible lock of other threads) before stop() call returns.
_butler->stop () is synchronous, so its safe to wait in this call for butler to finish it's work.
[Reviewed by] PDavis
|
|
|
|
realtime processor re-ordering does not require
a route resort nor latency compensation update.
(which were done as callback in same thread)
|
|
|
|
Session::unset_play_loop() needed to be a no-op if play loop was
already false, and this was exacerbated now that it potentially
schedules butler transport work.
|
|
Session::locate()
|
|
[Reviewed by] REQUIRED REVIEW FROM PAUL DAVIS
|
|
Try to make sure that we appropriately reset and refill track
buffers whenever we enter/leave loop playback,and whenever
we locate. In addition, if we start playing somewhere other
than the loop range while loop is enabled, then the first
time we hit the loop end, set up the track buffers.
Conflicts:
libs/ardour/session_transport.cc
|
|
Something, somewhere has to tell tracks to refill their buffers with
the special loop-data-only magic
|
|
later, when coming back to the loop)
Conflicts:
libs/ardour/ardour/session.h
libs/ardour/session.cc
libs/ardour/session_transport.cc
|
|
save itself.
This prevents the possibility of cross-thread calls in the GUI when it adds its state
to the session via extra XML
|
|
|
|
|
|
user pressed stopped (2) captured regions should end where the playhead ends
|
|
|
|
is follow-edits. when you select a range, the playhead should jump to the start of the range and begin to play the selection. BUT (unlike previous implementation) if the user wants to relocate the playhead, then that should be allowed. The user should always remain in charge of the playhead location. NOTE: your previous config setting will be invalidated. You must re-save a session to overwrite with the new config variable
|
|
modifying the range with keyboard commands.
|
|
|
|
|
|
the "play loop" button.
If enabled, then the button simply changes the behaviour of the "play" button rather than actually starting playback. If disabled
transport behaviour should be unchanged from before.
|
|
|
|
This makes the responsibilities and ownership of non-Route related MIDI ports
more clear, and removes a few wierd bits of code. It also ensures that open/close/open
on the same session will retain connections for those MIDI ports
|
|
from the engine.
Also, add note about threading oddities with send_mmc_locate() being called from ::non_realtime_stop() which gets
called from a *realtime* context.
|
|
|
|
|
|
- Transport debug output (tracing where transport_frame
is updated
|
|
|
|
|
|
Route::Auditioner. this has been the meaning of these terms for years now and it would be better to make it explicit
|
|
git-svn-id: svn://localhost/ardour2/branches/3.0@13850 d708f5d6-7413-0410-9779-e7cbd77b26cf
|
|
speed is reversed (should fix #5264)
git-svn-id: svn://localhost/ardour2/branches/3.0@13848 d708f5d6-7413-0410-9779-e7cbd77b26cf
|
|
git-svn-id: svn://localhost/ardour2/branches/3.0@13747 d708f5d6-7413-0410-9779-e7cbd77b26cf
|
|
incomplete)"
This reverts commit 13708 -- because it's the wrong approach to fix this.
git-svn-id: svn://localhost/ardour2/branches/3.0@13713 d708f5d6-7413-0410-9779-e7cbd77b26cf
|
|
should fix #5221
git-svn-id: svn://localhost/ardour2/branches/3.0@13708 d708f5d6-7413-0410-9779-e7cbd77b26cf
|
|
git-svn-id: svn://localhost/ardour2/branches/3.0@13665 d708f5d6-7413-0410-9779-e7cbd77b26cf
|
|
13:00 < rgareus> When a slave does initial sync, it sets speed=0, pos=XXX (required by session_process.cc state-machine to init)
13:01 < rgareus> This triggers a locate(roll=false) which in turn triggers a realtime_stop() which in turn triggers a non_realtime_stop().
[..]
13:06 < rgareus> las: the problem I have with non_realtime_stop() is that it does save a pending state IFF get_record_enabled() is true.
13:06 < rgareus> The save can take ages (seconds), which will void the initial sync of the slave.
13:07 < rgareus> The slave enters a live-lock: sync, save, re-sync, save...
13:07 < las> rgareus: understood
13:07 < rgareus> las: I propose to workaround this: only save pending state if there is no slave or the slave is not locked.
13:07 < las> rgareus: another reason why recording + slave == bad idea :(
13:07 < las> rgareus: but yes, that sounds fine to me
13:07 < rgareus> AFICT this is not harmful. It only affects pre-record settings.
13:07 < rgareus> 'did_record' is used to save a full state after each recording.
git-svn-id: svn://localhost/ardour2/branches/3.0@13288 d708f5d6-7413-0410-9779-e7cbd77b26cf
|
|
git-svn-id: svn://localhost/ardour2/branches/3.0@13264 d708f5d6-7413-0410-9779-e7cbd77b26cf
|