summaryrefslogtreecommitdiff
path: root/libs/evoral
AgeCommit message (Collapse)Author
2019-09-18NO-OP: fix some Wimplicit-fallthroughRobin Gareus
gcc can recognize various regexps in comments. Since C++17 provides [[fallthrough]], using /* fallthrough */ consistently seems appropriate until we switch to C++17. see also https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
2019-09-18Remove a (no longer needed) source file from our MSVC project (evoral)John Emmas
2019-09-18Fix Wdeprecated, dynamic exceptionRobin Gareus
Dynamic exception specifications are deprecated in C++11, and were removed in C++17.
2019-09-18Remove old unused source fileRobin Gareus
2019-09-05Unit-test: parameter ranges outside [0..1]Robin Gareus
More updates after 3d15499cdacacbafa32c8f * set parameter-range for MIDI sequences * set parameter-range for cubic spline
2019-09-05Remove unused header (superseded by libtemporal)Robin Gareus
2019-09-05Fix libevoal unit-test compilationRobin Gareus
2019-08-03Update core library GPL boilerplate and (C) from git logRobin Gareus
2019-07-30Update MIDI Event precedenceRobin Gareus
A patch-change that is concurrent with a note-on event should be sent before the given Note-on event. As follow up: CCs also need to be prioritize to send bank-select first. see also https://discourse.ardour.org/t/midi-strangeness-patch-setting-and-first-notes/101415
2019-04-13NO-OP: <tab> after <space> fixes in libsRobin Gareus
2019-04-09Remove cruft: unused typedefRobin Gareus
2019-04-02Fix MIDI Aftertouch (import, record and play) in the backendRobin Gareus
2018-12-22Add guard-points when shifting automationRobin Gareus
2018-12-22Properly remove-time automationRobin Gareus
Previously "remove time" was able to produce overlapping, not ordered automation.
2018-10-26Fix some Wimplicit-fallthroughRobin Gareus
A "fall through" comment is most portable way to indicate "no break, fallthru" cases. * __attribute__ ((fallthrough)) // is not portable * [[fallthrough]]; // is C++17
2018-10-14remove use of hardcoded -fPIC compiler flag, and use compiler flag dict insteadPaul Davis
2018-09-30Adapt our remaining MSVC projects for 'boost::atomic' (in case it later gets ↵John Emmas
extended to the other libs) Stage 1 of 3 (more to follow)
2018-09-10Initial changes needed for building Mixbus (with MSVC) as version 5John Emmas
(Mixbus itself will probably need extra changes)
2018-07-26Fix crash when testing invalid MIDI file.Robin Gareus
smf_delete() does not handle NULL pointers. This fixes a crash when checking if a MIDI source is valid.
2018-07-05system common and system realtime messages are not valid in SMF filesPaul Davis
2018-07-05change all use of g_critical() in libsmf() to g_warning()Paul Davis
g_critical translates to a fatal error in ardour, which is not true for any of these errors.
2018-06-21remove debug outputPaul Davis
2018-06-21remove Session::controllable_by_descriptor() and move code into GenericMIDI ↵Paul Davis
code (the only user). This also removes enums introduced to describe well-known parameters for Mixbus. Lookup now involves string parsing every time, but this is not likely to be a notable cost.
2018-04-08Fix crash when testing unsupported MIDI fileRobin Gareus
smf_delete() does not handle NULL, and segfaults instead. This only crashes with optimized builds. libsmf will call g_critical() earlier and in that case debug-builds call UI::handle_fatal() and ask the user to "click to exit".
2018-02-15When building with MSVC, allow for the fact that Mixbus and Ardour can be ↵John Emmas
using different versions of the SESSION_FILE format
2018-01-26Fix some clang warnings (argument with 'nonnull' attribute passed null)Robin Gareus
2017-09-29remove *.orig files (accidentally added in cba53a202)Robin Gareus
2017-09-28Check in a few MSVC projects to accommodate the change from libtimecode to ↵John Emmas
libtemporal This is mostly to see if there'll be any problems when merging these changes into Mixbus. I'm guessing there'll be some conflicts in these projects (and a lot more to follow...)
2017-09-24convert codebase to use Temporal for various time typesPaul Davis
2017-09-24new header file for audio-based time typesPaul Davis
2017-09-18add _locked() variants to new tempo experimentPaul Davis
2017-09-18remove Evoral types.cpp since it is no longer requiredPaul Davis
2017-09-18extend/fix/improve operator overloads and methods for Evoral::BeatsPaul Davis
2017-09-18NOOP: formattingPaul Davis
2017-09-18::find_next_event() does not need to be a pure virtual in ControlSet (it can ↵Paul Davis
originate in AutomatableSequence)
2017-07-27Fix write-pass re-start while in an active write-passRobin Gareus
2017-07-24Update WritePass logic + AutomationList UndoRobin Gareus
Fixes various issues when changing AutomationState while rolling.
2017-07-24Fix ctrl-list guard-points and concurrency issuesRobin Gareus
* lock list when editing (prevent concurrent modification of insert iterator * don't add a guard-point if an event is already present between the target and guard-point-position * remove existing automation-events (old guard points) when touching automation w/o change * don't unset "new write pass" when not rolling (fixes issues when not rolling but locating with write-enabled)
2017-07-07Consistent ControlList freezing -- fixes #7419Robin Gareus
AudioRegion::set_fade_in() freezes the original ControlList, then assigns a new one and thaws that. Frozen state needs to be retained during assignment. Related: The overloaded assignment operator in AutomationList performed duplicate signal emission and didn't freeze the list.
2017-07-04Compatibility with old out-of-range automation-lane dataRobin Gareus
Ardour may have ignored log-scale for parameters 0..N and allowed writing '0'. Force those values into the valid range on session load. Also mark the list as "needs sorting" which removes potential duplicates.
2017-06-21Remove duplicates from ControlListRobin Gareus
2017-06-21Clamp values in ControlListRobin Gareus
2017-06-21Implement additional ControlList interpolation methods.Robin Gareus
The Control and ControlList uses the raw value (eg. coefficient for gain, Hz for frequencies) and those Lists are stored in existing sessions. In the vast majority of cases interpolating automation values using exp/log scale for dB, freq makes more sense -- it's also what the fader does. Adding additional interpolation methods is future proof (we might at allow to even add different methods per automation point (to the next) like other DAWs do. Currently it's mainly used in preparation for consistent GUI automation- lanes. Between 2 points there's always a visual straight line.
2017-06-21Remove separate ControlList min/max/default, use ParameterDescriptor.Robin Gareus
2017-06-21Move logarithmic property into Evoral, add rangestepsRobin Gareus
This allows complete mathematical description of a given parameter and parameter values. Semantic type abstraction is reserved for Ardour::ParameterDescriptor.
2017-06-14Add infrastructure to merge ControlListsRobin Gareus
2017-06-13Apply master-value to automation on disconnect.Robin Gareus
2017-06-10Implement slaved boolean automation and update mute special-caseRobin Gareus
2017-06-08Do not duplicate note id in copy constructornick_m
This fixes selection undo after copy-dragging notes, but there are probably other cases where duplicate note ids may cause problems.
2017-06-03add const-ness: Evaluating a curve does not change it.Robin Gareus
Note that the ControlList's lock and cache are already mutable.