iiwusynth-devel
[Top][All Lists]
Advanced

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

Re: [Swami-devel] Re: [iiwusynth-devel] Success!


From: Josh Green
Subject: Re: [Swami-devel] Re: [iiwusynth-devel] Success!
Date: 02 Jun 2002 21:15:16 -0600

On Sun, 2002-06-02 at 16:19, Peter Hanappe wrote:
> Josh Green wrote:
> 
> Hi Josh,
> 
> Sorry I'm fishing all these old mails in my Inbox but I'm slowly
> catching up.
> 

Not a problem at all. I'm glad that you are joining the discussions :)

> > Real time generator control would be a nice effect to show off at the
> > LinuxTag, so I'm making it priority. [cut]
> 
> Yes, it will be!
> 
> 
> > The problem I'm having is figuring out how the generator controls should
> > be associated with voices. The generator controls are tied to a
> > particular preset or instrument zone. Changing a generator might affect
> > only one voice (in the case of a non-global instrument zone) or several
> > for global preset zones, preset zones and global instrument zones.
> > 
> > Come to think of it, if a user starts messing with generator controls
> > for an instrument should it update all the presets, in real time, using
> > that instrument that are currently sounding.. Hmmm... I guess I could
> > also just make the generator control widget just update the current
> > temporary preset (the currently selected sound font item). Since this
> > feature is probably best suited to aid in setting parameters, this might
> > not matter that much. "Real" real-time controls could be provided via
> > modulators or a control that is tied to a particular MIDI channel rather
> > than a zone. 
> 
> Reading your remarks I was wondering how you did solve that problem.
> Indeed, it does not seem like a trivial thing.
> 

I still haven't completely solved it to my liking. I basically made
another routine from my "sfont_item_foreach_voice" function which does
most of the work of layering generators and calling a callback function
for each resulting voice in the iiwusynth driver. This new routine
resides currently in the iiwusynth Swami driver, although I hope to make
it general enough in the future to put back into libsoundfont. It
basically takes an item and a layer item (a Zone for example) and does
the layering but for one generator only. Generator updates are only
issued for voices that actually changed. Currently I'm only keeping
track of one note-on event for the temporary audible (currently selected
item) in Swami. Each time a note on event occurs I write the note and
velocity as well as all the voice pointers into a structure.
In the future I would like to extend it to multiple note-on events with
an option for a single note-on behavior and maybe even all presets
currently accessible (a loaded sound font for example). It gets weired
though when expecting changing a generator at an instrument level to
update all currently active voices for presets that use that instrument
(a hash table would be in order). This was probably more than you wanted
to know :) Cheers!
        Josh




reply via email to

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