13
0
Commit Graph

241 Commits

Author SHA1 Message Date
7b6b75f38f forward port automation handling changes from 2.x, upto and including about rev 6981 (will need full testing in the 3.X context). as on 2.x, this removes real-time visual updates to automation curves during write/touch automation recording
git-svn-id: svn://localhost/ardour2/branches/3.0@7653 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-19 21:09:40 +00:00
a4d9d09af5 forward port 2.X changes up to and including rev 6714
git-svn-id: svn://localhost/ardour2/branches/3.0@7635 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-16 19:58:34 +00:00
Carl Hetherington
5e3ca4db5c Support cut / copy / paste of MIDI automation.
git-svn-id: svn://localhost/ardour2/branches/3.0@7545 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-05 13:36:38 +00:00
ece5093234 change Control::{set,get}_float to Control::{set,get}_double and make almost all Control-related stuff use double rather than random mixtures of float, double and some integer value ; make hans' program change stuff work quite a bit better (not finished yet) including keyboard edting of pgm change values
git-svn-id: svn://localhost/ardour2/branches/3.0@7514 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-27 14:09:16 +00:00
Carl Hetherington
6a9758dbcc Fix case where the working range for the interpolation can be chosen wrongly if start is after the cached point's time. Should fix #3356.
git-svn-id: svn://localhost/ardour2/branches/3.0@7495 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-25 23:20:31 +00:00
Carl Hetherington
115083c13d Remove end of SearchCache as it is not used (it's always set to DBL_MAX)
git-svn-id: svn://localhost/ardour2/branches/3.0@7493 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-25 23:19:43 +00:00
Carl Hetherington
93a3b1a221 Remove test that will never fire.
git-svn-id: svn://localhost/ardour2/branches/3.0@7489 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-25 01:47:18 +00:00
c685724c80 step editing now accessed via a context menu on MIDI track rec-enable buttons. along the way, fixed up confusion between set_rec_enable() and set_rec_enabled() methods in Route/Track/Diskstream
git-svn-id: svn://localhost/ardour2/branches/3.0@7482 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-24 16:40:56 +00:00
75fb4557e5 removed #if 0 code
git-svn-id: svn://localhost/ardour2/branches/3.0@7461 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-21 17:46:45 +00:00
6ef49a0b86 force creation of MIDI (SMF) files on disk whenever an SMF object is created, to avoid "source exists but no file don disk exists" issue
git-svn-id: svn://localhost/ardour2/branches/3.0@7459 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-21 13:02:58 +00:00
bf91ed99ec add note IDs and use them for looking up notes during a history rebuild. NOTE: INVALIDATES OLDER HISTORY FILES
git-svn-id: svn://localhost/ardour2/branches/3.0@7449 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-20 16:27:34 +00:00
c8e3f32533 newly created files for use in recording appear in a .stubs folder, and are moved out of it when recording stops
git-svn-id: svn://localhost/ardour2/branches/3.0@7426 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-16 14:55:11 +00:00
Carl Hetherington
593b421180 A few fixes to interpolation of MIDI controller data. Don't interpolate
when writing these data back to a source, otherwise surprising new
interpolated points appear in MIDI automation.  Similarly don't interpolate
when reading the model during MIDI stretch.  Fix handling of interpolation state;
controllers that have been set by the user to use a different interpolation style
are noted in the <Source> tag of the session file and this state is sprayed around
to MidiModel and the GUI as necessary.


git-svn-id: svn://localhost/ardour2/branches/3.0@7409 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-14 00:58:15 +00:00
Carl Hetherington
d1b4599725 Mark Sequence as edited when one of its parent ControlSet's ControlLists is changed.
git-svn-id: svn://localhost/ardour2/branches/3.0@7404 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-12 00:41:45 +00:00
d3a4655ddd allow zero length MIDI files again and remove debug output
git-svn-id: svn://localhost/ardour2/branches/3.0@7347 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-01 15:02:18 +00:00
37978aa214 lots of details relating to MIDI file management; try to ignore ALSA sequencer MIDI ports named "Midi-Through"
git-svn-id: svn://localhost/ardour2/branches/3.0@7305 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-26 13:45:59 +00:00
Carl Hetherington
ecb0cd5d11 Make MIDI region `automation' respect the automation mode so that it is
only played back if the automation mode is set to "Play".  Munge AutoState
for AutomationRegionViews so that they reflect their AutomationTimeAxisView's
setting.  Fixes #3135.


git-svn-id: svn://localhost/ardour2/branches/3.0@7304 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-25 20:47:09 +00:00
f4401c5928 midway snapshot of work done on managing Region & Source lifetimes correctly. may fix missing MIDI file bug ; save empty playlists because they may be referred to by the history file ; undo commands auto-delete when objects they refer to die (currently not commands built from XML deserialization); Sources now know how many regions are using them for something, meaning that we know if we can delete the files holding any data for the source
git-svn-id: svn://localhost/ardour2/branches/3.0@7291 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-23 20:14:07 +00:00
Carl Hetherington
40ffadf219 Return delta time even for metadata events. Should fix #3244.
git-svn-id: svn://localhost/ardour2/branches/3.0@7282 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-20 22:49:35 +00:00
c158c44fab make note overlap resolution store side effects in a DiffCommand, and add its changes to the DiffCommand being executed, so as to retain "internal" note property changes across undo
git-svn-id: svn://localhost/ardour2/branches/3.0@7256 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-14 23:43:10 +00:00
fddb377812 introduce the notion that note additions and property changes can cause the removal of other notes because of overlaps; merge Diff and Delta commands in MidiModel; fix marshalling of notes to avoid float->int conversion of length+time properties; initial implementation (not tested much so far) of different policies for how to handle note overlaps
git-svn-id: svn://localhost/ardour2/branches/3.0@7254 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-12 13:55:22 +00:00
db1fa42f14 start tracking note overlaps while moving notes
git-svn-id: svn://localhost/ardour2/branches/3.0@7228 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-03 21:27:36 +00:00
9208598c26 Sequence::contains() and Sequence::overlaps() now use pitch-based indexing to speed things up in pathological cases
git-svn-id: svn://localhost/ardour2/branches/3.0@7221 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-03 15:58:15 +00:00
460d2d0675 add channel+pitch indexing for notes in a Sequence
git-svn-id: svn://localhost/ardour2/branches/3.0@7217 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-02 19:55:37 +00:00
0cd3bd4f19 rationale pathways that add notes to Sequence<T> so that there is only final insertion step; when changing note properties that affect "indexing" within a Sequence<T> (i.e. via set<T,comparator> indexing/ordering/hashing), remove the note and add it back so that indexing stays consistent; fix marshalling of MidiModel::DiffCommand (boost::bind(&Object::method, reference_to_object) will COPY the reference, so use a pointer); fix MidiModel::find_note() to compare note properties not pointer addresses
git-svn-id: svn://localhost/ardour2/branches/3.0@7203 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-01 20:40:45 +00:00
df99f37047 add missing (new) file
git-svn-id: svn://localhost/ardour2/branches/3.0@7200 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-01 01:22:37 +00:00
db67064296 switch Evoral::Sequence debugging to use DEBUG_TRACE(); Sequence uses multiset<...,EarlierNoteComparator> for _write_notes, does FIFO note resolution for overlapping notes in SMF file; implement Sequence::overlaps() ... current use is uncertain; ARDOUR::coverage() uses 64bit framepos_t
git-svn-id: svn://localhost/ardour2/branches/3.0@7199 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-05-31 19:47:15 +00:00
60ec5dd339 provide a generalized Sequence::get_notes()-by-predicate method, and prototypes for 2 future methods
git-svn-id: svn://localhost/ardour2/branches/3.0@7191 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-05-28 21:36:38 +00:00
Carl Hetherington
d0d160e566 Fix crash on clear option for automation tracks (#3195). Also fix state change signalling so that lines reappear on undoing a clear.
git-svn-id: svn://localhost/ardour2/branches/3.0@7178 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-05-27 12:26:00 +00:00
a196405da9 various minor MIDI fixes: prevent duplicate note entry with mouse, show note info more often with verbose cursor, fix some crashes from click+move on notes ... lots more where this comes from
git-svn-id: svn://localhost/ardour2/branches/3.0@7128 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-05-20 22:38:12 +00:00
e258b2622a MIDI region forking, plus Playlist::regions_to_read() fix forward ported from 2.X. region forking requires a few cleanups
git-svn-id: svn://localhost/ardour2/branches/3.0@7118 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-05-19 03:03:28 +00:00
Carl Hetherington
f1114dedee Move FileManager code into libpbd. Use it for SMF read/write.
git-svn-id: svn://localhost/ardour2/branches/3.0@7108 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-05-16 20:54:50 +00:00
Carl Hetherington
ed9d42c55d Some comments and minor cleanup.
git-svn-id: svn://localhost/ardour2/branches/3.0@6988 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-04-26 00:22:26 +00:00
ce7a5e1c9f the Properties & 64bit region commit
git-svn-id: svn://localhost/ardour2/branches/3.0@6695 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-02-18 13:59:49 +00:00
ea63af333e fix up note names (from Don F, via SoftWerk)
git-svn-id: svn://localhost/ardour2/branches/3.0@6649 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-02-08 19:36:25 +00:00
Carl Hetherington
797cd64d12 Coding style.
git-svn-id: svn://localhost/ardour2/branches/3.0@6642 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-02-07 02:48:07 +00:00
Carl Hetherington
420e28f4d8 Coding style cleanups. Preserve mono state in XML for panners.
git-svn-id: svn://localhost/ardour2/branches/3.0@6640 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-02-07 02:45:55 +00:00
Taybin Rutkin
52b4b464f9 Merged revisions 6292,6294-6295,6311,6314 via svnmerge from
svn+ssh://ardoursvn@subversion.ardour.org/ardour2/branches/build_fixes

........
  r6292 | trutkin | 2009-12-05 08:31:25 -0500 (Sat, 05 Dec 2009) | 1 line
  
  remove scons build files
........
  r6294 | trutkin | 2009-12-05 09:11:17 -0500 (Sat, 05 Dec 2009) | 2 lines
  
  cairomm
  remove unnecessary vendor libraries as we now rely on the developer to install them
........
  r6295 | trutkin | 2009-12-05 09:12:54 -0500 (Sat, 05 Dec 2009) | 2 lines
  
  soundtouch
  remove unnecessary vendor libraries as we now rely on the developer to install them
........
  r6311 | trutkin | 2009-12-05 23:38:49 -0500 (Sat, 05 Dec 2009) | 2 lines

  glibmm2, gtkmm2, libgnomecanvasmm, sigc++2  
  remove unnecessary vendor libraries as we now rely on the developer to install them
........
  r6314 | trutkin | 2009-12-06 09:15:49 -0500 (Sun, 06 Dec 2009) | 4 lines
  
  remove scons referencing from Makefile
  
  - TODO: should move cscope stuff to waf and get rid of the Makefile
........


git-svn-id: svn://localhost/ardour2/branches/3.0@6315 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-06 14:21:46 +00:00
82a0c02af1 Fix controller iteration / linear interpolation.
Add unit test for controller iteration / linear interpolation.


git-svn-id: svn://localhost/ardour2/branches/3.0@5886 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-23 04:24:20 +00:00
653a487bbd Fix whitespace.
git-svn-id: svn://localhost/ardour2/branches/3.0@5885 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-23 03:58:11 +00:00
f68f8839a5 Sshh.
git-svn-id: svn://localhost/ardour2/branches/3.0@5884 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-23 03:57:52 +00:00
7524b90985 Fix compilation with DEBUG_SEQUENCE on.
git-svn-id: svn://localhost/ardour2/branches/3.0@5883 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-23 03:32:54 +00:00
c78108a033 Fix yet more crazy tabs.
git-svn-id: svn://localhost/ardour2/branches/3.0@5881 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-23 02:49:12 +00:00
3fd5f15e26 Indentation.
git-svn-id: svn://localhost/ardour2/branches/3.0@5874 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-22 22:05:49 +00:00
382a79eda5 Remove linear search when adding/removing a note from/to a Sequence.
git-svn-id: svn://localhost/ardour2/branches/3.0@5870 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-22 21:33:05 +00:00
d98c8e8fa4 Replace horribly error-prone Sequence/MidiModel/MidiSource locking API with scoped locks that automatically Do The Right Thing.
Make Sequence::read_lock const correct in the process (a read lock can be taken out on a const Sequence, but not a write lock).


git-svn-id: svn://localhost/ardour2/branches/3.0@5857 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-22 16:15:36 +00:00
4b01242df1 Fix failed assertion when end_write is called multiple times.
Bad logic, but oh well, doesn't hurt.


git-svn-id: svn://localhost/ardour2/branches/3.0@5850 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-21 22:21:44 +00:00
86a09c58e3 Fix O(n) search on MIDI rec region update (now O(log(n)) per update, but could be O(1) with caching...)
git-svn-id: svn://localhost/ardour2/branches/3.0@5843 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-21 16:39:39 +00:00
a86b994c68 Logarithmic note seek for Sequence iterator.
git-svn-id: svn://localhost/ardour2/branches/3.0@5803 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-19 16:23:08 +00:00
cb8407d26f Use set over vector for Sequence::Notes, for logarithmic search by time.
git-svn-id: svn://localhost/ardour2/branches/3.0@5798 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-19 15:23:42 +00:00
bb9cc45cd2 Strip trailing whitespace and fix other whitespace errors (e.g. space/tab mixing). Whitespace changes only.
Vimmers, try let c_space_errors = 1 in your .vimrc to highlight this kind of stuff in red.  I don't know the emacs equivalent...


git-svn-id: svn://localhost/ardour2/branches/3.0@5773 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-14 16:10:01 +00:00
fa4e858eb3 do not allow smf_source's reads to stomp on cached read_end position in parent class, which creates chaos by being out of sync with MidiSource::_model_iterator. this doesn't totally fix MIDI playback, but it helps
git-svn-id: svn://localhost/ardour2/branches/3.0@5665 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-09-16 01:08:51 +00:00
bf0a99f0c0 fix up marshall/unmarshall of note data for MidiModel::DiffCommand
git-svn-id: svn://localhost/ardour2/branches/3.0@5662 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-09-14 16:01:32 +00:00
837bfc9af4 the start (only the start) of MIDI diff commands
git-svn-id: svn://localhost/ardour2/branches/3.0@5637 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-09-06 18:11:55 +00:00
3845af6ce9 lots of MIDI editing stuff. to be explained on the website when its done
git-svn-id: svn://localhost/ardour2/branches/3.0@5596 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-08-27 03:09:30 +00:00
Carl Hetherington
dffd30baf9 Fix uninitialised member variable.
git-svn-id: svn://localhost/ardour2/branches/3.0@5570 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-08-23 18:31:34 +00:00
3162ffb4f4 move assignments out of assert() in editor_drag (thanks lincoln); change mouse mode buttons when in internal/MIDI mode; arrow key control of note velocity, value and position - hey look ma, MIDI editing!
git-svn-id: svn://localhost/ardour2/branches/3.0@5539 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-08-17 15:58:47 +00:00
Carl Hetherington
902a087f15 Fix uninitialised variable.
git-svn-id: svn://localhost/ardour2/branches/3.0@5535 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-08-17 01:41:35 +00:00
0178875021 MIDI cut&paste round two (not done yet); a small region trim fix from lincoln s.
git-svn-id: svn://localhost/ardour2/branches/3.0@5517 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-08-13 01:57:03 +00:00
Carl Hetherington
b65f8073ba Fix some unused parameter warnings.
git-svn-id: svn://localhost/ardour2/branches/3.0@5403 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-07-21 15:55:17 +00:00
Carl Hetherington
01217e64f8 Patch from agorka to add some includes required for building with the GCC shipped with Ubuntu Karmic.
git-svn-id: svn://localhost/ardour2/branches/3.0@5098 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-18 00:21:17 +00:00
7183242b8c The great audio processing overhaul.
The vast majority of Route signal processing is now simply in the list of
processors.  There are definitely regressions here, but there's also
a lot of things fixed.  It's far too much work to let diverge anymore
regardless, so here it is.

The basic model is: A route has a fixed set of input channels (matching
its JACK input ports and diskstream).  The first processor takes this
as input.  The next processor is configured using the first processor's
output as input, and is allowed to choose whatever output it wants
given that input... and so on, and so on.  Finally, the last processor's
requested output is used to set up the panner and create whatever Jack
ports are needed to output the data.

All 'special' internal processors (meter, fader, amp, insert, send) are
currently transparent: they read any input, and return the same set
of channels back (unmodified, except for amp).

User visible changes:
 * LV2 Instrument support (tracks with both MIDI and audio channels)
 * MIDI in/out plugin support
 * Generic plugin replication (for MIDI plugins, MIDI/audio plugins)
 * Movable meter point

Known Bugs:
 * Things seem to get weird on loaded sessions
 * Output delivery is sketchy
 * 2.0 session loading was probably already broken...
   but it's definitely broken now :)

Please test this and file bugs if you have any time...



git-svn-id: svn://localhost/ardour2/branches/3.0@5055 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-07 06:30:50 +00:00
b034d9d05a Maybe fix assertion crash.
git-svn-id: svn://localhost/ardour2/branches/3.0@5031 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-04 02:15:16 +00:00
e0aaed6d65 *** NEW CODING POLICY ***
All #include statements that include a header that is a part of a library
bundled with ardour MUST use quotes, not angle brackets.

Do this:

#include "ardour/types.h"

NOT this:

#include <ardour/types.h>

Rationale:

This is best practice in general, to ensure we include the local version
and not the system version.  That quotes mean "local" (in some sense)
and angle brackets mean "system" (in some sense) is a ubiquitous
convention and IIRC right in the C spec somewhere.

More pragmatically, this is required by (my) waf (stuff) for dependencies
to work correctly.  That is:

!!! FAILURE TO DO THIS CAN RESULT IN BROKEN BUILDS !!!

Failure to comply is punishable by death by torture. :)

P.S. It's not that dramatic in all cases, but this (in combination with some
GCC flags specific to the include type) is the best way I have found to be
absolutely 100% positive the local ones are being used (and we definitely
want to be absolutely 100% positive on that one).


git-svn-id: svn://localhost/ardour2/branches/3.0@4655 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-25 18:26:51 +00:00
75c15679bf Only create a Curve for an AutomationList if we need it.
Fix crash on crossfade editor show (ticket 2442).


git-svn-id: svn://localhost/ardour2/branches/3.0@4641 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-19 19:42:25 +00:00
f219a53744 Fix deadlock and potential race condition when editing MIDI.
git-svn-id: svn://localhost/ardour2/branches/3.0@4614 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-17 06:09:37 +00:00
022818b4a7 Fix the horrible mess that was anything related to sources and paths.
Most significant changes:

 - Factor out FileSource from AudioFileSource, use for SMFSource too
 - Explicitly pass embedded rather than mysterious name mangling or whatever
 - Destroy a ton of duplicated or very-nearly-duplicated code
 - Clean up and document all that weird source stuff in session.cc


git-svn-id: svn://localhost/ardour2/branches/3.0@4609 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-17 02:11:49 +00:00
Sampo Savolainen
87c7b62103 Fix memory leak.
git-svn-id: svn://localhost/ardour2/branches/3.0@4606 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-16 19:06:27 +00:00
f12cfb3d87 Fix crash iterating over sequences with no controls (and Sequence iterator sanity in general).
git-svn-id: svn://localhost/ardour2/branches/3.0@4602 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-16 07:02:28 +00:00
0ef53a2d34 Fix crash on iteration over an empty sequence and/or recording controllers only.
git-svn-id: svn://localhost/ardour2/branches/3.0@4596 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-16 04:46:06 +00:00
93d7040d04 Fix deadlock issues.
Add IdentityConverter for when no conversion is actually needed.


git-svn-id: svn://localhost/ardour2/branches/3.0@4595 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-16 04:39:34 +00:00
fd1a3cfa4c Gracefully ignore illegal MIDI events at the buffer level (i.e. from Jack).
Ardour should now be able to more or less tolerate crazy incoming MIDI (except for SYSEX).


git-svn-id: svn://localhost/ardour2/branches/3.0@4592 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-16 00:53:26 +00:00
85ab341795 Gracefully ignore illegal MIDI events.
git-svn-id: svn://localhost/ardour2/branches/3.0@4591 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-16 00:36:11 +00:00
473170200d Rewrite Sequence::const_iterator.
Fixes crash bug when seeking back and forth from start to end of session.
Not sure about other things, but it makes a lot more sense now anyway...


git-svn-id: svn://localhost/ardour2/branches/3.0@4590 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-16 00:16:28 +00:00
72f2f6e47e Clean up fugly debug printing stuff.
git-svn-id: svn://localhost/ardour2/branches/3.0@4588 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-15 22:10:32 +00:00
3cfb9126af Fix crash on reading meta event.
git-svn-id: svn://localhost/ardour2/branches/3.0@4586 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-15 20:50:20 +00:00
59972b5550 Factor out region layering.
Correctly layer automation regions to match the stacking of their 'real' counterparts.


git-svn-id: svn://localhost/ardour2/branches/3.0@4585 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-15 20:31:05 +00:00
425966a696 Make smf_track_get_next_event gracefully handle empty tracks.
git-svn-id: svn://localhost/ardour2/branches/3.0@4581 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-15 17:16:58 +00:00
74ff55f835 Tidy, remove dead code.
git-svn-id: svn://localhost/ardour2/branches/3.0@4576 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-15 03:00:04 +00:00
67ce82c9b4 Shutup.
git-svn-id: svn://localhost/ardour2/branches/3.0@4574 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-15 02:14:23 +00:00
5d519f8bb1 De-templatify Evoral::SMF which has no concept of time other than SMF time.
git-svn-id: svn://localhost/ardour2/branches/3.0@4571 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-15 01:32:41 +00:00
5a48f99f72 Use nframes_t for timestamps of real (jack) time MIDI events (i.e. in MidiBuffer and MidiRingBuffer).
Use iterator interface of Sequence to read events in a MIDISource rather than Sequence::read, avoiding timestamp confusion.
Disable no longer useful Sequence::read.


git-svn-id: svn://localhost/ardour2/branches/3.0@4570 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-15 01:24:26 +00:00
de2681f7cd Remove superfluous typedefs.
Don't set range on sysex parameters (fix warning).


git-svn-id: svn://localhost/ardour2/branches/3.0@4568 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-14 23:41:05 +00:00
d0cc3120ae Make SMF::append_event_delta take a buffer and a size rather than an Event (no point, more generic, etc.).
git-svn-id: svn://localhost/ardour2/branches/3.0@4567 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-14 22:52:38 +00:00
ea37584cac Const correctness.
git-svn-id: svn://localhost/ardour2/branches/3.0@4566 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-14 22:49:25 +00:00
f8d171d297 Remove unused (and timestamp type nasty) last_event_time() from SMF.
I swear I already did this.


git-svn-id: svn://localhost/ardour2/branches/3.0@4564 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-14 22:40:55 +00:00
3d4d0477f6 While I'm doing trivial prettification things and not giving a damn about superficial divergence:
- Remove tab width assumption in struct members that looked atrocious at ts=4
- Line up function names for easier/faster readability


git-svn-id: svn://localhost/ardour2/branches/3.0@4563 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-14 22:32:36 +00:00
1fd221ed1c Line wrap at 100 lines so I can read things :).
Formatting changes only.


git-svn-id: svn://localhost/ardour2/branches/3.0@4562 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-14 22:27:17 +00:00
cdbb1f898e Update for libsmf API changes.
git-svn-id: svn://localhost/ardour2/branches/3.0@4561 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-14 22:23:40 +00:00
8249cfb6a7 Fix types to be warning clean on 64 bit.
git-svn-id: svn://localhost/ardour2/branches/3.0@4560 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-14 22:22:55 +00:00
80e54c6ea0 MIDI robustness.
- Separate SMF::open and SMF::create, more powerful interface for both.
- Correctly handle note ons with velocity 0 as note offs in sequence.
- Use SMF (i.e. libsmf) for MIDI import


git-svn-id: svn://localhost/ardour2/branches/3.0@4558 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-14 20:52:15 +00:00
b2a051f6c6 More powerful SMF::open interface.
git-svn-id: svn://localhost/ardour2/branches/3.0@4554 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-14 17:54:45 +00:00
d439459589 Remove abstract MIDIFile interface (maintaining interface with old crap was getting annoying).
git-svn-id: svn://localhost/ardour2/branches/3.0@4553 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-14 17:39:49 +00:00
5ffdf1857e LibSMF -> SMF
git-svn-id: svn://localhost/ardour2/branches/3.0@4552 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-14 17:35:34 +00:00
6314c69971 SMF -> OldSMF
git-svn-id: svn://localhost/ardour2/branches/3.0@4551 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-14 17:28:57 +00:00
Hans Baier
e7c7c33563 * Evoral: SMFTest: added createNewFileTest (passes)
git-svn-id: svn://localhost/ardour2/branches/3.0@4540 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-12 23:28:51 +00:00
Hans Baier
9d33176b49 * Swapped MidiSource to LibSMF
* integrated libsmf into scons


git-svn-id: svn://localhost/ardour2/branches/3.0@4539 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-12 23:28:32 +00:00
550613a898 verbosity--
git-svn-id: svn://localhost/ardour2/branches/3.0@4536 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-11 20:47:40 +00:00
3d1b648130 Remove unused (and weirdly typed) time parameter from begin_write.
Fix append_event_unlocked shadowing.


git-svn-id: svn://localhost/ardour2/branches/3.0@4535 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-11 20:37:22 +00:00
43c9e2a121 verbosity--
git-svn-id: svn://localhost/ardour2/branches/3.0@4534 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-11 20:20:41 +00:00
9579ea0801 StandardMIDIFile -> MIDIFile.
git-svn-id: svn://localhost/ardour2/branches/3.0@4533 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-11 20:15:25 +00:00
33bbc5cd84 Detect libsmf error and throw exceptions.
git-svn-id: svn://localhost/ardour2/branches/3.0@4532 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-11 17:59:33 +00:00
13bcd43423 Include stripped down libsmf code internally.
git-svn-id: svn://localhost/ardour2/branches/3.0@4531 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-11 17:38:40 +00:00
Hans Baier
947077c12e * introduced dependency: libsmf-1.2
* extracted Interface from SMF: StandardMIDIFile
* first implementation of StandardMIDIFile based on libsmf that passes basic test


git-svn-id: svn://localhost/ardour2/branches/3.0@4529 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-11 09:54:31 +00:00
Hans Baier
fe4e98a729 *Evoral: Sequence: forgot to commit that
git-svn-id: svn://localhost/ardour2/branches/3.0@4524 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-11 00:00:41 +00:00
Hans Baier
ce8065fea8 * Evoral::Sequence: conditional compile for debugging output
git-svn-id: svn://localhost/ardour2/branches/3.0@4522 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-10 23:57:52 +00:00
Hans Baier
494e7feec6 * Code readability: Template parameter <T> -> <Time>
git-svn-id: svn://localhost/ardour2/branches/3.0@4521 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-10 22:06:56 +00:00
Hans Baier
1872d48507 *Evoral::SMF fix reading/writing of SysEx Events
git-svn-id: svn://localhost/ardour2/branches/3.0@4517 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-10 08:43:35 +00:00
Hans Baier
9734fa3e93 * Sequence: added asserts
* sequence.cpp completed first test


git-svn-id: svn://localhost/ardour2/branches/3.0@4504 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-09 08:49:57 +00:00
Hans Baier
3d594b460b * Add SysEx Support to MidiModel / SMF
git-svn-id: svn://localhost/ardour2/branches/3.0@4492 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-06 20:31:00 +00:00
Hans Baier
db77cb9212 * more pleasant template parameter names in (MIDI)Event
git-svn-id: svn://localhost/ardour2/branches/3.0@4487 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-03 08:46:44 +00:00
Hans Baier
5c73fc42c4 * midi_event_size(uchar status): return size including status / handle sysex
git-svn-id: svn://localhost/ardour2/branches/3.0@4486 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-03 08:46:24 +00:00
166ef64e3d Make (MIDI) event time stamp type a template parameter.
git-svn-id: svn://localhost/ardour2/branches/3.0@4473 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-02 02:36:05 +00:00
ead5dd4568 Tidy.
git-svn-id: svn://localhost/ardour2/branches/3.0@4472 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-02 00:20:18 +00:00
Hans Baier
6fe0dc459e * enlage MidiBuffer size to 128 bytes to allow for sysex events
git-svn-id: svn://localhost/ardour2/branches/3.0@4462 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-01-30 06:21:14 +00:00
Hans Baier
582555c337 * re-enable assertion about controller values (probably corrupt data in my Session)
git-svn-id: svn://localhost/ardour2/branches/3.0@4461 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-01-30 00:27:02 +00:00
Hans Baier
a1234aa21e * loosened assertion about controller to UINT8_MAX allow for (real-world) nonstandard events
git-svn-id: svn://localhost/ardour2/branches/3.0@4458 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-01-29 00:18:20 +00:00
a5a3d39366 Remove nonsense comment.
git-svn-id: svn://localhost/ardour2/branches/3.0@4457 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-01-28 19:30:42 +00:00
Hans Baier
b04ead74ff * Set Discrete mode as default until Linear mode works properly
git-svn-id: svn://localhost/ardour2/branches/3.0@4455 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-01-28 09:49:42 +00:00
Hans Baier
d9416a3a6a * Fixed bug: Discrete control lists are generally not played back
git-svn-id: svn://localhost/ardour2/branches/3.0@4454 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-01-28 07:52:40 +00:00
Hans Baier
3705a2d630 * MIDI control lanes: Set Interpolationtype according to Parameter
git-svn-id: svn://localhost/ardour2/branches/3.0@4452 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-01-28 04:55:31 +00:00
Hans Baier
5309c327ec * make MIDI-specific menu show up on all MIDI lanes
* style guide, comments and a little refactoring (remove duplication)


git-svn-id: svn://localhost/ardour2/branches/3.0@4422 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-01-21 10:20:27 +00:00
c5aa717828 Sync with http://svn.drobilla.net/lad/trunk/evoral r1891.
(Only change: use #include "" instead of #include <> for local include paths).


git-svn-id: svn://localhost/ardour2/branches/3.0@4335 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-21 20:36:15 +00:00
Carl Hetherington
2ebb1af299 Implement #2425: option for automation to follow region moves.
git-svn-id: svn://localhost/ardour2/branches/3.0@4326 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-16 23:21:01 +00:00
Hans Baier
6c1f365515 * reenabled assertions after irc-ing with drobilla
git-svn-id: svn://localhost/ardour2/branches/3.0@4311 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-12 05:21:06 +00:00
Hans Baier
ddbd296698 * converted two especially obnoxious assertions into warnings since they hinder my work and nobody seems to care about those issues anyway
git-svn-id: svn://localhost/ardour2/branches/3.0@4309 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-12 03:34:36 +00:00
Hans Baier
2f07b77503 * added XML deserialisation for control and program changes
* added pointer checks
* fixed typos in comments


git-svn-id: svn://localhost/ardour2/branches/3.0@4234 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-11-22 15:40:19 +00:00
1d4b3c2f05 fix nasty bug in evaluation of final step of interpolated Curve values
git-svn-id: svn://localhost/ardour2/branches/3.0@4085 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-11-03 07:41:53 +00:00
1514039689 Fix pollution of global namespace by Evoral.
git-svn-id: svn://localhost/ardour2/branches/3.0@3947 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-10-13 02:43:14 +00:00
9a30bb2aec Separate low level details of SMF reading/writing from concept of 'midi source in ardour'.
git-svn-id: svn://localhost/ardour2/branches/3.0@3839 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-30 00:45:26 +00:00
b5ec66ae6c Can't call the wrong function when there's only one of them: remove ARDOUR::Parameter and just use Evoral::Parameter (move Ardour specific functionality to EventTypeMap where it belongs).
Less than pretty in places but easily seddable just in case...


git-svn-id: svn://localhost/ardour2/branches/3.0@3838 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-29 22:47:40 +00:00
598c3cc958 Fix shadowing problem with *Control::set_value.
Fix nasty situation when setting value on a plugin automation control that's playing back.


git-svn-id: svn://localhost/ardour2/branches/3.0@3823 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-28 21:20:43 +00:00
ffaf827d93 Eliminate a ton of unnecessary complete redrawing in MIDI stream views:
Only resize vertically (don't reaload model) on range changes.
Keep track of range in model while loading (writing to model), rather than double display MIDI regions to find out.
Don't go crazy and chew CPU blinking around and doing nothing on initial show of MIDI track context menu.
Change radio 'full range' and 'contents range' menu items to non-radio actions that just set the range appropriately.
Fix crashes on some esoteric case of control data I can't figure out, but fixed anyway, so I guess it all worked out well in the end for everybody.


git-svn-id: svn://localhost/ardour2/branches/3.0@3794 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-23 02:40:29 +00:00
9aad7b5727 Speed up MIDI import (and non-cached cases of ControlList::eval) by a factor of roughly eleventy billion.
git-svn-id: svn://localhost/ardour2/branches/3.0@3790 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-22 17:47:21 +00:00
a23d6cd50c Fix loading midi controller data.
git-svn-id: svn://localhost/ardour2/branches/3.0@3788 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-22 16:59:32 +00:00
a2d2f738cb Move event specific ringbuffer stuff to evoral.
Sane event type interface between evoral and libardour (no more shared magic numbers).
Cleanup Evoral::Sequence iterator, fix bugs, probably introduce new ones.
Move MIDI specific event functions to Evoral::MIDIEvent (is-a Evoral::Event).


git-svn-id: svn://localhost/ardour2/branches/3.0@3785 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-22 16:28:02 +00:00
ca12fe9733 Fix CC interpolation (i.e. output a maximum reslution stream of CC for a line segment).
git-svn-id: svn://localhost/ardour2/branches/3.0@3781 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-21 17:11:11 +00:00
e14187aadd Display recorded controller data (fix show all/existing automation).
git-svn-id: svn://localhost/ardour2/branches/3.0@3779 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-21 16:17:02 +00:00
6f8cd63450 chris goddard's region list patch; port 2.X marker drag/move changes to 3.0; compilation fixes-post-evoral
git-svn-id: svn://localhost/ardour2/branches/3.0@3760 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-19 14:38:46 +00:00
60f588f21d Fix parameter range stuff and automation time axis height (somewhat...).
Create a new AutomationLine when an AutomationRegionView without a line is clicked.


git-svn-id: svn://localhost/ardour2/branches/3.0@3757 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-19 06:30:49 +00:00
d357eca668 Factor out sequencing related things into an independant new library: "evoral".
Anything related to the storage of events/values over a range of time lives in evoral.
This includes MidiModel (Evoral::Sequence) and automation data (AutomationList (Evoral::ControlList),
	Automatable (Evoral::ControlSet), etc).
libs/evoral synced with http://svn.drobilla.net/lad/trunk/evoral r1511.


git-svn-id: svn://localhost/ardour2/branches/3.0@3754 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-19 00:47:49 +00:00