summaryrefslogtreecommitdiff
path: root/libs/ardour
AgeCommit message (Collapse)Author
2015-12-01fix AU preset listRobin Gareus
Don't require user-presets to be present in order to include factory presets
2015-12-01Fix broken load-session utility and change it to load and save a sessionTim Mayberry
Rename run-session-tests.sh script to load-save-session.sh and make it operate on only a single session and add a separate load-save-session-collection.sh script Add --massif option to load-save-session.sh script Rename some poorly named variables and add some documentation to the load-save-session.sh script
2015-11-29NOOP, remove trailing whitespace, replace tabs in python scriptsRobin Gareus
2015-11-29fix seamless midi-looping - fixes #5438Robin Gareus
well, now... - Midi-Ports have a midi-buffer. - Midi-Tracks have a midi-buffer. - Midi-tracks have a diskstream. - Midi-diskstream has a midi-ring-buffer. - Midi-tracks have a delivery - The delivery can get a reference to the actual backend-ports - The delivery calls the Midi-Port's flush() buffer to send out queued events at the end of a cycle all clear ? :) - when splitting the process-cycle: only the Ports are informed. all other objects see a "normal" short process cycle starting at "0". The offset needs to be applied early on, so that internally routed buffers push the event at the correct time when combining the buffer with immediate and async events. Luckily Port::port_offset() is a static member, available to all, objects, which allows to bridge the conceptual gap between the diskstream and the delivery. There's a snag: When there's a note-on directly at the beginning of the loop it coincides with the panic message sent when looping. The panic comes before note events, so it *should* be good. Also the final note-offs (state tracker end of loop/region) are sent 1 sample too early (smells like an off-by-one), and are hence dropped. (no matter we send a panic right after it). It should really be at the same time, just before the panic.
2015-11-28don't clear MIDI buffers during split-cyclesRobin Gareus
if dst_offset is zero, MidiBuffer::read_from() clears the buffer. copy_to_outputs() eventually calls MidiBuffer::read_from().
2015-11-28fix typo in panic message, honor event-time.Robin Gareus
2015-11-28midi-panic needs to honor split-cycle buffer offset,Robin Gareus
otherwise panic message will be delivered out-of-order when seamlessly looping.
2015-11-28filling the midi playback buffer is a private operation.Robin Gareus
2015-11-25restore measured Insert latencyRobin Gareus
(XML underscore vs dash)
2015-11-24add debug "bits" for FaderPortPaul Davis
2015-11-25Prevent crash at session-close when analysing.Robin Gareus
The Analyser only holds a weak-pointer the the Source, session-destruction frees the actual Source, which is fatal for any ongoing audio analysis. This fix simply waits for the current ongoing analysis to complete, ideally TransientDetector::run, EBUr128Analysis::run, OnsetDetector::run and AudioAnalyser::analyse could be interrupted. Alternate option: cancel the Analyser::work thread (and re-create with the every session).
2015-11-24prevent concurrent peak-file init.Robin Gareus
When embedding external files. the same file is queued twice for peak-file generation. Since there are two peak_thread_work threas in SourceFactory, this can lead to inconsistent/missing peaks. TODO: fix the actual cause, duplicate call to setup_peakfile(): #0 ARDOUR::SourceFactory::setup_peakfile (s=..., async=true) at ../libs/ardour/source_factory.cc:116 #1 0x00007ffff6c2552f in ARDOUR::SourceFactory::createExternal (type=..., s=..., path="/tmp/CB_bass_Track08.wav", chn=0, flags=(unknown: 0), announce=true, defer_peaks=true) at ../libs/ardour/source_factory.cc:254 #2 0x0000000000886f50 in Editor::embed_sndfiles (this=0x3810340, paths=std::vector of length 1, capacity 1 = {...}, multifile=false, check_sample_rate=@0x7fffffffc2df: true, disposition=Editing::ImportDistinctFiles, mode=Editing::ImportAsTrack, pos=@0x7fffffffc458: -1, target_regions=1, target_tracks=-1, track=..., instrument=...) at ../gtk2_ardour/editor_audio_import.cc:630 #3 0x0000000000885c7c in Editor::do_embed (this=0x3810340, paths=std::vector of length 1, capacity 1 = {...}, import_as=Editing::ImportDistinctFiles, mode=Editing::ImportAsTrack, pos=@0x7fffffffc458: -1, instrument=...) at ../gtk2_ardour/editor_audio_import.cc:414 #4 0x0000000000e93aeb in SoundFileOmega::do_something (this=0x490f530, action=-5) at ../gtk2_ardour/sfdb_ui.cc:1983 #0 ARDOUR::SourceFactory::setup_peakfile (s=..., async=true) at ../libs/ardour/source_factory.cc:116 #1 0x0000000000888954 in Editor::add_sources (this=0x3810340, paths=std::vector of length 1, capacity 1 = {...}, sources=std::vector of length 1, capacity 1 = {...}, pos=@0x7fffffffc458: 0, disposition=Editing::ImportDistinctFiles, mode=Editing::ImportAsTrack, target_regions=1, target_tracks=-1, track=..., instrument=...) at ../gtk2_ardour/editor_audio_import.cc:883 #2 0x0000000000887131 in Editor::embed_sndfiles (this=0x3810340, paths=std::vector of length 1, capacity 1 = {...}, multifile=false, check_sample_rate=@0x7fffffffc2df: true, disposition=Editing::ImportDistinctFiles, mode=Editing::ImportAsTrack, pos=@0x7fffffffc458: 0, target_regions=1, target_tracks=-1, track=..., instrument=...) at ../gtk2_ardour/editor_audio_import.cc:653 #3 0x0000000000885c7c in Editor::do_embed (this=0x3810340, paths=std::vector of length 1, capacity 1 = {...}, import_as=Editing::ImportDistinctFiles, mode=Editing::ImportAsTrack, pos=@0x7fffffffc458: 0, instrument=...) at ../gtk2_ardour/editor_audio_import.cc:414 #4 0x0000000000e93aeb in SoundFileOmega::do_something (this=0x490f530, action=-5) at ../gtk2_ardour/sfdb_ui.cc:1983
2015-11-24update configure time tests and code to use libsndfile 1.0.26's version of ↵Paul Davis
the R64 auto-downgrade-to-WAV code
2015-11-23make copies of global lists before extendingNils Philippsen
Not doing so can make source or object files appear multiple times in the list of files to be compiled or linked, e.g. when doing './waf build install', subsequently leading to linker errors.
2015-11-21cont'd 20262abe (keep all playlists)Robin Gareus
2015-11-21prepare "delete all playlists" cleanup optionRobin Gareus
2015-11-21fix playlist refcount on track un-freeze.Robin Gareus
2015-11-21remove cruftRobin Gareus
2015-11-20prevent deletion of playlists on frozen tracks:Robin Gareus
bug: 1) freeze a track 2) Session Cleanup > Cleanup unused sources 2a) confirm playlist deletion 3) quit, reload -> track is no longer frozen because _freeze_record.playlist is missing. session is in an odd state.
2015-11-20add API to read snapshot name from instant.xmlRobin Gareus
2015-11-20remember in-use snapshot/session name in instant.xmlRobin Gareus
2015-11-20remove cruftRobin Gareus
2015-11-19provide user preference for pre-rollBen Loftis
2015-11-19remove debug messageRobin Gareus
2015-11-19line-wrap fatal message (that's not done automatically)Robin Gareus
2015-11-19allow to rename the session root folder - fixes #6557Robin Gareus
2015-11-18add dedicated API to check plugin classRobin Gareus
2015-11-18reduce math weirdness (thanks to Steven Yi)Robin Gareus
2015-11-14get PlaylistDisposition argument of Session::new_route_from_template() workingPaul Davis
2015-11-14Fix fader in mackie control to work with groups.Len Ovens
2015-11-13substantial part of infrastructure required for track/bus duplicationPaul Davis
This includes removing the removal of ID values in XML, and its replacement with thread-local forcing of ID resets, implemented in a previous commit
2015-11-13fix return value from Route::save_as_template()Paul Davis
2015-11-14Ardour::Region - add method required to fix #6673.nick_m
2015-11-12remove requirement for transport speed to be 1.0 when generating click ↵Paul Davis
(metronome) This is experimental and may not work
2015-11-09more correct semantics for reserved IO name checkingPaul Davis
2015-11-07slightly improved fix for reserved name handlingPaul Davis
2015-11-07don't force rename of reserved route/IO names if the name isn't taken yetPaul Davis
2015-11-06Add some newly introduced sources to our MSVC project (libardour)John Emmas
2015-11-04Make duplicate start at position, not position + 1. (libs part)André Nusser
2015-11-04add required headerPaul Davis
2015-11-03libardour wrapper for EBUr128 VAMP pluginRobin Gareus
2015-11-03AutomationList::set_automation_state () only needs a memento for toggled.nick_m
2015-11-02Class 'PhaseControllable' needs to be importable since it gets referenced ↵John Emmas
outside of libardour Specifically, 'PhaseControllable::channel()' and 'PhaseControllable::set_channel()' get called from 'mackie/strip.cc' At some point we might also need to do this for the related classes (SoloControllable and MuteControllable) although it doesn't seem to be needed right at this moment.
2015-11-01Fix Mackie surface phase control for flip and more than one audio channel.Len Ovens
2015-11-01Added Phase control mackie controls as part of the Trim (track) vpot assignment.Len Ovens
2015-11-02Fix missing undo for record mute automation.nick_m
2015-11-02Clean up _before XMLNode in AutomationList if no automation write occurred.nick_m
2015-11-01Automation watch sets position for new write pass when transport stopped.nick_m
2015-11-01Revert starting write pass only in write mode when transport located.nick_m
2015-10-26and another LV2-1.0.0 compat ifdefRobin Gareus