diff options
author | Leo Famulari <leo@famulari.name> | 2016-03-21 12:22:31 -0400 |
---|---|---|
committer | Leo Famulari <leo@famulari.name> | 2016-03-21 12:22:31 -0400 |
commit | 09ec508a4c14d1bc09622d98f796548d79ab0552 (patch) | |
tree | 86cc5a2a67d35ad796bfa33d67869d670d65822e /gnu/packages/music.scm | |
parent | 2dbed47f5c09347c9af42c5f5bacfccbc1ab4aff (diff) | |
parent | 71cafa0472a15f2234e24d3c6d8019ebb38685b0 (diff) | |
download | guix-09ec508a4c14d1bc09622d98f796548d79ab0552.tar guix-09ec508a4c14d1bc09622d98f796548d79ab0552.tar.gz |
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu/packages/music.scm')
-rw-r--r-- | gnu/packages/music.scm | 171 |
1 files changed, 169 insertions, 2 deletions
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index d789cc394f..ffee9d6245 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> ;;; Copyright © 2016 Al McElrath <hello@yrns.org> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; ;;; This file is part of GNU Guix. ;;; @@ -49,6 +50,7 @@ #:use-module (gnu packages fltk) #:use-module (gnu packages fonts) #:use-module (gnu packages fontutils) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages gcc) #:use-module (gnu packages gnupg) #:use-module (gnu packages gettext) @@ -64,6 +66,7 @@ #:use-module (gnu packages linux) ; for alsa-utils #:use-module (gnu packages man) #:use-module (gnu packages mp3) + #:use-module (gnu packages mpd) #:use-module (gnu packages ncurses) #:use-module (gnu packages netpbm) #:use-module (gnu packages pdf) @@ -817,7 +820,7 @@ projects.") (define-public frescobaldi (package (name "frescobaldi") - (version "2.18.1") + (version "2.18.2") (source (origin (method url-fetch) (uri (string-append @@ -825,7 +828,7 @@ projects.") version "/frescobaldi-" version ".tar.gz")) (sha256 (base32 - "1hflc6gck6dn17czc2ldai5j0ynfg3df8lqcggdry06qxsdbnns7")))) + "1yns7nq2a2hz5rv4xjp21bgcdi1xj6fq48lqjrld7ypqqi5nfjp5")))) (build-system python-build-system) (inputs `(("lilypond" ,lilypond) @@ -1134,3 +1137,167 @@ personalized online radio pandora.com. It has configurable keys for playing and managing stations, can be controlled remotely via fifo, and can run event-based scripts for scrobbling, notifications, etc.") (license license:expat))) + +(define-public python-mutagen + (package + (name "python-mutagen") + (version "1.31") + (source (origin + (method url-fetch) + (uri (pypi-uri "mutagen" version)) + (sha256 + (base32 + "16fnnhspniac2i7qswxafawsh2x2a803hmc6bn9k1zl5fxq1380a")))) + (build-system python-build-system) + (home-page "https://bitbucket.org/lazka/mutagen") + (synopsis "Read and write audio tags") + (description "Mutagen is a Python module to handle audio metadata. It +supports ASF, FLAC, M4A, Monkey’s Audio, MP3, Musepack, Ogg FLAC, Ogg Speex, Ogg +Theora, Ogg Vorbis, True Audio, WavPack and OptimFROG audio files. All versions +of ID3v2 are supported, and all standard ID3v2.4 frames are parsed. It can read +Xing headers to accurately calculate the bitrate and length of MP3s. ID3 and +APEv2 tags can be edited regardless of audio format. It can also manipulate Ogg +streams on an individual packet/page level.") + (license license:gpl2))) ; "later version" never mentioned + +(define-public python2-mutagen + (package-with-python2 python-mutagen)) + +(define-public python-musicbrainzngs + (package + (name "python-musicbrainzngs") + (version "0.5") + (source (origin + (method url-fetch) + (uri (pypi-uri "musicbrainzngs" version)) + (sha256 + (base32 + "12f48llmdf5rkiqxcb70k2k1dmhm8byq0ifazvlrca8dfnmqh4r8")))) + (build-system python-build-system) + (home-page "https://python-musicbrainzngs.readthedocs.org/") + (synopsis "Python bindings for MusicBrainz NGS webservice") + (description "Musicbrainzngs implements Python bindings of the MusicBrainz +web service. This library can be used to retrieve music metadata from the +MusicBrainz database.") + ;; 'musicbrainzngs/compat.py' is ISC licensed. + (license (list license:bsd-2 license:isc)))) + +(define-public python2-musicbrainzngs + (package-with-python2 python-musicbrainzngs)) + +(define-public python-pyechonest + (package + (name "python-pyechonest") + (version "9.0.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "pyechonest" version)) + (sha256 + (base32 + "1584nira3rkiman9dm81kdshihmkj21s8navndz2l8spnjwb790x")))) + (build-system python-build-system) + (home-page "https://github.com/echonest/pyechonest") + (synopsis "Python interface to The Echo Nest APIs") + (description "Pyechonest is an open source Python library for the Echo Nest +API. With Pyechonest you have Python access to the entire set of API methods +including: + +@enumerate +@item artist - search for artists by name, description, or attribute, and get +back detailed information about any artist including audio, similar artists, +blogs, familiarity, hotttnesss, news, reviews, urls and video. +@item song - search songs by artist, title, description, or attribute (tempo, +duration, etc) and get detailed information back about each song, such as +hotttnesss, audio_summary, or tracks. +@item track - upload a track to the Echo Nest and receive summary information +about the track including key, duration, mode, tempo, time signature along with +detailed track info including timbre, pitch, rhythm and loudness information. +@end enumerate\n") + (license license:bsd-3) + (properties `((python2-variant . ,(delay python2-pyechonest)))))) + +(define-public python2-pyechonest + (package (inherit (package-with-python2 + (strip-python2-variant python-pyechonest))) + (native-inputs `(("python2-setuptools" ,python2-setuptools))))) + +(define-public python-pylast + (package + (name "python-pylast") + (version "1.5.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "pylast" version)) + (sha256 + (base32 + "10znd9xr1vs2ix519jkz3ccm90zciaddcdr2w2wrrh2jyy3bc59a")))) + (build-system python-build-system) + (native-inputs + `(("python-coverage" ,python-coverage) + ("python-mock" ,python-mock) + ("python-pep8" ,python-pep8) + ("python-pytest" ,python-pytest) + ("python-pyflakes" ,python-pyflakes) + ("python-pyyaml" ,python-pyyaml))) + (propagated-inputs + `(("python-six" ,python-six))) + (home-page "https://github.com/pylast/pylast") + (synopsis "Python interface to Last.fm and Libre.fm") + (description "A Python interface to Last.fm and other API-compatible +websites such as Libre.fm.") + (license license:asl2.0) + (properties `((python2-variant . ,(delay python2-pylast)))))) + +(define-public python2-pylast + (let ((pylast (package-with-python2 + (strip-python2-variant python-pylast)))) + (package (inherit pylast) + (native-inputs + `(("python2-setuptools" ,python2-setuptools) + ,@(package-native-inputs pylast)))))) + +(define-public beets + (package + (name "beets") + (version "1.3.17") + (source (origin + (method url-fetch) + (uri (pypi-uri name version)) + (sha256 + (base32 + "0yg7sp18sdpszkinhb0bi6yinbn316jy1baxrwiw0m4byrj3rr6c")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2 ; only Python 2 is supported + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'set-HOME + (lambda _ (setenv "HOME" (string-append (getcwd) "/tmp"))))))) + (native-inputs + `(("python2-beautifulsoup4" ,python2-beautifulsoup4) + ("python2-flask" ,python2-flask) + ("python2-setuptools" ,python2-setuptools) + ("python2-mock" ,python2-mock) + ("python2-mpd2" ,python2-mpd2) + ("python2-pathlib" ,python2-pathlib) + ("python2-pyxdg" ,python2-pyxdg) + ("python2-pyechonest" ,python2-pyechonest) + ("python2-pylast" ,python2-pylast) + ("python2-rarfile" ,python2-rarfile) + ("python2-responses" ,python2-responses))) + ;; TODO: Install optional plugins and dependencies. + (propagated-inputs + `(("python2-enum34" ,python2-enum34) + ("python2-jellyfish" ,python2-jellyfish) + ("python2-munkres" ,python2-munkres) + ("python2-musicbrainzngs" ,python2-musicbrainzngs) + ("python2-mutagen" ,python2-mutagen) + ("python2-pyyaml" ,python2-pyyaml) + ("python2-unidecode" ,python2-unidecode))) + (home-page "http://beets.io") + (synopsis "Music organizer") + (description "The purpose of beets is to get your music collection right +once and for all. It catalogs your collection, automatically improving its +metadata as it goes using the MusicBrainz database. Then it provides a variety +of tools for manipulating and accessing your music.") + (license license:expat))) |