I have some newbie questions here...
why is it that [*] is only for floats, whereas if you want to multiply two signals one has to use [*~] ? And then why is it that [*~] can multiply a signal by a float, but [*] can't do that?
because according to Pd rules its not OK to confuse the user with seperate objects/operators for floats vs ints or symbols vs strings, but ok for signals vs floats?
why is it that [*] can't multiply a list by an integer? or is that what you mean by signal, a list of floats?
And then why is it that [*~] can't multiply a float by a signal, the signal has to be on the left? Why is it that if I want to divide a float by a signal, then I have to explicitly cast the float to signal (using [sig~]) or use [expr~] ?
the main reason i can think of is it's a lossy operation if the return value is a float. what value for the signal are you operating on - the value of the first sample in the DSP block? the average of all the samples in the block? the * vs *~ distinction might be useful to specify a desired return type..