evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / by-name / vi / virtual-ans / package.nix
blob4a7467da125d6bad3e7666c13594fc27068a434d
1 { lib, stdenv
2 , fetchzip
3 , libX11
4 , libXi
5 , libGL
6 , alsa-lib
7 , SDL2
8 , autoPatchelfHook
9 }:
11 stdenv.mkDerivation rec {
12   pname = "virtual-ans";
13   version = "3.0.3";
15   src = fetchzip {
16     url = "https://warmplace.ru/soft/ans/virtual_ans-${version}.zip";
17     sha256 = "sha256-tqR7icgURUFOyLJ8+mS17JRf2gK53I2FW/2m8IJPtJE=";
18   };
20   nativeBuildInputs = [
21     autoPatchelfHook
22   ];
24   buildInputs = [
25     (lib.getLib stdenv.cc.cc)
26     libX11
27     libXi
28     libGL
29     alsa-lib
30     SDL2
31   ];
33   installPhase = ''
34     mkdir -p $out
35     cp -R ./* $out/
37     # Remove all executables except for current architecture
38     ls -1d $out/START*              | grep -v ${startScript}     | xargs rm -rf
39     ls -1d $out/bin/pixilang_linux* | grep -v ${linuxExecutable} | xargs rm -rf
41     # Start script performs relative search for resources, so it cannot be moved
42     # to bin directory
43     ln -s $out/${startScript} $out/bin/virtual-ans
44   '';
46   startScript = if stdenv.hostPlatform.isx86_32 then "START_LINUX_X86"
47     else        if stdenv.hostPlatform.isx86_64 then "START_LINUX_X86_64"
48     #else        if stdenv.hostPlatform.isDarwin then "START_MACOS.app" # disabled because I cannot test on Darwin
49     else abort "Unsupported platform: ${stdenv.hostPlatform.linuxArch}.";
51   linuxExecutable = if stdenv.hostPlatform.isx86_32 then "pixilang_linux_x86"
52     else            if stdenv.hostPlatform.isx86_64 then "pixilang_linux_x86_64"
53     else                                    "";
55   meta = with lib; {
56     description = "Photoelectronic microtonal/spectral musical instrument";
57     longDescription = ''
58       Virtual ANS is a software simulator of the unique Russian synthesizer ANS
59       - photoelectronic musical instrument created by Evgeny Murzin from 1938 to
60       1958. The ANS made it possible to draw music in the form of a spectrogram
61       (sonogram), without live instruments and performers. It was used by
62       Stanislav Kreichi, Alfred Schnittke, Edward Artemiev and other Soviet
63       composers in their experimental works. You can also hear the sound of the
64       ANS in Andrei Tarkovsky's movies Solaris, The Mirror, Stalker.
66       The simulator extends the capabilities of the original instrument. Now
67       it's a full-featured graphics editor where you can convert sound into an
68       image, load and play pictures, draw microtonal/spectral music and create
69       some unusual deep atmospheric sounds. This app is for everyone who loves
70       experiments and is looking for something new.
72       Key features:
74       + unlimited number of pure tone generators;
75       + powerful sonogram editor - you can draw the spectrum and play it at the same time;
76       + any sound (from a WAV file or a Microphone/Line-in) can be converted to image (sonogram) and vice versa;
77       + support for MIDI devices;
78       + polyphonic synth mode with MIDI mapping;
79       + supported file formats: WAV, AIFF, PNG, JPEG, GIF;
80       + supported sound systems: ASIO, DirectSound, MME, ALSA, OSS, JACK, Audiobus, IAA.
81       '';
82     homepage = "https://warmplace.ru/soft/ans/";
83     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
84     license = licenses.unfreeRedistributable;
85     # I cannot test the Darwin version, so I'll leave it disabled
86     platforms = [ "x86_64-linux" "i686-linux" ];
87     maintainers = with maintainers; [ jacg ];
88   };