summaryrefslogtreecommitdiff
path: root/libs/ardour
AgeCommit message (Collapse)Author
2015-10-22Refactor common code in MidiPatchManager class into new methodTim Mayberry
2015-10-22Don't call MidiPatchManager::refresh when creating MidiPatchManager instanceTim Mayberry
Currently when loading a session for the first time MidiPatchManager::instance creates the MidiPatchManager singleton which calls MPM::refresh and all the midnam files are parsed etc. MPM::set_session is then immediately called and all the MPM state that has just been set when parsing all the midnam files is cleared and the parsing of all the files is performed again but this time with any session specific midnam patch files. MPM::instance and MPM::set_session consume about 55% of the time spent in the Session ctor according to kcachegrind and removing the double call to refresh brings Session construction time for a particular test session down from 7.5s to 5.5s
2015-10-22Fix a small buffer issue which could sometimes prevent sessions from being ↵John Emmas
able to load In the function 'LV2Plugin::add_state()' the snprintf() call can easily print 19 or even 20 bytes - so a 16-byte buffer wasn't large enough.
2015-10-22Add some newly introduced sources to our MSVC project (libardour)John Emmas
2015-10-21Add overwrite option to save_template. (default = false)André Nusser
Before it could not overwrite.
2015-10-21fix automation update at transport stop when in automation Play modePaul Davis
2015-10-21fix mute automation in Play automation statePaul Davis
2015-10-21Add AutomationControl::set_value_unchecked() and ↵Paul Davis
AutomationControl::writable() and use them. Classes derived from AutomationControl now check ::writable() in their ::set_value() methods to ensure that they do not attempt to overwrite data sent to them while automation playback is underway.
2015-10-21Fix crash in new CoreaudioSource code (on invalid file)Robin Gareus
2015-10-20fix AudioUnit parameter listening to work with new ↵Paul Davis
ParameterChangedExternally semantics
2015-10-20rename Plugin::ParameterChanged to ParameterChangedExternally to reflect its ↵Paul Davis
intent, and clean up the libardour side of result. The signal exists to notify listeners that something outside of the host's control (e.g. a plugin's own GUI for AU or VST) has modified a plugin parameter. Previous code had strange feedback loops and ambiguous semantics.
2015-10-20Revert "rename ParameterChanged signal in Plugin to ↵Paul Davis
ParameterChangedExternally to reflect its intent, and clean up the result." This reverts commit 336b2eb9a4a8634bae84a15e952d20335aa28c12.
2015-10-20rename ParameterChanged signal in Plugin to ParameterChangedExternally to ↵Paul Davis
reflect its intent, and clean up the result. The signal exists to notify listeners that something outside of the host's control (e.g. a plugin's own GUI for AU or VST) has modified a plugin parameter. Previous code had strange feedback loops and ambiguous semantics. Significant modification of LV2 GUI updating was required. Still to be tested for feedback loop issues: AudioUnits
2015-10-20Legatize::name () reflects its type. Fixes confusing undo record name.nick_m
2015-10-20Automation - more toggled controller twiddling.nick_m
2015-10-20Automation - fix occasional inverted bool state after write.nick_m
2015-10-20Make automation record undo per pass rather than per touch.nick_m
2015-10-20Toggled automation fixes.nick_m
- don't attempt to insert two points on toggle. - remove forced touch->write mode change on toggle - initial state still wrong, but works much better overall.
2015-10-19remove cruftRobin Gareus
2015-10-18libs/* changes use new AppleUtility LibraryPaul Davis
2015-10-17Remove all the now unused functions in the MidiModel class.André Nusser
2015-10-17Add Transpose class that can be used by apply_midi_note_edit_op.André Nusser
2015-10-17Split transpose in MidiModel into two functions.André Nusser
2015-10-18disable auto-return with external sync #6577Robin Gareus
2015-10-16extend session-save dirty-flag logicRobin Gareus
Snapshot and continue working on current session incorrectly marks the session as clean.
2015-10-15fix crash when creating subgroup-bus - fixes #6642Robin Gareus
the actual issues is in the connection management: bundle.cc:323: void ARDOUR::Bundle::connect(): Assertion `N == other->nchannels().n_total()' failed. That could be resolved. However, combining tracks without panners will almost never do what the user really wants, so this case has been disabled for now.
2015-10-15fix deadlock when removing subgroup bus w/sends.Robin Gareus
...and potentially other route removals that involve processor changes.
2015-10-14Fix a problem where VST automation data wasn't getting written (if the ↵4.3John Emmas
adjustments were made from the plugin's own controls)
2015-10-13fix registration of automation type enumsPaul Davis
2015-10-13remove last ofstreamRobin Gareus
2015-10-12fix crashes due to glib ignored EDEADLK.Robin Gareus
Taking a readlock after a writelock in the same thread should result in a deadlock, yet pthread on Linux returns EDEADLK and continues. glib-2.42.0 ignores EDEADLK and assumes the lock was taken. Releasing the lock later causes issues: "Calling g_rw_lock_writer_unlock() on a lock that is not held by the current thread leads to undefined behaviour." The issue at hand: AudioStreamView::redisplay_track() -> foreach_region() #<< WriteLock -> add_region_view() ... -> AudioRegionView::create_one_wave() -> RegionView::update_coverage_frames -> Playlist::top_unmuted_region_at() #<< ReadLock All current users of Playlist::foreach_region() are in the GUI and AFAICT read-only (display regions, update visuals)
2015-10-09fix behaviour of AsyncMIDIPort so that large amounts of data are handled well.Paul Davis
Increased the size of the FIFO that acts as the intermediate between writers and the MidiBuffer. Changed implementation of ::write() to notice if MidiBuffer::push_back() fails, and then just leave data queued for subsequent calls to ::flush_output_fifo(). Note: the logic here will be broken by invalid events/data, which ALSO cause MidiBuffer::push_back() to return false. That needs fixing
2015-10-09tweaks to MidiBuffer::push_back() variantsPaul Davis
1. there's no reason to make the same logic checks in both the Event and 3-arg variants when the Event version simply calls the 3-arg variant 2. the Event version returned true under all conditions, even if the 3-arg part had failed to push the Event data into the buffer. It now returns true or false, as intended. 3. remove debug output if a MidiBuffer is full during ::push_back(). The cases where this matters emit output of their own, or simply remain silent and queue data later
2015-10-09remove unused PortManager::port_name_prefix_is_unique() methodPaul Davis
2015-10-08remove declaration of undefined (and necessarily unused) method from PortManagerPaul Davis
2015-10-08fix region "valid-transient" propertyRobin Gareus
2015-10-08windows compatible paths for analysisRobin Gareus
2015-10-08fix return value for transient loadRobin Gareus
2015-10-08renice DLL info messagesRobin Gareus
2015-10-08use g_open for DLL arch testRobin Gareus
2015-10-08detect VST arch only during discovery (not scan)Robin Gareus
2015-10-07Add Trim to Mackie controls.Len Ovens
2015-10-07Added use click emphasis toggle (libs/ardour)Damien Zammit
2015-10-07use C++ for PortManager::make_port_name_relative()Paul Davis
2015-10-07fix exclusive solo group-overrideRobin Gareus
2015-10-07only subdivide plugin-cycle when automation is playingRobin Gareus
PluginInsert::automation_run() subdivides plugin-run on every control-port automation event (without splitting the process cycle). libevoral has no automation-control context, hence this function must be implemented by Automatable.
2015-10-07print VST blacklist filename (for good measure)Robin Gareus
2015-10-07implement solo group overrideRobin Gareus
2015-10-06add missing includeRobin Gareus
2015-10-06renice code. RAII rocks.Robin Gareus