Hi Miller,
sorry, I didn't manage yesterday, but here we go:
On 19.05.2025 11:06, Miller Puckette via Pd-dev wrote:
To Pd dev -
I commented on one Pr but this seems like a more general question: in PRs
https://github.com/pure-data/pure-data/pull/2049
and
https://github.com/pure-data/pure-data/pull/2058
there are "channels" methods to set the number of channels for
delwrite~, tabread~ and tabread4~ - why isn't the desired number of
channels for these simply inferred from the input signal?
(In the case of delwrite~ perhaps this is because delread~ objects
might get sorted before it's clear
how many channels delwrite~ will see in its input.
That's exactly the reason. As I point in the PR description, we face the
same issue with [send~], that's why it also has a [channels( message,
although one could naively think the object could just take the channel
count from its input signal.
[delwrite~] -> [delread~] is basically the same as [send~] -> [receive~]
But I don't think this should be a problem with the
table readers).
Obviously, [tabread~] and friends don't even have an input signal from
which they could take the channel count. The only indication is the
number of tables provided as creation arguments. "set" only overwrites
the list of array names, but shouldn't actually change the number of
channels, that's why we need a separate "channels" message for that.
For example, I would typically provide a list of tables as creation
arguments and then use "channels" to select the first N tables/channels
at runtime.
And anyway, why set by a message and not in a creation argument? As
far as I can determine we're
far from being able to make patches with run-time-determined numbers
of channels - and I'd rather
avoid doing that unless there's great demand since it will greatly
complicate things.
That's absolutely not true! Patches with run-time-determined channel
counts work just fine, I do it all the time!
Also, then why do objects like [send~], [catch~], etc. have a "channels"
method? ;-) After all, they already take the number of channels as a
creation argument. The reason, of course, is to change the number of
channels at runtime. In fact, the *only* mc object I'm aware of that
only supports a fixed channel count is [sig~].
Finally, I'm pretty sure it was you who came up with the "channels"
message in the first place :)
Cheers,
Christof
---
[email protected] - the Pd developers' mailinglist
https://lists.iem.at/hyperkitty/list/[email protected]/message/43IBETTMNQACUJS6VL4F6RC7CMJNUJWL/
---
[email protected] - the Pd developers' mailinglist
https://lists.iem.at/hyperkitty/list/[email protected]/message/L7TY2VEAXJ77DAXZ7LQKOFZ3IDVKAGDE/