summaryrefslogtreecommitdiff
path: root/libs/evoral
AgeCommit message (Collapse)Author
2015-01-19minimalistic Evoral::Curve Unit Test.Robin Gareus
2015-01-10Add a newly introduced header file to our MSVC project (libevoral)John Emmas
This change is MSVC specific and shouldn't affect the other builds.
2015-01-07MusicalTime => Beats.David Robillard
2015-01-05Fix MIDI file descriptor leaks.David Robillard
Pretty sure this is the cause of MIDI data going missing on save for optimized builds. Introduced in 294b99aabf3eb96323a3159b7a5e1b4bfc1ff04a.
2014-12-31fix incorrect test for valid MIDI events.Paul Davis
Only channel messages have the form <statusbyte>{<nonstatusbyte>..}
2014-12-31Fix range "arithmetic"Paul Davis
Subtracting anything from an empty range should return an empty range, not an assert() failure
2014-12-30Load what we can from broken/truncated MIDI files.David Robillard
We're still a very long way from tolerant of weird SMF files (libsmf takes a "crash if input is not exactly perfect" philosophy, if we're going to be polite and elevate such a thing to "philosophy"), but at least we'll get what's there from files truncated by old broken versions of Ardour or other situations.
2014-12-30Fix MIDI CC record/playback crash.David Robillard
2014-12-29Blind fix for MIDI iteration bug.David Robillard
2014-12-18Mute automation via normal mute button.David Robillard
2014-12-17Remove some aborts that don't really need to be.David Robillard
Enforce PatchPrimaryKey sanity at the type level rather than attempting to check for it everywhere. Remove dead file.
2014-12-17Fix oops in previous commit.David Robillard
Professionalism is overrated.
2014-12-17Fix occasional crash when recording MIDI.David Robillard
2014-12-10remove file manager LRU cache from code.Paul Davis
This was a very clever attempt to fix a non-problem. If the platform doesn't have enough file descriptors available then the platform is broken and we're not going to hack around trying to fix it.
2014-12-06Remove unnecessary includes.David Robillard
2014-12-06Fix seek in linearly interpolated control lists.David Robillard
2014-12-06Adapt range when copying between automation types.David Robillard
For things like copying from pitch bender to a CC. Also things like fader to pan, but that seems a bit funny. The conversion probably needs to be a bit smarter here, perhaps taking the normal into consideration...
2014-12-06More potential SMF crash fixes.David Robillard
2014-12-06Possible half-fix for SMF crash.David Robillard
2014-12-05Revert "Create discrete lists for recorded MIDI controls."David Robillard
This broke saving/restoring interpolation style. This reverts commit 07a381a8f5572ae7550c60e5b1bd18c3dcdc7369.
2014-12-03Call PBD::init from evoral testrunnerTim Mayberry
This is needed to set _fmode = O_BINARY for libsmf/fread and fixes takeFiveTest on windows
2014-12-03Use test utility function to find evoral test filesTim Mayberry
either via EVORAL_TEST_PATH env var or on windows via directory relative to dll
2014-12-03Use PBD::tmp_writable_directory to write evoral test file intoTim Mayberry
no need to remove directory as it is temporary
2014-12-02Fix evoral test suite.David Robillard
2014-12-02Fix range of pan controls.David Robillard
Set default range to [0,1] since [0,0] is problematic and useless anyway.
2014-12-02Remove accidentally committed file.David Robillard
2014-12-02Fix lost MIDI events due to broken range check.David Robillard
2014-12-02Create discrete lists for recorded MIDI controls.David Robillard
2014-12-01Fix automation write/touch.David Robillard
2014-12-01Factor out copy-paste code.David Robillard
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-12-01Make it compile with C++11 support.Julien de Kozak
Reference : https://bugs.webkit.org/show_bug.cgi?id=59249
2014-12-01Tidy up comments in Evoral::coverageColin Fletcher
Remove old (already #if 0'ed) implementation of Evoral::coverage() and its comments. Tidy up the comment enumerating all the possible ways in which two ranges can overlap, note the Evoral::OverlapType corresponding to each one, and add comments to the if()s in coverage corresponding to the cases in the list of overlap types. Remove some commented-out assert()s that actually do happen, and re-instate one that really shouldn't. Fix a small typo (with -> within)
2014-12-01Simplify Evoral::RangeList::subtract(), and make it pass amended testsColin Fletcher
The various conditionals in Evoral::RangeList::subtract() appear to have been there to work around (a) coverage() not always returning the correct value, & (b) the test suite assuming that the ->to point lies outside the range Now that these are both fixed, the implementation of subtract() becomes quite a bit clearer. I replaced the if()s with assert()s for now, but these shouldn't trip if coverage() is working as I expect. Also (attempt to) clarify the comments in subtract.
2014-12-01Rework Evoral::coverage() to pass unit testsColin Fletcher
Rewrite Evoral::coverage() to (hopefully) do what it's supposed to. Return OverlapNone for invalid ranges: if either of the ranges passed to Evoral::coverage() have negative length (i.e. start > end), return OverlapNone - it seems reasonable to say that a negative-length range can't overlap anything. Also return OverlapNone from the fallthrough case, though this should never happen.
2014-12-01Make tests of Evoral::Range functions include both endpoints in RangeColin Fletcher
Some of the tests for Evoral::RangeList::subtract() assume that ranges don't contain their end (->to) point. This appears inconsistent with how they are used elsewhere. Add some ASCII art comments to the tests to try to clarify what they're really testing for, and amend subtractTest1, subtractTest4, & subtractTest5 to incorporate the assumption that ranges include their end points.
2014-11-30Remove braindead Parameter inheritance abuse.David Robillard
2014-11-30Replace thinning static state with parameter.David Robillard
2014-11-30Remove dead code.David Robillard
2014-11-30Move EventRingBuffer to libardour.David Robillard
This is not used anywhere in Evoral and is just a wrapper around the PBD RingBuffer anyway. Towards a (once again?) independently buildable/testable Evoral and fewer cross-dependencies.
2014-11-29Set discrete by default for boolean parameters.David Robillard
2014-11-28Fix crash when deleting all points from a line.David Robillard
2014-11-25Add test for Evoral::coverage()Colin Fletcher
Add a test function to test Evoral::coverage() with all possible overlap types. The first test (line 161) that expects OverlapExternal will fail with the current implementation of coverage(). There's possibly still a discussion to be had about what the overlap type of ranges with negative lengths should be: there are currently places in the main Ardour code base where coverage() is called with ranges where start > end.
2014-11-25Fix build of evoral testsColin Fletcher
Fix compile errors in libs/evoral/test/, by explicitly calling Evoral::MusicalTime::to_double() wherever a double value is required of a MusicalTime. Some of the double variables should probably really be made into MusicalTime ones instead, but I don't want to mess with this too much. takeFiveTest still fails for me after this, but a failing test is probably more informative in the long run than a test that won't even compile.
2014-11-24Changes needed to accommodate building libevoral with MSVCJohn Emmas
Note that class 'MusicalTime' needn't be exportable (with a little work, this could be reverted if it affects the other builds)
2014-11-23Fix build with a certain awful broken compiler.David Robillard
2014-11-22Fix quantization and other time-related ops.David Robillard
2014-11-22Max is max and min is min and I am dumb.David Robillard
2014-11-22Fix clang and MSVC build.David Robillard
2014-11-22Wrap MusicalTime in a class.David Robillard
This lets us get a more explicit handle on time conversions, and is the main step towards using actual beat:tick time and getting away from floating point precision problems.