2024-08-03 15:32:37 +00:00
|
|
|
|
{
|
|
|
|
|
lib,
|
|
|
|
|
stdenv,
|
|
|
|
|
fetchFromGitHub,
|
|
|
|
|
cmake,
|
2024-07-14 23:35:15 +00:00
|
|
|
|
ninja,
|
2024-07-14 23:35:15 +00:00
|
|
|
|
pkg-config,
|
2024-08-03 15:32:37 +00:00
|
|
|
|
eigen,
|
2024-08-27 21:52:44 +00:00
|
|
|
|
ffmpeg,
|
2024-07-14 23:35:15 +00:00
|
|
|
|
libresample,
|
|
|
|
|
kissfft,
|
2024-08-03 15:32:37 +00:00
|
|
|
|
}:
|
2024-07-14 23:35:15 +00:00
|
|
|
|
|
2019-08-13 21:52:01 +00:00
|
|
|
|
stdenv.mkDerivation {
|
2019-03-20 12:27:13 +00:00
|
|
|
|
pname = "musly";
|
2024-07-14 23:35:15 +00:00
|
|
|
|
version = "0.1-unstable-2019-09-05";
|
|
|
|
|
|
2024-07-14 23:35:15 +00:00
|
|
|
|
outputs = [
|
|
|
|
|
"bin"
|
|
|
|
|
"dev"
|
|
|
|
|
"out"
|
|
|
|
|
"doc"
|
|
|
|
|
];
|
|
|
|
|
|
2019-03-20 12:27:13 +00:00
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
|
owner = "dominikschnitzer";
|
|
|
|
|
repo = "musly";
|
2024-07-14 23:35:15 +00:00
|
|
|
|
rev = "7a0c6a9a2782e6fca84fb86fce5232a8c8a104ed";
|
|
|
|
|
hash = "sha256-DOvGGx3pCcvPPsT97sQlINjT1sJy8ZWvxLsFGGZbgzE=";
|
2019-03-20 12:27:13 +00:00
|
|
|
|
};
|
2024-07-14 23:35:15 +00:00
|
|
|
|
|
|
|
|
|
patches = [
|
|
|
|
|
# Fix build with FFmpeg 7, C++17, and external libresample and kissfft
|
|
|
|
|
# https://github.com/dominikschnitzer/musly/pull/53
|
|
|
|
|
# Last commit omitted, as it is a large non‐functional removal
|
|
|
|
|
./0001-Fix-build-with-FFmpeg-7.patch
|
|
|
|
|
./0002-Fix-build-with-C-17.patch
|
|
|
|
|
./0003-Modernize-CMake-build-system.patch
|
|
|
|
|
./0004-Use-pkg-config-to-find-libresample-and-kissfft.patch
|
|
|
|
|
];
|
|
|
|
|
|
2024-07-14 23:35:15 +00:00
|
|
|
|
nativeBuildInputs = [
|
|
|
|
|
cmake
|
|
|
|
|
ninja
|
2024-07-14 23:35:15 +00:00
|
|
|
|
pkg-config
|
2024-07-14 23:35:15 +00:00
|
|
|
|
];
|
2024-07-14 23:35:15 +00:00
|
|
|
|
|
2024-08-03 15:32:37 +00:00
|
|
|
|
buildInputs = [
|
|
|
|
|
eigen
|
2024-08-27 21:52:44 +00:00
|
|
|
|
ffmpeg
|
2024-07-14 23:35:15 +00:00
|
|
|
|
libresample
|
|
|
|
|
kissfft
|
2024-08-03 15:32:37 +00:00
|
|
|
|
];
|
2024-07-14 23:35:15 +00:00
|
|
|
|
|
|
|
|
|
doCheck = true;
|
2019-03-20 12:27:13 +00:00
|
|
|
|
|
2024-07-14 23:35:15 +00:00
|
|
|
|
meta = {
|
2020-04-01 01:11:51 +00:00
|
|
|
|
homepage = "https://www.musly.org";
|
2019-03-20 12:27:13 +00:00
|
|
|
|
description = "Fast and high-quality audio music similarity library written in C/C++";
|
|
|
|
|
longDescription = ''
|
|
|
|
|
Musly analyzes the the audio signal of music pieces to estimate their similarity.
|
|
|
|
|
No meta-data about the music piece is included in the similarity estimation.
|
|
|
|
|
To use Musly in your application, have a look at the library documentation
|
|
|
|
|
or try the command line application included in the package and start generating
|
|
|
|
|
some automatic music playlists right away.
|
|
|
|
|
'';
|
2024-07-14 23:35:15 +00:00
|
|
|
|
license = lib.licenses.mpl20;
|
|
|
|
|
maintainers = with lib.maintainers; [ ggpeti ];
|
|
|
|
|
platforms = lib.platforms.unix;
|
2024-02-11 02:19:15 +00:00
|
|
|
|
mainProgram = "musly";
|
2019-03-20 12:27:13 +00:00
|
|
|
|
};
|
|
|
|
|
}
|