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
DrSiN
very clever my old buddy.
Teknojnky
I was wondering if it was possible to start including build/version info in the compiled DLL file so that it's much easier to see which version you have and thus report back any issues which might be version specific.

Normally when this info is included, windows will either show it on the explorer status bar or mouseover, and/or in the file properties, making it very easy to see at a glance.

I've been running the current version as of a couple days ago and have not had any crashes in Mediamonkey, but since I don't know what the current build is I have, it's difficult to relay any information.
MoSPDude
I'm preparing an update to be uploaded tomorrow.

Thanks to kairo for looking into the mad_killer problem smile.gif I've added a DLL version to help identify different builds at Teknojnky request.

Thanks to all for bug finding and problem reporting biggrin.gif
kairo
Streams without extensions like http://222.122.131.23:22000 or http://scfire-nyk0l-1.stream.aol.com:80/stream/1013 are causing a stack overflow in winamp2 with "detect unknown streams" disabled.

EDIT: Sorry, my conclusions were wrong...
MoSPDude
I've uploaded the update. There is a DLL version included, that can be found by looking at the file properties, or from in Winamp in the title of the About plug-in box. Its currently at 0.1.1.26 .

@gameplaya15143, what are the URLs for the streams your testing? in_mad only attempts to connect to those starting http, https or ftp.
Alex.
Hi. I downloaded mad cause of old versions doesn't support id3v2 tags.
BUT this version (0.15.1 beta) DOESN'T SUPPORT cyrillic symbols in 3v2!!
When i trying to save cyrillic to id3v2 after saving it looks like
.....-.....!! But if i save cyrillic to id3v1 mad saves it correctly.
Please fix this bug!! Cause I have great russian collection.
MoSPDude
International characters will always be a bit of a problem, what version of Winamp are you using? I'm planning, now Winamp supports Unicode, to redo the get_fileinfo and other DLL interfaces properly - but the plug-in as a whole won't become fully Unicode for a while as its a lot of work.

I'm also thinking about a rewrite from C to C++ code, and then try to access the Winamp global configuration classes again.

Cheers for comments and bug reports biggrin.gif
fragmer
Hello;
I love the new in_mad; I would like to use it more, but unfortunately it is not compatible with the Last.fm (Audioscrobbler) plugin. Actually, sometimes the scrobbling actually does occur, but both song title and artist name are "È9", "È:" or something similar. How hard is it to make in_mad Last.fm compatible?
MoSPDude
@fragmer, not too hard wink.gif I've uploaded a quick update to fix the last.fm gen/ml_audioscrobbler problem. The problem was down to audioscrobbler looking for "Artist", not "artist" etc. The DLL is now at version 0.1.1.36 .

I'm currently making changes to improve Unicode and international character support.

Cheers for all comments and help smile.gif
jarretth
oh my gosh thanks for fixing audioscrobbler I use it too! biggrin.gif
gameplaya15143
I'm downloading the newest version now.

Earlier today I was listening to so MP3s off a CDR (data), when the track starts, it plays for a split second, then has to buffer more before it can play properly. Would that have something to do with the 'faster decoding' thing you added in a long while back? I tried playing with the buffer size with no success to fix the gap. I also managed to crach winamp from in_mad (it got reported as being responsible by windows) while seeking in long files on the CD (ie. 60mins 112kbps cbr).

As for the streams that weren't working with in_mad, I just tried some from www.shoutcast.com/waradio

Other than that, it is working perfectly smile.gif

edit: The new version seems to think that my mp3's are read-only. The tag fields are 'grayed out' when the file is playing. If I access the tag editor while the song is not playing, everything is fine. I'm going back to the last version I had since I haven't had any problems with it.
MoSPDude
Whoops sad.gif , the read-only problem was due to me playing with the access rights when opening the file for playback. I've uploaded the fixed version just now, its DLL version is 0.1.1.37. biggrin.gif

