iiwusynth-devel
[Top][All Lists]
Advanced

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

[iiwusynth-devel] Iiwusynth: Buffer fragmentation, sysex, reverb, pitch


From: M. Nentwig
Subject: [iiwusynth-devel] Iiwusynth: Buffer fragmentation, sysex, reverb, pitch bend
Date: Fri, 22 Feb 2002 11:29:15 +0200

Hello all,

some comments about Iiwusynth:

=== Pitch bend ===
I installed the latest version from CVS. Pitch bend now works as
expected. Great!

===Fragments===
It was a good idea to use command line options for fragment size and the
number of fragments, because my sound chip (ESS allegro) can't cope with
the default settings now - it produces strange noises.
If other people have the same problem, I'd suggest to change the number
of fragments by default to 16, that's the lowest setting that works.
I have spent quite some time in the past to understand this problem with
my soundcard (since I want to push down latency to the limits). It's
odd, using only 3 fragments work as long as I delay writing to the
soundcard until there is only one or two full buffers, but then the
number of fragments doesn't have any meaning in any case. The drawback
of this method is, that the CPU load is always 100 % (I haven't found a
way yet to give back a time slice of 1 ms or less back to the kernel -
please let me know if you have a solution). I can send example code, if
somebody is interested.

=== Sysex ===
I reported previously, that sysex messages lock up iiwusynth. It's
possible that there is an unwanted bank change going on, preventing the
synth from playing anything afterwards. At least that's what I observe,
when I turn the wrong button on my masterkeyboard in --verbose mode -
the bank turns to 165xx.

=== Reverb ===
Being curious by nature, I turned on reverb by setting the default
reverb send on the voice to 0.3:
There seems to be a bug in the reverb implementation: Reverb processing
stops, as soon as all voices, which contribute to reverb send, have
finished. This produces a weird gating effect, because it cuts off the
reverb tails. Commenting out
if (USE_REVERB(synth) && (reverb_send >0.0f){
in iiwu_synth.c (and the closing bracket) fixed that. (The first half
probably works OK, it's the reverb_send>0 that causes the trouble).
Having fixed that, I must say that I am impressed with the reverb
(especially preset 4). Together with the (otherwise completely dry)
Rhodes Mk 1 patch from
http://www.hammersound.net/cgi-bin/soundlink_download2.pl/Download%20USA;mk_1_rhodes.rar;561

this really sounds fine. I did a short comparison by plugging my
headphones back and forth between the computer and a rhodes patch on my
masterkeyboard, my conclusion is that they 'play in the same league' now
:-)

=== Reverb 2===
To switch reverbs without recompiling, I implemented a command that
allows to choose the reverb preset from the command line or .iiwusynth
file, that was simple. Question is: Does it make sense to put this into
the official release? If yes, I could implement the following commands:

reverb_preset x: chooses reverb preset x
reverb_setroomsize x: changes the room size of the current reverb preset
to x
reverb_setdamp x: changes the reverb damping of the current reverb to x
etc...

What do you think?
I will need this sort of functionality for my own use, because I want to
keep loaded soundfonts and effect settings together in a batch file.

Regards

Markus

PS: I'm using Netscape now for mailing. Let's hope that this mail
arrives in a human-readable format :-)




reply via email to

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