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