13
0
Commit Graph

52 Commits

Author SHA1 Message Date
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
04551c39f6 use PortEngineSharedImpl with DummyAudioBackend 2020-04-02 19:45:31 -06:00
eee01188b4
Dummy: Engine-Pulse audio/midi generators
This produces synchronous events on Audio and MIDI ports.
One rvent per second, exactly at every second since engine-start.

MIDI: C-4 Note-on/off (1 sample long)
Audio: +1/-1 transition:
       +1 in sync with Note-on,
       -1 in sync with Note-off
2020-01-06 22:43:30 +01:00
47a62b2850
Update backend GPL boilerplate and (C) from git log 2019-08-03 15:53:16 +02:00
076e9fddd4
Remove ambiguous API implementation
* PortEngine::available() implementation
* AudioEngine::connected() wrapper

Eventually we may re-introduce PortEngine::available along
with a libardour internal port-engine.
2018-11-28 15:32:40 +01:00
e047b01aa2 add new API for retrieving port flags from backend 2018-10-17 14:11:37 -04:00
7e2c002ef6 Propagate Latency to backend/system ports (Dummy backend)
amend ab3889ff (which implements this for other backends)
2017-09-28 13:14:11 +02:00
30b087ab3d globally change all use of "frame" to refer to audio into "sample".
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
7258c6334d Namespace PBD::RingBuffer
class RingBuffer<> is a very generic name and should not pollute the
global namespace.
2017-09-16 16:37:29 +02:00
2b7c585dba Update backend API: read-only MIDI input buffers 2017-08-05 15:36:36 +02:00
7b7cc9ea6d Add a LTC generator to the dummy backend 2017-07-28 17:47:36 +02:00
8444837b71 properly sort port-names 2016-07-14 16:52:43 +02:00
b65cb37d24 add a MTC/sysex test sequence 2016-07-11 16:58:53 +02:00
ac923be7af fix port-sort order for good.
TODO find out how to make std::set::find() work with custom sort order,
as std::find may only be O(N) and not O(log (N)).
2016-07-08 21:37:42 +02:00
f84a7605d8 pre-sort port-names 2016-07-08 20:44:21 +02:00
9ad096b611 Dummy Backend evolution
- pretty port-names for Dummy generators: show frequency
- add 1/3 Octave spaced sine-wave generator
2016-05-21 22:38:39 +02:00
69f99ee184 I wanna be nasty, I wanna be cruel,..
Somme disastrous signal generators for QA.
2016-04-29 16:10:09 +02:00
d1874d4685 optimize port lookup, adding/removing/reconnecting routes
xxxAudioBackend::connected_to() is called O(N^2) when building the graph.
Mitigate this by using an O(log(N)) lookup.

This duplicates the storage (both set and map and both are kept in sync.
Changing this to a boost:bidirectional might be nice, before updating
other backends.
2016-04-24 18:26:39 +02:00
10140a8e68 implement pretty-name set-property for ALSA and Dummy 2016-04-17 18:22:21 +02:00
faa38a0d29 Use ARDOUR::DSPLoadCalculator in DummyBackend 2015-09-16 11:22:17 +10:00
4ef62a0d6d add dummy-backend speed-selection 2015-09-06 00:33:24 +02:00
659a8a26ae fix latency report, take buffersize changes into account. 2015-03-07 14:35:32 +01:00
bf1d12708d dummy: add square wave frequency sweep generators 2015-02-21 05:05:48 +01:00
582138f280 change Audio backend sample time methods to use a 64 bit timeline 2015-02-19 17:44:01 -05:00
f2ea059db3 DummyBackend: sync switch to freewheeling 2015-01-24 22:45:42 +01:00
4d370b8942 add a midi->audio dummy backend mode.
this allows to easily debug latency compensation
as well as visualize lost midi events.
2015-01-11 20:51:57 +01:00
f499f4cfd2 don't take temporary copy of MIDI sequence
fixes potential boost shared_ptr double free.
2014-12-31 03:19:00 +01:00
805d4dd731 add a MIDI loopback mode to the Dummy Backend 2014-12-30 22:55:14 +01:00
6e38d3777e add 'size' field to midi-sequences 2014-12-29 14:09:46 +01:00
9268d2e699 allow to auto-start dummy backend (needed for tests) 2014-12-03 18:24:56 +01:00
8525a0b258 add a Dummy Backend Loopback mode: 2014-10-11 14:47:35 +02:00
32e05fa640 update backends for API change in 8d59afb048 2014-10-01 03:24:54 +02:00
6dfb8c5c8a DummyBackend: add sine-sweep generators 2014-09-24 17:24:25 +02:00
3f9e916fe2 DummyBackend: two more audio-signal generators (useful for waveform check) 2014-09-24 01:26:51 +02:00
b355f01aa5 DummyBackend: MIDI Event Generators 2014-09-24 01:26:51 +02:00
dc318e6e74 ALSA|Dummy Backend: do as jack does:
when the backend is closed, unregister all ports.
2014-09-07 22:50:57 +02:00
4af088c251 DummyBackend: add Uniform White Noise Generator. 2014-07-11 18:05:59 +02:00
2d63489196 Dummy Backend: optimize random-number implementation 2014-07-08 18:40:51 +02:00
941701574e fix and optimize DummyBackend generators
* use Wavetable for sine
* lock generator (concurrency issue)
* always initialize variables
2014-07-08 18:40:51 +02:00
185f06e7f7 add signal generator modules to Dummy Backend. 2014-07-07 16:31:58 +02:00
07fafac36e don't let enumerated device list strings go out of scope. 2014-06-23 12:16:35 +02:00
fb51bdb892 statically allocate midi-options
fixes possible segfault when the data in the vector
goes out of scope due to RVO.
2014-06-23 11:56:58 +02:00
da912f7ed4 add AudioEngine API to configure individual MIDI devices 2014-06-13 11:47:51 +02:00
960a5347f0 ALSA & Dummy: implement port [un]registration_callback 2014-06-07 17:28:46 +02:00
2b9fa31241 DummyBackend: implement port connect_callback() 2014-05-25 00:21:44 +02:00
cf8399c1c1 DummyAudioBackend: prepare configurable number of midi ports 2014-05-15 01:18:16 +02:00
66559cd795 Add AudioBackend::info() method to retrieve AudioBackendInfo object
Goal is to be able to call AudioBackendInfo::already_configured() from the right place.
2014-05-01 09:14:25 -04:00
eaafc3394a DummyAudioBackend: implement /fake/ system ports 2014-04-29 13:32:13 +02:00
19e0383c3b DummyAudioBackend: NOOP, white-space, clarify variable name & casts 2014-04-29 13:32:13 +02:00
b945cda558 DummyAudioBackend: port-engine, midi-buffers and the rest of it 2014-04-28 23:00:40 +02:00