On Tue, Jan 27, 2004 at 02:58:20 +1100, [EMAIL PROTECTED] wrote:
> > an integer in scheme? Couldnt the problem be solved by specifying 
> > the type explicitly at send time and doing the coercion then? eg: 
> > 
> > (-> �"/foo" �"isf" 100 �"hello" 100.0) 
> 
> That is exactly what would be required and it is not at all good. �People 
> in user space should not have to even know that there are single and 
> double precision floating point representations in order to set the 
> frequency of an instrument. �Especially not from a language 

OK, I've thought about this some more and I think I agree with you now. I'l
add type coercion when I have time, should be easy enough.

> In the redundant case the coercion adds one integer comparison to the 
> dispatch path per argument, and thoughtful ordering of the coercion 
> table should get most common cases in two or three comparisons; it is 
> not an expensive operation. �

The expense is not an issue, I've just had bad experiences with weakly
typed APIs. In this case, if we only do conversions between different
numerical types I dont see that it will hurt, as long as the corner cases
are handled sensibly.
 
> And I am still arguing that it is an important aspect of OSC that when a 
> synth advertises a '/freq' message, users can be confident that sending 
> it 440, whether encoded as a 32bit or 64bit integer, or as a 32bit or 64bit 
> float, will likely tune the synth to A440. �OSC is in user space, I think it 
> would be a pity if synths advertised '/freqi', '/freqh', '/freqf' and '/freqd'

Yes, this is a good point. 

- Steve

Reply via email to