bottom: add gpu recognition, new apple sdk, refactor (#360568)
[NixPkgs.git] / pkgs / by-name / fm / fmsynth / package.nix
blob982504c84410c70ca0d9b3df302c189ea55a2392
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   gtkmm2,
6   lv2,
7   lvtk,
8   pkg-config,
9 }:
10 stdenv.mkDerivation {
11   pname = "fmsynth-unstable";
12   version = "2015-02-07";
13   src = fetchFromGitHub {
14     owner = "Themaister";
15     repo = "libfmsynth";
16     rev = "9ffa1d2fea287f1209b210d2dbde2f0f60f37176";
17     sha256 = "1bk0bpr069hzx2508rgfbwpxiqgr7dmdkhqdywmd2i4rmibgrm1q";
18   };
20   nativeBuildInputs = [ pkg-config ];
21   buildInputs = [
22     gtkmm2
23     lv2
24     lvtk
25   ];
27   buildPhase = ''
28     cd lv2
29     substituteInPlace GNUmakefile --replace "/usr/lib/lv2" "$out/lib/lv2"
30     make  SIMD=0
31   '';
33   preInstall = "mkdir -p $out/lib/lv2";
35   meta = {
36     description = "Flexible 8 operator FM synthesizer for LV2";
37     longDescription = ''
38       The synth core supports:
40       - Arbitrary amounts of polyphony
41       - 8 operators
42       - No fixed "algorithms"
43       - Arbitrary modulation, every operator can modulate any other operator, even itself
44       - Arbitrary carrier selection, every operator can be a carrier
45       - Sine LFO, separate LFO per voice, modulates amplitude and frequency of operators
46       - Envelope per operator
47       - Carrier stereo panning
48       - Velocity sensitivity per operator
49       - Mod wheel sensitivity per operator
50       - Pitch bend
51       - Keyboard scaling
52       - Sustain, sustained keys can overlap each other for a very rich sound
53       - Full floating point implementation optimized for SIMD
54       - Hard real-time constraints
55     '';
56     homepage = "https://github.com/Themaister/libfmsynth";
57     license = lib.licenses.mit;
58     maintainers = [ lib.maintainers.magnetophon ];
59     platforms = lib.platforms.linux;
60   };