summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
AgeCommit message (Collapse)Author
2015-06-16add Record-Safe feature to libardour (from Nikolay Polyanovskii)Paul Davis
2015-06-12We were 2 more debug "bits" away from overflow, so recast PBD::DEBUG ↵Paul Davis
mechanism away from a 64bit integer and toward std::bitset. Clean up a few minor related PBD::DEBUG issues along the way
2015-06-02properly handle integer steps in plugin controlsRobin Gareus
The integer steps min/max are inclusive. e.g the integer range -1 to +1 has three possible values (not two).
2015-05-31Add API to ARDOUR::AudioBackend to allow different input and output devicesTim Mayberry
Used spaces instead of tabs for whitespace consistancy with rest of header
2015-05-29factor out Route::muted_by_others from existing codeBen Loftis
2015-05-10Layering - the return of "later is higher".nick_m
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.
2015-05-07extend save-as API to allow for new empty sessions based on currentPaul Davis
2015-05-07fix Session::rename()Paul Davis
2015-05-04API to reset plugin parameters to defaultRobin Gareus
2015-05-04add signal for automation state changes per pluginRobin Gareus
2015-05-04fix thinko in 2e4428bRobin Gareus
perspective of Ardour: signal sinks are outputs
2015-05-03add an API to silence buffers (without session)Robin Gareus
2015-05-02log(0) - who would have guessed.Robin Gareus
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
2015-05-02professionalize peak-metersRobin Gareus
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.
2015-05-01constrain initial custom meter positions.Robin Gareus
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.
2015-04-30session: add signal to indicate batch updatesRobin Gareus
…to tell the UI to not redraw.
2015-04-29add xrun counter API to sessionRobin Gareus
2015-04-29delegate signal emission to dedicated thread.Robin Gareus
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.
2015-04-27special case [optimize] RT processor reorder.Robin Gareus
realtime processor re-ordering does not require a route resort nor latency compensation update. (which were done as callback in same thread)
2015-04-27click-less processor re-ordering.Robin Gareus
2015-04-26clickless meter-point changesRobin Gareus
2015-04-25Amp: allow to disable midi velocityRobin Gareus
2015-04-25prepare trim automationRobin Gareus
2015-04-25prepare trim remote controlRobin Gareus
2015-04-25prepare 0dBFS peak meterRobin Gareus
2015-04-24add Input Trim (just after disk i/o) to Audio TracksRobin Gareus
2015-04-24Amp control: power-scale (fader) and dB-scale (knob)Robin Gareus
2015-04-24define Trim Parameter Type.Robin Gareus
2015-04-22coefficients are floating-point.Robin Gareus
fixes use of overloaded operator '==' is ambiguous (with operand types 'MPControl<gain_t>' and 'double') in previous commit.
2015-04-22Initial Gain Coefficient tweaksBen Loftis
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
2015-04-21Added support for exporting mp4 chapter marksJohannes Mueller
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".
2015-04-21Port 'Cut time' code from MixbusColin Fletcher
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.
2015-04-21merge fix for tempo branchBen Loftis
2015-04-21merge monitor_section branchBen Loftis
2015-04-20add a pure virtual FileSource::close() method so that FileSource::set_path() ↵Paul Davis
can ensure we no longer have a handle open
2015-04-20Merge branch 'master' into saveasPaul Davis
Conflicts: gtk2_ardour/ardour.menus.in libs/ardour/session_state.cc
2015-04-07Revert "prevent double declicks (click after RecStop)"Robin Gareus
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.
2015-04-07prevent double declicks (click after RecStop)Robin Gareus
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.
2015-04-07low-pass filter gain-fader.Robin Gareus
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.
2015-04-06fix crash during new session creation when sync-to-JACK is enabled as a ↵Paul Davis
preference
2015-04-06changes related to resetting source paths during save-as.Paul Davis
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
2015-04-05add libardour code for going completely silent after a compile-time defined ↵Paul Davis
number of seconds
2015-04-02[Summary] Adding option to avoid sorting the routs in Session::foreach ↵Valeriy Kamyshniy
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
2015-04-01NOOP, just whitespaceRobin Gareus
2015-04-01remove race condition when editing tempo/meter information.Paul Davis
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.
2015-03-31add new signals to AudioEngine from waves backend changes.Paul Davis
These were missed somehow during cherry-picking.
2015-03-31[Summary] Added actions to handle abnormal behavior during stream stop for ↵Greg Zharun
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
2015-03-31[Summary] Made device control panel open request synchronized with other ↵Greg Zharun
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
2015-03-31move "been here before" path concept into libardour, and use it ↵Paul Davis
appropriately at startup
2015-03-31fix OSX/PPC 10.4 long mathsRobin Gareus