I don't think so... I think you access the "w" array based on the order you passed things into the perform function. In your dsp_add function, it looks like ref would be w[1], as you have it, but n would be w[9] I think. You're accessing it as w[7].
In my _tilde_dsp function I use dsp_add to tell pd that _tilde_perform has 7 variables (my 7 inlets hopefully), and the tutorial says that you return w+(the number of variables passed plus one).
Also the tutorial has w[1] as my data structure and w[number of variables] as the number of samples and w[number of variables minus one] as out, so where are my 7 inlets? (btw: what about inclusion? wheres w[0]?)
If I return w[number of variables plus one] then w[9] is outside of that and should be some random pointer, not one of the 7 I asked for, correct? I should ask for 7 plus three to accomidate for all my inlets, the data structure, nthe number of samples and the output? Or should I ask for 3 (data structure, number of samples, output) and do all my work with the data structure? If that is the case how do my signal rate inlets match up with the elements of my data structure?
As you can see I have many questions, and If you hav'nt the time then dont worry about it. Perhaps the 'try changing random things' method will work for me, who knows. Thanks for your help in the past
-wade