@gameplaya15143, what kind of internet connection do you have? The plug-in only uses windows InternetOpenUrl to create the connection. Also, what options are enabled in the General tab of the configuration page.
As for the CD reading problem, on playing back tracks does your CD drive spin down after an initial burst read? I've had a lot of trouble with this - my solution was to extend the Output plug-in buffer to give enough time for the CD drive to spin up again and fetch the data ready for the plug-in to decode more. I also tried a utility to extend the spin down time of the drive at the cost of more whirring noise. The hanging when seeking on CD will likely be caused by Accurate seeking - again does your CD drive appear to be heavy seeking when you tell Winamp to seek? Accurate seeking works by 'header skipping' its way from the start of the file to the desired output position - which on long/large files on CD could be a problem.
gameplaya15143
I have everything enabled in the 'general' tab. I generally use only 300ms for my output buffer. I did compare how in_mad and in_mpg123 and in_mp3 handled input from my data CD. I'll have to try seeking without accurate seeing enabled. I rarely ever listen to mp3s directly off a CD, so increasing my output plugin buffer for those few times certainly isn't out of the question. I wouldn't worry about it too much unless you have some idea of how to compensate for super-slow access speeds. And yes my CDrom drive is working properly by not spinning at full speed the entire time wink.gif The 'skips' generally occur when reading the tags on other files when the winamp window scrolls.

As far as internet connection goes, I have tried it on both dialup and direct connection. Both with the same result. It would only decode the stream when I was running my own server on localhost. I haven't done any stream tests with the latest version yet.. so, I don't know, maybe it's already working better. I'll be sure to let you know how it goes.

Keep up the wonder work.. I already can't stand to go back to any other mp3 plugin (I did that a while back, and I ended up like this -> headbang.gif )
MoSPDude
With the playback from CD, it might help if I was to make it so it didn't require to read from the CD all the time, as reading into the buffer occurs synchronously so the plug-in stops sending data to the output plug-in. Maybe an option to set the percentage of buffer thats empty before it reads again, in the earlier versions it only used to read when the buffer had emptied completely, now it reads all the time - but a compromise say 75% buffer would make it read bigger chunks less of the time. Then again, if windows caches the whole file from the CD, the CD would still spin down as its not physically reading it all the time.

I'll make some tweaks to the internet open routines etc. and see if that helps the streaming issue.

The Unicode interfaces are coming along slowly. It detects what the winamp version is, and if 5.3 or over enables the Unicode interfaces. The Unicode interaction is only with Winamp, the plug-in is still ANSI - although rewriting all the tag routines as such will make it easier to move over to a Unicode plug-in.
Cybermutant
The CUE Player plugin (latest version here) doesn't work properly when MAD is the default MP3 decoder. I'm using Winamp 5.32, and its standard MP3 decoder has no problems with CUE Player. However, when I switch to MAD, I see two different behaviors:

- If "Enable accurate seeking" is off, Winamp cannot accurately seek to the beginning of the tracks in the CUE file. It is always off target by a few seconds, but the seek points are the same between consecutive plays; if one track starts playing from +2.5 secs, it does so everytime, while another track always starts at -1.3 secs, etc... I guess this is expected, since accurate seeking is disabled.

- If I turn on "Enable accurate seeking", playback is totally broken. All tracks start to play from the very beginning of the file, the handle of the Winamp time slider disappears, and the time display freezes at 00:00. Sometimes a track will start properly, but this happens once in maybe 30 tries.

Can you please look into this? If it turns out to be CUE Player's fault, I'll contact its author for a fix.

Thank you for all the work you put into this plugin. The APE tag support alone is enough reason for me to use MAD. Best regards...
MoSPDude
I've uploaded a new DLL version just to fix CUE player, DLL version 0.1.1.39. This still has NO WA5.3 Unicode support.

It was a welcome change to writing in Unicode stuff!! biggrin.gif Its coming along slowly, just over half done and working, I don't want to put it up until its functional. I've also prepared some changes to make the buffer filling level changable, and changes to paramters for internet routines but these will have to wait until Unicode stuff is ready.

