13
0
Commit Graph

4851 Commits

Author SHA1 Message Date
b47619c458 Deliver MIDI events to atom ports that support it, merged with transport events.
Eliminate delivery of non-MIDI events to Ardour MIDI buffers.
Fix the general mess of LV2 port flags and types.
Unify old MIDI API and new atom API MIDI stuff.

Making this work required changing the way we do LV2 MIDI slightly: instead of
BufferSet::get_lv2_midi doing the translation automatically, it returns an
empty buffer and the caller is responsible for actually filling it.  This
allows the LV2 code to iterate over the MIDI and transport changes in one go to
merge them into the buffer at the correct times.

Synth plugins using the new atom API now work and can get accurate transport
information along with the MIDI that drives them.


git-svn-id: svn://localhost/ardour2/branches/3.0@13522 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-18 04:35:31 +00:00
016b2dcd2c Gracefully ignore plugins with no ports, or invalid ports.
Remove crufty old LV2 debug printing stuff.


git-svn-id: svn://localhost/ardour2/branches/3.0@13520 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-18 01:48:28 +00:00
b3d63cc99b Better implementation of LV2 plugin<=>UI communication.
This might use a bit more memory than it could, but it works reliably for me
loading a large Ingen patch inside Ardour as an LV2 plugin, which I'm pretty
sure is by far the most high volume such communication out there.


git-svn-id: svn://localhost/ardour2/branches/3.0@13519 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-18 01:30:53 +00:00
1624f1d714 fix LTC frame offset for video standards
git-svn-id: svn://localhost/ardour2/branches/3.0@13517 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-18 00:29:50 +00:00
fe11de4381 fix LTC frame alignment
git-svn-id: svn://localhost/ardour2/branches/3.0@13516 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-18 00:24:06 +00:00
3b63eae41d update to libltc-1.1.0
add support for TV standard specific offset and
binary-group-flags

git-svn-id: svn://localhost/ardour2/branches/3.0@13514 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-17 20:15:41 +00:00
4c5ef5318e Sent precise transport information to LV2 plugins via events.
We send the full transport state (frame position, BBT time, transport speed,
meter) to the plugin:

 * At the start of a cycle whenever a relocate or transport speed change has
   occurred

 * On every occurrence of a meter change within a cycle

This means the plugin gets a sample accurate meter/tempo map, even if the meter
changes in the middle of a cycle.  However, this is not quite right yet: things
can get wonky if the tempo map is edited while rolling, since this code will
not detect the change and fail to update the plugin at the start of the cycle.

Other changes:

 * Factor out TempoMetric::set_metric() and simplify some tempo functions
 * Clean up LV2 URID stuff


git-svn-id: svn://localhost/ardour2/branches/3.0@13513 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-17 18:41:19 +00:00
dd78c6ed71 Tidy up tempo.h and add some documentation.
Fix some const violating casts.
No functional changes.

