libdiscid 0.6.3 and bindings for D, Rust, Go and Hare

A new version 0.6.3 of libdiscid has been released. libdiscid is a C library that allows applications to easily calculate MusicBrainz and freedb disc IDs from audio CDs. It also can extract MCN and ISRC information.

The main focus for this release has been to provide updated source and binary packages compatible with current systems. But there is also new platform support for the Haiku operating system.

Version 0.6.3 of libdiscid provides the following changes:

  • LIB-66: fix for Debian kFreeBSD
  • Haiku platform support (TOC only)
  • Use discid_feature enum in discid_read_sparse
  • Fixed building with CMake on macOS
  • LIB-68: provide macOS universal2 binaries with support for both x86_64 and arm64
  • LIB-67: Source tarball with updated autotools configuration
  • CMake: Use GNUInstallDirs to determine install location
  • CMake 2.8.12 is now the minimum required version

Being a C library libdiscid is highly portable and can easily be used with various programming languages. Ready-to-use bindings for many languages are available. Since the last release 6 years ago additional bindings for D, Rust, Go and Hare have become available. There is also an alternative .NET implementation of libdiscid written in C#.

More details on libdiscid, information on available language bindings, and downloads of the source code and pre-compiled binaries for macOS and Windows can be found on the libdiscid page. See also the API documentation for details on how to use the library.

Picard 2.3.2 released

Picard 2.3.2 has been released and is available for download. This is mainly a bug-fix release with few minor improvements, see below for a full list of changes.

This release contains code changes by zas, rdswift, outsidecontext, RaysDev and new contributors Undearius and Gabrielcarvfer, who also is working on some interesting changes regarding UI responsiveness.
Thanks a lot to everybody who contributed to this release with code, translations, bug reports and general feedback.

Download

Picard 2.3.2 is available for download from the download page.

Changes

Below is a list of all changes since Picard 2.3.1. If you are upgrading from an older version you might want to read previous release post.

Breaking change:

$find script function now returns “” rather than -1 on not found, for the sake of consistency. You may want to review your scripts.

Notable improvements:

Picard was trying to guess the file format based on file content. This was very IO expensive and in many cases not needed. So we decided to change the logic to:

  • Try guessing the format by file extension first
  • If no extension or no matching file extension is available, guess by file content
  • If format was guessed by extension and loading the file with mutagen fails with an exception, retry with guessing by file content. Retry loading if the newly guessed format is different from the format guessed by extension.

Also notable, On Windows 10, support for fractional scaling was implemented.

The complete list of changes is the following:

Bug

  • [PICARD-1775] – $firstwords function doesn’t catch IndexError
  • [PICARD-1776] – $datetime crashes when invalid format specified
  • [PICARD-1781] – Have $find return “” rather than “-1” on not found
  • [PICARD-1783] – Deleting performer, comment or lyrics tag fails for some cases in ID3, Vorbis, MP4 and Apev2 tags
  • [PICARD-1784] – Host not found error when downloading PDF artwork
  • [PICARD-1785] – $delete(_id3:TXXX:foo) does not delete the ID3 frames
  • [PICARD-1786] – Deleting tag stored in ID3 TIPL frame only removes first occurrence
  • [PICARD-1787] – Deleting case-insensitive TXXX frames does not delete anything
  • [PICARD-1788] – Saving ID3 tags marked as case-insensitive causes duplicated TXXX frames
  • [PICARD-1790] – Crash when selecting plugin that can be updated
  • [PICARD-1791] – Network access is disabled error under VPN service
  • [PICARD-1795] – iTunes tags not removable (reappear after being deleted)
  • [PICARD-1801] – List index out of range when saving Vorbis file
  • [PICARD-1803] – Instrument EWI is rewritten “e w i”

Improvement

  • [PICARD-1777] – Support fractional scaling on Windows 10
  • [PICARD-1800] – Simplify Unicode ‘Bullet’ to ASCII ‘Hyphen-minus’
  • [PICARD-1809] – Optimize format detection logic

Picard 2.3.1 released

Picard 2.3.1 has been released and is available for download. This is mainly a bugfix release, but also some smaller improvements and features made it into this version. Notable changes are the addition of the $sortmulti and $reversemulti scripting functions, overall better handling of releases with multiple release countries and some fixes for the AcoustID fingerprinting. See below for a full list of changes.

