13
0
Commit Graph

9920 Commits

Author SHA1 Message Date
1f9b0a86bd fix crash when deleting a processor with a controllable (#5284)
git-svn-id: svn://localhost/ardour2/branches/3.0@13943 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-21 13:20:43 +00:00
76f74b9c88 force jack-disconnected dialog to top (fixes #5291)
git-svn-id: svn://localhost/ardour2/branches/3.0@13942 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-21 13:13:02 +00:00
2586dacf5b Trim the include tree a bit.
git-svn-id: svn://localhost/ardour2/branches/3.0@13941 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-21 07:24:42 +00:00
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
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
b40464e67c Actually flush to disk continuously while MIDI loop recording.
Previously, this calculation was based on the current transport frame and last
time, both absolute, with the effect that loop recording would flush the first
time and never again.

The fix is to keep track of the actual duration of the capture, ignoring the
transport position, and flush as that reaches the threshold.


git-svn-id: svn://localhost/ardour2/branches/3.0@13938 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-21 02:01:59 +00:00
368214b47d More whitespace-only changes.
Apologies for the noise, trying to dice a bunch of changes into reasonable commits...

git-svn-id: svn://localhost/ardour2/branches/3.0@13937 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-21 01:44:36 +00:00
a1d5d6f444 make height of name_label and name_entry the same to avoid button wierdness while track name editing; fix crash caused by nested calls to end_name_edit()
git-svn-id: svn://localhost/ardour2/branches/3.0@13936 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-21 01:37:44 +00:00
58d0fa7240 Fix whitespace.
git-svn-id: svn://localhost/ardour2/branches/3.0@13935 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-21 01:08:43 +00:00
e34470b7bd return to the old way of editing track names, but hopefully better than it was. likely to be some corner case issues still and the issue of how rec-arm interacts with this
git-svn-id: svn://localhost/ardour2/branches/3.0@13934 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-21 00:12:06 +00:00
1ae6d82674 Use rectangle intersection for MIDI note rect select.
git-svn-id: svn://localhost/ardour2/branches/3.0@13933 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 19:39:51 +00:00
d6d7fd8ba3 Fix MIDI region create drag for the eleventy billionth time.
Also make it work for pencil.

This is the canonical Ardour MIDI noob "I can't even create notes, this crap is
impossible to use or doesn't work at all" use case:

1) Create MIDI track
2) Click in that track, with object or pencil tool
3) ** A region is created ** - aha!
4) Click in that region, notes are created

Breaking step 3 ruins everything.  Please don't.


git-svn-id: svn://localhost/ardour2/branches/3.0@13932 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 19:16:58 +00:00
fa8d0268eb Fix compilation with --test.
Make midnam test suite pass again.

The Ardour test suite does not pass.  I commented out old crossfade stuff, but
I am not familiar enough with the parts that fail to fix it.  It might be a
good idea for someone to look into this.  Ideally we'd have the test integrated
into everyone's workflow, but they add quite a few files to compile...


git-svn-id: svn://localhost/ardour2/branches/3.0@13931 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 18:23:42 +00:00
fc7b4b7f62 Comment out duplicate controls. I think there's an error in the manual?
git-svn-id: svn://localhost/ardour2/branches/3.0@13930 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 18:22:02 +00:00
18613cd94d Fix incorrect controller numbers in Minitaur midnam file.
git-svn-id: svn://localhost/ardour2/branches/3.0@13929 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 17:27:14 +00:00
7f769b06f0 More consistent verbose cursor label style for PC flags.
git-svn-id: svn://localhost/ardour2/branches/3.0@13928 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 09:00:53 +00:00
4e6d0c9e61 Show matching controller name in automation lane header.
Completely eliminate static MIDI controller name code.
Reduce dependency on midnam_patch.h (which would have saved me several hours if I did it earlier).
Store controller name numbers as an integer.
Keep controller names in a map keyed by int instead of a list for fast lookup.
More cleanup of MIDI::Name code.


git-svn-id: svn://localhost/ardour2/branches/3.0@13927 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 08:56:00 +00:00
0ebad4279b Fix label in route rename dialog.
Colon seems most consistent, the separate space is to fix the spacing in the dialog while re-using the existing translation string 'New name:'.