git-svn-id: svn://localhost/ardour2/branches/3.0@13512 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-16 22:56:47 +00:00
Carl Hetherington
0b2359098f Fix libardour test build.
git-svn-id: svn://localhost/ardour2/branches/3.0@13510 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-15 19:46:40 +00:00
a0f00d7d22 add a "guard" point after a write/touch automation insertion, preserving the shape of the later segment of the existing line
git-svn-id: svn://localhost/ardour2/branches/3.0@13507 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-15 16:22:43 +00:00
60f85cac42 provide the ability to enable + disable tooltips
git-svn-id: svn://localhost/ardour2/branches/3.0@13505 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-14 23:23:53 +00:00
ff4ea9346b add missing <<endmsg
git-svn-id: svn://localhost/ardour2/branches/3.0@13504 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-14 21:54:19 +00:00
8cfd91ac46 do not add 2.X search path if its already present in the search path
git-svn-id: svn://localhost/ardour2/branches/3.0@13503 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-14 21:54:04 +00:00
2860c2f5ce remove debug output
git-svn-id: svn://localhost/ardour2/branches/3.0@13501 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-14 20:38:48 +00:00
0ebcf50fbd use const static member instead of a magic number
git-svn-id: svn://localhost/ardour2/branches/3.0@13500 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-14 20:38:25 +00:00
bb9ab696b1 likely fixes for most remaining issues with data in automation/control lists, but more testing needed
git-svn-id: svn://localhost/ardour2/branches/3.0@13497 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-14 15:06:41 +00:00
4a64b67d93 change message displayed when there is an open file limit
git-svn-id: svn://localhost/ardour2/branches/3.0@13496 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-14 12:59:48 +00:00
be4c868734 put automation list into or out of Touch mode before adding an automation watch, so that ::touching() is correct when called from the add
git-svn-id: svn://localhost/ardour2/branches/3.0@13489 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-14 02:45:30 +00:00
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
3f35528f18 revert to a 0..2 scale for MIDI velocity control, so that we can increase MIDI note velocities as well as deccrease them (note: this will make the use of MIDI CC #7 a bit more complex)
git-svn-id: svn://localhost/ardour2/branches/3.0@13483 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-13 19:23:16 +00:00
c0bb288ff1 change handling of MIDI gain so that we present a linear fader spanning 0..127. this is based on the realization that we actually have no idea what the MIDI receiver will do with velocity and/or CC #7 values, and so trying to pretend that we can provide some kind of dB value in the display or the behaviour of the fader is completely wrong; ALSO: fix keyboard entry of fader levels for non EN locales (#5027)
git-svn-id: svn://localhost/ardour2/branches/3.0@13480 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-13 17:47:39 +00:00
55c7a3bf01 add timecode format parser
git-svn-id: svn://localhost/ardour2/branches/3.0@13479 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-13 16:14:25 +00:00
3fa84d0caa add alt-i as a binding in both the editor and mixer windows to toggle the state of MIDI input on the selected track(s); in the mixer this will also operate on the strip under the mouse. fixes #4838
git-svn-id: svn://localhost/ardour2/branches/3.0@13475 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-13 02:19:04 +00:00
b8ff65ea1b overhaul timecode calculations
in particular proper SMPTE12M drop-frame support
and subframe rounding.

git-svn-id: svn://localhost/ardour2/branches/3.0@13473 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-13 02:00:49 +00:00
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
4a6bf110e0 fix #5076 - we failed to actually find any existing snapshots because the path scanner was passing filename only, not full paths, to the filter function which used a Glib::file_test() on it (and failed)
git-svn-id: svn://localhost/ardour2/branches/3.0@13459 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-12 17:41:04 +00:00
2c1b2256b6 slave delta: move sign next to the digit
git-svn-id: svn://localhost/ardour2/branches/3.0@13457 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-12 16:49:18 +00:00
7253e8ff84 fix for #5078 - not considering unused playlists when computing region use count
git-svn-id: svn://localhost/ardour2/branches/3.0@13452 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-12 15:50:38 +00:00
8872844a60 add slave and generator Timecode offset (no UI yet)
So far only LTC slave, LTC generator and MTC slave.
MTC generator remains to be done.

git-svn-id: svn://localhost/ardour2/branches/3.0@13441 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-11 20:43:53 +00:00
e1166e3266 reintroduce space before delta "sample" lable
git-svn-id: svn://localhost/ardour2/branches/3.0@13435 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-11 16:27:27 +00:00
a57f4ead2d make Cairo{HV}Packer fetch bg information from a style file, rather than hard-code it
git-svn-id: svn://localhost/ardour2/branches/3.0@13433 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-11 16:03:37 +00:00
23f00184c8 first round of audio-clock font rendering update
git-svn-id: svn://localhost/ardour2/branches/3.0@13425 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-11 02:45:01 +00:00
8216e35c5b add a delta sign to the slave delta display.
git-svn-id: svn://localhost/ardour2/branches/3.0@13423 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-10 20:00:24 +00:00
cbc8c6b7cf update slave clocks -- to use long minus
git-svn-id: svn://localhost/ardour2/branches/3.0@13422 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-10 19:48:50 +00:00
c27dde889c make timecode offset work
git-svn-id: svn://localhost/ardour2/branches/3.0@13418 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-09 17:27:30 +00:00
ca7e72db62 move auditioner output configuration params from session to global config vars
git-svn-id: svn://localhost/ardour2/branches/3.0@13414 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-09 15:05:02 +00:00
5eeefbb3a5 Don't notify user if fps changes only affect speed but not counting.
also unify labels for 29..97XX and simplify fps display.

git-svn-id: svn://localhost/ardour2/branches/3.0@13412 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-09 14:24:31 +00:00
d4140367a3 LTC encoder: relax alignment constraint under some circumstances.
git-svn-id: svn://localhost/ardour2/branches/3.0@13406 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-09 07:48:11 +00:00
f2009ea777 LTC slave fix fps detection with 29.97000 option
git-svn-id: svn://localhost/ardour2/branches/3.0@13405 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-09 07:48:08 +00:00
e38ac84184 use double for timecode fps.
git-svn-id: svn://localhost/ardour2/branches/3.0@13404 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-09 07:48:06 +00:00
838a8a0137 LTC encoder: fix signal polarity
git-svn-id: svn://localhost/ardour2/branches/3.0@13403 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-09 07:48:04 +00:00
e0012e1b88 LTC encoder: clear user-bits
requires libltc >=1.0.3

git-svn-id: svn://localhost/ardour2/branches/3.0@13401 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-09 07:47:59 +00:00
67b836e6a3 MTC slave: 2997fudge option
git-svn-id: svn://localhost/ardour2/branches/3.0@13400 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-09 07:47:57 +00:00
8eae3009e1 fix LTC slave initial TC track values
git-svn-id: svn://localhost/ardour2/branches/3.0@13399 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-09 07:47:54 +00:00
8c9c0836a3 experimental option to support LTC 29.97000 fps generators.
also change 29.97ndf frame-rate to 30000/1001.

git-svn-id: svn://localhost/ardour2/branches/3.0@13395 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-07 23:02:11 +00:00
0e0c15833e new MTDM implementation from Fons' latest jack_delay implementation
git-svn-id: svn://localhost/ardour2/branches/3.0@13394 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-07 17:13:37 +00:00
a8cf2aa4f9 fix required-sample count for cubic interpolation.
I have not proved if the iterative process in
CubicInterpolation::interpolate() is identical to
(nframes * fabs(_actual_speed)), however ceil()
of it is empirically always larger.
Also, the cubic interpolation needs +2 samples.

Ardour3: Too close to call :)