This release contains code changes by zas, rdswift, outsidecontext and new contributor RaysDev, who also is working on some interesting changes for the next release. Thanks a lot again to everybody who contributed to this in release with code, translations, bug reports and general feedback. The Picard 2.3 release already was well received, but it is thanks to you all that we can provide a sizeable list of improvements just 10 days later.

Download

Picard 2.3.1 is available for download from the download page.

Changes

Below is a list of all changes since Picard 2.3. If you are upgrading from an older version you might want to read what is new in Picard 2.3.

Bug

  • [PICARD-1745] – Packaged libdiscid is not compatible with macOS 10.12
  • [PICARD-1748] – Many release events can cause the versions context menu to overflow
  • [PICARD-1750] – Existing acoustid_fingerprint tags are not considered for AcoustID submission
  • [PICARD-1754] – DEL always removes release or file from main window
  • [PICARD-1756] – Plugin update fails to compare plugin versions with double digit versions
  • [PICARD-1757] – Crash on loading a release if $div(n,0) is used in a script
  • [PICARD-1760] – Prevent duplicates in top tags editor
  • [PICARD-1762] – Dropping a PDF file on cover art image box doesn’t work
  • [PICARD-1765] – Adding uppercase tags to preserved tags list is not handled correctly
  • [PICARD-1772] – Unexpected results with $num function
  • [PICARD-1773] – Untrapped error on $mod with zero input
  • [PICARD-1774] – $lenmulti with missing name returns “1”

New Feature

  • [PICARD-1743] – Add script functions $sortmulti and $reversemulti to sort and reverse multi-value variables
  • [PICARD-1751] – Provide a %_releasecountries% variable

Improvement

  • [PICARD-1746] – Change Generate AcoustID Fingerprints shortcut to Ctrl+Shift+Y / ⌘⇧Y
  • [PICARD-1752] – Use preferred release countries to select a matching release country if there are multiple
  • [PICARD-1755] – “Supported Languages” on Microsoft Store shows only English (United States)
  • [PICARD-1759] – Make editing tags in top tags list more intuitive
  • [PICARD-1771] – Completely ignore release types set to zero in preferred releases

 

Picard 2.3 Release Candidate

Following our recent beta we are today releasing a release candidate for Picard 2.3. Besides a few fixes there have been also a couple of improvements. Most notably Bob Swift has implemented a couple of useful new scripting functions.

Should no blocking issues arise we expect a final release of Picard 2.3 in about a week.

Download

Please see the Github release page for more download options, including the source code.

Helping out

The easiest way to help us getting a great Picard 2.3 release is using and testing this release candidate. Please report bugs on the Picard issue tracker and provide feedback in the community forums.

Please also help translate Picard. There will be no changes to translatable text before the final release of Picard 2.3, so this is a great chance to ensure Picard is available in your language. Translating is easy and can be done online: Head over to MusicBrainz’s translation page on Transifex and click on “Help Translate MusicBrainz”. Once you have registered an account on Transifex you can start translating. For Picard the primary resource to translate is “picard“, but there is also the “picard_appstream” resource which is used for providing descriptions for various Linux software-center applications.

If your are a software developer you are very welcomed to provide fixes and features. Picard is free software and the source code is available on GitHub. See Developing on the Picard website to get started.

Changes since Picard 2.3 beta 1

Below are the changes in Picard since the last beta release. For a more detailed overview for what is new since Picard 2.2.3 please see our recent beta announcement.

Bug-fix

  • [PICARD-1688] – “Submit AcoustIDs” fails with many tracks
  • [PICARD-1719] – $unset marks tag for deletion
  • [PICARD-1724] – Fingerprint status on left should not be submittable (red)
  • [PICARD-1725] – Fingerprint indicator rendering artifacts
  • [PICARD-1726] – Crash when closing options quickly before plugin list got loaded
  • [PICARD-1727] – Performer tag in metadata list is not translated
  • [PICARD-1733] – App does not start on macOS 10.12
  • [PICARD-1736] – “Generate AcoustID Fingerprints” is too long for the toolbar

