summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
AgeCommit message (Collapse)Author
2015-04-01NOOP, just whitespaceRobin Gareus
2015-04-01remove race condition when editing tempo/meter information.Paul Davis
Lock was not held across a replace_{tempo,meter}() operation because of re-use of {remove,add}_{tempo,meter}. Moved functional code into _locked variants so that replace operation can hold lock across its entire active lifetime.
2015-03-31add new signals to AudioEngine from waves backend changes.Paul Davis
These were missed somehow during cherry-picking.
2015-03-31[Summary] Added actions to handle abnormal behavior during stream stop for ↵Greg Zharun
MIDI and Audio devices. Made correct error handling for cases we didn't see before. Removed redundant and experimental code I forgot to remove months ago. Added debug output which will help in future testing Conflicts: libs/ardour/ardour/audioengine.h libs/ardour/engine_state_controller.cc libs/backends/wavesaudio/waves_midi_device.cc
2015-03-31[Summary] Made device control panel open request synchronized with other ↵Greg Zharun
critical device operations. Made device reset correctly when control panel is closed. Conflicts: gtk2_ardour/tracks_control_panel.logic.cc libs/ardour/ardour/audioengine.h libs/backends/wavesaudio/wavesapi/devicemanager/WCMRPortAudioDeviceManager.cpp
2015-03-31move "been here before" path concept into libardour, and use it ↵Paul Davis
appropriately at startup
2015-03-31fix OSX/PPC 10.4 long mathsRobin Gareus
2015-03-29Fix mute of MIDI tracks with channel forcing.David Robillard
This moves MIDI channel filtering into a reusable class and moves filtering to the source, rather than modifying the buffer afterwards. This is necessary so that the playlist trackers reflect the emitted notes (and thus are able to stop them in situations like mute). As a perk, this is also faster because events are just dropped on read, rather than pushed into a buffer then later removed (which is very slow). Really hammering on mute or solo still seems to produce stuck notes occasionally (perhaps related to multiple-on warnings). I am not yet sure why, but occasional beats always.
2015-03-28Add EAN barcode field to session metadataColin Fletcher
2015-03-26Follow MIDI control values with automation faders.David Robillard
Fixes bug #6166 (except record). This attempts to follow the "current" control value somewhat aggressively: * On locate, slider is set to the value from the top region at the new transport position. * Playback or MIDI input is followed "live". * Whenever the slider is moved (including automatically), that value is emitted as an immediate event to keep external gear in sync. General idea is that the Ardour slider should act as a mirror of an external hardware knob, and both should be synced to whatever the control is at the current transport position. Since we lack real playback/touch/etc modes for these for now, we must choose one behaviour, and this seems like the most reasonable one. Follow is handled in the audio thread, which is probably not ideal, but since these controls have no lists and do not record, should be fine. Probably.
2015-03-25fix touch-recording of automation in a loopBen Loftis
2015-03-24Resolve only active notes when muted/non-soloed.David Robillard
Fixes bug #6206.
2015-03-23rework check for old configuration filesRobin Gareus
check early on (before announcement-check, bundle- env and ARDOUR_UI ctor have a chance to create the new config dir)
2015-03-22update system_configRobin Gareus
2015-03-21disable pre-fader mute by defaultRobin Gareus
<oofus> rgareus: pre fader sends are not really used for FX sends, they would either be sending to other busses or to something like headphone/cue feeds. You don't want those mixes having stuff muted in them as you are muting you main mix.
2015-03-16Add route dialog order hint changes.nick_m
Add an option to insert new routes at the top of the list ("First"). Reorder/rename the entries in the dialog. Session's _order_hint is now the signed int it always wanted to be.
2015-03-12alter config file copying infrastructure so it can be used at a suitable ↵Paul Davis
time in the instance's lifetime
2015-03-12cont’d work on a16dd7c, fixes #6170Robin Gareus
2015-03-11finish (?) infrastructure for copying configuration files from a3 to a4Paul Davis
2015-03-11more infrastructure for copying old configuration filesPaul Davis
2015-03-11global ARDOUR signal to ask GUI to copy configuration files across versionsPaul Davis
2015-03-11hide user_config_dir_name; alter API for user_config_dir() to allow ↵Paul Davis
specification of a version number
2015-03-10audio interpolation is really privateRobin Gareus
2015-03-10MIDI vari-speed playbackRobin Gareus
2015-03-11Manual merge of the backend (peakfile reading) part of waveview branch.nick_m
Summary: * use mmap() for the whole peakfile instead of lots of small seek/reads * cache the computed peaks * where possible, open files with O_NOATIME.
2015-03-10throttle TransportStateChange signal emissionsRobin Gareus
2015-03-08consolidate BundleAdded/Remove signalRobin Gareus
The only user (matrix) does not care which bundles are added/removed. This simplification will make it a lot easier to keep bundles in sync with actual hardware ports.
2015-03-08libardour API to exercise get_port_propertyRobin Gareus
2015-03-08add port-engine API to query port-propertiesRobin Gareus
2015-03-08Fix compilation with --no-lv2 (#0006169).David Robillard
Not that I condone such backwards behaviour. (Different issue in the ticket, but it was still broken at link time).
2015-03-05Handle edits while playing precisely.David Robillard
This avoids stuck notes if active notes are edited, but without stopping all active notes in the region on any edit as before. This implementation injects note ons in places that aren't actually note starts. Depending on how percussive the instrument is, this may not be desired. In the future, an option for this would be an improvement, but there are other places where "start notes in the middle" is a reasonable option. I think that should be handled universally if we're to do it at all, so not considering it a part of this fix for now.
2015-03-05Clean up MidiPlaylist::read, kill copy-paste code.David Robillard
Towards putting more advanced logic here, where two copies of everything will get even more hairy. The two cases of reading from one or many regions are not very different in the read phase, the only difference is the target. So, point a reference to the appropriate target, use the same read code in either case, then sort/etc afterwards only if necessary.
2015-03-01use Xthreads in session butler.Robin Gareus
(hopefully) fixes export randomly stalling on windows: dequeue_request() was a single request (no queue) on Windows. Butler::queue_request() is called -> Butler goes to work.. -> while working, another request is queued -> butler never sees this -> deadlock during Freewheeling/Export wait_until_finished() waits for the 2nd request to be handled, and never returns.
2015-02-28API to delete AU cache & blacklistRobin Gareus
2015-02-20fix logic of Session::audio_source_name_is_unique()Paul Davis
2015-02-19change Audio backend sample time methods to use a 64 bit timelinePaul Davis
2015-02-18Revert "[Summary] Eliminated redundant marker update notification which lead ↵Paul Davis
to creation of huge amount of redundant session events" This reverts commit 3dde9e969c1a775c04487501dee974d261a3f955.
2015-02-18Revert "fix indentation from previous commit and previous edits"Paul Davis
This reverts commit 449c9b675d3322cd320967bb8e4842d291d22649.
2015-02-17another required fix following recent cherry-picks from wavesPaul Davis
2015-02-17[Summary] Blocked redundant skip marker (during skip ranges consolidation) ↵GZharun
updates which used to lead to unnecessary overhead and redundant session events Conflicts: libs/ardour/ardour/session.h libs/ardour/session.cc
2015-02-17fix indentation from previous commit and previous editsPaul Davis
2015-02-17[Summary] Eliminated redundant marker update notification which lead to ↵GZharun
creation of huge amount of redundant session events
2015-02-13correctly set track loop status when locating away from loop range (and ↵Paul Davis
later, when coming back to the loop) Conflicts: libs/ardour/ardour/session.h libs/ardour/session.cc libs/ardour/session_transport.cc
2015-02-10infrastructure to allow tracing of all MIDI portsPaul Davis
2015-02-06fix (and comment) on subtle bug with audio file data width functionPaul Davis
2015-02-05modify behaviour of session when updating skips to use new SessionEvent APIPaul Davis
Conflicts: libs/ardour/ardour/session.h libs/ardour/session.cc
2015-02-05expand SessionEvent API to allow ::clear_events() to work correctly.Paul Davis
clear_events() must run in realtime context, which is likely to be asynchronous with respect to the thread that calls it. So allow caller to pass in a functor that will be executed (also in realtime context) after the clear is done. Additionally, allow for a cross-thread callback to the event loop/thread which initiated/allocated the clear event request so that it can flush its own pending loop. This part probably isn't necessary but doesn't hurt and is a useful model. The event would be placed back in the free list at the next event allocation by the calling thread anyway.
2015-02-05Clean up Session's _current_trans when aborting a drag.nick_m
2015-01-30clarify sync-lock and disable it by default.Robin Gareus
2015-01-30take down backend specific threads with backendRobin Gareus