Felix Krause wrote: > On 06.03.2010, at 19:09, David Henningsson wrote: >> A debug print of the delay variable in fluid_timer_run might also be >> helpful (just before the call to g_usleep). > > Here's what I got as debug output when rendering to a wave file with > libsndfile: > > Sample_time = 0, clock_time = 0 > delay = 1 > Sample_time = 1, clock_time = 0 > delay = 2 > Sample_time = 1, clock_time = 0 > delay = 3 > Sample_time = 1, clock_time = 0 > delay = 4 > Sample_time = 1, clock_time = 0 > delay = 5 > Sample_time = 1, clock_time = 0 > delay = 6 > Sample_time = 1, clock_time = 0 > delay = 7 > Sample_time = 1, clock_time = 0 > delay = 8 > Sample_time = 1, clock_time = 0 > delay = 9 > Sample_time = 1, clock_time = 0 > delay = 10
If the clock_time never advances beyond zero, it definitely looks like some problem with fluid_curtime (or g_get_current_time in glib). Could it be a rounding problem? Please try this change to fluid_curtime(): unsigned int fluid_curtime(void) { GTimeVal timeval; unsigned int result; g_get_current_time (&timeval); result = (unsigned int) (timeval.tv_sec * (gdouble) 1000.0 + timeval.tv_usec / (gdouble) 1000.0); fprintf(stderr, "tv_sec = %d, tv_usec = %d, curtime = %d\n", timeval.tv_sec, timeval.tv_usec, result); return result; } // David _______________________________________________ fluid-dev mailing list fluid-dev@nongnu.org http://lists.nongnu.org/mailman/listinfo/fluid-dev