Age | Commit message (Collapse) | Author |
|
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
|
|
|
|
Dynamic exception specifications are deprecated in C++11,
and were removed in C++17.
|
|
|
|
More updates after 3d15499cdacacbafa32c8f
* set parameter-range for MIDI sequences
* set parameter-range for cubic spline
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
Previously "remove time" was able to produce overlapping, not
ordered automation.
|
|
A "fall through" comment is most portable way to indicate
"no break, fallthru" cases.
* __attribute__ ((fallthrough)) // is not portable
* [[fallthrough]]; // is C++17
|
|
|
|
extended to the other libs)
Stage 1 of 3 (more to follow)
|
|
(Mixbus itself will probably need extra changes)
|
|
smf_delete() does not handle NULL pointers. This fixes a crash when
checking if a MIDI source is valid.
|
|
|
|
g_critical translates to a fatal error in ardour, which is not true for any of these
errors.
|
|
|
|
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.
|
|
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".
|
|
using different versions of the SESSION_FILE format
|
|
|
|
|
|
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...)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
originate in AutomatableSequence)
|
|
|
|
Fixes various issues when changing AutomationState while rolling.
|
|
* 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)
|
|
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.
|
|
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.
|
|
|
|
|
|
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.
|
|
|
|
This allows complete mathematical description of a given parameter
and parameter values.
Semantic type abstraction is reserved for Ardour::ParameterDescriptor.
|
|
|
|
|
|
|
|
This fixes selection undo after copy-dragging notes, but there
are probably other cases where duplicate note ids may cause problems.
|
|
Note that the ControlList's lock and cache are already mutable.
|