Thanks, and please feel free to post questions, bugs and suggestions!
fragmer
Thanks for fixing the plugin with Last.fm a while back biggrin.gif. You should seriously consider adding a paypal/donation link here; you're putting so much work into in_mad!
Cybermutant
CUE Player problem fixed in 20 hours, you are fast biggrin.gif Thanks a lot.

By the way, if accurate seeking is enabled, does MAD scan the whole file from the beginning whenever it performs a seek operation? Jumping back and forth seems to take longer with accurate seeking, especially towards the end of large MP3 files.
MoSPDude
@Cybermutant, essentially yes, it header skips its way from the start of the file, counting samples, to 2 frames before the desired point, decodes 2 frames properly and then sample skips to the exact sample location. I've thought about adding a kind of seek table look up to the accurate seek so while playing if it knows that at a fixed location its at such a sample number it wouldn't have to seek from the beginning.

@fragmer, I just wanted an in_mad plug-in that supported ID3v2 tags and worked! biggrin.gif
gameplaya15143
QUOTE(MoSPDude @ Nov 15 2006, 08:51) *
Maybe an option to set the percentage of buffer thats empty before it reads again
Sounds like a good idea to me.

QUOTE
I'll make some tweaks to the internet open routines etc. and see if that helps the streaming issue.
It didn't like that I had IE set to 'work offline'. Streaming works fine now ...once I figured that out. I can't say I like the idea of going through IE though dry.gif
MoSPDude
I think its a case of we say Internet Explorer, MS say integral part of the operating system and API. I've just done a google search on it, and found documents relating the WinInet API to a global offline mode, that I didn't realise. I'll have a rethink about the connection API, or perhaps for now make it change the global offline state, which will have an effect on IE though dry.gif .

Thanks for all bug reports, comments and suggestions smile.gif
Cybermutant
QUOTE(MoSPDude @ Nov 25 2006, 21:58) *
I've thought about adding a kind of seek table look up to the accurate seek so while playing if it knows that at a fixed location its at such a sample number it wouldn't have to seek from the beginning.
A lookup table would be very nice. It can wait though, I know that your current priority is Unicode support smile.gif
Cybermutant
Using Winamp 5.32 with MAD DLL v0.1.1.39, when I open an m3u playlist which contains some files that are missing (in my case, they are in queue to be downloaded but their download haven't started yet), Winamp crashes when it reaches the first missing file while trying to read file tags for displaying them in the playlist. The crash details given by Windows are:

AppName: winamp.exe AppVer: 5.3.2.1003 ModName: in_mad.dll
ModVer: 0.1.1.39 Offset: 00040479

The offset is always 00040479. The same m3u file is loaded without problem after all files in it have been downloaded (actually, after all files have been created on disk, even if they have a size of zero).
MoSPDude
I've uploaded a fix for the problem of trying to read tags from a file thats not there! Whoops! The DLL version is now 0.1.1.42. I'm close to releasing the Unicode version now.

Thanks to everyone for the help! biggrin.gif
Cybermutant
Did a quick check and, yep, problem fixed. Thanks for the lightning fast update smile.gif
HandleX
Hi, your mp3 decoder just enchant me. It's great!

But there is a question: in source code (playback.c) a call to CreateFile has in dwFlagsAndAttributes FILE_FLAG_SEQUENTIAL_SCAN optimisation, it's good. Why this flag has not FILE_FLAG_NO_BUFFERING optimisation? I'm using winamp in very hard system performance environment such playing music with winamp and gaming CS at only 256 RAM -)) Call to ReadFile will read data in your codec buffer and will be cached by kernel 4096 bytes (page size) replacing gaming file cache... This is not good, IMHO, cached by kernel data from mp3 file will never been reused.

