13
0
Commit Graph

431 Commits

Author SHA1 Message Date
1693e57e0e Move EventRingBuffer to libardour.
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-30 23:56:19 -05:00
784b96e255 Set discrete by default for boolean parameters. 2014-11-29 01:40:23 -05:00
e55b68298b Fix crash when deleting all points from a line. 2014-11-28 20:04:57 -05:00
4358b8db79 Add test for Evoral::coverage()
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-25 17:49:51 +00:00
3a6c9e3bb9 Fix build of evoral tests
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-25 14:59:48 +00:00
25745758aa Changes needed to accommodate building libevoral with MSVC
Note that class 'MusicalTime' needn't be exportable (with a little work, this could be reverted if it affects the other builds)
2014-11-24 12:51:54 +00:00
f1926dc863 Fix build with a certain awful broken compiler. 2014-11-23 16:31:59 -05:00
57c1b6e261 Fix quantization and other time-related ops. 2014-11-22 21:49:42 -05:00
231e0009b4 Max is max and min is min and I am dumb. 2014-11-22 16:33:32 -05:00
42b5ed3904 Fix clang and MSVC build. 2014-11-22 15:26:41 -05:00
c1cfa12d6e Wrap MusicalTime in a class.
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.
2014-11-22 04:05:42 -05:00
cae74309a5 Fix assert failure in control list interpolation.
How we never hit this before is beyond me, it's in some ooooold code.
2014-11-22 00:46:15 -05:00
4bc0d1c475 Fix lost MIDI note offs and controllers.
Fix initial read of discrete MIDI controllers.

Fix spurious note offs when starting to play in the middle of a note.

Faster search for initial event when cached iterator is invalid.

So much for dropping the cached iterator.  The iterator is responsible for
handling note offs, so that doesn't work.  This design means we have some stuck
note issues at the source read level, but they should be taken care of by the
state tracker anyway.
2014-11-20 15:36:11 -05:00
b6db707989 amend 484e38053 2014-11-18 05:28:27 +01:00
484e380536 silence clang "dead assignment" warnings 2014-11-18 04:46:37 +01:00
b4fcdbb100 Don't add origin value to MIDI controller regions on initial insert.
This should probably hijack the same modifier as the guard points and work the
same on all automation tracks, but I did it this way to not change behaviour of
track automation where a default is much more reasonable.
2014-11-16 22:35:45 -05:00
9d4f43fa7d Make ControlList::paste const-correct. 2014-11-16 22:35:45 -05:00
6b3a8915f3 add abort() to non-reached code
This cleans up a lot of false-positives in static analysis
and also helps compilers to optimize code paths in general.
(tagging the fatal stingstream operator as ‘noreturn’ is
far less trivial)
2014-11-14 11:30:08 +01:00
8907477271 Fix crashes on various MIDI editing operations.
Assertions assumed old strict ordering, no longer reflecting reality of fuzzy
time comparison (introduced in 86f1b8).
2014-11-13 22:34:20 -05:00
49b9d22217 remove debug output 2014-10-15 19:08:46 -04:00
ab658d7ca1 add mutex/lock to all Evoral::SMF methods that use _smf/libsmf, to avoid inadvertent corruption via multithreaded access.
Serialization of Session::save_state() will already protect against most of this, but there is really no
good reason why Evoral::SMF's API should require single-threaded/explicit serialization.
2014-10-15 18:44:22 -04:00
34c1465cf9 Fix crash when changing automation mode for MIDI track control automation.
Also some work towards tolerating automation controls with no automation list,
towards actually doing something for these cases, though not required just to
fix this crash (MidiTrack::set_parameter_automation_state() avoids those
paths).
2014-08-31 18:57:22 -04:00
65715dd298 Make sure all our VC projects agree that the product is called 'Mixbus3' (as opposed to just 'Mixbus')
It'd be nice if we could use 'ARDOUR::config_dir_name' for this purpose (or perhaps 'PROGRAM_VERSION'). However, neither is implemented widely enough at present to make this practical. Keep an eye on them though, as possible future strategies.
2014-08-28 07:57:20 +01:00
1873bcfa9d More fixes for range-based automation editing.
-Remove redundant start_grab calls.
-Show gain curves in Range mode, so you can see the curves you are selecting
2014-08-06 14:43:40 -05:00
16ca4e0f9a Initial steps towards usable range-based automation editing.
TODO:  needs undo. only works in top quarter of automation lane.  selection model feels weird sometimes.  needs to show gain curve when you are using Range tool
2014-08-05 15:42:06 -05:00
45afed5e9a Modify our VC project files to work with msvc32-fixup.pl 2014-08-04 09:02:17 +01:00
928881b24a Update vcproj files for changed LILV config define. 2014-07-15 15:50:12 -04:00
cfca056f19 make sure that copy constructors and operator= for ControlList pass along the _interpolation value 2014-07-09 14:30:38 -04:00
5a41487a08 remove some 1920 tick constants and leave notes for some others. 2014-06-07 18:35:37 +02:00
94fa927861 limit automation event density - fixes #5928
Constrain control points to one per tick (1/1920 beats).

