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: Updated in_mad Winamp MAD MP3 input plugin (Read 302371 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Updated in_mad Winamp MAD MP3 input plugin

Reply #200
Gee... this plugin is well on its way to becoming like Lancer editions... the "Build-of-the-day" club...

Heck... haven't even copied the zip from my office PC to my house, you already released a new build....



Anyways, great work, MoSPDude! Much appreciated!

Updated in_mad Winamp MAD MP3 input plugin

Reply #201
I've uploaded the update to the usual place.

@pepoluan, I just like things to work for people 

Updated in_mad Winamp MAD MP3 input plugin

Reply #202
MoSPDude, thanks for this plugin. I am curious about the dither used. You mentioned in the original post that you are using Gaussian dither. If I don't tick "dither" and set the output to 16 bits, is the plugin simply truncating the data at 16 bits?

Updated in_mad Winamp MAD MP3 input plugin

Reply #203
Thank you.
But not English simbols in ID3v2 still displays incorrect 
I know that in Unicode all good, but nevertheless maybe you fix this for not only Unicode symbols?
(I'm still wondered because ID3v1 at the same time absolutely correct    )
By the way when copy tag from ID3v1 to ID3v2(pressing the button) field "Gentre" don't copy correctly.

Updated in_mad Winamp MAD MP3 input plugin

Reply #204
@LMS, effectively yes, without any dither or noise shaping the lower bits from libmad fixed output are simply removed to give you your desired resolution.

@LITBe, they are some strange things in libid3tag but I've fixed the Genre problem. However, the foreign characters are still confusing...first of all, what operating system are you running? and what regional settings is windows set to? The ID3v1 tag will be shown in your regional ANSI code page, but the ID3v2 tag will want to be shown in Latin only characters, so I made it though go through windows conversion to Unicode and use that.

I'm going to keep thinking about this character conversion for a bit longer, then I'll upload another update.

Updated in_mad Winamp MAD MP3 input plugin

Reply #205
@LITBe, they are some strange things in libid3tag but I've fixed the Genre problem. However, the foreign characters are still confusing...first of all, what operating system are you running? and what regional settings is windows set to? The ID3v1 tag will be shown in your regional ANSI code page, but the ID3v2 tag will want to be shown in Latin only characters, so I made it though go through windows conversion to Unicode and use that.


Windows XP SP2
All regional settings is set to my language.

Updated in_mad Winamp MAD MP3 input plugin

Reply #206
@LITBe, can I ask what your language settings are? and specifically on the Advanced tab of the Regional and Language options in the control panel, what is the language for non-Unicode programs? It could be that I'm passing flags which aren't valid for your code page and its falling back to Latin coding only.

Thanks 

Updated in_mad Winamp MAD MP3 input plugin

Reply #207
I may be wrong, but it seems that the plugin is not handling the dither and noise shaping functions correctly. To test this, I wrote 4 wav files using the Wimamp diskwriter, each with the MAD plugin set to output 16 bits. The four files were Dither Only, Noise Shaping Only, Both, and Neither. I loaded all four wav files into Foobar 0.8.3 and bit-compared them. "Dither Only" and "Neither" were bit-identical. "Both" and "Noise Shaping Only" were not identical.

Thanks again for the plugin, I'm really enjoying it. I think we are all impressed by your efforts to fix bugs and add features that people request.

Updated in_mad Winamp MAD MP3 input plugin

Reply #208
It could well be not adding dither correctly, I had doubts as to whether the noiseamp value was right or not. I'll look into it.

Hopefully, I might have fixed this international character problem. 

Updated in_mad Winamp MAD MP3 input plugin

Reply #209
@LITBe, can I ask what your language settings are? and specifically on the Advanced tab of the Regional and Language options in the control panel, what is the language for non-Unicode programs?


Russian in ALL Regional and Language options and in Advanced tab too

Updated in_mad Winamp MAD MP3 input plugin

Reply #210
When seeking, buffer errors are no longer reported.  Sync errors still sometimes occur and there are a LOT of 'other' errors.  This IS an audible problem.  Just step by 5sec using the arrow keys, and watch the errors add up.  VBR seeking isn't accurate yet either 

Still sync errors with VBR streams (disabling shoutcast title support still fixes that problem).  Doesn't get titles from my icecast2 server even when titles are enabled.  When starting a stream, the sound skips for a while (sounds like buffer underruns), pausing playback for a few seconds fixes this.  It also isn't decoding shoutcast mp3 streams even with streaming enabled (grabs streams ending with ".mp3" just fine though).

It also chokes on mp3s with bad headers (44.1khz stereo, but reported as 48khz mono, etc.).. shouldn't it be able to pick up on stuff like that when it's wrong? 

Anyways.. keep up the great work.
Vorbis-q0-lowpass99
lame3.93.1-q5-V9-k-nspsytune

Updated in_mad Winamp MAD MP3 input plugin

Reply #211
I've had a look at the resync section - I'd based it on 0.14.1b, but now rather than try to decode only two frames, it'll search for the first full frame and then continue. libmad seems to seek only one byte forward when it lost has lost sync meaning that is has to loop potentially nearly a full frame of bytes to find the next sync. The other errors (bad data ptr, bad huff table, bad sample rate, bad bitrate) were due to libmad thinking it had found a frame and then changing its mind! Hopefully its sorted now 

I doubt VBR seeking will ever be 100% accurate as there is no sample counter, I could make it use the xing tables to seek in the file to the correct whole percentage then sample skip to the correct place, I don't know how much extra processing this would require.

Do you have any links to VBR streams I can test? I can't seem to find any. There is a problem if shoutcast metaint is set to less than 2048 bytes, or your first metadata block is sent before your first (valid) mp3 frame. I'll have to think of a way to solve this elegantly. The shoutcast failing could be due to the above, or the ICY header parser - I'll tweak the parser a bit and see if that helps.

The mp3 header problem is difficult to solve, the plug-in uses the first header to open the output plug-in. I could make it scan for second or third header and hope thats correct. It'd be difficult to have it close and re-open the output plugin mid-track.

I'll have a think about the above, thanks for all comments and problems you find 

EDIT: I'll upload the update later, I might add a stream saving option to 'record' internet streams so it can help solve these streaming problems.

Updated in_mad Winamp MAD MP3 input plugin

Reply #212
This plugin is the best :-)
My radio stream now play and show title correct, thanks for that ;-)
The save stream sounds like a nice feature 

