summary refs log tree commit diff
path: root/pkgs/applications/audio/keyfinder/default.nix
blob: 33ce627e56efc1cc40906436bdf42d15a9d715d0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
{ stdenv, fetchFromGitHub, libav_0_8, libkeyfinder, qt5, taglib }:

stdenv.mkDerivation rec {
  version = "1.25-17-gf670607";
  name = "keyfinder-${version}";

  src = fetchFromGitHub {
    repo = "is_KeyFinder";
    owner = "ibsh";
    rev = "f6706074435ac14c5238ee3f0dd22ac22d72af9c";
    sha256 = "1sfnywc6jdpm03344i6i4pz13mqa4i5agagj4k6252m63cqmjkrc";
  };

  meta = with stdenv.lib; {
    description = "Musical key detection for digital audio (graphical UI)";
    longDescription = ''
      KeyFinder is an open source key detection tool, for DJs interested in
      harmonic and tonal mixing. Designed primarily for electronic and dance
      music, it is highly configurable and can be applied to many genres. It
      supports a huge range of codecs thanks to LibAV, and writes to metadata
      tags using TagLib. It's intended to be very focused: no library
      management, no track suggestions, no media player. Just a fast,
      efficient workflow tool.
    '';
    homepage = http://www.ibrahimshaath.co.uk/keyfinder/;
    license = with licenses; gpl3Plus;
    platforms = with platforms; linux;
    maintainers = with maintainers; [ nckx ];
  };

  # TODO: upgrade libav when "Audio sample format conversion failed" is fixed
  buildInputs = [ libav_0_8 libkeyfinder qt5.base qt5.xmlpatterns taglib ];

  configurePhase = ''
    substituteInPlace is_KeyFinder.pro \
       --replace "keyfinder.0" "keyfinder" \
       --replace '$$[QT_INSTALL_PREFIX]' "$out"
    qmake
  '';

  enableParallelBuilding = true;
}