<div dir="ltr">Hi Chiel,<div><br></div><div>Hmm, maybe make sure you have the latest version of chuck (1.3.5.2). Your chugin works fine for me on Mac and also on Visual Studio 2015/Windows 7. </div><div><br></div><div>Looking at the code, I dont see anything that would cause any problems. This might be problematic though: </div><div>chuck --chugin-path:. --chugin:SystemTime <br></div><div><br></div><div>This will cause SystemTime.chug to be loaded twice, once when it is found on the specified chugin path and again when it is specified by --chugin. ChucK should not double-load chugins like this, so thats a bug, but see if you get different results with only one of --chugin-path:. or --chugin:SystemTime. </div><div><br></div><div>spencer</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 9, 2016 at 1:58 AM, Chiel ten Brinke <span dir="ltr">&lt;<a href="mailto:ctenbrinke@gmail.com" target="_blank">ctenbrinke@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 dir="ltr">Thanks for the pointers. I&#39;ve been looking into it.<div><br></div><div>I&#39;m currently hitting a wall though with developing a simple chugin. It seems that loading<b> any manually compiled chugins</b> immediately result in a segmentation fault.</div><div>I&#39;m using Visual Studio 2015 on windows 7. Is this any known problem?</div><div><br></div><div><br></div><div>Here&#39;s a more detailed case:</div><div><br></div><div><font size="4">Source file (compiles fine):</font></div><div><font face="monospace, monospace" size="1"><br></font></div><div><div><font face="monospace, monospace" size="1">#include &quot;chuck_dl.h&quot;</font></div><div><font face="monospace, monospace" size="1">#include &quot;chuck_def.h&quot;</font></div><div><font face="monospace, monospace" size="1"><br></font></div><div><font face="monospace, monospace" size="1">#include &lt;stdio.h&gt;</font></div><div><font face="monospace, monospace" size="1">#include &lt;limits.h&gt;</font></div><div><font face="monospace, monospace" size="1">#include &lt;stdlib.h&gt;</font></div><div><font face="monospace, monospace" size="1">#include &lt;math.h&gt;</font></div><div><font face="monospace, monospace" size="1"><br></font></div><div><font face="monospace, monospace" size="1"><br></font></div><div><font face="monospace, monospace" size="1">CK_DLL_SFUN(systemtime_getFreq);</font></div><div><font face="monospace, monospace" size="1"><br></font></div><div><font face="monospace, monospace" size="1">t_CKFLOAT getFreq() { return 4.0; }</font></div><div><font face="monospace, monospace" size="1"><br></font></div><div><font face="monospace, monospace" size="1">CK_DLL_QUERY(SystemTime)</font></div><div><font face="monospace, monospace" size="1">{</font></div><div><font face="monospace, monospace" size="1">    QUERY-&gt;setname(QUERY, &quot;SystemTime&quot;);</font></div><div><font face="monospace, monospace" size="1"><br></font></div><div><font face="monospace, monospace" size="1">    QUERY-&gt;begin_class(QUERY, &quot;SystemTime&quot;, &quot;Object&quot;);</font></div><div><font face="monospace, monospace" size="1">    QUERY-&gt;doc_class(QUERY, &quot;System time support&quot;);</font></div><div><font face="monospace, monospace" size="1"><br></font></div><div><font face="monospace, monospace" size="1">    QUERY-&gt;add_sfun(QUERY, systemtime_getFreq, &quot;float&quot;, &quot;freq&quot;);</font></div><div><font face="monospace, monospace" size="1">    QUERY-&gt;doc_func(QUERY, &quot;Oscillator frequency [Hz]. &quot;);</font></div><div><font face="monospace, monospace" size="1"><br></font></div><div><font face="monospace, monospace" size="1">    QUERY-&gt;end_class(QUERY);</font></div><div><font face="monospace, monospace" size="1"><br></font></div><div><font face="monospace, monospace" size="1">    return TRUE;</font></div><div><font face="monospace, monospace" size="1">}</font></div><div><font face="monospace, monospace" size="1"><br></font></div><div><font face="monospace, monospace" size="1"><br></font></div><div><font face="monospace, monospace" size="1">CK_DLL_SFUN(systemtime_getFreq)</font></div><div><font face="monospace, monospace" size="1">{</font></div><div><font face="monospace, monospace" size="1">    RETURN-&gt;v_float = getFreq();</font></div><div><font face="monospace, monospace" size="1">}</font></div></div><div><br></div><div><br></div><div><font size="4">Command to run:</font></div><div><br></div><div><font face="monospace, monospace" size="1">$ cd chugins/Debug</font></div><div><div><font face="monospace, monospace" size="1">$ chuck --chugin-path:. --chugin:SystemTime ../SystemTime/SystemTime-test.ck</font></div><div><font face="monospace, monospace" size="1">Segmentation fault</font></div></div><div><font face="monospace, monospace" size="1"><br></font></div><div><font face="arial, helvetica, sans-serif">Where SystemTime-test.ck maybe any trivial chuck script.</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">You can also view the commit that contains this test code here: <a href="https://github.com/Chiel92/chugins/commit/9d49c0713ca9918a3e5b71e4a38f84e0ad02e464" target="_blank">https://github.com/Chiel92/chugins/commit/9d49c0713ca9918a3e5b71e4a38f84e0ad02e464</a></font></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, May 4, 2016 at 10:05 AM, Iain Emsley <span dir="ltr">&lt;<a href="mailto:iain.emsley@kellogg.ox.ac.uk" target="_blank">iain.emsley@kellogg.ox.ac.uk</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">
Hi  Chiel, 
<div><br>
</div>
<div>The Github for the Chugging is here:</div>
<div><a href="https://github.com/ccrma/chugins" target="_blank">https://github.com/ccrma/chugins</a></div>
<div><br>
</div>
<div>and the extension part of the ChucK site has some notes:</div>
<div><a href="http://chuck.stanford.edu/extend/" target="_blank">http://chuck.stanford.edu/extend/</a></div>
<div><br>
</div>
<div>There is a paper describing the extension system here:</div>
<div><a href="https://ccrma.stanford.edu/~spencer/publications/CCC2012.pdf" target="_blank">https://ccrma.stanford.edu/~spencer/publications/CCC2012.pdf</a></div>
<div><br>
</div>
<div>The chuginate code in the repo may provide some additional notes as well in the code comments. </div>
<div><br>
</div>
<div>Kind regards, </div>
<div><br>
</div>
<div>Iain</div>
<div><br>
<div>
<div>Iain Emsley</div>
<div><br>
</div>
<div>Research Associate</div>
<div>Oxford e-Research Centre</div>
<div>University of Oxford </div>
<div><br>
</div>
<div><br>
</div>
<br>
</div><div><div>
<br>
<div>
<blockquote type="cite">
<div>On 4 May 2016, at 08:12, Chiel ten Brinke &lt;<a href="mailto:ctenbrinke@gmail.com" target="_blank">ctenbrinke@gmail.com</a>&gt; wrote:</div>
<br>
<div>
<div dir="ltr">Is there a place where this stuff is documented? I can&#39;t find anything about it on the website
<a href="http://chuck.cs.princeton.edu/doc/program/" target="_blank">http://chuck.cs.princeton.edu/doc/program/</a></div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Wed, May 4, 2016 at 2:19 AM, Spencer Salazar <span dir="ltr">
&lt;<a href="mailto:spencer@ccrma.stanford.edu" target="_blank">spencer@ccrma.stanford.edu</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">I think the best way to do this is with a chugin. If you know any C++ it would be very easy to write a chugin that simply wraps C time() or whatever OS-dependent function gives you time in milliseconds or nanoseconds. 
<div><br>
</div>
<div>Time in programming languages is a surprisingly complex topic (see e.g. [1]); the design of ChucK&#39;s now concept (in my opinion, smartly) has no external notion of time, avoiding these issues. Putting this in a chugin would make it a lot easier
 to grow to the appropriate level of complexity. 
