INTERACT FORUM

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: Wavpack Decoder Plugin 1.0.0  (Read 16239 times)

scthom

  • Citizen of the Universe
  • *****
  • Posts: 621
Wavpack Decoder Plugin 1.0.0
« on: March 31, 2006, 07:46:14 am »

I've been messing around with Wavpack and have put together a decoder plugin.  Right now (1.0.0) it only decodes (plays) and seeks.  The tagging is not functional at all.  It will work with *.wv/*.wvc so it does work with hybrid compression if the correction file is in the same directory as the lossy version.

http://mcplugins.sourceforge.net
Logged

jgreen

  • Citizen of the Universe
  • *****
  • Posts: 2419
Re: Wavpack Decoder Plugin 1.0.0
« Reply #1 on: March 31, 2006, 09:10:04 am »

sc, you are an animal!  I'll see if I can find a wavpack encoder and have a fling at trying it.
Logged

jgreen

  • Citizen of the Universe
  • *****
  • Posts: 2419
Re: Wavpack Decoder Plugin 1.0.0
« Reply #2 on: March 31, 2006, 10:44:00 am »

Okay, I downloaded the encoder for dbpoweramp and copied some flac files to wav in MC, and then used db to convert from wave to wv.  I did some lossless and some lossy.  First results are very good, scthom, congratulations!  Here's what I noticed:

--First of all, do a restart of MC after installing the plugin, otherwise MC will send the wv files to "documents".

--While MC reads duration correctly in the playback window, "duration" tag is not available to mc.  That field is blank in "tag info", and "file type info" is completely flumoxed, reporting "n/a".

--Similarly, "bitrate" is not reporting at all, not to tag info and not to the playback window.

--The files will analyze okay, although they will NOT analyze while playback is going, even if a different track is playing.  MC crashes right quick.  WV (lossy fast) files seem to take much longer, maybe 4x.

--Overall, wv playback is not completely stable, compared to FLAC.  Charging through the tracks with fwd/back, next, etc, whill get you a crash, eventually.  Possibly, this may be related to just having analyzed some tracks.  I tried it again after restarting, and it seemes much better.

Great job, scthom!  I look forward to future develpments!
Logged

scthom

  • Citizen of the Universe
  • *****
  • Posts: 621
Re: Wavpack Decoder Plugin 1.0.0
« Reply #3 on: March 31, 2006, 07:58:38 pm »

jgreen -

Don't forget that the tagging part is not implemented, so none of those things you mentioned would be expected to work yet.

As for the next/previous crashes, that must be something about the way I've chosen to do the plugins, since it happens in both flac and wavpack plugins.  I'll have to put that on my todo list.
Logged

scthom

  • Citizen of the Universe
  • *****
  • Posts: 621
Wavpack Decoder Plugin 1.0.1
« Reply #4 on: April 04, 2006, 12:37:32 am »

1.0.1 of the In_wavpack plugin is available from http://mcplugins.sourceforge.net.

Tagging is now available as well as playing (text only).
Logged

Alex B

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 10121
  • The Cosmic Bird
Re: Wavpack Decoder Plugin 1.0.0
« Reply #5 on: April 04, 2006, 09:21:33 am »

Thanks Scot! Your work is much appreciated.

I dragged a few WavPack files to PN and tried to tag them. It seems that tagging is not working properly yet. I encountered various problems.

- the Track number and Date (year) fields are not read and the actual filename populates the Name field. Some other basic tags can be read, but none of the proprietary tags.

- only some of the basic tags can be updated and if tagging is more complex MC fails completely to update tags.

