Commit graph

4949 commits

Author SHA1 Message Date
Paul Davis
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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Paul Davis
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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
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
Paul Davis
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
Paul Davis
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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Paul Davis
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
Paul Davis
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
Robin Gareus
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
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
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
Paul Davis
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
Paul Davis
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
Paul Davis
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
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
Paul Davis
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
Robin Gareus
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
Robin Gareus
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
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
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
Hans Baier
f8b7687f78 whitespace
git-svn-id: svn://localhost/ardour2/branches/3.0@13222 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-10 04:30:48 +00:00
Hans Baier
c3850cfb35 evoral/MIDIEvent: Whitespace cosmetics in header, make XML output work properly eg show the numbers instead of blanks
git-svn-id: svn://localhost/ardour2/branches/3.0@13221 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-09 08:33:27 +00:00