b46a7d43c2
Dummy Backend: add a MIDI Clock generator
2020-05-27 23:40:06 +02:00
feaf87d200
Dummy Backend: remove hardcoded MTC sequence
2020-05-12 01:49:45 +02:00
7c15ad099f
Dummy Backend: add a MTC generator
2020-05-12 01:49:41 +02:00
88fc77b4c0
Double dummy MTC sequence duration
2020-05-11 21:35:22 +02:00
4ff6fbe6b8
ALSA: Use same period for in+out #8075
...
Since the input is never flushed, capture latency is still
only one cycle.
2020-05-10 22:28:40 +02:00
abe23b5885
ALSA backend: ignore idempotent latency settings
2020-05-09 01:22:18 +02:00
c75b2355c1
Fix potential malloc(0) issue
2020-05-05 17:13:18 +02:00
27f26f5cfd
Cont'd work on ALSA nperiods (amend 2326fb163
)
2020-05-03 00:19:56 +02:00
2326fb1638
ALSA: only read/clear user-requested nperiods before snd_pcm_start
...
This should fix excessive latency with the RayDay that
has a fixed buffersize of 16384 samples.
2020-05-01 23:17:31 +02:00
8fa0049d28
ALSA: set start threshold to zero
2020-04-30 04:16:17 +02:00
11f68a02cd
Another step towards nperiod fixes for the RayDay
2020-04-30 02:05:14 +02:00
3a6a9cfa6c
Tweak ALSA nperiod setting, fallback to nearest
...
This is mainly for RME RayDAT that has a fixed buffersize of 16k:
dev_name : hw:HDSPMxc2f6c5,0
channels : 36
min_rate : 32000
max_rate : 192000
min_bufz : 16384
max_bufz : 16384
min_nper : 4
max_nper : 512
However nperiod configuration determines the effective latency
regardless.
This is similar to https://github.com/jackaudio/jack1/blob/master/drivers/alsa/alsa_driver.c#L476-L486
2020-04-29 23:56:24 +02:00
47bb331bfa
Allow to refresh ALSA device list - #8051
2020-04-29 02:19:38 +02:00
8e482ef0fb
Con't work on ALSA nperiod selection (see also d3d120fa
)
2020-04-28 17:56:17 +02:00
d3d120fa28
Prepare to allow using ALSA backend with nperiods > 3
...
This will still need an update for Alsa_pcmi::set_hwpar() capture
channel (which is fixed at 2, unless FRAG_NEAR is used).
2020-04-28 03:28:34 +02:00
13ed8da2bc
Add flag to allow ALSA backend to fall back to nearest avail. nperiods
2020-04-28 02:51:20 +02:00
3d166c7789
Consolidate stack-size and priority of rt-threads
2020-04-23 01:28:58 +02:00
daf9fe2550
Tweak engine startup, shorten initial silence timeout
...
see also 23baeee829
2020-04-16 16:47:08 +02:00
1e996ca45f
add port connect/add/remove callbacks to CoreAudio backend
2020-04-10 10:01:04 -06:00
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
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
e8efd45c05
Fix ALSA slave-device half-duplex mode
2020-04-10 05:01:30 +02:00
62e2ec49ce
ALSA: ignore systemic MIDI latencies during measurement
2020-04-10 01:43:11 +02:00
69b4c5108b
ALSA backend: fix incorrect pointer cast ( fixes #7998 )
2020-04-09 15:40:23 -06:00
70f13a3ff3
use RCU to manage JACK backend's container of ports
2020-04-08 19:56:33 -06:00
3188fe00aa
fix return value
2020-04-08 18:13:13 -06:00
f32245c156
add required ::clear_ports() call to Dummy backend destructor
2020-04-08 14:55:31 -06:00
78a66b7180
improved port cleanup as backend is destroyed
2020-04-07 23:26:51 -06:00
ede8b9995a
fix another explicit return val for ::get_port_by_name() if JACK has died
2020-04-07 18:57:24 -06:00
2591c81c1a
fix explicit return val for ::get_port_by_name() if JACK has died
2020-04-07 18:54:57 -06:00
32734ce53c
fix portaudio backend to use shared_ptr
2020-04-07 16:00:22 -06:00
ff41232d16
fix CoreAudio backend to use shared_ptr
2020-04-07 13:52:35 -06:00
d827f3fdae
fix up shared_ptr<> use in JACK backend
2020-04-07 13:23:49 -06:00
b9cb306e8b
use shared_ptr to manage backend port lifetimes (Pulse,ALSA,Dummy,JACK)
...
JACK is not yet finished.
Changes also include minor reformatting and a spelling correction (latecies to latencies)
2020-04-07 13:23:49 -06:00
6a6b3f2703
fix another iterator type
2020-04-02 19:45:31 -06:00
cb4997f4a4
fix iterator type
2020-04-02 19:45:31 -06:00
af69ac1285
use clear_ports()
2020-04-02 19:45:31 -06:00
6cdc245967
fix header name
2020-04-02 19:45:31 -06:00
7fc5a6c971
initial try (not compiled) of PortAudio backend using PortEngineSharedImpl
2020-04-02 19:45:31 -06:00
e5507f7072
use PortEngineSharedImpl with PulseAudio backend
2020-04-02 19:45:31 -06:00
04551c39f6
use PortEngineSharedImpl with DummyAudioBackend
2020-04-02 19:45:31 -06:00
30766c75e8
buildable version of CoreAudio backend using PortEngineSharedImpl
2020-04-02 19:45:31 -06:00
a31d3689bf
tentative changes to extend port engine shared impl to coreaudio
2020-04-02 19:45:31 -06:00
6c2e30b790
use new PortEngineSharedImpl in AlsaAudioBackend
2020-04-02 19:45:31 -06:00
9ac0d5b60f
add RCU to manage _ports and _portmap in AlsaAudioBackend
...
This is intended to prevent crashes when unregister_port() modifies the contents of these
two members at the same time that something else is iterating over them.
2020-04-02 19:45:31 -06:00
a8ff35accb
Reset DSP load on backend re-start and after freewheeling
2020-03-30 16:58:55 +02:00
f866ed6305
Remove duplicate calls
2020-03-30 15:20:54 +02:00
23baeee829
Tweak engine startup, initial silence
...
This can help when running with very low latency and the
initial process callback is [indirectly] expensive.
E.g. load a heavy session the a RPi4, initial setup can pull
in a lot of data, which blocks the bus.
In particular with the ALSA backend this can lead to poll timeout
which effectively stops the backend.
2020-03-30 15:20:54 +02:00
c365c6cdb2
Set thread-names (libs)
2020-03-29 14:56:22 +02:00
eea697b260
ALSA backend: try to recover from poll errors
...
When recover() successfully re-initializes the device,
processing can continue just like after an x-run.
This can happen during initial session load of "expensive"
sessions (in particular on slow systems, e.g. Raspberry Pi)
usually with synths. Worker thread pulls in many external
files in the background which blocks the bus for a long time.
resulting in a poll-timeout.
2020-03-28 22:06:12 +01:00