git-svn-id: svn://localhost/ardour2/branches/3.0@13392 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-07 03:17:55 +00:00
9943fffdf8 LTC slave: suppress warning during shutdown
git-svn-id: svn://localhost/ardour2/branches/3.0@13390 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-05 22:55:19 +00:00
975cc6e5e6 NOOP - LTC generator replace double(a) with (double)a
git-svn-id: svn://localhost/ardour2/branches/3.0@13389 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-05 22:55:17 +00:00
b75a348e3a NOOP - LTC generator: bit-alignment add comments and made permanent
git-svn-id: svn://localhost/ardour2/branches/3.0@13388 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-05 22:55:13 +00:00
6035b92036 LTC generator: undo pull up/down adjustments
git-svn-id: svn://localhost/ardour2/branches/3.0@13387 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-05 22:55:06 +00:00
3f1b758491 LTC generator: adaptive signal filter
git-svn-id: svn://localhost/ardour2/branches/3.0@13386 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-05 22:55:04 +00:00
0a4f4026a9 experimental LTC sub-frame drift compensation for scope testing
git-svn-id: svn://localhost/ardour2/branches/3.0@13384 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-05 19:13:10 +00:00
fb630f622d LTC generator: filter the signal to reduce ringing.
git-svn-id: svn://localhost/ardour2/branches/3.0@13382 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-05 15:54:18 +00:00
18474a66c6 MTC slave: set initial framerates to current value.
git-svn-id: svn://localhost/ardour2/branches/3.0@13381 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-05 11:26:29 +00:00
a3a398242b tigten LTC Slave resolution.
The reason for this is that the LTC generator uses the slave's
resolution as watermark for max-drift, resync. A possible drawback:
session-process will force silent rolls if the delta is larger
than the resolution. LTC has a carrier freq of ~2kHz, choosing
half of that seems a good compromise.

git-svn-id: svn://localhost/ardour2/branches/3.0@13380 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-05 11:26:27 +00:00
0ede2d0088 LTC generator fix latency compensation.
thinko: the generated timecode is offset and
not the timestamp when to send it.

