summaryrefslogtreecommitdiff
path: root/libs/ardour
AgeCommit message (Collapse)Author
2017-08-06Broadcast info according to EBU tech-specsRobin Gareus
2017-08-06Remove some debug outputRobin Gareus
2017-08-05"Selected" is a PresentationInfo Property.Robin Gareus
This fixes MIDI Input follows MIDI track selection (and maybe other issues) and hopefully breaks nothing else (most places subscribe to both Stripable::PropertyChanged and PresentationInfo::PropertyChanged).
2017-08-05Update backend API: read-only MIDI input buffersRobin Gareus
2017-08-05Revert 542d021f, fix number of DSP threadsRobin Gareus
The main process-callback does not participate in DSP computation
2017-08-05Consolidate ctrl surface codeRobin Gareus
2017-08-04Graph profiling: allow to override max DSP thread count & calc avg.Robin Gareus
2017-08-04Fix typo in Lua Vamp APIRobin Gareus
2017-08-03Allow calling IO::silence for yet unregistered ports (Click)Robin Gareus
2017-08-03Some more assert() debuggingRobin Gareus
2017-08-03Ignore cycle-start/end for unregistered portsRobin Gareus
Should fix a race during Session::destroy(), Port::PortDrop which unregisters ports with the backend, but the actual port instance will still exist. The engine does no longer have a session-pointer and only calls CycleStart(); CycleEnd() to clear port-buffers. Trying to clear and already unregistered Port will crash.
2017-08-03improve 1a288ddd, destroy IO after disconnecting from signals.Robin Gareus
This does not completely fix the race-condition. The GUI (e.g. connection-manager) may still hold a shared-ptr reference.
2017-08-03Fix crash when cleaning up w/o destroying sessionRobin Gareus
- Control-protocols may transmit data during cleanup (e.g. reset surface), and need the Audio-engine to do so. - destroying the ControlProtocolManager w/o the Session calling ::drop_protocols(), lead to a double free.
2017-08-03prevent duplicate playlist-names when re-naming #7438Robin Gareus
2017-08-01Fix some more crashes at session-closeRobin Gareus
PortDrop unregisters backend ports, the backend will return a NULL buffer-pointer, but the I/O object still exists (Metronome, LTC) AudioBuffer::_data == 0 #0 msvcrt!memset () from C:\Windows\System32\msvcrt.dll #1 ARDOUR::AudioBuffer::silence (this=0x2c410710, len=256, offset=0) at ../libs/ardour/audio_buffer.cc:88 #2 ARDOUR::AudioPort::cycle_end (this=0x34918730, nframes=256) at ../libs/ardour/audio_port.cc:66 #3 ARDOUR::PortManager::cycle_end (this=this@entry=0x23342770, nframes=nframes@entry=256) [process callback w/o session]
2017-08-01Fix LTC encoder removalRobin Gareus
Fixed a crash if an x-run or graph-reorder happens after the LTC encoder has been destroyed (possible at session-close or after disabling the encoder). This also fixes duplicate callbacks in case the encoder was re-enabled times in an active session.
2017-07-31Signal wish to show inline display in gui by lv2:optionalFeatureJohannes Mueller
... in .ttl file rather than by extension_data() in code. That's more in the spirit of LV2.
2017-07-31Indicate whether to show plugin's inline display in GUIJohannes Mueller
This is currently done by an extension data similarly to LV2_INLINEDISPLAY__interface.
2017-07-31Some session cleanup fixes (delete slave, take lock for lua)Robin Gareus
2017-07-30Turn AutomationCtrl into a SessionHandleRefRobin Gareus
This fixes a crash with GUI elements which are only deleted during GUI Idle and hold a Reference to a Controllable, The session is already destroyed at that point: ARDOUR::CoreSelection::remove_control_by_id(PBD::ID const&) ARDOUR::AutomationControl::~AutomationControl() ARDOUR::SlavableAutomationControl::~SlavableAutomationControl() ARDOUR::MonitorControl::~MonitorControl() boost::detail::sp_counted_base::destroy() boost::detail::sp_counted_impl_p<AudioGrapher::Interleaver<float>::Input>::dispose() boost::detail::sp_counted_base::release() boost::detail::shared_count::~shared_count() boost::shared_ptr<PBD::Controllable>::~shared_ptr() boost::shared_ptr<PBD::Connection>::~shared_ptr() ArdourWidgets::BindingProxy::~BindingProxy() ArdourWidgets::ArdourButton::~ArdourButton() VCAMasterStrip::~VCAMasterStrip() int idle_delete<VCAMasterStrip>(VCAMasterStrip*)
2017-07-28PortManager::unregister_port() must be called with process lockRobin Gareus
This fixes "Failed to register <surface> port" when re-loading a session.
2017-07-28Delete CoreSelection at session closeRobin Gareus
2017-07-27Start a new write-pass when writing automation and locating while rollingRobin Gareus
2017-07-26Fix initial sync to LTC with small buffersizesRobin Gareus
Ardour follow_slave() does nothing (not even seek) if the slave is not locked. The LTC-slave assumes it's locked if LTC is stable for 5 continuous process-calls. If the difference of Ardour's transport-position to the LTC-timecode is large (> 2sec), the slave reset itself (assuming drift, seek don't vari- speed). A LTC-slave does reset does reset the locked counter. Hence: If initially Ardour's transport differs > 2 sec and the buffersize is small (many process-callbacks), the slave kept resetting itself never informing Ardour that it locked to the external TC, and Ardour never issued a seek.
2017-07-25Make start_touch() truly idempotentRobin Gareus
Also don't allow outsiders to call Controllable::set_touching()
2017-07-24fix e838e7f3597Robin Gareus
2017-07-24Fix Mixbus "well known" send-names and enable ctrlsRobin Gareus
2017-07-24Update WritePass logic + AutomationList UndoRobin Gareus
Fixes various issues when changing AutomationState while rolling.
2017-07-24update japanese translation (Hiroki Inagaki)Paul Davis
2017-07-24Fix saving automation record undoRobin Gareus
Calling AutomationList::before() clears the state.
2017-07-24Update amp.cc to use gain_t for maths (no more double)Robin Gareus
Also tweak threshold for LPF, assume gain-differences < 10-e5 as no-change
2017-07-24Remove unused "mark" parameter from stop_touch() APIRobin Gareus
2017-07-22NO-OP: whitespaceRobin Gareus
2017-07-22AutomationWatch: single DropReferences connection per ACRobin Gareus
2017-07-22NO-OP: whitespaceRobin Gareus
2017-07-22Fix Route mute automation touch (owned control)Robin Gareus
2017-07-22NO-OP: consistent [internal] API name for AutomatablesRobin Gareus
2017-07-22NO-OP: Consistent API nameRobin Gareus
2017-07-21More non-rt calls to VCA - fixes VCA automation writingRobin Gareus
This calls for a unified API to invoke Automatable methods ::transport_located() and ::transport_stopped() on Stripables, rather than indirectly calling it via Route::non_realtime_locate(), Route::nonrealtime_handle_transport_stopped()
2017-07-21Fix VCA Automation: end write passRobin Gareus
2017-07-22TempoMap legacy session loading fixesnick_m
Ensure we set the last tempo end note types per minute. Clarify that we only set the end ntpm if unset.
2017-07-22Fis stray break statement when checking for a legacy tempo mapnick_m
This could result in legacy sessions not being identified correctly and loading with end tempi of -1.0.
2017-07-22Rework tempo marker editing menu functionsnick_m
Setting a tempo to 'Continue' via right click puts it in a permanent state of continuing the previous section's end tempo (basically what 'Lock Continue' should have been). This can be disabled (unlocked) by selecting 'Don't Continue'. Remove the previous temporary 'Continue' function. Reorganise menu to separate position lock style from more commonly used functions.
2017-07-22Calculate clamped tempo stretch ratios using the correct (musical) domainnick_m
2017-07-22TempoMap : Remove old solve_map debugging codenick_m
2017-07-22Move some duplicated replace/add tempo section codenick_m
Resets the previous tempo section's end ntpm to match the start of a new section whenever a section is added to the map.
2017-07-22Remove redundant beat arg from TempoMap::add_meternick_m
BBT time should be enough to determine the beat.
2017-07-22Fix incorrect double-snap when moving audio-locked tempinick_m
2017-07-22Check for identical meter positions in old sessions by beat rather than pulsenick_m
2017-07-21Non-layered MIDI recordingRobin Gareus
This does not merge MIDI data, but trims MIDI regions at rec-stop like non-layered audio-recording does.