| I keep the object around. As far as I know the API examples in the examples directory all work for repeated renderings, at least they do on Windows and they once did and still may do on Linux.
Regards,
Mike
-----Original Message-----
>From: Steven Yi
>Sent: Aug 17, 2008 8:03 PM
>To: Developer discussions
>Subject: [Cs-dev] API and Instability (Crashes, Java)
>
>Hi All,
>
>I've been trying to debug what is going on here with blue and the
>Csound API. It seem that after running a project a few times, after
>the project finishes rendering Csound crashes and it takes down blue
>with it. I'm not sure if I'm doing something wrong with using the API
>though. Currently, I'm creating a new Csound object for each render,
>and calling csound.Reset() after it is finished. The ksmps loop part
>of the code, then the Reset call is shown below. I tried also by
>using the CsoundCallbackWrapper and setting a YieldCallBack, but that
>didn't quite work. When the crash occurs, I do get an error log from
>Java and it seems that the error might be from PerformKsmps. I did
>try putting in a print out to system.err after the ksmps loop but
>before the Reset call and it did not show when Csound crashed.
>
>Any ideas?
>
>Thanks,
>Steven
>
>
>
>
> while (csound.PerformKsmps() == 0 && keepRunning) {
> counter++;
>
> float scoreTime = (float) csound.GetScoreTime();
>
> if (counter > updateRate) {
>
>RenderTimeManager.getInstance().updateTimePointer(scoreTime);
> counter = 0;
> }
>
> Parameter param;
>
> float currentTime = 0.0f;
>
> if(startTime >= 0.0f) {
> if (mapper != null) {
> float renderStartSeconds =
>mapper.beatsToSeconds(startTime);
> currentTime = mapper.secondsToBeats(scoreTime
>+ renderStartSeconds);
> currentTime -= startTime;
> } else {
> currentTime = startTime + scoreTime;
> }
> }
>
> if(blueData != null) {
> currentTime = blueData.getRenderStartTime();
> }
>
> for (int i = 0; i < parameters.size(); i++) {
> param = (Parameter) parameters.get(i);
> String varName = param.getCompilationVarName();
>
> if(blueData != null) {
> float value = param.getValue(currentTime);
> csound.SetChannel(varName, (double) value);
> } else {
> csound.SetChannel(varName, param.getFixedValue());
> }
> }
> }
>
> csound.Reset();
>
>-------------------------------------------------------------------------
>This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
>Build the coolest Linux based applications with Moblin SDK & win great prizes
>Grand prize is a trip for two to an Open Source event anywhere in the world
>http://moblin-contest.org/redirect.php?banner_id=100&url=/
>_______________________________________________
>Csound-devel mailing list
>Csound-devel@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/csound-devel
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net |