about summary refs log tree commit diff
path: root/pkgs/by-name/co
diff options
context:
space:
mode:
authorOPNA2608 <opna2608@protonmail.com>2024-03-13 16:38:35 +0100
committerOPNA2608 <opna2608@protonmail.com>2024-04-11 23:14:58 +0200
commit3f563e3b755177f0bb35d712674c9d4252b55e76 (patch)
tree4ffe8843d8e7f82c9aac1f0111acb93f3be780c6 /pkgs/by-name/co
parent94bc20ad0f8f8f09dc115d10739f15f5f0bf11ed (diff)
corrscope: Migrate to by-name
Diffstat (limited to 'pkgs/by-name/co')
-rw-r--r--pkgs/by-name/co/corrscope/package.nix87
1 files changed, 87 insertions, 0 deletions
diff --git a/pkgs/by-name/co/corrscope/package.nix b/pkgs/by-name/co/corrscope/package.nix
new file mode 100644
index 0000000000000..fbf46fc4aae89
--- /dev/null
+++ b/pkgs/by-name/co/corrscope/package.nix
@@ -0,0 +1,87 @@
+{ stdenv
+, lib
+, python3Packages
+, fetchFromGitHub
+, ffmpeg-full
+, libsForQt5
+, testers
+, corrscope
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "corrscope";
+  version = "0.9.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "corrscope";
+    repo = "corrscope";
+    rev = version;
+    hash = "sha256-kOPhVm4epIhBSsgQVKNCoQ7DZcMG/b3sapxwwKo/V+U=";
+  };
+
+  pythonRelaxDeps = [ "attrs" "ruamel.yaml" ];
+
+  nativeBuildInputs = (with libsForQt5; [
+    wrapQtAppsHook
+  ]) ++ (with python3Packages; [
+    poetry-core
+    pythonRelaxDepsHook
+  ]);
+
+  buildInputs = [
+    ffmpeg-full
+  ] ++ (with libsForQt5; [
+    qtbase
+  ] ++ lib.optionals stdenv.hostPlatform.isLinux [
+    qtwayland
+  ]);
+
+  propagatedBuildInputs = with python3Packages; [
+    appdirs
+    appnope
+    atomicwrites
+    attrs
+    click
+    matplotlib
+    numpy
+    packaging
+    qtpy
+    pyqt5
+    ruamel-yaml
+    colorspacious
+  ];
+
+  dontWrapQtApps = true;
+
+  preFixup = ''
+    makeWrapperArgs+=(
+      --prefix PATH : ${lib.makeBinPath [ ffmpeg-full ]}
+      "''${qtWrapperArgs[@]}"
+    )
+  '';
+
+  passthru.tests.version = testers.testVersion {
+    package = corrscope;
+    # Tries writing to
+    # - $HOME/.local/share/corrscope on Linux
+    # - $HOME/Library/Application Support/corrscope on Darwin
+    command = "env HOME=$TMPDIR ${lib.getExe corrscope} --version";
+  };
+
+  meta = with lib; {
+    description = "Render wave files into oscilloscope views, featuring advanced correlation-based triggering algorithm";
+    longDescription = ''
+      Corrscope renders oscilloscope views of WAV files recorded from chiptune (game music from
+      retro sound chips).
+
+      Corrscope uses "waveform correlation" to track complex waves (including SNES and Sega
+      Genesis/FM synthesis) which jump around on other oscilloscope programs.
+    '';
+    homepage = "https://github.com/corrscope/corrscope";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = platforms.all;
+    mainProgram = "corr";
+  };
+}