View Issue Details

IDProjectCategoryView StatusLast Update
0008186ardourbugspublic2020-06-24 03:29
Reportersapista Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
PlatformArchlinuxOSSome Other LinuxOS Versionunknown
Product Version6.0 
Summary0008186: OSC Feedback messages with "default values" on /strip/select
DescriptionWhen a strip is selected with the OSC commands /strip/select and Feedback is enables Ardour selects the strip correctly and responds with all the mixer settings using OSC feedback.
In version 6.0 the feedback messages are sent twice on strip selection. The first response is wrong and contains all parameters set to default values or zero. The second response is the good one. So the first response sequence is a bug. This cause all my faders to move down to zero and rapidly go back to the right value each time I select a strip using my control surface or a track in Ardour.

Steps To Reproduce1. Create an Ardour session with two tracks
2. Enable OSC control surface with feedback
3. Listen to OSC messages: dump_osc 8000
4. Select a track in Ardour or using /strip/select command
Additional InformationHere it is an example of the feedback I get in a two-track session:

/strip/select ,if 2 0.0
/strip/select ,if 1 1.0
/strip/expand ,if 1 0.0
/strip/group ,is 1 none
/strip/mute ,if 1 0.0
/strip/solo ,if 1 0.0
/strip/recenable ,if 1 0.0
/strip/record_safe ,if 1 0.0
/strip/monitor_input ,if 1 0.0
/strip/monitor_disk ,if 1 0.0
/strip/gui_select ,if 1 0.0
/strip/select ,if 1 0.0
/strip/trimdB ,if 1 0.0
/strip/meter ,if 1 0.0
/strip/name ,is 1
/strip/fader ,if 1 0.0
/strip/pan_stereo_position ,if 1 0.5
/strip/expand ,if 2 0.0
/strip/group ,is 2 none
/strip/mute ,if 2 0.0
/strip/solo ,if 2 0.0
/strip/recenable ,if 2 0.0
/strip/record_safe ,if 2 0.0
/strip/monitor_input ,if 2 0.0
/strip/monitor_disk ,if 2 0.0
/strip/gui_select ,if 2 0.0
/strip/select ,if 2 0.0
/strip/trimdB ,if 2 0.0
/strip/meter ,if 2 0.0
/strip/name ,is 2
/strip/fader ,if 2 0.0
/strip/pan_stereo_position ,if 2 0.5
/strip/select ,if 1 1.0
/strip/name ,is 1 Audio 1
/strip/group ,is 1
/strip/hide ,ii 1 0
/strip/mute ,if 1 1.0
/strip/solo ,if 1 0.0
/strip/solo_iso ,if 1 0.0
/strip/solo_safe ,if 1 0.0
/strip/monitor_input ,ii 1 0
/strip/monitor_disk ,ii 1 0
/strip/recenable ,if 1 0.0
/strip/record_safe ,if 1 0.0
/strip/select ,if 1 1.0
/strip/fader ,if 1 0.4012196958065033
/strip/fader/automation ,if 1 0.0
/strip/fader/automation_name ,is 1 Manual
/strip/trimdB ,if 1 0.0
/strip/pan_stereo_position ,if 1 0.6502307653427124
/strip/expand ,if 1 0.0
/strip/select ,if 2 0.0
/strip/name ,is 2 Audio 2
/strip/group ,is 2
/strip/hide ,ii 2 0
/strip/mute ,if 2 0.0
/strip/solo ,if 2 1.0
/strip/solo_iso ,if 2 0.0
/strip/solo_safe ,if 2 0.0
/strip/monitor_input ,ii 2 0
/strip/monitor_disk ,ii 2 0
/strip/recenable ,if 2 0.0
/strip/record_safe ,if 2 0.0
/strip/select ,if 2 0.0
/strip/fader ,if 2 0.5708699822425842
/strip/fader/automation ,if 2 0.0
/strip/fader/automation_name ,is 2 Manual
/strip/trimdB ,if 2 0.0
/strip/pan_stereo_position ,if 2 0.21515387296676636
/strip/expand ,if 2 0.0
/strip/list ,

For example, if we focus on the Mute Button state of track 1: we first get the message /strip/mute ,if 1 0.0 and later the correct message /strip/mute ,if 1 1.0
So, every message is sent twice being the first one incorrect.
TagsNo tags attached.

Activities

ovenwerks

2020-06-07 21:27

reporter   ~0024432

Thank you for the report. While I can not duplicate your results exactly, I do not think the feedback is really as expected in any case. The full strip refresh should not be needed. The only /strip messages should be /strip/select for all channels and perhaps /strip/expand for all channels. The full refresh should just be for the /select/ set of commands.

I would like to be able to replicate your findings also. If you could oscsend the command /surface/list and attach what it puts out to the Ardour log window (top corner LED button or Window->Log to open) . Just what this command adds, not the whole log window :) Then paste that to a message here or attach it as a text file.

sapista

2020-06-08 06:10

reporter   ~0024433

Maybe the behavior depends on how the OSC controller configures Ardour using the /set_surface command. Here it is the messages I sent to Ardour to produce this feedback:

2020-06-08T08:04:13 [INFO]: OSC: /set_surface i:0 i:7 i:24771 i:3 i:0
2020-06-08T08:05:18 [INFO]: OSC: /strip/select i:1 i:1

And the output of /surface/list:
2020-06-08T08:08:41 [INFO]: OSC: /surface/list
2020-06-08T08:08:41 [INFO]:
List of known Surfaces (1):

  Surface: 0 - URL: osc.udp://127.0.0.1:8000/ Manual port
    Number of strips: 3 Bank size: 0 Current Bank 1
    Use Custom: 0 Custom Strips: 0
    Temp Mode: 0 Temp Strips: 0
    Strip Types: 7 Feedback: 24771 No_clear flag: 0 Gain mode: 3 Use groups flag 0
    Using plugin: 0 of 0 plugins, with 0 params. Page size: 0 Page: 1
    Send page size: 0 Page: 1
    Expanded flag 0 Track: 0 Jogmode: 0
    Personal monitor flag 0, Aux master: 0, Number of sends: 0
    Linkset: 0 Device Id: 1

List of LinkSets (0):

Thanks

ovenwerks

2020-06-23 16:28

reporter   ~0024493

Thank you, yes using your set_surface allows me to reproduce. (Banksize 0 to my banksize 8). Good clue, thank you. I think I will have to re-imagine how I deal with banksize 0. My test control surfaces have all been banked.

ovenwerks

2020-06-24 03:29

reporter   ~0024496

This should be fixed by commit 4717f7806d7a773bd8b1a6ec7396de91e9265646

Issue History

Date Modified Username Field Change
2020-06-01 10:33 sapista New Issue
2020-06-07 21:27 ovenwerks Note Added: 0024432
2020-06-08 06:10 sapista Note Added: 0024433
2020-06-23 16:28 ovenwerks Note Added: 0024493
2020-06-24 03:29 ovenwerks Status new => closed
2020-06-24 03:29 ovenwerks Resolution open => fixed
2020-06-24 03:29 ovenwerks Note Added: 0024496