diff --git a/pd/extra/Makefile.am b/pd/extra/Makefile.am
index 766073d4ee20f7e7505ce73dda122905171b12cf..c3a07736911c7332b6c5f4ec97da0ebdf3cc1783 100644
--- a/pd/extra/Makefile.am
+++ b/pd/extra/Makefile.am
@@ -2,9 +2,9 @@ SUBDIRS=bonk~ choice expr~ fiddle~ loop~ lrshift~ pd~ pique sigmund~ stdout
 
 DIST_SUBDIRS=$(SUBDIRS)
 
-PATCHES    =complex-mod~.pd      hilbert~.pd      rev1-final.pd rev1~.pd rev1-stage.pd rev2~.pd      rev3~.pd
-HELPPATCHES=complex-mod~-help.pd hilbert~-help.pd rev1~-help.pd                        rev2~-help.pd rev3~-help.pd 
+PATCHES=complex-mod~.pd hilbert~.pd output~.pd rev1-final.pd rev1~.pd rev1-stage.pd rev2~.pd rev3~.pd
+HELPPATCHES=complex-mod~-help.pd hilbert~-help.pd output~-help.pd rev1~-help.pd rev2~-help.pd rev3~-help.pd 
 
-libpdextradir = $(pkglibdir)/extra
+libpdextradir=$(pkglibdir)/extra
 
-dist_libpdextra_DATA = $(PATCHES) $(HELPPATCHES) 
+dist_libpdextra_DATA=$(PATCHES) $(HELPPATCHES) 
diff --git a/pd/extra/output~-help.pd b/pd/extra/output~-help.pd
new file mode 100644
index 0000000000000000000000000000000000000000..cd488364677980f21afba75f23b7c77e414975cc
--- /dev/null
+++ b/pd/extra/output~-help.pd
@@ -0,0 +1,11 @@
+#N canvas 103 48 450 300 10;
+#X obj 104 118 osc~ 200;
+#X obj 241 122 noise~;
+#X text 38 28 a GUI replacement for [dac~] with controls for "compute
+audio" \, volume \, and a mute button.;
+#X obj 91 166 output~;
+#X obj 220 165 output~;
+#X connect 0 0 3 0;
+#X connect 0 0 3 1;
+#X connect 1 0 4 1;
+#X connect 1 0 4 0;
diff --git a/pd/extra/output~.pd b/pd/extra/output~.pd
new file mode 100644
index 0000000000000000000000000000000000000000..e13db528f725290ca234e99856a6942d8e6e5233
--- /dev/null
+++ b/pd/extra/output~.pd
@@ -0,0 +1,71 @@
+#N canvas 134 172 468 408 10;
+#X obj 13 106 hsl 42 23 0.01 1 1 0 \$0-v \$0-v volume 7 13 1 9 -245500
+-13381 -1 0 0;
+#X obj 57 106 tgl 18 0 THIS_IS_HERE_TO_GET_RID_OF_THE_OUTLET \$0-dsp-toggle
+dsp 2 9 1 9 -225271 -195568 -33289 1 1;
+#N canvas 366 514 482 356 dsp 0;
+#X obj 11 7 inlet;
+#X obj 92 226 select 0 1;
+#X msg 125 248 6;
+#X obj 92 57 route dsp;
+#X obj 92 36 receive pd;
+#X obj 206 138 loadbang;
+#X msg 11 220 dsp \$1;
+#X obj 11 245 send pd;
+#X msg 206 278 set \$1;
+#X obj 206 174 value GLOBAL_PDDP_DSP;
+#X msg 109 278 color \$1 20 12;
+#X obj 180 309 send \$0-dsp-toggle;
+#X obj 92 115 change;
+#X msg 92 247 0;
+#X connect 0 0 6 0;
+#X connect 0 0 12 0;
+#X connect 1 0 13 0;
+#X connect 1 1 2 0;
+#X connect 2 0 10 0;
+#X connect 3 0 12 0;
+#X connect 4 0 3 0;
+#X connect 5 0 9 0;
+#X connect 6 0 7 0;
+#X connect 8 0 11 0;
+#X connect 9 0 8 0;
+#X connect 9 0 1 0;
+#X connect 10 0 11 0;
+#X connect 12 0 8 0;
+#X connect 12 0 1 0;
+#X connect 12 0 9 0;
+#X connect 13 0 10 0;
+#X restore 82 158 pd dsp logic;
+#X obj 201 12 inlet~;
+#X obj 86 283 line~;
+#X obj 186 343 *~;
+#X obj 206 373 dac~;
+#X text 213 32 audio in;
+#X obj 263 12 inlet~;
+#X obj 248 342 *~;
+#X obj 201 83 hip~ 3;
+#X obj 263 83 hip~ 3;
+#X obj 12 298 send pd;
+#X msg 12 277 dsp 1;
+#X obj 86 262 pack 0 50;
+#X text 153 261 <-- make a ramp to avoid clicks or zipper noise;
+#X msg 86 227 0;
+#X obj 86 204 moses 0.011;
+#X text 307 84 filter out DC;
+#X connect 0 0 13 0;
+#X connect 0 0 17 0;
+#X connect 1 0 2 0;
+#X connect 3 0 10 0;
+#X connect 4 0 9 0;
+#X connect 4 0 5 0;
+#X connect 5 0 6 0;
+#X connect 8 0 11 0;
+#X connect 9 0 6 1;
+#X connect 10 0 5 1;
+#X connect 11 0 9 1;
+#X connect 13 0 12 0;
+#X connect 14 0 4 0;
+#X connect 16 0 14 0;
+#X connect 17 0 16 0;
+#X connect 17 1 14 0;
+#X coords 0 0 1 1 65 39 1 10 90;