Can you correct this program behavior? I've dont have C compiler, rather I've done it by my own.
Sorry for my English, I'm Russian.
MoSPDude
I did have a look at the flags for CreateFile a bit ago. The problem with CreateFile using FILE_FLAG_NO_BUFFERING is that the application needs to meet certain requirements with regards to file access, which would mean making some changes to the way the file is read. The criteria are specified on the MSDN site. It might be possible by fixing the size of data read, and making it only read once a sector worth of data has been processed - I'll have a look into it, it might help with the CD reading problem because then windows definitely won't cache the data.

If you download and install Dev-C++ 5 Beta 9.2 with the MinGW package from the Bloodshed Software website, the plug-in should compile without problems using the Dev-C++ workspace .dev file.

Cheers,
Craig smile.gif
MedO
QUOTE(MoSPDude @ Nov 30 2006, 16:38) *

If you download and install Dev-C++ 5 Beta 9.2 with the MinGW package from the Bloodshed Software website, the plug-in should compile without problems using the Dev-C++ workspace .dev file.

Cheers,
Craig smile.gif


I didn't try the current Dev-C++ versions yet, because I switched to Code::Blocks a while ago. Don't know if you ever heard about it, but I think it's great so I recommend you try it out when you have a bit of time. Dev-C++ was quite unstable when I switched, so I'm probably biased by those old builds...

Use a nightly build when you try it, though. The stable release is very outdated.
MoSPDude
Well its here, DLL version 0.1.2.0 with a working Unicode implementation. biggrin.gif

The Unicode will only work with Winamp 5.3 or greater, and if it causes problems I've included an option to turn it off. This build also includes a buffer fill level option, and a few other minor changes. I've also moved over to Code::Blocks as a development IDE as it appears much more stable, thanks MedO!

The plug-in is still ANSI based so the tag editor still won't show all characters correctly, and at the moment the Media Library doesn't seem to set tags via the Unicode API either so there is no way to set Unicode tags directly yet.

I look forward to the bug reports and comments. Thanks to everyone in advance smile.gif
gameplaya15143
The new one doesn't work with winamp2. It doesn't even show up in the input plugins list. sad.gif
Mangix
QUOTE(gameplaya15143 @ Dec 10 2006, 19:16) *

The new one doesn't work with winamp2. It doesn't even show up in the input plugins list. sad.gif

he stated that it only works with Winamp 5.3 wink.gif
MoSPDude
I've just uploaded DLL version 0.1.2.1, with some changes to how Winamp is told what version the plug-in is. Hopefully, this will fix the compatibility with Winamp 2.

@gameplaya15143, What version of Winamp 2 are you using?

EDIT: There appears to be a slight problem with the above version, the plug-in doesn't appear to detect new winamp versions, and always disables Unicode on startup.

EDIT 2: I've uploaded DLL version 0.1.2.2, hopefully fixing the above. smile.gif
Teknojnky
I had to uncheck "enable unicode support" and restart to get it to start working again in mediamonkey (2.5.5.985 rc-3).

in_mad.dll 0.1.2.2

MoSPDude
QUOTE(Teknojnky @ Dec 11 2006, 19:08) *

I had to uncheck "enable unicode support" and restart to get it to start working again in mediamonkey (2.5.5.985 rc-3).

in_mad.dll 0.1.2.2


I wonder what version of "Winamp" MediaMonkey is reporting to the plug-in. The plug-in just simply checks if the quoted version reported by IPC_GETVERSION is less than 0x5030 and decides to automatically enable Unicode or not. I'll have a look into it smile.gif
JWolf
Is this a bug in MAD or is this a bug in Shoutcast?

Sometimes I listen to internet radio that uses Shoutcast. http://NovaStreamRadio.Org/pls/listen.m3u

The tags work fine after the track I tune into is finished playing. The track I tune into has a truncated tag being displayed in the playlist editor. The track being played is "Randy Travis - I'm Gonna Love You Forever" and all I see is "Randy Travis - I"

if the bug is with Shoutcast then feel free to ignore this message.
MoSPDude
It is a bug, I'll get it fixed in the next release. Its because the name has an apostrophe which is also the terminating character for the end of the title.