Here is a package that contains three small test samples with similar APE v.2 tags (Monkey's Audio, Musepack and WavPack): TagSamples.zip (~940 KB)

EDIT

The WavPack and Musepack files included in the package are not tagged or edited with MC. I copied the tags with Mp3tag v. 2.35m from the Monkey's Audio file (and edited the custom tag named MEDIA JUKEBOX: ENCODER). I think Mp3tag can do that correctly since the Musepack file works fine.
Logged
The Cosmic Bird - a triple merger of galaxies: http://eso.org/public/news/eso0755

GHammer

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 1930
  • Stereotypes are a real timesaver!
Re: Wavpack Decoder Plugin 1.0.0
« Reply #6 on: April 04, 2006, 11:42:28 am »

I noticed the import as well, but initially thought it a tagging problem.
I didn't use my archived wv/wvc, I created a few new ones for testing.

But after reading this, I created new files and checked tagging before importing to MC.
I get the filename as the title and no year.
I have composer and situation tags which were imported though.

I can edit the incorrect/missing tags with no problem.
I imported with wvc files in the directory and played/tagged them.
I closed MC and deleted a couple of wvc, no problem, just played the lossy version as expected.

There is a noticable delay when you begin playing Wavpack or if you skip to the next track if the next track is Wavpack. About 4-6 seconds after clicking the track will change. There is a 'burble' at the change as well. This does not happen at normal track change.

Seeking is rather smooth though.

However, I'm just happy to be able to play Wavpack without workarounds.
Thanks!!!
Logged

scthom

  • Citizen of the Universe
  • *****
  • Posts: 621
Re: Wavpack Decoder Plugin 1.0.0
« Reply #7 on: April 04, 2006, 01:29:56 pm »

Thanks for checking this stuff out.  It was working pretty well for me at home last night.

Give me a chance to poke around with these samples and see what comes up.
Logged

scthom

  • Citizen of the Universe
  • *****
  • Posts: 621
Re: Wavpack Decoder Plugin 1.0.2
« Reply #8 on: April 04, 2006, 11:41:04 pm »

Well I posted version 1.0.2.  It will fix some of your issues with tagging.

First off, I was using some non-standard APE tag names.  They were MC standard, so NAME vs TITLE, TRACK # vs TRACK, and a couple more.  Four total.  That change will fix most problems right off.

There are other, trickier issues.  Beyond the standard tags, there is no standard.  So some of your files may have custom tags written by taggers other than MC.  It makes it very difficult to anticipate all of the possible combinations.

For now, I've just implemented the rest of MC's tags as-is.  They may not match what you have already.  Even in Alex B's sample files, there were tags with multiple formats.  If you only tag your files with MC, then it's probably safe to do a Update Library (from Tags), then a Remove Tags, then a Update Tags (from Library).  If you do tag with other things, then your results may be unusual.

Let me know your results.
Logged

GHammer

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 1930
  • Stereotypes are a real timesaver!
Re: Wavpack Decoder Plugin 1.0.0
« Reply #9 on: April 05, 2006, 12:46:58 am »

The tags that are recognized are imported properly with this build.
Here's complete tag and file info for one file I use for testing:
WV Tag Example
I do not use MC replaygain feature so those tags will not be present.

Moving on to performance, when I drag and drop a wv file (wvc is in the directory) there is lots of disk activity, as if the entire file is being read.

When I click play, that also has lots of disk activity before playback begins.

The transition from track to track is fine, I don't see any pause and there is no 'noise'.

I was playing one wv and clicked Next. After a few seconds of loading the selection started to play. I got white noise and no music. Progress bar moved fine, time counted, just no music. Playing the same file in MC 'directly', no next/previous also produces white noise.

File plays fine in other players of course. The source APE file plays fine in MC too.


Funny what transcoding will do. For whatever reason, this one file was created as 24 bit when it was actually 16 bit. And that does not play music in MC, just white noise. Not a fault of the wv plugin at all.
Logged

scthom

  • Citizen of the Universe
  • *****
  • Posts: 621
Re: Wavpack Decoder Plugin 1.0.0
« Reply #10 on: April 05, 2006, 08:45:57 am »

OK, will look at it.  I see two things:

1.  I'm going to transition to the MAC tagging functions, which should help out since they are more robust than the WavPack versions.  It will help especially in the long run for binary and link tags.

2.  Playback issues.  The files I've been using seemed to work OK, but they've all been short.  I'll try making a few more and testing several together.  Not sure off the top of my head what the problem may be there, but I'll try a few things.  Might be related to the crashing of the flac plugins when you hit next/previous too fast.
Logged

Alex B

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 10121
  • The Cosmic Bird
Re: Wavpack Decoder Plugin 1.0.0
« Reply #11 on: April 05, 2006, 09:39:45 am »

I think it should work like this (the tag examples are from my sample files):

Quote
MEDIA JUKEBOX: ENCODER = Ma399no  MC tag => Read and write

ALBUM = Johannes Brahms - Violin Concerto in D major, Op. 77  Basic tag => Read and write

ALBUM ARTIST = Brahms  Tagged with another application => Ignore and never alter or delete

ARTIST = Brahms / Nigel Kennedy  Basic tag => Read and write

COMMENT = 6 s track / tagging test  Basic tag => Read and write

COMPOSER = Johannes Brahms (1833-1897)  Basic tag => Read and write

GENRE = Classical  Basic tag => Read and write

MEDIA JUKEBOX: ALBUM ARTIST = Brahms (Kennedy)  MC tag => Read and write

MEDIA JUKEBOX: BAND = London Philharmonic Orchestra  MC tag => Read and write

MEDIA JUKEBOX: BPM = 93  MC tag => Read and write

MEDIA JUKEBOX: COMMENT 2 = contains only the last note of the symphony  MC tag => Read and write

MEDIA JUKEBOX: CONDUCTOR = Klaus Tennstedt  MC tag => Read and write

MEDIA JUKEBOX: DATE = 33239  MC tag => Read and write (synchronize year with the "DATE" tag)

MEDIA JUKEBOX: DISC # = 1  MC tag => Read and write

MEDIA JUKEBOX: INTENSITY = 1  MC tag => Read and write

MEDIA JUKEBOX: SOLO PERFORMER = Nigel Kennedy, David Nolan  MC tag => Read and write

PEAK LEVEL = 0,85483  MC tag => Read and write

REPLAY GAIN (RADIO) = -6,4426699999999997  MC tag => Read and write

replaygain_album_gain = +0.27 dB  Tagged with another application => Ignore and never alter or delete

replaygain_album_peak = 0.891265  Tagged with another application => Ignore and never alter or delete

replaygain_track_gain = -0.48 dB  Tagged with another application => Ignore and never alter or delete

replaygain_track_peak = 0.854827  Tagged with another application => Ignore and never alter or delete

TITLE = Allegro giocoso, ma non troppo vivace  Basic Tag => Read and write

TOOL NAME = Media Center  MC tag => Read and write

TOOL VERSION = 11.1.161  MC tag => Read and write

TRACKNUMBER = 3  Basic tag => Read and write

DATE = 1991  Basic tag => Read and write

All other custom fields: follow the tagging system MC uses with APE files.
All other fields that are not recognized by MC: Ignore and never alter or delete

I updated the sample file package. It includes now a library backup that contains my custom fields. Only the test files are imported to the library. It expects to find the test files in C:\TestSamples. Make all fields visible in Customize Current View for seeing how MC handles the tags.

TagSamples.zip (~940 KB)
Logged
The Cosmic Bird - a triple merger of galaxies: http://eso.org/public/news/eso0755

scthom

  • Citizen of the Universe
  • *****
  • Posts: 621
Re: Wavpack Decoder Plugin 1.0.0
« Reply #12 on: April 05, 2006, 01:38:43 pm »

Alex B -

See how you have some "native" MC tags with the "Media Jukebox:" prefix and others that don't?  This is what makes it difficult.  How can you use some with and some without the prefix?  It's not that I can't program the plugin to look for both, it's just that you wouldn't normally expect both.  Either one or the other.

And when you say "never alter or delete" do you mean even if the user selects "Remove All" ?

The advantage of APEv2 tags is that there is a Read-Only bit that can be set, so some of this can be done.

It just gets tricky because really MC is the tagging engine and the plugin just implements it.  I can only do so much from within the plugin framework.
Logged

Alex B

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 10121
  • The Cosmic Bird
Re: Wavpack Decoder Plugin 1.0.0
« Reply #13 on: April 05, 2006, 02:45:01 pm »

See how you have some "native" MC tags with the "Media Jukebox:" prefix and others that don't? This is what makes it difficult. How can you use some with and some without the prefix? It's not that I can't program the plugin to look for both, it's just that you wouldn't normally expect both. Either one or the other.

It is just the system MC uses with APE and MPC files.

Generally MC uses always "Media Jukebox: " if the tag is not one of these "basic" tags:
ALBUM
ARTIST
COMMENT
COMPOSER
GENRE
TITLE
TRACKNUMBER
DATE

However, MC fills automatically these tags without "Media Jukebox: "
TOOL NAME
TOOL VERSION
PEAK LEVEL
REPLAY GAIN

It seems that any other tag that MC writes begins with "Media Jukebox: "


Quote
And when you say "never alter or delete" do you mean even if the user selects "Remove All" ?

Remove all should remove everything as it does with ape and mpc files, but your plugin automatically deleted the foobar generated "replaygain_" tags when I updated other tags. MC preserves foreign tags inside ape or mpc files.

Quote
The advantage of APEv2 tags is that there is a Read-Only bit that can be set, so some of this can be done.

I don't think that is needed.

Quote
It just gets tricky because really MC is the tagging engine and the plugin just implements it. I can only do so much from within the plugin framework.

Just try to follow what MC does with ape files. Did you try my test library?


EDIT

LYRICS  is a basic tag too.

EDIT 2

For embedded cover art MC uses this tag name:

Cover Art (front):

Here is a discussion about embedding cover art to APE v.2 tags: http://www.hydrogenaudio.org/forums/index.php?showtopic=40603

In that discussion I proposed the system MC uses and uploaded a couple of sample files that have embedded images.

A comment from that thread:
Quote
I actually wrote some code to extract the cover art based on using an APIC tag, but it definitely makes sense to support the MC approach.

The structure of the tag seems very simple, it seems to be the filename, then a null seperator, then the actual data of the file (a JPG in the case of your sample files)

In case you are going add support for embedding images at some stage, you could also add your comments to that HA thread as a WavPack plugin developer.
Logged
The Cosmic Bird - a triple merger of galaxies: http://eso.org/public/news/eso0755

scthom

  • Citizen of the Universe
  • *****
  • Posts: 621
Re: Wavpack Decoder Plugin 1.0.0
« Reply #14 on: April 05, 2006, 09:31:43 pm »

Quote
It is just the system MC uses with APE and MPC files.

Adding "Media Jukebox" may be something they've done in the past (and are still doing), but it's definitely not "Standard".  At least it's not part of the SDK.  It's also not required by any of the various tagging standards.  At least not that I've been able to determine.

Here's the "standard" list from MC's SDK.  This is the tag name MC is sending and expecting from me.  Any conversions into the codec standard are my responsibility.

Code: [Select]
// database fields
#define MF_FILENAME                          _T("Filename")
#define MF_ARTIST                               _T("Artist")
#define MF_ALBUM                               _T("Album")
#define MF_NAME                                 _T("Name")
#define MF_GENRE                               _T("Genre")
#define MF_COMMENT                          _T("Comment")
#define MF_BAND                                 _T("Band")
#define MF_FILETYPE                           _T("File Type")
#define MF_DATE                                 _T("Date")
#define MF_BITRATE                            _T("Bitrate")
#define MF_IMAGEFILE                        _T("Image File")
#define MF_LASTPLAYED                      _T("Last Played")
#define MF_RATING                              _T("Rating")
#define MF_FILESIZE                            _T("File Size")
#define MF_DURATION                         _T("Duration")
#define MF_NUMBERPLAYS                   _T("Number Plays")
#define MF_TRACKNUMBER                  _T("Track #")
#define MF_DISCNUMBER                    _T("Disc #")
#define MF_DATECREATED                   _T("Date Created")
#define MF_REPLAYGAIN                      _T("Replay Gain")
#define MF_PEAKLEVEL                       _T("Peak Level")
#define MF_INTENSITY                        _T("Intensity")
#define MF_MEDIATYPE                       _T("Media Type")
#define MF_BPM                                  _T("BPM")
#define MF_DATEMODIFIED                 _T("Date Modified")
#define MF_DATEIMPORTED                _T("Date Imported")
#define MF_LYRICS                              _T("Lyrics")
#define MF_NOTES                              _T("Notes")
#define MF_WIDTH                              _T("Width")
#define MF_HEIGHT                             _T("Height")
#define MF_COMPOSER                       _T("Composer")
#define MF_KEYWORDS                       _T("Keywords")
#define MF_ALBUMARTIST _T("Album Artist")
#define MF_PEOPLE _T("People")
#define MF_PLACES _T("Places")
#define MF_EVENTS _T("Events")
#define MF_PLAYBACKRANGE _T("Playback Range")
#define MF_ACCESSRATING _T("Access Rating")
#define MF_TEXT _T("Text")
#define MF_SAMPLERATE _T("Sample Rate")
#define MF_CHANNELS _T("Channels")
#define MF_BITDEPTH _T("Bit Depth")
#define MF_COMPRESSION _T("Compression")
#define MF_BOOKMARK _T("Bookmark")
#define MF_COPYRIGHT _T("Copyright")
#define MF_THUMBNAIL_INFO _T("Thumbnail Info")
#define MF_READONLY _T("ReadOnly")

// non-DB fields
#define MF_JRANALZYER_PLAYLIST _T("JRAnalyzer: Playlist")
#define MF_TOOLNAME _T("Tool Name")
#define MF_TOOLVERSION _T("Tool Version")

// obsolete / currently unused fields
#define MF_DISKLOOKUPKEY _T("Disk Lookup Key")
#define MF_YEAR _T("Year")

// special fields
#define MF_PLAYLISTS _T("Playlists")

// album-analyzer fields
#define MF_COMPLETE_ALBUM _T("Complete Album")
#define MF_MIX_ALBUM _T("Mix Album")
#define MF_ALBUMGAIN _T("Album Gain")

// calculated fields
#define MF_VOLUME_NAME _T("Volume Name")
#define MF_ALBUM_ARTIST_AUTO _T("Album Artist (auto)")
#define MF_ALBUM_TYPE _T("Album Type")
#define MF_REMOVABLE _T("Removable")
#define MF_DATE_DAY _T("Date (day)")
#define MF_DATE_MONTH _T("Date (month)")
#define MF_DATE_YEAR _T("Date (year)")
#define MF_DATE_FILENAME_FRIENDLY _T("Date (filename friendly)")
#define MF_FILENAME_NAME _T("Filename (name)")
#define MF_FILENAME_PATH _T("Filename (path)")

// template-based calculated fields
#define MF_ARTIST_ALBUM_YEAR _T("Artist - Album (Year)")
#define MF_YEAR_ALBUM _T("Year - Album")
#define MF_DIMENSIONS _T("Dimensions")

// fields that can get created on upgrade (legacy MJ support)
#define MF_CUSTOM1 _T("Custom 1")
#define MF_CUSTOM2 _T("Custom 2")
#define MF_CUSTOM3 _T("Custom 3")

// MusicMatch fields
#define MF_MM_TEMPO _T("Tempo")
#define MF_MM_MOOD _T("Mood")
#define MF_MM_SITUATION _T("Situation")
#define MF_MM_BIOS _T("Bios")
#define MF_MM_PREFERENCE _T("Preference")

// Podcast fields
#define MF_FEED_URL _T("Feed URL")
#define MF_EPISODE_URL _T("Episode URL")

// service fields
#define MF_SERVICE_NAME _T("Service: Name")
#define MF_SERVICE_ID _T("Service: ID")
#define MF_SERVICE_ITEM_INFO _T("Service: Item Info")

// WM DRM fields
#define MF_DRM_CONTENT_ID _T("Content ID")
#define MF_DRM_CONTENT_DISTRIBUTOR _T("Content Distributor")
#define MF_DRM_CONTENT_TYPE _T("Content Type")
#define MF_DRM_PROTECTED _T("Protected")
#define MF_DRM_NUMBER_BURNS _T("Number Burns")
#define MF_DRM_NUMBER_UPLOADS _T("Number Uploads")
#define MF_DRM_EXPIRATION_DATE        _T("Expiration Date")

// CD database fields
#define MF_CDDB_COVERARTURL _T("Coverart URL")

Quote
Remove all should remove everything as it does with ape and mpc files, but your plugin automatically deleted the foobar generated "replaygain_" tags when I updated other tags. MC preserves foreign tags inside ape or mpc files.

That must be a bug, it shouldn't do that unless MC tries to write the same tag with a blank value.

Quote
Just try to follow what MC does with ape files. Did you try my test library?

I just got home from work, so I haven't downloaded your files yet.  What MC does with APE is a complete mystery to me since APE is not part of the SDK.  And the SDK is pretty silent when it comes to recommendations for tagging.  We can only observe and guess what they are doing.  Presumably, since Matt is involved, it is consistent with the APE standards.

Quote
The structure of the tag seems very simple, it seems to be the filename, then a null seperator, then the actual data of the file (a JPG in the case of your sample files)

I've seen this before somewhere too, and I think this is the APEv2 standard.



I hope I didn't come across argumentative, that's not my point.  Just trying to understand and manage the customer's expectations.  I'm trying to make a plugin that (1) supports the codec standards for read and write, (2) supports MC for read and write, and (3) supports unexpected or malformed tags for reading only.  Maybe it's just been a long day, in which case, I apologize in advance  :)
Logged

GHammer

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 1930
  • Stereotypes are a real timesaver!
Re: Wavpack Decoder Plugin 1.0.0
« Reply #15 on: April 05, 2006, 10:23:57 pm »

Where MC uses it's own tag of course it has to be used.
As long as the original tags (if any) are not overwritten.

Here's an easy to read before and after of an APE.
It was created and tagged by other tools then I used MC to analyze it.
Then I updated tags from the library.

Before & After

Outside the MC specific tags I see only the date is written differently.
As long as a DATE field is written as well, it's fine.

Meaning that I want the files to be usable with other apps and devices.
Logged

Alex B

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 10121
  • The Cosmic Bird
Re: Wavpack Decoder Plugin 1.0.0
« Reply #16 on: April 06, 2006, 05:15:01 am »

Currently the plugin cannot write tags to my .wv test file. It can tag a .wv file that has only "basic" tag names without the "Media Jukebox: " strings. Most likely the problem is caused by something small in the file tags that prevents writing or changing the tags and hopefully you can fix that.

In general this is becoming quite interesting.

Let's assume that the user has an archive of APE files. The user wants to convert the files to wv & wvc because in that way he/she could keep only the lossy versions online and archive the correction files elsewhere. MC has no WavPack encoder so the user has to use some other tool. Two possible tools that can handle mass conversions and preserve the file tags would be dBpowerAMP and foobar2000. These tools can do the conversion easily and preserve all APE v2 tags. The tags would naturally include the "Media Jukebox: " strings so those tags would be useless with your plugin unless it follows the same system.

As a side note I realized that the FLAC input plugin has the same problem if other conversion tools are used for making FLAC files from MC tagged APE files or converting MC tagged FLAC files to APE or MPC.

Even more "interesting" is the fact that when tagging OGG files MC uses "MEDIAJUKEBOX:" instead of "MEDIA JUKEBOX: ".   It also uses "MEDIAJUKEBOX:" in front of the four MC tags that are written directly as they are to APE v2  (TOOL NAME, TOOL VERSION, PEAK LEVEL, and REPLAY GAIN). Since FLAC and OGG use the same tag format I wonder which one of these three different tagging systems would actually be the best one for FLAC files.
Logged
The Cosmic Bird - a triple merger of galaxies: http://eso.org/public/news/eso0755

Alex B

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 10121
  • The Cosmic Bird
Re: Wavpack Decoder Plugin 1.0.0
« Reply #17 on: April 06, 2006, 09:52:44 am »

In my opinion the way MC handles APE files is an MC standard and for me it has worked fine. Here is what I currently do:

I rip my CDs in the disc image APE & CUE format and make APL link files for holding the APE v2 track tags.

The basic tags are initially filled with another application and I also make a replay gain scan with foobar2000 for special purposes (like volume leveling and converting the APL files to a low bitrate AAC format).

After that I import the APL files to MC and add more tags, which MC writes using its proprietary naming system. These additional tags are important for me only inside MC. I don't need them with a portable player or when playing MP3 CDs on my car stereo.

Later on I usually convert the APE/APL disc image files to high bitrate MPC track files for day-to-day MC playback and store the lossless disc images only in my archive.

If I would like to replace my APE/APL/MPC system with a WV/WVC system I would need to convert my APE/APL files to WavPack track files with foobar2000 and it would clone the already written APE v.2 tags including the "Media Jukebox " strings.
Logged
The Cosmic Bird - a triple merger of galaxies: http://eso.org/public/news/eso0755

GHammer

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 1930
  • Stereotypes are a real timesaver!
Re: Wavpack Decoder Plugin 1.0.0
« Reply #18 on: April 06, 2006, 07:50:27 pm »

If I would like to replace my APE/APL/MPC system with a WV/WVC system I would need to convert my APE/APL files to WavPack track files with foobar2000 and it would clone the already written APE v.2 tags including the "Media Jukebox " strings.

Your workflow is much the same as mine.
I wonder if you want the MC replaygain transferred from format to format.

MC preserves its tags for APE, and I guess that's ok because it is lossless to lossless.
However the MC rpg info is also transferred to OGG format, which I'd think should not happen as it is lossy. MC does not transfer its rpg tags to MP3 format.

"Foreign" info is lost in the conversion to any format even APE to APE. I don't mind the foreign rpg info being lost. I do mind the other tags info being lost. All of it is not imported to begin with, then at conversion what has been imported is ignored/lost. It's why I no longer use MC for tagging. I don't care if MC uses the info. I don't want it thrown out though.

Conversion Tags

I'll be happy with a playback plugin that works well.
Logged

scthom

  • Citizen of the Universe
  • *****
  • Posts: 621
Re: Wavpack Decoder Plugin 1.0.0
« Reply #19 on: April 06, 2006, 09:49:49 pm »

The tags that are recognized are imported properly with this build.
Here's complete tag and file info for one file I use for testing:
WV Tag Example
I do not use MC replaygain feature so those tags will not be present.

FYI, according to the HA wikipedia (http://wiki.hydrogenaudio.org/index.php?title=APE_Tag_Item), though not confirmed anywhere in the MAC code or pages, the use of multiple tag keys ("names") e.g. INVOLVEDPEOPLE, is not valid.  It apparantly isn't harming anything at the moment  ;D
Logged

scthom

  • Citizen of the Universe
  • *****
  • Posts: 621
Re: Wavpack Decoder Plugin 1.0.0
« Reply #20 on: April 06, 2006, 10:05:34 pm »

Where MC uses it's own tag of course it has to be used.
As long as the original tags (if any) are not overwritten.

Here's an easy to read before and after of an APE.
It was created and tagged by other tools then I used MC to analyze it.
Then I updated tags from the library.

Before & After

Outside the MC specific tags I see only the date is written differently.
As long as a DATE field is written as well, it's fine.

Meaning that I want the files to be usable with other apps and devices.

Of course, the intent is to be other program friendly whenever possible.

Note how the "after" is sorted by total tag length?  That's actually a "suggested" APEv2 standard.  The "before" is not fully standard in that sense.

Also, I note both are tagged with "DATE" and not "YEAR".  Year is the standard, according to the MAC source code (not that DATE can't be used, it's just not standard).  This probably has to do with MC using both but YEAR being deprecated.  When MC chooses to get one over the other is very confusing and I haven't been able to determine why yet.

Code: [Select]
/*****************************************************************************************
"Standard" APE tag fields
*****************************************************************************************/
#define APE_TAG_FIELD_TITLE                     L"Title"
#define APE_TAG_FIELD_ARTIST                    L"Artist"
#define APE_TAG_FIELD_ALBUM                     L"Album"
#define APE_TAG_FIELD_COMMENT                   L"Comment"
#define APE_TAG_FIELD_YEAR                      L"Year"
#define APE_TAG_FIELD_TRACK                     L"Track"
#define APE_TAG_FIELD_GENRE                     L"Genre"
#define APE_TAG_FIELD_COVER_ART_FRONT           L"Cover Art (front)"
#define APE_TAG_FIELD_NOTES                     L"Notes"
#define APE_TAG_FIELD_LYRICS                    L"Lyrics"
#define APE_TAG_FIELD_COPYRIGHT                 L"Copyright"
#define APE_TAG_FIELD_BUY_URL                   L"Buy URL"
#define APE_TAG_FIELD_ARTIST_URL                L"Artist URL"
#define APE_TAG_FIELD_PUBLISHER_URL             L"Publisher URL"
#define APE_TAG_FIELD_FILE_URL                  L"File URL"
#define APE_TAG_FIELD_COPYRIGHT_URL             L"Copyright URL"
#define APE_TAG_FIELD_MJ_METADATA               L"Media Jukebox Metadata"
#define APE_TAG_FIELD_TOOL_NAME                 L"Tool Name"
#define APE_TAG_FIELD_TOOL_VERSION              L"Tool Version"
#define APE_TAG_FIELD_PEAK_LEVEL                L"Peak Level"
#define APE_TAG_FIELD_REPLAY_GAIN_RADIO         L"Replay Gain (radio)"
#define APE_TAG_FIELD_REPLAY_GAIN_ALBUM         L"Replay Gain (album)"
#define APE_TAG_FIELD_COMPOSER                  L"Composer"
#define APE_TAG_FIELD_KEYWORDS                  L"Keywords"

I guess part of my problem, and I'm sure it's not just me, is that nobody is truly sticking to the standards, and once you're past those, it's really anything goes.
Logged

GHammer

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 1930
  • Stereotypes are a real timesaver!
Re: Wavpack Decoder Plugin 1.0.0
« Reply #21 on: April 07, 2006, 01:41:40 am »

Indeed it is. The two devs whose tools I use for tagging are always finding 'unique' tagging from this or that player.
It'd be nice if the handful (really) of players and taggers would simply put a copy of the specs/standards over each workstation. And follow them.

I know sometime there has to be a proprietary tag, but not as often as they are used.

Thanks for all your efforts on the plugins, it is appreciated.

Logged

GHammer

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 1930
  • Stereotypes are a real timesaver!
Re: Wavpack Decoder Plugin 1.0.0
« Reply #22 on: April 10, 2006, 04:18:10 am »

FYI, according to the HA wikipedia (http://wiki.hydrogenaudio.org/index.php?title=APE_Tag_Item), though not confirmed anywhere in the MAC code or pages, the use of multiple tag keys ("names") e.g. INVOLVEDPEOPLE, is not valid. It apparantly isn't harming anything at the moment ;D

Hmmm, it seems that is the 'friendly' way to list a tag with multiple values.
In fact the tag is written as a single element:

Code: [Select]
01484fe9h: 49 6E 76 6F 6C 76 65 64 50 65 6F 70 6C 65 00 43 ; InvolvedPeople.C
01484ff9h: 68 6F 69 72 2C 20 43 68 6F 72 75 73 00 50 65 67 ; hoir, Chorus.Peg
01485009h: 67 69 65 20 41 6C 6C 65 6E 00 56 69 6F 6C 61 00 ; gie Allen.Viola.
01485019h: 4C 65 6F 20 42 69 72 6E 62 61 75 6D 00 54 72 75 ; Leo Birnbaum.Tru
01485029h: 6D 70 65 74 00 47 72 65 67 20 42 6F 77 65 6E 00 ; mpet.Greg Bowen.
01485039h: 56 69 6F 6C 69 6E 00 45 72 69 63 20 42 6F 77 69 ; Violin.Eric Bowi
01485049h: 65 00 54 72 75 6D 70 65 74 00 4C 65 6F 6E 20 43 ; e.Trumpet.Leon C
01485059h: 61 6C 76 65 72 74 00 54 72 75 6D 70 65 74 00 44 ; alvert.Trumpet.D
01485069h: 75 6E 63 61 6E 20 43 61 6D 70 62 65 6C 6C 00 56 ; uncan Campbell.V
01485079h: 6F 63 61 6C 73 20 28 62 63 6B 67 72 29 00 45 72 ; ocals (bckgr).Er
01485089h: 69 63 20 43 6C 61 70 74 6F 6E 00 44 6F 75 62 6C ; ic Clapton.Doubl
01485099h: 65 20 42 61 73 73 00                            ; e Bass.
Logged

scthom

  • Citizen of the Universe
  • *****
  • Posts: 621
Re: Wavpack Decoder Plugin 1.0.0
« Reply #23 on: April 10, 2006, 10:36:07 pm »

Interesting, I'll have to follow up on that.  I didn't know you could do that either.
Logged

GHammer

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 1930
  • Stereotypes are a real timesaver!
Re: Wavpack Decoder Plugin 1.0.0
« Reply #24 on: April 10, 2006, 11:12:18 pm »

Interesting, I'll have to follow up on that. I didn't know you could do that either.

"Items are not zero-terminated like in C/C++. If there's a zero character, multiple items are stored under the key and the items are separated by zero characters."

It's what got me to check. Never trust a display, rely on hex<g>. Didn't I learn that 25 years ago...
Logged

GHammer

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 1930
  • Stereotypes are a real timesaver!
Re: Wavpack Decoder Plugin 1.0.0
« Reply #25 on: May 20, 2006, 12:07:47 pm »

Hello,
Just getting this back where I can find it easily.
Logged

scthom

  • Citizen of the Universe
  • *****
  • Posts: 621
Re: Wavpack Decoder Plugin 1.0.0
« Reply #26 on: May 28, 2006, 05:20:24 pm »

Thanks, it's still on my radar too.
Logged

GHammer

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 1930
  • Stereotypes are a real timesaver!
Re: Wavpack Decoder Plugin 1.0.0
« Reply #27 on: June 26, 2006, 09:15:51 am »

Once a month refresh
Logged

scthom

  • Citizen of the Universe
  • *****
  • Posts: 621
Re: Wavpack Decoder Plugin 1.0.0
« Reply #28 on: January 01, 2007, 02:53:36 pm »

FYI, I am working on updating this again.  Also incorporating Wavpack 4.40 and updates for cover art processing.
Logged
Pages: [1]   Go Up