View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0007070 | ardour | bugs | public | 2016-10-12 19:23 | 2020-04-19 20:18 |
Reporter | colinf | Assigned To | paul | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | 5.X git (version in description) | ||||
Fixed in Version | 5.X git (version in description) | ||||
Summary | 0007070: Automation controls set to "Play" mark session dirty at transport stop | ||||
Description | I've observed this in 5.4-104-ge4edd8e, but I think it may be a side-effect of adding VCAs, so it presumably came in around 5.0. | ||||
Steps To Reproduce | * set a fader's automation state to "Play" * roll transport * stop transport - observe '*' in title bar indicating session is unsaved | ||||
Additional Information | Setting a breakpoint in Session::set_dirty() gets me here: Thread 22 "ardour-5.4.85" hit Breakpoint 3, ARDOUR::Session::set_dirty ( this=0x1f4fb20) at ../libs/ardour/session_state.cc:3392 3392 bool was_dirty = dirty(); (gdb) bt #0 ARDOUR::Session::set_dirty (this=0x1f4fb20) at ../libs/ardour/session_state.cc:3392 0000001 0x00007ffff69419c3 in ARDOUR::SlavableAutomationControl::actually_set_value (this=0x494be00, val=1, group_override=PBD::Controllable::NoGroup) at ../libs/ardour/slavable_automation_control.cc:117 #2 0x00007ffff639a116 in ARDOUR::AutomationControl::set_value_unchecked (this=0x494be00, val=1) at /home/colinf/src/ardour2/ardour/libs/ardour/ardour/automation_control.h:108 #3 0x00007ffff63984d0 in ARDOUR::Automatable::transport_stopped (this=0x494b020, now=997376) at ../libs/ardour/automatable.cc:422 0000004 0x00007ffff6802fcf in ARDOUR::Route::nonrealtime_handle_transport_stopped (this=0x494ac20, can_flush_processors=true) at ../libs/ardour/route.cc:3212 0000005 0x00007ffff6934411 in ARDOUR::Session::non_realtime_stop (this=0x1f4fb20, abort=false, on_entry=1, finished=@0x7fffad733f6f: true) at ../libs/ardour/session_transport.cc:733 #6 0x00007ffff69331a1 in ARDOUR::Session::butler_transport_work (this=0x1f4fb20) at ../libs/ardour/session_transport.cc:449 #7 0x00007ffff63c0f73 in ARDOUR::Butler::thread_work (this=0x1f4c7b0) at ../libs/ardour/butler.cc:208 0000008 0x00007ffff63c0833 in ARDOUR::Butler::_thread_work (arg=0x1f4c7b0) at ../libs/ardour/butler.cc:156 0000009 0x00007ffff4b11df2 in fake_thread_start (arg=0x3f49190) at ../libs/pbd/pthread_utils.cc:101 0000010 0x00007fffef69c464 in start_thread (arg=0x7fffad735800) at pthread_create.c:333 0000011 0x00007fffec3d797f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105 I'm not sure whether SlavableAutomationControl::actually_set_value() is wrong to unconditionally call set_dirty(), but clearly something isn't quite right. | ||||
Tags | No tags attached. | ||||
|
almost certainly fixed in c104c9d confirmation and feedback appreciated. |
|
Yes, seems to work as Id' expect now. Cheers! |
|
Well, it was fixed in c104c9d4, but it's broken again after 9066dd73... |
|
hmm, i thought i checked the same precise thing and it seemed OK. i guess i'll do it again ... |
|
I re-instated the commented-out debug output in AutomationControl::actually_set_value() to see whether I could see any better what was going on, and noticed that it then works as expected if the automation control is set to play, but has no automated changes of value - the session is not marked dirty on stop. This is different behaviour from when the debug output is not there. Precision issues with "if (old_value != value)", maybe? Also, if the control has automation that changes its value, the session is still marked dirty. This doesn't seem right to me, and isn't (as far as I remember) how it used to work back in 4.x. |
|
new and improved fix is (hopefully) in 524f0c7 |
|
Yes, now works as expected. |
|
Issue has been closed automatically, by Trigger Close Plugin. Feel free to re-open with additional information if you think the issue is not resolved. |
Date Modified | Username | Field | Change |
---|---|---|---|
2016-10-12 19:23 | colinf | New Issue | |
2016-10-12 19:23 | colinf | Summary | Automation controls set to "Play2 mark session dirty at transport stop => Automation controls set to "Play" mark session dirty at transport stop |
2016-10-12 21:27 | paul | Note Added: 0018791 | |
2016-10-12 21:27 | paul | Assigned To | => paul |
2016-10-12 21:27 | paul | Status | new => feedback |
2016-10-13 11:45 | colinf | Note Added: 0018800 | |
2016-10-13 11:45 | colinf | Status | feedback => assigned |
2016-10-14 18:53 | colinf | Note Added: 0018815 | |
2016-10-14 19:21 | paul | Note Added: 0018816 | |
2016-10-16 11:38 | colinf | Note Added: 0018826 | |
2016-10-16 19:52 | paul | Note Added: 0018827 | |
2017-01-25 22:42 | colinf | Note Added: 0019312 | |
2017-01-25 22:42 | colinf | Status | assigned => resolved |
2017-01-25 22:42 | colinf | Fixed in Version | => 5.X git (version in description) |
2017-01-25 22:42 | colinf | Resolution | open => fixed |
2020-04-19 20:18 | system | Note Added: 0023661 | |
2020-04-19 20:18 | system | Status | resolved => closed |