Cheers and thanks for telling me smile.gif
MoSPDude
I've uploaded a minor update. The DLL version is now 0.1.2.7 . This fixes the streaming name problem and a Unicode setting problem. Hopefully, I'll have improved seeking ready for the next update, and perhaps the WA5.3 global settings working too.
MedO
QUOTE(MoSPDude @ Jan 2 2007, 13:11) *

I've uploaded a minor update. The DLL version is now 0.1.2.7 . This fixes the streaming name problem and a Unicode setting problem. Hopefully, I'll have improved seeking ready for the next update, and perhaps the WA5.3 global settings working too.


Thanks Dude! wink.gif
AspiringSquire
Very nice work updating and enhancing in_mad for Winamp. MAD has been the only mp3 plugin that I have used since I discovered it on its seemingly abandoned homepage, and now I can continue to enjoy it with the added comforts that you have provided through your efforts. Thank you!

I was fortunate enough to find your version of MAD, and I want to give at least a little bit back. Unfortunately, this comes in the form of a bug report. It's nothing big, but when "Prevent ID3v2.3 to v2.4 conversion" is checked, some songs won't have their ID3v2 tag information displayed, neither in the playlist nor the Properties window. With the option unchecked, the info is displayed. I don't know if it applies specifically to files using the ID3v2.3 tag or not, since I don't know how to check the tag version.

There seems to be a problem with the Title Format naming scheme, too; I can't get it to change the appearance of songs in the playlist at all, whatever I try.

I also have a request, which I suppose may actually be another bug report. Whenever an mp3's Properties window is open, I can't scroll the playlist or select any of the displayed files (I use the Classic mode of Winamp). I use plugins (for other types of files) that don't have this limitation, and I'm hoping that you could make this small improvement--to allow manipulation of the playlist while the Properties are open.

Thanks again. :)
MoSPDude
Hey, thanks for posting your findings. smile.gif

The ID3v2.3 support is a bit experimental, and I only roughly tested it, so I'll have a proper look into it.

With the Title Formatting, Winamp uses Advanced or Basic TF. If your changing it within the plug-in and nothing is happening, chances are Winamp is using its Advanced TF - to change these settings you need to goto the Winamp preferences -> General preferences -> Titles and you'll find Advanced Title Formatting at the bottom.

The property window takes control as a pop-up dialog box, I'll have a look into making it not block the Playlist editor window.

Thanks again for posting your findings. My workload has increased for the next 3 weeks, but I'm doing bits of the plug-in as a hobby break.
AspiringSquire
QUOTE(MoSPDude @ Jan 12 2007, 06:00) *
With the Title Formatting, Winamp uses Advanced or Basic TF. If your changing it within the plug-in and nothing is happening, chances are Winamp is using its Advanced TF - to change these settings you need to goto the Winamp preferences -> General preferences -> Titles and you'll find Advanced Title Formatting at the bottom.

Disabling Winamp's Advanced Title Formatting fixed it; thanks.

Do you think you might expand the available parameters to encompass more of the options that are in Winamp's Advanced TF (though I don't think I would actually use all of them)? Right now, the main advantage of using MAD's formatting is the ability to include an ELSE with the IF. ...Well, no, I just saw the equivalent in Advanced TF.

Is there a specific advantage to using the MAD formatting editor? Does Winamp (for its TF) check the tags via MAD (and therefore use the tag priority order in MAD), or does it have an independent check? After witnessing the non-display of some info with the ID3v2.3 option (while still using Advanced TF), I believe the former to be the case.
MoSPDude
Winamp does use the in_mad plug-in to read the tags for its advanced Title Formatting and it uses the tag preference in the plug-in configuration for reading titles. The basic Title Formatting is there for compatiblity with older versions of Winamp 2.x. If your using a newer version of Winamp, its best to use the advanced formatting as it will make the titles match what other advanced TF compatible plug-ins show. Updating the basic TF to be a bit more advanced is on the to-do list.

