David Robillard
784b96e255
Set discrete by default for boolean parameters.
2014-11-29 01:40:23 -05:00
David Robillard
e55b68298b
Fix crash when deleting all points from a line.
2014-11-28 20:04:57 -05:00
John Emmas
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
David Robillard
f1926dc863
Fix build with a certain awful broken compiler.
2014-11-23 16:31:59 -05:00
David Robillard
231e0009b4
Max is max and min is min and I am dumb.
2014-11-22 16:33:32 -05:00
David Robillard
42b5ed3904
Fix clang and MSVC build.
2014-11-22 15:26:41 -05:00
David Robillard
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
David Robillard
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
David Robillard
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
Robin Gareus
b6db707989
amend 484e38053
2014-11-18 05:28:27 +01:00
Robin Gareus
484e380536
silence clang "dead assignment" warnings
2014-11-18 04:46:37 +01:00
David Robillard
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
David Robillard
9d4f43fa7d
Make ControlList::paste const-correct.
2014-11-16 22:35:45 -05:00
Robin Gareus
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
David Robillard
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
Paul Davis
49b9d22217
remove debug output
2014-10-15 19:08:46 -04:00
Paul Davis
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
David Robillard
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
Ben Loftis
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
Ben Loftis
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
Paul Davis
cfca056f19
make sure that copy constructors and operator= for ControlList pass along the _interpolation value
2014-07-09 14:30:38 -04:00
Robin Gareus
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
Paul Davis
8c9749e42f
merge with master and fix 4 conflicts by hand
2014-06-02 11:32:13 -04:00
Robin Gareus
c91f847454
update Evoral::Curve to honor ControlList::InterpolationStyle
2014-05-30 17:00:28 +02:00
Robin Gareus
5aecc877d6
Fix code to prepare re-enable cubic spline interpolation of automation data.
...
see also 24917e4c9e
2014-05-30 04:25:59 +02:00
Damien Zammit
2f6065b32c
Fixed problem where importing invalid midi files caused crash.
2014-04-29 06:48:29 +10:00
Robin Gareus
167991eceb
fix mismatch typo in sizeof
2014-03-23 00:17:19 +01:00
Paul Davis
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
Paul Davis
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
Paul Davis
7000afdc66
fix merge conflict with master
2014-01-23 13:41:20 -05:00
Robin Gareus
3bc0d3e57b
fix evoral assignment operator (copy buffer)
2014-01-22 15:11:31 +01:00
John Emmas
5da8c2b476
'libs/evoral' - and add 'Note.impl' to the project
2014-01-13 12:47:21 +00:00
Paul Davis
2fc2df8c5d
fix 64 bit template types
2014-01-12 20:01:12 -05:00
John Emmas
6fc1f27013
Merge branch 'windows+cc' into cairocanvas
2014-01-12 17:45:28 +00:00
John Emmas
61c692baa1
'libs/evoral' - Move a couple of 'IdentityConverter' functions into their own dedicated C++ source file. This allows them to be used correctly with __dllimport and __dllexport. Hopefully, this technique will also work for gcc / mingw
2014-01-12 17:40:25 +00:00
John Emmas
dd8ba245bb
'libs/evoral' - DLL visibility stuff and associated changes needed for building with MSVC. Currently includes debugging information and things that are just commented out until we have known compatibility with the other platforms (i.e. contains stuff to be removed at a later date)
2014-01-12 17:36:17 +00:00
Paul Davis
3020b224fa
Merge windows+cc branch into cairocanvas branch. Not finished, need to now merge windows branch to get changes from there
2014-01-10 16:07:57 -05:00
Nils Philippsen
527b0a78a1
fix const-ness of names array
2013-12-10 23:07:48 +01:00
Paul Davis
0f33baf32f
back-port two actual bug fixes from cairocanvas branch
2013-11-05 10:17:40 -05:00
Paul Davis
0cca272431
try to fix various warnings from gcc when optimization flags are enabled
2013-11-04 21:32:41 -05:00
Paul Davis
38afa297ee
logic fix for SMF meta-event is-text determination, plus some gcc optimization-based unusued fixes
2013-11-04 21:30:40 -05:00
Tim Mayberry
87a440553f
Fix for isnan using MinGW compiler
2013-09-06 14:30:45 +10:00
Michael R. Fisher
5a97ae6bd6
Include evoral/Note.hpp before pbd/compose.h
...
- This workaround prevents a clang compiler error about template
visibility
2013-08-08 15:23:09 -04:00
Paul Davis
bb59def1ca
fixes for windows branch build failures under linux. still does not build on linux, now due to taglib changes
2013-07-31 20:08:43 -04:00
John Emmas
78974b2df9
'libs/evoral' - Windows specific includes
2013-07-23 17:10:06 +01:00
John Emmas
f6b0b4c0d7
'libs/evoral' - Remove ambiguity about which version of 'abs()' we need
2013-07-23 16:59:15 +01:00
John Emmas
bc34d6f731
'libs/evoral' - For each of the NNNN_lower_bound() functions (3 in total) add a non-const iterator to supplement the existing const_iterator
2013-07-23 07:56:30 +01:00
John Emmas
af51ef383d
'libs/evoral' - Through a compiler extension gcc can implement an array whose size in not known at compile time. MSVC doesn't have this extension. Therefore, use std::vector instead
2013-07-23 07:53:57 +01:00
John Emmas
f9b99edc4a
'std::isnan' is not available in MSVC (at least, not VC8)
2013-07-23 07:50:25 +01:00
John Emmas
453ed61c4a
'libs/evoral' - cast the returned pointers from malloc() / g_ptr_array_index() etc, as needed to satisfy MSVC
2013-07-23 07:47:10 +01:00