13
0
Commit Graph

2971 Commits

Author SHA1 Message Date
508c5eb5bd make monitor section an optional feature than can be added/removed as needed. this is a big commit, and breakage is possible. it has been moderately tested. this commit also locks the remote control ID of the master bus to 318 and the monitor section (if any) to 319. the numbers are based on MIDI Machine Control limits
git-svn-id: svn://localhost/ardour2/branches/3.0@11256 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-18 01:30:44 +00:00
4b95a7912a fix initial filling out of tempo bars|beats map after loading from XML by extending it (at least) to the last tempo/meter metric
git-svn-id: svn://localhost/ardour2/branches/3.0@11255 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-17 22:32:25 +00:00
Carl Hetherington
7fcfe672c4 Fix unutterably terrible thinko in previous commit.
git-svn-id: svn://localhost/ardour2/branches/3.0@11254 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-17 16:54:09 +00:00
09f5369fea add more debugging to track/spot/debug mis-use of BeatFramesConverter
git-svn-id: svn://localhost/ardour2/branches/3.0@11253 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-17 05:27:22 +00:00
e2729c12a8 fix bug with tempo computation where passed in positions or offsets are negative
git-svn-id: svn://localhost/ardour2/branches/3.0@11252 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-17 03:00:32 +00:00
Carl Hetherington
381346ba5f Try to fix previous commit on 32-bit.
git-svn-id: svn://localhost/ardour2/branches/3.0@11248 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-14 23:32:03 +00:00
Carl Hetherington
36ec03358f Remove thought-to-be-unnecessary setup of Delivery::_no_outs_cuz_we_no_monitor
at the start of each cycle; it is set up at the start of Route::process_output_buffers.


git-svn-id: svn://localhost/ardour2/branches/3.0@11247 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-14 23:31:55 +00:00
Carl Hetherington
b087721d8a Add some debug code to time things in the process
thread(s).