Updated in_mad Winamp MAD MP3 input plugin

Reply #213
@ MoSPDude: I really much apperciate your work, thanks a lot!
I have a "feature request"... I'd love to have a button Cancel in the ID3Tag window do "Cancel All".
I mean when I select several files in the playlist I click Save and I see ID3Tag window of the next file but when I click Cancel I see the same as before. Contrary to this the original WinAMP mp3 decoder don't view ID3Tag windows when Cancel is clicked.

OT: I hope I have cleared up enough what I want, sorry for my bad English.
Sorry for my poor English, I'm trying to get better... ;)
"The greatest trick the Devil ever pulled, was convincing the world he didn't exist."

Updated in_mad Winamp MAD MP3 input plugin

Reply #214
I uploaded an update to the usual place.

I've had a go at tweaking the shoutcast header parser, and added an internet streaming save function in the configuration, its not that advanced but enough for recording streams to provide debugging information.

@k.eight.a, will look into making the cancel button cancel all.

Updated in_mad Winamp MAD MP3 input plugin

Reply #215
I doubt VBR seeking will ever be 100% accurate as there is no sample counter, I could make it use the xing tables to seek in the file to the correct whole percentage then sample skip to the correct place, I don't know how much extra processing this would require.
Might be worth a try to find out.

Quote
Do you have any links to VBR streams I can test?
I don't know of any myself, although it is a perfectly acceptable practice.  I just run oddcast3 and icecast2 on my own machine for testing.  Running shoutcast server on my own was when I first realized mad wasn't decoding it even with streaming enabled.  All metadata intervals are at whatever the defaults are (1024 bytes maybe).  I'll test with the new version once I get a chance to download it.

Quote
The mp3 header problem is difficult to solve, the plug-in uses the first header to open the output plug-in. I could make it scan for second or third header and hope thats correct.
Yes I have a few corrupt files in my library  (only the beginnings and ends though).  I would have it check the first 2 headers, if they are the same, then begin playback. If not, keep searching untill 2 consecutive headers have the same info.
Vorbis-q0-lowpass99
lame3.93.1-q5-V9-k-nspsytune

Updated in_mad Winamp MAD MP3 input plugin

Reply #216
I'm preparing a new update.

I've attempted to make input buffering more efficient, along with making it check for a set of identical headers to solve gameplaya15143 problems  . I've fixed a large problem with gapless playback and internal EQ, there was data left in the EQ buffer that would be emptied into the next song - so when you disk write it would catch part of the previous song. This has been solved now. Dither is also now applied correctly.

With the release of Winamp 5.3 I'm going to look into getting global replaygain settings from Winamp. I could do with some clarification as to how Winamp is applying the replaygain settings though. For the moment, you still need to set them through in_mad configuration as this will be separate to the rest of Winamp.

 

Updated in_mad Winamp MAD MP3 input plugin

