iiwusynth-devel
[Top][All Lists]
Advanced

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

[iiwusynth-devel] Success!


From: Josh Green
Subject: [iiwusynth-devel] Success!
Date: 08 Mar 2002 19:32:22 -0700

Yes! I finally got all the bugs worked out of my sfloader iiwusynth
plugin for Swami. It works but isn't clean yet (still using a copy of
Smurf to sequence it by connecting via ALSA :). This is real cool. In a
day or so it should be really worthy of coolness. I will then check it
in to CVS so anyone who wants can take part in the Swami mayhem.

While working with the sfloader API I found some things that could use
some improving:

1. Preset iteration functions require sfloader to store the
iiwu_preset_t data, which is a pain. It would be nice if these functions
were changed to require the caller to pass in a iiwu_preset_t structure,
which could then be filled and passed into successive invocations of the
function. I've got it disabled for now, cuz I saw that it was just used
for the command line interface.

2. I would like to do some more advanced sample management. Right now
I've just got it hacked to load the samples at note on time (yes this is
really really bad of course). I will eventually want to give the user an
option of loading all the samples or loading on demand with a settable
value for the max size of cached samples.

I need to be able to know when iiwusynth isn't using a sample anymore.
I'm sure this is just something you haven't completed yet. It would be
nice to tag sample data with a last used tick value which could be used
when cleaning up old unused cached samples. The iiwu_sample_t structure
seems a bit messy still (have to copy name, start isn't necessary, end
could be size instead, cents?, perhaps a user definable pointer like the
other structures), I'm sure this is also because the sfloader API is not
quite finished yet :)

I would like to get notification of when a Preset Change occurs so the
samples can be loaded. Now that I think about it I could probably just
do this in Swami. I've decided to use iiwusynth as a plugin synthesizer
and use my own audio and MIDI drivers (makes sense since I have to
implement them anyways for other wavetable back ends). How does
iiwusynth handle the noteon callbacks? What happens if the thread starts
waiting because of loading sample data on demand?

3. After a sound font is loaded I get a series of sfloader_get_preset
calls for bank 0 preset 0-8 followed by a couple of calls with a
seemingly random bank number (out of range) preset number 0, then a
get_preset for 128:0 then it continues with bank 0 preset 10-15.
Strange. I haven't tried tracking it down yet, but this could probably
confuse some peoples sfloaders :)

Anyways. Despite these couple of issues, I'm really really happy and
excited about getting iiwusynth finally connected to Swami :) It is
really a nice API too. I think I might look into a similar type
interface to some of the functions in libsoundfont. Pluggable object
allocation and destruction would be nice to use MemChunks with Swami.
Pluggable sample management would be neat too (already implimented but
not very cleanly). Cheers!
        Josh Green




reply via email to

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