13
0
Commit Graph

53 Commits

Author SHA1 Message Date
938b2422e3 Distinguish unset MIDI Patch and bank 0 2018-07-24 23:22:21 +02:00
0332c127cd Allow to dynamically un/load Midnam Patches 2016-10-29 19:57:43 +02:00
efc26a0490 Store the file path when constructing MidiNameDocument
This is so we can compare and see if we have already parsed the file
2015-10-22 11:51:03 -04:00
22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
4dc63966f0 globally remove all trailing whitespace from ardour code base.
Paul Davis was responsible for introducing almost all of this.
2015-10-04 14:51:05 -04:00
d2cafbe95a Remove some aborts that don't really need to be.
Enforce PatchPrimaryKey sanity at the type level rather than attempting to
check for it everywhere.

Remove dead file.
2014-12-17 19:43:09 -05:00
a361781e08 plug a major mem hog.
(default empty session is now ~140MB RSS, was 280MB)
libXML memory was only free() at exit
2014-09-09 23:53:27 +02:00
59631acc5f fix merge with master 2014-01-11 15:19:18 -05:00
72d8ca89e2 Support midnam controller value labels. 2014-01-10 20:51:54 -05:00
300536e5cd add -fvisibility=hidden to libmidi++ and make things work 2013-10-17 15:07:18 -04:00
9b7c33096a export-ify libmidipp 2013-10-17 10:27:04 -04: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
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
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
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
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
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
94c7798712 Hide MIDI device mode selector unless there is actually more than one mode.
Since this is usually not the case, showing this all the time as before was so
confusing everyone thought it was broken (myself included).

Changing that show_all() to a show() might have consequences, but it seems to
work fine and we really shouldn't be using show_all() anyway.


git-svn-id: svn://localhost/ardour2/branches/3.0@13889 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-19 05:36:43 +00:00
e092fe33af Preliminary support for named MIDI controllers via midname files.
Add midnam file for Moog Minitaur controller names.


git-svn-id: svn://localhost/ardour2/branches/3.0@13852 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-16 08:24:31 +00:00
Hans Baier
ad8c184218 fix whitespace in libs/midi++2/midi++/midnam_patch.h
git-svn-id: svn://localhost/ardour2/branches/3.0@13216 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-09 03:09:54 +00:00
Hans Baier
0bb2227eb8 add unit tests to midi++ and assorted bugfixes for midnam_patch.cc
git-svn-id: svn://localhost/ardour2/branches/3.0@13213 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-08 04:32:12 +00:00
d1d08e3910 fix complete screw up in connecting MIDNAM PatchNameList with ChannelNameSets; more tweaks and twirls for patch/program change mgmt
git-svn-id: svn://localhost/ardour2/branches/3.0@12673 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-12 16:32:06 +00:00
557f56a7f2 more changes to patch change/plugin preset support - replace regexp replacement with boost::replace_all(), actually find programs/patches in the data we have, and more. notable changes to constructors and structure of various MIDI::Name objects
git-svn-id: svn://localhost/ardour2/branches/3.0@12667 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-12 04:05:10 +00:00
d97312d438 lots more work trying to create a common structure for accessing plugin and MIDNAME patch/preset/program names. still not done
git-svn-id: svn://localhost/ardour2/branches/3.0@12665 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-11 22:59:35 +00:00
23350c195d remove craziness of propagating MIDI 7 bit limits into MIDNAM handling by replacing bank_msb/lsb with "bank" ; move responsibility for discovering patch names into MIDI trackview (soon to move again)
git-svn-id: svn://localhost/ardour2/branches/3.0@12647 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-10 16:42:17 +00:00
Carl Hetherington
fd89d52af5 Fix operator< so that strict weak ordering is
maintained, so that key lookups work.


git-svn-id: svn://localhost/ardour2/branches/3.0@12542 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-02 14:53:26 +00:00
1cb5aed0ce couple of fixes to enable building, and building with gtkmm 2.2(<4)
git-svn-id: svn://localhost/ardour2/branches/3.0@12540 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-02 14:50:09 +00:00
8f4e126c72 a lot of tweaking and fixing for the MIDNAM parsing code so that it correctly handles all 44 sample files from digicake.com/midnams.
git-svn-id: svn://localhost/ardour2/branches/3.0@11734 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-20 18:01:59 +00:00
8713667ec1 rework Stateful::set_state() patch to avoid default version argument
git-svn-id: svn://localhost/ardour2/branches/3.0@5787 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-15 18:56:11 +00:00
Carl Hetherington
79f91c7a20 Part 1 of loading 2.X sessions; some things work, some things don't, hacks a-plenty.
LOADING 2.X SESSIONS WITH THIS COMMIT IN PLACE WILL (PROBABLY) CORRUPT THE .ardour FILE,
MAKING THE SESSION UNLOADABLE ON 2.X AND LOSING INFORMATION.