<div><br>
</div>
<div>spencer</div>
<div><br>
</div>
<div>[1] <a href="http://infiniteundo.com/post/25326999628/falsehoods-programmers-believe-about-time" target="_blank">http://infiniteundo.com/post/25326999628/falsehoods-programmers-believe-about-time</a></div>
<div><br>
</div>
</div>
</div>
<div class="gmail_extra">
<div>
<div><br>
<div class="gmail_quote">On Tue, May 3, 2016 at 1:33 AM, Chiel ten Brinke <span dir="ltr">
&lt;<a href="mailto:ctenbrinke@gmail.com" target="_blank">ctenbrinke@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 dir="ltr">The problem with this approach, though, is that it apparently takes a few seconds before the input is processed and the internal chuck timer starts counting.
<div>This results in that the times printed by the suggested code always is a few seconds too early. This makes this approach not quite useful for tracking down latency problems.</div>
<div><br>
</div>
<div>Is there a way around this caveat, or are there other approaches to print full time?</div>
</div>
<div>
<div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Tue, May 3, 2016 at 9:54 AM, Chiel ten Brinke <span dir="ltr">
&lt;<a href="mailto:ctenbrinke@gmail.com" target="_blank">ctenbrinke@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 dir="ltr">Here is an improvement over the provided script:
<div><br>
</div>
<blockquote style="margin:0 0 0 40px;border:none;padding:0px">
<div>
<div>class FullTimeHack</div>
</div>
<div>
<div>{</div>
</div>
<div>
<div>    int minutes;</div>
</div>
<div>
<div>    int seconds;</div>
</div>
<div>
<div><br>
</div>
</div>
<div>
<div>    // PRECONSTRUCTOR</div>
</div>
<div>
<div><br>
</div>
</div>
<div>
<div>    string datetime;</div>
</div>
<span>
<div>
<div>    ConsoleInput stdin;     // gonna read from here</div>
</div>
<div>
<div>    stdin.prompt(&quot;&quot;) =&gt; now; // wait until something comes in</div>
</div>
</span><span>
<div>
<div>    while (stdin.more())  {  stdin.getLine() =&gt; datetime;  } // read input</div>
</div>
</span>
<div>
<div>    //&lt;&lt;&lt; datetime &gt;&gt;&gt;;</div>
</div>
<div>
<div>    Std.atoi(datetime.substring(10, 2)) =&gt; minutes;</div>
</div>
<div>
<div>    Std.atoi(datetime.substring(13, 2)) =&gt; seconds;</div>
</div>
<div>
<div>    &lt;&lt;&lt; minutes + &quot;:&quot; + seconds &gt;&gt;&gt;;</div>
</div>
<div>
<div><br>
</div>
</div>
<div>
<div><br>
</div>
</div>
<div>
<div>    fun void print_full_time()</div>
</div>
<div>
<div>    {</div>
</div>
<div>
<div>        (seconds + now/second) % 60 =&gt; float new_seconds;</div>
</div>
<div>
<div>        (minutes + now/minute) $ int % 60 =&gt; int new_minutes;</div>
</div>
<div>
<div>        &lt;&lt;&lt; new_minutes + &quot;:&quot; + new_seconds &gt;&gt;&gt;;</div>
</div>
<div>
<div>    }</div>
</div>
<div>
<div><br>
</div>
</div>
<div>
<div>}</div>
</div>
<div>
<div><br>
</div>
</div>
<div>
<div>FullTimeHack hack;</div>
</div>
<div>
<div>hack.print_full_time();</div>
</div>
</blockquote>
<div>
<div><br>
</div>
</div>
</div>
<div>
<div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Mon, May 2, 2016 at 6:11 PM, Chiel ten Brinke <span dir="ltr">
&lt;<a href="mailto:ctenbrinke@gmail.com" target="_blank">ctenbrinke@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 dir="ltr">Thanks for you response. I&#39;m gonna try that out right away,
<div><br>
</div>
<div>By the way, wouldn&#39;t it be nice if this could be done more easily? Especially since ChucK is really into all the timey wimey stuff :)</div>
<div><br>
</div>
</div>
<div>
<div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Mon, May 2, 2016 at 10:56 AM, Gonzalo <span dir="ltr">
&lt;<a href="mailto:gonzalo@dense13.com" target="_blank">gonzalo@dense13.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I had a similar problem a while ago, Perry Cook suggested this, it might be of help:<br>
<br>
One way to do it would be to pass it in<br>
as an argument or other when you run ChucK.<br>
This example uses stdin to read the output<br>
of a &lt;date&gt; command in the shell:<br>
<br>
// TestDate.ck  Perry R. Cook, Dec. 2014<br>
ConsoleInput stdin;     // gonna read from here<br>
stdin.prompt(&quot;&quot;) =&gt; now; // wait until something comes in<br>
string datetime; // date and time<br>
string datetimenow; // plus time since chuck invoked tacked on<br>
while (stdin.more())  {  stdin.getLine() =&gt; datetime;  } // read input<br>
datetime.setCharAt(9,&#39;-&#39;); // replace time string colons<br>
datetime.setCharAt(12,&#39;-&#39;); // with dashes instead<br>
datetime+&quot;-&quot;+Std.ftoa(now/second,4) =&gt; datetimenow; // tack on time since chuck invoked<br>
&lt;&lt;&lt; datetimenow &gt;&gt;&gt;;<br>
// If you want to continue making updated unique<br>
// strings, just keep redoing the datetimenow line<br>
1.5*second =&gt; now;<br>
datetime+&quot;-&quot;+Std.ftoa(now/second,4) =&gt; datetimenow; // tack on time since chuck invoked<br>
&lt;&lt;&lt; datetimenow &gt;&gt;&gt;;<br>
<br>
To use this:<br>
<br>
date +&quot;%m%d%y-%T&quot; | chuck TestDate.ck<br>
<br>
Outputs (date-H-M-S-now):<br>
<br>
&quot;120614-15-00-09-0.0000&quot; : (string)<br>
&quot;120614-15-00-09-1.5000&quot; : (string)
<div>
<div><br>
<br>
<br>
<br>
On 2/05/2016 9:53 AM, Chiel ten Brinke wrote:<br>
</div>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div>I would like to figure out the source of latency from chuck interacting<br>
with another application via OSC. To do that, I want to print timestamps<br>
of messages sent and received and compare these.<br>
But here&#39;s the thing:<br>
<br>
How do I print the absolute current time in chuck? The variable `now`<br>
only seems to hold the time from the start of the process.<br>
<br>
<br>
</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" rel="noreferrer" target="_blank">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users</a><br>
<br>
<span><font color="#888888"></font></span></blockquote>
<span><font color="#888888"><br>
-- <br>
<a href="http://dense13.com/" rel="noreferrer" target="_blank">http://dense13.com</a><br>
<a href="http://www.whole-play.com/" rel="noreferrer" target="_blank">http://www.whole-play.com</a><br>
<a href="https://www.30daygroove.com/" rel="noreferrer" target="_blank">https://www.30daygroove.com</a><br>
_______________________________________________<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" rel="noreferrer" target="_blank">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users</a><br>
</font></span></blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
<br>
_______________________________________________<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" 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>
</div>
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div style="font-family:arial;font-size:small">
<div>Spencer Salazar<br>
</div>
<div>Doctoral Candidate</div>
<div>Center for Computer Research in Music and Acoustics</div>
<div>Stanford University</div>
<div><br>
</div>
<div><a href="mailto:spencer@ccrma.stanford.edu" target="_blank">spencer@ccrma.stanford.edu</a></div>
<div></div>
<div><a href="tel:%2B1%20831.277.4654" value="+18312774654" target="_blank">+1 831.277.4654</a><br>
</div>
<div><a href="https://ccrma.stanford.edu/~spencer/" style="color:rgb(17,85,204)" target="_blank">https://ccrma.stanford.edu/~spencer/</a><br>
</div>
<div><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
_______________________________________________<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" rel="noreferrer" target="_blank">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users</a><br>
<br>
</blockquote>
</div>
<br>
</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></div>
</div>

<br>_______________________________________________<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" rel="noreferrer" target="_blank">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users</a><br>
<br></blockquote></div><br></div>
</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"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div style="font-family:arial;font-size:small"><div>Spencer Salazar<br></div><div>Doctoral Candidate</div><div>Center for Computer Research in Music and Acoustics</div><div>Stanford University</div><div><br></div><div><a href="mailto:spencer@ccrma.stanford.edu" target="_blank">spencer@ccrma.stanford.edu</a></div><div></div><div>+1 831.277.4654<br></div><div><a href="https://ccrma.stanford.edu/~spencer/" style="color:rgb(17,85,204)" target="_blank">https://ccrma.stanford.edu/~spencer/</a><br></div><div><br></div></div></div></div></div></div></div></div></div></div>
</div>