diff options
Diffstat (limited to 'gnu/packages/music.scm')
-rw-r--r-- | gnu/packages/music.scm | 247 |
1 files changed, 217 insertions, 30 deletions
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 830bc4dfbe..2f75c39dd8 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -31,6 +31,7 @@ ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org> ;;; Copyright © 2020 Marius Bakke <marius@gnu.org> +;;; Copyright © 2019 Riku Viitanen <riku.viitanen0@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -158,6 +159,123 @@ #:use-module (gnu packages lua) #:use-module ((srfi srfi-1) #:select (last))) +(define-public audacious + (package + (name "audacious") + (version "4.0.5") + (source + (origin + (method url-fetch) + (uri (string-append "https://distfiles.audacious-media-player.org/" + "audacious-" version ".tar.bz2")) + (sha256 + (base32 "028zjgz0p7ys15lk2a30m5zcv9xrx3ga50wjsh4m4zxilgkakbji")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")) + #:tests? #f ; no check target + #:phases + (modify-phases %standard-phases + (add-after 'install 'unpack-plugins + (lambda* (#:key inputs #:allow-other-keys) + (let ((plugins (assoc-ref inputs "audacious-plugins"))) + (invoke "tar" "xvf" plugins) + #t))) + (add-after 'unpack-plugins 'configure-plugins + (lambda* (#:key configure-flags outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (with-directory-excursion + (string-append "audacious-plugins-" ,version) + (substitute* "configure" + (("/bin/sh") (which "sh"))) + (apply invoke "./configure" + (append configure-flags + ;; audacious-plugins requires audacious to build. + (list (string-append "PKG_CONFIG_PATH=" + out "/lib/pkgconfig:" + (getenv "PKG_CONFIG_PATH")) + (string-append "--prefix=" out)))))))) + (add-after 'configure-plugins 'build-plugins + (lambda _ + (with-directory-excursion + (string-append "audacious-plugins-" ,version) + (invoke "make" "-j" (number->string (parallel-job-count)))))) + (add-after 'build-plugins 'install-plugins + (lambda _ + (with-directory-excursion + (string-append "audacious-plugins-" ,version) + (invoke "make" "install"))))))) + (native-inputs + `(("audacious-plugins" + ,(origin + (method url-fetch) + (uri (string-append "https://distfiles.audacious-media-player.org/" + "audacious-plugins-" version ".tar.bz2")) + (sha256 + (base32 "0ny5w1agr9jaz5w3wyyxf1ygmzmd1sivaf97lcm4z4w6529520lz")))) + ("gettext" ,gettext-minimal) + ("glib:bin" ,glib "bin") ; for gdbus-codegen + ("pkg-config" ,pkg-config))) + (inputs + `(("dbus" ,dbus) + ("qtbase" ,qtbase) + ("qtmultimedia" ,qtmultimedia) + ;; Plugin dependencies + ("alsa-lib" ,alsa-lib) + ("curl" ,curl) + ("faad2" ,faad2) + ("ffmpeg" ,ffmpeg) + ("flac" ,flac) + ("fluidsynth" ,fluidsynth) + ("lame" ,lame) + ("libbs2b" ,libbs2b) + ("libcddb" ,libcddb) + ("libcdio-paranoia" ,libcdio-paranoia) + ("libcue" ,libcue) + ("libmodplug" ,libmodplug) + ("libnotify" ,libnotify) + ("libogg" ,libogg) + ("libsamplerate" ,libsamplerate) + ("libsndfile" ,libsndfile) + ("libvorbis" ,libvorbis) + ("libxcomposite" ,libxcomposite) + ("libxml2" ,libxml2) + ("libxrender" ,libxrender) + ("lirc" ,lirc) + ("jack" ,jack-1) + ("mesa" ,mesa) + ("mpg123" ,mpg123) + ("neon" ,neon) + ("pulseaudio" ,pulseaudio) + ("sdl2" ,sdl2) + ("soxr" ,soxr) + ("wavpack" ,wavpack))) + (home-page "https://audacious-media-player.org") + (synopsis "Modular and skinnable audio player") + (description + "Audacious is an audio player descended from XMMS. Drag and drop +folders and individual song files, search for artists and albums in +your entire music library, or create and edit your own custom +playlists. Listen to CD’s or stream music from the Internet. Tweak +the sound with the graphical equalizer or experiment with LADSPA +effects. Enjoy the modern GTK-themed interface or change things up +with Winamp Classic skins. Use the plugins included with Audacious to +fetch lyrics for your music, to set an alarm in the morning, and +more.") + ;; According to COPYING, Audacious and its plugins are licensed + ;; under the BSD 2-clause license and libguess is licensed under + ;; the BSD 3-clause license. + (license (list license:bsd-2 + license:bsd-3 + ;; Plugin licenses that aren't BSD 2- or 3-clause. + license:lgpl2.1 + license:gpl2 + license:gpl3 + license:expat + license:isc + license:lgpl2.0)))) + (define-public aria-maestosa (package (name "aria-maestosa") @@ -944,6 +1062,60 @@ engine (except effects) that can be used for layering or split patches.") you to define complex tempo maps for entire songs or performances.") (license license:gpl2+))) +(define-public glyr + (package + (name "glyr") + (version "1.0.10") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sahib/glyr") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1miwbqzkhg0v3zysrwh60pj9sv6ci4lzq2vq2hhc6pc6hdyh8xyr")))) + (build-system cmake-build-system) + (arguments + '(#:configure-flags '("-DTEST=true") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-tests + (lambda _ + (substitute* "spec/capi/check_api.c" + (("fail_unless \\(c != NULL,\"Could not load www.google.de\"\\);") + "")) + #t)) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; capi tests + (invoke "bin/check_api") + ;; (invoke "bin/check_opt") TODO Very dependent on the network + (invoke "bin/check_dbc")) + + ;; TODO Work out how to run the spec/providers Python tests + #t))))) + (inputs + `(("glib" ,glib) + ("curl" ,curl) + ("sqlite" ,sqlite))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("check" ,check))) + (home-page "https://github.com/sahib/glyr") + (synopsis "Search engine for music related metadata") + (description + "Glyr comes both in a command-line interface tool (@command{glyrc}) and +as a C library (libglyr). + +The sort of metadata glyr is searching (and downloading) is usually the data +you see in your musicplayer. And indeed, originally it was written to serve +as internally library for a musicplayer, but has been extended to work as a +standalone program which is able to download cover art, lyrics, photos, +biographies, reviews and more.") + (license license:lgpl3+))) + (define-public gtklick (package (name "gtklick") @@ -1328,7 +1500,7 @@ complete studio.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/onkelDead/tascam-gtk.git") + (url "https://github.com/onkelDead/tascam-gtk") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -1661,7 +1833,7 @@ users to select LV2 plugins and run them with jalv.") (define-public synthv1 (package (name "synthv1") - (version "0.9.17") + (version "0.9.18") (source (origin (method url-fetch) (uri @@ -1669,7 +1841,7 @@ users to select LV2 plugins and run them with jalv.") "/synthv1-" version ".tar.gz")) (sha256 (base32 - "0jc2drk5dzsaa6vxmk1hyi0zp02zm3mzar3arssfy5vcyc5ig6sk")))) + "1sggiaswcdpyxnnbg583ldg0m92fiys6nc5qdiqli7450w416a6c")))) (build-system gnu-build-system) (arguments `(#:tests? #f)) ; there are no tests @@ -1693,7 +1865,7 @@ oscillators and stereo effects.") (define-public drumkv1 (package (name "drumkv1") - (version "0.9.17") + (version "0.9.18") (source (origin (method url-fetch) (uri @@ -1701,7 +1873,7 @@ oscillators and stereo effects.") "/drumkv1-" version ".tar.gz")) (sha256 (base32 - "198fyc5dwjn679si86vy139ngym4n3mdy1z4vfjikn7b6mriq1x2")))) + "1bzkaz7sqx1pvirja8zm7i2ckzl5ad6xspr4840389ik3l8qpnr5")))) (build-system gnu-build-system) (arguments `(#:tests? #f)) ; there are no tests @@ -1726,7 +1898,7 @@ effects.") (define-public samplv1 (package (name "samplv1") - (version "0.9.17") + (version "0.9.18") (source (origin (method url-fetch) (uri @@ -1734,7 +1906,7 @@ effects.") "/samplv1-" version ".tar.gz")) (sha256 (base32 - "1v21r722m027jjy4x6lm5cvzapsnpx36r10ar543ay0hgmygl322")))) + "13p5aj1513fwhzi9s4i1a5dbvzmbx9867zb0ddb9s9nbwks4ry3q")))) (build-system gnu-build-system) (arguments `(#:tests? #f)) ; there are no tests @@ -1759,7 +1931,7 @@ effects.") (define-public padthv1 (package (name "padthv1") - (version "0.9.17") + (version "0.9.18") (source (origin (method url-fetch) (uri @@ -1767,7 +1939,7 @@ effects.") "/padthv1-" version ".tar.gz")) (sha256 (base32 - "098fk8fwcgssnfr1gilqg8g17zvch62lrn3rqsswpzbr3an5adb3")))) + "1karrprb3ijrbiwpr43rl3nxnzc33lnmwrd1832psgr3flnr9fp5")))) (build-system gnu-build-system) (arguments `(#:tests? #f)) ; there are no tests @@ -1804,17 +1976,30 @@ special variant of additive synthesis.") (base32 "1882pfcmf3rqg3vd4qflzkppcv158d748i603spqjbxqi8z7x7w0")))) (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-file-names + (lambda _ + (substitute* "src/GUI/editor_pane.c" + (("/usr/bin/unzip") (which "unzip"))) + (substitute* "src/GUI/GUI.cc" + (("/usr/bin/which") (which "which"))) + #t))))) (inputs `(("alsa-lib" ,alsa-lib) + ("gtk+" ,gtk+-2) + ("gtkmm" ,gtkmm-2) ("jack" ,jack-1) - ("lv2" ,lv2) ("lash" ,lash) ("libsndfile" ,libsndfile) - ("gtk+" ,gtk+-2) - ("gtkmm" ,gtkmm-2))) + ("lv2" ,lv2) + ;; External commands invoked at run time. + ("unzip" ,unzip) + ("which" ,which))) (native-inputs - `(("pkg-config" ,pkg-config) - ("intltool" ,intltool))) + `(("intltool" ,intltool) + ("pkg-config" ,pkg-config))) (home-page "https://amsynth.github.io") (synopsis "Analog modeling synthesizer") (description @@ -2443,7 +2628,7 @@ capabilities, custom envelopes, effects, etc.") (define-public yoshimi (package (name "yoshimi") - (version "1.7.2") + (version "1.7.3") (source (origin (method url-fetch) @@ -2451,7 +2636,7 @@ capabilities, custom envelopes, effects, etc.") (version-major+minor version) "/yoshimi-" version ".tar.bz2")) (sha256 - (base32 "1vxrksg199pcgiykq0nsf67ihfk2ny2jmpf6gzdb3nk9iphm7di3")))) + (base32 "1ixb2kqmfgm2lfjaj6z3h03c840hcfmca4h6pjnc4aln2mzm7fcw")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; there are no tests @@ -2703,14 +2888,14 @@ from the command line.") (define-public qtractor (package (name "qtractor") - (version "0.9.17") + (version "0.9.18") (source (origin (method url-fetch) (uri (string-append "https://downloads.sourceforge.net/qtractor/" "qtractor-" version ".tar.gz")) (sha256 (base32 - "0mcfli3wffz5a9pkpcxli03ysyrr53ij3569m81ck9h8pr7yng4b")))) + "121vmygdzp37p6f93f8dbbg2m2r55j7amyiapzkqgypgn4vfdbwr")))) (build-system gnu-build-system) (arguments `(#:tests? #f)) ; no "check" target @@ -4194,7 +4379,7 @@ audio samples and various soft sythesizers. It can receive input from a MIDI ke (define-public musescore (package (name "musescore") - (version "3.5.1") + (version "3.5.2") (source (origin (method git-fetch) @@ -4203,16 +4388,16 @@ audio samples and various soft sythesizers. It can receive input from a MIDI ke (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "01jj6rbvbjxvmv6q13a22vfqp3id52a5mf2a1vzph2giz7pr313x")) + (base32 "0yzps5xxa50cr2i5iv2ycjdywd0mcrdd6hx93l4p8lfljag3w3al")) (modules '((guix build utils))) (snippet - ;; Un-bundle OpenSSL and remove unused libraries. + ;; Remove unused libraries. '(begin (for-each delete-file-recursively '("thirdparty/freetype" - "thirdparty/google_analytics" "thirdparty/openssl" - "thirdparty/portmidi")) + "thirdparty/portmidi" + "thirdparty/qt-google-analytics")) #t)))) (build-system cmake-build-system) (arguments @@ -4220,6 +4405,7 @@ audio samples and various soft sythesizers. It can receive input from a MIDI ke `("-DBUILD_TELEMETRY_MODULE=OFF" ;don't phone home "-DBUILD_WEBENGINE=OFF" "-DDOWNLOAD_SOUNDFONT=OFF" + "-DMUSESCORE_BUILD_CONFIG=release" "-DUSE_SYSTEM_FREETYPE=ON") ;; There are tests, but no simple target to run. The command used to ;; run them is: @@ -4252,8 +4438,9 @@ audio samples and various soft sythesizers. It can receive input from a MIDI ke `(("pkg-config" ,pkg-config) ("qttools" ,qttools))) (synopsis "Music composition and notation software") - (description "MuseScore is a music score typesetter. Its main purpose is -the creation of high-quality engraved musical scores in a WYSIWYG environment. + (description + "MuseScore is a music score typesetter. Its main purpose is the creation +of high-quality engraved musical scores in a WYSIWYG environment. It supports unlimited staves, linked parts and part extraction, tablature, MIDI input, percussion notation, cross-staff beaming, automatic transposition, @@ -5047,7 +5234,7 @@ complete without obstructing your daily work.") (define-public playerctl (package (name "playerctl") - (version "2.0.2") + (version "2.2.1") (source (origin (method git-fetch) (uri (git-reference @@ -5056,7 +5243,7 @@ complete without obstructing your daily work.") (file-name (git-file-name name version)) (sha256 (base32 - "1f3njnpd52djx3dmhh9a8p5a67f0jmr1gbk98icflr2q91149gjz")))) + "17hi33sw3663qz5v54bqqil31sgkrlxkb2l5bgqk87pac6x2wnbz")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Dintrospection=false" "-Dgtk-doc=false"))) @@ -5082,7 +5269,7 @@ for integration into status line generators or other command-line tools.") (method git-fetch) (uri (git-reference (url - "https://github.com/openAVproductions/openAV-ArtyFX.git") + "https://github.com/openAVproductions/openAV-ArtyFX") (commit (string-append "release-" version)))) (file-name (git-file-name name version)) (sha256 @@ -5889,7 +6076,7 @@ plugin and a standalone JACK application.") (define-public wolf-shaper (package (name "wolf-shaper") - (version "0.1.7") + (version "0.1.8") (source (origin (method git-fetch) @@ -5901,7 +6088,7 @@ plugin and a standalone JACK application.") (file-name (git-file-name name version)) (sha256 (base32 - "0lllgcbnnh1m95bp29hh17x170hl7170zizjrvy892qfkn36830d")))) + "1j9xmh1nkf45ay1c5dz2g165qvrwlanzcq6mvb3nfxar265drd9q")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no check target |