asString { arg limit = 512; var string; _ObjectString string = String.streamContentsLimit({ arg stream; this.printOn(stream); }, limit); if (string.size >= limit, { ^(string ++ "...etc..."); }); ^string } So, according to this, if I want to print something with a limit larger than 512, I should be able to do this. (something).asString(2000) But if I put in a debug statement to print the actual limit used, it is always 512 no matter what I do. SynthDescLib.at(\zap).asString(2000) limit: 512 <<---- HUH? Why is this not 2000 like I said? SynthDesc 'zap' Controls: ControlName P 0 dur control 0.0099999997764826 ControlName P 1 decayratio control 0.0099999997764826 ControlName P 2 freqs control 100 ControlName P 3 ? control 100 ControlName P 4 ? control 100 ControlName P 5 ? control 100 ControlName P 6 subratio control 0.80000001192093 ControlName P 7 panstart control 0 ControlName P 8 panend control 0 ControlName P 9 amp control 0.10000000149012 ControlName P 10 outbus control 0 ControlName P 11 bufnum control 0 ControlName P 12...etc... What I want is to get rid of the ...etc... and see all the controls. The only way I can do it is to call String.streamContentsLimit manually. That shouldn't be necessary. I looked at the source and can't figure out why. It looks like the method call involves 2 arguments, which should be 'this' and the limit. case 193 : case 194 : case 195 : case 196 : case 197 : case 198 : case 199 : case 200 : case 201 : case 202 : case 203 : case 204 : case 205 : case 206 : case 207 : op2 = ip[1]; ++ip; // get selector index numArgsPushed = op1 & 15; 194 & 15 == 2 Anyone have any insight? Clearly this is not working as it should and it looks to me like something in the VM. hjh : H. James Harkins .::!:.:.......:.::........:..!.::.::...:..:...:.:.:.:..: "Come said the Muse, Sing me a song no poet has yet chanted, Sing me the universal." -- Whitman |