fluid-dev
[Top][All Lists]
Advanced

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

Re: [fluid-dev] Some simple questions of Fluidsynth about implying sampl


From: Ceresa Jean-Jacques
Subject: Re: [fluid-dev] Some simple questions of Fluidsynth about implying samplers
Date: Thu, 21 May 2020 13:24:17 +0200 (CEST)

Hello Hak,

 

After reading the simple_sample.cpp provided. Here some tips.

 

1)The best for you should be to use the fluidsynth console application. It allows to test anything without writting any line of code.

2.1.1) new_fluid_audio_driver() must be called after new_fluid_synth() but BEFORE any noteon/noteoff, otherwise we cannot hear something.

2.1.2) similarly fluid_synth_sfload() must be called before any noteon/noteoff.

2.2) always check returned status after calling (new_fluid_settings(),new_fluid_synth(), new_fluid_audio(), fluid_synth_sfload()).

 

3)In your use case, as far you intend to work with a SoundFont, things are simpler.

3.1)The note played by fluid_synth_noteon(synth, 0 //MIDI Channel 0, 60 //C4, 127//maximum velocity) will

use information coming from the soundfont (i.e {Preset{Instrument{sample}}}).

Consequently, we don't need to provide an external sample (i.e calling readDataFromWav() is useless).

Also as far you need a simple demo (i.e playing one note) , you don't need of internal sequencer

(i.e calling fluid_sequencer_register() is useless).

 

3.2) However, before fluid_synth_noteon(), we just need to tell fluidsynth that channel 0

must bet set to the right MIDI program/bank number corresponding to the intended preset number.

For example assuming the intended soundfont preset is x in bank y. This leads to:

 

/* call new_fluid_settings(),new_fluid_synth(), new_fluid_audio(), fluid_synth_sfload() */

 

/* Set program number x to MIDI channel 0 */

fluid_synth_prog_change(synth, 0 , x);

 

/* Set bank number y to MIDI channel 0 */

fluid_bank_select(synth, 0, y);

 

/* play note A4 on MIDI channel 0 at full velocity during 2 second */

fluid_synth_noteon(synth,0, 69, 127);

 

Sleep(2000);

fluid_synth_noteoff(synth,0, 69);

 

/* call delete_fluid_audio_driver(a),  delete_fluid_synth(synth), delete_fluid_settings */

 

>We are making some optical pickups for string instruments(i.e. guitar, violins) to do the midi stuf.

Interresting. Is it an optical to MIDI tranducers dedicated to plugged/bowed instruments ?

Regards.

jjc

> Message du 21/05/20 04:37
> De : "Hak Lin" <address@hidden>
> A : address@hidden
> Copie à :
> Objet : [fluid-dev] Some simple questions of Fluidsynth about implying samplers
>
>
Hi Fluidsynth developers,
I'm Hak from HcMusic, Taiwan.
We are making some optical pickups for string instruments(i.e. guitar, violins) to do the midi stuff by installing our product, which is still in the early stage.

>
We want to make a simple sampler to demo our product. Something like playing an A4 note that will make a dog bark sample. We found that fluidsynth is a great project that helps us to work out with prototyping demo.

>
We had some problems with implying fluidsynth. We had tried functions like new_fluid_sample(), readDataFromWav(), fluid_sample_set_sound_data(). After that, we thought there should be sample sound when we ran the function fluid_synth_noteon(). But not a noise came out.
>
> Is there some simple example of how to make a simple sampler that just loads a wavefile and assign to a note, and makes a sound when notion().
>
> Below's attachment is a simple code that we tried, there might be plenty of mistaken function calls. Hope this indicates what we had done wrong.

>
Thanks for your help.

>
Best regards,
Hak.

>
--
>
駭音科技有限公司

>
Founder/CEO
林季伯
+886 937626316



_______________________________________________
fluid-dev mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/fluid-dev

>
> [ simple_sample.cpp (5.2 Ko) ]

reply via email to

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