fluid-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [fluid-dev] File output with FluidSynth API


From: David Henningsson
Subject: Re: [fluid-dev] File output with FluidSynth API
Date: Sat, 06 Mar 2010 19:09:53 +0100
User-agent: Thunderbird 2.0.0.23 (X11/20090817)

Felix Krause wrote:
> On 04.03.2010, at 09:21, David Henningsson wrote:
>> So the FS command (fluidsynth -a file -i -n -T wav -o
>> audio.file.name=output.wav soundfont.sf2 midifile.mid) still just
>> produces a 4 KB file? It works here.
> 
> Yes, I still get a 4KB file.

Does it exit immediately or after the midi file has completed? That is,
if the midi file is two minutes long, does it wait two minutes before
exiting?

> Here is a sample of the running fluidsynth process; I don't really understand 
> how
> to read this, but those "cerror"s don't look that good. If you could point me 
> to some
> debugging tool / method, I might be of more help.

I'm unfamiliar with MacOSX, sorry. But this looks strange:

>     873 Thread_65222
>       873 fluid_file_audio_run_s16
>         873 fluid_timer_run
>           873 g_usleep
>             873 nanosleep
>               873 mach_wait_until

Fluid_timer_run calls both fluid_file_audio_run_s16 and g_usleep, but
here it looks like fluid_file_audio_run_s16 calls fluid_timer_run, or...?

I think either something is wrong with fluid_curtime on MacOSX, or with
libsndfile. Could you try building it without libsndfile and see if it
works better?

For the former problem I think a debug print in fluid_file_audio_run_s16
might be helpful, something like:

/.../
        sample_time = (unsigned int) (dev->samples / dev->sample_rate * 1000.0);
        fprintf(stderr, "Sample_time = %d, clock_time = %d\n", sample_time,
clock_time);

        if (sample_time > clock_time) {
                return 1;
        }
/.../

A debug print of the delay variable in fluid_timer_run might also be
helpful (just before the call to g_usleep).

Thanks for helping out :-)

// David





reply via email to

[Prev in Thread] Current Thread [Next in Thread]