Hi, Element Green
I've watched the source code of fast_render as you recommended me.

But i am little confused.
The fast_render code does writing in file in the very simmmilar way with my
example.
It generates small chanks of sound data in cycle and save they in file.
My example generates one big chunk and writes it to a file.
Fast_render and my example use the same function fluid_synth_write_s16.

So i can't find the main difference between my example and fast_render.
What leads to generating "faster melody" in my code example ?

Could you give me a some explanation of how fluid_player works with
fluid_synth in "no audio driver" ?

Best regards,
Ivan Zayarniy


2013/10/22 <fluid-dev-requ...@nongnu.org>

> Send fluid-dev mailing list submissions to
>         fluid-dev@nongnu.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
>         https://lists.nongnu.org/mailman/listinfo/fluid-dev
> or, via email, send a message with subject or body 'help' to
>         fluid-dev-requ...@nongnu.org
>
> You can reach the person managing the list at
>         fluid-dev-ow...@nongnu.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of fluid-dev digest..."
>
>
> Today's Topics:
>
>    1.  Streaming midi rendering data (???? ???????)
>    2. Re: Streaming midi rendering data (Element Green)
>    3.  Streaming midi rendering data to playback output. (???? ???????)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Mon, 21 Oct 2013 22:18:02 +0400
> From: ???? ??????? <izayar...@gmail.com>
> To: fluid-dev@nongnu.org
> Subject: [fluid-dev]  Streaming midi rendering data
> Message-ID:
>         <
> caga3l2hm7xa+nat9qjx7xf8ui3v+vbo1g3ucpfg7xbhj9uh...@mail.gmail.com>
> Content-Type: text/plain; charset="windows-1252"
>
> Hi everyone)
>
> I faced with next problem. Midi file rendering works slowly. It can take
> 20-30 seconds for one minute midi file long.
>
> So i've decided to design streaming generated sound data from midi to a
> playback output.
>
> Idea is simple :generated from midi file audio data goes to output, while
> synth is generating other data.
>
> I've tried to do it by using fluid_player. But i faced with another
> problem: generated audio file sounds much faster than it should be.(than
> original midi file)
>
> I tried to set bpm(tempo) manually, it didn't help me. It looks like
> fluid_player_set_bpm() method doesn't work at all.
>
> Example of code used for generating audio data from midi file:
>
>
> player = new_fluid_player(synth);
>
> fluid_player_add(player, midiPath);
>
> fluid_settings_setstr(settings, "audio.file.type", "raw");
>
> fluid_settings_setnum(settings, "synth.sample-rate", 44100);
>
> fluid_settings_setstr(settings, "audio.file.format", "s16");
>
> fluid_settings_setstr(settings, "audio.file.endian", "little");
>
> fluid_settings_setint(settings, "audio.period-size", 4096);
>
> fluid_player_play(player);
>
> fluid_player_set_bpm(player,65);// i get tempo from test midi file.
>
> fluid_synth_write_s16(synth, buffersize / 2 , buffer2 ,0 , 2, buffer2, 1,
> 2);
>
> I attached test data to email.
>
> Could you give me an example of how to generate audio data from midi file
> to memory in "streaming manner"?
>
> What?s wrong with my code example ? Is it bug of fluid player or i am just
> incorrectly using fluidSynth lib?
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://lists.nongnu.org/archive/html/fluid-dev/attachments/20131021/56b91715/attachment.html
> >
>
> ------------------------------
>
> Message: 2
> Date: Mon, 21 Oct 2013 12:42:22 -0600
> From: Element Green <jgr...@users.sourceforge.net>
> To: FluidSynth mailing list <fluid-dev@nongnu.org>
> Subject: Re: [fluid-dev] Streaming midi rendering data
> Message-ID:
>         <
> cajmvqu5ulr-wf-svm-qlm71dity7flladni3hvq8ndq4xee...@mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Hello,
>
> I would test the FluidSynth command line application to see how fast it
> renders MIDI to a file.  Use the --fast-render (-F) command line switch to
> specify the file to write to.
>
> For a source code example, the FluidSynth command line code is probably the
> best resource.  Search for "fast_render" in fluidsynth/src/fluidsynth.c to
> see how this works.
>
> Best regards,
>
> Element Green
>
>
> On Mon, Oct 21, 2013 at 12:18 PM, ???? ??????? <izayar...@gmail.com>
> wrote:
>
> > Hi everyone)
> >
> > I faced with next problem. Midi file rendering works slowly. It can take
> > 20-30 seconds for one minute midi file long.
> >
> > So i've decided to design streaming generated sound data from midi to a
> > playback output.
> >
> > Idea is simple :generated from midi file audio data goes to output, while
> > synth is generating other data.
> >
> > I've tried to do it by using fluid_player. But i faced with another
> > problem: generated audio file sounds much faster than it should be.(than
> > original midi file)
> >
> > I tried to set bpm(tempo) manually, it didn't help me. It looks like
> > fluid_player_set_bpm() method doesn't work at all.
> >
> > Example of code used for generating audio data from midi file:
> >
> >
> > player = new_fluid_player(synth);
> >
> > fluid_player_add(player, midiPath);
> >
> > fluid_settings_setstr(settings, "audio.file.type", "raw");
> >
> > fluid_settings_setnum(settings, "synth.sample-rate", 44100);
> >
> > fluid_settings_setstr(settings, "audio.file.format", "s16");
> >
> > fluid_settings_setstr(settings, "audio.file.endian", "little");
> >
> > fluid_settings_setint(settings, "audio.period-size", 4096);
> >
> > fluid_player_play(player);
> >
> > fluid_player_set_bpm(player,65);// i get tempo from test midi file.
> >
> > fluid_synth_write_s16(synth, buffersize / 2 , buffer2 ,0 , 2, buffer2, 1,
> > 2);
> >
> > I attached test data to email.
> >
> > Could you give me an example of how to generate audio data from midi file
> > to memory in "streaming manner"?
> >
> > What?s wrong with my code example ? Is it bug of fluid player or i am
> just
> > incorrectly using fluidSynth lib?
> >
> >
> > _______________________________________________
> > fluid-dev mailing list
> > fluid-dev@nongnu.org
> > https://lists.nongnu.org/mailman/listinfo/fluid-dev
> >
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://lists.nongnu.org/archive/html/fluid-dev/attachments/20131021/0d316112/attachment.html
> >
>
> ------------------------------
>
> Message: 3
> Date: Tue, 22 Oct 2013 14:03:03 +0400
> From: ???? ??????? <izayar...@gmail.com>
> To: fluid-dev@nongnu.org
> Subject: [fluid-dev]  Streaming midi rendering data to playback
>         output.
> Message-ID:
>         <CAGA3L2Hkv_sfBkHLX7p8rB_o6XG=aFoG7==
> vefmbsjbegwm...@mail.gmail.com>
> Content-Type: text/plain; charset="windows-1252"
>
> Hi everyone)
>
> I faced with next problem. Midi file rendering works slowly. It can take
> 20-30 seconds for one minute midi file long.
>
> So i've decided to design streaming generated sound data from midi to a
> playback output.
>
> Idea is simple :generated from midi file audio data goes to output, while
> synth is generating other data.
>
> I've tried to do it by using fluid_player. But i faced with another
> problem: generated audio file sounds much faster than it should be.(than
> original midi file)
>
> I tried to set bpm(tempo) manually, it didn't help me. It looks like
> fluid_player_set_bpm() method doesn't work at all.
>
> Example of code used for generating audio data from midi file:
>
>
> player = new_fluid_player(synth);
>
> fluid_player_add(player, midiPath);
>
> fluid_settings_setstr(settings, "audio.file.type", "raw");
>
> fluid_settings_setnum(settings, "synth.sample-rate", 44100);
>
> fluid_settings_setstr(settings, "audio.file.format", "s16");
>
> fluid_settings_setstr(settings, "audio.file.endian", "little");
>
> fluid_settings_setint(settings, "audio.period-size", 4096);
>
> fluid_player_play(player);
>
> fluid_player_set_bpm(player,65);// i get tempo from test midi file.
>
> fluid_synth_write_s16(synth, buffersize / 2 , buffer2 ,0 , 2, buffer2, 1,
> 2);
>
> Links to test data
>
> Midi file:https://www.dropbox.com/s/agt158q7umvcuxv/testMelody.mid
>
> Generated wave:
> https://www.dropbox.com/s/rt8p39zzsgbs8j7/generatedMelody.wav
>
> Could you give me an example of how to generate audio data from midi file
> to memory in "streaming manner"?
>
> What?s wrong with my code example ? Is it bug of fluid player or i am just
> incorrectly using fluidSynth lib?
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://lists.nongnu.org/archive/html/fluid-dev/attachments/20131022/39c08db5/attachment.html
> >
>
> ------------------------------
>
> _______________________________________________
> fluid-dev mailing list
> fluid-dev@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/fluid-dev
>
>
> End of fluid-dev Digest, Vol 126, Issue 3
> *****************************************
>
_______________________________________________
fluid-dev mailing list
fluid-dev@nongnu.org
https://lists.nongnu.org/mailman/listinfo/fluid-dev

Reply via email to