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

in_mad v2 Winamp MAD MP3 input plugin

Hi, this is a long awaited (although not fully finished) conversion and improvement of my previous updated in_mad plug-in.

The notable new features/fixes (that I can remember from notes) include,
* Re-written/ported to C++ to 'enable' better WA5 compatibility
* Fully Unicode GUI
* Icecast mp3 streaming fixed
* WA5 Global Configuration supported
* Improved basic and advanced editing
* Slightly improved ID3v2.3 support
* 32 bit output uses full internal 28 bit representation
* Advanced-style Basic formatting for WA2
* Non-Unicode backward compatible for WA2 (not fully tested)
* Multi-lingual dialogs (once someone translates!)
* Re-designed APE tag support including Unicode

The playback and EQ backend is mostly the same except ported through to C++ and into a class structure.
However some things are incomplete,
* New Binary editor disabled
* EQU2 tag editing and writing disabled

The latest DLL can be downloaded from http://www.zen23652.zen.co.uk/in_mad_2b.zip.
Source code is now separate from http://www.zen23652.zen.co.uk/in_mad_2b_src.zip

in_mad v2 Winamp MAD MP3 input plugin

Reply #1
This version is great, most importantly special characters are now displayed properly. Thank you.

in_mad v2 Winamp MAD MP3 input plugin

Reply #2
As a note, I've only tested this on Windows XP SP2. With the new Unicode interface, I don't know how it will behave on Windows 98. I'd recommend deleting the previous plug-in settings from the registry (after backing them up in case you want to use the previous version) from HKCU\Software\Winamp\MAD Plug-in. There are also now 2 files in the package, both are needed. The in_mad.ini file is actually a file of strings for the dialogs saved in UTF-8 format.

If you used the previous plug-in and don't delete the settings, you'll need to change the Basic title formatting setting back to the new default by deleting whats there in the settings, or copying
Code: [Select]
[%artist% - ]$if2(%title%,$filepart(%filename%))
into it.

Other than that, I've been sat on this for a while now - just having no time to work on it really. I've been using the Debug version for some time and I hope it will have mostly no problems.

in_mad v2 Winamp MAD MP3 input plugin

Reply #3
Great work, as usual : ) !

in_mad v2 Winamp MAD MP3 input plugin

Reply #4
If you used the previous plug-in and don't delete the settings, you'll need to change the Basic title formatting setting back to the new default by deleting whats there in the settings, or copying
Code: [Select]
[%artist% - ]$if2(%title%,$filepart(%filename%))
into it.

Other than that, I've been sat on this for a while now - just having no time to work on it really. I've been using the Debug version for some time and I hope it will have mostly no problems.


Hi Mo,

first off, thanx a lot for maintaining the plugin ...


Now, I seem to struggle with your new title formatting.

My purpose is to check whether a given tag field is present and print it with additional characters for enhanced formatting and better readability.

With your previous release, I used this syntax:

Code: [Select]
%?1<%1 - >%?0<%0. >%?2<%2|%8>%?3< - %3>%?4< - %4>


resulting in playlist entries like this:

    01. Deep Purple - 01/10. Money Talks - Rapture Of The Deep - 2005
    02. Yello - 11/14. Unreal - The Eye - 2003[/li]
[/i]

where the first numbers are representing their playlist position

...

trying to translate it into the new syntax, I ended up with using $if(A,B,C):

Code: [Select]
$if(%artist%,%artist% - ,)$if(%track%,%track%. ,)$if2(%title%,$filepart(%filename%))$if(%album%, - %album%,)$if(%year%, - %year%,)



for easier trouble shooting, we could just focus on the first entry:

Code: [Select]
$if(%artist%,%artist% - ,)


I expect this to check for a valid artist tag and only if one is found, it prints the artist tag, followed by " - ".

If no tag is found, it shouldn't print anything at all, but unfortunately I get something like this:
    01. Deep PurpleDeep Purple - 01/1001/10. Money TalksRapture Of The Deep - Rapture Of The Deep2005 - 2005
    02. YelloYello - 11/1411/14. UnrealThe Eye - The Eye2003 - 2003[/li]
[/i]

so effectively all queried and existing tags get printed twice

Would you be so kind and give me a pointer how to solve this or what I'm misunderstanding ?

TIA,
Maggi

in_mad v2 Winamp MAD MP3 input plugin

Reply #5
OK, that one bug already!    I'm uploading a fixed version now.
May I recommend using,
Code: [Select]
[%artist% - ][%track%. ]$if2(%title%,$filepart(%filename%))[ - %album%][ - %year%]

as its a shorter syntax.

Thanks for spotting that! I might get round to finishing other parts soon.

