summaryrefslogtreecommitdiff
path: root/libs/ardour
AgeCommit message (Collapse)Author
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-11comment tweakPaul Davis
2015-06-11fix transport loop sub-state eventsRobin Gareus
Loading a session with a loop-range, or setting a loop-range adds LoopDeclick events. Normal play back (no loop) never processes/clears the events. Ardour was constantly doing split cycles for nothing. This lead to stuck midi-notes: Split cycle calls increment_global_port_buffer_offset() but the midi_diskstream itself was not aware of any loop positions or offsets. Entering loop playback adds those events explicitly in Session::set_play_loop(). auto_loop_changed() only needs to add/replace session-events when actively looping.
2015-06-09Add the new (UINTSDEFINED) preprocessor directive to all out MSVC projects ↵John Emmas
(just to be on the safe side)
2015-06-08Enclose bar code number in ""s in TOC & CUE exportColin Fletcher
cdrdao seems to want the CATALOG field to be enclosed in double-quotes.
2015-06-08Remove doubled quotes in TOC export PERFORMER fieldColin Fletcher
toc_escape_text() already encloses its result in ""s, and if album_artist is empty, the resulting PERFORMER """" line makes cdrdao upset. Just remove the extra quotes.
2015-06-03check size of peak file before attempting to use it. Rebuild from scratch if ↵Paul Davis
necessary.
2015-06-03when AudioSource::read_peaks() provides start+cnt too close to the end, be ↵Paul Davis
sure to reset expected_peaks and scale to match the corrected values
2015-06-02expand commentPaul Davis
2015-06-02close all source files before renaming interchange tree in Session::rename()Paul Davis
2015-06-02AudioRegion::read_peaks() should return 0 or the number of peaks read, not ↵Paul Davis
the number of samples
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-06-01fix importing A2 automation data - fixes #6359Robin Gareus
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-28tweaks and improvements to Save-AsPaul Davis
Always copy MIDI files, they are small and they get rewritten for lots of reasons, which can cause confusion if the user elected to NOT "copy media" since the file ends up existing in both the new and old (but in use) session. Avoid copying analysis files on Windows, where for now the files contain illegal colon characters
2015-05-28change the semantics of AudioFileSource::peak_path() and ↵Paul Davis
Session::peak_path() a little. If given a full path that points outside the current session but is within another ardour session, attempt to use the peakfiles present in that other session.
2015-05-27fader: start muted, ramp up/interpolate to targetRobin Gareus
2015-05-27some more information output to log during save-as, for debuggingPaul Davis
2015-05-22LV2: delete existing preset before replacing itRobin Gareus
2015-05-22Fix deleting and re-saving LV2 presets.David Robillard
2015-05-19try to improve the ill-conceived fade_range actionBen Loftis
2015-05-18take buffers for Split/Match into account fixes #6334Robin Gareus
2015-05-14fix cleanup (code is self-evident). From Yevgeny @ wavesPaul Davis
2015-05-12Fix stuck notes on save during MIDI playback.David Robillard
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-07copy contents of analysis, plugins, automation and externals folders during ↵Paul Davis
save-as
2015-05-07fix Session::rename()Paul Davis
2015-05-05debugging rename/save-asPaul Davis
2015-05-04API to reset plugin parameters to defaultRobin Gareus
2015-05-04add signal for automation state changes per pluginRobin Gareus
2015-05-04clear port-list before query.Robin Gareus
fixes crash in PortManager::silence_outputs()
2015-05-04fix thinko in 2e4428bRobin Gareus
perspective of Ardour: signal sinks are outputs
2015-05-03no more noise during startup.Robin Gareus
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-30don’t count silent [x]runs if there’s no session.Robin Gareus
2015-04-30session: add signal to indicate batch updatesRobin Gareus
…to tell the UI to not redraw.
2015-04-29remove AU crashlog assert.Robin Gareus
in case $HOME/Library/Caches/Ardour4/au_crashlog.txt is not writeable, just log to stderr.
2015-04-29add xrun counter API to sessionRobin Gareus
2015-04-29emit an xrun if the process_lock is takenRobin 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-28tape-track diskstream fixesRobin Gareus
Due to the change to use a 64bit timeline (int64 as opposed to previously [unsigned] pframes_t) many cases special to tape-tracks no longer work. e.g. region->length() can returns -1, rather than INT64_MAX. which breaks ‘overlap’ in Evoral::Coverage. which in turn breaks tape track’s use of ::find_next_region(). This commits begins the slow process to move away from relying on integer overflow to wrap negative numbers for tape tracks and restores basic functionality. Still various edge cases pertaining tape tracks remain. particularly when changing the session start-time and moving destructive regions.
2015-04-28Track mode needs to be set before loading Track stateRobin Gareus
parent Track::set_state() sets the diskstream and ::set_diskstream() depends on the track mode. fixes Tape tracks on session load
2015-04-27case insensitive VST plugin file extension - fixes #6285Robin Gareus
2nd attempt.
2015-04-27const iteratorsRobin Gareus
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)