Commit graph

15888 commits

Author SHA1 Message Date
Paul Davis
9e3efced72 remove debug output 2020-04-10 16:39:29 -06:00
Paul Davis
a2737feae6 fix mistaken geometrical-math for xfaded loops 2020-04-10 16:07:42 -06:00
Robin Gareus
58672bcaa2
Sync reset meter, report zero until the meter is actually reset 2020-04-10 23:50:06 +02:00
Paul Davis
24cce2e43d use cout not cerr for some temporary debugging messages 2020-04-10 15:30:26 -06:00
Paul Davis
92b59c1df9 more debug info for DiskReader::maybe_xfade_loop() 2020-04-10 14:18:24 -06:00
Paul Davis
8aae77b0eb somewhat change the condition used to identify when butler transport is done pre-export 2020-04-10 13:25:24 -06:00
Paul Davis
b953490bac fix typo/thinko in code that checks for result of waiting for butler transport work 2020-04-10 13:24:55 -06:00
Robin Gareus
247bd4d3d9
NO-OP: whitespace 2020-04-10 18:32:18 +02:00
Robin Gareus
ede0fd3ddf
Remove hardcoded 2^15 cairo-boundary, prefer window-area 2020-04-10 18:28:26 +02:00
Robin Gareus
2177462b73
NO-OP: consistent function and variable naming 2020-04-10 18:06:42 +02:00
Robin Gareus
bc4de874dc
NO-OP: whitespace 2020-04-10 18:06:42 +02:00
Robin Gareus
9bbedcb781
Remove unused function
Cairo::curve_to renders cubic Bézier splines, those are not
generally useful in a DAW context.

Canvas::Curve implements centripetal catmull-rom spline drawing
which can be used for fades and automation interpolation.
2020-04-10 18:06:42 +02:00
Robin Gareus
7bb8ca1e76
Interpolate poly-line with view-point #6481 2020-04-10 18:06:41 +02:00
Robin Gareus
6cc1e5e75d
NO-OP: whitespace 2020-04-10 18:06:39 +02:00
Paul Davis
1e996ca45f add port connect/add/remove callbacks to CoreAudio backend 2020-04-10 10:01:04 -06:00
Paul Davis
2a80832243 add port connect/add/remove callbacks to the ALSA backend
This fixes issues with new ports not (always) appearing in port matrices (and presumably
elsewhere too)
2020-04-10 09:53:44 -06:00
Robin Gareus
b943cec756
ALSA: allow to select different I/O devices
This adds a basic support to use multiple sound-cards, currently
limited to two devices: In/Out with shared settings.

Advanced setups still have to resort to using the ARDOUR_ALSA_EXT
environment variable
2020-04-10 05:01:33 +02:00
Robin Gareus
e8efd45c05
Fix ALSA slave-device half-duplex mode 2020-04-10 05:01:30 +02:00
Robin Gareus
78b29c55d3
Hotfix more export woes, prevent possible endless loop
This apparently happens on some Windows systems when exporting
a range starting at 00:00:00:00