Reply #217
I was playing around with VBR mp3 streams last night (yesterday's version of in_mad).  VBR mp3 streams from a shoutcast server work perfectly fine  no sync errors, titles show up perfectly.  When using icecast2 server, sync errors galore, and no titles.  I was under the impression that both icecast2 and shoutcast streamed mp3 titles the same way.  I'm beginning to think this is not the case.

www.icecast.org should have the info needed to hack in icecast title support.  Good luck with all the great improvements.
Vorbis-q0-lowpass99
lame3.93.1-q5-V9-k-nspsytune

Updated in_mad Winamp MAD MP3 input plugin

Reply #218
I was playing around with VBR mp3 streams last night (yesterday's version of in_mad).  VBR mp3 streams from a shoutcast server work perfectly fine  no sync errors, titles show up perfectly.  When using icecast2 server, sync errors galore, and no titles.  I was under the impression that both icecast2 and shoutcast streamed mp3 titles the same way.  I'm beginning to think this is not the case.


That suggests that in_mad probably isn't understanding the header correctly still. If you could use the internet stream save option and store header and metadata information, then post the header information from the beginning of the file that'd be great. I'll also download the icecast source code to try and help clarify things. I've not had chance to fully test the streaming VBR problems yet.

I'm just hunting down an issue with the new buffering 

Cheers for all the help everyone 

Updated in_mad Winamp MAD MP3 input plugin

Reply #219
I've uploaded an update to the usual place.

One of the minor things I've also fixed is seeking to 0:00 now works. Hoepfully this new buffering shouldn't cause any problems and be more efficient with usage of memory. I haven't noticed any improvement on decoding speeds though. When you press Cancel in the file info box, its cancels all afterwards now. To cancel a single file box, press the close button in the top right of the window.

I'll look into icecast streaming problems and make a few other tweaks.

Please post problems all problems, and I'll look into them, especially with the new buffering.

Thanks 

Updated in_mad Winamp MAD MP3 input plugin

Reply #220
When you press Cancel in the file info box, its cancels all afterwards now. To cancel a single file box, press the close button in the top right of the window.
Thanks a lot, I love you!
Sorry for my poor English, I'm trying to get better... ;)
"The greatest trick the Devil ever pulled, was convincing the world he didn't exist."

Updated in_mad Winamp MAD MP3 input plugin

Reply #221
Please post problems all problems, and I'll look into them, especially with the new buffering.
Thanks 


I've encountered a weird bug concerning files which contain ReplayGain tags with the plugin's preamp being enabled. Sometimes repeated seeking causes these files to soften, no matter whether the preamp value is positive or negative. Usually I use a preamp of 3.0, the first time I encountered this bug the volume level was lowered a bit, therefore I suspected the new buffering had conflicted with the preamp, disabling it completely. Hence, for testing purposes I increased it to 6.0, but against my expectations the next time this bug occured the volume level wasn't set back to the one I encountered the previous time. It was audibly louder instead, meaning the bug doesn't set back loudness to the non-preamped value, but always more quiet. For verification I set a negative preamp of -6.0, after some excessive seeking (the bug occurs rather rarely) the volume was lowered once more. I'm not completely sure whether it's the preamp causing this issue, but up to this point I wasn't able to reproduce it with the preamp being disabled.

To reproduce the bug by yourself simply keep clicking around in the seeking bar until an audible volume change takes place. Sometimes it already happens just after a few clicks.

Updated in_mad Winamp MAD MP3 input plugin

Reply #222
With the release of Winamp 5.3 I'm going to look into getting global replaygain settings from Winamp. I could do with some clarification as to how Winamp is applying the replaygain settings though. For the moment, you still need to set them through in_mad configuration as this will be separate to the rest of Winamp.
So, what's you're trying to say is, use ReplayGain inside in_mad instead of Winamp's Preference > Playback?

Updated in_mad Winamp MAD MP3 input plugin

Reply #223
@pepoluan, yes if you want RG for just your mp3 files.

With the replaygain you need to set it twice, within in_mad for mp3 files, and again in the winamp for the other "Winamp replaygain compatible" plugins. This is because in_mad doesn't take its settings from Winamp 5.3 global settings.

@Junon, I'll look into it

Thanks for all comments, I've noticed a small problem with gapless and EQ now but seems to vary depending on song and output plugin    .

Updated in_mad Winamp MAD MP3 input plugin

Reply #224
This gapless EQ problem is very strange.

When disk writing and joining the outputted files together it plays back gaplessly. However using the directsound output plugin gives what sounds to be a break, but the output plug-in status shows no under-runs etc. When EQ is disabled it doesn't show this problem.

Does anyone have any ideas as to what could be causing this?  Has anyone else found or not found this problem?

Thanks for all ideas and help on this