Age | Commit message (Collapse) | Author |
|
|
|
|
|
This will allow backends to return a more meaningful error message. Eventually
an error code could be returned by AudioEngine::start and the GUI can then use
AudioBackend::get_error_string to convert the error into a translated error
message directly, or it may be desirable to define its own error messages.
The reasons for not doing that right now is that this is a workable solution
with the least change required.
|
|
|
|
graph process-threads won't terminate properly while active.
|
|
[To be reviewed by] Paul Davis
|
|
lets keep Kyiv happy)
|
|
|
|
current Tracks code
|
|
required resources initialized during process callback handling
Conflicts:
libs/ardour/ardour/audioengine.h
libs/backends/wavesaudio/waves_audiobackend.cc
libs/pbd/pbd/pool.h
|
|
perspective of Ardour: signal sinks are outputs
|
|
|
|
The peak meter needs to withstand various test-signals
without visual jitter (in particular 1kHz sine) regardless
of settings (period-size, sample-rate, custom fall-off).
This needs to be done in sync (and not by a random non-rt
‘smoothing’ thread).
On the downside this voids the ‘visual smoothing’ particularly
with large buffersizes - but then again exactly this “always
fall-off no matter what [the next real data will be]” is the
problem.
One the upside, there’s one less high-frequency (100Hz) thread
(Yay!) PS. it probably never worked on windows, anyway.
Only peak-meters are affected by his change.
K-meters, IEC I/II and VU were never visually smoothed.
|
|
|
|
|
|
cycle_end() can write to invalid buffers.
|
|
1) Disambiguate 1.0 to GAIN_COEFF_UNITY, and 0.0 to GAIN_COEFF_ZERO
2) Add GAIN_COEFF_SMALL which replaces SMALL_SIGNAL (-140dB)
3) GAIN_COEFF_SMALL can used to avoid interpolating towards -inf on a db scale
4) GAIN_COEFF_SMALL is used to detect very small (denormal?) gains and memset to zero
|
|
|
|
|
|
number of seconds
|
|
removed copy/paste mistakes
Conflicts:
libs/ardour/audioengine.cc
libs/ardour/engine_state_controller.cc
libs/backends/wavesaudio/waves_audiobackend.cc
|
|
MIDI and Audio devices.
Made correct error handling for cases we didn't see before.
Removed redundant and experimental code I forgot to remove months ago.
Added debug output which will help in future testing
Conflicts:
libs/ardour/ardour/audioengine.h
libs/ardour/engine_state_controller.cc
libs/backends/wavesaudio/waves_midi_device.cc
|
|
critical device operations. Made device reset correctly when control panel is closed.
Conflicts:
gtk2_ardour/tracks_control_panel.logic.cc
libs/ardour/ardour/audioengine.h
libs/backends/wavesaudio/wavesapi/devicemanager/WCMRPortAudioDeviceManager.cpp
|
|
Fixes missing thread in Pool in session_process,
when switching backend threads (CoreAudio, Waves)
|
|
MidiPort::cycle_end() was never called, hence after the
first cycle all midi buffers were assumed to be
“mixed down” already.
this fixes
Midi-track 1 -[midi]-> Midi-track2 synth -[audio]-> out
on export.
|
|
|
|
emit signal(s) when engine is stopped due to backend
change.
|
|
backends - once instantiated - keep a reference to the engine.
when audioengine is destroyed, the backends must be deinstantiated.
This fixes various unit-test cases.
|
|
|
|
|
|
|
|
|
|
|
|
in libs/ardour and libs/backend/jack to fit with API changes
|
|
see: https://github.com/fundamental/stoat
eventually more functions should be annotated, and
a common header file should be used to
#define REALTIME __attribute__((annotate("realtime")))
|
|
|
|
|
|
|
|
|
|
When a new backend is selected, it is loaded to query
available devices etc. This effectively drops the current backend.
|
|
|
|
requires setup
Fixes issues when using JACK backend in combination with others, that prevented connecting to an existing JACK server.
|
|
It is not clear that ::drop_device() is part of the same semantic operation as ::stop(), so
we call them separatey
|
|
to it
|
|
|
|
messages to use it
|
|
merge windows branch to get changes from there
|
|
|
|
|
|
added to AudioBackend) and remove pause() from AudioEngine/AudioBackend APIs
|