Age | Commit message (Collapse) | Author |
|
|
|
mechanism away from a 64bit integer and toward std::bitset.
Clean up a few minor related PBD::DEBUG issues along the way
|
|
The integer steps min/max are inclusive.
e.g the integer range -1 to +1 has three possible values (not two).
|
|
Used spaces instead of tabs for whitespace consistancy with rest of header
|
|
|
|
Currently we don't do anything special on layering prefs change
(relayer only occurs when each playlist is first edited). The idea here is
that "undo" is still available to restore previous layering in case of any
surprises.
|
|
|
|
|
|
|
|
|
|
perspective of Ardour: signal sinks are outputs
|
|
|
|
marginal improvement on x86_64 for zero, 5-10% for tiny numbers;
100% time improvement (half the time) on i686 with zero.
#/bin/sh
g++ -x c++ -O3 -ffast-math -o /tmp/a.out - << EOF
#include <stdio.h>
#include <stdlib.h>
#include <cmath>
#include <limits>
static inline float accurate_coefficient_to_dB (float coeff) {
#if 1 // try me
if (coeff < 1e-15) return -std::numeric_limits<float>::infinity();
#endif
return 20.0f * log10f (coeff);
}
int main (int argc, char **argv) {
long long int i;
float f = 0;
if (argc < 3) return -1;
long long int end = atoll (argv[1]);
for (i = 0; i < end; ++i) {
f += accurate_coefficient_to_dB (atof (argv[2]));
}
printf ("%f\n",f);
return 0;
}
EOF
time /tmp/a.out 100000000000 0.0
time /tmp/a.out 100000000000 0.0
time /tmp/a.out 100000000000 0.0
|
|
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.
|
|
The processor-box GUI only allows to move the
custom meter position between trim and main_out/panner.
Previously an initial switch from In -> custom or Out -> Custom
left the meter at a position that can otherwise not be reached
by manually repositioning the custom meter.
|
|
…to tell the UI to not redraw.
|
|
|
|
This works around abysmal performance (~.15ms) of
boost::function and boost::bind (in PBD::Signal).
The overall load is probably higher but the realtime
thread remains unaffected.
|
|
realtime processor re-ordering does not require
a route resort nor latency compensation update.
(which were done as callback in same thread)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fixes use of overloaded operator '==' is ambiguous (with operand types 'MPControl<gain_t>' and 'double') in previous commit.
|
|
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
|
|
The mp4 file format supports chapter marks using the so called
mp4chaps format to enable chapter wise navigation in an mp4 file. The
format is like
hh:mm:ss.sss Chapter Title
This commit adds the ability to export those kind of chapter marks
along with TOC and CUE marks. The filename extension for the chapter
mark file is "chapters.txt". The format specification description is
"MP4ch".
|
|
Copy the 'Cut time' code from Mixbus, making a few obvious fixes to work in
A3 (e.g. nframes_t => framepos_t / framecnt_t).
Seems to work to move & remove markers, tempo & meter markers, and regions on
selected tracks.
Still TODO:
- use existing A3 'Insert time' dialogue
- make it respect 'No selection = all tracks'
- rename the command to something like 'Remove time' or 'Delete time': 'Cut'
sounds to me as if the removed range should end up on the clipboard ready
to be pasted somewhere, which of course it doesn't.
|
|
|
|
|
|
can ensure we no longer have a handle open
|
|
Conflicts:
gtk2_ardour/ardour.menus.in
libs/ardour/session_state.cc
|
|
This reverts commit 6ba555c2f57fb793431aef0cedfbacf11d643a2b.
which does not yet take monitoring states into account.
Ideally the case handled here should not happen in the
first place, It should be fixed in session_transport
transport_sub_state.
|
|
If there's port-latency > period-size, there is a
split cycle with (this_event->action_frame - _transport_frame).
Yet Session::check_declick_out() keeps PendingDeclickOut if
StopPendingCapture is set. The route declick’ed twice:
Once with the period-size and one with the remaining frames,
which resulted in a click.
|
|
fixes various fader zipper noise issues.
It voids sample accuate fader automation (the fader-gain
is low-pass filtered at 10Hz). Yet all musical purposes this
makes a lot more sense than sample accuracy anyway.
|
|
preference
|
|
This does NOT work with MIDI files at present, because of SNAFU in SMF class, where end_write()
opens the file on its own, without _file_path being set. Needs some careful work, because basically
the SMF<=>SMFSource relationship is not tenable
|
|
number of seconds
|
|
method. Now ARDOUR_UI::every_second do not spend time for unnecessary sorting when calling update_disk_space().
[Reviewed] Paul Davis
[Required review] YPozdnyakov, GZharun
|
|
|
|
Lock was not held across a replace_{tempo,meter}() operation because of re-use
of {remove,add}_{tempo,meter}. Moved functional code into _locked variants so
that replace operation can hold lock across its entire active lifetime.
|
|
These were missed somehow during cherry-picking.
|
|
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
|
|
appropriately at startup
|
|
|