diff --git a/pkgs/applications/audio/fmsynth/default.nix b/pkgs/applications/audio/fmsynth/default.nix new file mode 100644 index 000000000000..22944ffefe44 --- /dev/null +++ b/pkgs/applications/audio/fmsynth/default.nix @@ -0,0 +1,48 @@ +{ stdenv, fetchFromGitHub, gtkmm2, lv2, lvtk, pkgconfig }: +stdenv.mkDerivation rec { + name = "fmsynth-unstable-${version}"; + version = "2015-02-07"; + src = fetchFromGitHub { + owner = "Themaister"; + repo = "libfmsynth"; + rev = "9ffa1d2fea287f1209b210d2dbde2f0f60f37176"; + sha256 = "1bk0bpr069hzx2508rgfbwpxiqgr7dmdkhqdywmd2i4rmibgrm1q"; + }; + + buildInputs = [ gtkmm2 lv2 lvtk pkgconfig ]; + + buildPhase = '' + cd lv2 + substituteInPlace GNUmakefile --replace "/usr/lib/lv2" "$out/lib/lv2" + make + ''; + + preInstall = "mkdir -p $out/lib/lv2"; + + meta = { + description = "a flexible 8 operator FM synthesizer for LV2"; + longDescription = '' + The synth core supports: + + - Arbitrary amounts of polyphony + - 8 operators + - No fixed "algorithms" + - Arbitrary modulation, every operator can modulate any other operator, even itself + - Arbitrary carrier selection, every operator can be a carrier + - Sine LFO, separate LFO per voice, modulates amplitude and frequency of operators + - Envelope per operator + - Carrier stereo panning + - Velocity sensitivity per operator + - Mod wheel sensitivity per operator + - Pitch bend + - Keyboard scaling + - Sustain, sustained keys can overlap each other for a very rich sound + - Full floating point implementation optimized for SIMD + - Hard real-time constraints + ''; + homepage = https://github.com/Themaister/libfmsynth; + license = stdenv.lib.licenses.mit; + maintainers = [ stdenv.lib.maintainers.magnetophon ]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 262e4e058b39..64257f56b5e8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7072,7 +7072,7 @@ in #GMP ex-satellite, so better keep it near gmp mpfr = callPackage ../development/libraries/mpfr/default.nix { }; - + mpfi = callPackage ../development/libraries/mpfi { }; # A GMP fork @@ -12770,6 +12770,8 @@ in fmit = qt5.callPackage ../applications/audio/fmit { }; + fmsynth = callPackage ../applications/audio/fmsynth { }; + focuswriter = callPackage ../applications/editors/focuswriter { }; font-manager = callPackage ../applications/misc/font-manager { };