Help - Search - Members - Calendar
Full Version: Updated in_mad Winamp MAD MP3 input plugin
Hydrogenaudio Forums > Hydrogenaudio Forum > Validated News
Pages: 1, 2, 3, 4, 5, 6, 7, 8
MoSPDude
Hi, i've just finished updating the Winamp MAD input plugin 0.14.1b with,
* libmad 0.15.1b
* libid3tag 0.15.1b
* zlib 1.23
* Gaussian dither and noise shaping routines from SSRC 1.30
* Working ID3v2 editor
* APEv2 editor
* LAME gapless playback support
* Non-LAME tagged gap skip/removal feature
* ReplayGain support
* Winamp 5 advanced formatting support
* Shoutcast streaming title support

I'd like some other people to try it, and possible fix any remaining bugs etc. that I've probably missed.
I've included source code, it was compiled in Dev-C++ using the MinGW tools. Thanks for any and all feedback in advance.

*** The LATEST bugfixed DLL can be download from http://www.zen23652.zen.co.uk/in_mad.zip ***
Garf
QUOTE(MoSPDude @ Jul 24 2006, 15:51) *

* Gaussian dither and noise shaping routines from SSRC 1.30


What's the point of gaussian dither? In which circumstances would it have any advantages over triangular dither?
MoSPDude

Perhaps so, I might make it so you can choose between rectangular, triangular or gaussian.

It turns out in AB listening tests, that most my family prefer no dither or noise shaping on the output at all.
Thats why there is an option to turn off dither and noise shaping.
Garf
It's extremely interesting they can hear a difference at all. (Is it statistically significant?)

AFAIK, this has so far only been accomplished under extreme circumstances.
MoSPDude
I thought it odd too, though I did agree - without the extra processing, the sound was clearer.

It was being pumped from winamp at 44.1kHz 24bit, via kernel streaming output plugin, digitally to a Marantz surround sound receiver in Source Direct stereo mode, to Eltax front speakers with mounted super tweeters.

Perhaps it has something to do with 'noiseamp' setting from SSRC, its fixed to 0.18 . Is that too much?

Thanks,
Craig
adamjk
So, at first I should compile it? Thank you very much!
MoSPDude
There is a ready compiled DLL in there called "in_mad.dll" - place that in your Winamp plugins folder.

It shouldn't depend on anything other than windows C runtime libraries, that you'd more than likely already have.

The source code was provided so anyone can see and improve on it as needed.
amano
Is there media library support now?
adamjk
QUOTE(MoSPDude @ Jul 24 2006, 18:44) *

There is a ready compiled DLL in there called "in_mad.dll" - place that in your Winamp plugins folder.

It shouldn't depend on anything other than windows C runtime libraries, that you'd more than likely already have.

The source code was provided so anyone can see and improve on it as needed.

Sorry, obviously my mistake. The only one explanation is temperature, only 36 Celsius! I will try it!
MedO
All running, but opening the file info box crashes winamp and then half my system with some files. I use Winamp 5.21, Windows XP home on a Celeron M 1400.
Here's a short file where this happens.
MoSPDude

Will try and track it down, initial tests point to a libid3tag problem.
MoSPDude
In the test file, do you know what the ID3v2 tag frames are supposed to contain? The reason it was crashing is the frame id says to expect text - but it only contains garbage. It was a problem in my routine blindly expecting an entry in a string list.

The fixed in_mad.dll and updated in_mad.c is below,

http://www.zen23652.zen.co.uk/in_mad.2.zip
MoSPDude
Media library support will be in the next build hopefully.

I might also get round to setting up a holding website.

Craig
MoSPDude
I've added media library support, its probably not very good but its working.

Download from,
http://www.zen23652.zen.co.uk/in_mad.3.zip

