MusicBrainz tagger for foobar2000 audio player.
C++ C Objective-C
Permalink
Failed to load latest commit information.
.gitignore TiCPP has been replaced with TinyXML. This reduces dll size and saves… May 30, 2011
Artist.h Added Artist and NameCredit entities and helper methods for ArtistCredit May 29, 2011
ArtistCredit.h Added Artist and NameCredit entities and helper methods for ArtistCredit May 29, 2011
AsciiPunctuation.cpp Punctuation can be optionally converted to ASCII (closes #11) Jun 1, 2011
ComboBox.h Added custom ComboBox class with a couple of helper methods Jun 2, 2011
ContextMenu.cpp Cosmetic changes and version number Jun 3, 2011
CoreEntity.h Added missing constructors and pragmas May 26, 2011
Date.cpp Days 30 and 31 weren't possible in Date Jun 2, 2011
Date.h Added year/month/day getters to the Date class and an overloaded cons… May 30, 2011
DiscID.h Added DiscID entity May 28, 2011
EntityList.h Empty releases are removed when downloading data (closes #30) Jan 30, 2012
FileTagMap.cpp Repeated labels and cat#s are not written to the tags (closes #41) Oct 28, 2012
FileTagMap.h FileTagMap: refactoring Jan 30, 2012
LICENSE Added license file May 28, 2011
Label.h Added label-related entities May 27, 2011
LabelInfo.h Medium and LabelInfo: added methods to receive all info in a single s… Jun 2, 2011
ListView.h Added custom ListView with ability to set items count May 27, 2011
Medium.h Medium and LabelInfo: added methods to receive all info in a single s… Jun 2, 2011
Metadata.h Added DiscID entity May 28, 2011
MetadataProcessor.cpp Type for the set of enum members should be unsigned int Jun 1, 2011
MetadataProcessor.h Type for the set of enum members should be unsigned int Jun 1, 2011
NameCredit.h Added Artist and NameCredit entities and helper methods for ArtistCredit May 29, 2011
Parser.cpp Added first release date support (closes #10) Jan 29, 2012
Parser.h Added total medium count (needed when some discs are dropped during f… Jun 2, 2011
Preferences.h Added an option to disable write of label, cat# and barcode (closes #24) Jun 1, 2011
Query.cpp TiCPP has been replaced with TinyXML. This reduces dll size and saves… May 30, 2011
Query.h TiCPP has been replaced with TinyXML. This reduces dll size and saves… May 30, 2011
QueryByMBIDDialog.h Query can now bee performed on any resource type May 28, 2011
QueryByTagsDialog.h ...but it can be done another way Jun 1, 2011
README.md Directory structure changes Jan 29, 2012
Recording.h Added new macros to Parser. As a result, Track can now inherit from R… May 31, 2011
Release.cpp Converted Release entity to NGS May 26, 2011
Release.h FileTagMap: refactoring Jan 30, 2012
ReleaseGroup.cpp Added ReleaseGroup, Recording, TrackList, MedumList and Medium entities May 26, 2011
ReleaseGroup.h Added first release date support (closes #10) Jan 29, 2012
ReleaseList.h Releases are now sorted by date. Closes #7. May 30, 2011
RequestThread.cpp Empty releases are removed when downloading data (closes #30) Jan 30, 2012
RequestThread.h Discs which do not match the amount of selected tracks are removed (i… Jun 1, 2011
TOC.cpp Placed TOC into a foo_musicbrainz namespace May 27, 2011
TOC.h Placed TOC into a foo_musicbrainz namespace May 27, 2011
TagWriter.cpp Tags are now written to the files May 28, 2011
TagWriter.h Tags are now written to the files May 28, 2011
TaggerDialog.h Added first release date support (closes #10) Jan 29, 2012
Track.h Added new macros to Parser. As a result, Track can now inherit from R… May 31, 2011
TrackListView.cpp LabelInfoList, MediumList and TrackList have been injected into their… May 31, 2011
TrackListView.h LabelInfoList, MediumList and TrackList have been injected into their… May 31, 2011
exceptions.h Winhttp replaced with fb2k http_client service. As a result, proxy is… May 29, 2011
foo_musicbrainz.cpp Updated year May 27, 2011
foo_musicbrainz.h Version bump to 0.3 Jul 23, 2012
foo_musicbrainz.rc Added first release date support (closes #10) Jan 29, 2012
foo_musicbrainz.sln TiCPP has been replaced with TinyXML. This reduces dll size and saves… May 30, 2011
foo_musicbrainz.vcxproj Directory structure changes Jan 29, 2012
foo_musicbrainz.vcxproj.filters Removed reference to TODO.txt Jan 29, 2012
meta.h Added missing const modifiers to getters in meta.h Jan 30, 2012
preferences.cpp Cosmetic changes and version number Jun 3, 2011
resource.h Added first release date support (closes #10) Jan 29, 2012
sha1.cpp Added SHA1.cpp and SHA1.h to the project May 19, 2011
sha1.h Added SHA1.cpp and SHA1.h to the project May 19, 2011

README.md

foo_musicbrainz

foo_musicbrainz is a component for foobar2000 media player. It can tag files by fetching data from MusicBrainz.

Some notable features:

  • Fetches data by automatically calculated MusicBrainz Disc ID, existing Artist/Album or MusicBrainz Album ID tags;
  • Uses the latest version of MusicBrainz web service, which corresponds to the NGS data model;
  • Supports many different tags, including artist, album, date, tracknumber/totaltracks, discnumber/totaldiscs, label, catalognumber, barcode etc.;
  • Supports MusicBrainz-specific tags: Artist ID, Album ID, Release Group ID, Disc ID, Track ID, album type, album status;
  • Missing TOCs can be submitted to MusicBrainz from the context menu.

Links

Building the code

You should have Visual Studio 2010 to build this component. Also, you will need to get two dependencies:

Download archives with dependencies and extract their contents to the desired directory, following the structure as shown below:

  • foobar2000 (foobar2000 SDK root)
    • app (optional, install foobar2000 here for debugging purposes)
    • foo_musicbrainz
    • foobar2000 (part of the foobar2000 SDK)
    • pfc (part of the foobar2000 SDK)
    • tinyxml

From the SDK root directory, type in your console:

git clone git://github.com/Dremora/foo_musicbrainz.git

Voilà! Now you can open foo_musicbrainz\foo_musicbrainz.sln and build the component!