Commit graph

197 commits

Author SHA1 Message Date
Paul Davis
5764970709 more work on linking file existence and removability 2014-04-14 03:03:35 -04:00
Paul Davis
b81d57f049 further code simplification and rationalization related to MIDI source/file renaming 2014-04-14 02:17:30 -04:00
Paul Davis
fc691cb3ba after cloning a MIDI region, mark the source file as non-removable. Fixes reports about missing MIDI files on the forums and IRC 2014-04-04 15:26:44 -04:00
Paul Davis
dc4bb5b758 do not crash when considering a directory called midi (with any case) as an apparent MIDI file 2014-02-27 20:35:52 -05:00
Paul Davis
7000afdc66 fix merge conflict with master 2014-01-23 13:41:20 -05:00
Robin Gareus
1e3ad60eb6 take all tracks inside a midi-file into account when loading model
* fixes [region] length calculation,
* prepare for auditioning midi files (one track plays it all)
2014-01-22 15:30:14 +01:00
Robin Gareus
9e799c6146 open external [read-only] midi-files on construction 2014-01-22 15:30:09 +01:00
Paul Davis
15be154515 use g_unlink() rather than unlink() universally, requires <glib/gstdio.h> in several files 2013-07-15 14:29:00 -04:00
Paul Davis
25a7748068 match *.[mM][iI][dD][iI]$ as well as *.[mM][iI][dD] files when looking for MIDI files 2013-03-14 22:31:32 -04:00
David Robillard
e781c1cf0d Fix MIDI loop recording.
This changes how things work a bit, but I am committing it for 3.0 since the
previous revision often crashed (and never worked), this one seems to work
fine, and the code is quite a bit more cogent.

I have tested the following use cases with live input and audible output:

 * Non-loop recording, armed before roll
 * Non-loop recording, arm while rolling
 * Loop recording, armed before roll
 * Loop recording, arm during roll

In the last case, the source/region is created starting at the loop start
rather than the current transport frame as usual so time makes sense when it
wraps around.

See the documentation added to the code for details, but the basic idea here is
to simply push MIDI events to the source with increasing monotonic time,
ignoring looping altogether.  Essentially we pretend the loop does not exist,
but the source knows all the details so it can implement whatever behaviour is
appropriate.

Currently, this is simply recording a complete non-destructive copy of the
input, which is a good thing.  Perhaps not what the user expects of loop
recording, but at least it works and is one sensible option.  We will need to
add more later.

Display while recording is a little bit wacky, but whatever.


git-svn-id: svn://localhost/ardour2/branches/3.0@13940 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-21 06:00:15 +00:00
David Robillard
76547b5c4b More style-only changes.
git-svn-id: svn://localhost/ardour2/branches/3.0@13939 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-21 02:35:53 +00:00
Paul Davis
e2ec54216b use regex to match [mM][iI][dD] file extension for MIDI files, thus making it case-insensitive (fixes #5231)
git-svn-id: svn://localhost/ardour2/branches/3.0@13855 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-16 17:09:52 +00:00
Paul Davis
760ccbabfb add -Wpointer-arith -Wcast-qual -Wcast-align and others to compile flags, and fix const cast warnings generated by new flags
git-svn-id: svn://localhost/ardour2/branches/3.0@13124 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-08-10 15:57:09 +00:00
Paul Davis
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
Paul Davis
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
Tim Mayberry
a2f5ff9535 Remove two unnecessary header includes of pbd/mountpoint.h
git-svn-id: svn://localhost/ardour2/branches/3.0@12826 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-23 03:51:39 +00:00
David Robillard
6fa6514cfd Remove over 500 unnecessary includes (including 54 of session.h).
It's slightly possible that this causes trivial build failures on different
configurations, but otherwise shouldn't cause any problems (i.e. no actual
changes other than include/naming/namespace stuff).  I deliberately avoided
removing libardour-config.h since this can mysteriously break things, though a
few of those do seem to be unnecessary.