in_mad v2 Winamp MAD MP3 input plugin

Reply #6
I tried to run Winamp 5.35 under Win98. UTF characters found in the current codepage are displayed correctly, others are replaced with question marks. File Info box is nonfunctional. Preferences box behaves as if the lang pack in_mad.ini would not be there, Prefs dialog is also nonfunctional.

I have not set the Winamp installation directory anywhere, just copied all the files. For some reason winamp can't find whatsnew.txt too. UniCows v1.1.3790.0 is present.

I think compatibility is important with Winamp. If you take that away there is little point using winamp.

in_mad v2 Winamp MAD MP3 input plugin

Reply #7
True, I was hoping Windows 98 wouldn't have a problem with the Unicode if Unicows was there. When I get chance I'll fire up a virtual machine to have a look. Thanks for testing it, I've not had chance too on other systems.

As another note, as I changed to C++, the development environment I moved to is now Microsoft Visual Studio 2005 C++ Express Edition with the Platform SDK, if anyone wants to have a look in the mean time and feedback.

in_mad v2 Winamp MAD MP3 input plugin

Reply #8
I just checked to see if Unicows was linked with the DLL, and it wasn't. I've rebuilt it and uploaded it, so maybe now the Windows 98 problem is solved - I've still not had time to test. The current DLL version number is 0.2.0.2.

in_mad v2 Winamp MAD MP3 input plugin

Reply #9
OK, that one bug already!    I'm uploading a fixed version now.
May I recommend using,
Code: [Select]
[%artist% - ][%track%. ]$if2(%title%,$filepart(%filename%))[ - %album%][ - %year%]

as its a shorter syntax.

Thanks for spotting that! I might get round to finishing other parts soon.


Thanx a lot, Mo !

I wasn't aware, that I could add random characters into those angled brackets ...

Kudos to you and keep up the good work !
Maggi

in_mad v2 Winamp MAD MP3 input plugin

Reply #10
Winamp 5.51 on Windows XP.

The new version of this plugin never uses ID3v2 tags for title formatting, it does not matter whether you're using Advanced or Basic. The tags are displayed fine in the info dialog however. It does not make any difference which order the tags are listed

I've created a few test files (15KiB) so this can either be confirmed or I can be told where I'm going wrong. In these files I've set the artist, album, and track title fields to the name of the tag format used; in addition the track number on ID3v2 tags is padded with a 0 which the ID3v1 tags won't have. There are five files in the RAR:
No Tag  — Control, Winamp should display the filename, and does.
ID3v1 Only — Winamp should use the ID3v1 tag, and does.
ID3v1 & ID3v2 — Winamp should (under the plugin defaults) use the ID3v2 tag, but the ID3v1 tag is used instead.
ID3v2.3 Only — Winamp should use the tag, but instead displays the filename.
ID3v2.4 Only — In case the problem was in the ID3v2.3 support. Winamp should use the tag, but instead displays the filename.

It's important to not that under ATF mode Winamp will use the media library info in preference to the plugin, which is why the problem may not have been noticed yet, and why I created these tests to remove the media library from the equation.

I've not found any bugs elsewhere yet, keep up the good (and very much appreciated) work.

Edit: More bugs.
The input buffer field accepts 5 characters, but only seems to save the first four.

Also, would it be possible to unlock the file once it's fully buffered (I usually have a buffer large enough for this to always happen straight away) as I'm often cleaning tags on a new batch of MP3s while listening to them and it's a pain having to stop Winamp every time I apply changes.

in_mad v2 Winamp MAD MP3 input plugin

Reply #11
I've uploaded a fix for the tag reading problem. It was to do with the tag order preferences, under my setup it wasn't showing! I'll fix the buffer dialog later and it should be possible to close the input once the file has been buffered.

Edit: I've also had chance to test Windows 98 compatibility with this last upload, and in my virtual machine it now works fine.

in_mad v2 Winamp MAD MP3 input plugin

Reply #12
Would there be a way to fix it so when streaming music and the stream fails winamp wont hang ?

Ohh and keep up the good work, this is a great plugin 

in_mad v2 Winamp MAD MP3 input plugin

Reply #13
Hi Domin, in what way does it crash when the stream fails - winamp completely stops responding? I've been testing it by playing back then pulling the network cable out and it goes to the next track silently leaving a message in the File Info box as to why it failed.

I'm slowing messing with it. Cheers for feedback on problems and improvements. I've implemented the file unlock once its been read too and improved the tag read opening/closing files per query, that will be in the next release.

in_mad v2 Winamp MAD MP3 input plugin

Reply #14
turkish character I,İ,Ş,Ğ  ID3V2 not display plase !! thankyou...

