fluid-dev
[Top][All Lists]
Advanced

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

Re: [fluid-dev] sfz on top of fluidsynth


From: Tom M.
Subject: Re: [fluid-dev] sfz on top of fluidsynth
Date: Fri, 18 Oct 2019 20:48:10 +0200

First of all: Really nice work, thanks for sharing!

Regarding your question of how fluidsynth can be modified: This topic
was raised when implementing DLS support, which we will ship for
version 2.1 . The conclusion was that fluidsynth is and stays a
SoundFont2 synth. We integrated DLS because the synthesis model
basically is the same. At the same time, we refrained from supporting
GIG or SLI. fluidsynth won't claim to be some all-rounder synth,
supporting any format. Same is true for the SoundFont loader API:

"This API allows for virtual SoundFont files to be loaded and
synthesized, which may not actually be SoundFont files, as long as
they can be represented by the SoundFont synthesis model."

Where this non-representable thing starts (without changes to
fluidsynth) and what changes would still be acceptable to fluidsynth
would need to be discussed for individual cases.


The two examples of unimplemented opcodes you raised should not be
implemented in the loader API anyway, IMO. You would have to manually
intervene incoming MIDI events and react according to what the SFZ
specifies (e.g. if sustain pedal pressed or on noteoff received).
There are multiple ways to do this:

* Creating new_fluid_midi_driver() with a custom event handling function
* Using the midi router to intercept events
* Using the midi player with a custom callback function
(fluid_player_set_playback_callback())
* Don't use any MIDI stuff from fluidsynth and just use fluidsynth's
bare low-level synthesizer with manual calls to fluid_synth_noteon()
fluid_synth_noteoff() or even getting and manipulating individual
voices from the synth in real-time... the synth should provide all the
necessary functions.

You see, if you want to use fluidsynth for SFZ, it is not done by just
implementing a new soundfont loader. Instead, it would require a whole
user application that treats MIDI events according to the SFZ spec.

Perhaps another hint for liquidsfz: fluidsynth exposes its command
shell. If you decide to go with fluidsynth, perhaps it would be
charming to some users being able to just use the same commands
(noteon, noteoff, reverb, chorus etc.) as they use in the fluidsynth
executable.

Tom



reply via email to

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