This commit only targets includes of ardour/*.h.  There is also a very large
number of unnecessary includes of stuff in gtk2_ardour; tackling that should
also give a big improvement in build time when things are modified.


git-svn-id: svn://localhost/ardour2/branches/3.0@12420 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-24 06:09:29 +00:00
Carl Hetherington
2a9ceb74c4 Compute delta time correctly when appending events; the converter must be used to convert a source time, not a delta time, otherwise tempo / meter changes are not correctly accounted for.
git-svn-id: svn://localhost/ardour2/branches/3.0@10963 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-10 13:48:50 +00:00
Paul Davis
bcaccc5ece stop spewing debug output from SMFSource
git-svn-id: svn://localhost/ardour2/branches/3.0@10851 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-01 20:11:22 +00:00
Carl Hetherington
f6d191aec4 Remove debug code.
git-svn-id: svn://localhost/ardour2/branches/3.0@10603 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-15 01:11:32 +00:00
Carl Hetherington
75e6adcf03 Remove unused read/write data count code.
git-svn-id: svn://localhost/ardour2/branches/3.0@10300 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-24 20:45:29 +00:00
David Robillard
18c2ee4a26 Remove dubious Evoral::Event methods that exposed non-const references to members.
git-svn-id: svn://localhost/ardour2/branches/3.0@10239 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-19 18:11:31 +00:00
Paul Davis
c99738d88e try to fix data loss at end of a capture pass for MIDI - add a new virtual method to MidiSource that specifies what should be done with stuck notes, remove duplicate(i hope) _last_flush_frame from SMFSource that mirrored, more or less, MidiSource::_last_write_end; use new virtual method when stopping after capture.
git-svn-id: svn://localhost/ardour2/branches/3.0@9910 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-20 18:13:03 +00:00
Paul Davis
828939a7f5 more MIDI I/O debugging output
git-svn-id: svn://localhost/ardour2/branches/3.0@9901 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-19 11:57:09 +00:00
Paul Davis
a5efa9a500 initial pass at session-renaming functionality
git-svn-id: svn://localhost/ardour2/branches/3.0@9876 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-14 17:41:06 +00:00
Paul Davis
78eafdced6 more midi I/O debugging
git-svn-id: svn://localhost/ardour2/branches/3.0@9873 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-14 12:59:51 +00:00
Paul Davis
1d17d43751 accept .MID as a MIDI file extension, not just .mid
git-svn-id: svn://localhost/ardour2/branches/3.0@9839 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-11 16:10:45 +00:00
Paul Davis
9687e8a667 second half of "bomb out if playlist construction from XML fails"
git-svn-id: svn://localhost/ardour2/branches/3.0@9759 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-22 20:06:10 +00:00
David Robillard
a473d630eb Fix broken whitespace. I'd apologize for the compile times if it was my fault :D
git-svn-id: svn://localhost/ardour2/branches/3.0@9654 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-01 16:50:12 +00:00
Carl Hetherington
d7c836dc07 Ensure that empty drag-created MIDI regions get a file on disk so that there aren't missing file errors on reload (#4024).
git-svn-id: svn://localhost/ardour2/branches/3.0@9486 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-08 23:45:33 +00:00
David Robillard
0906b39918 Fix my name :)
git-svn-id: svn://localhost/ardour2/branches/3.0@9302 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-06 15:00:16 +00:00
Paul Davis
ea9979b4b9 remove Evoral::RingBuffer, which was (a) duplicating PBD::RingBufferNPT and (b) broken; replace it with PBD::RingBufferNPT
git-svn-id: svn://localhost/ardour2/branches/3.0@9212 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-26 19:01:12 +00:00
Paul Davis
3225b24854 move open-on-write call for MIDI into mark_streaming_midi_write_started() so that it works for the fork operation (or any other op that writes a new file)
git-svn-id: svn://localhost/ardour2/branches/3.0@9052 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-03 03:54:28 +00:00
Paul Davis
5e431d1d58 remove entire "stub" file concept; open new audio and MIDI files on demand (at first write); could be a few gotchas with some corner case scenarios, but apparently works OK
git-svn-id: svn://localhost/ardour2/branches/3.0@9038 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-02 17:05:16 +00:00
Carl Hetherington
e47dd1a96a Make sure that the MidiSource constructor doesn't set the wrong _flags.
git-svn-id: svn://localhost/ardour2/branches/3.0@8996 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-01 02:04:34 +00:00
David Robillard
f6ed36a457 Fix more broken whitespace.
git-svn-id: svn://localhost/ardour2/branches/3.0@8314 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-20 22:51:17 +00:00
Carl Hetherington
7d4e03e28e Use a weak_ptr rather than a bald pointer for _midi_source in MidiModel.
git-svn-id: svn://localhost/ardour2/branches/3.0@8228 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-09 21:34:31 +00:00
Carl Hetherington
73192bc1a7 Remove all use of nframes_t.
git-svn-id: svn://localhost/ardour2/branches/3.0@8166 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-03 22:26:29 +00:00
Paul Davis
66a9112d48 add "origin" property to FileSource so that we can track multiple imports
git-svn-id: svn://localhost/ardour2/branches/3.0@7986 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-11-09 18:19:53 +00:00
Carl Hetherington
ba0458cf1f Update recorded MIDI regions as notes arrive. Fixes one cause of infinite note-lengths during record. Fix various problems with multiple captures of MIDI during one pass.
git-svn-id: svn://localhost/ardour2/branches/3.0@7887 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-10-08 14:54:16 +00:00
Carl Hetherington
8222348761 Improve GUI display during MIDI record in various ways.
git-svn-id: svn://localhost/ardour2/branches/3.0@7875 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-10-05 00:27:26 +00:00
Paul Davis
ede4ecbb00 megaopus patch #2 for today: remove nframes64_t and sframes_t from source
git-svn-id: svn://localhost/ardour2/branches/3.0@7792 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-09-17 18:20:37 +00:00
Paul Davis
4d112a8e6b remove Glib::ustring from libardour; allow any characters except '/' and '\' in paths (may cause issues when loading creatively named 2.X sessions; fix a couple of details of name collection and usage from the startup dialog
git-svn-id: svn://localhost/ardour2/branches/3.0@7772 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-09-14 15:45:21 +00:00
Carl Hetherington
f645b4119e Clean up MidiSource::midi_read now that the signed type sframes_t is being used to pass positions around.
git-svn-id: svn://localhost/ardour2/branches/3.0@7726 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-09-01 01:50:24 +00:00
Carl Hetherington
e315945146 Remove debug output from last commit.
git-svn-id: svn://localhost/ardour2/branches/3.0@7486 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-25 00:48:28 +00:00
Carl Hetherington
7b3e1a1061 Add test for #3356.
git-svn-id: svn://localhost/ardour2/branches/3.0@7485 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-25 00:42:02 +00:00
Paul Davis
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
Paul Davis
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
Paul Davis
082b4a2019 add MidiModel::sync_to_source() to push model state into its existing source; mark SMFSource as non-removable after its called SMF::end_write(); some indentation fixes
git-svn-id: svn://localhost/ardour2/branches/3.0@7350 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-01 18:54:19 +00:00