I'm still hoping there's a better fix for these race-condition
issues, perhaps by kicking the TFSM...
2020-04-10 03:29:16 +02:00
Robin Gareus
c33c988adc
Revert "Another attempt at fixing multi-range export"
This reverts commit c5332ddd00.
Apparently this is not needed 4f3a95a1da is sufficient.
2020-04-10 02:24:08 +02:00
Robin Gareus
62e2ec49ce
ALSA: ignore systemic MIDI latencies during measurement 2020-04-10 01:43:11 +02:00
Paul Davis
5f1431aeda fix ArdourFader to use contrasting_text_color() for text, based on relevant bg color 2020-04-09 17:12:40 -06:00
Paul Davis
69b4c5108b ALSA backend: fix incorrect pointer cast (fixes #7998) 2020-04-09 15:40:23 -06:00
Paul Davis
230ef7596f websockets: shutdown UI event loop is server cannot start 2020-04-09 15:36:02 -06:00
Paul Davis
661609f2c0 change default port for websockets surface 2020-04-09 15:26:13 -06:00
Robin Gareus
18daf2c9b2
C++98 compatibility 2020-04-09 22:43:24 +02:00
Paul Davis
cd5eae3556 some potentially helpful but trivial comments 2020-04-09 14:01:47 -06:00
Robin Gareus
be023ef32d
Tweak websocket surface for use src-tree shared dir
When running from the src-tree, ardev_common.sh sets multiple
data-paths, to allow running ./ardev ./gtk2_ardour/ardev.
Pick the first one that contains a "web_surfaces" subfolder as
docroot.
2020-04-09 21:50:01 +02:00
Robin Gareus
61692ae1f8
Fix some Wunused-result 2020-04-09 21:26:12 +02:00
Luciano Iam
d694ee97c7
Update waf scripts 2020-04-09 20:56:46 +02:00
Luciano Iam
c946eb3132
Add classes for serving content over HTTP 2020-04-09 20:56:46 +02:00
Luciano Iam
40520a6dc6
Clean up and prepare for HTTP 2020-04-09 20:56:46 +02:00
Luciano Iam
3da0cf2a31
NO-OP update comments for header guard #endifs 2020-04-09 20:56:46 +02:00
Robin Gareus
c5332ddd00
Another attempt at fixing multi-range export
See also
  * 4f3a95a1da
  * cfd95340b1
  * 61e7f3176b
2020-04-09 20:25:25 +02:00
Robin Gareus
4f3a95a1da
Cont'd work on fixing export ranges
This picks up where cfd95340b1 left off.

The goal is to ensure that the butler has completed all
PostTransportStop related tasks and won't meddle with transport
after exporting has started.

Previously this could happen, because realtime_stop() queues
PostTransportStop and the butler is sommoned after every
export process cycle.

Since  61e7f3176b the butler keeps calling non_realtime_stop()
every time it is woken up, until TFSM comes around and unsets the
flag in the process callback.
2020-04-09 19:07:33 +02:00
Paul Davis
70f13a3ff3 use RCU to manage JACK backend's container of ports 2020-04-08 19:56:33 -06:00
Paul Davis
feff57d29a prefer initialization to assignment 2020-04-08 19:56:08 -06:00
Paul Davis
20b4b4ea90 remove debug output 2020-04-08 18:43:20 -06:00
Paul Davis
dd94d43c46 when renaming a port, remove the backend's port map entry based on the *old* name (not the new one) 2020-04-08 18:41:37 -06:00
Paul Davis
3188fe00aa fix return value 2020-04-08 18:13:13 -06:00
Robin Gareus
57118c2370
Prevent FX from producing sound after export
This cuts reverb tails and synth sounds after export.
Disabling freewheeling, continues normal processing where
export left off. This previously kept notes ringing, or reverbs
audible.
2020-04-09 01:28:04 +02:00
Robin Gareus
a6afb31245
Safeguard against libaudiographer exceptions 2020-04-09 00:01:44 +02:00
Robin Gareus
b8ce25fdab
Fix export-alignment with JACK -- #7916 2020-04-09 00:01:44 +02:00
Paul Davis
f32245c156 add required ::clear_ports() call to Dummy backend destructor 2020-04-08 14:55:31 -06:00
Robin Gareus
cfd95340b1
Fix exporting multiple range (MacOS)
The actual issue was introduced in 61e7f3176b:
Session::non_realtime_stop() no longer unsets PostTransportStop
(other changes from that commit are not relevant).

The real issue however is a race-condition.
So far this only seems to happen on MacOS, Coreaudio.

It seems that non_realtime_stop() is called in the butler-thread
after exporting has started, even though the butler has been
paused in wait_until_finished().

Perhaps Coreaudio thread switches causes TransportFSM to
reinitialize and scheduling the butler?

The use of `usleep()` makes this rather a workaround.
However it's sufficient for the coreaudio rt thread to run
at least once.
2020-04-08 15:59:30 +02:00
John Emmas
02473f058c Add/remove source(s) in our MSVC project (ardour_mackie) 2020-04-08 11:34:54 +01:00
Paul Davis
6a8863386a use an Unwinder to provde exception-safety 2020-04-08 00:28:30 -06:00
Paul Davis
78a66b7180 improved port cleanup as backend is destroyed 2020-04-07 23:26:51 -06:00
Paul Davis
ec9784764c better fix for port destruction 2020-04-07 23:21:48 -06:00
Paul Davis
09b51f3901 Revert "PortEngineSharedImpl callbacks should not be pure virtual"
This reverts commit a13ef36b3b.

A better fix is coming.
2020-04-07 23:21:06 -06:00