git-svn-id: svn://localhost/ardour2/branches/3.0@11246 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-14 22:02:59 +00:00
Carl Hetherington
d4bab8aeed Trim some lock / unlock cycles on the trigger mutex.
git-svn-id: svn://localhost/ardour2/branches/3.0@11245 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-14 22:02:26 +00:00
Carl Hetherington
6f795668b9 Remove unused variables.
git-svn-id: svn://localhost/ardour2/branches/3.0@11244 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-14 22:02:14 +00:00
Carl Hetherington
af5f57d807 Fix use of rdtsc on 64-bit (I think).
git-svn-id: svn://localhost/ardour2/branches/3.0@11243 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-14 22:02:07 +00:00
426cb79763 fix latency compensation for the click
git-svn-id: svn://localhost/ardour2/branches/3.0@11226 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-11 14:36:46 +00:00
Carl Hetherington
39d41e46c5 Fix previous commit.
git-svn-id: svn://localhost/ardour2/branches/3.0@11225 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-10 23:51:47 +00:00
Carl Hetherington
08826bc432 Remove unused _process_callback method.
git-svn-id: svn://localhost/ardour2/branches/3.0@11223 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-10 23:39:39 +00:00
0c68a56ffb remove some verbiage when creating audiofile sources
git-svn-id: svn://localhost/ardour2/branches/3.0@11213 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-10 01:57:33 +00:00
9b99745c5a fix auditioning (bystander casualty of monitoring fixes)
git-svn-id: svn://localhost/ardour2/branches/3.0@11212 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-09 22:25:18 +00:00
4306fc7aee change config dir on OS X to ~/Library/Preferences/Ardour3
git-svn-id: svn://localhost/ardour2/branches/3.0@11210 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-09 19:35:01 +00:00
34373c30f3 add MIDITrack specific ::monitoring_state() method
git-svn-id: svn://localhost/ardour2/branches/3.0@11207 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-09 16:43:30 +00:00
d0d6a2015f reduce Processor debug tag verbosity
git-svn-id: svn://localhost/ardour2/branches/3.0@11206 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-09 16:43:09 +00:00
5bda71718e remove some debug io from the Processors tag that is not really related to processors at all
git-svn-id: svn://localhost/ardour2/branches/3.0@11204 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-09 16:11:40 +00:00
5f1ff657c2 another AU-specific tempo fix
git-svn-id: svn://localhost/ardour2/branches/3.0@11203 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-09 16:10:59 +00:00
c57db81068 don't allow/create non-beat aligned tempo changes in response to meter changes. round the position of a tempo change the earlier beat that it would have followed according to its bar_offset value
git-svn-id: svn://localhost/ardour2/branches/3.0@11199 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-08 17:19:29 +00:00
985946b1a1 fix up a few zero-boundary condition errors in TempoMap
git-svn-id: svn://localhost/ardour2/branches/3.0@11196 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-08 16:53:34 +00:00
d3346d5466 tempo map debugging with dlp
git-svn-id: svn://localhost/ardour2/branches/3.0@11193 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-08 16:20:54 +00:00
6b297a9928 when moving tempo and metric sections around (or adding new ones), prevent the existence of two tempo markers within the same beat, as well as two meter markers within the same bar (though i think this was prevented already by snapping meter sections to beat=1; make round_to_beats() work when dir==0 ("true rounding"); a bit of code cleanup
git-svn-id: svn://localhost/ardour2/branches/3.0@11185 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-07 15:18:27 +00:00
ba00aba51c fix positioning of grid line after a non-beat aligned tempo change
git-svn-id: svn://localhost/ardour2/branches/3.0@11182 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-07 02:44:41 +00:00
6a154f9de6 a better fix for timestamping non-beat-aligned tempo changes
git-svn-id: svn://localhost/ardour2/branches/3.0@11181 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-07 00:16:28 +00:00
d64d4a767d remove extra TempoMap::dump() call
git-svn-id: svn://localhost/ardour2/branches/3.0@11180 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-06 22:56:58 +00:00
c7b7cb9a31 re-adjust computation of non-beat aligned tempo change
git-svn-id: svn://localhost/ardour2/branches/3.0@11179 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-06 22:50:34 +00:00
161c33a84f adjust computation of non-beat aligned tempo change, and let TempoMap::dump() be used "wherever"
git-svn-id: svn://localhost/ardour2/branches/3.0@11178 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-06 22:36:00 +00:00
28df3238c2 fix frame/beat walking to pass unit tests
git-svn-id: svn://localhost/ardour2/branches/3.0@11176 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-06 20:29:41 +00:00
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
16063123f3 twiddle with one test explanation to help paul reason about it
git-svn-id: svn://localhost/ardour2/branches/3.0@11174 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-06 20:28:40 +00:00
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
bdb15f9422 fix some more crashes with tempo map manipulations
git-svn-id: svn://localhost/ardour2/branches/3.0@11170 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-05 22:36:58 +00:00
c5205fe49f upgrade audiounit support to use the new tempomap API
git-svn-id: svn://localhost/ardour2/branches/3.0@11169 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-05 21:26:54 +00:00
9829a69549 fix over-zealous optimization in tempo map, caused crash
git-svn-id: svn://localhost/ardour2/branches/3.0@11168 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-05 21:24:26 +00:00
862299120c remove debugging output
git-svn-id: svn://localhost/ardour2/branches/3.0@11167 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-05 17:42:48 +00:00
3678b7c962 make extending the tempo map O(N) in the section to be filled in, rather than O(N) in the overall length of the map, and clean up some other details
git-svn-id: svn://localhost/ardour2/branches/3.0@11166 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-05 17:31:24 +00:00
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
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
Carl Hetherington
4e4306d125 Use Request::Pause rather than Request::Wait for
Butler::wait_until_finished. Otherwise the following bad
thing happens:

1.  The export code wants to call some Butler functions, so it calls
   calls Butler::wait_until_finished.
2.  This (used to) write Request::Wake into the butler's request pipe.
3.  Imagine that when this happens, the butler is already doing stuff.
4.  Meanwhile, Butler::wait_until_finished is waiting on Butler::paused.
5.  Some time later, the butler finishes its other stuff.
6.  Then it signals "paused".
7.  This causes Butler::wait_until_finished to return, so the export code
   thinks everything's ok and starts calling butler functions.
8.  Then the butler sees the Request::Wake, wakes up, and by unhappy coincidence
   ends up calling read on the same diskstream that the export code has just called.

This causes corruption of the Diskstream buffers, resulting in mantis #4283.

Using Request::Pause instead means that the butler will still wake in step #8,
but should_run will be false, so nothing much will happen and the export code
will be unimpeded.

For future reference, this bug was easiest to track down after adding a debugging
mutex to AudioDiskstream and then try-locking it in AudioDiskstream::_do_refill;
as far as I can see, _do_refill should never be called by two threads at the


git-svn-id: svn://localhost/ardour2/branches/3.0@11163 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-04 21:07:04 +00:00
d48fd2a679 try to clean up locking issues with TempoMap
git-svn-id: svn://localhost/ardour2/branches/3.0@11161 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-04 20:29:56 +00:00
f61a0d892c fix error in framepos_{plus,minus}_bbt() which miscounted beats while stepping through bars - stops dragged MIDI notes from ending up in the wrong place, and more
git-svn-id: svn://localhost/ardour2/branches/3.0@11159 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-04 18:48:32 +00:00
2858b0474e fix (?) tricky locking issues in the tempo map by adding a second lock and independently locking the metrics and the map itself
git-svn-id: svn://localhost/ardour2/branches/3.0@11157 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-04 17:55:42 +00:00
Carl Hetherington
b9a9d8d047 Use a few shared_ptrs to make things slightly neater.
git-svn-id: svn://localhost/ardour2/branches/3.0@11156 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-04 13:56:09 +00:00
365a8f7f14 implement TempoMap::framepos_minus_beats() using new bar|beat map structure, and fix accuracy of TempoMap::framepos_plus_bbt()
git-svn-id: svn://localhost/ardour2/branches/3.0@11155 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-04 03:27:55 +00:00
b1a33855ce use BBTPoint::is_bar() rather than ::beat == 1 ; implement TempoMap::framepos_plus_{beats,bbt}() with new map structure (not totally finished or accurate yet); prevent crash when dragging a marker to replace the initial tempo/meter markers
git-svn-id: svn://localhost/ardour2/branches/3.0@11154 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-04 02:49:01 +00:00
Carl Hetherington
10d9eaf0bd Remove unused variables.
git-svn-id: svn://localhost/ardour2/branches/3.0@11153 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-03 21:13:16 +00:00
Carl Hetherington
2bea7aaca5 Maybe fix initial run of tests with sources.
git-svn-id: svn://localhost/ardour2/branches/3.0@11152 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-03 21:13:11 +00:00