about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/applications/audio/munt/mt32emu-qt.nix75
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 77 insertions, 0 deletions
diff --git a/pkgs/applications/audio/munt/mt32emu-qt.nix b/pkgs/applications/audio/munt/mt32emu-qt.nix
new file mode 100644
index 0000000000000..0c541885689e4
--- /dev/null
+++ b/pkgs/applications/audio/munt/mt32emu-qt.nix
@@ -0,0 +1,75 @@
+{ lib
+, stdenv
+, mkDerivation
+, fetchFromGitHub
+, alsa-lib
+, cmake
+, libpulseaudio
+, libmt32emu
+, pkg-config
+, portaudio
+, qtbase
+, qtmultimedia
+, withJack ? stdenv.hostPlatform.isUnix, libjack2
+}:
+
+mkDerivation rec {
+  pname = "mt32emu-qt";
+  version = "1.9.0";
+
+  src = fetchFromGitHub {
+    owner = "munt";
+    repo = "munt";
+    rev = "mt32emu_qt_${lib.replaceChars [ "." ] [ "_" ] version}";
+    hash = "sha256-9vapBKpl1NC3mIDetuCb452IHV6c7c7NCzSyiBry5oo=";
+  };
+
+  postPatch = ''
+    sed -i -e '/add_subdirectory(mt32emu)/d' CMakeLists.txt
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    libmt32emu
+    portaudio
+    qtbase
+    qtmultimedia
+  ]
+  ++ lib.optionals stdenv.hostPlatform.isLinux [
+    alsa-lib
+    libpulseaudio
+  ]
+  ++ lib.optional withJack libjack2;
+
+  dontFixCmake = true;
+
+  cmakeFlags = [
+    "-Dmt32emu-qt_USE_PULSEAUDIO_DYNAMIC_LOADING=OFF"
+    "-Dmunt_WITH_MT32EMU_QT=ON"
+    "-Dmunt_WITH_MT32EMU_SMF2WAV=OFF"
+  ];
+
+  postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
+    mkdir $out/Applications
+    mv $out/bin/${meta.mainProgram}.app $out/Applications/
+    ln -s $out/{Applications/${meta.mainProgram}.app/Contents/MacOS,bin}/${meta.mainProgram}
+  '';
+
+  meta = with lib; {
+    homepage = "http://munt.sourceforge.net/";
+    description = "A synthesizer application built on Qt and libmt32emu";
+    longDescription = ''
+      mt32emu-qt is a synthesiser application that facilitates both realtime
+      synthesis and conversion of pre-recorded SMF files to WAVE making use of
+      the mt32emu library and the Qt framework.
+    '';
+    license = with licenses; [ gpl3Plus ];
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = platforms.all;
+    mainProgram = "mt32emu-qt";
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index a7ec6f4a55302..eb981cda4ff58 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -26463,6 +26463,8 @@ with pkgs;
 
   libmt32emu = callPackage ../applications/audio/munt/libmt32emu.nix { };
 
+  mt32emu-qt = libsForQt5.callPackage ../applications/audio/munt/mt32emu-qt.nix { };
+
   mt32emu-smf2wav = callPackage ../applications/audio/munt/mt32emu-smf2wav.nix { };
 
   p2pool = callPackage ../applications/misc/p2pool { };