(file updated again at 23:03 BST - I'd managed to put a non-working copy in zip earlier)
MedO
QUOTE(MoSPDude @ Jul 24 2006, 22:43) *

In the test file, do you know what the ID3v2 tag frames are supposed to contain? The reason it was crashing is the frame id says to expect text - but it only contains garbage. It was a problem in my routine blindly expecting an entry in a string list.

The fixed in_mad.dll and updated in_mad.c is below,

http://www.zen23652.zen.co.uk/in_mad.2.zip


The problematic files were music from a game (Poke646) so I don't know how they were created or what the metadata should be. The crash happened with all those files so I guess the encoder used was buggy. Thanks for fixing. cool.gif
niktheblak
Holy dead decoder resurrection, Batman!

How many years it has been since the last MAD version, three? Now people can once more start claiming how MAD makes natural instruments sound more organic compared to Winamp decoder and mpg123!
odyssey
Wow, I LOVE the way you show the original tagfield-names. Can these be implemented in the Title Formatting pleeeeeaaase? biggrin.gif crying.gif

Edit: Oh crap, it doesn't read recursive tags (from Helium). Only shows TXXX: #Helium Featured Artist. Can this be fixed in any way? I'd really like being able to format the title using my Helium tags
MoSPDude
Making the ID3v2 editor friendly is on the to-do list. I left it pretty much as the (disabled) one from 0.14.1b.

As for Helium tags, I'll have a look into it for you.

I've been fixing some minor problems with tags and libid3tag, such as not reading comments properly.

The latest dll will always be available from,
http://www.zen23652.zen.co.uk/in_mad.zip

I've not included source updates in the above, I'm planning to move and reorganise it all.
odyssey
QUOTE(MoSPDude @ Jul 25 2006, 22:18) *

I've been fixing some minor problems with tags and libid3tag, such as not reading comments properly.

Yes, I think it's called comments the way they implement tags. Thanks biggrin.gif How about Title Formatting?

I like being able to see and edit *ALL* tags, and the real field-names, so don't make it too user friendly tongue.gif
john33
@MoSPDude, we'd be happy to host this at Rarewares when you think it's ready, unless you prefer to host it yourself, of course. smile.gif
MoSPDude
QUOTE(john33 @ Jul 26 2006, 08:37) *

@MoSPDude, we'd be happy to host this at Rarewares when you think it's ready, unless you prefer to host it yourself, of course. smile.gif


That'd be great, I don't think its too far off being ready. I've rearranged the source to make it more understandable when adding/upgrading sections, and fixed a few other things in the process, plus stripped the DLL properly down to size (thought it was set too, but wasn't).

I'm going away for the next 4-5 days, and won't get chance to work on it so I'll update http://www.zen23652.zen.co.uk/in_mad.zip with the rearranged source and smaller DLL a bit later.
john33
QUOTE(MoSPDude @ Jul 26 2006, 09:11) *

That'd be great, I don't think its too far off being ready. I've rearranged the source to make it more understandable when adding/upgrading sections, and fixed a few other things in the process, plus stripped the DLL properly down to size (thought it was set too, but wasn't).

I'm going away for the next 4-5 days, and won't get chance to work on it so I'll update http://www.zen23652.zen.co.uk/in_mad.zip with the rearranged source and smaller DLL a bit later.

I'm also just about to go away for about 7 days, so we can sort it out when we're both back. smile.gif (I'll be in the depths of Wales without any access to the Internet!!) Have a good trip.
MoSPDude

This is going to be that last update for next 5 days, before I finish packing!

I've fixed a new fault, where ID3v2 tags weren't delete properly because the ID3v1 tags weren't read properly, due to changes I made to make it read comments frame.

I've added to the basic title formatting, the ability to show any (text) frame. An example is to add "%#COMM" to make it show the comments field. You have to disable Winamp 5 advanced title formatting to use the plugins own basic formatting.

Download from the link given in my previous post.

@john33, I've only just come back from Wales!
Mr_Rabid_Teddybear
Sorry I can't test this myself (I'm in the process of moving house, computer in cardboard box); but have the annoying internet stream hijacking behavior of the previous in_mad been fixed? (Like if you tried to play a vorbis internet stream in _mad hijacked it from in_vorbis and made Winamp hang, as in_mad obviously can't decode a vorbis stream...)

gameplaya15143
QUOTE(Mr_Rabid_Teddybear @ Jul 26 2006, 16:59) *
in _mad hijacked it from in_vorbis and made Winamp hang, as in_mad obviously can't decode a vorbis stream...)
... that I'm wondering the same thing, does in_mad.dll still break streaming? dry.gif

If not, here's my feature request: leave unknown BS to in_mp3.dll (ie http;//somestream:8000, as this could also be an aacplus stream or just a website on some other port, etc.), but have it capture a proper* stream url (ie http;//somestream:8000/mountpoint.mp3) (this scenerio is doable with in_mpg123)

Any plans to add APEv2 tag support? replaygain? gapless playback?

I'm very happy to see it finally get updated for ID3v2 tags though, thanks and keep up the great work.

*Why nullsoft used a url that could be anything, I'll never understand. Oh well, icecast2 is better than shoutcast anyways.
[edit]can't read[/edit]
Big_Berny
In the mediamonkey-forum someone posted a gapless mad-version: http://www.mediamonkey.com/forum/viewtopic.php?t=10051

Maybe this feature can be ported?

Big_Berny

PS: I'm happy with otachan's often updated in_mpg123. smile.gif
odyssey
QUOTE(Big_Berny @ Jul 27 2006, 08:21) *

In the mediamonkey-forum someone posted a gapless mad-version: http://www.mediamonkey.com/forum/viewtopic.php?t=10051

Maybe this feature can be ported?


This plugin actually REMOVES silence, and does not benefit from the LAME tags actually containing the missing samples:

QUOTE

This version examines the beginning and the end of each track for silence, and can remove up to approximately 78ms of silence from each end (3 frames). The unwanted silence is typically 50ms or less. If more than 78ms of silence is found - as is the case with normal albums - then the track will not be altered in any way. Therefore, only continuous live or mix type albums are altered.


I'd really like to have gapless playback, and maybe it can be ported from the in_mpg123 plugin?
MoSPDude

Hi,
I'm back from my short holiday now, ready to do some more to the plugin.

I've fixed the unknown internet stream hogging problem after looking at in_mpg123. It all relies on the user specified default extension for unknown file types. Another way to cure the hogging problem would be to change this from "mp3" to "aac" (or another file type supported by in_mp3 and NOT in_mad) in winamp preferences.

I'd like to add ReplayGain and the LAME gapless playback features. As for APEv2 tags, I'll add once I've cleaned up the ID3v2 code and am happy with that.

An updated file will be available shortly, I'll post again once its up.

Cheers for all comments :-)
odyssey
QUOTE(MoSPDude @ Jul 31 2006, 16:06) *

