diff options
Diffstat (limited to 'gnu/packages/music.scm')
-rw-r--r-- | gnu/packages/music.scm | 226 |
1 files changed, 173 insertions, 53 deletions
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index e99bee9cc7..4470a649f6 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -51,6 +51,7 @@ ;;; Copyright © 2022 Jose G Perez Taveras <josegpt27@gmail.com> ;;; Copyright © 2022 jgart <jgart@dismail.de> ;;; Copyright © 2023 Jonathan Brielmaier <jonathan.brielmaier@web.de> +;;; Copyright © 2023 Antero Mejr <antero@mailbox.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -122,6 +123,7 @@ #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages game-development) + #:use-module (gnu packages gcc) #:use-module (gnu packages gnupg) #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) @@ -364,7 +366,7 @@ more.") (list wxwidgets glib alsa-lib)) (native-inputs (list pkg-config)) - (home-page "http://ariamaestosa.sourceforge.net/") + (home-page "https://ariamaestosa.sourceforge.net/") (synopsis "MIDI sequencer and editor") (description "Aria Maestosa is a MIDI sequencer and editor. It lets you compose, edit @@ -478,10 +480,74 @@ playing your music.") ;; qocoa is under MIT and CC by-sa for the icons. license:cc-by-sa3.0)))) +(define-public ctrlr + ;; The latest release from 2021 does not have a build system. + (let ((commit "8aa00d82127acda42ad9ac9b7b479461e9436aa4") + (revision "1")) + (package + (name "ctrlr") + (version (git-version "5.5.9" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/RomanKubiak/ctrlr") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1lpfkjp9y0wh2kj02isv8ixnxn3wyvrxhkx0rybwzswfiz5kqdlm")))) + (build-system cmake-build-system) + (arguments + (list + #:cmake cmake ;needs 3.25 + #:tests? #false ;there are none + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'pre-configure + (lambda _ + ;; Override default location of fonts.conf. Without this no + ;; fonts will be rendered at all. + (substitute* "JUCE/modules/juce_graphics/native/juce_linux_Fonts.cpp" + (("/usr/share/fonts/fonts.conf") + "/run/current-system/profile/etc/fonts/fonts.conf")) + ;; Do not build the VST or AU plugins, because these require + ;; external proprietary SDKs. + (substitute* "CMakeLists.txt" + (("juce_set_vst2_sdk_path.*") "") + (("FORMATS VST3 VST AU Standalone") + "FORMATS Standalone") + ;; BFD also need -liberty. + (("list\\(APPEND ctrlrLibs \"bfd\"\\)" m) + (string-append m " +list(APPEND ctrlrLibs \"iberty\")"))))) + ;; The install target doesn't install ctrlr but JUCE helpers. + (replace 'install + (lambda _ + (install-file "ctrlr_artefacts/RelWithDebInfo/Standalone/ctrlr" + (string-append #$output "/bin"))))))) + (inputs + (list alsa-lib + boost + eudev + freetype + libiberty + libx11 + webkitgtk)) + (native-inputs + (list pkg-config)) + (home-page "https://ctrlr.org/") + (synopsis "Control any MIDI-enabled hardware") + (description "This package provides a tool to control any MIDI-enabled +hardware such as synthesizers, drum machines, samplers, or effects. It lets +you create custom user interfaces for your MIDI hardware.") + (license (list license:gpl2+ + license:gpl3 ;JUCE + license:bsd-3))))) + (define-public strawberry (package (name "strawberry") - (version "1.0.14") + (version "1.0.15") (source (origin (method git-fetch) (uri (git-reference @@ -490,7 +556,7 @@ playing your music.") (file-name (git-file-name name version)) (sha256 (base32 - "0q8pmf7vr5yxzvfmw86f3m462s8ixaixwdv1z9x9ldkj5rqz45sf")) + "04ddplldlls0gxw8qppw6dsqhfnxamxfnnyq0i04mbs5hi83pcrz")) (modules '((guix build utils) (ice-9 regex))) (snippet @@ -1308,7 +1374,7 @@ biographies, reviews and more.") jack-2 json-c pulseaudio)) - (home-page "http://lingot.nongnu.org/") + (home-page "https://lingot.nongnu.org/") (synopsis "Accurate & configurable musical instrument tuner") (description "LINGOT is a musical instrument tuner. It's accurate, easy to use, and @@ -1386,7 +1452,7 @@ and auto-mapping slices to MIDI note numbers.") (define-public lilypond (package (name "lilypond") - (version "2.24.0") + (version "2.24.1") (source (origin (method url-fetch) @@ -1394,7 +1460,7 @@ and auto-mapping slices to MIDI note numbers.") "v" (version-major+minor version) "/" "lilypond-" version ".tar.gz")) (sha256 - (base32 "0scbyzbxqnzgibls62npg2i3sywnb146gw7jlvinj9dhj8xvxv9w")))) + (base32 "028m31fjcfgsq3f8ahz4hp2r36shsvkq1fjjibqdcp2aas3r1ifm")))) (build-system gnu-build-system) (arguments (list #:tests? #f ;out-test/collated-files.html fails @@ -2495,44 +2561,64 @@ reverb effects.") "1pff51imfgmgqzc6mdgwd1v9fci0a8hj85fnkdsvkdzbnxdzvs9r")))) (build-system cmake-build-system) (arguments - (list #:tests? #f ;no test suite - #:phases - #~(modify-phases %standard-phases - (replace 'install - (lambda _ - (let* ((bin (string-append #$output "/bin")) - (lib (string-append #$output "/lib")) - (share (string-append #$output "/share")) - (clap (string-append lib "/clap")) - (vst3 (string-append lib "/vst3"))) - (with-directory-excursion - "PaulXStretch_artefacts/RelWithDebInfo" - (install-file "Standalone/paulxstretch" bin) - (install-file "CLAP/PaulXStretch.clap" clap) - (mkdir-p vst3) - (copy-recursively "VST3" vst3) - (install-file (string-append - #$source - "/linux/paulxstretch.desktop") - (string-append share "/applications")) - (install-file - (string-append - #$source - "/images/paulxstretch_icon_1024_rounded.png") - (string-append share "/pixmaps"))))))))) + (list + #:tests? #f ;no test suite + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "deps/juce/extras/Projucer/Source/ProjectSaving/\ +jucer_ProjectExport_CodeBlocks.h" + (("/usr/include/freetype2") + (search-input-directory inputs "/include/freetype2"))) + (substitute* + "deps/juce/modules/juce_graphics/native/juce_linux_Fonts.cpp" + (("/etc/fonts") + (search-input-directory inputs "/etc/fonts"))) + (substitute* + "deps/juce/modules/juce_gui_basics/native/x11/\ +juce_linux_XWindowSystem.cpp" + (("/usr/bin/dconf") + (search-input-file inputs "/bin/dconf")) + (("/usr/bin/gsettings") + (search-input-file inputs "/bin/gsettings"))))) + (replace 'install + (lambda _ + (let* ((lib (string-append #$output "/lib")) + (share (string-append #$output "/share")) + (clap (string-append lib "/clap")) + (vst3 (string-append lib "/vst3"))) + (with-directory-excursion + "PaulXStretch_artefacts/RelWithDebInfo" + (install-file "Standalone/paulxstretch" + (string-append #$output "/bin")) + (install-file "CLAP/PaulXStretch.clap" clap) + (mkdir-p vst3) + (copy-recursively "VST3" vst3) + (install-file (string-append + #$source + "/linux/paulxstretch.desktop") + (string-append share "/applications")) + (install-file (string-append + #$source + "/images/paulxstretch_icon_1024_rounded.png") + (string-append share "/pixmaps"))))))))) (home-page "https://sonosaurus.com/paulxstretch/") (native-inputs (list pkg-config)) (inputs (list alsa-lib curl + dconf fftwf + fontconfig freetype + `(,glib "bin") jack-1 libx11 libxcursor libxext libxinerama libxrandr)) - (supported-systems '("x86_64-linux")) ;pffft.c uses SIMD code + (supported-systems '("x86_64-linux")) ;pffft.c uses SIMD code (synopsis "Audio timestretching application and plugin") (description "PaulXStretch is an application/plugin is based on the PaulStretch @@ -2582,7 +2668,7 @@ Paul), and specifically the PaulXStretch version from Xenakios.") font-bitstream-vera)) (native-inputs (list help2man pkg-config)) - (home-page "http://setbfree.org") + (home-page "https://setbfree.org") (synopsis "Tonewheel organ") (description "setBfree is a MIDI-controlled, software synthesizer designed to imitate @@ -2633,7 +2719,7 @@ Laurens Hammond and Don Leslie.") (list alsa-lib jack-2 liblo libx11)) (native-inputs (list pkg-config)) - (home-page "http://bristol.sourceforge.net/") + (home-page "https://bristol.sourceforge.net/") (synopsis "Synthesizer emulator") (description "Bristol is an emulation package for a number of different @code{classic} @@ -2906,7 +2992,7 @@ main purpose is to liberate raw audio rendering from audio and MIDI drivers.") (list alsa-lib)) (native-inputs (list unzip)) - (home-page "http://portmedia.sourceforge.net/portmidi/") + (home-page "https://portmedia.sourceforge.net/portmidi/") (synopsis "Library for MIDI I/O") (description "PortMidi is a library supporting real-time input and output of MIDI data @@ -2939,7 +3025,7 @@ using a system-independent interface.") (list portmidi alsa-lib)) (native-inputs (list python-cython unzip)) - (home-page "http://portmedia.sourceforge.net/portmidi/") + (home-page "https://portmedia.sourceforge.net/portmidi/") (synopsis "Python bindings to PortMidi") (description "This package provides Python bindings to the PortMidi library.") @@ -2967,7 +3053,7 @@ using a system-independent interface.") python-ly python-poppler-qt5 python-pyportmidi - python-pyqt-without-qtwebkit + python-pyqt python-sip)) (home-page "https://www.frescobaldi.org/") (synopsis "LilyPond sheet music text editor") @@ -3103,7 +3189,7 @@ instrument or MIDI file player.") (native-inputs (list pkg-config ruby)) - (home-page "http://zynaddsubfx.sf.net/") + (home-page "https://zynaddsubfx.sf.net/") (synopsis "Software synthesizer") (description "ZynAddSubFX is a feature heavy realtime software synthesizer. It offers @@ -3165,7 +3251,7 @@ capabilities, custom envelopes, effects, etc.") zlib)) (native-inputs (list pkg-config)) - (home-page "http://yoshimi.sourceforge.net/") + (home-page "https://yoshimi.sourceforge.net/") (synopsis "Multi-paradigm software synthesizer") (description "Yoshimi is a fork of ZynAddSubFX, a feature-heavy real-time software @@ -3366,7 +3452,7 @@ computer's keyboard.") (list minixml jack-1 alsa-lib)) (native-inputs (list pkg-config)) - (home-page "http://aj-snapshot.sourceforge.net/") + (home-page "https://aj-snapshot.sourceforge.net/") (synopsis "Snapshot connections between ALSA and JACK clients") (description "Aj-snapshot is a small program that can be used to make snapshots of the connections made between JACK and/or ALSA clients. Because @@ -3678,7 +3764,7 @@ event-based scripts for scrobbling, notifications, etc.") (define-public picard (package (name "picard") - (version "2.8.3") + (version "2.8.5") (source (origin (method url-fetch) (uri (string-append @@ -3686,7 +3772,7 @@ event-based scripts for scrobbling, notifications, etc.") "picard/picard-" version ".tar.gz")) (sha256 (base32 - "0h4yk1y4k23hkfk7k2in27rd34ani857m0vvn7xa8vxizz951dka")))) + "1kjl7iqgvvrv7mygsb7491cz872gm334489nyj0v8b79bxnzghdi")))) (build-system python-build-system) (arguments (list @@ -3709,7 +3795,7 @@ event-based scripts for scrobbling, notifications, etc.") (inputs (list chromaprint python-discid - python-pyqt-without-qtwebkit + python-pyqt python-mutagen python-fasteners python-pyyaml @@ -4070,7 +4156,7 @@ modes available for improved Amiga ProTracker 2/3 compatibility.") (inputs (list alsa-lib ; for asound dependency libx11 libxext sdl)) - (home-page "http://schismtracker.org") + (home-page "https://schismtracker.org") (synopsis "Oldschool sample-based music composition tool") (description "Schism Tracker is a reimplementation of Impulse Tracker, a program used to @@ -4200,7 +4286,7 @@ formats, including most audio formats recognized by FFMpeg.") (version "1.1") (source (origin (method url-fetch) - (uri (string-append "http://www.fourmilab.ch/webtools/midicsv/" + (uri (string-append "https://www.fourmilab.ch/webtools/midicsv/" name "-" version ".tar.gz")) (sha256 (base32 @@ -4218,7 +4304,7 @@ processed by a program to transform the MIDI data (for example, to key transpose a composition or extract a track from a multi-track sequence). A CSV file in the format created by midicsv may be converted back into a standard MIDI file with the csvmidi program.") - (home-page "http://www.fourmilab.ch/webtools/midicsv/") + (home-page "https://www.fourmilab.ch/webtools/midicsv/") (license license:public-domain))) (define-public gx-guvnor-lv2 @@ -4583,7 +4669,7 @@ plugins, a switch trigger, a toggle switch, and a peakmeter.") (list qtbase-5 alsa-lib jack-1 liblo lv2)) (native-inputs (list pkg-config qttools-5)) - (home-page "http://qmidiarp.sourceforge.net/") + (home-page "https://qmidiarp.sourceforge.net/") (synopsis "MIDI arpeggiator") (description "QMidiArp is an advanced MIDI arpeggiator, programmable step sequencer and LFO. It can hold any number of arpeggiator, sequencer, or LFO @@ -4609,7 +4695,7 @@ modules running in parallel.") (list qtbase-5 alsa-lib)) (native-inputs (list pkg-config qttools-5)) - (home-page "http://alsamodular.sourceforge.net/") + (home-page "https://alsamodular.sourceforge.net/") (synopsis "MIDI event router and filter") (description "QMidiRoute is a MIDI event router and filter. MIDI note, control change, program change and pitch bend events are logged, and can be @@ -4874,7 +4960,7 @@ includes LV2 plugins and a JACK standalone client.") (define-public musescore (package (name "musescore") - (version "4.0") + (version "4.0.2") (source (origin (method git-fetch) @@ -4883,7 +4969,7 @@ includes LV2 plugins and a JACK standalone client.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "16rcwr6fzghv8100syzicabqg8jqvng3zzsi6h3ja4zkp9hcbkcr")) + (base32 "1yri94xs4xw0lsvmk5q7bqnpgmdadchfn08r7bb2y07jsi8qgm6w")) (modules '((guix build utils))) (snippet '(begin @@ -5105,7 +5191,7 @@ It is intended to be simple, GUI-toolkit-agnostic, and slightly biased towards familiarity with MIDI. The DSSI distribution package contains a JACK/ALSA-sequencer reference host and some plugins as well as the specification and header.") - (home-page "http://dssi.sourceforge.net/") + (home-page "https://dssi.sourceforge.net/") ;; The DSSI interface is LGPL2.1+, some tests and examples are GPL2+. ;; The vast majority of examples are in the public domain. (license (list license:lgpl2.1+ license:gpl2+)))) @@ -6655,7 +6741,7 @@ plugin and a standalone JACK application.") (description "TAP (Tom's Audio Processing) plugins is a collection of audio effect plugins originally released as LADSPA plugins. This package offers an LV2 version ported by moddevices.") - (home-page "http://tap-plugins.sourceforge.net/") + (home-page "https://tap-plugins.sourceforge.net/") (license license:gpl2)))) (define-public wolf-shaper @@ -6796,7 +6882,7 @@ It is provided as an LV2 plugin and as a standalone Jack application.") (description "Shiru plugins is a collection of audio plugins created by Shiru, ported to LV2 by the Linux MAO project using the DISTRHO plugin framework.") - (home-page "http://shiru.untergrund.net/software.shtml") + (home-page "https://shiru.untergrund.net/software.shtml") (license license:wtfpl2)))) (define-public a2jmidid @@ -7084,6 +7170,40 @@ Renoise, VCV Rack, or SuperCollider.") (home-page "https://100r.co/site/orca.html") (license license:expat)))) +(define-public samplebrain + (package + (name "samplebrain") + (version "0.18.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/then-try-this/samplebrain") + (commit (string-append "v" version "_release")))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "17p6n16x89bbzlpn9r7w1lgr1ifxs45npn8gxymkdr3j16dhg4zy")))) + (build-system qt-build-system) + (arguments + (list #:tests? #f ;no tests + #:phases #~(modify-phases %standard-phases + (replace 'configure + (lambda _ + (substitute* "samplebrain.pro" + (("\\/usr") + #$output)) + (invoke "qmake")))))) + (inputs (list fftw liblo libsndfile portaudio)) + (home-page "https://thentrythis.org/projects/samplebrain/") + (synopsis "Sample mashing synthesizer designed by Aphex Twin") + (description + "Samplebrain chops samples up into a 'brain' of +interconnected small sections called blocks which are connected into a network +by similarity. It processes a target sample, chopping it up into blocks in +the same way, and tries to match each block with one in its brain to play in +realtime.") + (license license:gpl2+))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar |