Hi Istvan, This sounds good, though for the C function I think it might be better to get rid of type and let the user handle what to do with the MYFLT. The reasoning I'm thinking is that the Csound code is polymorphic, yes? One can put in an i, k, or a and may want to read it out at different rates too, without having to "cast" if they want to read at a different than what was put in. For strings, I think it'd be fine to put the burden of responsibility on the user and they'd have to just be careful to use really unique Sname's and know if what's going in is a MYFLT or String. steven > How about something like this (of course, "opcode1", "opcode2", and > "funcName" should be renamed - any ideas ?): > > opcode1 Sname, xr > xr opcode2 Sname > > where xr is a variable of type i, k, a, or S. > > int funcName(CSOUND *csound, MYFLT **p, const char *name, int type); > > p: > > pointer to a variable of type MYFLT* that will receive a pointer to > the data > > type: > > 1: i/k-rate > 2: a-rate > 3: string > > return value: > > 0 (CSOUND_SUCCESS): no error > CSOUND_ERROR: a variable with the same name but different type is > already defined, or the name or type is invalid > CSOUND_MEMORY: creating the variable failed due to insufficient memory -- Send bugs reports to this list. To unsubscribe, send email to csound-unsubscribe@lists.bath.ac.uk