summaryrefslogtreecommitdiff
path: root/libs/ardour/audioregion.cc
AgeCommit message (Collapse)Author
2019-12-07Remove unused API, reduce sndfile/coreaudio specializationRobin Gareus
2019-11-02rename all Evoral source from .(hpp|cpp)$ to .(h|cc)Paul Davis
2019-10-18Fix a rare EventList race-condition/crashRobin Gareus
The GUI thread may modify fade-in/out while the butler-thread reads audio. e.g. select a Range and click delete. --- Thread 0:: Dispatch queue: com.apple.main-thread 0 libsystem_pthread.dylib 0x00007fffd45924fc pthread_mutex_lock + 0 1 libglib-2.0.0.dylib 0x00000001085a9d2a g_mutex_lock + 26 2 libevoral.dylib 0x0000000107fd0a49 PBD::Signal0<void, PBD::OptionalLastValue<void> >::operator()() + 57 3 libevoral.dylib 0x0000000107fd486d Evoral::ControlList::clear() + 253 4 libardour.dylib 0x00000001072ef9a5 ARDOUR::AudioRegion::set_fade_out(ARDOUR::FadeShape, long long) + 309 5 libardour.dylib 0x00000001072f19ea ARDOUR::AudioRegion::recompute_at_end() + 122 6 libpbd.dylib 0x00000001082993ff PBD::Stateful::resume_property_changes() + 191 7 libardour.dylib 0x00000001076476af ARDOUR::Playlist::cut(long long, long long, bool) + 575 8 libardour.dylib 0x0000000107646b5b ARDOUR::Playlist::cut_copy(boost::shared_ptr<ARDOUR::Playlist> (ARDOUR::Playlist::*)(long long, long long, bool), std::__1::list<ARDOUR::AudioRange, std::__1::allocator<ARDOUR::AudioRange> >&, bool) + 187 9 libardour.dylib 0x0000000107647461 ARDOUR::Playlist::cut(std::__1::list<ARDOUR::AudioRange, std::__1::allocator<ARDOUR::AudioRange> >&, bool) + 33 10 Ardour.bin 0x00000001065f0fa0 RouteTimeAxisView::cut_copy_clear(Selection&, Editing::CutCopyOp) + 592 11 Ardour.bin 0x0000000106118a94 Editor::cut_copy_ranges(Editing::CutCopyOp) + 164 12 Ardour.bin 0x0000000106116053 Editor::cut_copy(Editing::CutCopyOp) + 1587 Thread 20 Crashed: 0 libardour.dylib 0x00000001072f4b19 ARDOUR::AudioRegion::body_range() const + 89 1 libardour.dylib 0x00000001072bd318 ARDOUR::AudioPlaylist::read(float*, float*, float*, long long, long long, unsigned int) + 1176 2 libardour.dylib 0x00000001072ac236 ARDOUR::AudioDiskstream::read(float*, float*, float*, long long&, long long, int, bool) + 854 3 libardour.dylib 0x00000001072abbb8 ARDOUR::AudioDiskstream::overwrite_existing_buffers() + 392 4 libardour.dylib 0x00000001077ef36a ARDOUR::Session::non_realtime_overwrite(int, bool&) + 186 5 libardour.dylib 0x00000001077ed7f0 ARDOUR::Session::butler_transport_work() + 1696 6 libardour.dylib 0x0000000107323425 ARDOUR::Butler::thread_work() + 149 7 libardour.dylib 0x000000010732334f ARDOUR::Butler::_thread_work(void*) + 95
2019-08-13Fix transient removal -- #7785Robin Gareus
Incorrect iterators were used for user-transients.
2019-08-03Update libardour GPL boilerplate and (C) from git logRobin Gareus
2019-08-01(Source List) Clean up the natural_position implementation (libardour part).Ben Loftis
2019-04-13NO-OP: <tab> after <space> fixes in libsRobin Gareus
2018-02-11SoloSelection: libardour part.Ben Loftis
2017-09-18globally change all use of "frame" to refer to audio into "sample".Paul Davis
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-08-23Update "separate_by_channel" API & add Lua bindingsRobin Gareus
This breaks compilation (GUI)
2017-06-22Remove LocaleGuard from ARDOUR::AudioRegion state methodsTim Mayberry
float <=> string conversions are performed using PBD::to_string/string_to via XMLNode
2017-05-06Factor RMS normalization by sqrt(2); match sine peakRobin Gareus
2017-04-19Use XMLNode::get/set_property in ARDOUR::AudioRegion classTim Mayberry
2017-03-11fix incorrect property change in AudioRegion::set_fade_out()nick_m
- should fix 7283
2017-02-04rework snapnick_m
snap now fills in a struct (MusicFrame) which contins a snapped frame along with a music divisor. this gives useful information wrt magnetic snap which may or may not have rounded to an exact musical position. region position may now be set musically (using quarter notes for now). this patch fixes several problems in the current code: - dragging a list of music-locked regions now maintains correct musical offsets within the list. - splitting regions using magnetic snap works correctly (#7192) - cut drag should now work correctly with magnetic snap. - musical length of split midi regions is no longer frame based.
2016-12-28Fix AudioRegion RMS calc for multi-channelRobin Gareus
2016-07-24prepare region RMS (loudness) normalizationRobin Gareus
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-07-10remove reference "const int32_t&" -> const int32_t"Robin Gareus
this simplifies lua-bindings and also let's the compiler worry about constant primitive types.
2016-07-10Exact beat - provide audio->music mapping for region split.nick_m
- for those not in the know, this series provides a way to remove the temporal distortion introduced when using an audio frame-based gui for music-locked objects. In short, the gui uses an audio frame representation to move objects. It displays the object using frame_at_beat(), quantizing the time value to audio frames. This is fine until the user selects that frame but expects it to be interpreted as a beat. Thus beat_at_frame() would not produce the user-expected beat (temporal quantization error of up to 0.5 audio samples). This is one method of mapping audio time to music time accurately.
2016-05-07fix LocaleGuard contstructor (3dc77280)Robin Gareus
2016-05-05we always only use the "C" locale when saving.Robin Gareus
2016-05-04OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one)Paul Davis
2016-05-01various transient-detection fixes (split region, trim, move, undo,..)Robin Gareus
* all API calls use session-time (allow region-lists) * per-region transients are separated in - Onset (Rhythm Rodent, Aubio) - User-added - internal/source (QM), used as fallback for next/prev (read-only)
2016-03-05Fix issue #0006806feandin
2015-11-18reduce math weirdness (thanks to Steven Yi)Robin Gareus
2015-10-05NOOP, remove trailing tabs/whitespace.Robin Gareus
2015-10-04globally remove all trailing whitespace from ardour code base.Paul Davis
Paul Davis was responsible for introducing almost all of this.
2015-09-20silence detection: include fades.Robin Gareus
Fades must be outside of regions above threshold in order to properly split drum-hits or fast transients in general.
2015-09-20add silence-stripping fade constraintsRobin Gareus
Ensure that non-silent regions are at least as long as the selected fade-duration.
2015-06-29[Summary] Fixed windows buildGreg Zharun
2015-06-29add channel_count() to audio source APIPaul Davis
2015-06-02AudioRegion::read_peaks() should return 0 or the number of peaks read, not ↵Paul Davis
the number of samples
2015-05-19try to improve the ill-conceived fade_range actionBen Loftis
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-03-30fix crash #6161 - another throw w/o catchRobin Gareus
The real problem is: libardourvampplugins:* cannot be instantiated this remains to be fixed.
2015-02-27likely fix for broken fades (imported from v2 sessions)Ben Loftis
2015-01-19use C locale, because POSIX locale is not supported on windows, and ↵Ben Loftis
operation is undefined. C works on all platforms
2014-12-01Replace half-baked param metadata with descriptor.David Robillard
Among other things, this means that automation controls/lists have the actual min/max/normal/toggled of parameters, and not those inferred from the Parameter ID, which is not correct for things like plugin parameters. Pushing things down to the Evoral::ParmeterDescriptor may be useful in the future to have lists do smarter things based on parameter range, but currently I have just pushed down the above-mentioned currently used attributes.
2014-10-02Text tweaks and typo fixesColin Fletcher
2014-07-10add libardour infrastructure for "fade range" edit operationPaul Davis
2014-05-30use CubicSpline interpolation for x-fade preset ShapesRobin Gareus
2014-05-29use fixed number of steps for dB-scale x-fade curves.Robin Gareus
32 steps is sufficient for all practical musical purposes.
2014-05-29fixed number of steps for symmetric fades:Robin Gareus
Extra steps are all below -20dB vs inverse signal being over -2dB. linear interpolation -6dB steps is sufficient for the tail.
2014-05-29fix symmetric fade-shape (still variable number of steps)Robin Gareus
2014-05-29Symmetric x-fade, use equivalent of -6dB per step for 7 steps.Robin Gareus
2014-05-29increase accuracy of fades.Robin Gareus
2014-05-29revert x-fade curves to Mixbus2.Robin Gareus
2014-05-26NOOP, just re-indent diagramRobin Gareus
2014-05-01Introduce global default-fade-shape configuration variableAdrian Knoth
Some users always want the same fade in/out style, e.g., constant power, symmetric, fast etc. To avoid having them change the fade style manually for each fade, use a global configuration variable instead.