<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Hello Jean,</div><div class=""><br class=""></div>You can solve your problem by declaring an empty variable (<font face="Monaco" style="font-size: 14px;" class="">Osc</font> is the superclass of both <font face="Monaco" class="">SinOsc</font> and <font face="Monaco" class="">TriOsc</font>):<div class=""><div style="margin: 0px; font-size: 13px; font-family: Monaco;" class=""><span style="color: #0433ff" class=""><br class=""></span></div><div style="margin: 0px; font-size: 13px; font-family: Monaco;" class=""><span style="color: #0433ff" class="">fun</span> <span style="color: #0433ff" class="">void</span> playForPixels(<span style="color: #0433ff" class="">int</span> totalpixels, <span style="color: #94132e" class="">string</span> osc) {</div><div style="margin: 0px; font-size: 13px; font-family: Monaco;" class="">&nbsp; &nbsp; <span style="color: #b436f0" class="">Osc</span> @ sh;</div><div style="margin: 0px; font-size: 13px; font-family: Monaco;" class="">&nbsp; &nbsp; <span style="color: #0433ff" class="">if</span> ( osc == <span style="color: #515151" class="">"sin"</span> ) { <span style="color: #0433ff" class="">new</span> <span style="color: #b436f0" class="">SinOsc</span><span style="color: #b436f0" class="">&nbsp;</span>@=&gt; sh; }</div><div style="margin: 0px; font-size: 13px; font-family: Monaco;" class="">&nbsp; &nbsp; <span style="color: #0433ff" class="">else</span> {</div><div style="margin: 0px; font-size: 13px; font-family: Monaco;" class="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0433ff" class="">if</span> ( osc == <span style="color: #515151" class="">"tri"</span> ) { <span style="color: #0433ff" class="">new</span> <span style="color: #b436f0" class="">TriOsc</span><span style="color: #b436f0" class="">&nbsp;</span>@=&gt;&nbsp; sh; }</div><div style="margin: 0px; font-size: 13px; font-family: Monaco;" class="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0433ff" class="">else</span> { new&nbsp;<span style="color: #b436f0" class="">SawOsc @=&gt;</span> sh; }</div><div style="margin: 0px; font-size: 13px; font-family: Monaco;" class="">&nbsp; &nbsp; }</div><div style="margin: 0px; font-size: 13px; font-family: Monaco;" class=""><br class=""></div><div style="margin: 0px; font-size: 13px; font-family: Monaco;" class="">&nbsp; &nbsp; 440 =&gt; osc.freq; // Still allows you to control frequency...</div><div style="margin: 0px; font-size: 13px; font-family: Monaco;" class=""><br class=""></div><div style="margin: 0px; font-size: 13px; font-family: Monaco;" class="">Best,</div><div style="margin: 0px; font-size: 13px; font-family: Monaco;" class="">Casper</div><div style="margin: 0px; font-size: 13px; font-family: Monaco;" class=""><br class=""></div>
<br class=""><div><blockquote type="cite" class=""><div class="">On Oct 5, 2015, at 04:19, Jean Menezes da Rocha &lt;<a href="mailto:jean@menezesdarocha.info" class="">jean@menezesdarocha.info</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Hello, guys,<div class=""><br class=""></div><div class="">I am trying to choose which UGen to load (SinOsc, TriOsc or SawOsc) based on a given condition. This sample code</div><div class=""><br class=""></div><div class=""><div class=""><div class=""><font face="monospace, monospace" class="">&nbsp; &nbsp; fun void playForPixels(int totalpixels, string osc) {</font></div><div class=""><font face="monospace, monospace" class="">&nbsp; &nbsp; &nbsp; &nbsp; if ( osc == "sin" ) { SinOsc sh; }</font></div><div class=""><font face="monospace, monospace" class="">&nbsp; &nbsp; &nbsp; &nbsp; else {</font></div><div class=""><font face="monospace, monospace" class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( osc == "tri" ) { TriOsc sh; }</font></div><div class=""><font face="monospace, monospace" class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else { SawOsc sh; }</font></div><div class=""><font face="monospace, monospace" class="">&nbsp; &nbsp; &nbsp; &nbsp; }</font></div><div class=""><font face="monospace, monospace" class=""><br class=""></font></div><div class=""><font face="monospace, monospace" class="">&nbsp; &nbsp; &nbsp; &nbsp; Envelope e =&gt; Gain g =&gt; dac;</font></div><div class=""><font face="monospace, monospace" class=""><br class=""></font></div><div class=""><font face="monospace, monospace" class="">&nbsp; &nbsp; &nbsp; &nbsp; ( ( s + v) * 100 )::ms =&gt; dur dura;</font></div><div class=""><font face="monospace, monospace" class="">&nbsp; &nbsp; &nbsp; &nbsp; s * v =&gt; g.gain;</font></div><div class=""><font face="monospace, monospace" class="">&nbsp; &nbsp; &nbsp; &nbsp; ( dura / 40 ) / second =&gt; e.time;</font></div><div class=""><font face="monospace, monospace" class=""><br class=""></font></div><div class=""><font face="monospace, monospace" class="">&nbsp; &nbsp; &nbsp; &nbsp; h * 2000 =&gt; sh.freq;</font></div><div class=""><font face="monospace, monospace" class=""><br class=""></font></div><div class=""><font face="monospace, monospace" class="">&nbsp; &nbsp; &nbsp; &nbsp; sh =&gt; e;</font></div></div><div class=""><font face="monospace, monospace" class=""><br class=""></font></div><div class=""><font face="monospace, monospace" class="">(code goes on...)</font></div><div class=""><font face="monospace, monospace" class=""><br class=""></font></div><div class=""><font face="arial, helvetica, sans-serif" class="">gives me the following error:</font></div><div class=""><font face="arial, helvetica, sans-serif" class=""><br class=""></font></div><div class=""><div class=""><font face="monospace, monospace" class="">[<a href="http://listener.ck/" class="">listener.ck</a>]:line(38): undefined variable/member 'sh' in class/namespace 'Pixel'...</font></div><div class=""><font face="monospace, monospace" class="">[<a href="http://listener.ck/" class="">listener.ck</a>]: ...in function 'playForPixels'</font></div></div><div class=""><font face="monospace, monospace" class=""><br class=""></font></div><div class=""><font face="monospace, monospace" class="">(i am working inside a class named 'Pixel', in case it is important).</font></div><div class=""><font face="monospace, monospace" class=""><br class=""></font></div><div class=""><font face="arial, helvetica, sans-serif" class="">How can I load my UGen and make it persist outside the scope of the if clause?</font></div><div class=""><font face="arial, helvetica, sans-serif" class=""><br class=""></font></div><div class=""><font face="arial, helvetica, sans-serif" class="">Thanks in advance!</font></div>-- <br class=""><div class="gmail_signature"><div dir="ltr" class=""><span style="color:rgb(136,136,136)" class="">Jean Menezes da Rocha</span><br style="color:rgb(136,136,136)" class=""><span style="color:rgb(136,136,136)" class="">Compositor</span><br style="color:rgb(136,136,136)" class=""><span style="color:rgb(136,136,136)" class="">Professor -- Faculdades Est</span><br style="color:rgb(136,136,136)" class=""><span style="color:rgb(136,136,136)" class="">Mestre e Doutorando em Composição pela Universidade Federal da Bahia</span><br class=""></div></div>
</div></div>
_______________________________________________<br class="">chuck-users mailing list<br class=""><a href="mailto:chuck-users@lists.cs.princeton.edu" class="">chuck-users@lists.cs.princeton.edu</a><br class="">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users<br class=""></div></blockquote></div><br class=""></div></body></html>