Improvement

  • [PICARD-1716] – Add script functions for strings ($find, $reverse, $substr), multi-value variables ($getmulti), and loops ($foreach, $while, $map)
  • [PICARD-1717] – Backup config file on update
  • [PICARD-1720] – Add script function $slice to extract a portion of a multi-value variable
  • [PICARD-1721] – Add script function $join to join the elements of a multi-value variable
  • [PICARD-1723] – Match to album should consider the disc number
  • [PICARD-1729] – Add scripting function $datetime to return the current date and time
  • [PICARD-1737] – Add keyboard shortcut Ctrl+Alt+F for “Generate Fingerprints”
  • [PICARD-1738] – Load a recording URL entered into the search field as standalone recording

Picard 2.3 Beta 1

Have you heard? Jean-Luc Picard is back, once again rescuing the galaxy. And MusicBrainz Picard is back with a new beta release, once again fixing your digital music collection.

We have just released Picard 2.3 beta 1 as a pre-release for the upcoming Picard 2.3. There have been quite a few additions and changes and we would like to gather feedback with this beta release before releasing the final Picard 2.3.

What’s new?

You can see a full list of changes in the changelog. Here is an overview of the most notable new features and fixes:

  • It is now possible to customize the columns in the main panel, so you can choose to see additional details about the files you are tagging, such as album artist, composer, catalogue number, genre and more. For now the number of columns is intentionally limited, but this opens the door for other enhancements, like ordering releases by completion status.
  • The new “Generate AcoustID fingerprints” action allows you to just generate the fingerprints without doing a search and match. This allows you to generate and submit fingerprints for already tagged files easily. To make this feature complete a new “Fingerprint status” column can be enabled indicating whether a fingerprint has been generated (showing a red fingerprint icon) and whether it has been submitted (the fingerprint icon turns from red to gray).
  • AcoustID lookup (aka Scan) has been improved and now respects your configured preferred release types.
  • The Scripting options have been reworked to be more consistent and easier to use.
  • Several smaller improvements to tag editing, like multiline editing for comments and lyrics, manual reordering of multivalue tag values, autocomplete for media, release country, release type and release status tags and format indicators for date tags (e.g. showing “YYYY-MM-DD” for the date tag).
  • Custom tags support for MP4.
  • Support for tagging raw AC3 files with APEv2 tags.
  • For AAC and AC3 tags you can choose whether to save APEv2 tags or not, or even completely remove existing APEv2 tags from the files. This addresses compatibility issues with those tags in some players. E.g. many players not supporting APEv2 tags in those formats will show a wrong duration.
  • On Windows and some Linux desktops (e.g. KDE Plasma and Ubuntu GNOME) the task bar or dock icon will now show the progress of loading or saving many files.
  • We addressed some cases where the Picard user interface became totally unresponsive for a while when clustering files or moving and matching files to releases. This was most notable when working with large releases with several hundred tracks.
  • We fixed some scripting functions that are supposed to be used as conditions but behaved differently. This affects $is_complete(), $startswith() and $endswith(). If you use one of these functions in your script please read this forum post on how to update your scripts.
  • macOS: It is now possible to directly open supported files in Picard from Finder. Also you can drag and drop files and folders onto the Picard dock icon to open them.
  • macOS: The Picard app is now fully supported on macOS 10.15 Catalina and can be opened without security warnings.
  • Windows: Picard is now available as a Windows 10 app from the Windows Store. See “Getting the beta” below for details.
  • Windows: Picard is also available as a portable app, which can be run from any folder or external drive without installation. All settings and plugins will be stored in the folder in which the Picard portable app is located.

Getting the beta

You can download the beta version from Picard’s GitHub relase page. Windows users might want to try the new portable version, as it can be run alongside the current installed Picard using different settings.

If you are using Windows 10 please help testing the newly available Picard in the Windows Store. The app is not yet publicly findable in the store, please use the direct link to Picard’s store page.

Helping out

The easiest way to help us getting a great Picard 2.3 release is using and testing this beta. Please report bugs on the Picard issue tracker and provide feedback in the community forums.

Please also help translate Picard. There have been many changes to the user interface, which means many translations are in need for an update. Translating is easy and can be done online: Head over to MusicBrainz’s translation page on Transifex and click on “Help Translate MusicBrainz”. Once you have registered an account on Transifex you can start translating. For Picard the primary resource to translate is “picard“, but there is also the “picard_appstream” resource which is used for providing descriptions for various Linux software-center applications.

