<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"><<a href="mailto:ctenbrinke@gmail.com" target="_blank">ctenbrinke@gmail.com</a>></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've been looking into it.<div><br></div><div>I'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'm using Visual Studio 2015 on windows 7. Is this any known problem?</div><div><br></div><div><br></div><div>Here'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 "chuck_dl.h"</font></div><div><font face="monospace, monospace" size="1">#include "chuck_def.h"</font></div><div><font face="monospace, monospace" size="1"><br></font></div><div><font face="monospace, monospace" size="1">#include <stdio.h></font></div><div><font face="monospace, monospace" size="1">#include <limits.h></font></div><div><font face="monospace, monospace" size="1">#include <stdlib.h></font></div><div><font face="monospace, monospace" size="1">#include <math.h></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->setname(QUERY, "SystemTime");</font></div><div><font face="monospace, monospace" size="1"><br></font></div><div><font face="monospace, monospace" size="1"> QUERY->begin_class(QUERY, "SystemTime", "Object");</font></div><div><font face="monospace, monospace" size="1"> QUERY->doc_class(QUERY, "System time support");</font></div><div><font face="monospace, monospace" size="1"><br></font></div><div><font face="monospace, monospace" size="1"> QUERY->add_sfun(QUERY, systemtime_getFreq, "float", "freq");</font></div><div><font face="monospace, monospace" size="1"> QUERY->doc_func(QUERY, "Oscillator frequency [Hz]. ");</font></div><div><font face="monospace, monospace" size="1"><br></font></div><div><font face="monospace, monospace" size="1"> QUERY->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->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"><<a href="mailto:iain.emsley@kellogg.ox.ac.uk" target="_blank">iain.emsley@kellogg.ox.ac.uk</a>></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 <<a href="mailto:ctenbrinke@gmail.com" target="_blank">ctenbrinke@gmail.com</a>> wrote:</div>
<br>
<div>
<div dir="ltr">Is there a place where this stuff is documented? I can'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">
<<a href="mailto:spencer@ccrma.stanford.edu" target="_blank">spencer@ccrma.stanford.edu</a>></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'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">
<<a href="mailto:ctenbrinke@gmail.com" target="_blank">ctenbrinke@gmail.com</a>></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">
<<a href="mailto:ctenbrinke@gmail.com" target="_blank">ctenbrinke@gmail.com</a>></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("") => now; // wait until something comes in</div>
</div>
</span><span>
<div>
<div> while (stdin.more()) { stdin.getLine() => datetime; } // read input</div>
</div>
</span>
<div>
<div> //<<< datetime >>>;</div>
</div>
<div>
<div> Std.atoi(datetime.substring(10, 2)) => minutes;</div>
</div>
<div>
<div> Std.atoi(datetime.substring(13, 2)) => seconds;</div>
</div>
<div>
<div> <<< minutes + ":" + seconds >>>;</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 => float new_seconds;</div>
</div>
<div>
<div> (minutes + now/minute) $ int % 60 => int new_minutes;</div>
</div>
<div>
<div> <<< new_minutes + ":" + new_seconds >>>;</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">
<<a href="mailto:ctenbrinke@gmail.com" target="_blank">ctenbrinke@gmail.com</a>></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'm gonna try that out right away,
<div><br>
</div>
<div>By the way, wouldn'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">
<<a href="mailto:gonzalo@dense13.com" target="_blank">gonzalo@dense13.com</a>></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 <date> command in the shell:<br>
<br>
// TestDate.ck Perry R. Cook, Dec. 2014<br>
ConsoleInput stdin; // gonna read from here<br>
stdin.prompt("") => 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() => datetime; } // read input<br>
datetime.setCharAt(9,'-'); // replace time string colons<br>
datetime.setCharAt(12,'-'); // with dashes instead<br>
datetime+"-"+Std.ftoa(now/second,4) => datetimenow; // tack on time since chuck invoked<br>
<<< datetimenow >>>;<br>
// If you want to continue making updated unique<br>
// strings, just keep redoing the datetimenow line<br>
1.5*second => now;<br>
datetime+"-"+Std.ftoa(now/second,4) => datetimenow; // tack on time since chuck invoked<br>
<<< datetimenow >>>;<br>
<br>
To use this:<br>
<br>
date +"%m%d%y-%T" | chuck TestDate.ck<br>
<br>
Outputs (date-H-M-S-now):<br>
<br>
"120614-15-00-09-0.0000" : (string)<br>
"120614-15-00-09-1.5000" : (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'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>