Cheers and thanks for testing the plug-in smile.gif
AspiringSquire
I have discovered another small bug. An mp3 with an ID3v1 tag that has no track number will incorrectly display a 0 in the playlist (if track numbers are allocated in title formatting) if the comment has exactly 29 characters in it. I just recently read the specification for ID3v1.1 (and v1.0) tags on ID3.org, and it says that the byte preceding the track number should always be binary 0 (and thus comments are restricted to 28 characters). This means that if a comment contains 29 characters, there can't be a track number supported by the tag because it would then be using the ID3v1.0 standard, which allows comments up to 30 characters long.

I also have a few requests. Could you include an option (or make it standard) to update a file's appearance in the playlist when opening its properties window, so the file won't have to be modified or played in order to refresh it?

If something is typed or changed in the ID3v2 Basic mode, it is lost when switching to Advanced mode. This isn't the case if something is updated in Advanced mode then switching to Basic. Could you please have it keep track of the changed Basic data in Advanced mode?

And could you also cause the Advanced mode for ID3v2 tags to update the input box, etc. by using the arrow keys in the list of existing tags, rather than just when clicking on them with the mouse?

I assume that some (or all) of the things related to Advanced mode that I mentioned would apply to both ID3v2 and APE tags.
Domin
Is there any way to make the in_mad plugin able to play this stream:

http://serv1.mmradio.se:8000 <-- its an AAC+V2 encoded stream.

If it cant play it is there a way to make it default to the normal winamp playback, so i can still use aac streams without having to rename the 2 .dll files every time i have to use a specific one of them?

Hope this is possible and thanks for all your greate work on this plugin wink.gif

Regards Domin

Junon
QUOTE(Domin @ Jan 28 2007, 09:41) *
If it cant play it is there a way to make it default to the normal winamp playback, so i can still use aac streams without having to rename the 2 .dll files every time i have to use a specific one of them?


There never was any need to rename anything. You simply have to remove "MP3" from the file associations found in the "Nullsoft MPEG Audio Decoder's" configuration and enable the MAD plug-in. Both inputs are set to do their work this way, with MP3 audio being played back by MAD, while any extensions left in the Nullsoft decoder, including raw AAC, keep being its job to process.

To check whether everything worked out as intended, restart Winamp after changing the input settings as described above, then view the file info of an MP3 thingamabob. If the MAD properties window pops up, everything's fine.

Have a look at this screenie if anything shouldn't work out properly yet. One picture sometimes says more than a hundred words:

IPB Image
Domin
Hmm, i did not know that but even after i tryed the above setting it still wont play it, seems like the in_mad dont turn over the handeling to the in_mp3 plugin.

Thanks for the help, now i can at least have both dll running ;-)
MoSPDude
Hi Domin, can you try this for me,

In Winamp Preferences under General Preferences -> Playlist, under the Advanced Playback Setting where it states "Assume file extension of unknown files is to be" change this from "mp3" to "dummy", and then in Winamp in_mp3 Input Preferences, add "dummy" as a file association extension.

If this works, it is likely to be because the stream doesn't identify what type it is so no plug-in is claiming it for itself and trying to play it back.

Because of the length of time its taking for me to rebuild the plug-in, I'll release bug fixed version of the old code within the next week hopefully for everyone. Thanks for your bug reports biggrin.gif
Domin
Greate, this works cool.gif

Thanks for greate and lightning fast support ;-)
gameplaya15143
APEv2 tag basic editor: I think the date and track number fields are wrong. If I put in a date in the basic editor, it saves it under the 'date' tag instead of 'year' as it should be. Similar issue with the track number.
(at least I think thats how it was, I just know 2 of the ape tag fields in the basic editor were incorrect)

Still no icecast2 title support?

I'm glad to see you are still making improvements MoSPDude smile.gif
kyousuke
Can anyone tell me which or where is the link for the best and latest MAD MP3 winamp plugin? I find there is a lot of fix in the post, but I never know which 1 should I use. Thank you.
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.