767c0238a3
Replace half-baked param metadata with descriptor.
...
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-01 23:35:24 -05:00
Julien de Kozak
cb8abbe8d2
Make it compile with C++11 support.
...
Reference : https://bugs.webkit.org/show_bug.cgi?id=59249
2014-12-01 23:18:11 +01:00
0ffeaa6d6a
Remove braindead Parameter inheritance abuse.
2014-11-30 23:56:20 -05:00
7eb4e5d22b
Replace thinning static state with parameter.
2014-11-30 23:56:20 -05:00
b68fd1cc25
Remove dead code.
2014-11-30 23:56:20 -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
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
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
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
cfca056f19
make sure that copy constructors and operator= for ControlList pass along the _interpolation value
2014-07-09 14:30:38 -04: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
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
2f6065b32c
Fixed problem where importing invalid midi files caused crash.
2014-04-29 06:48:29 +10:00
167991eceb
fix mismatch typo in sizeof
2014-03-23 00:17:19 +01: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
2fc2df8c5d
fix 64 bit template types
2014-01-12 20:01:12 -05:00
6fc1f27013
Merge branch 'windows+cc' into cairocanvas
2014-01-12 17:45:28 +00:00
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
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
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
0f33baf32f
back-port two actual bug fixes from cairocanvas branch
2013-11-05 10:17:40 -05:00
0cca272431
try to fix various warnings from gcc when optimization flags are enabled
2013-11-04 21:32:41 -05:00
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
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
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
78974b2df9
'libs/evoral' - Windows specific includes
2013-07-23 17:10:06 +01:00
f6b0b4c0d7
'libs/evoral' - Remove ambiguity about which version of 'abs()' we need
2013-07-23 16:59:15 +01:00
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
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
f9b99edc4a
'std::isnan' is not available in MSVC (at least, not VC8)
2013-07-23 07:50:25 +01:00
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
650964f320
Merge branch 'master' into windows
2013-07-17 08:05:59 -04:00
Michael R. Fisher
65eb0b845f
Include evoral/Note.hpp before pbd/compose.h
...
- This workaround prevents a clang compiler error about template
visibility
2013-07-15 22:57:34 -05:00
2b9f50ffc7
include winsock2.h on windows in libsmf for htons/l etc.
2013-07-11 13:03:24 -04:00
f04c35cb1c
reduce verbosity of DEBUG::Sequence traces
2013-05-02 10:11:31 -04:00
04cba6eca0
fix (?) behaviour when punching into automation write mode while the transport is moving, hopefully without breaking anything else
2013-04-02 16:10:51 -04:00
3b20beb8d8
Merge branch 'patches' of https://github.com/jdekozak/ardour
2013-03-29 14:18:08 -04:00
86f1b8c71f
major fixes for MIDI patch change and note undo/redo. Patch change handling was completely broken because of the use of absolute floating point comparisons for time comparison, and serialization/deserialization of patch change property changes was borked because of int/char conversions by stringstream. Note undo/redo would fail for note removal if a note had been moved and/or had its note number changed as the next operation after it was added, because time-based lookup would fail. Similar small changes made for sysex messages, which just needed the musical_time comparisons and nothing else
2013-03-29 11:52:25 -04:00
Julien de Kozak
16f8fc0657
Fix some compilation warnings
2013-03-23 14:50:58 +01:00
5b9bd3eea0
control lists should use the default value of their parameter, not zero (noticeable for pitchbend)
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13844 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-15 15:00:37 +00:00
24917e4c9e
disable spline interpolation for curves - use linear interpolation; configuration parameter pending for this, plus slightly cleaner reuse of existing ControlList methods
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13627 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-09 17:24:58 +00:00
d7716b055c
fix automation/control list behaviour when manually adding a point within existing data
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13619 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-08 17:57:47 +00:00
8ecabd0d37
remove debugging output; properly handle cases in Curve::_get_vector() where the entire requested range for the vector is either before the first point in the curve (unlikely to happen because we typically add a guard point at zero) or entire after the last point in the curve
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13582 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-02 00:23:03 +00:00
9e84a2f931
still more debugging output
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13581 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-30 23:49:59 +00:00
bad34d7ded
still more debugging output
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13580 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-30 23:42:48 +00:00
776eb23e8b
still more debugging output
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13579 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-30 23:38:15 +00:00
202788ea18
more debugging output
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13578 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-30 23:28:47 +00:00
6242371388
debugging output
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13577 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-30 23:21:12 +00:00
b73d9b585f
fix prev commit (stupid C++ needs explicit typecast)
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13529 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-18 21:48:29 +00:00
ba7f951919
prevent subveclen to wrap at 2^31
...
fixes http://pastebin.com/X629ZE7F (Timecode 22h @48k, 512fpp)
git-svn-id: svn://localhost/ardour2/branches/3.0@13528 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-18 21:22:58 +00:00
a0f00d7d22
add a "guard" point after a write/touch automation insertion, preserving the shape of the later segment of the existing line
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13507 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-15 16:22:43 +00:00
bb9ab696b1
likely fixes for most remaining issues with data in automation/control lists, but more testing needed
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13497 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-14 15:06:41 +00:00
Hans Baier
e36c855464
issue 0005121: added comment to source. Sorry, last commit was for issue 0005121, not 0005120, copied from the wrong line :[
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13252 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-12 06:04:06 +00:00
Hans Baier
2625fd9be8
fix issue 0005120: dont treat percussive mode differently than sustained mode except in GUI. Leaving out all note offs crashes LinuxSampler and totally drowns my Yamaha PSR-S900 by stealing all its available voices. Code is #ifdef-ed out until a more thorough discussion would conclude the removal of percussive mode from the MIDI model, which IMHO makes sense. I don't see any virtue in leaving out note offs since it only creates problems.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13251 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-12 05:58:47 +00:00
Hans Baier
97c23848d7
implement deleting of sysex events
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13238 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-11 03:22:17 +00:00
2b1cc9656e
remove incorrect and unnecessary template class declaration from Evoral (added recently)
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13230 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-10 15:42:47 +00:00
Hans Baier
3f5c6f8190
enable and extend EVORAL_MIDI_XML. Useful for Debugging. Any objections?
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13223 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-10 04:31:59 +00:00
Hans Baier
c3850cfb35
evoral/MIDIEvent: Whitespace cosmetics in header, make XML output work properly eg show the numbers instead of blanks
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13221 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-09 08:33:27 +00:00
b30ba842d8
fix missing variable initialization
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13194 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-09-17 21:09:12 +00:00
696631f04e
comment tweaks from a second reading
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13182 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-09-09 20:31:43 +00:00
999ec4a074
remove unused code
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13181 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-09-09 20:21:50 +00:00
4b38ddec62
replace deprecated g_atomic_int_exchange_add()
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13086 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-26 15:39:17 +00:00
3cd8138a41
convert from Glib:: to Glib::Threads for all thread-related API
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13084 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-25 17:48:55 +00:00
3c252e9321
lots more fidgety work on automation. sort of works now, but undo/redo needs attention
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13047 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-17 03:10:40 +00:00
f97da74cf7
code motion to put Sequence::{add,append}_patch_changed_unlocked() next to each other as candidates for removal
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13045 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-16 14:46:21 +00:00
c3ccff8d05
fix up part of the remaining details with automation, so that touch/write over-writes work correctly
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13041 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-14 15:42:10 +00:00
0532e2063b
dramatic overhaul of automation. too long to explain here. this work is not finished - write/touch passes do not correctly overwrite existing data because the semantics of ControlList::insert_iterator need clarification. more to follow
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13038 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-13 21:05:45 +00:00
bd2bf3c52e
automation fixes/changes: when add a new control point, create necessary points to construct a flat default-valued line from zero the first point, and revert to the default value at the end of the write (breaks value-holds-after-write behaviour); fix bug in data elimination when recording flat-line data
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12997 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-09 18:32:53 +00:00
Carl Hetherington
5ac22e9095
Add new SharedStatefulProperty which manages a shared_ptr to
...
some Stateful object, and a subclass to use this for
AutomationList. SharedStatefulProperty will manage undo / redo
using full copies of the XML state, like MementoCommand,
but does it within the Property undo system.
git-svn-id: svn://localhost/ardour2/branches/3.0@12740 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-16 17:20:10 +00:00
27a1cf2cf7
Compile cleanly with clang.
...
To compile Ardour with LLVM/clang, do the usual thing but set the CXX and CC
environment variables, e.g.:
CC=/usr/bin/clang CXX=/usr/bin/clang++ ./waf configure build
git-svn-id: svn://localhost/ardour2/branches/3.0@12418 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-24 02:54:10 +00:00
b99131f21e
fix bug that has existed since rev 17 when evaluating a curve in a position before the first point of the curve
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12411 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-24 01:43:02 +00:00
a98fa4bc61
switch to 5 new fade curves, taken from mixbus2 branch. make xfade context menus functional even though the images are not accurate
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12253 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-11 21:30:36 +00:00
eaa7cc5a73
fix up some const-ness issues starting from Evoral::Event::set(), and intersect with removing Mackie..MidiByteArray::bytes() method which made a copy of the data every time we wrote it
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12124 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-30 15:54:13 +00:00
Carl Hetherington
a4434809e1
Use a list of ControlPoints to hold the automation selection,
...
rather than a time range. This makes more sense now that we
display every point on an automation line, rather than just
a subset. Makes the code a fair bit simpler, and should fix
some unexpected behaviours, especially when cutting automation
points.
git-svn-id: svn://localhost/ardour2/branches/3.0@12054 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-22 14:03:07 +00:00
Carl Hetherington
9befa88deb
Fix some warnings.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12048 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-20 23:34:15 +00:00
Carl Hetherington
cfbc2e2438
Fix thinko causing possible memory corruption.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12040 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-19 23:54:05 +00:00