summaryrefslogtreecommitdiff
path: root/libs/midi++2/midnam_patch.cc
AgeCommit message (Collapse)Author
2015-01-07MusicalTime => Beats.David Robillard
2014-12-29Fix off-by-one MIDI note names.David Robillard
Much like everything else in midnam, it's not specified whether the numbers are 0 or 1 relative, but everything out there seems to be 0 relative and this matches the canvas, so go with that.
2014-12-17Remove some aborts that don't really need to be.David Robillard
Enforce PatchPrimaryKey sanity at the type level rather than attempting to check for it everywhere. Remove dead file.
2014-11-22Wrap MusicalTime in a class.David Robillard
This lets us get a more explicit handle on time conversions, and is the main step towards using actual beat:tick time and getting away from floating point precision problems.
2014-09-09plug a major mem hog.Robin Gareus
(default empty session is now ~140MB RSS, was 280MB) libXML memory was only free() at exit
2014-07-15Support midnam files with a channel (not patch) NoteNameList.David Robillard
2014-01-11fix merge with masterPaul Davis
2014-01-10Support midnam controller value labels.David Robillard
2014-01-10Merge windows+cc branch into cairocanvas branch. Not finished, need to now ↵Paul Davis
merge windows branch to get changes from there
2013-12-30fix assert for non-existing MIDI patch-namesRobin Gareus
typename boost::detail::sp_member_access<T>::type boost::shared_ptr<T>::operator->() const [with T = MIDI::Name::ChannelNameSet; typename boost::detail::sp_member_access<T>::type = MIDI::Name::ChannelNameSet*]: Assertion `px != 0' failed.
2013-07-25'libs/midi++2' - Modify to be buildable with MSVCJohn Emmas
2013-01-27Default to "7bit" controller type if missing, as per DTD.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@14012 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20Show matching controller name in automation lane header.David Robillard
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-20Error checking string to int conversion from midnam files.David Robillard
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-20Support loading MIDI note names in NoteGroup tags as well.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@13919 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20Add General MIDI drum note names and patch names.David Robillard
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-20Fix MIDI note number off by one error.David Robillard
Bloody one-based indices... git-svn-id: svn://localhost/ardour2/branches/3.0@13911 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20Fix midnam warning messages.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@13910 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20Support note names from midnam files (tested with the DM5).David Robillard
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-19Set MIDI device mode to the first by default if unset.David Robillard
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-19Use a std::set for MIDI device models so the combo is sorted and the user ↵David Robillard
can find things. git-svn-id: svn://localhost/ardour2/branches/3.0@13902 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-19Add standard MIDI midnam file and remove hard coded equivalent.David Robillard
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-16Preliminary support for named MIDI controllers via midname files.David Robillard
Add midnam file for Moog Minitaur controller names. git-svn-id: svn://localhost/ardour2/branches/3.0@13852 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-29yet another fix for complaints from OS X gcc about constnessPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13361 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-09fix insidious bugs in midnam_patch.cc which account for garbled dataHans Baier
git-svn-id: svn://localhost/ardour2/branches/3.0@13219 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-08add unit tests to midi++ and assorted bugfixes for midnam_patch.ccHans Baier
git-svn-id: svn://localhost/ardour2/branches/3.0@13213 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-12fix complete screw up in connecting MIDNAM PatchNameList with ↵Paul Davis
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-12more changes to patch change/plugin preset support - replace regexp ↵Paul Davis
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-11lots more work trying to create a common structure for accessing plugin and ↵Paul Davis
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-10remove craziness of propagating MIDI 7 bit limits into MIDNAM handling by ↵Paul Davis
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-03Look in the UsesPatchNameList for the name rather thanCarl Hetherington
its parent. git-svn-id: svn://localhost/ardour2/branches/3.0@12551 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-20a lot of tweaking and fixing for the MIDNAM parsing code so that it ↵Paul Davis
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
2009-10-21Fix unused parameter warnings since GCC apparently doesn't feel like ↵David Robillard
listening to -Wno-unused-parameter git-svn-id: svn://localhost/ardour2/branches/3.0@5835 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-15rework Stateful::set_state() patch to avoid default version argumentPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@5787 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-15Part 1 of loading 2.X sessions; some things work, some things don't, hacks ↵Carl Hetherington
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-02-18Make sure Evoral::MIDIEvent XML stuff is entirely unused in midi++ for now ↵David Robillard
(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-01-15* extend MIDNAM support (PatchBanks containing the bank select MIDI Commands)Hans Baier
git-svn-id: svn://localhost/ardour2/branches/3.0@4409 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-15* first working prototype of changing program changes by scroll wheel (still ↵Hans Baier
some automation points issues) git-svn-id: svn://localhost/ardour2/branches/3.0@4324 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-14* some refactoring of patch name stuff in preparation for altering program ↵Hans Baier
changes events git-svn-id: svn://localhost/ardour2/branches/3.0@4323 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-12* fixed memory management bugs for midi patchname handlingHans Baier
git-svn-id: svn://localhost/ardour2/branches/3.0@4310 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-10* make patch selection appear only when there are patches loadedHans Baier
* 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-09* first working prototype of selecting instruments in the MIDI track headerHans Baier
* parsing patchfiles works git-svn-id: svn://localhost/ardour2/branches/3.0@4304 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-08* first primitive implementation of MidiPatchManagerHans Baier
* 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-06* completed MIDI::Name::MIDINameDocument and implemented its ↵Hans Baier
set_state-Method, added constructor git-svn-id: svn://localhost/ardour2/branches/3.0@4295 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-06* completed MIDI::Name::MasterDeviceNames and implemented its set_state-MethodHans Baier
git-svn-id: svn://localhost/ardour2/branches/3.0@4293 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-06* Added MIDI::Name::NoteHans Baier
git-svn-id: svn://localhost/ardour2/branches/3.0@4292 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-11-23* Added support for ChannelNameSetAssignments (midnam_patch.(cc|h)Hans Baier
git-svn-id: svn://localhost/ardour2/branches/3.0@4238 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-22Move event specific ringbuffer stuff to evoral.David Robillard
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-19Factor out sequencing related things into an independant new library: "evoral".David Robillard
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-08-04* first implementation of MIDI Clock Slave supportHans Baier
git-svn-id: svn://localhost/ardour2/branches/3.0@3652 d708f5d6-7413-0410-9779-e7cbd77b26cf