1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 avahi,
6 bluez,
7 boost,
8 curl,
9 eigen,
10 faust,
11 fftw,
12 gettext,
13 glib,
14 glib-networking,
15 glibmm,
16 adwaita-icon-theme,
17 gsettings-desktop-schemas,
18 gtk3,
19 gtkmm3,
20 hicolor-icon-theme,
21 intltool,
22 ladspaH,
23 libjack2,
24 libsndfile,
25 lilv,
26 lrdf,
27 lv2,
28 pkg-config,
29 python3,
30 sassc,
31 serd,
32 sord,
33 sratom,
34 wafHook,
35 wrapGAppsHook3,
36 zita-convolver,
37 zita-resampler,
38 optimizationSupport ? false, # Enable support for native CPU extensions
39}:
40
41let
42 inherit (lib) optional;
43in
44
45stdenv.mkDerivation (finalAttrs: {
46 pname = "guitarix";
47 version = "0.46.0";
48
49 src = fetchFromGitHub {
50 owner = "brummer10";
51 repo = "guitarix";
52 rev = "V${finalAttrs.version}";
53 fetchSubmodules = true;
54 hash = "sha256-AftC6fQEDzG/3C/83YbK/++bRgP7vPD0E2X6KEWpowc=";
55 };
56
57 sourceRoot = "${finalAttrs.src.name}/trunk";
58
59 nativeBuildInputs = [
60 gettext
61 hicolor-icon-theme
62 intltool
63 pkg-config
64 python3
65 wafHook
66 wrapGAppsHook3
67 ];
68
69 buildInputs = [
70 avahi
71 bluez
72 boost
73 curl
74 eigen
75 faust
76 fftw
77 glib
78 glib-networking.out
79 glibmm
80 adwaita-icon-theme
81 gsettings-desktop-schemas
82 gtk3
83 gtkmm3
84 ladspaH
85 libjack2
86 libsndfile
87 lilv
88 lrdf
89 lv2
90 sassc
91 serd
92 sord
93 sratom
94 zita-convolver
95 zita-resampler
96 ];
97
98 wafConfigureFlags = [
99 "--no-font-cache-update"
100 "--shared-lib"
101 "--no-desktop-update"
102 "--enable-nls"
103 "--install-roboto-font"
104 ]
105 ++ optional optimizationSupport "--optimization";
106
107 env.NIX_CFLAGS_COMPILE = toString [ "-fpermissive" ];
108
109 meta = with lib; {
110 description = "Virtual guitar amplifier for Linux running with JACK";
111 mainProgram = "guitarix";
112 longDescription = ''
113 guitarix is a virtual guitar amplifier for Linux running with
114 JACK (Jack Audio Connection Kit). It is free as in speech and
115 free as in beer. Its free sourcecode allows to build it for
116 other UNIX-like systems also, namely for BSD and for MacOSX.
117
118 It takes the signal from your guitar as any real amp would do:
119 as a mono-signal from your sound card. Your tone is processed by
120 a main amp and a rack-section. Both can be routed separately and
121 deliver a processed stereo-signal via JACK. You may fill the
122 rack with effects from more than 25 built-in modules spanning
123 from a simple noise-gate to brain-slashing modulation-fx like
124 flanger, phaser or auto-wah. Your signal is processed with
125 minimum latency. On any properly set-up Linux-system you do not
126 need to wait for more than 10 milli-seconds for your playing to
127 be delivered, processed by guitarix.
128
129 guitarix offers the range of sounds you would expect from a
130 full-featured universal guitar-amp. You can get crisp
131 clean-sounds, nice overdrive, fat distortion and a diversity of
132 crazy sounds never heard before.
133 '';
134 homepage = "https://github.com/brummer10/guitarix";
135 license = licenses.gpl3Plus;
136 maintainers = with maintainers; [
137 lord-valen
138 ];
139 platforms = platforms.linux;
140 };
141})