So don't do that unless you make a backup of the session file first.



git-svn-id: svn://localhost/ardour2/branches/3.0@5786 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-15 00:57:55 +00:00
Carl Hetherington
3b89d9eaa0 Remove most using declarations from header files.
git-svn-id: svn://localhost/ardour2/branches/3.0@5069 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-12 17:03:42 +00:00
2463be97f7 Make sure Evoral::MIDIEvent XML stuff is entirely unused in midi++ for now (resolve ticket #0002491).
Remove empty midi++ README etc files (and ancient nearly-empty midi++ ChangeLog).


git-svn-id: svn://localhost/ardour2/branches/3.0@4621 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-18 18:04:54 +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
Hans Baier
625507fc1a * extend MIDNAM support (PatchBanks containing the bank select MIDI Commands)
git-svn-id: svn://localhost/ardour2/branches/3.0@4409 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-01-15 03:13:24 +00:00
Hans Baier
e9a9fe30cf * added comments to midi_region_view.h
* implemented choosing patches with context menu on the program change flag
* added convenience method and a little refactoring in midi_patch_manager.h

Conflicts:

	.cproject
	build-tmp.sh


git-svn-id: svn://localhost/ardour2/branches/3.0@4338 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-23 06:03:45 +00:00
Hans Baier
5e7ae490c1 * first working prototype of changing program changes by scroll wheel (still some automation points issues)
git-svn-id: svn://localhost/ardour2/branches/3.0@4324 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-15 11:05:41 +00:00
Hans Baier
bf7e792e3e * some refactoring of patch name stuff in preparation for altering program changes events
git-svn-id: svn://localhost/ardour2/branches/3.0@4323 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-14 22:56:44 +00:00
493339e969 fix up java-style expression to have correct C++ semantics
git-svn-id: svn://localhost/ardour2/branches/3.0@4318 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-13 14:02:28 +00:00
Hans Baier
2c017baa4a * fixed memory management bugs for midi patchname handling
git-svn-id: svn://localhost/ardour2/branches/3.0@4310 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-12 05:17:53 +00:00
Hans Baier
e009016b03 * added myself to about.cc
* created ArdourCanvas::CanvasFlag as a base class for flags
* removed obsolete cruft from midi_model
* made MidiTimeAxisView and MidiRegionView work together to display program changes as
  names by means of MidiPatchManager


git-svn-id: svn://localhost/ardour2/branches/3.0@4307 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-11 08:06:27 +00:00
Hans Baier
dfed4965b7 * make patch selection appear only when there are patches loaded
* add combobox to select CustomDeviceMode
* add code to resolve patch names by their msb, lsb and program change number


git-svn-id: svn://localhost/ardour2/branches/3.0@4306 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-10 10:54:45 +00:00
Hans Baier
457f06855e * first working prototype of selecting instruments in the MIDI track header
* parsing patchfiles works


git-svn-id: svn://localhost/ardour2/branches/3.0@4304 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-09 07:42:19 +00:00
Hans Baier
a9bb336fc4 * first primitive implementation of MidiPatchManager
* some cosmetic changes
* added midi_patch_path() to libs/ardour/ardour/session_directory.h


git-svn-id: svn://localhost/ardour2/branches/3.0@4299 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-08 09:50:19 +00:00
Hans Baier
72f55cd8b6 * completed MIDI::Name::MIDINameDocument and implemented its set_state-Method, added constructor
git-svn-id: svn://localhost/ardour2/branches/3.0@4295 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-06 05:00:20 +00:00
Hans Baier
c61283d35e * changed all lists in midnam_patch.h to std::list
git-svn-id: svn://localhost/ardour2/branches/3.0@4294 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-06 04:43:11 +00:00
Hans Baier
fc73f748b5 * completed MIDI::Name::MasterDeviceNames and implemented its set_state-Method
git-svn-id: svn://localhost/ardour2/branches/3.0@4293 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-06 04:38:44 +00:00
Hans Baier
110170db95 * Added MIDI::Name::Note
git-svn-id: svn://localhost/ardour2/branches/3.0@4292 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-06 00:07:07 +00:00
Hans Baier
94537a47a1 * Added support for ChannelNameSetAssignments (midnam_patch.(cc|h)
git-svn-id: svn://localhost/ardour2/branches/3.0@4238 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-11-23 19:42:09 +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
Hans Baier
ed990de604 * first implementation of MIDI Clock Slave support
git-svn-id: svn://localhost/ardour2/branches/3.0@3652 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-08-04 22:37:24 +00:00