From: Robert M. J. <bob...@be...> - 2004-11-20 01:27:18
|
Eric A. Welsh wrote: >>Crackling shouldn't be related to processor speed. When timidity runs >>out of CPU, at least under Windows, it stutters instead of crackles. I >>used to run a Pentium 133, and it wasn't difficult to use up all the CPU >>if reverb and/or chorus was enabled. The result was always stuttering, >>as the sound paused until the audio buffer was full again. >> >> > >What I said before wasn't entirely correct. While running _out_ of CPU >only stutters, running _low_ on CPU can produce some crackling noises. >This generally only happens when the user is using an interpolation mode >that is too slow for that computer. If you run timidity in the ncurses >display mode, it will display the current % "audio queue". If this number >drops below around 85% or so, timidity will start to stutter, because the >audio buffer isn't full by the time it is needed to play it. To avoid >stuttering, timidity does some things to reduce CPU usage once the buffer >drops below 100%. Below 100%, it will switch from whatever the current >interpolation method is to using linear interpolation, then switch back to >the original interpolation method once the buffer is at 100% again. On >modern processors, this usually looks like the buffer stays at a constant >100%, since the interpolation method is constantly switching back and >forth between linear (too fast) and the other mode (too slow). Because of >difference in the output from the interpolation routines, the sample >amplitudes before and after the switchover may not be smoothly continuous, >and can cause a crackling noise. I've heard this myself, so I know it >happens. If the CPU is _really_ getting hammered, and switching over to >linear interpolation isn't helping, then timidity starts killing voices. >Once the buffer gets to around 85% (the exact criteria is a bit different, >but it usually winds up being around when the 85% mark is reached), >timidity starts killing notes. First it kills notes that are OFF, but >haven't finished releasing yet, starting with the most quiet volumes. >If it still hasn't reached the estimated "safe" number of voices >(calculated based on prior observations on how many voices are "good" or >"bad" for buffer depletion), it starts killing of voices that are still >ON. Abruptly killing off notes without decaying them first can also >result in a popping noise, since the sample amplitude abruptly drops from >something large to zero. > >So, if the % audio queue is hovering at 100%, crackle may be generated due >to choosing too expensive an interpolation method. Try using a smaller -N >value (the default Gauss-like interpolation defaults to -N 25, which is >probably too slow for some older computers). If -N 5 still isn't getting >the % audio queue above 100%, use a different resampling mode all >together (-EFresamp=L for 4 fast point interpolation). If that STILL >isn't helping, use -EFresamp=l for linear interpolation. If you're still >in trouble, which could happen on Pentium speed machines, lower the >sampling rate with -r, change the chorus mode to -EFchorus=1 or disable it >entirely with -EFchorus=0, set -EFreverb=g or =G (global versus per >channel), or disable reverb entirely. By turning off enough special >effects, and lowering the sound quality options, most machines can play >any midi just fine. Even my old Pentium 133. > >-Eric > > > >------------------------------------------------------- >This SF.Net email is sponsored by: InterSystems CACHE >FREE OODBMS DOWNLOAD - A multidimensional database that combines >robust object and relational technologies, making it a perfect match >for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 >_______________________________________________ >Timidity-talk mailing list >Tim...@li... >https://lists.sourceforge.net/lists/listinfo/timidity-talk > > > That's what figured. I always make my waves without extras stuff. Even on this one. my batch file looks like this: timidity -int --modules=32 -Ow *.mid *.MID I'm in a case sensitive enviroment. Especially after I put Windows Services for Unix and Cygwin. Bobby |