I'd like to add ReplayGain and the LAME gapless playback features. As for APEv2 tags, I'll add once I've cleaned up the ID3v2 code and am happy with that.


Best news EVER! Thumbs up. I'm already very happy with my new Title Formatting options, even though i miss the "Featuring artist" Helium tag biggrin.gif biggrin.gif biggrin.gif tongue.gif rolleyes.gif wink.gif
MoSPDude
I've updated http://www.zen23652.zen.co.uk/in_mad.zip .

I've added preliminary support for ReplayGain, it attempts to read it from LAME tag first then foobar ID3v2 tags. It has to be enabled manually via regedit for now. Open and close the plugin configuration to write the defaults, then edit them - "rgenabled" to enable and "rgalbum" to select album gain (otherwise track gain).
gameplaya15143
YAY!

I do hope you leave access to the advanced ID3v2 tagging options that are there now, I kinda like it.

I'm very glad to hear that something was done about the stream hijacking issue. It would hijack anything that started with 'http' regardless of anything else (extention didn't matter, not even the default extention). When I get a chance I will certainly see if what you did fixed the problem in all cases I can come up with.

Your work is very very much appreciated. Thank you MoSPDude.
MoSPDude
Another update,

I've added gapless playback for files with a LAME tag. ReplayGain options are also now fully working, its checks for foobar ID3v2 info first, then the LAME tag.

The LAME gapless playback needs more testing, so all feedback on that feature will be greatly appreciated. Download from the usual.

Thanks in advance!
MedO
Great work MoSPDude!
Is this, then, the first player/plugin to support the LAME replaygain tag?
haregoo
QUOTE(MedO @ Aug 2 2006, 18:58) *

Great work MoSPDude!
Is this, then, the first player/plugin to support the LAME replaygain tag?

No. Otachan's in_!mpg123 has supported LAME tag replaygain since 2004.
Keep in mind that LAME tag replaygain adjustment is crap when you play MP3Gained file.
odyssey
QUOTE

Keep in mind that LAME tag replaygain adjustment is crap when you play MP3Gained file.

How can this be fixed/removed? (Or better yet, recovered if MP3Gain values are trashed?)
MoSPDude

Good point, I hadn't thought of that. I could make it check for APEv2 tags (which I was going to do eventually anyway), where MP3Gain stores undo and analysis information - and make a decision about ReplayGain based on that. For where MP3Gain hasn't stored tags, you could create 0dB gain and 1.00 max amp foobar ID3v2 ReplayGain tags, or disable the ReplayGain.

Anyone tried the LAME gapless decoding yet? I'm going to have to properly test it, I keep thinking I'm a few samples out. crying.gif
haregoo
QUOTE(MoSPDude @ Aug 3 2006, 05:35) *
Anyone tried the LAME gapless decoding yet? I'm going to have to properly test it, I keep thinking I'm a few samples out. crying.gif


in_mad outputs 1055 sample longer or shorter wav at 44100hz.
I've tried with latest in_mad + NullSoft Disk Writer Plugin.
MoSPDude
Ok, after reading through LAME source and a few headaches, I've got the LAME gapless working properly, well at least on the test tones I've created and the files I've got. If haregoo could check this new version again, please.

I've also added reading of ID3v2 RVA2 field, but its untested as I don't personally have anything that writes them, if someone could point me in the right direction for a tagger.

Thanks for all your help

