Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Winamp 2 Kernel Streaming Output Plugin (Read 437878 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Winamp 2 Kernel Streaming Output Plugin

Reply #200
My specs are: mobo: asus a8n cpu: athlon 64 3500+ ram: 2gigs sound card: audigy 2 zs. The log file shows no errors. Music just stops playing until I get out of the menu. I am playing flac files. Music is on seperate drive than windows. It almost seems like it only does it to files/folders on some drives and not others. (i have 4 drives)

pic of menu: http://www.root-core.org/menu.jpg

Winamp 2 Kernel Streaming Output Plugin

Reply #201
After using the plugin a lot I've noticed two small issues in the latest version:

- A zero-byte logfile appears in the directory where the music files are located, not very often though (logging is turned of).

- You can sometimes hear a part of a previous track when you start to play a new one. I think that it is some data which is still in the buffer (64KB). Maybe the buffer isn't cleared when I select a new track? Seems to be happening during high CPU load and when I directly change tracks from the explorer.


Wanne.

Winamp 2 Kernel Streaming Output Plugin

Reply #202
can you please explain all the settings provided in the menu. sounds good too

Winamp 2 Kernel Streaming Output Plugin

Reply #203
After using the plugin a lot I've noticed two small issues in the latest version:

- A zero-byte logfile appears in the directory where the music files are located, not very often though (logging is turned of).

- You can sometimes hear a part of a previous track when you start to play a new one. I think that it is some data which is still in the buffer (64KB). Maybe the buffer isn't cleared when I select a new track? Seems to be happening during high CPU load and when I directly change tracks from the explorer.


Wanne.


I'm surprised the empty logfile is appearing in your music directory, I would expect it to always appear in the Winamp folder. The logging function always creates the empty logfile irrespective of whether logging is enabled or not.

I'm not sure why you should get a little bit of the buffer repeated when switching tracks. One question though, were the tracks ripped with Winamp as this tends to grab a bit of the previous track at the start of each new one.

Regards,
Steve

Winamp 2 Kernel Streaming Output Plugin

Reply #204
so... any luck on making AV-710 (Envy24-HTS) working yet?

Winamp 2 Kernel Streaming Output Plugin

Reply #205
can you please explain all the settings provided in the menu. sounds good too


Hi, check out the readme.html file which accompanies the plugin, it "should" answer all of your questions. Let me know if you require further clarification.

Regards,
Steve

Winamp 2 Kernel Streaming Output Plugin

Reply #206
so... any luck on making AV-710 (Envy24-HTS) working yet?


No, sorry, I haven't had a chance to do any significant development work on the plugin for quite some time. When I get round to fixing any of the outstanding problems I'll post here.

Regards,
Steve

Winamp 2 Kernel Streaming Output Plugin

Reply #207

so... any luck on making AV-710 (Envy24-HTS) working yet?


No, sorry, I haven't had a chance to do any significant development work on the plugin for quite some time. When I get round to fixing any of the outstanding problems I'll post here.

Regards,
Steve

Thank you Steve, if this work, Winamp will be the first KS-enabled video player for AV-710/Envy24-HTS.

 

Winamp 2 Kernel Streaming Output Plugin

Reply #208


so... any luck on making AV-710 (Envy24-HTS) working yet?


No, sorry, I haven't had a chance to do any significant development work on the plugin for quite some time. When I get round to fixing any of the outstanding problems I'll post here.

Regards,
Steve

Thank you Steve, if this work, Winamp will be the first KS-enabled video player for AV-710/Envy24-HTS.


doesn't ReClock beta work on your system with KS (in a DirectShow player)?



Winamp 2 Kernel Streaming Output Plugin

Reply #211


doesn't ReClock beta work on your system with KS (in a DirectShow player)?

I haven't tried, let me check it out.  Thank you.

I just checked, its KS renderer doesn't work with my card (AV-710, Via Envy24 HT-S).

Does it really help with sync / frame drop?  Do you use it?


yes it helps tons on my system (playing back 24 or 25fps content to a PAL TV)

Winamp 2 Kernel Streaming Output Plugin

Reply #212
Steve,

I haven't been able to reproduce the repeating sound issue when starting to play. The tracks weren't ripped with winamp. They were from a splitted ape file (split with cuesplitter). I suspect that the issue was more to blame on the high systemload than on the KS plugin specifically.

I found a way to get the zero byte logfiles...! If I start (load) Winamp by doubleclicking a mp3 file a logfile appears in the same directory. I don't think that there's a way to produce them once Winamp is running.


Wanne.

Winamp 2 Kernel Streaming Output Plugin

Reply #213
Steve,

I haven't been able to reproduce the repeating sound issue when starting to play. The tracks weren't ripped with winamp. They were from a splitted ape file (split with cuesplitter). I suspect that the issue was more to blame on the high systemload than on the KS plugin specifically.

I found a way to get the zero byte logfiles...! If I start (load) Winamp by doubleclicking a mp3 file a logfile appears in the same directory. I don't think that there's a way to produce them once Winamp is running.


Wanne.


Hi Wanne,
thanks for investigating further, I just wanted to rule out this annoying trait that Winamp has when ripping files - namely that it doesn't correctly grab the start of most tracks, tending to grab a little bit of what immediately preceeded it on the disc. You're probably right, it will be a combination of system load and driver implementation, given that the behaviour of the Kernel Streaming interface seems to vary from card to card.

As for the log file, Winamp does indeed seem to inherit different working directories depending on how it is launched - I noticed something similar while launching it from the debugger. I'll look at locking the directory the log file gets written into for the next version - whenever that happens.

Cheers,
Steve

Winamp 2 Kernel Streaming Output Plugin

Reply #214
Let me know if I can do some testing 


cheers,


Wanne.

Winamp 2 Kernel Streaming Output Plugin

Reply #215
Hi Steve great pluggin' but i can't use this pluggin with my M-Audio Audiophile USB ... i can't set my m-audio at 44khz. i can 48 or 96 24bit maybe i do an error can you help me you think? thanks.

Winamp 2 Kernel Streaming Output Plugin

Reply #216
Kudos to Steve Monks

Now I can listen to music in Vista.  I went back to XP and gave up testing this beta2 evaluation as I won't tolorate no music on my computer.  So far no skips in 30 minutes.  It used to skip within 30 seconds or less.

Vista's k-mixer caused my SoundMax AD1980 onboard sound to skip whenever I tried to play music.  It does this in WMP11 too so it's a Vista issue with my digital out stream drivers feeding my digital receiver through a toslink.

Thanx again Steve

BTW I couldn't try the foobar2000 ks driver as foobar keeps crashing in Vista but that's another topic.

Winamp 2 Kernel Streaming Output Plugin

Reply #217
Hello Steve


1. Have bug report

On Windows 2000 sp4, winamp 2.95, Creative Live! 5.1 with last Creative drivers

I have windows crush (blue screen or hard reboot) when shutting windows down while winamp playing with out_ks36.dll GAPLESS mode.
I have same crush when killing winamp process while playing (ANY mode).
I have NO such crush when closing winamp with WM_CLOSE while playing.
I have NO such crush with out_ds or out_wave

2. About log file creation even if logging disabled. I have added check "if (logging_enabled) " so no log file created at all when logging disabled.

static void InitLogging(void)
{
  FILE *fh;
  if (logging_enabled) {
    fh = fopen("kernel streaming log.txt","wb");
    if (fh) {
      fclose(fh);
    }
  }
}

3. May win32/release build will help with buffer underruns?

Thank You
Oleg

Winamp 2 Kernel Streaming Output Plugin

Reply #218
Hey Steve, thanks for your plugin, it sounds really useful!

Im using an M-Audio revolution 5.1 soundcard connected thru SPDIF to a 20bit, 44/48Khz capable external DAC. Playing back mostly 'CD quality' (16/44) media.

Am I correct that your plugin, paired with the HQSoftProc Resampling plugin (http://www.hqsoftproc.upcnet.ro/ ) is the perfect audiophile setup for playing back music bit-accurately?

More specifically, what Im doing is using the resampling plugin to upconvert (not resample!) lossless audio files from 16bit to 24bit, (my DAC will ignore the top 4 bits and use 20), then send its output to your plugin. If volume is 100%, the output will be 'bit perfect' in the sense that bits 17-20 will be '000000' and the rest is an exact copy. If volume is less than 100, well then I use the extra 4 bits to cover up the attenuation loss. (I hope your plugin has a high-quality attenuation routine).

Any thoughts? Am I right in my above description or am I missing something fundamental?

Winamp 2 Kernel Streaming Output Plugin

Reply #219
Additionally, I think the logfile creation stuff simply happens if you doubleclick a file to play it. Doing that doesn't change the current dir to 'winamp' like starting winamp first, then loading music.

Winamp 2 Kernel Streaming Output Plugin

Reply #220
1. Have bug report

On Windows 2000 sp4, winamp 2.95, Creative Live! 5.1 with last Creative drivers

I have windows crush (blue screen or hard reboot) when shutting windows down while winamp playing with out_ks36.dll GAPLESS mode.
I have same crush when killing winamp process while playing (ANY mode).
I have NO such crush when closing winamp with WM_CLOSE while playing.
I have NO such crush with out_ds or out_wave

Hmm I have never had it crash on my machine. (winXP sp2, winamp 5.24, 24bit sources only)
did you try the KS drivers for your soundcard to make sure that isnt the problem?
Quote
2. About log file creation even if logging disabled. I have added check "if (logging_enabled) " so no log file created at all when logging disabled.

static void InitLogging(void)
{
  FILE *fh;
  if (logging_enabled) {
    fh = fopen("kernel streaming log.txt","wb");
    if (fh) {
      fclose(fh);
    }
  }
}

Yep, noticed this too. Sadly Steve seems a bit busy. Did you try to compile your DLL? Mind sharing?
Quote
3. May win32/release build will help with buffer underruns?

The main thing that helped me with buffer underruns/stuffering is to improve winamps main priority! Set it to high or realtime and the problem disappeared 99.9% on my machine (Ath64-3000)

Winamp 2 Kernel Streaming Output Plugin

Reply #221
Hi all, just to catch up with a few of the points above;

DjLECTRix
Quote
Hi Steve great pluggin' but i can't use this pluggin with my M-Audio Audiophile USB ... i can't set my m-audio at 44khz. i can 48 or 96 24bit maybe i do an error can you help me you think? thanks.

Send me an error log and I'll see if it gives any clues, although it could just be a limitation of your card. If all else fails, you could always use the HQSoft resampling plugin if 48/96KHz works with your card.

nogus
Quote
I have windows crush (blue screen or hard reboot) when shutting windows down while winamp playing with out_ks36.dll GAPLESS mode.

My plugin doesn't get any notification that the machine is shutting down, so there's not a lot I can do about it, although it does seem to be down to the robustness of the sound card driver just how well the plugin behaves under these conditions. However I have noticed that the latest version of Winamp closes itself whenever the computer is shut down or sent into hibernation, so maybe this issue has gone away.


Quote
I have same crush when killing winamp process while playing (ANY mode).

Interesting, killing the process probably doesn't give Winamp any notification that it's about to disappear, as such it's still playing when the rug is pulled from under it.


Quote
I have NO such crush when closing winamp with WM_CLOSE while playing.

This is because Winamp notifies my plugin that it is about to stop, so I can clean up nicely.


Quote
I have NO such crush with out_ds or out_wave

This doesn't surprise me as both of these interfaces are a lot more robust than the Kernel Streaming interface which, as it's talking to the driver at a much lower level than either DSound or WaveOut, seems to be very sensitive to how the driver has been written.


Quote
2. About log file creation even if logging disabled. I have added check "if (logging_enabled) " so no log file created at all when logging disabled

The logfile is opened in this way at start up to clear out any existing log files, however this doesn't always work correctly depending on how Winamp was launched because this seems to affect the working directory. Disabling it like this just stops it being flushed out when working normally.


Quote
3. May win32/release build will help with buffer underruns?

Making a release build may help with buffer underruns as the generated code will be a lot more optimal. The builds I have posted have all been release builds although I've never suffered from buffer underruns in normal use when using a debug build.


puntloos
Quote
Am I correct that your plugin, paired with the HQSoftProc Resampling plugin (http://www.hqsoftproc.upcnet.ro/ ) is the perfect audiophile setup for playing back music bit-accurately?



This is an interesting idea to work around the loss caused by the digital volume control.

Can your 20 bit DAC actually handle a 24 bit digital feed? I would have thought that it would only accept 16 bit and internally use the extra four bits of precision to interpolate between samples or even decode HDCD streams.

If your DAC can accept a 24 bit input and ignore the bottom four bits, then yes it would probably improve on the usual loss that the volume control causes although an analogue domain volume control would still be preferable. I'll be interested to know how you get on. Bear in mind that on certain cards the KS plugin doesn't support a volume control for 24 bit data, it only works if your card can support 24 bit samples embedded in a 32 bit packet - you can tell if this is the case because the volume control stops working even if it has been enabled.

Cheers,
Steve

Quote
I hope your plugin has a high-quality attenuation routine

It's something along the lines of;

v2 = v1 x vol / 256
Where v2 = final sample value, v1 = initial sample value, vol = Winamp volume 0 to 255. So nothing elaborate and, as I've just noticed, the calculation is indeed slightly wrong as it should be;

v2 = v1 x vol / 255

however, when vol = 255 I disable the volume control processing, so at 100% volume the samples still get through unmolested.

Quote
Additionally, I think the logfile creation stuff simply happens if you doubleclick a file to play it. Doing that doesn't change the current dir to 'winamp' like starting winamp first, then loading music.


Yep, I think you're right, that's probably what is going on after all. If I ever get round to releasing another update I'll sort this out.

Cheers,
Steve

Winamp 2 Kernel Streaming Output Plugin

Reply #222
Wow, I took that long typing the last reply that you nipped in with another reply!

Quote
The main thing that helped me with buffer underruns/stuffering is to improve winamps main priority! Set it to high or realtime and the problem disappeared 99.9% on my machine (Ath64-3000)


I'm kind of surprised that you are suffering from buffer underruns on an Athlon64-3000. I never experience any problems of this nature on any of the following setups, all of which are running Winamp with normal priority with the buffering set to 32K input, 8K output, 8 output buffers;

3.0GHz Pentium D (2GB Ram) - I usually listen to music when I'm programming or editing, this usually means I'm running a combination of Visual Studio .NET 2003 and / or ProDG (a professional console debugger which can place quite a significant load on the system) or Photoshop and Edius. I also occasionally burn CDs and DVDs, browse the internet and leave Outlook running all the time with no noticable side effects.

2.6GHz Celeron (512MB Ram) - again, no noticable issues although as this is my media PC it seldom does much more than just run Winamp, although I do carry out the odd bit of browsing on this machine. I do also sometimes rip tracks with EAC and convert them to WavPack format while playing Winamp, again with no obvious problems.

2.8GHz Pentium (1GB Ram) - this is my machine at work so it's often simultaneously running Visual Studio, ProDG, Outlook, Photoshop, Nero.

Quote
Yep, noticed this too. Sadly Steve seems a bit busy. Did you try to compile your DLL? Mind sharing?

Yep, spot on, I have been a bit busy. It should be easy to put together a proper fix for this although it's so long since I've worked on the plugin I'm not sure what state it's in relative to the published source (I forgot to tag it in CVS). When I get a minute I'll take a look at this if it's proving to be a nuisance.

Cheers,
Steve

Winamp 2 Kernel Streaming Output Plugin

Reply #223
Wow, I took that long typing the last reply that you nipped in with another reply!

Maybe I just type faster than my own shadow! Muhahaha!
Quote
I'm kind of surprised that you are suffering from buffer underruns on an Athlon64-3000. I never experience any problems of this nature on any of the following setups, all of which are running Winamp with normal priority with the buffering set to 32K input, 8K output, 8 output buffers;

That might be it though, I tinkered with the settings, maybe the defaults are the only ones that work reliably? Anyway well, the strange thing was that my system was completely unloaded as well. Y'see I now do run winamp as my main audio source and just sit in my living room.

Perhaps it again is a matter of drivers and caching. KS being as finnicky as it is.

I'm using an m-audio revolution 5.1 btw.

Quote
Yep, spot on, I have been a bit busy. It should be easy to put together a proper fix for this although it's so long since I've worked on the plugin I'm not sure what state it's in relative to the published source (I forgot to tag it in CVS). When I get a minute I'll take a look at this if it's proving to be a nuisance.

The way I use it it hardly is a nuisance (I usually do start winamp first, then start adding stuff to playlists.. but well why go for next-to-perfect, eh? You're almost there methinks.

Winamp 2 Kernel Streaming Output Plugin

Reply #224
Hi all, just to catch up with a few of the points above;

Quote

Am I correct that your plugin, paired with the HQSoftProc Resampling plugin (http://www.hqsoftproc.upcnet.ro/ ) is the perfect audiophile setup for playing back music bit-accurately?

This is an interesting idea to work around the loss caused by the digital volume control.

Can your 20 bit DAC actually handle a 24 bit digital feed? I would have thought that it would only accept 16 bit and internally use the extra four bits of precision to interpolate between samples or even decode HDCD streams.

If your DAC can accept a 24 bit input and ignore the bottom four bits, then yes it would probably improve on the usual loss that the volume control causes although an analogue domain volume control would still be preferable. I'll be interested to know how you get on. Bear in mind that on certain cards the KS plugin doesn't support a volume control for 24 bit data, it only works if your card can support 24 bit samples embedded in a 32 bit packet - you can tell if this is the case because the volume control stops working even if it has been enabled.

Yep, my DAC accepts 24bits (listening to some nice Manu Katche as we speak), upsampled by the resampling plugin, and volume controlled (when I have to) by your plugin. *happy camper* I guess I was lucky with the M-Audio card. I did choose it specifically for its reputation in ASIO etc, and hey, it also supports 24bit 192Khz output, so I can probably survive another format upgrade before I have to trade it in.

Indeed, digital theory says that the dac should just discard the top4 bits, it certainly sounds just fine, although frankly I don't think I would spot the difference between 16bit and 20bit with the casual, non-ABX listening Im doing. Currently I use remoteamp on my PDA (over bluetooth, of course) to control winamp.. and yep, I can quickly control the volume from anywhere in my appartment if need be, and my preamp infrared remote is lost/out of range.
Quote
(about attenuation)It's something along the lines of;

v2 = v1 x vol / 256
Where v2 = final sample value, v1 = initial sample value, vol = Winamp volume 0 to 255. So nothing elaborate and, as I've just noticed, the calculation is indeed slightly wrong as it should be;

v2 = v1 x vol / 255

however, when vol = 255 I disable the volume control processing, so at 100% volume the samples still get through unmolested.

Ah but the pinch is more in the rounding error, not the initial division.

Do you round? (1.45=1, 1.51=2) or do you just chop (1.99=1)
More advanced methods involve dithering where you spread the rounding error across the neighboring samples, but there is much debate on what the best is. Chopping is the worst by far, of course.

On an unrelated note, are you open for donations? Do you have a paypal address or something? I've spent quite a few $ on my stereo over the last couple of months, Ive even invested money in speaker cables (where the best of my microelectronics knowledge - and I am an university microelectronics graduate - cannot justify this).. something as obviously helpful as your plugin would warrant at least a token gift.

No strings attached by the way, I wont start to make demands regarding updates etc