Commit graph

115 commits

Author SHA1 Message Date
Robin Gareus
0441bc140e MTC slave, don't touch position if no MTC was received
git-svn-id: svn://localhost/ardour2/branches/3.0@13232 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-10 20:37:59 +00:00
Robin Gareus
915797fd23 MTC-slave: print error if framerate mismatch
git-svn-id: svn://localhost/ardour2/branches/3.0@13231 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-10 20:37:56 +00:00
Robin Gareus
a2b4128035 fix and improve MTC-slave
- MTC-speed average (MIDI thread)
   * base timing on quarter-frames
   * replace hann-window average with a DLL
 - MTC/engine alignment
   * replace 1st order PI-controller with 2nd order DLL

The 2nd DLL is needed because the jack-process callback effectively
quantizes the transport-speed to integer audio-frames (speed * nframes).
This leaves a delta on every cycle because the remainder from previous
cycles is not compensated for.

Theoretically it is possible to merge the two DLLs into one.
However, with callbacks coming from by two independent threads
it is cleaner to track the MTC and JACK engine-alignment speeds
independently.

git-svn-id: svn://localhost/ardour2/branches/3.0@13226 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-10 14:03:15 +00:00
Paul Davis
d29c5cdfb0 drop connections to incoming MIDI signals before deleting MTC Slave object
git-svn-id: svn://localhost/ardour2/branches/3.0@13208 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-04 20:54:08 +00:00
Paul Davis
3cd8138a41 convert from Glib:: to Glib::Threads for all thread-related API
git-svn-id: svn://localhost/ardour2/branches/3.0@13084 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-25 17:48:55 +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
David Robillard
a473d630eb Fix broken whitespace. I'd apologize for the compile times if it was my fault :D
git-svn-id: svn://localhost/ardour2/branches/3.0@9654 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-01 16:50:12 +00:00
Paul Davis
8849cb4287 add new concept for managing alignment style (AlignChoice); switch to using worst_playback_latency() just about everywhere we were using worst_output_latency() - the former includes plugin latency. answer appears to break earlier fixes to alignment, but is semantically right, so plan to investigate in another 8 hours or so
git-svn-id: svn://localhost/ardour2/branches/3.0@9112 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-09 05:19:44 +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
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
Paul Davis
ede4ecbb00 megaopus patch #2 for today: remove nframes64_t and sframes_t from source
git-svn-id: svn://localhost/ardour2/branches/3.0@7792 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-09-17 18:20:37 +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
Carl Hetherington
4885f29be1 Trim midi++ port code to either do in or out, but not both in the same object.
git-svn-id: svn://localhost/ardour2/branches/3.0@7391 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-08 01:00:46 +00:00
Paul Davis
3a048e1d6c new fade in/fade out colors from chrisg
git-svn-id: svn://localhost/ardour2/branches/3.0@7272 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-17 22:20:37 +00:00
Paul Davis
a1e0dc13df tweak Stateful/StatefulDiffCommand changes so that SessionObject's actually get a name; make StatefulDiffCommand use a weak_ptr, not a raw ptr; use .val() rather than .get() to avoid confusion with boost:: smart ptr method of the same name
git-svn-id: svn://localhost/ardour2/branches/3.0@6678 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-02-11 23:10:29 +00:00
Paul Davis
47018a3bd1 some fixes/tweaks for MTC slaving, some untested
git-svn-id: svn://localhost/ardour2/branches/3.0@6676 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-02-11 18:00:50 +00:00
Paul Davis
d978f102f5 cleanup of mtc slave code from debugging
git-svn-id: svn://localhost/ardour2/branches/3.0@6581 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-01-28 00:21:06 +00:00
Paul Davis
4dc34d5fd9 something for chris g. to try when he gets up before me
git-svn-id: svn://localhost/ardour2/branches/3.0@6573 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-01-27 03:26:41 +00:00
Paul Davis
e24148d9d7 more MTC debugging
git-svn-id: svn://localhost/ardour2/branches/3.0@6572 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-01-27 02:22:08 +00:00
Paul Davis
d6ec6b616b more MTC debugging
git-svn-id: svn://localhost/ardour2/branches/3.0@6571 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-01-27 02:07:47 +00:00
Paul Davis
4ceac63116 more MTC debugging
git-svn-id: svn://localhost/ardour2/branches/3.0@6570 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-01-27 01:58:21 +00:00
Paul Davis
b4a395e8cc more MTC debugging
git-svn-id: svn://localhost/ardour2/branches/3.0@6569 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-01-27 01:55:29 +00:00
Paul Davis
7d96960b16 more MTC debugging
git-svn-id: svn://localhost/ardour2/branches/3.0@6568 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-01-27 01:43:36 +00:00
Paul Davis
1489729ff0 more MTC debugging
git-svn-id: svn://localhost/ardour2/branches/3.0@6567 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-01-27 01:38:05 +00:00
Paul Davis
b7e24583d9 more MTC debugging
git-svn-id: svn://localhost/ardour2/branches/3.0@6566 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-01-27 00:53:34 +00:00
Paul Davis
c42d0a5fa4 more MTC debugging
git-svn-id: svn://localhost/ardour2/branches/3.0@6565 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-01-27 00:34:04 +00:00
Paul Davis
acaf98ce38 more MTC debugging
git-svn-id: svn://localhost/ardour2/branches/3.0@6564 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-01-27 00:20:15 +00:00
Paul Davis
f450df300c fully implement and deploy explicit x-thread signal connection syntax (testing comes next)
git-svn-id: svn://localhost/ardour2/branches/3.0@6379 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-21 18:23:07 +00:00
Paul Davis
aae367b63c use new syntax for connecting to backend signals that enforces explicit connection scope, plus a few other related matters
git-svn-id: svn://localhost/ardour2/branches/3.0@6376 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-19 20:26:31 +00:00
Paul Davis
f6fdd8dcbf switch to using boost::signals2 instead of sigc++, at least for libardour. not finished yet, but compiles, loads sessions, records and can close a session without a crash
git-svn-id: svn://localhost/ardour2/branches/3.0@6372 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-17 18:24:23 +00:00
Paul Davis
8687895abb remove using namespace sigc everywhere to ensure clarity over which bind/mem_fun is being used; make Config::map_parameters take a boost::function rather than a sigc::slot ; continue debugging crash caused by regionviews not tracking their Region's lifetime
git-svn-id: svn://localhost/ardour2/branches/3.0@6357 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-12 15:02:15 +00:00
Paul Davis
61cade6d59 drastic, deep and wide changes to make RouteGroup use boost::shared_ptr<Route> and boost::shared_ptr<RouteList> to better fit into emerging framework for "RT operations" ; torben's changes to MTC slaving code (sorry for bundling)
git-svn-id: svn://localhost/ardour2/branches/3.0@6334 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-10 03:25:32 +00:00
Paul Davis
03c74e45a8 more tweaks to MTC slave code (still not functional), including removing race conditions when resetting slave state; make Session catch on its own saved preferences, which has not been happening; make switching sync sources avoid race conditions
git-svn-id: svn://localhost/ardour2/branches/3.0@6269 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-03 18:44:06 +00:00
Paul Davis
9dddffcc8f more MTC stuff, including toggleable use of torben's PI controller
git-svn-id: svn://localhost/ardour2/branches/3.0@6265 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-02 21:26:26 +00:00
Paul Davis
9e9cb3bf31 adjust to use timestamped MTC messages
git-svn-id: svn://localhost/ardour2/branches/3.0@6255 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-01 18:32:29 +00:00
Paul Davis
194ee5d9ba continue with MTC debugging
git-svn-id: svn://localhost/ardour2/branches/3.0@6251 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-01 16:16:22 +00:00
Paul Davis
50131b3751 continue with MTC debugging
git-svn-id: svn://localhost/ardour2/branches/3.0@6250 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-01 15:46:25 +00:00
Paul Davis
35d86425ba continue with MTC debugging
git-svn-id: svn://localhost/ardour2/branches/3.0@6248 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-01 15:30:02 +00:00
Paul Davis
f233c4738c continue with MTC debugging
git-svn-id: svn://localhost/ardour2/branches/3.0@6247 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-01 15:16: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
e374518ca9 continue with MTC debugging
git-svn-id: svn://localhost/ardour2/branches/3.0@6236 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-01 02:19:31 +00:00
Paul Davis
1614402e50 continue with MTC debugging
git-svn-id: svn://localhost/ardour2/branches/3.0@6235 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-01 02:04:10 +00:00
Paul Davis
929f9a101a continue with MTC debugging
git-svn-id: svn://localhost/ardour2/branches/3.0@6234 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-01 01:50:47 +00:00
Paul Davis
2ad2792bcb rework MTC slave so that speed is computed in the MIDI I/O context, not process() context
git-svn-id: svn://localhost/ardour2/branches/3.0@6233 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-01 01:08:56 +00:00
Paul Davis
c925d32474 more debugging tweaks
git-svn-id: svn://localhost/ardour2/branches/3.0@6223 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-11-30 18:49:02 +00:00
Paul Davis
724f87a984 more debugging tweaks
git-svn-id: svn://localhost/ardour2/branches/3.0@6222 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-11-30 18:32:59 +00:00
Paul Davis
b7341e0026 debug flag for MTC; make ardour/timecode.h simply include the "authoritative" one in libs/surfaces/control_protocol
git-svn-id: svn://localhost/ardour2/branches/3.0@6209 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-11-29 22:08:18 +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
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