<div dir="ltr">Thank you very much, Casper!<div>Although I got another solution myself (my code became really big so I abstracted some classes),</div><div>it is good to know that I can use this method when trying something quicker.</div><div><br></div><div>Best regards!</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 5, 2015 at 3:01 AM, Casper Schipper <span dir="ltr">&lt;<a href="mailto:casper.schipper@gmail.com" target="_blank">casper.schipper@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>Hello Jean,</div><div><br></div>You can solve your problem by declaring an empty variable (<font face="Monaco" style="font-size:14px">Osc</font> is the superclass of both <font face="Monaco">SinOsc</font> and <font face="Monaco">TriOsc</font>):<div><span class=""><div style="margin:0px;font-size:13px;font-family:Monaco"><span style="color:#0433ff"><br></span></div><div style="margin:0px;font-size:13px;font-family:Monaco"><span style="color:#0433ff">fun</span> <span style="color:#0433ff">void</span> playForPixels(<span style="color:#0433ff">int</span> totalpixels, <span style="color:#94132e">string</span> osc) {</div></span><div style="margin:0px;font-size:13px;font-family:Monaco">    <span style="color:#b436f0">Osc</span> @ sh;</div><div style="margin:0px;font-size:13px;font-family:Monaco">    <span style="color:#0433ff">if</span> ( osc == <span style="color:#515151">&quot;sin&quot;</span> ) { <span style="color:#0433ff">new</span> <span style="color:#b436f0">SinOsc</span><span style="color:#b436f0"> </span>@=&gt; sh; }</div><div style="margin:0px;font-size:13px;font-family:Monaco">    <span style="color:#0433ff">else</span> {</div><div style="margin:0px;font-size:13px;font-family:Monaco">        <span style="color:#0433ff">if</span> ( osc == <span style="color:#515151">&quot;tri&quot;</span> ) { <span style="color:#0433ff">new</span> <span style="color:#b436f0">TriOsc</span><span style="color:#b436f0"> </span>@=&gt;  sh; }</div><div style="margin:0px;font-size:13px;font-family:Monaco">        <span style="color:#0433ff">else</span> { new <span style="color:#b436f0">SawOsc @=&gt;</span> sh; }</div><div style="margin:0px;font-size:13px;font-family:Monaco">    }</div><div style="margin:0px;font-size:13px;font-family:Monaco"><br></div><div style="margin:0px;font-size:13px;font-family:Monaco">    440 =&gt; osc.freq; // Still allows you to control frequency...</div><div style="margin:0px;font-size:13px;font-family:Monaco"><br></div><div style="margin:0px;font-size:13px;font-family:Monaco">Best,</div><div style="margin:0px;font-size:13px;font-family:Monaco">Casper</div><div style="margin:0px;font-size:13px;font-family:Monaco"><br></div>
<br><div><blockquote type="cite"><div><div class="h5"><div>On Oct 5, 2015, at 04:19, Jean Menezes da Rocha &lt;<a href="mailto:jean@menezesdarocha.info" target="_blank">jean@menezesdarocha.info</a>&gt; wrote:</div><br></div></div><div><div><div class="h5"><div dir="ltr">Hello, guys,<div><br></div><div>I am trying to choose which UGen to load (SinOsc, TriOsc or SawOsc) based on a given condition. This sample code</div><div><br></div><div><div><div><font face="monospace, monospace">    fun void playForPixels(int totalpixels, string osc) {</font></div><div><font face="monospace, monospace">        if ( osc == &quot;sin&quot; ) { SinOsc sh; }</font></div><div><font face="monospace, monospace">        else {</font></div><div><font face="monospace, monospace">            if ( osc == &quot;tri&quot; ) { TriOsc sh; }</font></div><div><font face="monospace, monospace">            else { SawOsc sh; }</font></div><div><font face="monospace, monospace">        }</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">        Envelope e =&gt; Gain g =&gt; dac;</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">        ( ( s + v) * 100 )::ms =&gt; dur dura;</font></div><div><font face="monospace, monospace">        s * v =&gt; g.gain;</font></div><div><font face="monospace, monospace">        ( dura / 40 ) / second =&gt; e.time;</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">        h * 2000 =&gt; sh.freq;</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">        sh =&gt; e;</font></div></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">(code goes on...)</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="arial, helvetica, sans-serif">gives me the following error:</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><div><font face="monospace, monospace">[<a href="http://listener.ck/" target="_blank">listener.ck</a>]:line(38): undefined variable/member &#39;sh&#39; in class/namespace &#39;Pixel&#39;...</font></div><div><font face="monospace, monospace">[<a href="http://listener.ck/" target="_blank">listener.ck</a>]: ...in function &#39;playForPixels&#39;</font></div></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">(i am working inside a class named &#39;Pixel&#39;, in case it is important).</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="arial, helvetica, sans-serif">How can I load my UGen and make it persist outside the scope of the if clause?</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">Thanks in advance!</font></div>-- <br><div><div dir="ltr"><span style="color:rgb(136,136,136)">Jean Menezes da Rocha</span><br style="color:rgb(136,136,136)"><span style="color:rgb(136,136,136)">Compositor</span><br style="color:rgb(136,136,136)"><span style="color:rgb(136,136,136)">Professor -- Faculdades Est</span><br style="color:rgb(136,136,136)"><span style="color:rgb(136,136,136)">Mestre e Doutorando em Composição pela Universidade Federal da Bahia</span><br></div></div>
</div></div></div></div>
_______________________________________________<br>chuck-users mailing list<br><a href="mailto:chuck-users@lists.cs.princeton.edu" target="_blank">chuck-users@lists.cs.princeton.edu</a><br><a href="https://lists.cs.princeton.edu/mailman/listinfo/chuck-users" target="_blank">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users</a><br></div></blockquote></div><br></div></div><br>_______________________________________________<br>
chuck-users mailing list<br>
<a href="mailto:chuck-users@lists.cs.princeton.edu">chuck-users@lists.cs.princeton.edu</a><br>
<a href="https://lists.cs.princeton.edu/mailman/listinfo/chuck-users" rel="noreferrer" target="_blank">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><span style="color:rgb(136,136,136)">Jean Menezes da Rocha</span><br style="color:rgb(136,136,136)"><span style="color:rgb(136,136,136)">Compositor</span><br style="color:rgb(136,136,136)"><span style="color:rgb(136,136,136)">Professor -- Faculdades Est</span><br style="color:rgb(136,136,136)"><span style="color:rgb(136,136,136)">Mestre e Doutorando em Composição pela Universidade Federal da Bahia</span><br></div></div>
</div>