git-svn-id: svn://localhost/ardour2/branches/3.0@13377 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-04 06:31:49 +00:00
fd9ca8354e MTC slave: disable seekahead, implement own sync-locked
git-svn-id: svn://localhost/ardour2/branches/3.0@13376 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-04 06:31:46 +00:00
27803dc139 auto-detect JackVideoFrameOffset support
git-svn-id: svn://localhost/ardour2/branches/3.0@13375 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-02 16:32:28 +00:00
e344f57a30 fix LTC slave latency compensation typo
git-svn-id: svn://localhost/ardour2/branches/3.0@13374 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-02 14:04:13 +00:00
Sakari Bergen
c8a4bdc4a4 Create export temporary files in the export directory
git-svn-id: svn://localhost/ardour2/branches/3.0@13371 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-30 21:14:03 +00:00
Sakari Bergen
b5c5fc7a08 Fix chunker to handle end of input properly
git-svn-id: svn://localhost/ardour2/branches/3.0@13370 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-30 20:15:11 +00:00
a2de07a48f LTC slave speed deadzone works, remove #if 1
git-svn-id: svn://localhost/ardour2/branches/3.0@13369 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-30 09:50:37 +00:00
e7cc4d19ba LTC slave/gen latency compensation: jack2 got fixed, remove #ifdef
git-svn-id: svn://localhost/ardour2/branches/3.0@13368 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-30 09:50:35 +00:00
5253283911 LTC: break out xrun and latency callbacks.
prepare to call get_connected_latency_range() only if needed.

git-svn-id: svn://localhost/ardour2/branches/3.0@13366 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-29 17:29:34 +00:00
5f79e30d05 change is the only constant, again
git-svn-id: svn://localhost/ardour2/branches/3.0@13363 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-29 16:34:50 +00:00
b1ed782045 change is the only constant
git-svn-id: svn://localhost/ardour2/branches/3.0@13362 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-29 16:33:38 +00:00
1a096d5472 yet another fix for complaints from OS X gcc about constness
git-svn-id: svn://localhost/ardour2/branches/3.0@13361 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-29 16:16:07 +00:00
4a843b6603 another fix for complaints from OS X gcc about constness
git-svn-id: svn://localhost/ardour2/branches/3.0@13360 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-29 16:14:55 +00:00
aa13dec8f5 fix complaints from OS X gcc about constness
git-svn-id: svn://localhost/ardour2/branches/3.0@13359 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-29 16:13:33 +00:00
52423fa8c3 LTC (slave&gen): no reset on graph-change
fixes issues with transport stop/start
when making connections with jack1 while slaved to LTC

git-svn-id: svn://localhost/ardour2/branches/3.0@13356 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-28 10:48:06 +00:00
49f59709d8 do not do LTC port latency stuff during session deletion, which causes Session::ltc_rx_reset() to be called
git-svn-id: svn://localhost/ardour2/branches/3.0@13354 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-27 00:14:37 +00:00
3ddfc76224 LTC generator - reinit on xrun or graph-reorder
git-svn-id: svn://localhost/ardour2/branches/3.0@13351 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-26 11:39:13 +00:00
0047b87e3d LTC Slave - re-init on xrun or graph change
git-svn-id: svn://localhost/ardour2/branches/3.0@13350 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-26 11:39:10 +00:00
23eba2f4e2 MTC generator: fix assert when trying to send fps > 30fps
git-svn-id: svn://localhost/ardour2/branches/3.0@13349 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-26 03:11:18 +00:00
2bf3cf2f8c LTC generator checks itself if to send LTC or not.
git-svn-id: svn://localhost/ardour2/branches/3.0@13348 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-26 03:11:16 +00:00
c8d9895c68 LTC slave; consolidate FPS detection
git-svn-id: svn://localhost/ardour2/branches/3.0@13347 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-26 03:11:14 +00:00
ccb64dc1df LTC generator - prevent assert when framerate changes midway
git-svn-id: svn://localhost/ardour2/branches/3.0@13346 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-26 03:11:12 +00:00
6f5384879c prevent raptor attacks on Ardour's lead developer.
https://xkcd.com/292/

git-svn-id: svn://localhost/ardour2/branches/3.0@13345 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-26 03:11:10 +00:00
49b50d8e97 clean up consequences of using IO/Port/Buffer for LTC output, and in related work, move calls to Session::ltc_tx_send_time_code_for_cycle() into Session::no_roll() to cover most cases where we "do not roll"
git-svn-id: svn://localhost/ardour2/branches/3.0@13343 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-26 00:17:41 +00:00
974085807e fix some issues with previous commit that were not properly tested because HAVE_LTC was undefined in my test build
git-svn-id: svn://localhost/ardour2/branches/3.0@13342 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-25 20:21:17 +00:00
7b818e9a7f move ownership of LTC I/O ports to Session, and manage as IO objects
git-svn-id: svn://localhost/ardour2/branches/3.0@13341 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-25 19:46:23 +00:00
8cff3d0e60 LTC Slave: improve fps detection
and fix a few minor typos in the related doc

