[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [fluid-dev] using fluidsynth to create soundfont based samples for a
Re: [fluid-dev] using fluidsynth to create soundfont based samples for a supercollider sampler
Fri, 26 Aug 2011 12:33:39 -0700 (PDT)
Thanks very much for the fast reply. It looks like there a quite a few things I need to learn.
I have been under the weather the last few days which made it difficult to think straight. I'll do more
thinking and will probably come back with more detailed questions.
On Wed, Aug 24, 2011 at 02:06:49PM -0700, Michael Geis wrote:
> The current idea is to create each sample file by passing fluidsynth a one note .mid file,
> outputting the raw wave data to file
and then converting to .wav with sox.
> The sampler is not very complicated, it essentially applies an ADSR envelope
> to the samples. So as long as I can pry those four phases apart within
> every .wav file I get from fluidsynth (i.e. find the offset in frames into the .wav
> for beginning and end of each phase), it is likely going get the job done or at least be
> reasonably close to what they need.
You're describing a midi renderer.
You just want to adjust the envelope? Grab a soundfont editor (swami)
and add modulators to the instruments you want to work with. Use a
single source, set to an unused midi CC, and a destination of volume
envelope -> attack/hold/delay/sustain/etc. Create one for each
parameter you want to control. Want to adjust something else? Probably
can do it the same way.
Now just use fluidsynth to play the note, and send it CC messages to
those settings. Or use any other soundfont-compliant midi
renderer, including a lot of keyboards, and do the same thing.
This is what midi keyboards were *invented* to do; the rest came
later. It's not specific to fluidsynth. Mutating sounds is the main
purpose of the technology. Normally the CCs would be driver by sliders
on a physical keyboard.
(IIRC, supercollider is jack-based, so you can just route fluidsynth's
output into it directly in real time)