summaryrefslogtreecommitdiff
path: root/libs/evoral/src/SMF.cpp
AgeCommit message (Collapse)Author
2016-10-05SMF add support for type-0 files (count channels, not tracks)Robin Gareus
2016-08-19attempt to handle poly-pressure (polyphonic aftertouch) similarly to other ↵Paul Davis
MIDI messages
2016-05-10use g_fopen() to avoid i18n errors with file paths/namesPaul Davis
2015-04-20SMF::end_write() is a no-op if there is no _smf structurePaul Davis
2015-04-20remove _file_path member from Evoral::SMFPaul Davis
2015-02-19Normalize notes on all channels.David Robillard
Probably.
2015-02-19Fix record/import of note ons with velocity 0.David Robillard
Best to just do this as early as possible to avoid having to deal with this situation all over the code. Also fixes violation of LV2 MIDI specification, which requires no such events are delivered to plugins.
2015-01-05Fix MIDI file descriptor leaks.David Robillard
Pretty sure this is the cause of MIDI data going missing on save for optimized builds. Introduced in 294b99aabf3eb96323a3159b7a5e1b4bfc1ff04a.
2014-12-30Load what we can from broken/truncated MIDI files.David Robillard
We're still a very long way from tolerant of weird SMF files (libsmf takes a "crash if input is not exactly perfect" philosophy, if we're going to be polite and elevate such a thing to "philosophy"), but at least we'll get what's there from files truncated by old broken versions of Ardour or other situations.
2014-12-17Fix oops in previous commit.David Robillard
Professionalism is overrated.
2014-12-17Fix occasional crash when recording MIDI.David Robillard
2014-12-10remove file manager LRU cache from code.Paul Davis
This was a very clever attempt to fix a non-problem. If the platform doesn't have enough file descriptors available then the platform is broken and we're not going to hack around trying to fix it.
2014-12-06More potential SMF crash fixes.David Robillard
2014-12-06Possible half-fix for SMF crash.David Robillard
2014-10-15remove debug outputPaul Davis
2014-10-15add mutex/lock to all Evoral::SMF methods that use _smf/libsmf, to avoid ↵Paul Davis
inadvertent corruption via multithreaded access. Serialization of Session::save_state() will already protect against most of this, but there is really no good reason why Evoral::SMF's API should require single-threaded/explicit serialization.
2014-06-02merge with master and fix 4 conflicts by handPaul Davis
2014-04-29Fixed problem where importing invalid midi files caused crash.3.5.380Damien Zammit
2014-03-23fix mismatch typo in sizeofRobin Gareus
2014-01-12'libs/evoral' - DLL visibility stuff and associated changes needed for ↵John Emmas
building with MSVC. Currently includes debugging information and things that are just commented out until we have known compatibility with the other platforms (i.e. contains stuff to be removed at a later date)
2012-01-18Catch exception thrown by SMF code when it cannot writeCarl Hetherington
to a file (#4640). git-svn-id: svn://localhost/ardour2/branches/3.0@11259 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-23Fix broken whitespace via merciless application of the emacs hammer.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@10782 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-09fix mismatching use of operator new() when allocating buffer to passed into ↵Paul Davis
libsmf - should be malloc'ed git-svn-id: svn://localhost/ardour2/branches/3.0@9339 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-06Fix my name :)David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@9302 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-28Unify program change and bank handling so that they are manipulated together.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@8346 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-11-13make ardour3 build and link on OS X (tiger, at least)Paul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@8018 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-11-04remove debug output during note ID load & savePaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@7966 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-11-03use newly-public libsmf functions for variable length quantities to ↵Paul Davis
load+store MIDI note IDS. THIS BREAKS MIDI NOTE HISTORY IN ALL EXISTING SESSIONS git-svn-id: svn://localhost/ardour2/branches/3.0@7953 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-09-23Remove debugging code.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@7834 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-21removed #if 0 codePaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@7461 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-21force creation of MIDI (SMF) files on disk whenever an SMF object is ↵Paul Davis
created, to avoid "source exists but no file don disk exists" issue git-svn-id: svn://localhost/ardour2/branches/3.0@7459 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-20add note IDs and use them for looking up notes during a history rebuild. ↵Paul Davis
NOTE: INVALIDATES OLDER HISTORY FILES git-svn-id: svn://localhost/ardour2/branches/3.0@7449 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-16newly created files for use in recording appear in a .stubs folder, and are ↵Paul Davis
moved out of it when recording stops git-svn-id: svn://localhost/ardour2/branches/3.0@7426 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-01allow zero length MIDI files again and remove debug outputPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@7347 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-26lots of details relating to MIDI file management; try to ignore ALSA ↵Paul Davis
sequencer MIDI ports named "Midi-Through" git-svn-id: svn://localhost/ardour2/branches/3.0@7305 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-23midway snapshot of work done on managing Region & Source lifetimes ↵Paul Davis
correctly. may fix missing MIDI file bug ; save empty playlists because they may be referred to by the history file ; undo commands auto-delete when objects they refer to die (currently not commands built from XML deserialization); Sources now know how many regions are using them for something, meaning that we know if we can delete the files holding any data for the source git-svn-id: svn://localhost/ardour2/branches/3.0@7291 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-20Return delta time even for metadata events. Should fix #3244.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@7282 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-05-16Move FileManager code into libpbd. Use it for SMF read/write.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@7108 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-22Indentation.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@5874 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-14Strip trailing whitespace and fix other whitespace errors (e.g. space/tab ↵David Robillard
mixing). Whitespace changes only. Vimmers, try let c_space_errors = 1 in your .vimrc to highlight this kind of stuff in red. I don't know the emacs equivalent... git-svn-id: svn://localhost/ardour2/branches/3.0@5773 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-09-16do not allow smf_source's reads to stomp on cached read_end position in ↵Paul Davis
parent class, which creates chaos by being out of sync with MidiSource::_model_iterator. this doesn't totally fix MIDI playback, but it helps git-svn-id: svn://localhost/ardour2/branches/3.0@5665 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-09-14fix up marshall/unmarshall of note data for MidiModel::DiffCommandPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@5662 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-17Fix the horrible mess that was anything related to sources and paths.David Robillard
Most significant changes: - Factor out FileSource from AudioFileSource, use for SMFSource too - Explicitly pass embedded rather than mysterious name mangling or whatever - Destroy a ton of duplicated or very-nearly-duplicated code - Clean up and document all that weird source stuff in session.cc git-svn-id: svn://localhost/ardour2/branches/3.0@4609 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-16Gracefully ignore illegal MIDI events at the buffer level (i.e. from Jack).David Robillard
Ardour should now be able to more or less tolerate crazy incoming MIDI (except for SYSEX). git-svn-id: svn://localhost/ardour2/branches/3.0@4592 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-16Gracefully ignore illegal MIDI events.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@4591 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-15Shutup.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@4574 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-15De-templatify Evoral::SMF which has no concept of time other than SMF time.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@4571 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-14Make SMF::append_event_delta take a buffer and a size rather than an Event ↵David Robillard
(no point, more generic, etc.). git-svn-id: svn://localhost/ardour2/branches/3.0@4567 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-14Remove unused (and timestamp type nasty) last_event_time() from SMF.David Robillard
I swear I already did this. git-svn-id: svn://localhost/ardour2/branches/3.0@4564 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-14Update for libsmf API changes.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@4561 d708f5d6-7413-0410-9779-e7cbd77b26cf