summary refs log tree commit diff
diff options
context:
space:
mode:
authorBart Brouns <bart@magnetophon.nl>2015-03-16 15:39:52 +0100
committerBart Brouns <bart@magnetophon.nl>2015-03-16 17:57:09 +0100
commit2479dc0c636995788301892b92c3c061477b4738 (patch)
tree54c303eb3ec6abd45bd0827ea34624d5689cd3a9
parent82ee506f43eb641bdca2a68ad1fa1bcc23d93ded (diff)
downloadnixpkgs-2479dc0c636995788301892b92c3c061477b4738.tar
nixpkgs-2479dc0c636995788301892b92c3c061477b4738.tar.gz
nixpkgs-2479dc0c636995788301892b92c3c061477b4738.tar.bz2
nixpkgs-2479dc0c636995788301892b92c3c061477b4738.tar.lz
nixpkgs-2479dc0c636995788301892b92c3c061477b4738.tar.xz
nixpkgs-2479dc0c636995788301892b92c3c061477b4738.tar.zst
nixpkgs-2479dc0c636995788301892b92c3c061477b4738.zip
add puredata-with-plugins:
a wrapper for puredata, plus packages for the following plugins:
cyclone
helmholtz
maxlib
mrpeach
puremapping
timbreid
zexy
-rw-r--r--pkgs/applications/audio/pd-plugins/cyclone/default.nix41
-rw-r--r--pkgs/applications/audio/pd-plugins/helmholtz/default.nix42
-rw-r--r--pkgs/applications/audio/pd-plugins/maxlib/default.nix33
-rw-r--r--pkgs/applications/audio/pd-plugins/mrpeach/default.nix60
-rw-r--r--pkgs/applications/audio/pd-plugins/puremapping/default.nix30
-rw-r--r--pkgs/applications/audio/pd-plugins/timbreid/default.nix35
-rw-r--r--pkgs/applications/audio/pd-plugins/zexy/default.nix36
-rw-r--r--pkgs/applications/audio/puredata/wrapper.nix23
-rw-r--r--pkgs/top-level/all-packages.nix15
9 files changed, 315 insertions, 0 deletions
diff --git a/pkgs/applications/audio/pd-plugins/cyclone/default.nix b/pkgs/applications/audio/pd-plugins/cyclone/default.nix
new file mode 100644
index 00000000000..30bdd534d40
--- /dev/null
+++ b/pkgs/applications/audio/pd-plugins/cyclone/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, puredata }:
+
+stdenv.mkDerivation rec {
+  name = "cyclone-${version}";
+  version = "0.1-alpha55";
+
+  src = fetchurl {
+    url = "http://downloads.sourceforge.net/project/pure-data/libraries/cyclone/${name}.tar.gz";
+    sha256 = "1yys9xrlz09xgnqk2gqdl8vw6xj6l9d7km2lkihidgjql0jx5b5i";
+  };
+
+  buildInputs = [ puredata ];
+
+  /*unpackPhase = ''*/
+    /*unzip $src*/
+  /*'';*/
+
+  patchPhase = ''
+    for file in `grep -r -l g_canvas.h`
+      do
+        sed -i 's|#include "g_canvas.h"|#include "${puredata}/include/pd/g_canvas.h"|g' $file
+      done
+    for file in `grep -r -l m_imp.h`
+      do
+        sed -i 's|#include "m_imp.h"|#include "${puredata}/include/pd/m_imp.h"|g' $file
+      done
+  '';
+
+  installPhase = ''
+    mkdir -p $out/cyclone
+    cp -r bin/* $out/cyclone
+  '';
+
+  meta = {
+    description = "A library of PureData classes, bringing some level of compatibility between Max/MSP and Pd environments.";
+    homepage = http://puredata.info/downloads/cyclone;
+    license = stdenv.lib.licenses.tcltk;
+    maintainers = [ stdenv.lib.maintainers.magnetophon ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/pd-plugins/helmholtz/default.nix b/pkgs/applications/audio/pd-plugins/helmholtz/default.nix
new file mode 100644
index 00000000000..edc8aeb6eb0
--- /dev/null
+++ b/pkgs/applications/audio/pd-plugins/helmholtz/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, unzip, puredata }:
+
+stdenv.mkDerivation rec {
+  name = "helmholtz";
+
+  src = fetchurl {
+    url = "http://www.katjaas.nl/helmholtz/helmholtz~.zip";
+    name = "helmholtz.zip";
+    sha256 = "0h1fj7lmvq9j6rmw33rb8k0byxb898bi2xhcwkqalb84avhywgvs";
+  };
+
+  buildInputs = [ unzip puredata ];
+
+  unpackPhase = ''
+    unzip $src
+    mv helmholtz~/src/helmholtz\~.cpp .
+    mv helmholtz~/src/Helmholtz.cpp .
+    mv helmholtz~/src/include/ .
+    mv helmholtz~/src/Makefile .
+    rm -rf helmholtz~/src/
+    rm helmholtz~/helmholtz~.pd_darwin
+    rm helmholtz~/helmholtz~.dll
+    rm -rf __MACOSX
+  '';
+
+  patchPhase = ''
+    sed -i "s@current: pd_darwin@current: pd_linux@g" Makefile
+    sed -i "s@-Wl@@g" Makefile
+  '';
+
+  installPhase = ''
+    cp -r helmholtz~/ $out/
+  '';
+
+  meta = {
+    description = "time domain pitch tracker for Pure Data";
+    homepage = http://www.katjaas.nl/helmholtz/helmholtz.html;
+    license = stdenv.lib.licenses.bsd3;
+    maintainers = [ stdenv.lib.maintainers.magnetophon ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/pd-plugins/maxlib/default.nix b/pkgs/applications/audio/pd-plugins/maxlib/default.nix
new file mode 100644
index 00000000000..0d8b2dd8e2e
--- /dev/null
+++ b/pkgs/applications/audio/pd-plugins/maxlib/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, puredata }:
+
+stdenv.mkDerivation rec {
+  name = "maxlib-${version}";
+  version = "1.5.5";
+
+  src = fetchurl {
+    url = "http://downloads.sourceforge.net/project/pure-data/libraries/maxlib/${name}.tar.gz";
+    sha256 = "0vxl9s815dnay5r0067rxsfh8f6jbk61f0nxrydzjydfycza7p1w";
+  };
+
+  buildInputs = [ puredata ];
+
+  patchPhase = ''
+    for i in ${puredata}/include/pd/*; do
+      ln -s $i .
+    done
+    sed -i "s@/usr@$out@g" Makefile
+  '';
+
+  postInstall = ''
+    mv $out/local/lib/pd-externals/maxlib/ $out
+    rm -rf $out/local/
+  '';
+
+  meta = {
+    description = "A library of non-tilde externals for puredata, by Miller Puckette.";
+    homepage = http://puredata.info/downloads/maxlib;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ stdenv.lib.maintainers.magnetophon ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/pd-plugins/mrpeach/default.nix b/pkgs/applications/audio/pd-plugins/mrpeach/default.nix
new file mode 100644
index 00000000000..1d553231ded
--- /dev/null
+++ b/pkgs/applications/audio/pd-plugins/mrpeach/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchurl, puredata }:
+
+stdenv.mkDerivation rec {
+  name = "mrpeach-${version}";
+  version = "1.1";
+
+  # this was to only usable url I could find:
+  # - The main url changes hash: http://pure-data.cvs.sourceforge.net/viewvc/pure-data/externals/mrpeach/?view=tar
+  # - There are lot's of places where this SW is available as part of a big pkg: pd-extended, pd-l2ork
+  # - It's just 211K
+
+  src = fetchurl {
+    url = "http://slackonly.com/pub/korgie/sources/pd_mrpeach-2011.10.21.tar.gz";
+    sha256 = "12jqba3jsdrk20ib9wc2wiivki88ypcd4mkzgsri9siywbbz9w8x";
+  };
+
+  buildInputs = [puredata ];
+
+  patchPhase = ''
+    for D in net osc
+    do
+      sed -i "s@prefix = /usr/local@prefix = $out@g" $D/Makefile
+      for i in ${puredata}/include/pd/*; do
+        ln -s $i $D/
+      done
+    done
+  '';
+
+  buildPhase = ''
+    for D in net osc
+    do
+      cd $D
+      make
+      cd ..
+    done
+  '';
+
+  installPhase = ''
+    for D in net osc
+    do
+      cd $D
+      make install
+      cd ..
+    done
+  '';
+
+  fixupPhase = ''
+    mv $out/lib/pd-externals/net $out
+    mv $out/lib/pd-externals/osc $out
+    rm -rf $out/lib
+  '';
+
+  meta = {
+    description = "A collection of Pd objectclasses for OSC-messages.";
+    homepage = http://puredata.info/downloads/osc;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ stdenv.lib.maintainers.magnetophon ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/pd-plugins/puremapping/default.nix b/pkgs/applications/audio/pd-plugins/puremapping/default.nix
new file mode 100644
index 00000000000..f7f1969fe27
--- /dev/null
+++ b/pkgs/applications/audio/pd-plugins/puremapping/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, unzip, puredata }:
+
+stdenv.mkDerivation rec {
+  name = "puremapping";
+
+  src = fetchurl {
+    url = "http://www.chnry.net/ch/IMG/zip/puremapping-libdir-generic.zip";
+    name = "puremapping";
+    sha256 = "1ygzxsfj3rnzjkpmgi4wch810q8s5vm1gdam6a938hbbvamafgvc";
+  };
+
+  buildInputs = [ unzip puredata ];
+
+  unpackPhase = ''
+    unzip $src
+  '';
+
+  installPhase = ''
+    mkdir -p $out/puremapping
+    mv puremapping/ $out
+  '';
+
+  meta = {
+    description = "Set of externals to facilitate the use of sensors within Pure Data and to create complex relations between input and output of a dynamic system.";
+    homepage = http://www.chnry.net/ch/?090-Pure-Mapping&lang=en;
+    license = stdenv.lib.licenses.gpl1;
+    maintainers = [ stdenv.lib.maintainers.magnetophon ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/pd-plugins/timbreid/default.nix b/pkgs/applications/audio/pd-plugins/timbreid/default.nix
new file mode 100644
index 00000000000..f8a25256bb0
--- /dev/null
+++ b/pkgs/applications/audio/pd-plugins/timbreid/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, unzip, puredata }:
+
+stdenv.mkDerivation rec {
+  version = "0.6.0";
+  name = "timbreid-${version}";
+
+  src = fetchurl {
+    url = "http://williambrent.conflations.com/pd/timbreID-${version}-src.zip";
+    sha256 = "02rnkb0vpjxrr60c3hryv7zhyjpci2mi9dk27kjxpj5zp26gjk0p";
+  };
+
+  buildInputs = [ unzip puredata ];
+
+  unpackPhase = ''
+    unzip $src
+    mv timbreID-0.6.0-src/tID/* .
+    rm -rf timbreID-0.6.0-src/tID/
+    rm -rf timbreID-0.6.0-src/INSTALL.txt
+  '';
+
+  installPhase = ''
+    mkdir -p $out/
+    cp -r *.pd $out/
+    cp -r *.pd_linux $out/
+    cp -r *.wav $out/
+  '';
+
+  meta = {
+    description = "A collection of audio feature analysis externals for puredata";
+    homepage = http://williambrent.conflations.com/pages/research.html;
+    license = stdenv.lib.licenses.gpl3;
+    maintainers = [ stdenv.lib.maintainers.magnetophon ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/pd-plugins/zexy/default.nix b/pkgs/applications/audio/pd-plugins/zexy/default.nix
new file mode 100644
index 00000000000..89a0f8191df
--- /dev/null
+++ b/pkgs/applications/audio/pd-plugins/zexy/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, autoconf, automake, puredata }:
+
+stdenv.mkDerivation rec {
+  name = "zexy-${version}";
+  version = "2.2.4";
+
+  src = fetchurl {
+    url = "http://puredata.info/downloads/zexy/releases/${version}/${name}.tar.gz";
+    sha256 = "1xpgl82c2lc6zfswjsa7z10yhv5jb7a4znzh3nc7ffrzm1z8vylp";
+  };
+
+  buildInputs = [ autoconf automake puredata ];
+
+  patchPhase = ''
+    cd src/
+    for i in ${puredata}/include/pd/*; do
+      ln -s $i .
+    done
+    patchShebangs
+    ./bootstrap.sh
+    ./configure --enable-lpt=no --prefix=$out
+  '';
+
+  postInstall = ''
+    mv $out/lib/pd/extra/zexy $out
+    rm -rf $out/lib
+  '';
+
+  meta = {
+    description = "the swiss army knife for puredata";
+    homepage = http://puredata.info/downloads/zexy;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ stdenv.lib.maintainers.magnetophon ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/puredata/wrapper.nix b/pkgs/applications/audio/puredata/wrapper.nix
new file mode 100644
index 00000000000..0a30037b226
--- /dev/null
+++ b/pkgs/applications/audio/puredata/wrapper.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildEnv, puredata, makeWrapper, plugins }:
+
+let
+puredataFlags = map (x: "-path ${x}/") plugins;
+drv = buildEnv {
+  name = "puredata-with-plugins-" + (builtins.parseDrvName puredata.name).version;
+
+  paths = [ puredata ] ++ plugins;
+
+  postBuild = ''
+    # TODO: This could be avoided if buildEnv could be forced to create all directories
+    if [ -L $out/bin ]; then
+      rm $out/bin
+      mkdir $out/bin
+      for i in ${puredata}/bin/*; do
+        ln -s $i $out/bin
+      done
+    fi
+    wrapProgram $out/bin/pd \
+      --add-flags "${toString puredataFlags}"
+  '';
+  };
+in stdenv.lib.overrideDerivation drv (x : { buildInputs = x.buildInputs ++ [ makeWrapper ]; })
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 1dcabd9bb21..9e1882ab584 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -9993,6 +9993,8 @@ let
 
   cvs2svn = callPackage ../applications/version-management/cvs2svn { };
 
+  cyclone = callPackage ../applications/audio/pd-plugins/cyclone  { };
+
   d4x = callPackage ../applications/misc/d4x { };
 
   darcs = haskell-ng.lib.overrideCabal haskellngPackages.darcs (drv: {
@@ -10659,6 +10661,8 @@ let
 
   hello = callPackage ../applications/misc/hello/ex-2 { };
 
+  helmholtz = callPackage ../applications/audio/pd-plugins/helmholtz { };
+
   herbstluftwm = callPackage ../applications/window-managers/herbstluftwm { };
 
   hexchat = callPackage ../applications/networking/irc/hexchat { };
@@ -11082,6 +11086,8 @@ let
     vaapiSupport = config.mpv.vaapiSupport or false;
   };
 
+  mrpeach = callPackage ../applications/audio/pd-plugins/mrpeach { };
+
   mrxvt = callPackage ../applications/misc/mrxvt { };
 
   mudlet = callPackage ../games/mudlet {
@@ -11152,6 +11158,8 @@ let
     lua = lua5;
  };
 
+  maxlib = callPackage ../applications/audio/pd-plugins/maxlib { };
+
   mupdf = callPackage ../applications/misc/mupdf {
     openjpeg = openjpeg_2_0_1;
   };
@@ -11337,6 +11345,9 @@ let
   pulseview = callPackage ../applications/science/electronics/pulseview { };
 
   puredata = callPackage ../applications/audio/puredata { };
+  puredata-with-plugins = plugins: callPackage ../applications/audio/puredata/wrapper.nix { inherit plugins; };
+
+  puremapping = callPackage ../applications/audio/pd-plugins/puremapping { };
 
   pythonmagick = callPackage ../applications/graphics/PythonMagick { };
 
@@ -11741,6 +11752,8 @@ let
     gtk = gtk3;
   };
 
+  timbreid = callPackage ../applications/audio/pd-plugins/timbreid { };
+
   timidity = callPackage ../tools/misc/timidity { };
 
   tint2 = callPackage ../applications/misc/tint2 { };
@@ -12328,6 +12341,8 @@ let
 
   zeroc_ice = callPackage ../development/libraries/zeroc-ice { };
 
+  zexy = callPackage ../applications/audio/pd-plugins/zexy  { };
+
   girara = callPackage ../applications/misc/girara {
     gtk = gtk3;
     stdenv = overrideCC stdenv gcc49;