summary refs log tree commit diff
diff options
context:
space:
mode:
authorEvgeny Egorochkin <phreedom@yandex.ru>2013-05-19 09:51:56 -0700
committerEvgeny Egorochkin <phreedom@yandex.ru>2013-05-19 09:51:56 -0700
commita22f94b4f27ebfe5142eff7da60b1c5e2e557880 (patch)
tree94df87cfd30c06b75c221df047ab9c50f64fb6b0
parent677090cad93bc93c9c5c31d122541510328f1abb (diff)
parentb274308c0c6850535a71b4555685f28239b6eea7 (diff)
downloadnixlib-a22f94b4f27ebfe5142eff7da60b1c5e2e557880.tar
nixlib-a22f94b4f27ebfe5142eff7da60b1c5e2e557880.tar.gz
nixlib-a22f94b4f27ebfe5142eff7da60b1c5e2e557880.tar.bz2
nixlib-a22f94b4f27ebfe5142eff7da60b1c5e2e557880.tar.lz
nixlib-a22f94b4f27ebfe5142eff7da60b1c5e2e557880.tar.xz
nixlib-a22f94b4f27ebfe5142eff7da60b1c5e2e557880.tar.zst
nixlib-a22f94b4f27ebfe5142eff7da60b1c5e2e557880.zip
Merge pull request #543 from bjornfor/qmmp
Add Qmmp audio player (plus dependencies)
-rw-r--r--pkgs/applications/audio/qmmp/default.nix57
-rw-r--r--pkgs/data/misc/freepats/default.nix22
-rw-r--r--pkgs/development/libraries/wildmidi/default.nix36
-rw-r--r--pkgs/top-level/all-packages.nix6
4 files changed, 121 insertions, 0 deletions
diff --git a/pkgs/applications/audio/qmmp/default.nix b/pkgs/applications/audio/qmmp/default.nix
new file mode 100644
index 000000000000..b865bc788c69
--- /dev/null
+++ b/pkgs/applications/audio/qmmp/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchurl, cmake, qt4, pkgconfig, x11
+# transports
+, curl, libmms
+# input plugins
+, libmad, taglib, libvorbis, libogg, flac, libmpcdec, libmodplug, libsndfile
+, libcdio, cdparanoia, libcddb, faad2, ffmpeg, wildmidi
+# output plugins
+, alsaLib, pulseaudio
+# effect plugins
+, libsamplerate
+}:
+
+# Additional plugins that can be added:
+#  wavpack (http://www.wavpack.com/)
+#  gme (Game music support)
+#  Ogg Opus support
+#  BS2B effect plugin (http://bs2b.sourceforge.net/)
+#  JACK audio support
+#  ProjectM visualization plugin
+
+# To make MIDI work we must tell Qmmp what instrument configuration to use (and
+# this can unfortunately not be set at configure time):
+# Go to settings (ctrl-p), navigate to the WildMidi plugin and click on
+# Preferences. In the instrument configuration field, type the path to
+# /nix/store/*wildmidi*/etc/wildmidi.cfg (or your own custom cfg file).
+
+# Qmmp installs working .desktop file(s) all by itself, so we don't need to
+# handle that.
+
+stdenv.mkDerivation rec {
+  name = "qmmp-0.7.0";
+
+  src = fetchurl {
+    url = "http://qmmp.ylsoftware.com/files/${name}.tar.bz2";
+    sha256 = "0g8qcs82y3dy06lsgam2w6gh2ccx0frlw9fp4xg947vi3a16g6ig";
+  };
+
+  buildInputs =
+    [ # basic requirements
+      cmake qt4 pkgconfig x11
+      # transports
+      curl libmms
+      # input plugins
+      libmad taglib libvorbis libogg flac libmpcdec libmodplug libsndfile
+      libcdio cdparanoia libcddb faad2 ffmpeg wildmidi
+      # output plugins
+      alsaLib pulseaudio
+      # effect plugins
+      libsamplerate
+    ];
+
+  meta = {
+    description = "Qt-based audio player that looks like Winamp";
+    homepage = http://qmmp.ylsoftware.com/;
+    license = stdenv.lib.licenses.gpl2;
+  };
+}
diff --git a/pkgs/data/misc/freepats/default.nix b/pkgs/data/misc/freepats/default.nix
new file mode 100644
index 000000000000..356041bf761f
--- /dev/null
+++ b/pkgs/data/misc/freepats/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "freepats-20060219";
+
+  src = fetchurl {
+    url = "http://freepats.zenvoid.org/${name}.tar.bz2";
+    sha256 = "12iw36rd94zirll96cd5k0va7p5hxmf2shvjlhzihcmjaw8flq82";
+  };
+
+  installPhase = ''mkdir "$out"; cp -r . "$out"'';
+
+  meta = {
+    description = "Instrument patches, for MIDI synthesizers";
+    longDescription = ''
+      Freepats is a project to create a free and open set of instrument
+      patches, in any format, that can be used with softsynths.
+    '';
+    homepage = http://freepats.zenvoid.org/;
+    license = stdenv.lib.licenses.gpl2;
+  };
+}
diff --git a/pkgs/development/libraries/wildmidi/default.nix b/pkgs/development/libraries/wildmidi/default.nix
new file mode 100644
index 000000000000..0c51bd2d38b5
--- /dev/null
+++ b/pkgs/development/libraries/wildmidi/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, alsaLib, freepats }:
+
+stdenv.mkDerivation rec {
+  name = "wildmidi-0.2.3.5";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/wildmidi/wildmidi/${name}.tar.gz";
+    sha256 = "0m75753mn0rbwja180c2qk53s149wp4k35dijr2i6pa7sc12fr00";
+  };
+
+  # NOTE: $out in configureFlags, like this:
+  #   configureFlags = "--disable-werror --with-wildmidi-cfg=$out/etc/wildmidi.cfg";
+  # is not expanded, so use this workaround:
+  preConfigure = ''
+    configureFlags="--disable-werror --with-wildmidi-cfg=$out/etc/wildmidi.cfg"
+  '';
+
+  buildInputs = [ alsaLib ];
+
+  postInstall = ''
+    mkdir "$out"/etc
+    echo "dir ${freepats}" > "$out"/etc/wildmidi.cfg
+    echo "source ${freepats}/freepats.cfg" >> "$out"/etc/wildmidi.cfg
+  '';
+
+  meta = {
+    description = "Software MIDI player and library";
+    longDescription = ''
+      WildMIDI is a simple software midi player which has a core softsynth
+      library that can be use with other applications.
+    '';
+    homepage = http://wildmidi.sourceforge.net/;
+    # The library is LGPLv3, the wildmidi executable is GPLv3
+    license = stdenv.lib.licenses.lgpl3;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c2c2dacecead..6d1a47b29e86 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -5204,6 +5204,8 @@ let
       inherit libpng;
     };
 
+  wildmidi = callPackage ../development/libraries/wildmidi { };
+
   wvstreams = callPackage ../development/libraries/wvstreams { };
 
   wxGTK = wxGTK28;
@@ -6573,6 +6575,8 @@ let
 
   freefont_ttf = callPackage ../data/fonts/freefont-ttf { };
 
+  freepats = callPackage ../data/misc/freepats { };
+
   gentium = callPackage ../data/fonts/gentium {};
 
   gnome_user_docs = callPackage ../data/documentation/gnome-user-docs { };
@@ -7811,6 +7815,8 @@ let
 
   qemuImage = callPackage ../applications/virtualization/qemu/linux-img { };
 
+  qmmp = callPackage ../applications/audio/qmmp { };
+
   qsampler = callPackage ../applications/audio/qsampler { };
 
   qsynth = callPackage ../applications/audio/qsynth { };