From ab7d500f36fb432760cb313782c3f5c45b90fb98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Sat, 18 May 2013 20:03:03 +0200 Subject: [PATCH 1/3] freepats: new package freepats is a project to create a free and open set of instrument patches, in any format, that can be used with softsynths. I'm adding it because it is needed for WildMIDI, which is needed for MIDI support in Qmmp (audio player). I'll add WildMIDI and Qmmp in the next commit(s). --- pkgs/data/misc/freepats/default.nix | 22 ++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 24 insertions(+) create mode 100644 pkgs/data/misc/freepats/default.nix 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/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c2c2dacecead..96ca1807be4b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6573,6 +6573,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 { }; From 512f0874a16902ef05796d5cae5d124dfd6b0624 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Sat, 18 May 2013 20:13:32 +0200 Subject: [PATCH 2/3] wildmidi: new package WildMIDI is a simple software midi player which has a core softsynth library that can be use with other applications. I have tested the wildmidi executable with a MIDI file. It works. --- .../libraries/wildmidi/default.nix | 36 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 38 insertions(+) create mode 100644 pkgs/development/libraries/wildmidi/default.nix 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 96ca1807be4b..51915ae3a53c 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; From b274308c0c6850535a71b4555685f28239b6eea7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Sun, 19 May 2013 13:18:37 +0200 Subject: [PATCH 3/3] qmmp: new package Qmmp is a Qt-based audio player that look like Winamp. --- pkgs/applications/audio/qmmp/default.nix | 57 ++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 59 insertions(+) create mode 100644 pkgs/applications/audio/qmmp/default.nix 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/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 51915ae3a53c..6d1a47b29e86 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7815,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 { };