Previous Page | Next Page

by nothingtosay at 10:01 PM EDT on April 7, 2013
The new volume method is a great improvement - a 6.55dB decrease on the track I compared! Obviously that gets rid of quite a bit of the clipping, but it still can occur, although it hasn't been audible to me yet in the few tracks I've tried. I think the only way to be able to stop it from happening entirely is to be able to alter the volume going into the mixing. You're now at least on par with 2SF though, yours actually ranging being just slightly quieter to much quieter on the handful of tracks I tested. So even if you did nothing at this point your plugin wins in my book for the better interpolation.

Aside from the crashing you've now fixed, the only other bug I've encountered is that sometimes optimal interpolation causes loud clicking on some tracks for no apparent reason. B-spline doesn't and sounds almost exactly the same. "At the Pub" from FF Tactics A2 is a good example of this behavior.
by marcusss at 11:45 PM EDT on April 7, 2013
Great work on the wimamp plug-in. Is there going to be any Foobar xmplay support? Would be nice ;-)
by CyberBotX at 6:20 AM EDT on April 8, 2013
Knurek, what is odd is that I ran into that problem with the FFTA2 2SF rip but not the KSSU 2SF rip. One thing I've done and will put out with the next update of the tools is that the rename option of 2SF Tags to NCSF will try not to overwrite a file if it happens to find a duplicate. Instead it will tack on something like "_Duplicate" with a number.

nothingtosay, can you tell me when in that FFTA2 track it has the loud clicking? The thing about the optimal interpolation is I used the 4-point, 5th-order version of it from that PDF I linked to, but I used the one designed for 32x oversampling. Since I have no real way of knowing how much oversampling/undersampling is going on with the SWAVs being played at different sample rates, I used the highest I could find, but maybe I should use something in the middle, like 8x or 16x. Another alternative is to use one of the 6-point interpolation methods, but I am kinda against that if only because it causes more calculations to be done which can slow things down and might cause buffer underflows in Winamp. I already run into them when I use a sample rate higher than 96000 when I'm debugging, since the debug version is going to be slightly slower anyways.

marcusss, technically, the plugin appears to work fine in XMPlay as it is, since XMPlay can use Winamp plugins. As for foobar support, I may look into that eventually, I tried to design my xSF framework so I could (hopefully) migrate it to foobar2000 without too many changes.
by nothingtosay at 11:05 PM EDT on April 8, 2013
Well, the error turned out to be less deterministic than I thought. I took the first 12 tracks from Tactics A2, to get a decent sample size since it doesn't happen on every track, and rendered them to WAV with the output plugin. I've tried writing the file several times with different settings, but the only way I've managed to get it to click again is with volume set to .5 and sample rate at 192kHz, which, maybe coincidentally maybe not, is how I had it when I first got the clicking. But it doesn't do it every time and it doesn't do it in the same places. Repeating the test the same way twice more gave me no apparent clicks (I checked the waveforms to see instead of listening; they stand out high above anything else). I couldn't even get it to do it at all on "At the Pub" as I had before, but I did on "Gathering Allies" and "Cid" once each.

I doubt it will help you, but just so you know I'm not crazy, here is a short clip demonstrating it in "Gathering Allies". Perhaps if anyone else encounters this they could post here their settings and on which track. Maybe it doesn't only happen on optimal interpolation, that's just the only time I got it.

As it is, I doubt this is even something needing much priority since it would appear to be so rare and random.

About this potential 6-point interpolation, that would give better sound, right? My understanding is the more points the better, like SPC's sinc interpolation being 8-point and clearly better than the other options which are 4-point. I think if you have the ability to do something better, you should include it if it's not too much trouble. Keep the current scheme and add the more complex, potentially better one, and maybe add a note that it is slow and could cause dropouts. Some people's computers may be able to handle it, or if somebody wants to convert it to another format you might as well do it at the best setting you can. That's the way I'd handle it if I were doing this, anyway. Just my two cents.
by CyberBotX at 11:30 PM EDT on April 8, 2013
Yeah, definitely heard it in your sample. I haven't tried it here myself, but I'll dig into it more later on. I do like the idea of giving people the option between 4-point and 6-point interpolation. You are correct that more points could potentially lead to better sound. I'll look into adding at least one of the 6-point interpolation options.
by CyberBotX at 2:51 PM EDT on April 10, 2013
OK, I put up a new version of in_ncsf. Mainly because I went a little overboard and also partially because I'm sure the audiophiles will like this, I added a few more interpolation options. Mainly added in Legrange interpolation and a few variations of the Hermite, B-spline, and Optimal interpolations. I also dropped the Optimal interpolation down to the 16x oversampling version. In addition, I also changed how the interpolation handles data near the start and end of the SWAV sample. Before, I was using the slope to extrapolate the non-existant points outside the range, but now I am just using the current point for any points outside the range. Hopefully this prevents some of the clipping/popping that may have been occurring. One other thing I did was make it so changes to interpolation and muted channels will apply immediately after clicking OK instead of on the next song play.

