gnu: Add supercollider.
* gnu/packages/audio.scm (supercollider): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
6f976d2880
commit
247384d069
|
@ -11,6 +11,7 @@
|
||||||
;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
|
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
|
||||||
;;; Copyright © 2018 okapi <okapi@firemail.cc>
|
;;; Copyright © 2018 okapi <okapi@firemail.cc>
|
||||||
|
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -62,6 +63,7 @@
|
||||||
#:use-module (gnu packages gnome)
|
#:use-module (gnu packages gnome)
|
||||||
#:use-module (gnu packages gnunet) ; libmicrohttpd
|
#:use-module (gnu packages gnunet) ; libmicrohttpd
|
||||||
#:use-module (gnu packages gperf)
|
#:use-module (gnu packages gperf)
|
||||||
|
#:use-module (gnu packages icu4c)
|
||||||
#:use-module (gnu packages image)
|
#:use-module (gnu packages image)
|
||||||
#:use-module (gnu packages ncurses)
|
#:use-module (gnu packages ncurses)
|
||||||
#:use-module (gnu packages qt)
|
#:use-module (gnu packages qt)
|
||||||
|
@ -75,6 +77,7 @@
|
||||||
#:use-module (gnu packages python)
|
#:use-module (gnu packages python)
|
||||||
#:use-module (gnu packages rdf)
|
#:use-module (gnu packages rdf)
|
||||||
#:use-module (gnu packages readline)
|
#:use-module (gnu packages readline)
|
||||||
|
#:use-module (gnu packages serialization)
|
||||||
#:use-module (gnu packages telephony)
|
#:use-module (gnu packages telephony)
|
||||||
#:use-module (gnu packages tls)
|
#:use-module (gnu packages tls)
|
||||||
#:use-module (gnu packages video)
|
#:use-module (gnu packages video)
|
||||||
|
@ -2053,6 +2056,114 @@ supporting silence processing for automatic pause, file splitting, and
|
||||||
background file post-processing.")
|
background file post-processing.")
|
||||||
(license license:gpl2+)))
|
(license license:gpl2+)))
|
||||||
|
|
||||||
|
(define-public supercollider
|
||||||
|
(package
|
||||||
|
(name "supercollider")
|
||||||
|
(version "3.9.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"https://github.com/supercollider/supercollider"
|
||||||
|
"/releases/download/Version-" version
|
||||||
|
"/SuperCollider-" version "-Source-linux.tar.bz2"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"150fgnjcmb06r3pa3mbsvb4iwnqlimjwdxgbs6p55zz6g8wbln7a"))))
|
||||||
|
(build-system cmake-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on"
|
||||||
|
"-DSC_EL=off") ;scel is packaged individually as
|
||||||
|
;emacs-scel.
|
||||||
|
#:modules ((guix build utils)
|
||||||
|
(guix build cmake-build-system)
|
||||||
|
(ice-9 ftw))
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'rm-bundled-libs
|
||||||
|
(lambda _
|
||||||
|
;; The build system doesn't allow us to unbundle the following
|
||||||
|
;; libraries. hidapi is also heavily patched and upstream not
|
||||||
|
;; actively maintained.
|
||||||
|
(let ((keep-dirs '("nova-simd" "nova-tt" "hidapi" "TLSF-2.4.6"
|
||||||
|
"oscpack_1_1_0" "." "..")))
|
||||||
|
(with-directory-excursion "./external_libraries"
|
||||||
|
(for-each
|
||||||
|
delete-file-recursively
|
||||||
|
(scandir "."
|
||||||
|
(lambda (x)
|
||||||
|
(and (eq? (stat:type (stat x)) 'directory)
|
||||||
|
(not (member (basename x) keep-dirs))))))))
|
||||||
|
#t))
|
||||||
|
;; Some tests are broken (see:
|
||||||
|
;; https://github.com/supercollider/supercollider/issues/3555 and
|
||||||
|
;; https://github.com/supercollider/supercollider/issues/1736
|
||||||
|
(add-after 'rm-bundled-libs 'disable-broken-tests
|
||||||
|
(lambda _
|
||||||
|
(substitute* "testsuite/supernova/CMakeLists.txt"
|
||||||
|
(("server_test.cpp")
|
||||||
|
"")
|
||||||
|
(("perf_counter_test.cpp")
|
||||||
|
""))
|
||||||
|
(delete-file "testsuite/supernova/server_test.cpp")
|
||||||
|
(delete-file "testsuite/supernova/perf_counter_test.cpp")
|
||||||
|
(substitute* "testsuite/CMakeLists.txt"
|
||||||
|
(("add_subdirectory\\(sclang\\)")
|
||||||
|
""))
|
||||||
|
(delete-file "testsuite/sclang/CMakeLists.txt")
|
||||||
|
#t))
|
||||||
|
;; TODO: Remove after version 3.9.2 is released
|
||||||
|
;; (see: https://github.com/supercollider/supercollider/pull/3558).
|
||||||
|
(add-after 'disable-broken-tests 'apply-system-yaml-cpp-fix
|
||||||
|
(lambda _
|
||||||
|
;; cmake: correctly include yaml-cpp (commit f82cec5ae).
|
||||||
|
(substitute* "editors/sc-ide/CMakeLists.txt"
|
||||||
|
(("external_libraries/boost\\)$")
|
||||||
|
"external_libraries/boost)
|
||||||
|
include_directories(${YAMLCPP_INCLUDE_DIR})")
|
||||||
|
((" yaml")
|
||||||
|
" ${YAMLCPP_LIBRARY}"))
|
||||||
|
;; set YAMLCPP_LIBRARY and YAMLCPP_INCLUDE_DIR if not using
|
||||||
|
;; system (commit 031922987).
|
||||||
|
(substitute* "external_libraries/CMakeLists.txt"
|
||||||
|
(("set_property\\( TARGET yaml PROPERTY FOLDER 3rdparty \\)")
|
||||||
|
"set_property( TARGET yaml PROPERTY FOLDER 3rdparty )
|
||||||
|
set(YAMLCPP_LIBRARY yaml)
|
||||||
|
set(YAMLCPP_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/\
|
||||||
|
external_libraries/yaml-cpp/include)"))
|
||||||
|
#t)))))
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)
|
||||||
|
("qttools" ,qttools)))
|
||||||
|
(inputs
|
||||||
|
`(("jack" ,jack-1)
|
||||||
|
("libsndfile" ,libsndfile)
|
||||||
|
("fftw" ,fftw)
|
||||||
|
("libxt" ,libxt)
|
||||||
|
("readline" ,readline) ;readline support for sclang's CLI
|
||||||
|
("alsa" ,alsa-lib) ;for sclang's MIDI interface
|
||||||
|
("eudev" ,eudev) ;for user interactions with devices
|
||||||
|
("avahi" ,avahi) ;zeroconf service discovery support
|
||||||
|
("icu4c" ,icu4c)
|
||||||
|
("boost" ,boost)
|
||||||
|
("boost-sync" ,boost-sync)
|
||||||
|
("yaml-cpp" ,yaml-cpp)
|
||||||
|
("qtbase" ,qtbase) ;IDE support
|
||||||
|
("qtwebkit" ,qtwebkit)
|
||||||
|
("qtsensors" ,qtsensors)
|
||||||
|
("qtdeclarative" ,qtdeclarative)
|
||||||
|
("qtlocation" ,qtlocation)))
|
||||||
|
(home-page "https://github.com/supercollider/supercollider")
|
||||||
|
(synopsis "Synthesis engine and programming language")
|
||||||
|
(description "SuperCollider is a synthesis engine (@code{scsynth} or
|
||||||
|
@code{supernova}) and programming language (@code{sclang}). It can be used
|
||||||
|
for experimenting with sound synthesis and algorithmic composition.
|
||||||
|
|
||||||
|
SuperCollider requires jackd to be installed in your user profile and your
|
||||||
|
user must be allowed to access the realtime features of the kernel. Search
|
||||||
|
for \"realtime\" in the index of the Guix manual to learn how to achieve this
|
||||||
|
using GuixSD.")
|
||||||
|
(license license:gpl2+)))
|
||||||
|
|
||||||
(define-public raul
|
(define-public raul
|
||||||
(package
|
(package
|
||||||
(name "raul")
|
(name "raul")
|
||||||
|
|
Loading…
Reference in New Issue