MoSPDude
Jul 24 2006, 07:51
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 ***
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
Jul 24 2006, 08:08
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.
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
Jul 24 2006, 08:37
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
Jul 24 2006, 11:00
So, at first I should compile it? Thank you very much!
MoSPDude
Jul 24 2006, 11: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.
Is there media library support now?
adamjk
Jul 24 2006, 12:53
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!
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
Jul 24 2006, 14:15
Will try and track it down, initial tests point to a libid3tag problem.
MoSPDude
Jul 24 2006, 14: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
MoSPDude
Jul 24 2006, 15:00
Media library support will be in the next build hopefully.
I might also get round to setting up a holding website.
Craig
MoSPDude
Jul 24 2006, 15:52
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)
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.zipThe 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.
niktheblak
Jul 25 2006, 01:01
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
Jul 25 2006, 02:08
Wow, I LOVE the way you show the original tagfield-names. Can these be implemented in the Title Formatting pleeeeeaaase?

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
Jul 25 2006, 15:18
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.zipI've not included source updates in the above, I'm planning to move and reorganise it all.
odyssey
Jul 26 2006, 01:12
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

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
john33
Jul 26 2006, 01: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.
MoSPDude
Jul 26 2006, 02:11
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.

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
Jul 26 2006, 02:40
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.

(I'll be in the depths of Wales without any access to the Internet!!) Have a good trip.
MoSPDude
Jul 26 2006, 11:41
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
Jul 26 2006, 14:59
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
Jul 26 2006, 16:47
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?
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
Jul 27 2006, 01:21
In the mediamonkey-forum someone posted a gapless mad-version:
http://www.mediamonkey.com/forum/viewtopic.php?t=10051Maybe this feature can be ported?
Big_Berny
PS: I'm happy with otachan's often updated in_mpg123.
odyssey
Jul 27 2006, 04:31
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=10051Maybe 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
Jul 31 2006, 09:06
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
Jul 31 2006, 09:25
MoSPDude
Jul 31 2006, 16:13
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
Jul 31 2006, 16:35
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
Aug 1 2006, 15:39
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!
Great work MoSPDude!
Is this, then, the first player/plugin to support the LAME replaygain tag?
haregoo
Aug 2 2006, 04:39
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
Aug 2 2006, 04:56
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
Aug 2 2006, 14:35
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.
haregoo
Aug 2 2006, 15:18
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.

in_mad outputs 1055 sample longer or shorter wav at 44100hz.
I've tried with latest in_mad + NullSoft Disk Writer Plugin.
MoSPDude
Aug 2 2006, 17: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.
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
Aug 2 2006, 17:29
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.
bladecgn
Aug 3 2006, 12:11
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
Aug 3 2006, 12:15
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).
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
Aug 3 2006, 12:57
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
Aug 4 2006, 03:11
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
Aug 4 2006, 04: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!

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
Aug 4 2006, 04:28
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!

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.
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!

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
Aug 4 2006, 04:55
Thanks!
By the way, I have no DSP plugin activated.
Big_Berny
hecatomber
Aug 4 2006, 05:08
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
Aug 4 2006, 09:32
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

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...

Do you have any information on why (/how?) recursive tags work - just out of curiosity

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

)
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.