I'm still working on updates for the tools. My sleep schedule has been horrible lately so it's been affecting me a bit more than I imagined. I'll put out an update once those are done.
by nothingtosay at 3:49 AM EDT on April 11, 2013
Thanks for the options and the updating without needing to restart playback. I think I may have discovered an issue with the new start/end method. Sorry to keep raining on the parade, haha.

Here are clips of a section of a track from Mystery Dungeon: Shiren the Wanderer with the previous version of the plugin, the latest, and the difference left after canceling out all that is the same between them. You don't even need to use the difference to hear the clicking that has been introduced in the new version. This is the only track I've found with this problem so far, but I haven't listened to a lot of stuff yet since this is rather time consuming to do. This was done with the old plugin set to optimal interpolation and the new one set to optimal, 4-point, 4-th order. It happens whatever sample rate or interpolation you choose and is definitely caused by the interpolation because when you have none on it doesn't click. This is not random like the other clicking I found either; it does happen consistently in the same place every time.

Question about the oversampling: I doubt 16x vs. 32x makes an audible difference, but why do you think the higher number may have caused the previous type of clicking?
by CyberBotX at 7:35 AM EDT on April 11, 2013
I have no issues with problems being brought up, that's why I made it public in the first place. :P

Hmm, maybe it's my speakers, but I didn't hear clicking in either one, and heard absolutely nothing out of difference.flac. So that's a bit of an odder one...

The only reason I thought that changing which oversampling version of the optimal interpolation would cause a difference is because I don't know how much oversampling is being done. I'm not really 100% familiar with how to calculate oversampling, though, so if someone knows how to determine that, I may be able to put some conditional code in place to use the best oversampling for an SWAV depending on the difference between it's sample rate and the playback sample rate. Otherwise I'd have to just pick a version of the optimal interpolation that would try to cause the least amount of problems. If the latter has to be done, should I go back to the 32x version or stick with the 16x version or use one of the lower ones like 8x or 4x or 2x?
by nothingtosay at 9:26 AM EDT on April 11, 2013
Sorry, should have mentioned it's quiet. Here is the difference file with the volume increased by 26 dBs, making it easy to hear and see the clicks in an editor. But I wouldn't have bothered bringing it to your attention if I couldn't hear it with the new plugin at my normal listening volume though. Maybe I just listen to music at a higher volume than you, because it's sort of faint but definitely there to me. Starting at 4.75 seconds you should be able to hear rapid clicking, especially in the left channel.

I'm not too familiar with oversampling myself, but I see no reason higher rates should cause sound issues when lower wouldn't. But as I said, I doubt 16x versus 32x is even audibly different either. If you include options for both settings with optimal interpolation, I'll do some tests to find out how different they are. But the new clicking I found was either caused by the new 16x oversampling or by the new interpolation start/end handling. My bet is on the latter.
by CyberBotX at 10:09 PM EDT on April 11, 2013
OK, so I put together a page to show off all the interpolations in Olli Niemitalo's PDF, plus the Cosine interpolation from DeSmuME. It's located here.

Basically, from what I see, the interpolation methods that actually go through the original points are: 2-point 3rd-order Optimal 32x (except that it looks strangely like Linear at that point...), 4-point 2nd-order Watte tri-linear, all the Hermite interpolation, all the Lagrange interpolation, all the 2nd-order Osculating interpolation, Cosine, and Linear. The others do not go through the original points, which can potentially cause things to sound quieter than intended and possibly even different than intended.

So the surprises. I had copied the code exactly as it was in the PDF for every interpolation method. 2-point 3rd-order Optimal at lower oversampling rates has skipping at each data point as well as getting closer to looking like Linear interpolation by the time it got to the 32x oversampling rate. 4-point 2nd-order Optimal and 6-point 4th-order Optimal go way out of control and I'm not sure why.

Another thing to note is that currently, in_ncsf is using the method equivalent to "w/o Sloped Edges (current)" on that page. The calculation of the data points at the start and end of the data is only affected on any interpolation that uses 4 or 6 points in it's calculations. The 2-point interpolations are unaffected by this. Another thing to note is that using the slope to calculate those points causes every interpolation method to have the start and end go through the original start and end data points. This doesn't change the data in the middle, though.

What I'd like to know from you all is which interpolations you'd prefer I keep (and maybe which ones I should add as well). I would also like to know which of the edge handlings I should use. As it stands, I am thinking I will remove the 2-point 3rd-order Optimal completely and possibly add in both the 2nd-order Osculating interpolations, and for edge handling probably use the slope or the nearest point as it seems to cause the data near the edges to be slightly more in line with the curvature of the sound.

edited 10:59 PM EDT April 11, 2013

Previous Page | Next Page
Go to Page 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Search this thread

Show all threads

Reply to this thread:

User Name Tags:

bold: [b]bold[/b]
italics: [i]italics[/i]
emphasis: [em]emphasis[/em]
underline: [u]underline[/u]
small: [small]small[/small]
Link: [url=]Link[/url]


HCS Forum Index
Halley's Comet Software
forum source