If your are a software developer you are very welcomed to provide fixes and features. Picard is free software and the source code is available on GitHub. See Developing on the Picard website to get started.

Acknowledgements

I want to thank everybody who contributed to this release, be it with coding, translation, reporting issues on the bug tracker or general feedback on the community forums. Many of the changes in this release are the direct result of some forum discussion.

Special thanks to team members zas and samj1912 for incessantly reviewing all my code changes. Also a special shout out to the Dutch, Finnish, French and Italian translators which provided a 100% translation of this Picard beta into those languages. Unfortunately the translation process currently is very hidden and anonymous and I would like to see this changed. But I definitely appreciate all the work put into this.

Known issues

  • When deleting scripts the UI shortly shows the previous selection. This is just a visual glitch, the correct script will still be deleted. See PICARD-1708.

GSOC 2019: Add Edit Previews to Non‐Release Entities in MusicBrainz

I am Anirudh Jain (Cyna on IRC), an undergraduate student at Bharati Vidyapeeth’s College of Engineering, New Delhi, India. I’ve been working on the MusicBrainz project of the MetaBrainz Foundation as a participant in Google Summer of Code 2019. This year marks the beginning of me as an Open Source developer. My work during the GSoC 2019 period can be found in my “temp” branch in my musicbrainz-server clone. The changes there will slowly get merged into the “cyna-gsoc” branch in the main musicbrainz-server repository on GitHub as they’re reviewed.

About the Project

Continue reading “GSOC 2019: Add Edit Previews to Non‐Release Entities in MusicBrainz”

GSoC 2019: JSON Web API for BookBrainz

The time has come to wrap up the very productive and learning summer of the last 3 months as a GSoC student with MetaBrainz.

Hello Everyone!!

I am Akhilesh Kumar, a recent graduate from the National Institute of Technology, Hamirpur, India. I have been working on BookBrainz for MetaBrainz Foundation Inc. as a participant in the Google Summer of Code ’19. It has been an amazing experience and I’ve learned a lot over the summer. I was mentored by Nicolas Pelletier (Mr_Monkey on IRC) during this period. This post summarizes my contributions to the project and the experiences that I had throughout the summer.

Continue reading “GSoC 2019: JSON Web API for BookBrainz”

How to set up a ListenBrainz development environment

One of the first rites of passage when working on a new project is creating your development environment. It always seems simple, but sometimes there are bumps along the way. The first activity I did to begin contributing to ListenBrainz was create my development environment. I wasn’t successful with the documentation in the README, so I had to play around and work with the project before I was even running it.

The first part of this post details how to set up your own development environment. Then, the second half talks about the solution I came up with and my first contribution back to the project.

Continue reading “How to set up a ListenBrainz development environment”

Picard 2.0 dev available via PyPi

Sambhav’s GSoC project is all about Picard 2.0, and among progress made the devel version is now installable via PyPi: https://pypi.python.org/pypi/picard_dev

To install the dev builds you need to have a Python 3.5 or greater. At the moment it is mainly a port of 1.4.x to Python 3 and Qt5, with support for HiDPI and new icons !

Please note that Picard Dev version uses a different config file than your stable Picard installation. As such the settings and plugins will be on their default configuration.

To use your stable config with the dev version, simple copy your “Picard.ini” file from your MusicBrainz user folder to “Picard Dev.ini” which can be found in the same folder.

Since testers may want to run a stable 1.4.x version along the 2.0 dev one, the executable is named “picard_dev”.

Of course, we encourage people to test this version on every platform they can, and report any issue.

Thanks to Sambhav Kothari for the fantastic job he did on this ! And stay tuned, more to come !

Sandbox upgrade and downtime: Tuesday, 24 November, 2015 @ 17:00 UTC

Tomorrow, Tuesday, 24 November, 2015 at 17:00 UTC, we will be bringing down rika, our sandbox server, to update the operating system. We expect this to take approximately two and a half hours, during which time rika will be updated to Ubuntu 14.04 LTS. If you are running any services (such as a MusicBrainz sandbox) on rika, remember to back up your data (like the MOTD says!), and be aware that you will need to restart these services once the server is available. Thank you for understanding the brief inconvenience as we put shiny new things in place.

UPDATE: Unfortunately, something has gone wrong during the update process. rika is responding to pings, but no services have come up. We will do our best to resolve this quickly, but there is currently no ETA.