in_mad v2 Winamp MAD MP3 input plugin

Reply #15
I've uploaded another update, this adds support for Winamp new Unified file information box. I've also been messing with other bits and pieces - files are now unlocked once fully buffered and maybe streaming will work better.

Has anyone tried the new format Advanced editors? you click on the field you want to edit and type directly into it. I'm also interested in if the new Unified info box will work properly.

Cheers for all feedback. The version now is 0.2.0.10 .

@kerimcem, can you check that the titles are saved in UTF-16 or UTF-8 format and make sure your using a Unicode compatible winamp.

in_mad v2 Winamp MAD MP3 input plugin

Reply #16
The latest in_mad now fails to load under Win98. I tried to use WA 2.95 and WA 5.35.

in_mad v2 Winamp MAD MP3 input plugin

Reply #17
Under my virtual machine on WA 5.35 it works well. I've got Windows 98SE with the UNOFFICIAL Windows98 Second Edition Service Pack 2.1a. Perhaps the question is what processor is it running on?

EDIT: I can't see any processor specific options under Visual C++ 2005 Express Edition. I'm probably missing them - i'll keep looking.

in_mad v2 Winamp MAD MP3 input plugin

Reply #18
EDIT: I can't see any processor specific options under Visual C++ 2005 Express Edition. I'm probably missing them - i'll keep looking.


Select the project file (i.e. not a source file) in the tree view, then menu : " project - properties "

In the new window, unfold "Configuration properties, C++ , code generation".

The option related to processor is  "Enable enhanced Instruction set"....  Errm...

That's not the option... looks like they removed it.. indeed.


in_mad v2 Winamp MAD MP3 input plugin

Reply #20
Where can I find out exactly what this plugin is supposed to do?  I find lists of added features, but is there anywhere that summarizes what it is for, for those of us who haven't been following its development?

in_mad v2 Winamp MAD MP3 input plugin

Reply #21
This plug-in is an alternative mp3 decoder plug-in for Winamp, using libmad and libid3tag.

It started off as an improvement of the original in_mad project code (found here) which hadn't been touched since 2001, and lacked some, now basic, functions. The improved code, plug-in and it's details can be found in the thread titled
Updated in_mad Winamp MAD MP3 input plugin. It was more an exercise for me to practise GUI programming, and learn a mp3 decoder - but I added ID3v2 support, APEv2 support, a more advanced tag editor etc. but struggled to get Unicode working.

This new plug-in, is pretty much "new" in terms of the same basic GUI but a re-written C++ backend, giving more chance to support Unicode and making it easily expandable. However, as the latest Winamp is starting to support APEv2 tags I am starting to wonder about its usefulness other than for legacy Winamp versions.

in_mad v2 Winamp MAD MP3 input plugin

Reply #22
Quote
Where can I find out exactly what this plugin is supposed to do? I find lists of added features, but is there anywhere that summarizes what it is for, for those of us who haven't been following its development?


In much older versions of Winamp (before 2.7), the built-in MP3 decoder was not standards-compliant.  It cut quite a few corners to be able to run on low-end systems that were the norm in 1997-1998 when Winamp was first being developed.  Alternative plugins based on MAD and MPG123 become widely used due to numerous decoding bugs in Winamp.  From 2.7 (November 2000), Winamp uses an MP3 decoder created based on Fraunhofer's source code.  The alternative plugins lived on because they implemented features not present in Winamp's implementations, such as gapless playback and replay gain.
Since these features are important to me, I started to implement them when I took over maintenance of the product.

However, as the latest Winamp is starting to support APEv2 tags I am starting to wonder about its usefulness other than for legacy Winamp versions.


Sorry  I'm not purposefully trying to eliminate its usefulness

in_mad v2 Winamp MAD MP3 input plugin

Reply #23
Its nice for the latest Winamp versions to have these features for the people who might not necessarily know what they are or how to enable them, but their encoders provide it and the music is tagged with the information. It all aims to make Winamp sound and function better in the long run.

A new update has been uploaded, mainly GUI bug-fixes for the moment. The version is 0.2.0.12.

@j7n, did you manage to get it working under Win98 on your machine? I'm interested in why its having problems. I've tweaked a few settings in this build but I don't think there is much else I can do. I might dig out the old 400MHz computer from the garage with Win98 on it to test on the real thing.

in_mad v2 Winamp MAD MP3 input plugin

Reply #24
The alternative plugins lived on because they implemented features not present in Winamp's implementations, such as gapless playback and replay gain.
Since these features are important to me, I started to implement them when I took over maintenance of the product.


By the way: can I disable dithering in standard in_mp3 plugin? 'Use dither' checkbox does nothing with mp3.