Ardour
Ardour is an open-source digital audio workstation.
ardour.org
Recent Activity
- Fix crash at exit when route-groups are deleted by route drop ref
Robin Gareus: ==1914112==ERROR: AddressSanitizer: heap-use-after-free on address 0x619000483688 at pc 0x7f5b10be03c5 bp 0x7fff55e36670 sp 0x7fff55e36668 READ of size 8 at 0x619000483688 thread T0 #0 0x7f5b10be03c4 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count(std::__weak_count<(__gnu_cxx::_Lock_policy)2> const&, std::nothrow_t) /usr/include/c++/10/bits/shared_ptr_base.h:911 #1 0x7f5b1190ecee in std::__shared_ptr<ARDOUR::VCA, (__gnu_cxx::_Lock_policy)2>::__shared_ptr(std::__weak_ptr<ARDOUR::VCA, (__gnu_cxx::_Lock_policy)2> const&, std::nothrow_t) /usr/include/c++/10/bits/shared_ptr_base.h:1382 #2 0x7f5b1190cc3e in std::shared_ptr<ARDOUR::VCA>::shared_ptr(std::weak_ptr<ARDOUR::VCA> const&, std::nothrow_t) /usr/include/c++/10/bits/shared_ptr.h:417 #3 0x7f5b1190aaae in std::weak_ptr<ARDOUR::VCA>::lock() const /usr/include/c++/10/bits/shared_ptr.h:749 #4 0x7f5b118fea7e in ARDOUR::RouteGroup::remove(std::shared_ptr<ARDOUR::Route>) ../libs/ardour/route_group.cc:267 #5 0x7f5b118fde6e in ARDOUR::RouteGroup::remove_when_going_away(std::weak_ptr<ARDOUR::Route>) ../libs/ardour/route_group.cc:223 #6 0x7f5b11912d3d in void std::__invoke_impl<void, void (ARDOUR::RouteGroup::*&)(std::weak_ptr<ARDOUR::Route>), ARDOUR::RouteGroup*&, std::weak_ptr<ARDOUR::Route>&>(std::__invoke_memfun_deref, void (ARDOUR::RouteGroup::*&)(std::weak_ptr<ARDOUR::Route>), ARDOUR::RouteGroup*&, std::weak_ptr<ARDOUR::Route>&) /usr/include/c++/10/bits/invoke.h:73 #7 0x7f5b119128c8 in std::__invoke_result<void (ARDOUR::RouteGroup::*&)(std::weak_ptr<ARDOUR::Route>), ARDOUR::RouteGroup*&, std::weak_ptr<ARDOUR::Route>&>::type std::__invoke<void (ARDOUR::RouteGroup::*&)(std::weak_ptr<ARDOUR::Route>), ARDOUR::RouteGroup*&, std::weak_ptr<ARDOUR::Route>&>(void (ARDOUR::RouteGroup::*&)(std::weak_ptr<ARDOUR::Route>), ARDOUR::RouteGroup*&, std::weak_ptr<ARDOUR::Route>&) /usr/include/c++/10/bits/invoke.h:95 #8 0x7f5b119125bc in void std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)>::__call<void, , 0ul, 1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/10/functional:416 #9 0x7f5b11911fdc in void std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)>::operator()<, void>() /usr/include/c++/10/functional:499 #10 0x7f5b11910e79 in void std::__invoke_impl<void, std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)>&>(std::__invoke_other, std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)>&) /usr/include/c++/10/bits/invoke.h:60 #11 0x7f5b1190f187 in std::enable_if<is_invocable_r_v<void, std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)>&>, void>::type std::__invoke_r<void, std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)>&>(std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)>&) /usr/include/c++/10/bits/invoke.h:110 #12 0x7f5b1190d26a in std::_Function_handler<void (), std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)> >::_M_invoke(std::_Any_data const&) /usr/include/c++/10/bits/std_function.h:291 #13 0x558120310619 in std::function<void ()>::operator()() const /usr/include/c++/10/bits/std_function.h:622 #14 0x7f5b10bcb0d6 in PBD::SignalWithCombiner<PBD::OptionalLastValue<void>, void ()>::operator()() ../libs/pbd/pbd/signals.h:508 #15 0x7f5b10bc779b in PBD::Destructible::drop_references() ../libs/pbd/pbd/destructible.h:33 #16 0x7f5b1196700f in ARDOUR::Session::destroy() ../libs/ardour/session.cc:822 #17 0x7f5b11962f93 in ARDOUR::Session::~Session() ../libs/ardour/session.cc:581 #18 0x7f5b119639a9 in ARDOUR::Session::~Session() ../libs/ardour/session.cc:582 #19 0x558120305a92 in close_session ../luasession/luasession.cc:366 #20 0x55812031911c in luabridge::FuncTraits<void (*)(), void (*)()>::call(void (*)(), luabridge::TypeListValues<void>) ../libs/lua/LuaBridge/detail/FuncTraits.h:73 #21 0x5581203151eb in luabridge::CFunc::Call<void (*)(), void>::f(lua_State*) ../libs/lua/LuaBridge/detail/CFunctions.h:244 #22 0x55812035701f in luaD_precall ../libs/lua/lua-5.3.5/ldo.c:434 #23 0x55812038f1bd in luaV_execute ../libs/lua/lua-5.3.5/lvm.c:1136 #24 0x5581203579a8 in luaD_call ../libs/lua/lua-5.3.5/ldo.c:499 #25 0x558120357a80 in luaD_callnoyield ../libs/lua/lua-5.3.5/ldo.c:509 #26 0x558120346f82 in f_call ../libs/lua/lua-5.3.5/lapi.c:943 #27 0x558120354e59 in luaD_rawrunprotected ../libs/lua/lua-5.3.5/ldo.c:142 #28 0x55812035924f in luaD_pcall ../libs/lua/lua-5.3.5/ldo.c:729 #29 0x558120347226 in lua_pcallk ../libs/lua/lua-5.3.5/lapi.c:969 #30 0x558120393ae9 in LuaState::do_command(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) ../libs/lua/luastate.cc:64 #31 0x558120306da8 in interactive_interpreter ../luasession/luasession.cc:514 #32 0x558120307b36 in main ../luasession/luasession.cc:641 #33 0x7f5b0e40dd79 in __libc_start_main ../csu/libc-start.c:308 #34 0x558120303179 in _start (/home/rgareus/src/ardour/build/luasession/luasession+0x7a179) - make it possible to do certain basic MIDI editing from a context menu in a pianoroll
Paul Davis: Quantize, Legatize, Transform and Remove Overlaps (negative legatize) are all handy, and should be accessible here. - an initial fix for a crash occuring when deleting routes that lead to RouteGroup deletion
Paul Davis: The RouteGroup containing the deleted routes emits the RouteRemoved signal; Session handles this and if the RouteGroup is now empty, deletes the RouteGroup *while in the middle of the signal emission process*. - Remove outdated mix-tools scripts (superseded by native feature)
Robin Gareus - Add curl trace support
Robin Gareus - Add support for strip-states to template manager
Robin Gareus - VST3: set VSTSpeakerArrangements to match track
Robin Gareus: This fixes some plugins that require a valid Bus/SpeakerArrangement setting to set the available per bus I/O channel-count. - MCP - Add RGB color display to iCON P1-M, P-NANO and V1-M
Nicolas Koch - Strip Import: add option to show all local tracks
Robin Gareus - TriggerBox: radically redesign handling of region changes by AudioTrigger
Paul Davis: This now follows MIDITrigger - when a region's bounds are changed, we reload the data corresponding to the region into memory, queue up a PendingSwap and then have Trigger::check_edit_swap() switch to the new data when necessary (synchronously with ::run).
This comment also removes AudioTrigger::_start_offset because there is never any start offet - the data in memory is always precisely the data corresponding to the region.