On Fri, 28 Aug 2009, Aaron Johnson wrote:

> Good software design in my philosophy is allowing the flexibility and
> generality when needed, but, yes, saving the user from themselves!
> Given that the clicks were not heard on say FluidSynth, I'd say they
> have something like this in place.
> And I think something like this would be very good for Timidity.

> A lot of people may have already written Timidity off as not being
> capable of professional, clean-quality work, b/c it has clicking noise
> where other MIDI soundfont software doesn't. They may have said, as I
> did, "development isn't active, it's old software, I don't think this
> will get fixed", and move on, to get their music done without the
> hassle of figuring it out.....I perceive NOT dealing with it clikcing
> as a bug, not a feature. My 2ยข!!!

Yeah, I guess you're right.  Behavior I would want as a "power user"
probably isn't the best thing for the average user....  I'll take a look
over the code and see where I could most easily insert some sort of
release envelope check.  It would default to the minimal time required to
avoid a pop.  It still wouldn't sound all that good, because no (or
super short) release just generally sounds bad, but at least it wouldn't
pop any more.  I'm still a little leery of defaulting to a noticably long
release (which is what most good instruments have), since perhaps the
short release was actually intentional, but perhaps such a longer default
could be added as a --option (we're running out of -? letters).

I'm going to see if I can find a good place to put the check so that it
can be made after all the various different routines that instruments are
read in from.  I don't want to hack separate fixes for the SF2 reader, the
PAT reader, the -P reader, and maybe separate softsynth versions of all of
these.  The softsynth will be the worst, since I am totally unfamiliar
with how instruments get loaded on the fly for that, and I have no way to
easily test it under my home Windows setup.  I hope that I can find an
easy place just upstream of the mixing routines where the envelopes get
translated into internal values.  A check for no release should be easy to
do there, and the minimal pop avoidance value set there for all cases.
Any --option for longer defaults, though, might be a lot more difficult to
add, since that place in the routine has probably lost track of whether
the envelope was missing in the original instrument, or if these values
were what was actually set by the instrument or other overriding
parameters in the .cfg files.

Short answer: I hope to be able to fix the pops for all instrument
sources by adding a minimal super short release time, but changing the
default to be a longer "nice sounding" one may not be so easy and will be
left as a future wish for now.

-Eric

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Timidity-talk mailing list
Timidity-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/timidity-talk

Reply via email to