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
My bad with the MediaMonkey / DSP problem, I'd updated all the other code for the new buffer except the DSP processing section! Sorry, I'll put it up ASAP, just going to look into the pcutmp3 problem more.

EDIT: I've kind of "patched" the pcutmp3 problem, but I'm not happy with it, if anyone knows more about the libmad decoding delays and why,

LAME mp3s have 3 * 576 + 529 samples off the start when the tag only specifies 576 (by default in LAME encoder.h) from the beginning.
pmp3cut mp3s have (tag value) + 1151 + 529 samples off the start where (tag value) is specified.

Thanks in advanced
MoSPDude
Ok, I've uploaded an update to the usual.

Please if anyone has any extra information regarding the LAME gapless behaviour, I'd appreciate it.

Thanks
Big_Berny
Well, I don't know the reason but 1151 is 576*2-1.

So:
Lame: 3*576+529
pmp3cut: tagvalue+2*576-1+529

It would be interesting to know what happens when you change the value in lame... Because maybe the "lame-formula" is tagvalue+2*576+529. Then we have only one sample left! wink.gif

Just some stupid ideas of a mathematician withoud any mp3-delay-knowledge. smile.gif
Big_Berny
MoSPDude
QUOTE(Big_Berny @ Aug 4 2006, 19:14) *

Well, I don't know the reason but 1151 is 576*2-1.

So:
Lame: 3*576+529
pmp3cut: tagvalue+2*576-1+529

It would be interesting to know what happens when you change the value in lame... Because maybe the "lame-formula" is tagvalue+2*576+529. Then we have only one sample left! wink.gif

Just some stupid ideas of a mathematician withoud any mp3-delay-knowledge. smile.gif
Big_Berny


You know, I might just go for that.....
I think the 529 is purely a libmad delay... as you said, just that 1 sample!

I'll just do another build, and upload another copy with that for ppl to test. I'll post again once its up.
Big_Berny, have you tested MediaMonkey with the build thats up at the moment?
Big_Berny
Maybe a Lame developer can give more informations?

And yes, the MAD-plugin works with MediaMonkey now, thanks! biggrin.gif

Big_Berny
MoSPDude

I've put up the version, ignoring the 1 sample, and it sounds ok with pcutmp3 files - thanks Big_Berny for that fresh view, think I'd been looking at it for too long!! If odyssey could confirm its ok, that'd be great!

I'm going to get back finishing the ID3v2 tag editor now, then perhaps begin APEv2 tags.

Any other bugs etc, feel free to post and help!

Thanks biggrin.gif
odyssey
QUOTE(MoSPDude @ Aug 4 2006, 20:32) *

I've put up the version, ignoring the 1 sample, and it sounds ok with pcutmp3 files - thanks Big_Berny for that fresh view, think I'd been looking at it for too long!! If odyssey could confirm its ok, that'd be great!

It works great now biggrin.gif (Please disregard the PM i sent you, I appearently did not update to the latest release)
MoSPDude
Another update has been uploaded, I think I've finished the look and basic behaviour of the ID3v2 tag editor. Opinions wanted! tongue.gif

I'll look into recursive tags, APEv2 tags and other suggestions now.

Thanks to all for your comments

EDIT: I've just had to re-upload, I'd left debug messages in still!

EDIT 2: Another minor update, fixed bug reading in ID3v1 to v2 tags in new editor
MoSPDude
Another update uploaded, this time for odyssey to test tongue.gif

In Winamp advanced title formatting, you can now read Helium, any TXXX key/value and ID3v2 text frames! It also scans recursively through the tag for multiple frames.

Just add for example, %#Helium Featured Artist% or %COMM% to the winamp preferences.
MedO
Wow, great work. Just another question:
What is the behaviour when LAME rg-Tags and other rg-tags are present together? Which one will be preferred?
MoSPDude
QUOTE(MedO @ Aug 5 2006, 11:08) *

Wow, great work. Just another question:
What is the behaviour when LAME rg-Tags and other rg-tags are present together? Which one will be preferred?


The order of preference is foobar TXXX tags, the RVA2 tag, then the LAME tag.
MoSPDude

DON'T WRITE UPDATED ID3v2 TAGS!!

There appears to be a MAJOR bug that libid3tag written id3v2.4 tags, can't be read by anything else!!

I'll fix it ASAP. crying.gif
odyssey
QUOTE(MoSPDude @ Aug 5 2006, 11:47) *

In Winamp advanced title formatting, you can now read Helium, any TXXX key/value and ID3v2 text frames! It also scans recursively through the tag for multiple frames.

