Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

essentia-extractor: init at 2.1_beta2 #73589

Merged
merged 2 commits into from Nov 18, 2019

Conversation

lovesegfault
Copy link
Member

@lovesegfault lovesegfault commented Nov 18, 2019

Motivation for this change

Beets (tools/audio/beets) has a plugin called absubmit which relies on a statically linked binary provided by MusicBrainz. This is an example output of the essentia project called streaming_extractor_music, but called in the MusicBrainz archives as essentia-extractor. It reads an audio file and outputs a format the AcousticBrainz database can use.

Normally I'd try to package essentia itself, but it uses waf as its build system and all my attempts to package it have left me depressed, so I think going with the binary provided by MusicBrainz, which they recommend, is a better approach. Citing the MB FAQ:

Q: Why does AcousticBrainz prefer that people use the provided static extractor builds, rather than letting others build their own versions?

A: Besides building your own version being a major pain, it is possible for different combinations of libraries and compilers (gcc vs clang, libffmpeg vs libav) to produce slightly different outputs. We're aiming to reduce the variances of output between the extractors in an effort to create the most consistent and stable dataset. We're going to build a test suite in the future that can evaluate the performance of a compiled extractor, but we're not quite there yet. So, for the time being, if it is possible in any way for you to use one of our static builds, we would greatly appreciate that.

This will be followed by a PR fixing beets' deps.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.
Notify maintainers

cc @

@lovesegfault
Copy link
Member Author

nix-review-pr looking good.

[1 built, 0.0 MiB DL]
https://github.com/NixOS/nixpkgs/pull/73589
1 package were build:
essentia-extractor

Copy link
Member

@ryantm ryantm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm pretty sure the structure of these nix expressions will fool nixpkgs-update into thinking it can update it, but it will do a bad job, like only update one architecture. It looks like this project is not updated frequently, so I doubt it will be much of an issue though.

pkgs/tools/audio/essentia-extractor/default.nix Outdated Show resolved Hide resolved
pkgs/tools/audio/essentia-extractor/default.nix Outdated Show resolved Hide resolved
@ryantm ryantm merged commit c86b032 into NixOS:master Nov 18, 2019
@lovesegfault lovesegfault mentioned this pull request Nov 18, 2019
10 tasks
dtzWill pushed a commit to dtzWill/nixpkgs that referenced this pull request Nov 18, 2019
essentia-extractor: init at 2.1_beta2
(cherry picked from commit c86b032)
@lovesegfault lovesegfault deleted the essentia-extractor branch April 7, 2020 07:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants