Paul Davis
ed67f465fb
fix JACK transport sync
...
key change: to sync with JACK always locate jack-position PLUS buffer-sized-rounded-worst_latency_preroll() ahead
2019-12-27 21:18:12 -07:00
Paul Davis
4637c49838
improve behavior of JACK transport sync callback.
...
Do not call transport actions directly, just report back to JACK
on transport status.
2019-11-15 16:06:04 -07:00
Paul Davis
30a1cffcdc
rename TransportFSM::FSMEvent to TransportFSM::Event (c/o the Department of Redundancy Department)
2019-09-20 09:38:17 -06:00
Paul Davis
61afcb8e2b
replace boost::msm - based FSM for transport with one written in "plain C++"
...
Still need to use boost::intrusive to managed qeued/deferred containers
2019-09-19 22:34:18 -06:00
Paul Davis
bd229936ec
add finite state machine to control/manage transport state
2019-09-17 18:26:03 -06:00
Robin Gareus
a22f918d9d
Update libardour GPL boilerplate and (C) from git log
2019-08-03 15:53:16 +02:00
Paul Davis
30b087ab3d
globally change all use of "frame" to refer to audio into "sample".
...
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-18 12:39:17 -04:00
Johannes Mueller
2770444b0c
Make Session::backend_sync_callback() emit Session::Located
...
If we sync to jackd AudioEngine::transport_frame() is not yet updated when
Session emits Located. Then the playhead ends up in an obsolete
position. Therefore we emit Session::Located() also from within
Session::backend_sync_callback() as that is called when AudioEngine is done
with the relocation.
2017-06-10 18:30:42 +02:00
Robin Gareus
61c7af141d
Clarify "frames" (video, timecode) vs "samples" (audio)
2016-12-08 12:45:44 +01:00
Paul Davis
cf52d6e4b4
enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h
2016-07-14 14:45:23 -04:00
nick_m
34c9ac9dd7
Tempo ramps - rename bbt_time() -> bbt_at_frame(), frame_time() -> frame_at_bbt()
2016-05-27 23:38:17 +10:00
Robin Gareus
888614b714
never ever change sample-rate saved with the session after creation.
2016-04-18 14:50:09 +02:00
Paul Davis
7aa46da32f
fix incorrect use of sizeof() in snprintf (function never actually used in ardour,but ... )
2013-11-05 10:17:22 -05:00
Paul Davis
960a47330a
switch from JACK_Slave to Engine_Slave
2013-09-19 17:34:23 -04:00
Paul Davis
a34d707175
split up session code that uses parts of the JACK API (timebase + session event handling) and connect it directly to the jack audiobackend
...
i've made the audiobackend call the session directly so that only one object (ARDOUR::Session) has a need for the JACK types
and only one .cc file (session_jack.cc) needs jack.h. having ARDOUR::AudioEngine act as an intermediary would be cleaner
conceptually but would end up causing two different ARDOUR objects to have jack types in their own API.
2013-08-09 12:15:37 -04:00
Paul Davis
5e0c6af406
jack_audiobackend.cc finally compiles
2013-07-30 17:48:57 -04:00
David Robillard
988224aaf9
Remove debug print about transport sync.
...
This situation occurs continuously when acting as Jack transport master, but
everything seems to work as expected, so we'll just assume it's fine until
proven otherwise.
git-svn-id: svn://localhost/ardour2/branches/3.0@14043 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-02-01 17:44:15 +00:00
Paul Davis
c9c94ca1c2
merge robin gareus' libltc into ardour source tree for convenience
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13665 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-14 16:18:47 +00:00
Robin Gareus
e1581242ca
implement TC offset for slave&generator.
...
Many related changes that require atomic update, mostly
because ClockOption slots changed:
* change offset config format to std:string (backwards compat - reads 0)
* make Timecode offset independent from fps
* sample_to_timecode() handle negative sample-num
* audio-clock fix entry and edit of negative numbers
* option editor:
- remove old global internal offset
- add slave & generator TC entry
- still needs UI cleanup, tooltops, maybe sep. tab..
* LTC & MTC slave& generator:
- cache offset
- subscribe to parameter changes
git-svn-id: svn://localhost/ardour2/branches/3.0@13485 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-13 20:29:28 +00:00
Robin Gareus
0b80f3391b
complete r13404 - use double for timecode fps.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13471 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-13 02:00:45 +00:00
Robin Gareus
4a17dd8fb6
move sample/timecode conversion to libtimecode.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13266 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-13 23:27:40 +00:00
Robin Gareus
617d291d1b
MTC: map between timecodes
...
allow external timecode device to supply timecode with
framerates other than ardour session's framerate.
also fix latency overcompensation. The slave is supposed to
provide transport time - and not audible frame time.
git-svn-id: svn://localhost/ardour2/branches/3.0@13250 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-12 01:08:32 +00:00
Robin Gareus
a9abe3b1e1
move TimecodeFormat to libtimecode
...
provide a way to convert any TimecodeFormat to float frame-rate,
not only the currently active timecode_foramt.
git-svn-id: svn://localhost/ardour2/branches/3.0@13249 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-12 01:08:29 +00:00
David Robillard
6fa6514cfd
Remove over 500 unnecessary includes (including 54 of session.h).
...
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-05-24 06:09:29 +00:00
Paul Davis
bfca00efd2
remove messages when tempo map is not available in RT context
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11175 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-06 20:29:18 +00:00
Paul Davis
355183f1ab
partially revert some of the recent work on tempo to reflect new understanding of the problem. behaviour is now believed to be totally correct but awaiting a bit more testing
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11171 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-06 16:39:40 +00:00
Paul Davis
63f77717d7
remove un-needed TempoMap::frame_time_rt()
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11165 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-05 15:56:14 +00:00
Paul Davis
e0b694f630
possibly fix deadlocking issues with tempo map by rearranging code and adding RT variants for a couple of functions that would normally try to rebuild the map when necessary; instead the variants throw an exception and the RT code that called them tries to do something reasonable
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11164 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-05 05:05:31 +00:00
Paul Davis
f135947606
intermediate commit as all tempo/meter stuff starts to walk the precompute Bars|Beats list. Still have ::round_to_beat_subdivision() to fix. haven't really done any thorough testing at this point, but basic stuff seems OK
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11131 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-02 23:32:33 +00:00
Paul Davis
e9b4f14668
rename Timecode::BBT_Time::ticks_per_beat to Timecode::BBT_Time::ticks_per_bar_division which is a more accurate and informative name. The number doesn't describe the smallest division of a "beat" (which is only defined contextually anyway), but rather the smallest division of the the divisions of a bar. If using a meter of 4/8, there are 4 divisions per bar, and we can divide each one into ticks_per_bar_division pieces; in a separate meter (section) of 3/8, there are 3 divisions per bar, each of which can be divided into ticks_per_bar_division_pieces.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11022 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-19 19:44:43 +00:00
Paul Davis
e0cf3b6354
more fun and games with meter and the tempo map: rename Meter::beats_per_bar() to Meter::divisions_per_bar() so that its clear(er) on what it is actually returning; use Meter::divisions_per_bar() in more (all?) places that need it; fix up dragging meter marks by removing the relevant meter section from the map while we drag; operator<< for some tempo-related objects
...
git-svn-id: svn://localhost/ardour2/branches/3.0@10995 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-13 02:46:36 +00:00
Paul Davis
75ede0dd6b
change Session::convert_to_frames_at() to Session::convert_to_frames() to reflect the fact that its argument is a position, not a duration; add Session::any_duration_to_frames(), which converts AnyTime representing a duration to frames; alter callers to use the right one of the two previously mentioned methods
...
git-svn-id: svn://localhost/ardour2/branches/3.0@8386 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-30 15:45:48 +00:00
Paul Davis
f09524b9d3
move ticks per beat from Meter to Timecode::BBT_Time, add new constructor for BBT_Time based on a double value; reduce BeatFramesConverted to 1 liners pending likely removal
...
git-svn-id: svn://localhost/ardour2/branches/3.0@8277 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-14 20:28:37 +00:00
David Robillard
4b861e6039
Rename libmusictime libtimecode (consistent with already used namespace "Timecode").
...
Move BBT_Time to libtimecode.
git-svn-id: svn://localhost/ardour2/branches/3.0@8271 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-14 18:13:37 +00:00
Carl Hetherington
73192bc1a7
Remove all use of nframes_t.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@8166 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-03 22:26:29 +00:00
Carl Hetherington
a5ea47ff0d
Re-expose timecode offset in the session option editor.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@8146 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-01 20:49:22 +00:00
Carl Hetherington
bce9a0aee7
Revert previous incorrect patch.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@8144 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-01 17:51:17 +00:00
Carl Hetherington
f500846fd4
Remove unused timecode offset stuff.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@8143 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-01 17:42:18 +00:00
Carl Hetherington
1cb36f5a81
Add column headings and length field to export timespan selector. Fixes #3518 .
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7968 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-11-04 20:37:46 +00:00
Paul Davis
10bdce85a0
megaopus commit: (1) add __STD_(LIMIT|FORMAT)_MACROS to command line flags for cc and c++ builds, remove them from source (2) add new Property::midi_data used by MidiRegion to signal that its (MIDI) contents have changed (3) massive switch from nframes_t to framepos_t/framecnt_t including removal of ARDOUR::max_frames (replaced by ARDOUR::max_frame{pos,cnt} (lots more to do but this set was driven by changes to the Diskstream API to use framepos_t
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7791 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-09-17 16:24:22 +00:00
Paul Davis
07d74fb21b
don't set jack transport position frame (violates JACK API); clean up other related code
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7723 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-31 16:01:42 +00:00
Paul Davis
c11c01ef20
remove a bunch of uses of long (mostly replaced by int32_t)
...
git-svn-id: svn://localhost/ardour2/branches/3.0@7472 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-22 16:08:11 +00:00
Paul Davis
d2426538ad
more changes to try to improve MTC handling even in slightly pathological cases
...
git-svn-id: svn://localhost/ardour2/branches/3.0@6245 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-01 13:24:08 +00:00
Paul Davis
ff122d0fe8
monster commit: transport mgmt changes from 2.X (omnibus edition); make slave use nframes64_t ; avoid crashes in Drags when commiting reversible transactions that do not exist
...
git-svn-id: svn://localhost/ardour2/branches/3.0@6034 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-11-08 16:28:21 +00:00
Paul Davis
68a3144344
new SnapBBT debug option, split out BBT_time and start work on BBT arithmetic framework. this will cause a full recompile, so find something else to do
...
git-svn-id: svn://localhost/ardour2/branches/3.0@5936 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-27 02:24:56 +00:00
Paul Davis
fa5aeb7892
change the use of "SMPTE" to "Timecode" to reflect the global economy and the end of american dominance on the world audio production stage
...
git-svn-id: svn://localhost/ardour2/branches/3.0@5924 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-26 14:38:58 +00:00
David Robillard
bb9cc45cd2
Strip trailing whitespace and fix other whitespace errors (e.g. space/tab mixing). Whitespace changes only.
...
Vimmers, try let c_space_errors = 1 in your .vimrc to highlight this kind of stuff in red. I don't know the emacs equivalent...
git-svn-id: svn://localhost/ardour2/branches/3.0@5773 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-14 16:10:01 +00:00
Carl Hetherington
b65f8073ba
Fix some unused parameter warnings.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@5403 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-07-21 15:55:17 +00:00
Paul Davis
88beef2e93
merge pre- and post-fader processor boxes; start removing Placement (not finished) ; add -DWAF_BUILD and use per-directory foobar-config.h to correctly pick up configure-time settings like HAVE_OGG ; check for libgiomm (part of upgrade to newer gtk stack); 32 bit marker reload fix from 2.X; audiounit IO config cache fix from 2.X; multi-add route template fix from 2.X; plugin GUI delete fix from 2.X; solo button labels are A or P for listen mode
...
git-svn-id: svn://localhost/ardour2/branches/3.0@5344 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-07-13 00:26:28 +00:00
Carl Hetherington
400d2a86aa
Remove preferences menu options that have been moved into one or other preferences dialog.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@5085 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-16 03:20:57 +00:00