denemo-devel
[Top][All Lists]
Advanced

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

Re: [Denemo-devel] Fluidsynth build


From: Jeremiah Benham
Subject: Re: [Denemo-devel] Fluidsynth build
Date: Mon, 26 Oct 2009 13:39:06 -0500

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?


Jeremiah






> Richard
> 
> 
> 
> 
> _______________________________________________
> Denemo-devel mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/denemo-devel





reply via email to

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