Mistakes in 6.0 SDK?

Oct 19, 2011 at 8:41am

Mistakes in 6.0 SDK?

In the updated “simplemsp~” example, the “float” message method declaration accepts a double, not a float as one might expect. Is this a typo, or does Max 6 now secretly pass around doubles, with unsupporting objects just taking the MSB?

void simplemsp_float(t_simplemsp *x, double f);

Also, take a look at this (32-bit perform method):

t_simplemsp *x = (t_simplemsp *)(w[1]);
t_float *inL = (t_float *)(w[2]);
t_float *outL = (t_float *)(w[3]);
int n = (int)w[4];

Compared to this (64-bit perform method):

t_double *inL = ins[0];
t_double *inR = ins[1];
t_double *outL = outs[0];

The 32 bit method has only 1 input and 1 output, whereas the 64-bit method has 2 inputs and 1 output. Am I missing something, or is this just a mistake?

#59422
Oct 19, 2011 at 11:35am

For as long as I can remember it has been necessary to declare typed float arguments as doubles for windows compatibility at least. The A_FLOAT type is still an actual float though….

A.

#213873
Oct 19, 2011 at 11:46am

Ah, thanks. C’est un peu bizarre, non?

#213874

You must be logged in to reply to this topic.