[Top][All Lists]

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

Re: [fluid-dev] Thread safety

From: josh
Subject: Re: [fluid-dev] Thread safety
Date: Sat, 06 Jun 2009 17:35:55 -0400
User-agent: Internet Messaging Program (IMP) H3 (4.1.6)

Quoting jimmy <address@hidden>:
Here's my my comments on special effects processing (SFX, for short here) in sound synthesis. But since Midi allow for some live manipulation of some paramenters, it may allow for per channel manipulation, too?

I guess one way to describe it is how many "SFX processors" can be used concurrently in a chained sequence. JackRack is one such implementation where each plugin is 1 SFX processor. Each of these SFX processor parameters can change in real-time. I would love to have SFX processing for individual Midi channel (individual solo instrument pan, sustain, delayed echo, vibrato...), or all channels combined audio signal (like reverb, delayed echo, pitch shift). But I guess individual solo instruments with SFX could be simulated by running in a separate instance of FS.

So if per channel SFX is possible, please do allow for ways to specify which channel(s) these SFX processors should work on. You may also want to allow users to define/specify, or loaded-on-the-fly (maybe some sample code to use) these SFX processors from configuration files, and let parameters be changed in real-time.

The simplest case is 0, or 1 SFX processor. More complicated are 2, 3, or more sound effects chained together, but too many of these chained together will introduce audio lags of some sort.

Of course, you can impose or set a limit on the number of SFX processors, i.e 3 max per voice/channel, 8 total... Or if no specific SFX limit is imposed, at least give a word of warning so people don't have wild ideas that they can chain 5-10 SFX per channel for 32 channels... or 100 SFX together and still get real-time response on 1-2 core CPU's, or that the audio would sound like anything we can still recognize.


Hello Jimmy,

That isn't really on the topic of threads, but.. FluidSynth has support for SoundFont modulators, which allow for almost any effect parameter of an instrument to be controlled by MIDI controllers as well as things like velocity, aftertouch, etc. One improvement that could be added to FluidSynth would be session modulators, which apply to the session, rather than having to edit the SoundFont. This has been supported by Swami for some time now. Just need to add a method for doing this in stand alone FluidSynth (shell commands, etc). In addition FluidSynth supports parameter changes using NRPN data, as defined by the SoundFont standard. This is on a per channel basis.

FluidSynth also has some LADSPA code for adding effects chains to MIDI channels. I think this code is in a rather poor state though and suffers from stability issues and might be completely broken at this point, since I don't think anyone is using it. Getting this stuff to work again is on the TODO list.



reply via email to

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