summaryrefslogtreecommitdiff
path: root/libs/ardour/session.cc
AgeCommit message (Collapse)Author
2017-09-07Fix bumping .mid file name (snapshots & playlist copy)Robin Gareus
When forking regions, copying playlists or saving snapshots we do not have a reference to the track and cannot use the track's name as basis for the new filename like Editor::fork_region() does. A cloned midi region's name is based on the original region name. This prevents endless addition "name-1-1-1-1-1-1-1-1.mid", adding to the region's basename.
2017-08-19Lua may call C++ functions with throw. Catch themRobin Gareus
2017-08-17Catch some exceptions during session loading.Robin Gareus
2017-08-16The Auditioner is not in the Session's RouteListRobin Gareus
Remove various checks, add assert() for now (perhaps some old sessions?) This fixes an off-by one issue when adding tracks (presentation info order in add_routes_inner)
2017-08-16Separate "add master bus" (and add Lua bindings)Robin Gareus
This is in preparation for "advanced session setup" allow a SessionSetup Lua script to create the master-bus.
2017-08-10Save sample-rate for sessions created from templatesRobin Gareus
2017-08-10Centralize Lua sandboxingRobin Gareus
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-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-07-31Some session cleanup fixes (delete slave, take lock for lua)Robin Gareus
2017-07-28Delete CoreSelection at session closeRobin Gareus
2017-07-20Allow adding tracks w/o running backendRobin Gareus
2017-06-27Distinguish error-messages.Robin Gareus
The vast majority of errors reported by users as "Cannot configure audio/midi engine with session parameters" have nothing to do with engine-parameters.
2017-06-25Extend API to allow calling new_midi_source_path() with source_lock heldRobin Gareus
This is in preparation for cloning MIDI-sources during snapshot save.
2017-06-22Remove LocaleGuard from Session::immediately_post_engine methodTim Mayberry
I think this was only to protect the float <=> string conversion in Session::setup_click_state related to click gain which is now using PBD::to_string/string_to and so no longer necessary.
2017-06-17Add Lua bindings to query all stripablesRobin Gareus
2017-06-17Fix stripable order for new strips & master-orderRobin Gareus
2017-06-17Add method to ensure Stripable sort constrains (for UI use)Robin Gareus
2017-06-17Use Stripable::Sorter in libsRobin Gareus
2017-06-03Add a scratch buffer for automation.Robin Gareus
Useful as temporary buffer: This allows a controllable to get a master's automation-curve and combine it with its own (gain, trim, send) automation buffer.
2017-05-29NO-OP: whitespaceRobin Gareus
2017-05-29duplicate routes start off unsoloed to avoid issues related to upstream / ↵Daniel Sheeler
downstream buses
2017-05-10Fix another possible case of illegal use of reserved port-namesRobin Gareus
Session::io_name_is_legal() is used for Routes and Processors: Route::set_name(), ProcessorBox::rename_processor() and and Route::ensure_track_or_route_name() -- it is not used for actual I/O objects.
2017-05-08fix copy-n-paste errorPaul Davis
2017-05-08fix logic when removing routesPaul Davis
Selection change and re-order signals are distinct.
2017-05-08remove misc. debug outputPaul Davis
2017-05-08when removing a Route from Session, remove it from CoreSelection and signal ↵Paul Davis
that change if necessary
2017-05-05libardour now has CoreSelection object to manage selection status of ↵Paul Davis
Stripables and AutomationControls
2017-05-05Move special-cased FP8 mute-state into libardourRobin Gareus
2017-04-19Use XMLNode::get/set_property API in ARDOUR::Session classTim Mayberry
2017-04-19Use PBD string conversion functions in PBD::ConfigurationVariableTim Mayberry
No longer need a specialization for bool as PBD::to_string/string_to already has specializations for bool Remove template specialization for float as string_to/to_string handles string representations of infinity
2017-04-08Emit Session::MuteChanged() if a mutes route is removed.Robin Gareus
2017-04-07Add session signal to track mute-changesRobin Gareus
In preparation for Faderport8 "Mute Clear" LED Button.
2017-04-01Add option for record-only metronome.Robin Gareus
2017-04-01Unregister ports at session close.Robin Gareus
This fixes issues when re-loading a session without taking the engine down.
2017-03-31Add an API to query if the audible frame is latent pending a locateRobin Gareus
eg. at the end of a loop, the session may already be playing the beginning of the loop. The TransportLooped signal was emitted. Yet due to playback latency, the audible frame is still at the end of the loop. To interpolate the playhead position the UI needs to be able to know: Relying on the TransportLooped signal is not sufficient because it does not take playback latency into account.
2017-03-23Increase mempool for session-scriptsRobin Gareus
(bindings alone require ~800kB these days)
2017-02-19Emit a signal when Lua session script change (prepare UI update to un/set)Robin Gareus
2017-02-17Fix initial order-keys when creating tracks/bussesRobin Gareus
.. and leave some notes for the day when UI treemodel won't be canonical to set order-keys.
2017-02-13Prepare record with count-in actionRobin Gareus
2017-01-27use RAII for class-wide PresentationInfo::Change signal, along with ↵Paul Davis
properties to describe what changed
2017-01-27mark session dirty when moving range markers or altering location lock style.nick_m
2017-01-27mark session dirty when dragging tempo markers.nick_m
2017-01-22implement Session::route_by_selected_count()Paul Davis
2017-01-21Instrument insert options:Robin Gareus
* allow to directly fan-out when adding a multi-channel instrument * Mixbus: move multi-channel instruments after Comp & EQ.
2017-01-20Instrument channel option when adding trackRobin Gareus
By setting strict-io on the Instrument plugin early during track creation, adding the plugin will trigger a PluginSetup Dialog for multi-out instruments in a strict i/o track.
2017-01-19Add alternative preroll record mode:Robin Gareus
* Start recording at preroll, trim region to skip preroll at rec-stop * Keep old punch-in rec-at-preroll API for tape-tracks (later)
2017-01-19Rework preroll-rec API:Robin Gareus
* rename: indicate that recording happens after preroll, punch-in * move API into libardour: rec+roll (no separate setup, seek, roll APIs)
2017-01-19Move preroll duration calc into libardourRobin Gareus
2017-01-18Implement record with prerollRobin Gareus