git-svn-id: svn://localhost/ardour2/branches/3.0@13924 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 07:37:20 +00:00
64f1a8e893 Error checking string to int conversion from midnam files.
Use const references where appropriate.
Fix incorrect use of (either confusingly named or often abused) Patch tag Number attribute.

git-svn-id: svn://localhost/ardour2/branches/3.0@13923 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 07:33:27 +00:00
022e590429 Fix crash when trimming MIDI region with automation.
This seems impossible, but it happens.  Reproduction instructions:

1) Click in an empty portion of MIDI track to create a region
2) Add a CC lane
3) Click some points into lane (perhaps unnecessary)
4) Switch lane to linear mode (perhaps unnecessary)
5) Attempt to extend region leftward (with draw tool, but probaby doesn't matter)
6) Boom

Note trimming still doesn't work in this case and something seems deeply broken, but at least it doesn't crash now.

git-svn-id: svn://localhost/ardour2/branches/3.0@13922 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 06:57:52 +00:00
bade953de3 Fix crash on verbose note text in regions with no patch changes.
... I think.  Not sure precisely, conditions were fuzzy, I just tortured my
mouse button until I could reproduce it.


git-svn-id: svn://localhost/ardour2/branches/3.0@13921 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 04:52:42 +00:00
f0184e4e6d Clean up midnam data, consistently name default mode "Default"
git-svn-id: svn://localhost/ardour2/branches/3.0@13920 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 04:42:13 +00:00
586484abf0 Support loading MIDI note names in NoteGroup tags as well.
git-svn-id: svn://localhost/ardour2/branches/3.0@13919 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 04:27:12 +00:00
f85bf54e21 Remove extra midnam file for Roland JV-1080.
I can't really make sense of this, they seem to be conflicting and of different origins, but I doubt it's worth my time to figure it out.

Also clean up the other one a bit.

git-svn-id: svn://localhost/ardour2/branches/3.0@13918 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 04:18:22 +00:00
0a0113f18b Remove junk data from Roland JV-1080 and JV-2080 midnam files.
git-svn-id: svn://localhost/ardour2/branches/3.0@13917 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 03:53:39 +00:00
eafbb80501 Make patch changes stand out a little better while also being more monochromatic.
The colour on the text doesn't seem to be what it should be, though.  I think
Gtkmm2ext::convert_bgra_to_rgba might be broken...


git-svn-id: svn://localhost/ardour2/branches/3.0@13916 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 03:47:01 +00:00
16a09cad63 Allow PC flags to be editing with the draw tool as well.
git-svn-id: svn://localhost/ardour2/branches/3.0@13915 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 03:09:43 +00:00
511d68000c Tidy.
git-svn-id: svn://localhost/ardour2/branches/3.0@13914 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 02:49:07 +00:00
f7ada4b323 Add General MIDI drum note names and patch names.
Support loading note names per ChannelNameSet (like GM) in addition to per Patch (like DM5).


git-svn-id: svn://localhost/ardour2/branches/3.0@13913 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 02:41:27 +00:00
411dd7566f Fix completely wrong MidiRegionView::get_patch_key_at().
This fixes the note name displayed at a given time to be based on the correct program at that time, and not one in the future.

git-svn-id: svn://localhost/ardour2/branches/3.0@13912 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 02:31:41 +00:00
4a47edeaf0 Fix MIDI note number off by one error.
Bloody one-based indices...


git-svn-id: svn://localhost/ardour2/branches/3.0@13911 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 01:12:12 +00:00
230c4e080e Fix midnam warning messages.
git-svn-id: svn://localhost/ardour2/branches/3.0@13910 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 00:58:19 +00:00
4cdcacb6b3 Fix ever expanding bank selector in add patch change dialog when changing channel number.
git-svn-id: svn://localhost/ardour2/branches/3.0@13909 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 00:52:05 +00:00
88de45b7cc Support note names from midnam files (tested with the DM5).
Do this via a simple MasterDeviceNames::note_name() function.  The same really
needs to be done for program names, this stuff is absolutely brutal to use.

Store note names in a vector indexed by number instead of a list with string
"numbers" for reasonable lookup time.

Make some references const that should be.