Prior to this it was possible to set two values to the
same time (interpolation and iteration failed).
2014-06-07 17:43:12 +02:00
8b745aa4b4 fix two mysterious problems with stdint types 2014-06-03 16:38:33 -04:00
8c9749e42f merge with master and fix 4 conflicts by hand 2014-06-02 11:32:13 -04:00
c91f847454 update Evoral::Curve to honor ControlList::InterpolationStyle 2014-05-30 17:00:28 +02:00
5aecc877d6 Fix code to prepare re-enable cubic spline interpolation of automation data.
see also 24917e4c9e
2014-05-30 04:25:59 +02:00
1b989a93c2 remove redundant os.path.join() calls when specifying install path as bld.env['LIBDIR'] 2014-04-28 21:18:02 -04:00
058986f77b finish unfinished work at basing all install paths on the program name 2014-04-28 21:11:08 -04:00
2f6065b32c Fixed problem where importing invalid midi files caused crash. 2014-04-29 06:48:29 +10:00
077a194430 Add the main VC project files for building Ardour3 with Microsoft Visual Studio
Note that there's no 'VS Solution' file at present and some targets haven't been built yet (e.g. 'fst')
2014-04-08 09:49:35 +01:00
Sakari Bergen
2482361d88 Fix buffer size mismatch in evoral tests 2014-04-07 21:27:56 +03:00
167991eceb fix mismatch typo in sizeof 2014-03-23 00:17:19 +01:00
34ebb682a4 Minor visibility changes to libevoral (template objects can be exported in libevoral because they're always instantiated in the actual DLL). 2014-03-21 18:57:36 +00:00
19ab0fddef remove mingw64 special case from evoral visibility header (might be appropriate everywhere, needs testing) 2014-03-01 18:58:12 -05:00
19395ac258 when mingw is mingw64, it appears that we need to use __declspec() and not __attribute__((visibility)) for export control 2014-03-01 15:16:39 -05:00
f049d0294c add option to skip guard points when adding new control points to a ControlList; add more debugging statements 2014-02-19 23:25:08 -05:00
a70f914c51 add option to skip guard points when adding new control points to a ControlList; add more debugging statements 2014-02-19 13:22:52 -05:00
7000afdc66 fix merge conflict with master 2014-01-23 13:41:20 -05:00
3bc0d3e57b fix evoral assignment operator (copy buffer) 2014-01-22 15:11:31 +01:00
5da8c2b476 'libs/evoral' - and add 'Note.impl' to the project 2014-01-13 12:47:21 +00:00
1d69f31266 'libs/evoral' - #include 'Note.impl' when building with MSVC (this is necessary to ensure that Evoral::Note gets exported from the evoral DLL) 2014-01-13 12:16:02 +00:00
9c753dbaec use LIBEVORAL_TEMPLATE_API with Evoral::Note 2014-01-12 20:23:45 -05:00