From 78e2006499b93895635215e80e58c359a5e31405 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Tue, 16 May 2017 17:55:29 +0200 Subject: [PATCH] gnu: Add MuseScore. * gnu/packages/music.scm (musescore): New variable. --- gnu/packages/music.scm | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index d4a72df1d..33aa8fb73 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2016 Alex Griffin ;;; Copyright © 2017 ng0 ;;; Copyright © 2017 Rodger Fox +;;; Copyright © 2017 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -2990,3 +2991,83 @@ are a C compiler and glib. Full API documentation and examples are included.") melodies and beats and for mixing and arranging songs. LMMS includes instruments based on audio samples and various soft sythesizers. It can receive input from a MIDI keyboard.") (license license:gpl2+))) + +(define-public musescore + (package + (name "musescore") + (version "2.1.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/musescore/MuseScore/archive/" + "v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0irwsq6ihfz3y3b943cwqy29g3si7gqbgxdscgw53vwv9vfvi085")))) + (build-system glib-or-gtk-build-system) + (arguments + `(#:make-flags + `(,(string-append "PREFIX=" (assoc-ref %outputs "out")) + ;; Skip update-mime-database and gtk-update-icon-cache. + "UPDATE_CACHE=FALSE") + ;; There are tests, but no simple target to run. The command + ;; used to run them is: + ;; + ;; make debug && sudo make installdebug && cd \ + ;; build.debug/mtest && make && ctest + ;; + ;; Basically, it requires to start a whole new build process. + ;; So we simply skip them. + #:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'use-system-freetype + (lambda _ + (substitute* "Makefile" + ;; XXX: For the time being, we grossly insert the CMake + ;; option needed to ignore bundled freetype. However, + ;; there's a pending PR to have it as a regular make + ;; option, in a future release. + (("cmake -DCMAKE") "cmake -DUSE_SYSTEM_FREETYPE=ON -DCMAKE")) + #t))))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("cmake" ,cmake) + ("freetype" ,freetype) + ("jack" ,jack-1) + ("lame" ,lame) + ("libogg" ,libogg) + ("libsndfile" ,libsndfile) + ("libvorbis" ,libvorbis) + ("openssl" ,openssl) + ("portaudio" ,portaudio) + ("pulseaudio" ,pulseaudio) + ("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) + ("qtscript" ,qtscript) + ("qtsvg" ,qtsvg) + ("qtwebkit" ,qtwebkit) + ("qtxmlpatterns" ,qtxmlpatterns))) + (native-inputs + `(("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. + +It supports unlimited staves, linked parts and part extraction, tablature, MIDI +input, percussion notation, cross-staff beaming, automatic transposition, +lyrics (multiple verses), fretboard diagrams, and in general everything commonly +used in sheet music. + +Style options to change the appearance and layout are available, and +style sheets can be saved and applied to other scores. There are pre-defined +templates for many types of ensembles. Functionality can be extended by making +use of the many freely available plugins. + +MuseScore can also play back scores through the built-in sequencer and SoundFont +sample library.") + (home-page "https://musescore.org") + (license license:gpl2))) -- 2.13.0