I’m using Ardour with Châtaigne. I’ve been writing a JS module for Châtaigne in order to control Ardour via OSC.
So far so good, i can ask and get transport, tracks, sends and plugins. Now i’m trying to ask for the plugins parameters with /strip/plugin/descriptor ssid pid
and it seems like Ardour sends me a type tagged ‘d’ message (which Châtaigne can’t handle, but that is a separate issue).
So far, i think i have not received any ‘d’ message in all my experiments with Ardour, and this is not written in the documentation.
Am i right ? Is this answer a ‘d’ type message ?
If so, what is the rationale here ? All the other numbers i got were just floats or ints maybe, why would we need doubles here specifically ?
The current value of the plugin’s parameter is sent as double.
It seems wrong. A float should suffice, in particular since setting the value takes a float as argument. Now the problem is that fixing this will break existing applications that expect double precision.
Transport speed is also sent as double.
I do not have an explanation about the rationale, my best guess is that it is historical (internally control values can use double precision).
Add the value as a float just after the value as a double ?
Plug-in parameter ID
Bitset of flags
Number of scale points
Current parameter value as a double
Current parameter value as a float
Unless the meaning of the “data type” field is precisely to specify the format of the parameter…