git-svn-id: svn://localhost/ardour2/branches/3.0@13908 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 00:46:55 +00:00
448c156b4b Update patchfiles/README and remove executable bit from all midnam files.
git-svn-id: svn://localhost/ardour2/branches/3.0@13907 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-19 21:42:54 +00:00
13d34afa01 Add midnam file for Roland JV-2080.
git-svn-id: svn://localhost/ardour2/branches/3.0@13906 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-19 21:35:08 +00:00
aaef1f13cb Merge Standard MIDI and General MIDI midnam files.
git-svn-id: svn://localhost/ardour2/branches/3.0@13905 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-19 21:32:27 +00:00
85d9fa3b25 Gracefully handle errors parsing midnam documents instead of crashing.
git-svn-id: svn://localhost/ardour2/branches/3.0@13904 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-19 21:31:21 +00:00
444d89b669 Set MIDI device mode to the first by default if unset.
Give up trying to hide mode selector when it's useless.
Fix display of program names for default mode.
Abstract out (non-crashy) MidiTimeAxisView::get_device_names().


git-svn-id: svn://localhost/ardour2/branches/3.0@13903 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-19 20:15:15 +00:00
2d9a15087b Use a std::set for MIDI device models so the combo is sorted and the user can find things.
git-svn-id: svn://localhost/ardour2/branches/3.0@13902 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-19 19:25:06 +00:00
ca41354e46 Add instructions for adding midnam files.
git-svn-id: svn://localhost/ardour2/branches/3.0@13901 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-19 19:21:57 +00:00
cc8b42f167 Set MIDI device model to "Generic" by default (previously was unset).
Perhaps it should be "Standard MIDI" though?


git-svn-id: svn://localhost/ardour2/branches/3.0@13900 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-19 19:06:21 +00:00
fe980b5c99 fix MIDI track channel selector etc. visibility after show_all()=>show() changes in recent commit
git-svn-id: svn://localhost/ardour2/branches/3.0@13899 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-19 16:05:06 +00:00
f4f0dd6637 completely revisit how track name editing works in the editor
git-svn-id: svn://localhost/ardour2/branches/3.0@13898 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-19 15:27:04 +00:00
c779251a3e fix midnam-related crash introduced around 13892
git-svn-id: svn://localhost/ardour2/branches/3.0@13897 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-19 13:15:10 +00:00
051b81494c slightly more informational debug message
git-svn-id: svn://localhost/ardour2/branches/3.0@13896 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-19 13:14:50 +00:00
b1bc353f0d Add standard MIDI midnam file and remove hard coded equivalent.
Accordingly, make "generic" MIDI truly generic, just numbered controllers.
Break up MIDI name UI stuff into manageable functions of reasonable size.
Add convenient method to MIDINameDocument for getting the names for a device.
Tolerate comments in MIDINameDocument ControlNameList.

Can't remove the MIDI name code just yet, since it's still erroneously used by
Automatable::describe_parameter().  This is the cause of a bug where the name
on the automation lane does not match that in the menu.

The plan is to make a very simple pure abstract interface for getting MIDI
names, and make it possible to set one for Automatable (or perhaps pass it to
describe_parameter()).  Thus we'll be on the way to supporting names from
sources other than midnam files, namely plugins.


git-svn-id: svn://localhost/ardour2/branches/3.0@13895 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-19 10:02:00 +00:00
05a397b20c Unfortunately it seems that MIDINameDocument can not express control groups, so remove this.
We will have to embrace and extend the format to provide that.  I think it's the only feasible way to present up to 127 controllers in the UI in a decently usable way, so it's probably a good idea to do so.

git-svn-id: svn://localhost/ardour2/branches/3.0@13894 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-19 09:31:37 +00:00
0d5b79bd1f Fix undefined return value.
git-svn-id: svn://localhost/ardour2/branches/3.0@13893 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-19 08:55:19 +00:00
fc77ae0738 Replace a bunch of potential crashes with graceful handling of the situation.
We really need some kind of more sophisticated assert macro that can be
switched to non-fatal logging mode for release builds.  A log message, which is
often all that would happen, is a lot better than a trainwrecked performance...


git-svn-id: svn://localhost/ardour2/branches/3.0@13892 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-19 07:00:43 +00:00