Skip to content
cotman edited this page Jan 26, 2016 · 16 revisions

Welcome to the audex wiki!

Build dependencies

sudo apt-get install cmake libcdparanoia-dev kdemultimedia-dev libkf5kdelibs4support-dev kdelibs5-dev

Build is then per-original Audex wiki:

cd audex
mkdir build
cd build
cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr ..
make
sudo make install

For reference, the default configuration will build and debug great within KDevelop using the built-in CMake support. To debug, you'll have to prevent forking - so pass --nofork as an argument to the built app.

Future dev notes

Make Bing search available to add extra results if an API key has been entered.

Always try and perform a Musicbrainz/coverartarchive image retrieval, with these results stuffed at the start. This will give the option of 0 or more results from Musicbrainz/coverartarchive as standard, and additional results from Bing for those looking for something different (e.g. higher resolution).

Musicbrainz and coverartarchive image retrieval examples

Get the "release-group id" from musicbrainz based on artist and album:

curl -L http://www.musicbrainz.org/ws/2/release/?query=artist:<artist>+release:<album>

The will return lots of stuff, but importantly 0 or more of the following bits:

<release-group id="9c20e0b0-1a9b-32a8-8402-e8dfb2f9b42a" type="Album">
    <primary-type>Album</primary-type>
</release-group>

Get a unique list of all of the "release-group" ids where the type is "Album".

Get some cover art urls from the coverartarchive

Iterate over all "release-group" ids:

curl -L http://coverartarchive.org/release-group/<release-group-id>

This will return the following kind of thing:

{
  "images": [
    {
      "types": [
	"Front"
      ],
      "front": true,
      "back": false,
      "edit": 22701293,
      "image": "http:\/\/coverartarchive.org\/release\/4c703590-7386-49ee-854a-a4e54ed00814\/4457399400.jpg",
      "comment": "",
      "approved": true,
      "thumbnails": {
	"large": "http:\/\/coverartarchive.org\/release\/4c703590-7386-49ee-854a-a4e54ed00814\/4457399400-500.jpg",
	"small": "http:\/\/coverartarchive.org\/release\/4c703590-7386-49ee-854a-a4e54ed00814\/4457399400-250.jpg"
      },
      "id": "4457399400"
    },
    {
      "types": [
	"Back"
      ],
      "front": false,
      "back": true,
      "edit": 22701316,
      "image": "http:\/\/coverartarchive.org\/release\/4c703590-7386-49ee-854a-a4e54ed00814\/4457403802.jpg",
      "comment": "",
      "approved": true,
      "thumbnails": {
	"large": "http:\/\/coverartarchive.org\/release\/4c703590-7386-49ee-854a-a4e54ed00814\/4457403802-500.jpg",
	"small": "http:\/\/coverartarchive.org\/release\/4c703590-7386-49ee-854a-a4e54ed00814\/4457403802-250.jpg"
      },
      "id": "4457403802"
    },
    {
      "types": [
	"Medium"
      ],
      "front": false,
      "back": false,
      "edit": 22701374,
      "image": "http:\/\/coverartarchive.org\/release\/4c703590-7386-49ee-854a-a4e54ed00814\/4457406343.jpg",
      "comment": "",
      "approved": true,
      "thumbnails": {
	"large": "http:\/\/coverartarchive.org\/release\/4c703590-7386-49ee-854a-a4e54ed00814\/4457406343-500.jpg",
	"small": "http:\/\/coverartarchive.org\/release\/4c703590-7386-49ee-854a-a4e54ed00814\/4457406343-250.jpg"
      },
      "id": "4457406343"
    }
  ],
  "release": "http:\/\/musicbrainz.org\/release\/4c703590-7386-49ee-854a-a4e54ed00814"
}

Retrieve small for the thumbnail (always 250x250?) and image or large for the actual cover art (always 500x500?) and populate the current lists, that will then be appended too with Bing (if the user elects to use it).

C Libraries

Would make more sense than parsing results from the standalone APIs.

Some good-looking stuff here:

https://github.com/metabrainz/libmusicbrainz

https://github.com/metabrainz/libcoverart