(Download from the usual http://www.zen23652.zen.co.uk/in_mad.zip )
haregoo
QUOTE(MoSPDude @ Aug 3 2006, 08:04) *

Ok, after reading through LAME source and a few headaches, I've got the LAME gapless working properly, well at least on the test tones I've created and the files I've got. If haregoo could check this new version again, please.

It worked and gapless sample sounds OK for me. laugh.gif
bladecgn
Hey MoSPDude!

I had been experimenting with various players / plugins and have to say yours is the best, most natural sounding! Keep up the good work!

One feature request: Can you add an option for files without replaygain info to be played some db quieter or louder (user configurable, maybe +/- 10 db)?
odyssey
QUOTE(MoSPDude @ Aug 3 2006, 01:04) *

Ok, after reading through LAME source and a few headaches, I've got the LAME gapless working properly

There seems to be a slighty problem with gapless files, splitted with pcutmp3 - It cuts off 3960 samples (at least in my quick test).
TrNSZ
QUOTE(bladecgn @ Aug 3 2006, 14:11) *
I had been experimenting with various players / plugins and have to say yours is the best, most natural sounding!
TOS #8?
MoSPDude
I'll have a look into why pcutmp3 files aren't working gaplessly - 3960 is a big number!. I'll also add a preamp option for files without replaygain. I have made some more changes to the LAME tag reading - I've abandoned the LAME routines, and migrated to the already (partially) present madplay XING/LAME routines.

At the moment, I've been working on updating the Id3v2 tag editor to show all fields in a frame, and cleaning up the code.

I'll post when the next update is available.

(Actually, thinking about it, the old LAME routines take any gapless clipping value above 3000 as rubbish so maybe its only that - I'll get the next release up ASAP for you to test)
MoSPDude

Another update, download from the usual.

I've made some heavy changes to the ID3v2 editor, and need to make some finishing touches. I've also made the gapless buffer dynamic. odyssey, could you test the pcutmp3 files again please and post number of samples out.

Thanks in advance.
Big_Berny
Hi,
I just tried the the mad-plugin with MediaMonkey (winamp-compatible). But I have two problems:
First, the noise shaping adds really strange and loud noise/clicks. No need to ABX! wink.gif
Second, somehow all the mad-settings get messed up after hearing a song.

Anyone else with this problems? I returned to otachans mpg123 for the moment.

Big_Berny
MoSPDude
QUOTE(Big_Berny @ Aug 4 2006, 11:05) *

Hi,
I just tried the the mad-plugin with MediaMonkey (winamp-compatible). But I have two problems:
First, the noise shaping adds really strange and loud noise/clicks. No need to ABX! wink.gif
Second, somehow all the mad-settings get messed up after hearing a song.

Anyone else with this problems? I returned to otachans mpg123 for the moment.

Big_Berny


I've just installed MediaMonkey and tried it, and your right - all the settings are screwed, I think thats the main problem. I'll look into it for the next release ASAP.
MedO
QUOTE(Big_Berny @ Aug 4 2006, 12:05) *

Hi,
I just tried the the mad-plugin with MediaMonkey (winamp-compatible). But I have two problems:
First, the noise shaping adds really strange and loud noise/clicks. No need to ABX! wink.gif
Second, somehow all the mad-settings get messed up after hearing a song.

Anyone else with this problems? I returned to otachans mpg123 for the moment.

Big_Berny


These problems happen here, too, but only when a DSP plugin is enabled.
Big_Berny
Thanks!

By the way, I have no DSP plugin activated.

Big_Berny
hecatomber
After using this input plugin, I have some problems about the last.fm plugin.

All the tags are like "WM/MediaClassPrimaryID" .
Is this problem about the mad plugin or the last.fm plugin?

btw, i just heard of this plugin and loved it. nice work.
odyssey
QUOTE(MoSPDude @ Aug 4 2006, 11:11) *

I've also made the gapless buffer dynamic. odyssey, could you test the pcutmp3 files again please and post number of samples out.

I still get 3960 samples cut out crying.gif

Edit 3: It seems that the cut out is from the beginning of a track. I measured 3336 samples cut out from the first track of the two i'm testing gaplessy, which would be needed if i included the previous track in my test.

It looks funny with the 9 columns of ID3v2 tags, but if that's the way it work... blink.gif Do you have any information on why (/how?) recursive tags work - just out of curiosity dry.gif

Is it possible to put these recursive tags into Title Formatting? (Although I would need some Advanced formatting to replace the funky Helium chars mad.gif)

I also experienced a crash once I opened the "View file info"-dialog. I'll try to find out what caused that.

Edit: This way of tagging opens up a whole lot of possebilities... If you can use recursive tagging like that, you could put multiple artists under TPE1, and not just a comment field (Like HMM). If just any nice tagging app would do that...

Edit 2: How come "Advanced Title Formatting" don't support these ID3v2 fields??? Actually Winamp reads any field in both JTF and ML, it just needs the correct way of displaying fully tagged files.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.