summary refs log tree commit diff
path: root/pkgs/applications/audio/friture
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/audio/friture')
-rw-r--r--pkgs/applications/audio/friture/default.nix44
-rw-r--r--pkgs/applications/audio/friture/factorial.patch13
2 files changed, 57 insertions, 0 deletions
diff --git a/pkgs/applications/audio/friture/default.nix b/pkgs/applications/audio/friture/default.nix
new file mode 100644
index 00000000000..483f873fbd5
--- /dev/null
+++ b/pkgs/applications/audio/friture/default.nix
@@ -0,0 +1,44 @@
+{ lib, fetchFromGitHub, python3Packages, wrapQtAppsHook }:
+
+let
+  py = python3Packages;
+in py.buildPythonApplication rec {
+  pname = "friture";
+  version = "0.36";
+
+  src = fetchFromGitHub {
+    owner = "tlecomte";
+    repo = "friture";
+    rev = "v${version}";
+    sha256 = "1pz8v0qbzqq3ig9w33cp027s6c8rj316x5sy8pqs5nsiny9ddnk6";
+  };
+
+  # module imports scipy.misc.factorial, but it has been removed since scipy
+  # 1.3.0; use scipy.special.factorial instead
+  patches = [ ./factorial.patch ];
+
+  nativeBuildInputs = (with py; [ numpy cython scipy ]) ++
+    [ wrapQtAppsHook ];
+
+  propagatedBuildInputs = with py; [
+    sounddevice
+    pyopengl
+    docutils
+    numpy
+    pyqt5
+    appdirs
+    pyrr
+  ];
+
+  postFixup = ''
+    wrapQtApp $out/bin/friture
+    wrapQtApp $out/bin/.friture-wrapped
+  '';
+
+  meta = with lib; {
+    description = "A real-time audio analyzer";
+    homepage = http://friture.org/;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.laikq ];
+  };
+}
diff --git a/pkgs/applications/audio/friture/factorial.patch b/pkgs/applications/audio/friture/factorial.patch
new file mode 100644
index 00000000000..de053802932
--- /dev/null
+++ b/pkgs/applications/audio/friture/factorial.patch
@@ -0,0 +1,13 @@
+diff --git a/friture/filter_design.py b/friture/filter_design.py
+index 9876c43..1cc749a 100644
+--- a/friture/filter_design.py
++++ b/friture/filter_design.py
+@@ -2,7 +2,7 @@
+ from numpy import pi, exp, arange, cos, sin, sqrt, zeros, ones, log, arange, set_printoptions
+ # the three following lines are a workaround for a bug with scipy and py2exe
+ # together. See http://www.pyinstaller.org/ticket/83 for reference.
+-from scipy.misc import factorial
++from scipy.special import factorial
+ import scipy
+ scipy.factorial = factorial
+