Just add for example, %#Helium Featured Artist% or %COMM% to the winamp preferences.

Doesn't seem to work for me. Also I have not been able to find ANY information about this anywhere! I even tried the latest Beta 5.25
MoSPDude
QUOTE(odyssey @ Aug 5 2006, 14:13) *

QUOTE(MoSPDude @ Aug 5 2006, 11:47) *

In Winamp advanced title formatting, you can now read Helium, any TXXX key/value and ID3v2 text frames! It also scans recursively through the tag for multiple frames.

Just add for example, %#Helium Featured Artist% or %COMM% to the winamp preferences.

Doesn't seem to work for me. Also I have not been able to find ANY information about this anywhere! I even tried the latest Beta 5.25


First, make sure you download the latest release, I've been putting up smaller minor releases.

You need to have Advanced Title Formatting enabled, the feature is a bit of hack. I'm using Winamp 5.24.
If you goto Winamp Preferences, under General Preferences select Titles. Then ensure, Use the advanced title formatting is checked on, and the format string I'm using is,

[%artist%$if2( %#Helium Featured Artist%,) - ]$if2(%title%,$filepart(%filename%))

and it seems to work on all the files I put the tags on.

Winamp passes all the tags contained within the %..% to in_mad, then in_mad finds the tag (artist, title, #Helium Featured Artist etc.) and reports if its there or not. If you can read C, look at "in_mad.c" and "tags.c" - for an idea of how to work it.

I'll add it eventually to the basic formatting.

I'm having a big problem with libid3tag writing tags that nothing else understands, so please bear with me.

Thanks for all help
MoSPDude

The problem does appear to be a long libid3tag problem, and the common solution is to patch libid3tag so it writes ID3v2.3 tags instead of v2.4.

For now, I'll follow the same solution.

An update will be available shortly.
odyssey
Edit: I REALLY need to learn to read before posting tongue.gif
MoSPDude

Does anyone use iTunes?? Can someone please see if iTunes reads the tags written by in_mad correctly?

The patch that audacity applied to write id3v2.3 tags, stops libid3tag reading the tags in. I have no idea why...
bubka
anyway to fix the visualization so that it's not all maxed out? I have both RG (radio) and clipping enabled. Also have id3v1 show by default. Thanks! i think the 24bit output adds quite a bit extra... keep up the work!
MoSPDude
I'm having a fair bit of trouble regarding ID3v2.3 and v2.4 tags, it seems like a lottery if they get read correctly by Winamp, Helium or a few others. Disabling CRC sometimes works, and it appears fields are getting scrambled.

I'll upload a new version once I've solved it.
MoSPDude
Eureka!! libid3tag breaks the rules. I'll fix it up, and get a new release up - I've got to undo all the work on adding id3v2.3 tags! Unless you want an option to write either id3v2.3 or id3v2.4 tags??
MoSPDude
I've finally uploaded another update. ID3v2.4 tags are now written properly, on all files I tested - and can be read properly by other taggers too.

@bubka, what do you mean by visualisation maxed out? Please can I have details of what visualisation etc. I think I will add a tag select box - probably once I've looked into APE tags. I'm also thinking of adding a preamp option for mp3s without replaygain info as suggested by bladecgn.

@hecatomber, I don't know about last.fm but I'll look into it eventually.
MoSPDude

Yet another update, APEv2 tags are now read. If mp3gain undo information is detected, then replaygain is disabled. The preference for replaygain data is APE tag, id3 tag then the lame tag. APE tag writing is not yet supported.

Download from the usual http://www.zen23652.zen.co.uk/in_mad.zip
MedO
QUOTE(MoSPDude @ Aug 6 2006, 16:00) *

If mp3gain undo information is detected, then replaygain is disabled.


This is not necessary IMO, because mp3gain adjusts the replaygain information in the APE tags when it changes a file. So if the RG tags are present before mp3gain is run, they are adjusted, and if they were created after mp3gain changed the files they are correct as well. So as long as you make sure only APE-tags are read when mp3gain undo information is present, everything should work fine.

Since APE-tags are the preferred RG-source anyway you don't have to worry at all. If mp3gain doesn't adjust the RG info because tag writing is disabled, then there will be no undo info in the tags either.

Hope that made some kind of sense. biggrin.gif
MoSPDude
Ah right, I'll make the necessary changes. I think the config box is in need of an overhaul, then I can add tag preference options etc.

Anyone found any bugs in the APE tag reading, or ID3v2 tag read/writing? The latter has been giving me some grief.

Thanks,
Craig smile.gif
odyssey
QUOTE(MoSPDude @ Aug 5 2006, 21:41) *

it seems like a lottery if they get read correctly by Winamp, Helium or a few others.

I suspect something in Winamp is correcting it... Maybe Nullsoft in_mp3? I tried playing a file i've updated, which was not recognized the first time, but afterwards I had no problems.

Btw, is this still an error or did you correct it by writing only ID3v2.3 tags ?
MedO
QUOTE(odyssey @ Aug 7 2006, 11:02) *

Btw, is this still an error or did you correct it by writing only ID3v2.3 tags ?


QUOTE(MoSPDude @ Aug 6 2006, 02:03)

I've finally uploaded another update. ID3v2.4 tags are now written properly, on all files I tested - and can be read properly by other taggers too.


It seems that's fixed.
MoSPDude

The tags that are written are ID3v2.4 , there is still a bug in libid3tag when CRC is written in that no other taggers will accept it, so CRC is disabled.

I've made some extensive changes to the configuration box, implemented a gap skip option (similar behaviour to http://www.mediamonkey.com/forum/viewtopic.php?t=10051) for those files without LAME tag, added a tag preference order, and am working on writing APEv2 tags.

I won't do a release until APEv2 tag writing is at least working properly.

I think the plugin is almost complete, I'd like to hear any more feature requests etc.

Thanks for all support biggrin.gif
gameplaya15143
remember that crashing problem? I haven't got the latest version, but it was never mentioned that the crashing thing was fixed...

It seems to crash if there is a sync error at the very beginning of an MP3, in_mad 1.14 plays it just fine.

I'll get right on those feature requests as soon as I test out the latest version wink.gif

But one for starters:
Option to 'display live average bitrate' to display the bitrate like in_mpg123 does for vbr files.
Maybe some more info about the MP3 that is playing, like if it has gapless tags and such. (i havent seen the latest version yet, so if that's already there, awsome!)
MoSPDude

Ah right, do you have a test file that can reproduce the problem by any chance? If 1.14 plays it fine, it'll be related to the new tag features - probably the XING/LAME reader. To help me check that, can you please try it with madplay 0.15.2b. I doubt its to do with libid3tag - or rather I hope not!

I'll get a release up later today with APEv2 tag writing. At the moment, it shows what tags are present, but no more information on the LAME tag. The live average bitrate option, I think, is already there, but you need to disable "show average bitrate" to show the bitrate live as its decoded.
odyssey
QUOTE(MoSPDude @ Aug 8 2006, 01:45) *

I think the plugin is almost complete, I'd like to hear any more feature requests etc.

I think i have a small problem with the Advanced Title Formatting, it seems that I cannot use %artist% and %title% tags for mp3 files anymore. However, the TPE1 and TIT2 tags work fine, so I could just use these and may be a suitable option if it's possible to use $if2($if2(A,B),B)... ?
MoSPDude
Ok, I've done some more bug fixing. A new release is out. I hope I've fixed the advanced title formatting problem, and I've made some changes to the XING/LAME reading that was causing some files to falsely detect a LAME tag and screwing up.

Please can you test the 'gap removal' feature, and the APEv2 tag writing, and post your experiences.

Please update ASAP to this new version.

Thanks, smile.gif

EDIT: I left debug messages in again, please re-download if neccessary.
odyssey
QUOTE(MoSPDude @ Aug 8 2006, 19:00) *

I hope I've fixed the advanced title formatting problem

Seems to work for me biggrin.gif i'm only left with the dreaded | character which Helium leaves in the field.... Seems that ATF don't have a replace function crying.gif

I appreciate you work really! It's cool finally to make efficient use of the ID3v2 field-set, and a great decoder too tongue.gif
bladecgn
Hi Craig... I installed MiniLyrics yesterday (cool program) and included lyrics tags in some mp3s. On some of those Winamp crashes now. No crash if I use in_mp3.

If you want me to send you a sample file, please let me know.
MoSPDude
QUOTE(bladecgn @ Aug 9 2006, 08:17) *

Hi Craig... I installed MiniLyrics yesterday (cool program) and included lyrics tags in some mp3s. On some of those Winamp crashes now. No crash if I use in_mp3.

If you want me to send you a sample file, please let me know.


If you could provide a sample that'd be a great help! I'm now just cleaning up areas I'd left messy code.
MoSPDude

I've uploaded a version that should work with long ID3v2 fields, it'll truncate them in the editor viewer though. This should fix the lyrics problem. I'm cleaning up some areas still.

Thanks for help smile.gif
MoSPDude

Ok, after another look, I've fixed a problem with long APEv2 fields, again truncating them, NOW the lyrics problem should be fixed. An update will be available later, special thanks to bladecgn for helping me on that one.

Any idea on what kind of extra information can be included in the statisitcs info box for currently playing file?

Thanks to all smile.gif
MedO
QUOTE(MoSPDude @ Aug 11 2006, 08:32) *

Ok, after another look, I've fixed a problem with long APEv2 fields, again truncating them, NOW the lyrics problem should be fixed. An update will be available later, special thanks to bladecgn for helping me on that one.

Any idea on what kind of extra information can be included in the statisitcs info box for currently playing file?

Thanks to all smile.gif


Applied gain would be nice.
gameplaya15143
QUOTE(MoSPDude @ Aug 11 2006, 02:32) *
Any idea on what kind of extra information can be included in the statisitcs info box for currently playing file?

Total MS frames, IS frames, stereo frames, mono frames.

Indicator that gapless playback is possible on that particular file, and maybe some info like padding etc.


...I'll get around to downloading a new version one of these days dry.gif
MoSPDude
Slight delay on the update, I don't want to leave half-finished code in.

@MedO, The applied gain level is shown on the Stats page in the Output box.

I'm adding a LAME tag info box (didn't feel the need for a page as it shouldn't really be edited), and will move some of the stats boxes to show the pie chart and an actual frame detail count at gameplaya15143 request.

My time on this project is becoming a bit tighter with work. gameplaya15143, does the last update (download from usual place) still crash on some of your files? could you PM me if it does. Thank you very much for help and support.
MoSPDude

Another update has been uploaded, download from the main usual link http://www.zen23652.zen.co.uk/in_mad.zip .

The "More" button on the stats page is mainly a placeholder at the moment. I'm going to work on adding more detail to it. As mention before, time is becoming tighter but I'm still working on it - just a bit more slowly.

Thanks again to all those who are using it and bug finding smile.gif
MedO
QUOTE(MoSPDude @ Aug 11 2006, 23:06) *

@MedO, The applied gain level is shown on the Stats page in the Output box.


Ah, sorry, there was a bit of confusion on my side, because of a small problem (bug?)
If I set the Replaygain option to "Audiophile" or "Radio", everything behaves as I would expect. However, there is also the option "Standard" I can't make anything of. If I enable it without "clipping prevention", no gain seems to be applied. If "clipping prevention" is on, there is a gain on some files, but I don't know where the value comes from. unsure.gif

Also, something is amiss with the save function in the file info box. Using it (from the Id3v1-tab, not sure with other tabs) causes random crashes. Also, when I add a field to the Id3v2-tag, hit "save" and then click on the id3v1-tab, the id3v2-tab is still shown, the only thing that changes is a blinking cursor where the Artist textbox in the id3v1-tab is. Well, just try it out, maybe you can see for yourself.
gameplaya15143
MoSPDude wub.gif

I just downloaded the latest.. Absolutely amazing! and it doesn't crash anymore, reports the sync error and plays just fine.

I have 3 fun ideas:

1. Option to display live average bitrate (it can display the current frame size, but it would be nice to have it average those and display the average as say 117, 83, 175, etc. like how in_mpg123 displays the bitrate for vbr files)

2. Just a small bit of info on the main page "Gapless:" with a checkbox to indicate if gapless playback is possible with the file. (or is that implied when it says "with, LAME tags"?)

3. The ID3v2 tag editor is great, but for those of us that don't know what those tags are, how about somehow including the 'common' names for the 'artist' 'title' etc.? (same for the ape tags)

Just my thoughts smile.gif

Keep up the great work, and I'll try to crash it for you laugh.gif

edit: what about VBRI (fhg vbr header)?

edit2: how about a menu for common ape tags, like the id3v2 editor has?
bladecgn
First off, thank you MoSPDude for correcting the lyrics bug. Everything's working fine now.

Quote from the replaygain website:
----
"Radio" Replay Gain adjustment

This will make all the tracks sound equally loud (as they do on the radio, hence the name!). If the ReplayGain is calculated on a track-by-track basis (i.e. an individual ReplayGain calculation is carried out for each track), this will be the result. This is something that ReplayGain does very well. Take a listen.
"Audiophile" Replay Gain adjustment

The problem with the "Radio" setting is that tracks which should be quiet will be brought up to the level of all the rest. For casual listening, or in a noisy background, this can be a good thing. For serious listening, it would be a nuisance. You don't want a solo flute track blasting at the same loudness as Iron Maiden!

To solve this problem, the "Audiophile"
setting represents the ideal listening gain for each track. ReplayGain can have a good guess at this too, by reading the entire CD, and calculating a single gain adjustment for the whole disc. This works because quiet tracks then stay quiter than the rest, since the gain won't be changed for each track. It still solves the basic problem (annoying, unwanted level differences between discs) because quiet or loud discs are still adjusted overall - so the pop CD that's 20 dB louder than the classical CD will be brought into line.
----

I think the designations "Radio" and "audiophile" are misleading, as you could think quality is affected by the setting but only volume level is. I'd rather be calling it "track gain" and "album gain".
MoSPDude
Yeah, the thought had crossed my mind to call it "Radio / Track" and "Audiophile / Album" as the vorbis decoder does. The standard setting I thought of calling "0 dB" - it disables the gain only. Basically, the gain you see when set to Standard comes from the clipping prevention ( 20 log( 1 / peak_value ) ) where peak_value is specified on the replaygain specs as full range at 1.
Shall I change the options then to None, Track and Album so as to make them clearer?

@gameplaya15143, I see, rather a running average display than a current frame rate display. I'll look into that. The gapless playback is implied when it specifies LAME tag, though again I will make it clearer, and your definately right about the ID3v2 editor needing the descriptions - also thinking of making the APEv2 field box a combo-dropdown so know what is generally available.

@MedO, I'll have a look into that one. I have a feeling I know whats causing it.

Thanks for all comments, keep up the good testing work biggrin.gif
gameplaya15143
Did a feature get lost? I thought that previously there was an option to set the preamp for files without replaygain, now there is only the preamp for files with replaygain.

I found quite an annoyance yesterday involving mp3s that have no tags. I have it set to display the filename (which worked with the last version I used). Now when it plays a tagless mp3, it displays the title - song from either the last song played (be it mp3, ogg, etc. it doesn't matter) or some other song that is visible on the playlist at the time. It does this for any tagless mp3 in the playlist, even if it's not being played.

Just ran into another problem just now.
Song transition from mp3 to ogg, when the ogg starts playing I get nothing but white noise. If I disable 'remove gaps' the problem goes away. It only seems to occur with waveout using prebuffer on track change (outds is uneffected). The file causing this most likely has some errors at the end of the file.

And another... Tag editor causes winamp to crash when the song is not playing. Crashes on all tag types. blink.gif
I noticed that even after I hit stop, then view file info, the stats tab is still there. IIRC it wasn't in in_mad 1.14. Is it possible that things aren't being reset when they should be?
edit: Crash occurs when the song is played, then stoped, then tags edited. It doesn't crash if the song hasn't been played and stopped.

Using winamp 2.95 by the way.
MoSPDude

I haven't properly got round to adding the preamp gain for files without RG yet. I promise I'll do it as soon as I can. tongue.gif

Hopefully, I can say that all your above problems have been cured if you download new release from the usual place. If you could please check, test and confirm.

I don't know what I'd do if hadn't got you guys to help me test this thing! Your help is very much appreciated, and thanks for bearing with me while I fix these problems. smile.gif
MoSPDude

I've fixed some more problems relating to the ReplayGain options and implemented a preamp option when no RG tag is found, as well as a 83dB reference level option as a -6.0dB preamp option.

I've added descriptive text to the ID3v2 editor, and a combobox for APE value names. I've change the VBR average display to show a running playback average at gameplaya15143 request.

I'm not too sure about implementing the VBRI header info. It doesn't seem too well supported in general, and I can't seem to find consistent details on it, other than possibly borrowing in_mpg123 implementation.

My next task currently is to display more information on the LAME tag.

Download from the usual, http://www.zen23652.zen.co.uk/in_mad.zip .
bladecgn
Hi... got another idea:

In the Preferences, you can select the order in which Winamp uses the tags to disply filenames.

It would be nice that if you open the file info box, automatically the tab opens up that ist selected first in the preferences, i.e. if ID3v1 is selected in the preferences, ID3v1 Tab is displayed automatically when you open the file info box.

Hope I made myself clear here... smile.gif
MoSPDude
Another update, I've fixed ID3 to APE tag reading and made the change suggested by bladecgn with a slight difference. The opening page order is the same as specified in configuration. If no matching tag, then it'll open the General page.

Download from the usual place.
MoSPDude

For the next update, I've added streaming title support, made changes to how streams are detected and finished the LAME tag info box. I'm going to add a streaming info box, then I'll upload it.

Please bear with me, my time is a bit short.

Cheers biggrin.gif
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.