summaryrefslogtreecommitdiff
path: root/libs/evoral
AgeCommit message (Collapse)Author
2016-12-04Remove dead/annoying/unsafe codeDavid Robillard
Note the old Note::operator= was unsafe, since it made shallow copies of the on and off events, which results in a double delete of events when the notes are destructed.
2016-12-03Fix Sequence testDavid Robillard
2016-12-03Remove dead codeDavid Robillard
2016-12-03Fix event type and parameter type confusionDavid Robillard
I'm not sure if this is really the best way to do event types (should it just be a completely static enum in evoral, or completely dynamic and provided by the type map, or a mix like currently?), but previously the event type was frequently set to either total garbage, or parameter types, which are a different thing. This fixes all those cases, and makes Evoral::EventType an enum so the compiler will warn about implicit conversions from int.
2016-12-03Remove Evoral::MIDIEventDavid Robillard
It is slightly questionable whether type specific methods like velocity() belong on Event at all, these may be better off as free functions. However the code currently uses them as methods in many places, and it seems like a step in the right direction, since, for example, we might some day have events that have a velocity but aren't stored as MIDI messages (e.g. if Ardour uses an internal musical model that is more expressive). In any case, the former inheritance and plethora of sloppy casts is definitely not the right thing.
2016-12-03Factor out and extend MIDIXML implementationDavid Robillard
2016-12-03Fix Sequence/Event const-correctness issuesDavid Robillard
2016-11-27Fix loading, recording & saving MIDI with PolyKeyPressure events.Robin Gareus
GUI still does not handle this (neither automation lane, nor List Editor), but the file loads, plays and exports correctly.
2016-10-23Don't add initial points for MIDI-CCRobin Gareus
eg. import a .mid that has a CC later in the file. Arodur wrongly added an initial point, effectively moving the event backwards to "0" (no virgin territory)
2016-10-05SMF add support for type-0 files (count channels, not tracks)Robin Gareus
2016-09-13extend Evoral::Range<T> to offer ::length() and ::squish()Paul Davis
The latter maps a T into a range, using loop semantics
2016-08-30Update our MSVC project files to generate the most recent Ardour session ↵John Emmas
file format (ver 5) rather than the older v3 format
2016-08-19attempt to handle poly-pressure (polyphonic aftertouch) similarly to other ↵Paul Davis
MIDI messages
2016-07-25the endless quest to plug memory leaks -- episode 378Robin Gareus
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-07-14Remove a (no longer needed) source file from our MSVC project (evoral)John Emmas
2016-07-12remove old midi-note name APIRobin Gareus
2016-05-21Accommodate the fact that 'msvc_resources.rc.in' got moved to a new pathJohn Emmas
2016-05-10use g_fopen() to avoid i18n errors with file paths/namesPaul Davis
2016-04-12NO-OP; document some more parameters.Robin Gareus
Since headers only provide the declaration, function parameters need to be documented.
2016-04-10NO-OP document Evoral::ControlListRobin Gareus
2016-03-28leave a ToDo noteRobin Gareus
2016-03-21Trim dependence on evoral types.hpp and Beats.hppDavid Robillard
2016-02-28prepare for update to waf 1.8Robin Gareus
uselib is no longer implicit (inherited by .use). This is still incomplete, some uselibs for non-linux variants may be missing. bld.is_defined("HAVE_XXX") also no longer works and will have to be changed (I think to bld.env["HAVE_XXX"]) in countless places.
2015-12-30Modify the MSVC build project (for libevoral) such that it can find pthread.hJohn Emmas
libevoral itself doesn't seem to need libpthread - but by some mechanism it #includes <pbd/event_loop.h> (which now does #include <pthread.h>). So let's make sure it can be found.
2015-12-27somewhat better solution to prev commit.Robin Gareus
parse up to 32bit VLQs, match smf_format_vlq()
2015-12-27work around midi-event counter 4 byte overflow.Robin Gareus
2015-10-31Handle paste from non-toggled to boolean automation track.nick_m
- sort-of fixes #6431
2015-10-20Update ContrilList debug output.nick_m
2015-10-20Amend last connit - don't use a bool to represent a double.nick_m
2015-10-20Fix incorrect initial point when recording toggled automation.nick_m
2015-10-20Make automation record undo per pass rather than per touch.nick_m
2015-10-20Make control point selection more consistent.nick_m
- disallow simultaneous events via ControlList::editor_add () - clicking on an automation line selects the points that define it. - don't 'flash' a region selection when using mousedraw mode. - cp click selection resembles region selection. - region gain points respect snap modifier (a la automation points).
2015-10-07only subdivide plugin-cycle when automation is playingRobin Gareus
PluginInsert::automation_run() subdivides plugin-run on every control-port automation event (without splitting the process cycle). libevoral has no automation-control context, hence this function must be implemented by Automatable.
2015-10-05NOOP, remove trailing tabs/whitespace.Robin Gareus
2015-10-04globally remove all trailing whitespace from .cpp and .hpp files missed by ↵Paul Davis
previous commit
2015-10-04globally remove all trailing whitespace from ardour code base.Paul Davis
Paul Davis was responsible for introducing almost all of this.
2015-09-24Add some casting to keep MSVC happyJohn Emmas
2015-09-19no c99Robin Gareus
2015-09-19speed-up smf_track_delete() from O(N^2) to O(n)Robin Gareus
2015-09-18Midi CC events have no event-IDRobin Gareus
Prior to this change the last iterator's ID was used. (event's ID was not updated for CCs)
2015-09-18fix ever increasing MIDI event IDsRobin Gareus
Iterating over a const Midi-Sequence calls Evoral::Sequence::set_event(), which in turn used Evoral::Event::operator=() which always created a new event-ID (create copy of the event). Issues fixed: - Saving *unmodified* MIDI produced new event-IDs on every save; files changed with every save. - greetings to Deva. - all [GUI] operations that use IDs to refer to notes e.g. undo. invalid undo-history. Also clarify assignment operator name. Prefer explicit assign() over =.
2015-09-15another note-off fix.Robin Gareus
For nearly coincident note-on the sequence does not matter, but note-off must be sent before a new note-on in strict order (could be the same note).
2015-09-14note-off ordering - fixes #6340Robin Gareus
Evoral::Beats::operator>() rounds to (1.0 / PPQN), hardcoded 1/1920.0. If the time difference between two events is smaller than 1/PPQN, Beats::operator>() and Beats::operator<() produce ambiguous results. The same pair of values is both "less than" and "greater than" depending which operator is used. While it's fine for some cases to ignore the order of nearly concurent events, the std::priority_queue must be strictly ordered.
2015-09-13hack around a bug in cppunit/mingw/windows.Robin Gareus
2015-09-13adjust precision to specified value, avoid "0".Robin Gareus
2015-09-13allow to run unit-test under wine from srcdir.Robin Gareus
2015-07-30Replace "%z" modifier with glib macro for portability.Robin Gareus
2015-07-16merge fixBen Loftis
2015-06-29remove const warning in SMF C code by changing function parameter argument ↵Paul Davis
qualifier