git-svn-id: svn://localhost/ardour2/branches/3.0@13338 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-25 17:07:59 +00:00
acb795980b mostly cosmetic changes to LTC generator
also enable latency compensation and disable LTC gen from MClk
(both of which should have been in prev commit, but commented here)

git-svn-id: svn://localhost/ardour2/branches/3.0@13335 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-24 18:33:30 +00:00
3d4bbcd65c save + restore OSC active+feedback state (#5023)
git-svn-id: svn://localhost/ardour2/branches/3.0@13329 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-24 00:29:11 +00:00
b7075c0989 fix sending static LTC
git-svn-id: svn://localhost/ardour2/branches/3.0@13327 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-24 00:04:49 +00:00
05b1f0c196 LTC generator update
git-svn-id: svn://localhost/ardour2/branches/3.0@13325 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-23 23:32:39 +00:00
6f15ec9618 LTC generator config
git-svn-id: svn://localhost/ardour2/branches/3.0@13324 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-23 23:32:36 +00:00
4600530d50 MTC slave - resolve drift issue
Close loop of quarter-frame DLL and
also re-enable the deadzone around speed 1.0.
DLL bandwidth have been slightly adjusted empirically.

git-svn-id: svn://localhost/ardour2/branches/3.0@13323 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-23 17:10:31 +00:00
93b13251fa fix backwards playback position calculation
git-svn-id: svn://localhost/ardour2/branches/3.0@13322 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-23 17:10:25 +00:00
35c6b52c36 probable fix for not being able to find audio files in a 2.X session that had "illegal" characters in the session name - adds the 2.X version of the search path to the audio file search path, if it exists
git-svn-id: svn://localhost/ardour2/branches/3.0@13321 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-23 14:52:26 +00:00
948fd683cd MTC slave - fix jumps on initialization
Do not re-position transport before first full frame has arrived.

git-svn-id: svn://localhost/ardour2/branches/3.0@13317 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-22 17:34:15 +00:00
ec94210a4d add LTC generator
git-svn-id: svn://localhost/ardour2/branches/3.0@13315 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-21 14:07:10 +00:00
4c13d205d4 LTC Slave cleanup
initialize audioengine's ltc_port - if HAVE_LTC is not set
trying to connect it would segfault.

LTC frameno is < 40 by (two bit frame-ten's)

git-svn-id: svn://localhost/ardour2/branches/3.0@13314 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-21 14:07:07 +00:00
7f8d2e32da LTC slave rewrite #2
git-svn-id: svn://localhost/ardour2/branches/3.0@13313 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-20 18:14:13 +00:00
2d9ed69fe2 change input/output button context menus for mixer strip to be non-additive: when selecting a new IO bundle, disconnect from any existing connections before connecting to the new one (fixes #5087)
git-svn-id: svn://localhost/ardour2/branches/3.0@13308 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-18 16:15:11 +00:00
aa3fe77d7f patch from robin to fix where the transport start occurs when exporting (#4098)
git-svn-id: svn://localhost/ardour2/branches/3.0@13305 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-17 22:33:02 +00:00
bb9f8aabc4 second half of forward-port of recent a2/mb control protocol changes, this time enabling the GUI to track protocol-active changes
git-svn-id: svn://localhost/ardour2/branches/3.0@13303 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-17 22:01:02 +00:00
fbc5571133 disable LTC,MTC speed deadzone for now.
wrong threshold causes jumps.

git-svn-id: svn://localhost/ardour2/branches/3.0@13302 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-17 17:11:32 +00:00
cf23bf29e7 decrease LTC flywheel time and adjust DLL settings
git-svn-id: svn://localhost/ardour2/branches/3.0@13301 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-17 15:57:55 +00:00
f6eeb47482 Add a 1% speed deadzone around speed=1.0 for LTC, MTC slaves
trade-off constant re-sampling to achieve sample-delta ~0,
with trying to avoid resampling if the delta is within
1% of the sample-rate.

git-svn-id: svn://localhost/ardour2/branches/3.0@13300 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-17 15:57:53 +00:00
c4cb4fa141 slave delta display
impl MClk slave, update format for LTC, MTC

negative delta: Ardour is behind,
positive delta: Ardour is ahead of ext clock.

git-svn-id: svn://localhost/ardour2/branches/3.0@13299 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-17 15:57:51 +00:00
cff8a65db2 forward part the backend part of the generic MIDI control fixes from mb2/a2
git-svn-id: svn://localhost/ardour2/branches/3.0@13297 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-17 14:36:40 +00:00
f4ae7cc709 LTC remove debug out, delta-time: flywheel display
git-svn-id: svn://localhost/ardour2/branches/3.0@13294 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-16 23:04:02 +00:00
99a177da84 LTC slave reworked
* detect LTC framerate
* detect LTC discontinuities
* use a DLL for flywheel sync (engine rate)
* don't use seekahead - internal resync

git-svn-id: svn://localhost/ardour2/branches/3.0@13291 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-16 20:53:15 +00:00
b40b353264 prepare for non-seekahead [LTC] slave. fix state machine
locate() will call realtime_stop which will reset the slave-state.

git-svn-id: svn://localhost/ardour2/branches/3.0@13290 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-16 20:53:12 +00:00
64b0efdf9f MTC Slave: allow >2 sec for re-sync, format delta
git-svn-id: svn://localhost/ardour2/branches/3.0@13289 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-16 20:53:10 +00:00
625ee55df0 don't do a pending save if slave is syncing.
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
2012-10-16 20:53:08 +00:00
Hans Baier
4c9fcd407c implement double click to ContentsRange on MidiScroomer
git-svn-id: svn://localhost/ardour2/branches/3.0@13284 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-16 09:19:19 +00:00
cb84e71caa create and manage a new config parameter that defines where LTC originates (still some tweaks to be done here and there)
git-svn-id: svn://localhost/ardour2/branches/3.0@13280 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-15 15:57:35 +00:00
6ab663342d MTC slave: timcode and delta formatting
git-svn-id: svn://localhost/ardour2/branches/3.0@13279 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-15 02:46:56 +00:00
6584ae1ce7 MTC slave fix reporting approx position
git-svn-id: svn://localhost/ardour2/branches/3.0@13277 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-14 23:23:57 +00:00
a6bc97add9 prepare reporting slave delta & MTC slave implementation
git-svn-id: svn://localhost/ardour2/branches/3.0@13276 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-14 23:23:53 +00:00
3769c060f2 use translatable strings for TC info,
and prepare delta display

git-svn-id: svn://localhost/ardour2/branches/3.0@13275 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-14 16:42:32 +00:00
bdcd6dba69 MTC,LTC print current timecodes in warning
git-svn-id: svn://localhost/ardour2/branches/3.0@13274 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-14 16:17:47 +00:00
f6b9572bfd LTC Slave, add support for variable framerates
git-svn-id: svn://localhost/ardour2/branches/3.0@13273 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-14 16:17:42 +00:00
96f035e629 formatting timecode: use a semicolon to indicate DF
git-svn-id: svn://localhost/ardour2/branches/3.0@13272 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-14 16:17:40 +00:00
a9c9d5072c MTC Slave: MIDI 30df -> A3 29.97df
MIDI only specifies the frame-count, not the rate.
in the vast majority of cases MIDI's
"Count to 30 use drop-frame" is 29.97df fps.

git-svn-id: svn://localhost/ardour2/branches/3.0@13271 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-14 16:17:37 +00:00
0e7654255c MTC Slave: fix return approx position.
git-svn-id: svn://localhost/ardour2/branches/3.0@13270 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-14 16:17:35 +00:00
e4e4b67ad4 timecode: make subframes unsigned int
git-svn-id: svn://localhost/ardour2/branches/3.0@13268 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-13 23:47:05 +00:00
f66d3f9b13 MTCslave - use new timecode API
git-svn-id: svn://localhost/ardour2/branches/3.0@13267 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-13 23:27:43 +00:00
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
13d23f15aa provide forgotten case for restoring Windows VST plugins
git-svn-id: svn://localhost/ardour2/branches/3.0@13265 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-13 00:31:46 +00:00
eaaca760c9 tweaks to be ready for more information timecode display in Timecode clock mode
git-svn-id: svn://localhost/ardour2/branches/3.0@13264 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-12 22:04:21 +00:00
5eeecf82a0 LTC slave - basic working version (hardcoded 25fps)
git-svn-id: svn://localhost/ardour2/branches/3.0@13263 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-12 21:28:08 +00:00
6de548bd7f MTC slave - return apparent_timecode_format
git-svn-id: svn://localhost/ardour2/branches/3.0@13262 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-12 21:28:05 +00:00
fd1ab7ad40 MTC Slave: handle locates (quick re-sync)
git-svn-id: svn://localhost/ardour2/branches/3.0@13259 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-12 17:04:20 +00:00
76eb2f23d6 basics for a TimecodeSlave parent class for MTC and LTC
git-svn-id: svn://localhost/ardour2/branches/3.0@13258 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-12 16:48:53 +00:00
5a8e83e0de move TC FPS up into status bar, use lower right of timecode audioclock mode for something ... TBDiscussed
git-svn-id: svn://localhost/ardour2/branches/3.0@13257 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-12 16:25:57 +00:00
bce3184ff5 skeleton framework for LTC-slave
git-svn-id: svn://localhost/ardour2/branches/3.0@13256 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-12 09:45:22 +00:00
Hans Baier
e3fb47d990 make sure routes instrument info initializes correctly
git-svn-id: svn://localhost/ardour2/branches/3.0@13254 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-12 09:25:20 +00:00
Hans Baier
6009ad3060 tidy
git-svn-id: svn://localhost/ardour2/branches/3.0@13253 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-12 09:24:31 +00:00
Hans Baier
e36c855464 issue 0005121: added comment to source. Sorry, last commit was for issue 0005121, not 0005120, copied from the wrong line :[
git-svn-id: svn://localhost/ardour2/branches/3.0@13252 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-12 06:04:06 +00:00
Hans Baier
2625fd9be8 fix issue 0005120: dont treat percussive mode differently than sustained mode except in GUI. Leaving out all note offs crashes LinuxSampler and totally drowns my Yamaha PSR-S900 by stealing all its available voices. Code is #ifdef-ed out until a more thorough discussion would conclude the removal of percussive mode from the MIDI model, which IMHO makes sense. I don't see any virtue in leaving out note offs since it only creates problems.
git-svn-id: svn://localhost/ardour2/branches/3.0@13251 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-12 05:58:47 +00:00
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
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
Hans Baier
f61f973f87 implement missing midi event filtering during recording
git-svn-id: svn://localhost/ardour2/branches/3.0@13243 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-11 05:39:40 +00:00
Hans Baier
ed05701ccb revert last commit, wrong place...
git-svn-id: svn://localhost/ardour2/branches/3.0@13242 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-11 04:31:57 +00:00
Hans Baier
d2c6b00bdd fix bug: capture buffer not filtered by track channel selector
git-svn-id: svn://localhost/ardour2/branches/3.0@13241 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-11 04:27:53 +00:00
Hans Baier
97c23848d7 implement deleting of sysex events
git-svn-id: svn://localhost/ardour2/branches/3.0@13238 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-11 03:22:17 +00:00
9707a0e827 move the external sync source selection tobe a global config parameter, not per-session, since this is likely a reflection of studio setup, h/w etc.; starting using real tooltips in the RC option editor
git-svn-id: svn://localhost/ardour2/branches/3.0@13237 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-11 03:10:18 +00:00
71b7326576 move timecode-is-clock-synced option to global configuration parameters, not per session
git-svn-id: svn://localhost/ardour2/branches/3.0@13235 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-10 22:56:21 +00:00
8007939839 add global config parameter timecode-sync-frame-rate to control behaviour when a timecode slave (MTC, LTC) has a different frame rate than an Ardour session
git-svn-id: svn://localhost/ardour2/branches/3.0@13233 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-10 21:07:24 +00:00
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
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
2b1cc9656e remove incorrect and unnecessary template class declaration from Evoral (added recently)
git-svn-id: svn://localhost/ardour2/branches/3.0@13230 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-10 15:42:47 +00:00
8a6b0ab072 debug msg - varispeed recording
git-svn-id: svn://localhost/ardour2/branches/3.0@13228 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-10 14:03:19 +00:00
29825092ae ignore slave/engine time-delta when recording.
git-svn-id: svn://localhost/ardour2/branches/3.0@13227 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-10 14:03:18 +00:00
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
Hans Baier
3f5c6f8190 enable and extend EVORAL_MIDI_XML. Useful for Debugging. Any objections?
git-svn-id: svn://localhost/ardour2/branches/3.0@13223 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-10 04:31:59 +00:00