diff --git a/lib/licenses.nix b/lib/licenses.nix index d79ac900439..9baaba022bf 100644 --- a/lib/licenses.nix +++ b/lib/licenses.nix @@ -734,6 +734,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) ({ free = false; }; + stk = { + shortName = "stk"; + fullName = "Synthesis Tool Kit 4.3"; + url = https://github.com/thestk/stk/blob/master/LICENSE; + }; + tcltk = spdx { spdxId = "TCL"; fullName = "TCL/TK License"; diff --git a/pkgs/applications/audio/faustPhysicalModeling/default.nix b/pkgs/applications/audio/faustPhysicalModeling/default.nix new file mode 100644 index 00000000000..f55cee957c7 --- /dev/null +++ b/pkgs/applications/audio/faustPhysicalModeling/default.nix @@ -0,0 +1,39 @@ +{ stdenv, lib, fetchFromGitHub, faust2jaqt, faust2lv2 }: +stdenv.mkDerivation rec { + pname = "faustPhysicalModeling"; + version = "2.20.2"; + + src = fetchFromGitHub { + owner = "grame-cncm"; + repo = "faust"; + rev = version; + sha256 = "1mm93ba26b7q69hvabzalg30dh8pl858nj4m2bb57pznnp09lq9a"; + }; + + buildInputs = [ faust2jaqt faust2lv2 ]; + + buildPhase = '' + cd examples/physicalModeling + + for f in *MIDI.dsp; do + faust2jaqt -time -vec -double -midi -nvoices 16 -t 99999 $f + faust2lv2 -time -vec -double -gui -nvoices 16 -t 99999 $f + done + ''; + + installPhase = '' + mkdir -p $out/lib/lv2 $out/bin + mv *.lv2/ $out/lib/lv2 + for f in $(find . -executable -type f); do + cp $f $out/bin/ + done + ''; + + meta = with lib; { + description = "The physical models included with faust compiled as jack standalone and lv2 instruments"; + homepage = "https://github.com/grame-cncm/faust/tree/master-dev/examples/physicalModeling"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ magnetophon ]; + }; +} diff --git a/pkgs/applications/audio/faustStk/default.nix b/pkgs/applications/audio/faustStk/default.nix new file mode 100644 index 00000000000..85ebb1d9a02 --- /dev/null +++ b/pkgs/applications/audio/faustStk/default.nix @@ -0,0 +1,39 @@ +{ stdenv, lib, fetchFromGitHub, faust2jaqt, faust2lv2 }: + +stdenv.mkDerivation rec { + pname = "faustPhhysicalModeling"; + version = "2.20.2"; + + src = fetchFromGitHub { + owner = "grame-cncm"; + repo = "faust"; + rev = version; + sha256 = "1mm93ba26b7q69hvabzalg30dh8pl858nj4m2bb57pznnp09lq9a"; + }; + + buildInputs = [ faust2jaqt faust2lv2 ]; + + buildPhase = '' + cd examples/physicalModeling/faust-stk + + for f in *.dsp; do + faust2jaqt -time -vec -midi -nvoices 8 -t 99999 $f + faust2lv2 -time -vec -double -gui -nvoices 32 -t 99999 $f + done + ''; + + installPhase = '' + mkdir -p $out/lib/lv2 $out/bin + mv *.lv2/ $out/lib/lv2 + for f in $(find . -executable -type f); do + cp $f $out/bin/ + done + ''; + meta = with lib; { + description = "The physical modeling instruments included with faust, compiled as jack standalone and lv2 instruments"; + homepage = "https://ccrma.stanford.edu/~rmichon/faustSTK/"; + license = licenses.stk; + platforms = platforms.linux; + maintainers = with maintainers; [ magnetophon ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a03835000e6..d6c8e4aea9f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -30410,6 +30410,10 @@ in faustlive = callPackage ../applications/audio/faust/faustlive.nix { }; + faustPhysicalModeling = callPackage ../applications/audio/faustPhysicalModeling { }; + + faustStk = callPackage ../applications/audio/faustStk { }; + fceux = callPackage ../misc/emulators/fceux { }; flockit = callPackage ../tools/backup/flockit { };