denemo-devel
[Top][All Lists]
Advanced

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

Re: [Denemo-devel] Fluidsynth build


From: Richard Shann
Subject: Re: [Denemo-devel] Fluidsynth build
Date: Wed, 28 Oct 2009 10:04:35 +0000

On Mon, 2009-10-26 at 13:39 -0500, Jeremiah Benham wrote:
> On Mon, 2009-10-26 at 18:11 +0000, Richard Shann wrote:
> > I have built denemo from git with --enable-fluidsynth
> > but I don't know how to test it. I don't hear anything synthesized
> > with/without immediate playback set for example, and the aural training
> > game did not sound out.
> > What are the settings needed?
> 
> At the moment the settings are in preferences FLUIDSYNTH tab. This will
> soon be moved to the playback properties. First I must clean up playback
> properties. I see that it is still using tables. I thought I did this
> already. I guess I did not. Perhaps that is another file I am thinking
> of. In the FLUIDSYNTH choose and audio output driver. You will probably
> want alsa or jack. This will soon be a combobox. Next you are going to
> have to place the path to your soundfont in the other text entry dialog.
> This will also be replaced with one of those file chooser dialogs. I
> plan on having the display of loaded soundfonts in a kind of display
> that looks similar to the Score Configuration Wizard Instrument
> selection with a load sound font and an unload soundfont button. Then we
> will also have to have a way to chose bank and all of that from the
> soundfont selected.
> 
> Midi playback does not work yet via FLUIDSYNTH it is still via timidity
> or users midi player. I have not read all of fluidsynth's api but so far
> the only way to deal with midi data is like this:
> fluid_synth_noteon(synth, channel, key, velocity);
> 
> If this is all we have we will have to fire this off at the time of each
> midi event. Would we use a similar timer that would increment an index
> in midi ticks for time then run fluid_synth_noteon in a for loop.
> Something like is sudo code:
> 
> for (;;){
>   if (smf->midi_tick = NULL){ //end of song
>     EndOfSong = TRUE;
>     break;
>   }
>   if (index smf->event->midi_tick)
>     fluid_synth_noteon(synth, channel, key, velocity);
> 
>   smf->event = smf_next_event();    
> }
> 
> The the timer would be stopped and index reset to 0 when EndOfSong ==
> TRUE; 
> 
> Am I on the right track with that?

I think you may need:

fluid_synth_t fluid_synth_handle_midi_event() calls the appropriate
synth routine (noteon, pitch bend etc).

which I found at 

https://resonance.org/svn/fluidsynth/api/index.html

Richard






reply via email to

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