Hi Chiel,
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.
Looking at the code, I dont see anything that would cause any problems.
This might be problematic though:
chuck --chugin-path:. --chugin:SystemTime
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.
spencer
On Mon, May 9, 2016 at 1:58 AM, Chiel ten Brinke
Thanks for the pointers. I've been looking into it.
I'm currently hitting a wall though with developing a simple chugin. It seems that loading* any manually compiled chugins* immediately result in a segmentation fault. I'm using Visual Studio 2015 on windows 7. Is this any known problem?
Here's a more detailed case:
Source file (compiles fine):
#include "chuck_dl.h" #include "chuck_def.h"
#include
#include #include #include CK_DLL_SFUN(systemtime_getFreq);
t_CKFLOAT getFreq() { return 4.0; }
CK_DLL_QUERY(SystemTime) { QUERY->setname(QUERY, "SystemTime");
QUERY->begin_class(QUERY, "SystemTime", "Object"); QUERY->doc_class(QUERY, "System time support");
QUERY->add_sfun(QUERY, systemtime_getFreq, "float", "freq"); QUERY->doc_func(QUERY, "Oscillator frequency [Hz]. ");
QUERY->end_class(QUERY);
return TRUE; }
CK_DLL_SFUN(systemtime_getFreq) { RETURN->v_float = getFreq(); }
Command to run:
$ cd chugins/Debug $ chuck --chugin-path:. --chugin:SystemTime ../SystemTime/SystemTime-test.ck Segmentation fault
Where SystemTime-test.ck maybe any trivial chuck script.
You can also view the commit that contains this test code here: https://github.com/Chiel92/chugins/commit/9d49c0713ca9918a3e5b71e4a38f84e0ad...
On Wed, May 4, 2016 at 10:05 AM, Iain Emsley
wrote:
Hi Chiel,
The Github for the Chugging is here: https://github.com/ccrma/chugins
and the extension part of the ChucK site has some notes: http://chuck.stanford.edu/extend/
There is a paper describing the extension system here: https://ccrma.stanford.edu/~spencer/publications/CCC2012.pdf
The chuginate code in the repo may provide some additional notes as well in the code comments.
Kind regards,
Iain
Iain Emsley
Research Associate Oxford e-Research Centre University of Oxford
On 4 May 2016, at 08:12, Chiel ten Brinke
wrote: Is there a place where this stuff is documented? I can't find anything about it on the website http://chuck.cs.princeton.edu/doc/program/
On Wed, May 4, 2016 at 2:19 AM, Spencer Salazar < spencer@ccrma.stanford.edu> wrote:
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.
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.
spencer
[1] http://infiniteundo.com/post/25326999628/falsehoods-programmers-believe-abou...
On Tue, May 3, 2016 at 1:33 AM, Chiel ten Brinke
wrote: 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. 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.
Is there a way around this caveat, or are there other approaches to print full time?
On Tue, May 3, 2016 at 9:54 AM, Chiel ten Brinke
wrote: Here is an improvement over the provided script:
class FullTimeHack { int minutes; int seconds;
// PRECONSTRUCTOR
string datetime; ConsoleInput stdin; // gonna read from here stdin.prompt("") => now; // wait until something comes in while (stdin.more()) { stdin.getLine() => datetime; } // read input //<<< datetime >>>; Std.atoi(datetime.substring(10, 2)) => minutes; Std.atoi(datetime.substring(13, 2)) => seconds; <<< minutes + ":" + seconds >>>;
fun void print_full_time() { (seconds + now/second) % 60 => float new_seconds; (minutes + now/minute) $ int % 60 => int new_minutes; <<< new_minutes + ":" + new_seconds >>>; }
}
FullTimeHack hack; hack.print_full_time();
On Mon, May 2, 2016 at 6:11 PM, Chiel ten Brinke
wrote:
Thanks for you response. I'm gonna try that out right away,
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 :)
On Mon, May 2, 2016 at 10:56 AM, Gonzalo
wrote: > I had a similar problem a while ago, Perry Cook suggested this, it > might be of help: > > One way to do it would be to pass it in > as an argument or other when you run ChucK. > This example uses stdin to read the output > of a <date> command in the shell: > > // TestDate.ck Perry R. Cook, Dec. 2014 > ConsoleInput stdin; // gonna read from here > stdin.prompt("") => now; // wait until something comes in > string datetime; // date and time > string datetimenow; // plus time since chuck invoked tacked on > while (stdin.more()) { stdin.getLine() => datetime; } // read > input > datetime.setCharAt(9,'-'); // replace time string colons > datetime.setCharAt(12,'-'); // with dashes instead > datetime+"-"+Std.ftoa(now/second,4) => datetimenow; // tack on time > since chuck invoked > <<< datetimenow >>>; > // If you want to continue making updated unique > // strings, just keep redoing the datetimenow line > 1.5*second => now; > datetime+"-"+Std.ftoa(now/second,4) => datetimenow; // tack on time > since chuck invoked > <<< datetimenow >>>; > > To use this: > > date +"%m%d%y-%T" | chuck TestDate.ck > > Outputs (date-H-M-S-now): > > "120614-15-00-09-0.0000" : (string) > "120614-15-00-09-1.5000" : (string) > > > > > On 2/05/2016 9:53 AM, Chiel ten Brinke wrote: > >> I would like to figure out the source of latency from chuck >> interacting >> with another application via OSC. To do that, I want to print >> timestamps >> of messages sent and received and compare these. >> But here's the thing: >> >> How do I print the absolute current time in chuck? The variable >> `now` >> only seems to hold the time from the start of the process. >> >> >> _______________________________________________ >> chuck-users mailing list >> chuck-users@lists.cs.princeton.edu >> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users >> >> > -- > http://dense13.com > http://www.whole-play.com > https://www.30daygroove.com > _______________________________________________ > chuck-users mailing list > chuck-users@lists.cs.princeton.edu > https://lists.cs.princeton.edu/mailman/listinfo/chuck-users >
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
-- Spencer Salazar Doctoral Candidate Center for Computer Research in Music and Acoustics Stanford University
spencer@ccrma.stanford.edu +1 831.277.4654 https://ccrma.stanford.edu/~spencer/
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
-- Spencer Salazar Doctoral Candidate Center for Computer Research in Music and Acoustics Stanford University spencer@ccrma.stanford.edu +1 831.277.4654 https://ccrma.stanford.edu/~spencer/