diff -Nru faust2pd-2.15/debian/changelog faust2pd-2.16/debian/changelog --- faust2pd-2.15/debian/changelog 2017-01-09 08:43:29.000000000 +0000 +++ faust2pd-2.16/debian/changelog 2018-01-15 17:38:53.000000000 +0000 @@ -1,3 +1,9 @@ +faust2pd (2.16-1) artful; urgency=medium + + * New upstream release + + -- Albert Graef Mon, 15 Jan 2018 18:38:53 +0100 + faust2pd (2.15-2) xenial; urgency=medium * Missing -fPIC flag (batch compilation) diff -Nru faust2pd-2.15/debian/patches/debian-changes-2.15-2 faust2pd-2.16/debian/patches/debian-changes-2.15-2 --- faust2pd-2.15/debian/patches/debian-changes-2.15-2 2017-01-09 08:43:39.000000000 +0000 +++ faust2pd-2.16/debian/patches/debian-changes-2.15-2 1970-01-01 00:00:00.000000000 +0000 @@ -1,58 +0,0 @@ -Description: - TODO: Put a short summary on the line above and replace this paragraph - with a longer explanation of this change. Complete the meta-information - with other relevant fields (see below for details). To make it easier, the - information below has been extracted from the changelog. Adjust it or drop - it. - . - faust2pd (2.15-2) xenial; urgency=medium - . - * Missing -fPIC flag (batch compilation) -Author: Albert Graef - ---- -The information above should follow the Patch Tagging Guidelines, please -checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here -are templates for supplementary fields that you might want to add: - -Origin: , -Bug: -Bug-Debian: https://bugs.debian.org/ -Bug-Ubuntu: https://launchpad.net/bugs/ -Forwarded: -Reviewed-By: -Last-Update: - ---- faust2pd-2.15.orig/Makefile -+++ faust2pd-2.15/Makefile -@@ -24,6 +24,10 @@ ifneq "$(findstring -mingw,$(host))" "" - # Windows - EXE = .exe - endif -+ifneq "$(findstring x86_64-,$(host))" "" -+# 64 bit, needs -fPIC flag -+PIC = -fPIC -+endif - - DESTDIR= - -@@ -52,7 +56,7 @@ realclean: - # as of pure-0.21, we can compile the script to an executable - faust2pd$(EXE): faust2pd.pure faustxml.pure - sed -e 's?@version@?$(version)?' < $< > xx$< -- pure $(PUREC_FLAGS) -I. -c xx$< -o $@ -+ pure $(PIC) $(PUREC_FLAGS) -I. -c xx$< -o $@ - rm -f xx$< - - # install faust2pd ---- faust2pd-2.15.orig/README -+++ faust2pd-2.15/README -@@ -3,7 +3,7 @@ - faust2pd: Pd Patch Generator for Faust - ====================================== - --Version 2.15, Januar 1, 2017 -+Version 2.15, January 9, 2017 - - Albert Graef - diff -Nru faust2pd-2.15/debian/patches/debian-changes-2.16-1 faust2pd-2.16/debian/patches/debian-changes-2.16-1 --- faust2pd-2.15/debian/patches/debian-changes-2.16-1 1970-01-01 00:00:00.000000000 +0000 +++ faust2pd-2.16/debian/patches/debian-changes-2.16-1 2018-01-15 17:38:53.000000000 +0000 @@ -0,0 +1,12795 @@ +Description: + TODO: Put a short summary on the line above and replace this paragraph + with a longer explanation of this change. Complete the meta-information + with other relevant fields (see below for details). To make it easier, the + information below has been extracted from the changelog. Adjust it or drop + it. + . + faust2pd (2.16-1) artful; urgency=medium + . + * New upstream release +Author: Albert Graef + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: , +Bug: +Bug-Debian: https://bugs.debian.org/ +Bug-Ubuntu: https://launchpad.net/bugs/ +Forwarded: +Reviewed-By: +Last-Update: 2018-01-16 + +--- faust2pd-2.16.orig/Makefile ++++ faust2pd-2.16/Makefile +@@ -114,7 +114,7 @@ deb: $(debsrc) dist + rm -rf $(dist) + + $(debsrc): +- wget -nv https://bitbucket.org/purelang/pure-lang/downloads/$(dist).tar.gz -O $@ ++ wget -nv https://github.com/agraef/pure-lang/releases/download/$(dist)/$(dist).tar.gz -O $@ + + # Generate the documentation. + +--- faust2pd-2.16.orig/README ++++ faust2pd-2.16/README +@@ -3,7 +3,7 @@ + faust2pd: Pd Patch Generator for Faust + ====================================== + +-Version 2.16, January 15, 2018 ++Version 2.16, Januar 16, 2018 + + Albert Graef + +--- /dev/null ++++ faust2pd-2.16/examples/faust/bandfilter.dsp.xml +@@ -0,0 +1,53 @@ ++ ++ ++ bandfilter ++ Grame ++ (c)GRAME 2006 ++ BSD ++ 1.0 ++ mydsp ++ 1 ++ 1 ++ ++ ++ 3 ++ ++ ++ fEntry1 ++ 50.0f ++ 0.10000000000000001f ++ 100.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry0 ++ 1000.0f ++ 20.0f ++ 20000.0f ++ 1.0f ++ ++ ++ ++ fVslider0 ++ 0.0f ++ -50.0f ++ 50.0f ++ 0.10000000000000001f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/bandfilter.pd +@@ -0,0 +1,78 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 330 inlet~; ++#X obj 10 330 inlet; ++#X obj 130 330 r \$0-read; ++#X obj 130 360 faust-control \$0; ++#X obj 130 390 s \$0-write; ++#X obj 10 390 r \$0-in; ++#X obj 10 420 bandfilter~; ++#X obj 10 450 s \$0-out; ++#X obj 70 480 outlet~; ++#X obj 10 480 outlet; ++#X connect 1 0 3 0; ++#X connect 2 0 3 0; ++#X connect 3 0 4 0; ++#X connect 6 0 7 0; ++#X connect 1 0 9 0; ++#X connect 5 0 6 0; ++#X connect 0 0 6 1; ++#X connect 6 1 8 0; ++#X obj 10 30 nbx 5 14 0.1 100 0 0 \$0-Bandfilter/Q-factor \$0-Bandfilter/Q-factor Q-factor 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 nbx 5 14 20 20000 0 0 \$0-Bandfilter/freq \$0-Bandfilter/freq freq 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 vsl 15 128 -50 50 0 0 \$0-Bandfilter/gain \$0-Bandfilter/gain gain 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 10 230 nbx 5 14 -50 50 0 0 \$0-Bandfilter/gain \$0-Bandfilter/gain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 47 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 67 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 666 10 s \$0-in; ++#X obj 774 10 s \$0-read; ++#X obj 882 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 20 0 21 0; ++#X obj 666 30 r \$0-active; ++#X msg 666 50 active \$1; ++#X connect 22 0 23 0; ++#X connect 23 0 17 0; ++#X obj 882 30 route active; ++#X obj 882 50 s \$0-active; ++#X connect 19 0 24 0; ++#X connect 24 0 25 0; ++#X msg 450 70 50; ++#X obj 450 90 s \$0-Bandfilter/Q-factor; ++#X connect 16 0 26 0; ++#X connect 26 0 27 0; ++#X obj 666 70 r \$0-Bandfilter/Q-factor; ++#X msg 666 90 /Bandfilter/Q-factor \$1; ++#X connect 28 0 29 0; ++#X connect 29 0 17 0; ++#X obj 882 70 route /Bandfilter/Q-factor; ++#X obj 882 90 s \$0-Bandfilter/Q-factor; ++#X connect 24 1 30 0; ++#X connect 30 0 31 0; ++#X msg 450 110 1000; ++#X obj 450 130 s \$0-Bandfilter/freq; ++#X connect 16 0 32 0; ++#X connect 32 0 33 0; ++#X obj 666 110 r \$0-Bandfilter/freq; ++#X msg 666 130 /Bandfilter/freq \$1; ++#X connect 34 0 35 0; ++#X connect 35 0 17 0; ++#X obj 882 110 route /Bandfilter/freq; ++#X obj 882 130 s \$0-Bandfilter/freq; ++#X connect 30 1 36 0; ++#X connect 36 0 37 0; ++#X msg 450 150 0; ++#X obj 450 170 s \$0-Bandfilter/gain; ++#X connect 16 0 38 0; ++#X connect 38 0 39 0; ++#X obj 666 150 r \$0-Bandfilter/gain; ++#X msg 666 170 /Bandfilter/gain \$1; ++#X connect 40 0 41 0; ++#X connect 41 0 17 0; ++#X obj 882 150 route /Bandfilter/gain; ++#X obj 882 170 s \$0-Bandfilter/gain; ++#X connect 36 1 42 0; ++#X connect 42 0 43 0; ++#X coords 0 -1 1 1 85 260 1 0 0; ++#X text 0 280 Generated Tue Jan 16 18:57:54 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/faust/capture.dsp.xml +@@ -0,0 +1,40 @@ ++ ++ ++ capture ++ Grame ++ (c)GRAME 2006 ++ BSD ++ 1.0 ++ mydsp ++ 1 ++ 1 ++ ++ ++ 2 ++ ++ ++ fButton0 ++ ++ ++ ++ fHslider0 ++ 0.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/capture.pd +@@ -0,0 +1,65 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 150 inlet~; ++#X obj 10 150 inlet; ++#X obj 130 150 r \$0-read; ++#X obj 130 180 faust-control \$0; ++#X obj 130 210 s \$0-write; ++#X obj 10 210 r \$0-in; ++#X obj 10 240 capture~; ++#X obj 10 270 s \$0-out; ++#X obj 70 300 outlet~; ++#X obj 10 300 outlet; ++#X connect 1 0 3 0; ++#X connect 2 0 3 0; ++#X connect 3 0 4 0; ++#X connect 6 0 7 0; ++#X connect 1 0 9 0; ++#X connect 5 0 6 0; ++#X connect 0 0 6 1; ++#X connect 6 1 8 0; ++#X obj 10 30 bng 15 250 50 0 \$0-Audio-Capture/Capture \$0-Audio-Capture/Capture Capture 0 -6 0 10 -262144 -1 -1; ++#X obj 10 60 hsl 128 15 -96 4 0 0 \$0-Audio-Capture/level-db \$0-Audio-Capture/level-db level-db -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 -96 4 0 0 \$0-Audio-Capture/level-db \$0-Audio-Capture/level-db empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 690 10 s \$0-in; ++#X obj 810 10 s \$0-read; ++#X obj 930 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 19 0 20 0; ++#X obj 690 30 r \$0-active; ++#X msg 690 50 active \$1; ++#X connect 21 0 22 0; ++#X connect 22 0 16 0; ++#X obj 930 30 route active; ++#X obj 930 50 s \$0-active; ++#X connect 18 0 23 0; ++#X connect 23 0 24 0; ++#X msg 450 70 0; ++#X obj 450 90 faust-s \$0-Audio-Capture/Capture; ++#X connect 15 0 25 0; ++#X connect 25 0 26 0; ++#X obj 690 70 r \$0-Audio-Capture/Capture; ++#X obj 690 90 faust-r /Audio-Capture/Capture; ++#X connect 27 0 28 0; ++#X connect 28 0 16 0; ++#X obj 930 70 route /Audio-Capture/Capture; ++#X obj 930 90 faust-s \$0-Audio-Capture/Capture; ++#X connect 23 1 29 0; ++#X connect 29 0 30 0; ++#X msg 450 110 0; ++#X obj 450 130 s \$0-Audio-Capture/level-db; ++#X connect 15 0 31 0; ++#X connect 31 0 32 0; ++#X obj 690 110 r \$0-Audio-Capture/level-db; ++#X msg 690 130 /Audio-Capture/level-db \$1; ++#X connect 33 0 34 0; ++#X connect 34 0 16 0; ++#X obj 930 110 route /Audio-Capture/level-db; ++#X obj 930 130 s \$0-Audio-Capture/level-db; ++#X connect 29 1 35 0; ++#X connect 35 0 36 0; ++#X coords 0 -1 1 1 235 80 1 0 0; ++#X text 0 100 Generated Tue Jan 16 18:57:55 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/faust/dbmeter.dsp.xml +@@ -0,0 +1,33 @@ ++ ++ ++ dbmeter ++ Grame ++ (c)GRAME 2006 ++ BSD ++ 1.0 ++ mydsp ++ 1 ++ 1 ++ ++ ++ 0 ++ ++ ++ ++ 1 ++ ++ ++ fVbargraph0 ++ -96.0f ++ 10.0f ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/dbmeter.pd +@@ -0,0 +1,52 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 270 inlet~; ++#X obj 10 270 inlet; ++#X obj 130 270 r \$0-read; ++#X obj 130 300 faust-control \$0; ++#X obj 130 330 s \$0-write; ++#X obj 10 330 r \$0-in; ++#X obj 10 360 dbmeter~; ++#X obj 10 390 s \$0-out; ++#X obj 70 420 outlet~; ++#X obj 10 420 outlet; ++#X connect 1 0 3 0; ++#X connect 2 0 3 0; ++#X connect 3 0 4 0; ++#X connect 6 0 7 0; ++#X connect 1 0 9 0; ++#X connect 5 0 6 0; ++#X connect 0 0 6 1; ++#X connect 6 1 8 0; ++#X obj 10 30 vsl 15 128 -96 10 0 0 \$0-dbmeter/dB \$0-dbmeter/dB dB 0 -8 0 10 -233017 -1 -1 0 1; ++#X obj 10 170 nbx 5 14 -96 10 0 0 \$0-dbmeter/dB \$0-dbmeter/dB empty 0 -6 0 10 -233017 -1 -1 256; ++#X obj 47 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 67 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 594 10 s \$0-in; ++#X obj 666 10 s \$0-read; ++#X obj 738 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 18 0 19 0; ++#X obj 594 30 r \$0-active; ++#X msg 594 50 active \$1; ++#X connect 20 0 21 0; ++#X connect 21 0 15 0; ++#X obj 738 30 route active; ++#X obj 738 50 s \$0-active; ++#X connect 17 0 22 0; ++#X connect 22 0 23 0; ++#X msg 450 70 0; ++#X obj 450 90 s \$0-dbmeter/dB; ++#X connect 14 0 24 0; ++#X connect 24 0 25 0; ++#X obj 594 70 faust-timer \$0; ++#X msg 594 90 /dbmeter/dB; ++#X connect 26 0 27 0; ++#X connect 27 0 16 0; ++#X obj 738 70 route /dbmeter/dB; ++#X obj 738 90 s \$0-dbmeter/dB; ++#X connect 22 1 28 0; ++#X connect 28 0 29 0; ++#X coords 0 -1 1 1 85 200 1 0 0; ++#X text 0 220 Generated Tue Jan 16 18:57:54 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/faust/echo.dsp.xml +@@ -0,0 +1,47 @@ ++ ++ ++ echo ++ Grame ++ (c)GRAME 2006 ++ BSD ++ 1.0 ++ mydsp ++ 1 ++ 1 ++ ++ ++ 2 ++ ++ ++ fHslider0 ++ 0.0f ++ 0.0f ++ 100.0f ++ 0.10000000000000001f ++ ++ ++ ++ fHslider1 ++ 0.0f ++ 0.0f ++ 1000.0f ++ 0.10000000000000001f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/echo.pd +@@ -0,0 +1,66 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 150 inlet~; ++#X obj 10 150 inlet; ++#X obj 130 150 r \$0-read; ++#X obj 130 180 faust-control \$0; ++#X obj 130 210 s \$0-write; ++#X obj 10 210 r \$0-in; ++#X obj 10 240 echo~; ++#X obj 10 270 s \$0-out; ++#X obj 70 300 outlet~; ++#X obj 10 300 outlet; ++#X connect 1 0 3 0; ++#X connect 2 0 3 0; ++#X connect 3 0 4 0; ++#X connect 6 0 7 0; ++#X connect 1 0 9 0; ++#X connect 5 0 6 0; ++#X connect 0 0 6 1; ++#X connect 6 1 8 0; ++#X obj 10 30 hsl 128 15 0 100 0 0 \$0-echo-simple/echo-1000/feedback \$0-echo-simple/echo-1000/feedback feedback -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 0 100 0 0 \$0-echo-simple/echo-1000/feedback \$0-echo-simple/echo-1000/feedback empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 0 1000 0 0 \$0-echo-simple/echo-1000/millisecond \$0-echo-simple/echo-1000/millisecond millisecond -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 0 1000 0 0 \$0-echo-simple/echo-1000/millisecond \$0-echo-simple/echo-1000/millisecond empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 778 10 s \$0-in; ++#X obj 942 10 s \$0-read; ++#X obj 1106 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 20 0 21 0; ++#X obj 778 30 r \$0-active; ++#X msg 778 50 active \$1; ++#X connect 22 0 23 0; ++#X connect 23 0 17 0; ++#X obj 1106 30 route active; ++#X obj 1106 50 s \$0-active; ++#X connect 19 0 24 0; ++#X connect 24 0 25 0; ++#X msg 450 70 0; ++#X obj 450 90 s \$0-echo-simple/echo-1000/feedback; ++#X connect 16 0 26 0; ++#X connect 26 0 27 0; ++#X obj 778 70 r \$0-echo-simple/echo-1000/feedback; ++#X msg 778 90 /echo-simple/echo-1000/feedback \$1; ++#X connect 28 0 29 0; ++#X connect 29 0 17 0; ++#X obj 1106 70 route /echo-simple/echo-1000/feedback; ++#X obj 1106 90 s \$0-echo-simple/echo-1000/feedback; ++#X connect 24 1 30 0; ++#X connect 30 0 31 0; ++#X msg 450 110 0; ++#X obj 450 130 s \$0-echo-simple/echo-1000/millisecond; ++#X connect 16 0 32 0; ++#X connect 32 0 33 0; ++#X obj 778 110 r \$0-echo-simple/echo-1000/millisecond; ++#X msg 778 130 /echo-simple/echo-1000/millisecond \$1; ++#X connect 34 0 35 0; ++#X connect 35 0 17 0; ++#X obj 1106 110 route /echo-simple/echo-1000/millisecond; ++#X obj 1106 130 s \$0-echo-simple/echo-1000/millisecond; ++#X connect 30 1 36 0; ++#X connect 36 0 37 0; ++#X coords 0 -1 1 1 235 80 1 0 0; ++#X text 0 100 Generated Tue Jan 16 18:57:56 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/faust/envelop.dsp.xml +@@ -0,0 +1,67 @@ ++ ++ ++ envelop ++ Grame ++ (c)GRAME 2006 ++ BSD ++ 1.0 ++ mydsp ++ 0 ++ 1 ++ ++ ++ 5 ++ ++ ++ fEntry0 ++ 20.0f ++ 1.0f ++ 1000.0f ++ 1.0f ++ ++ ++ ++ fEntry1 ++ 2.0f ++ 1.0f ++ 100.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry2 ++ 10.0f ++ 1.0f ++ 100.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry3 ++ 10.0f ++ 1.0f ++ 100.0f ++ 0.10000000000000001f ++ ++ ++ ++ fButton0 ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/envelop.pd +@@ -0,0 +1,101 @@ ++#N canvas 0 0 450 300 10; ++#X obj 10 240 inlet; ++#X obj 130 240 r \$0-read; ++#X obj 130 270 faust-control \$0; ++#X obj 130 300 s \$0-write; ++#X obj 10 300 r \$0-in; ++#X obj 10 330 envelop~; ++#X obj 10 360 s \$0-out; ++#X obj 70 390 outlet~; ++#X obj 10 390 outlet; ++#X connect 0 0 2 0; ++#X connect 1 0 2 0; ++#X connect 2 0 3 0; ++#X connect 5 0 6 0; ++#X connect 0 0 8 0; ++#X connect 4 0 5 0; ++#X connect 5 1 7 0; ++#X obj 10 30 nbx 5 14 1 1000 0 0 \$0-envelop/1-attack-ms \$0-envelop/1-attack-ms 1-attack-ms 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 nbx 5 14 1 100 0 0 \$0-envelop/2-decay-speed \$0-envelop/2-decay-speed 2-decay-speed 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 nbx 5 14 1 100 0 0 \$0-envelop/3-sustain-pcent \$0-envelop/3-sustain-pcent 3-sustain-pcent 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 120 nbx 5 14 1 100 0 0 \$0-envelop/4-release-speed \$0-envelop/4-release-speed 4-release-speed 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 150 bng 15 250 50 0 \$0-envelop/play \$0-envelop/play play 0 -6 0 10 -262144 -1 -1; ++#X obj 47 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 67 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 698 10 s \$0-in; ++#X obj 822 10 s \$0-read; ++#X obj 946 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 20 0 21 0; ++#X obj 698 30 r \$0-active; ++#X msg 698 50 active \$1; ++#X connect 22 0 23 0; ++#X connect 23 0 17 0; ++#X obj 946 30 route active; ++#X obj 946 50 s \$0-active; ++#X connect 19 0 24 0; ++#X connect 24 0 25 0; ++#X msg 450 70 20; ++#X obj 450 90 s \$0-envelop/1-attack-ms; ++#X connect 16 0 26 0; ++#X connect 26 0 27 0; ++#X obj 698 70 r \$0-envelop/1-attack-ms; ++#X msg 698 90 /envelop/1-attack-ms \$1; ++#X connect 28 0 29 0; ++#X connect 29 0 17 0; ++#X obj 946 70 route /envelop/1-attack-ms; ++#X obj 946 90 s \$0-envelop/1-attack-ms; ++#X connect 24 1 30 0; ++#X connect 30 0 31 0; ++#X msg 450 110 2; ++#X obj 450 130 s \$0-envelop/2-decay-speed; ++#X connect 16 0 32 0; ++#X connect 32 0 33 0; ++#X obj 698 110 r \$0-envelop/2-decay-speed; ++#X msg 698 130 /envelop/2-decay-speed \$1; ++#X connect 34 0 35 0; ++#X connect 35 0 17 0; ++#X obj 946 110 route /envelop/2-decay-speed; ++#X obj 946 130 s \$0-envelop/2-decay-speed; ++#X connect 30 1 36 0; ++#X connect 36 0 37 0; ++#X msg 450 150 10; ++#X obj 450 170 s \$0-envelop/3-sustain-pcent; ++#X connect 16 0 38 0; ++#X connect 38 0 39 0; ++#X obj 698 150 r \$0-envelop/3-sustain-pcent; ++#X msg 698 170 /envelop/3-sustain-pcent \$1; ++#X connect 40 0 41 0; ++#X connect 41 0 17 0; ++#X obj 946 150 route /envelop/3-sustain-pcent; ++#X obj 946 170 s \$0-envelop/3-sustain-pcent; ++#X connect 36 1 42 0; ++#X connect 42 0 43 0; ++#X msg 450 190 10; ++#X obj 450 210 s \$0-envelop/4-release-speed; ++#X connect 16 0 44 0; ++#X connect 44 0 45 0; ++#X obj 698 190 r \$0-envelop/4-release-speed; ++#X msg 698 210 /envelop/4-release-speed \$1; ++#X connect 46 0 47 0; ++#X connect 47 0 17 0; ++#X obj 946 190 route /envelop/4-release-speed; ++#X obj 946 210 s \$0-envelop/4-release-speed; ++#X connect 42 1 48 0; ++#X connect 48 0 49 0; ++#X msg 450 230 0; ++#X obj 450 250 faust-s \$0-envelop/play; ++#X connect 16 0 50 0; ++#X connect 50 0 51 0; ++#X obj 698 230 r \$0-envelop/play; ++#X obj 698 250 faust-r /envelop/play; ++#X connect 52 0 53 0; ++#X connect 53 0 17 0; ++#X obj 946 230 route /envelop/play; ++#X obj 946 250 faust-s \$0-envelop/play; ++#X connect 48 1 54 0; ++#X connect 54 0 55 0; ++#X coords 0 -1 1 1 85 170 1 0 0; ++#X text 0 190 Generated Tue Jan 16 18:57:56 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/faust/freeverb.dsp.xml +@@ -0,0 +1,53 @@ ++ ++ ++ freeverb ++ Grame ++ (c) GRAME 2006 ++ BSD ++ 1.0 ++ mydsp ++ 2 ++ 2 ++ ++ ++ 3 ++ ++ ++ fHslider2 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.025000000000000001f ++ ++ ++ ++ fHslider1 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.025000000000000001f ++ ++ ++ ++ fHslider0 ++ 0.33329999999999999f ++ 0.0f ++ 1.0f ++ 0.025000000000000001f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/freeverb.pd +@@ -0,0 +1,84 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 180 inlet~; ++#X obj 130 180 inlet~; ++#X obj 10 180 inlet; ++#X obj 190 180 r \$0-read; ++#X obj 190 210 faust-control \$0; ++#X obj 190 240 s \$0-write; ++#X obj 10 240 r \$0-in; ++#X obj 10 270 freeverb~; ++#X obj 10 300 s \$0-out; ++#X obj 70 330 outlet~; ++#X obj 130 330 outlet~; ++#X obj 10 330 outlet; ++#X connect 2 0 4 0; ++#X connect 3 0 4 0; ++#X connect 4 0 5 0; ++#X connect 7 0 8 0; ++#X connect 2 0 11 0; ++#X connect 6 0 7 0; ++#X connect 0 0 7 1; ++#X connect 1 0 7 2; ++#X connect 7 1 9 0; ++#X connect 7 2 10 0; ++#X obj 10 30 hsl 128 15 0 1 0 0 \$0-Freeverb/Damp \$0-Freeverb/Damp Damp -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 0 1 0 0 \$0-Freeverb/Damp \$0-Freeverb/Damp empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 0 1 0 0 \$0-Freeverb/RoomSize \$0-Freeverb/RoomSize RoomSize -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 0 1 0 0 \$0-Freeverb/RoomSize \$0-Freeverb/RoomSize empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 hsl 128 15 0 1 0 0 \$0-Freeverb/Wet \$0-Freeverb/Wet Wet -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 90 nbx 5 14 0 1 0 0 \$0-Freeverb/Wet \$0-Freeverb/Wet empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 650 10 s \$0-in; ++#X obj 750 10 s \$0-read; ++#X obj 850 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 24 0 25 0; ++#X obj 650 30 r \$0-active; ++#X msg 650 50 active \$1; ++#X connect 26 0 27 0; ++#X connect 27 0 21 0; ++#X obj 850 30 route active; ++#X obj 850 50 s \$0-active; ++#X connect 23 0 28 0; ++#X connect 28 0 29 0; ++#X msg 450 70 0.5; ++#X obj 450 90 s \$0-Freeverb/Damp; ++#X connect 20 0 30 0; ++#X connect 30 0 31 0; ++#X obj 650 70 r \$0-Freeverb/Damp; ++#X msg 650 90 /Freeverb/Damp \$1; ++#X connect 32 0 33 0; ++#X connect 33 0 21 0; ++#X obj 850 70 route /Freeverb/Damp; ++#X obj 850 90 s \$0-Freeverb/Damp; ++#X connect 28 1 34 0; ++#X connect 34 0 35 0; ++#X msg 450 110 0.5; ++#X obj 450 130 s \$0-Freeverb/RoomSize; ++#X connect 20 0 36 0; ++#X connect 36 0 37 0; ++#X obj 650 110 r \$0-Freeverb/RoomSize; ++#X msg 650 130 /Freeverb/RoomSize \$1; ++#X connect 38 0 39 0; ++#X connect 39 0 21 0; ++#X obj 850 110 route /Freeverb/RoomSize; ++#X obj 850 130 s \$0-Freeverb/RoomSize; ++#X connect 34 1 40 0; ++#X connect 40 0 41 0; ++#X msg 450 150 0.3333; ++#X obj 450 170 s \$0-Freeverb/Wet; ++#X connect 20 0 42 0; ++#X connect 42 0 43 0; ++#X obj 650 150 r \$0-Freeverb/Wet; ++#X msg 650 170 /Freeverb/Wet \$1; ++#X connect 44 0 45 0; ++#X connect 45 0 21 0; ++#X obj 850 150 route /Freeverb/Wet; ++#X obj 850 170 s \$0-Freeverb/Wet; ++#X connect 40 1 46 0; ++#X connect 46 0 47 0; ++#X coords 0 -1 1 1 235 110 1 0 0; ++#X text 0 130 Generated Tue Jan 16 18:57:55 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/faust/karplus.dsp.xml +@@ -0,0 +1,73 @@ ++ ++ ++ karplus ++ Grame ++ (c)GRAME 2006 ++ BSD ++ 1.0 ++ mydsp ++ 0 ++ 1 ++ ++ ++ 5 ++ ++ ++ fHslider2 ++ 128.0f ++ 2.0f ++ 512.0f ++ 1.0f ++ ++ ++ ++ fButton0 ++ ++ ++ ++ fHslider1 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.01f ++ ++ ++ ++ fHslider0 ++ 0.10000000000000001f ++ 0.0f ++ 1.0f ++ 0.01f ++ ++ ++ ++ fHslider3 ++ 128.0f ++ 2.0f ++ 512.0f ++ 1.0f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/karplus.pd +@@ -0,0 +1,105 @@ ++#N canvas 0 0 450 300 10; ++#X obj 10 240 inlet; ++#X obj 130 240 r \$0-read; ++#X obj 130 270 faust-control \$0; ++#X obj 130 300 s \$0-write; ++#X obj 10 300 r \$0-in; ++#X obj 10 330 karplus~; ++#X obj 10 360 s \$0-out; ++#X obj 70 390 outlet~; ++#X obj 10 390 outlet; ++#X connect 0 0 2 0; ++#X connect 1 0 2 0; ++#X connect 2 0 3 0; ++#X connect 5 0 6 0; ++#X connect 0 0 8 0; ++#X connect 4 0 5 0; ++#X connect 5 1 7 0; ++#X obj 10 30 hsl 128 15 2 512 0 0 \$0-karplus/excitator/excitation \$0-karplus/excitator/excitation excitation -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 2 512 0 0 \$0-karplus/excitator/excitation \$0-karplus/excitator/excitation empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 bng 15 250 50 0 \$0-karplus/excitator/play \$0-karplus/excitator/play play 0 -6 0 10 -262144 -1 -1; ++#X obj 10 90 hsl 128 15 0 1 0 0 \$0-karplus/level \$0-karplus/level level -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 90 nbx 5 14 0 1 0 0 \$0-karplus/level \$0-karplus/level empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 120 hsl 128 15 0 1 0 0 \$0-karplus/resonator/attenuation \$0-karplus/resonator/attenuation attenuation -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 120 nbx 5 14 0 1 0 0 \$0-karplus/resonator/attenuation \$0-karplus/resonator/attenuation empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 150 hsl 128 15 2 512 0 0 \$0-karplus/resonator/duration \$0-karplus/resonator/duration duration -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 150 nbx 5 14 2 512 0 0 \$0-karplus/resonator/duration \$0-karplus/resonator/duration empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 746 10 s \$0-in; ++#X obj 894 10 s \$0-read; ++#X obj 1042 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 24 0 25 0; ++#X obj 746 30 r \$0-active; ++#X msg 746 50 active \$1; ++#X connect 26 0 27 0; ++#X connect 27 0 21 0; ++#X obj 1042 30 route active; ++#X obj 1042 50 s \$0-active; ++#X connect 23 0 28 0; ++#X connect 28 0 29 0; ++#X msg 450 70 128; ++#X obj 450 90 s \$0-karplus/excitator/excitation; ++#X connect 20 0 30 0; ++#X connect 30 0 31 0; ++#X obj 746 70 r \$0-karplus/excitator/excitation; ++#X msg 746 90 /karplus/excitator/excitation \$1; ++#X connect 32 0 33 0; ++#X connect 33 0 21 0; ++#X obj 1042 70 route /karplus/excitator/excitation; ++#X obj 1042 90 s \$0-karplus/excitator/excitation; ++#X connect 28 1 34 0; ++#X connect 34 0 35 0; ++#X msg 450 110 0; ++#X obj 450 130 faust-s \$0-karplus/excitator/play; ++#X connect 20 0 36 0; ++#X connect 36 0 37 0; ++#X obj 746 110 r \$0-karplus/excitator/play; ++#X obj 746 130 faust-r /karplus/excitator/play; ++#X connect 38 0 39 0; ++#X connect 39 0 21 0; ++#X obj 1042 110 route /karplus/excitator/play; ++#X obj 1042 130 faust-s \$0-karplus/excitator/play; ++#X connect 34 1 40 0; ++#X connect 40 0 41 0; ++#X msg 450 150 0.5; ++#X obj 450 170 s \$0-karplus/level; ++#X connect 20 0 42 0; ++#X connect 42 0 43 0; ++#X obj 746 150 r \$0-karplus/level; ++#X msg 746 170 /karplus/level \$1; ++#X connect 44 0 45 0; ++#X connect 45 0 21 0; ++#X obj 1042 150 route /karplus/level; ++#X obj 1042 170 s \$0-karplus/level; ++#X connect 40 1 46 0; ++#X connect 46 0 47 0; ++#X msg 450 190 0.1; ++#X obj 450 210 s \$0-karplus/resonator/attenuation; ++#X connect 20 0 48 0; ++#X connect 48 0 49 0; ++#X obj 746 190 r \$0-karplus/resonator/attenuation; ++#X msg 746 210 /karplus/resonator/attenuation \$1; ++#X connect 50 0 51 0; ++#X connect 51 0 21 0; ++#X obj 1042 190 route /karplus/resonator/attenuation; ++#X obj 1042 210 s \$0-karplus/resonator/attenuation; ++#X connect 46 1 52 0; ++#X connect 52 0 53 0; ++#X msg 450 230 128; ++#X obj 450 250 s \$0-karplus/resonator/duration; ++#X connect 20 0 54 0; ++#X connect 54 0 55 0; ++#X obj 746 230 r \$0-karplus/resonator/duration; ++#X msg 746 250 /karplus/resonator/duration \$1; ++#X connect 56 0 57 0; ++#X connect 57 0 21 0; ++#X obj 1042 230 route /karplus/resonator/duration; ++#X obj 1042 250 s \$0-karplus/resonator/duration; ++#X connect 52 1 58 0; ++#X connect 58 0 59 0; ++#X coords 0 -1 1 1 235 170 1 0 0; ++#X text 0 190 Generated Tue Jan 16 18:57:54 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/faust/karplus32.dsp.xml +@@ -0,0 +1,103 @@ ++ ++ ++ karplus32 ++ Grame ++ (c)GRAME 2006 ++ BSD ++ 1.0 ++ mydsp ++ 0 ++ 2 ++ ++ ++ 8 ++ ++ ++ fHslider4 ++ 128.0f ++ 2.0f ++ 512.0f ++ 1.0f ++ ++ ++ ++ fButton0 ++ ++ ++ ++ fHslider3 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fHslider0 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fHslider2 ++ 0.10000000000000001f ++ 0.0f ++ 1.0f ++ 0.01f ++ ++ ++ ++ fHslider6 ++ 32.0f ++ 0.0f ++ 512.0f ++ 1.0f ++ ++ ++ ++ fHslider5 ++ 128.0f ++ 2.0f ++ 512.0f ++ 1.0f ++ ++ ++ ++ fHslider1 ++ 1.0f ++ 0.0f ++ 32.0f ++ 1.0f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/karplus32.pd +@@ -0,0 +1,149 @@ ++#N canvas 0 0 450 300 10; ++#X obj 10 330 inlet; ++#X obj 130 330 r \$0-read; ++#X obj 130 360 faust-control \$0; ++#X obj 130 390 s \$0-write; ++#X obj 10 390 r \$0-in; ++#X obj 10 420 karplus32~; ++#X obj 10 450 s \$0-out; ++#X obj 70 480 outlet~; ++#X obj 130 480 outlet~; ++#X obj 10 480 outlet; ++#X connect 0 0 2 0; ++#X connect 1 0 2 0; ++#X connect 2 0 3 0; ++#X connect 5 0 6 0; ++#X connect 0 0 9 0; ++#X connect 4 0 5 0; ++#X connect 5 1 7 0; ++#X connect 5 2 8 0; ++#X obj 10 30 hsl 128 15 2 512 0 0 \$0-karplus32/excitator/excitation-samples \$0-karplus32/excitator/excitation-samples excitation-samples -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 2 512 0 0 \$0-karplus32/excitator/excitation-samples \$0-karplus32/excitator/excitation-samples empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 bng 15 250 50 0 \$0-karplus32/excitator/play \$0-karplus32/excitator/play play 0 -6 0 10 -262144 -1 -1; ++#X obj 10 90 hsl 128 15 0 1 0 0 \$0-karplus32/noise-generator/level \$0-karplus32/noise-generator/level level -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 90 nbx 5 14 0 1 0 0 \$0-karplus32/noise-generator/level \$0-karplus32/noise-generator/level empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 120 hsl 128 15 0 1 0 0 \$0-karplus32/output-volume \$0-karplus32/output-volume output-volume -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 120 nbx 5 14 0 1 0 0 \$0-karplus32/output-volume \$0-karplus32/output-volume empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 150 hsl 128 15 0 1 0 0 \$0-karplus32/resonator-x32/attenuation \$0-karplus32/resonator-x32/attenuation attenuation -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 150 nbx 5 14 0 1 0 0 \$0-karplus32/resonator-x32/attenuation \$0-karplus32/resonator-x32/attenuation empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 180 hsl 128 15 0 512 0 0 \$0-karplus32/resonator-x32/detune \$0-karplus32/resonator-x32/detune detune -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 180 nbx 5 14 0 512 0 0 \$0-karplus32/resonator-x32/detune \$0-karplus32/resonator-x32/detune empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 210 hsl 128 15 2 512 0 0 \$0-karplus32/resonator-x32/duration-samples \$0-karplus32/resonator-x32/duration-samples duration-samples -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 210 nbx 5 14 2 512 0 0 \$0-karplus32/resonator-x32/duration-samples \$0-karplus32/resonator-x32/duration-samples empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 240 hsl 128 15 0 32 0 0 \$0-karplus32/resonator-x32/polyphony \$0-karplus32/resonator-x32/polyphony polyphony -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 240 nbx 5 14 0 32 0 0 \$0-karplus32/resonator-x32/polyphony \$0-karplus32/resonator-x32/polyphony empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 834 10 s \$0-in; ++#X obj 1026 10 s \$0-read; ++#X obj 1218 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 31 0 32 0; ++#X obj 834 30 r \$0-active; ++#X msg 834 50 active \$1; ++#X connect 33 0 34 0; ++#X connect 34 0 28 0; ++#X obj 1218 30 route active; ++#X obj 1218 50 s \$0-active; ++#X connect 30 0 35 0; ++#X connect 35 0 36 0; ++#X msg 450 70 128; ++#X obj 450 90 s \$0-karplus32/excitator/excitation-samples; ++#X connect 27 0 37 0; ++#X connect 37 0 38 0; ++#X obj 834 70 r \$0-karplus32/excitator/excitation-samples; ++#X msg 834 90 /karplus32/excitator/excitation-samples \$1; ++#X connect 39 0 40 0; ++#X connect 40 0 28 0; ++#X obj 1218 70 route /karplus32/excitator/excitation-samples; ++#X obj 1218 90 s \$0-karplus32/excitator/excitation-samples; ++#X connect 35 1 41 0; ++#X connect 41 0 42 0; ++#X msg 450 110 0; ++#X obj 450 130 faust-s \$0-karplus32/excitator/play; ++#X connect 27 0 43 0; ++#X connect 43 0 44 0; ++#X obj 834 110 r \$0-karplus32/excitator/play; ++#X obj 834 130 faust-r /karplus32/excitator/play; ++#X connect 45 0 46 0; ++#X connect 46 0 28 0; ++#X obj 1218 110 route /karplus32/excitator/play; ++#X obj 1218 130 faust-s \$0-karplus32/excitator/play; ++#X connect 41 1 47 0; ++#X connect 47 0 48 0; ++#X msg 450 150 0.5; ++#X obj 450 170 s \$0-karplus32/noise-generator/level; ++#X connect 27 0 49 0; ++#X connect 49 0 50 0; ++#X obj 834 150 r \$0-karplus32/noise-generator/level; ++#X msg 834 170 /karplus32/noise-generator/level \$1; ++#X connect 51 0 52 0; ++#X connect 52 0 28 0; ++#X obj 1218 150 route /karplus32/noise-generator/level; ++#X obj 1218 170 s \$0-karplus32/noise-generator/level; ++#X connect 47 1 53 0; ++#X connect 53 0 54 0; ++#X msg 450 190 0.5; ++#X obj 450 210 s \$0-karplus32/output-volume; ++#X connect 27 0 55 0; ++#X connect 55 0 56 0; ++#X obj 834 190 r \$0-karplus32/output-volume; ++#X msg 834 210 /karplus32/output-volume \$1; ++#X connect 57 0 58 0; ++#X connect 58 0 28 0; ++#X obj 1218 190 route /karplus32/output-volume; ++#X obj 1218 210 s \$0-karplus32/output-volume; ++#X connect 53 1 59 0; ++#X connect 59 0 60 0; ++#X msg 450 230 0.1; ++#X obj 450 250 s \$0-karplus32/resonator-x32/attenuation; ++#X connect 27 0 61 0; ++#X connect 61 0 62 0; ++#X obj 834 230 r \$0-karplus32/resonator-x32/attenuation; ++#X msg 834 250 /karplus32/resonator-x32/attenuation \$1; ++#X connect 63 0 64 0; ++#X connect 64 0 28 0; ++#X obj 1218 230 route /karplus32/resonator-x32/attenuation; ++#X obj 1218 250 s \$0-karplus32/resonator-x32/attenuation; ++#X connect 59 1 65 0; ++#X connect 65 0 66 0; ++#X msg 450 270 32; ++#X obj 450 290 s \$0-karplus32/resonator-x32/detune; ++#X connect 27 0 67 0; ++#X connect 67 0 68 0; ++#X obj 834 270 r \$0-karplus32/resonator-x32/detune; ++#X msg 834 290 /karplus32/resonator-x32/detune \$1; ++#X connect 69 0 70 0; ++#X connect 70 0 28 0; ++#X obj 1218 270 route /karplus32/resonator-x32/detune; ++#X obj 1218 290 s \$0-karplus32/resonator-x32/detune; ++#X connect 65 1 71 0; ++#X connect 71 0 72 0; ++#X msg 450 310 128; ++#X obj 450 330 s \$0-karplus32/resonator-x32/duration-samples; ++#X connect 27 0 73 0; ++#X connect 73 0 74 0; ++#X obj 834 310 r \$0-karplus32/resonator-x32/duration-samples; ++#X msg 834 330 /karplus32/resonator-x32/duration-samples \$1; ++#X connect 75 0 76 0; ++#X connect 76 0 28 0; ++#X obj 1218 310 route /karplus32/resonator-x32/duration-samples; ++#X obj 1218 330 s \$0-karplus32/resonator-x32/duration-samples; ++#X connect 71 1 77 0; ++#X connect 77 0 78 0; ++#X msg 450 350 1; ++#X obj 450 370 s \$0-karplus32/resonator-x32/polyphony; ++#X connect 27 0 79 0; ++#X connect 79 0 80 0; ++#X obj 834 350 r \$0-karplus32/resonator-x32/polyphony; ++#X msg 834 370 /karplus32/resonator-x32/polyphony \$1; ++#X connect 81 0 82 0; ++#X connect 82 0 28 0; ++#X obj 1218 350 route /karplus32/resonator-x32/polyphony; ++#X obj 1218 370 s \$0-karplus32/resonator-x32/polyphony; ++#X connect 77 1 83 0; ++#X connect 83 0 84 0; ++#X coords 0 -1 1 1 235 260 1 0 0; ++#X text 0 280 Generated Tue Jan 16 18:57:55 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/faust/lfboost.dsp.xml +@@ -0,0 +1,44 @@ ++ ++ ++ lfboost ++ Grame ++ (c)GRAME 2006 ++ BSD ++ 1.0 ++ mydsp ++ 1 ++ 1 ++ ++ ++ 2 ++ ++ ++ fEntry0 ++ 100.0f ++ 20.0f ++ 150.0f ++ 1.0f ++ ++ ++ ++ fVslider0 ++ 0.0f ++ -20.0f ++ 20.0f ++ 0.10000000000000001f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/lfboost.pd +@@ -0,0 +1,65 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 300 inlet~; ++#X obj 10 300 inlet; ++#X obj 130 300 r \$0-read; ++#X obj 130 330 faust-control \$0; ++#X obj 130 360 s \$0-write; ++#X obj 10 360 r \$0-in; ++#X obj 10 390 lfboost~; ++#X obj 10 420 s \$0-out; ++#X obj 70 450 outlet~; ++#X obj 10 450 outlet; ++#X connect 1 0 3 0; ++#X connect 2 0 3 0; ++#X connect 3 0 4 0; ++#X connect 6 0 7 0; ++#X connect 1 0 9 0; ++#X connect 5 0 6 0; ++#X connect 0 0 6 1; ++#X connect 6 1 8 0; ++#X obj 10 30 nbx 5 14 20 150 0 0 \$0-lowboost/freq \$0-lowboost/freq freq 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 vsl 15 128 -20 20 0 0 \$0-lowboost/gain \$0-lowboost/gain gain 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 10 200 nbx 5 14 -20 20 0 0 \$0-lowboost/gain \$0-lowboost/gain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 47 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 67 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 618 10 s \$0-in; ++#X obj 702 10 s \$0-read; ++#X obj 786 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 19 0 20 0; ++#X obj 618 30 r \$0-active; ++#X msg 618 50 active \$1; ++#X connect 21 0 22 0; ++#X connect 22 0 16 0; ++#X obj 786 30 route active; ++#X obj 786 50 s \$0-active; ++#X connect 18 0 23 0; ++#X connect 23 0 24 0; ++#X msg 450 70 100; ++#X obj 450 90 s \$0-lowboost/freq; ++#X connect 15 0 25 0; ++#X connect 25 0 26 0; ++#X obj 618 70 r \$0-lowboost/freq; ++#X msg 618 90 /lowboost/freq \$1; ++#X connect 27 0 28 0; ++#X connect 28 0 16 0; ++#X obj 786 70 route /lowboost/freq; ++#X obj 786 90 s \$0-lowboost/freq; ++#X connect 23 1 29 0; ++#X connect 29 0 30 0; ++#X msg 450 110 0; ++#X obj 450 130 s \$0-lowboost/gain; ++#X connect 15 0 31 0; ++#X connect 31 0 32 0; ++#X obj 618 110 r \$0-lowboost/gain; ++#X msg 618 130 /lowboost/gain \$1; ++#X connect 33 0 34 0; ++#X connect 34 0 16 0; ++#X obj 786 110 route /lowboost/gain; ++#X obj 786 130 s \$0-lowboost/gain; ++#X connect 29 1 35 0; ++#X connect 35 0 36 0; ++#X coords 0 -1 1 1 85 230 1 0 0; ++#X text 0 250 Generated Tue Jan 16 18:57:55 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/faust/lowboost.dsp.xml +@@ -0,0 +1,44 @@ ++ ++ ++ lowboost ++ Grame ++ (c)GRAME 2006 ++ BSD ++ 1.0 ++ mydsp ++ 1 ++ 1 ++ ++ ++ 2 ++ ++ ++ fHslider0 ++ 1000.0f ++ 20.0f ++ 20000.0f ++ 0.10000000000000001f ++ ++ ++ ++ fHslider1 ++ 0.0f ++ -20.0f ++ 20.0f ++ 0.10000000000000001f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/lowboost.pd +@@ -0,0 +1,66 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 150 inlet~; ++#X obj 10 150 inlet; ++#X obj 130 150 r \$0-read; ++#X obj 130 180 faust-control \$0; ++#X obj 130 210 s \$0-write; ++#X obj 10 210 r \$0-in; ++#X obj 10 240 lowboost~; ++#X obj 10 270 s \$0-out; ++#X obj 70 300 outlet~; ++#X obj 10 300 outlet; ++#X connect 1 0 3 0; ++#X connect 2 0 3 0; ++#X connect 3 0 4 0; ++#X connect 6 0 7 0; ++#X connect 1 0 9 0; ++#X connect 5 0 6 0; ++#X connect 0 0 6 1; ++#X connect 6 1 8 0; ++#X obj 10 30 hsl 128 15 20 20000 0 0 \$0-low-freq-shelving-boost/freq \$0-low-freq-shelving-boost/freq freq -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 20 20000 0 0 \$0-low-freq-shelving-boost/freq \$0-low-freq-shelving-boost/freq empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 -20 20 0 0 \$0-low-freq-shelving-boost/gain \$0-low-freq-shelving-boost/gain gain -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 -20 20 0 0 \$0-low-freq-shelving-boost/gain \$0-low-freq-shelving-boost/gain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 738 10 s \$0-in; ++#X obj 882 10 s \$0-read; ++#X obj 1026 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 20 0 21 0; ++#X obj 738 30 r \$0-active; ++#X msg 738 50 active \$1; ++#X connect 22 0 23 0; ++#X connect 23 0 17 0; ++#X obj 1026 30 route active; ++#X obj 1026 50 s \$0-active; ++#X connect 19 0 24 0; ++#X connect 24 0 25 0; ++#X msg 450 70 1000; ++#X obj 450 90 s \$0-low-freq-shelving-boost/freq; ++#X connect 16 0 26 0; ++#X connect 26 0 27 0; ++#X obj 738 70 r \$0-low-freq-shelving-boost/freq; ++#X msg 738 90 /low-freq-shelving-boost/freq \$1; ++#X connect 28 0 29 0; ++#X connect 29 0 17 0; ++#X obj 1026 70 route /low-freq-shelving-boost/freq; ++#X obj 1026 90 s \$0-low-freq-shelving-boost/freq; ++#X connect 24 1 30 0; ++#X connect 30 0 31 0; ++#X msg 450 110 0; ++#X obj 450 130 s \$0-low-freq-shelving-boost/gain; ++#X connect 16 0 32 0; ++#X connect 32 0 33 0; ++#X obj 738 110 r \$0-low-freq-shelving-boost/gain; ++#X msg 738 130 /low-freq-shelving-boost/gain \$1; ++#X connect 34 0 35 0; ++#X connect 35 0 17 0; ++#X obj 1026 110 route /low-freq-shelving-boost/gain; ++#X obj 1026 130 s \$0-low-freq-shelving-boost/gain; ++#X connect 30 1 36 0; ++#X connect 36 0 37 0; ++#X coords 0 -1 1 1 235 80 1 0 0; ++#X text 0 100 Generated Tue Jan 16 18:57:54 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/faust/lowcut.dsp.xml +@@ -0,0 +1,44 @@ ++ ++ ++ lowcut ++ Grame ++ (c)GRAME 2006 ++ BSD ++ 1.0 ++ mydsp ++ 1 ++ 1 ++ ++ ++ 2 ++ ++ ++ fHslider1 ++ 0.0f ++ -96.0f ++ 10.0f ++ 0.10000000000000001f ++ ++ ++ ++ fHslider0 ++ 100.0f ++ 20.0f ++ 5000.0f ++ 1.0f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/lowcut.pd +@@ -0,0 +1,66 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 150 inlet~; ++#X obj 10 150 inlet; ++#X obj 130 150 r \$0-read; ++#X obj 130 180 faust-control \$0; ++#X obj 130 210 s \$0-write; ++#X obj 10 210 r \$0-in; ++#X obj 10 240 lowcut~; ++#X obj 10 270 s \$0-out; ++#X obj 70 300 outlet~; ++#X obj 10 300 outlet; ++#X connect 1 0 3 0; ++#X connect 2 0 3 0; ++#X connect 3 0 4 0; ++#X connect 6 0 7 0; ++#X connect 1 0 9 0; ++#X connect 5 0 6 0; ++#X connect 0 0 6 1; ++#X connect 6 1 8 0; ++#X obj 10 30 hsl 128 15 -96 10 0 0 \$0-low-freq-shelving-cut/attenuation \$0-low-freq-shelving-cut/attenuation attenuation -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 -96 10 0 0 \$0-low-freq-shelving-cut/attenuation \$0-low-freq-shelving-cut/attenuation empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 20 5000 0 0 \$0-low-freq-shelving-cut/freq \$0-low-freq-shelving-cut/freq freq -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 20 5000 0 0 \$0-low-freq-shelving-cut/freq \$0-low-freq-shelving-cut/freq empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 778 10 s \$0-in; ++#X obj 942 10 s \$0-read; ++#X obj 1106 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 20 0 21 0; ++#X obj 778 30 r \$0-active; ++#X msg 778 50 active \$1; ++#X connect 22 0 23 0; ++#X connect 23 0 17 0; ++#X obj 1106 30 route active; ++#X obj 1106 50 s \$0-active; ++#X connect 19 0 24 0; ++#X connect 24 0 25 0; ++#X msg 450 70 0; ++#X obj 450 90 s \$0-low-freq-shelving-cut/attenuation; ++#X connect 16 0 26 0; ++#X connect 26 0 27 0; ++#X obj 778 70 r \$0-low-freq-shelving-cut/attenuation; ++#X msg 778 90 /low-freq-shelving-cut/attenuation \$1; ++#X connect 28 0 29 0; ++#X connect 29 0 17 0; ++#X obj 1106 70 route /low-freq-shelving-cut/attenuation; ++#X obj 1106 90 s \$0-low-freq-shelving-cut/attenuation; ++#X connect 24 1 30 0; ++#X connect 30 0 31 0; ++#X msg 450 110 100; ++#X obj 450 130 s \$0-low-freq-shelving-cut/freq; ++#X connect 16 0 32 0; ++#X connect 32 0 33 0; ++#X obj 778 110 r \$0-low-freq-shelving-cut/freq; ++#X msg 778 130 /low-freq-shelving-cut/freq \$1; ++#X connect 34 0 35 0; ++#X connect 35 0 17 0; ++#X obj 1106 110 route /low-freq-shelving-cut/freq; ++#X obj 1106 130 s \$0-low-freq-shelving-cut/freq; ++#X connect 30 1 36 0; ++#X connect 36 0 37 0; ++#X coords 0 -1 1 1 235 80 1 0 0; ++#X text 0 100 Generated Tue Jan 16 18:57:55 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/faust/matrix.dsp.xml +@@ -0,0 +1,626 @@ ++ ++ ++ matrix ++ Grame ++ (c)GRAME 2006 ++ BSD ++ 1.0 ++ mydsp ++ 8 ++ 8 ++ ++ ++ 64 ++ ++ ++ fVslider0 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider1 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider2 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider3 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider4 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider5 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider6 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider7 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider8 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider9 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider10 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider11 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider12 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider13 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider14 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider15 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider16 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider17 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider18 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider19 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider20 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider21 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider22 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider23 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider24 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider25 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider26 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider27 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider28 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider29 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider30 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider31 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider32 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider33 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider34 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider35 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider36 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider37 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider38 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider39 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider40 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider41 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider42 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider43 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider44 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider45 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider46 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider47 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider48 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider49 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider50 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider51 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider52 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider53 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider54 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider55 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider56 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider57 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider58 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider59 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider60 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider61 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider62 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider63 ++ -10.0f ++ -96.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/matrix.pd +@@ -0,0 +1,962 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 270 inlet~; ++#X obj 130 270 inlet~; ++#X obj 190 270 inlet~; ++#X obj 250 270 inlet~; ++#X obj 310 270 inlet~; ++#X obj 370 270 inlet~; ++#X obj 430 270 inlet~; ++#X obj 490 270 inlet~; ++#X obj 10 270 inlet; ++#X obj 550 270 r \$0-read; ++#X obj 550 300 faust-control \$0; ++#X obj 550 330 s \$0-write; ++#X obj 10 330 r \$0-in; ++#X obj 10 360 matrix~; ++#X obj 10 390 s \$0-out; ++#X obj 70 420 outlet~; ++#X obj 130 420 outlet~; ++#X obj 190 420 outlet~; ++#X obj 250 420 outlet~; ++#X obj 310 420 outlet~; ++#X obj 370 420 outlet~; ++#X obj 430 420 outlet~; ++#X obj 490 420 outlet~; ++#X obj 10 420 outlet; ++#X connect 8 0 10 0; ++#X connect 9 0 10 0; ++#X connect 10 0 11 0; ++#X connect 13 0 14 0; ++#X connect 8 0 23 0; ++#X connect 12 0 13 0; ++#X connect 0 0 13 1; ++#X connect 1 0 13 2; ++#X connect 2 0 13 3; ++#X connect 3 0 13 4; ++#X connect 4 0 13 5; ++#X connect 5 0 13 6; ++#X connect 6 0 13 7; ++#X connect 7 0 13 8; ++#X connect 13 1 15 0; ++#X connect 13 2 16 0; ++#X connect 13 3 17 0; ++#X connect 13 4 18 0; ++#X connect 13 5 19 0; ++#X connect 13 6 20 0; ++#X connect 13 7 21 0; ++#X connect 13 8 22 0; ++#X obj 10 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-0/Input-0 \$0-Matrix-8-x-8/Output-0/Input-0 Input-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 10 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-0/Input-0 \$0-Matrix-8-x-8/Output-0/Input-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 85 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-0/Input-1 \$0-Matrix-8-x-8/Output-0/Input-1 Input-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 85 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-0/Input-1 \$0-Matrix-8-x-8/Output-0/Input-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 160 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-0/Input-2 \$0-Matrix-8-x-8/Output-0/Input-2 Input-2 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 160 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-0/Input-2 \$0-Matrix-8-x-8/Output-0/Input-2 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 235 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-0/Input-3 \$0-Matrix-8-x-8/Output-0/Input-3 Input-3 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 235 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-0/Input-3 \$0-Matrix-8-x-8/Output-0/Input-3 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 310 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-0/Input-4 \$0-Matrix-8-x-8/Output-0/Input-4 Input-4 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 310 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-0/Input-4 \$0-Matrix-8-x-8/Output-0/Input-4 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 385 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-0/Input-5 \$0-Matrix-8-x-8/Output-0/Input-5 Input-5 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 385 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-0/Input-5 \$0-Matrix-8-x-8/Output-0/Input-5 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 460 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-0/Input-6 \$0-Matrix-8-x-8/Output-0/Input-6 Input-6 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 460 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-0/Input-6 \$0-Matrix-8-x-8/Output-0/Input-6 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 535 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-0/Input-7 \$0-Matrix-8-x-8/Output-0/Input-7 Input-7 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 535 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-0/Input-7 \$0-Matrix-8-x-8/Output-0/Input-7 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 610 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-1/Input-0 \$0-Matrix-8-x-8/Output-1/Input-0 Input-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 610 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-1/Input-0 \$0-Matrix-8-x-8/Output-1/Input-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 685 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-1/Input-1 \$0-Matrix-8-x-8/Output-1/Input-1 Input-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 685 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-1/Input-1 \$0-Matrix-8-x-8/Output-1/Input-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 760 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-1/Input-2 \$0-Matrix-8-x-8/Output-1/Input-2 Input-2 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 760 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-1/Input-2 \$0-Matrix-8-x-8/Output-1/Input-2 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 835 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-1/Input-3 \$0-Matrix-8-x-8/Output-1/Input-3 Input-3 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 835 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-1/Input-3 \$0-Matrix-8-x-8/Output-1/Input-3 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 910 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-1/Input-4 \$0-Matrix-8-x-8/Output-1/Input-4 Input-4 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 910 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-1/Input-4 \$0-Matrix-8-x-8/Output-1/Input-4 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 985 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-1/Input-5 \$0-Matrix-8-x-8/Output-1/Input-5 Input-5 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 985 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-1/Input-5 \$0-Matrix-8-x-8/Output-1/Input-5 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1060 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-1/Input-6 \$0-Matrix-8-x-8/Output-1/Input-6 Input-6 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1060 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-1/Input-6 \$0-Matrix-8-x-8/Output-1/Input-6 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1135 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-1/Input-7 \$0-Matrix-8-x-8/Output-1/Input-7 Input-7 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1135 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-1/Input-7 \$0-Matrix-8-x-8/Output-1/Input-7 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1210 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-2/Input-0 \$0-Matrix-8-x-8/Output-2/Input-0 Input-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1210 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-2/Input-0 \$0-Matrix-8-x-8/Output-2/Input-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1285 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-2/Input-1 \$0-Matrix-8-x-8/Output-2/Input-1 Input-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1285 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-2/Input-1 \$0-Matrix-8-x-8/Output-2/Input-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1360 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-2/Input-2 \$0-Matrix-8-x-8/Output-2/Input-2 Input-2 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1360 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-2/Input-2 \$0-Matrix-8-x-8/Output-2/Input-2 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1435 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-2/Input-3 \$0-Matrix-8-x-8/Output-2/Input-3 Input-3 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1435 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-2/Input-3 \$0-Matrix-8-x-8/Output-2/Input-3 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1510 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-2/Input-4 \$0-Matrix-8-x-8/Output-2/Input-4 Input-4 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1510 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-2/Input-4 \$0-Matrix-8-x-8/Output-2/Input-4 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1585 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-2/Input-5 \$0-Matrix-8-x-8/Output-2/Input-5 Input-5 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1585 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-2/Input-5 \$0-Matrix-8-x-8/Output-2/Input-5 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1660 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-2/Input-6 \$0-Matrix-8-x-8/Output-2/Input-6 Input-6 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1660 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-2/Input-6 \$0-Matrix-8-x-8/Output-2/Input-6 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1735 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-2/Input-7 \$0-Matrix-8-x-8/Output-2/Input-7 Input-7 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1735 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-2/Input-7 \$0-Matrix-8-x-8/Output-2/Input-7 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1810 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-3/Input-0 \$0-Matrix-8-x-8/Output-3/Input-0 Input-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1810 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-3/Input-0 \$0-Matrix-8-x-8/Output-3/Input-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1885 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-3/Input-1 \$0-Matrix-8-x-8/Output-3/Input-1 Input-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1885 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-3/Input-1 \$0-Matrix-8-x-8/Output-3/Input-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1960 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-3/Input-2 \$0-Matrix-8-x-8/Output-3/Input-2 Input-2 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1960 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-3/Input-2 \$0-Matrix-8-x-8/Output-3/Input-2 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2035 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-3/Input-3 \$0-Matrix-8-x-8/Output-3/Input-3 Input-3 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2035 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-3/Input-3 \$0-Matrix-8-x-8/Output-3/Input-3 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2110 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-3/Input-4 \$0-Matrix-8-x-8/Output-3/Input-4 Input-4 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2110 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-3/Input-4 \$0-Matrix-8-x-8/Output-3/Input-4 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2185 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-3/Input-5 \$0-Matrix-8-x-8/Output-3/Input-5 Input-5 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2185 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-3/Input-5 \$0-Matrix-8-x-8/Output-3/Input-5 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2260 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-3/Input-6 \$0-Matrix-8-x-8/Output-3/Input-6 Input-6 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2260 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-3/Input-6 \$0-Matrix-8-x-8/Output-3/Input-6 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2335 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-3/Input-7 \$0-Matrix-8-x-8/Output-3/Input-7 Input-7 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2335 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-3/Input-7 \$0-Matrix-8-x-8/Output-3/Input-7 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2410 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-4/Input-0 \$0-Matrix-8-x-8/Output-4/Input-0 Input-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2410 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-4/Input-0 \$0-Matrix-8-x-8/Output-4/Input-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2485 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-4/Input-1 \$0-Matrix-8-x-8/Output-4/Input-1 Input-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2485 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-4/Input-1 \$0-Matrix-8-x-8/Output-4/Input-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2560 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-4/Input-2 \$0-Matrix-8-x-8/Output-4/Input-2 Input-2 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2560 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-4/Input-2 \$0-Matrix-8-x-8/Output-4/Input-2 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2635 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-4/Input-3 \$0-Matrix-8-x-8/Output-4/Input-3 Input-3 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2635 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-4/Input-3 \$0-Matrix-8-x-8/Output-4/Input-3 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2710 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-4/Input-4 \$0-Matrix-8-x-8/Output-4/Input-4 Input-4 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2710 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-4/Input-4 \$0-Matrix-8-x-8/Output-4/Input-4 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2785 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-4/Input-5 \$0-Matrix-8-x-8/Output-4/Input-5 Input-5 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2785 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-4/Input-5 \$0-Matrix-8-x-8/Output-4/Input-5 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2860 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-4/Input-6 \$0-Matrix-8-x-8/Output-4/Input-6 Input-6 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2860 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-4/Input-6 \$0-Matrix-8-x-8/Output-4/Input-6 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2935 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-4/Input-7 \$0-Matrix-8-x-8/Output-4/Input-7 Input-7 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2935 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-4/Input-7 \$0-Matrix-8-x-8/Output-4/Input-7 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3010 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-5/Input-0 \$0-Matrix-8-x-8/Output-5/Input-0 Input-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3010 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-5/Input-0 \$0-Matrix-8-x-8/Output-5/Input-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3085 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-5/Input-1 \$0-Matrix-8-x-8/Output-5/Input-1 Input-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3085 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-5/Input-1 \$0-Matrix-8-x-8/Output-5/Input-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3160 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-5/Input-2 \$0-Matrix-8-x-8/Output-5/Input-2 Input-2 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3160 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-5/Input-2 \$0-Matrix-8-x-8/Output-5/Input-2 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3235 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-5/Input-3 \$0-Matrix-8-x-8/Output-5/Input-3 Input-3 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3235 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-5/Input-3 \$0-Matrix-8-x-8/Output-5/Input-3 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3310 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-5/Input-4 \$0-Matrix-8-x-8/Output-5/Input-4 Input-4 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3310 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-5/Input-4 \$0-Matrix-8-x-8/Output-5/Input-4 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3385 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-5/Input-5 \$0-Matrix-8-x-8/Output-5/Input-5 Input-5 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3385 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-5/Input-5 \$0-Matrix-8-x-8/Output-5/Input-5 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3460 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-5/Input-6 \$0-Matrix-8-x-8/Output-5/Input-6 Input-6 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3460 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-5/Input-6 \$0-Matrix-8-x-8/Output-5/Input-6 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3535 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-5/Input-7 \$0-Matrix-8-x-8/Output-5/Input-7 Input-7 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3535 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-5/Input-7 \$0-Matrix-8-x-8/Output-5/Input-7 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3610 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-6/Input-0 \$0-Matrix-8-x-8/Output-6/Input-0 Input-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3610 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-6/Input-0 \$0-Matrix-8-x-8/Output-6/Input-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3685 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-6/Input-1 \$0-Matrix-8-x-8/Output-6/Input-1 Input-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3685 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-6/Input-1 \$0-Matrix-8-x-8/Output-6/Input-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3760 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-6/Input-2 \$0-Matrix-8-x-8/Output-6/Input-2 Input-2 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3760 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-6/Input-2 \$0-Matrix-8-x-8/Output-6/Input-2 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3835 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-6/Input-3 \$0-Matrix-8-x-8/Output-6/Input-3 Input-3 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3835 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-6/Input-3 \$0-Matrix-8-x-8/Output-6/Input-3 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3910 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-6/Input-4 \$0-Matrix-8-x-8/Output-6/Input-4 Input-4 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3910 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-6/Input-4 \$0-Matrix-8-x-8/Output-6/Input-4 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3985 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-6/Input-5 \$0-Matrix-8-x-8/Output-6/Input-5 Input-5 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3985 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-6/Input-5 \$0-Matrix-8-x-8/Output-6/Input-5 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 4060 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-6/Input-6 \$0-Matrix-8-x-8/Output-6/Input-6 Input-6 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 4060 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-6/Input-6 \$0-Matrix-8-x-8/Output-6/Input-6 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 4135 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-6/Input-7 \$0-Matrix-8-x-8/Output-6/Input-7 Input-7 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 4135 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-6/Input-7 \$0-Matrix-8-x-8/Output-6/Input-7 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 4210 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-7/Input-0 \$0-Matrix-8-x-8/Output-7/Input-0 Input-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 4210 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-7/Input-0 \$0-Matrix-8-x-8/Output-7/Input-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 4285 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-7/Input-1 \$0-Matrix-8-x-8/Output-7/Input-1 Input-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 4285 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-7/Input-1 \$0-Matrix-8-x-8/Output-7/Input-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 4360 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-7/Input-2 \$0-Matrix-8-x-8/Output-7/Input-2 Input-2 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 4360 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-7/Input-2 \$0-Matrix-8-x-8/Output-7/Input-2 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 4435 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-7/Input-3 \$0-Matrix-8-x-8/Output-7/Input-3 Input-3 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 4435 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-7/Input-3 \$0-Matrix-8-x-8/Output-7/Input-3 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 4510 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-7/Input-4 \$0-Matrix-8-x-8/Output-7/Input-4 Input-4 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 4510 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-7/Input-4 \$0-Matrix-8-x-8/Output-7/Input-4 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 4585 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-7/Input-5 \$0-Matrix-8-x-8/Output-7/Input-5 Input-5 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 4585 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-7/Input-5 \$0-Matrix-8-x-8/Output-7/Input-5 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 4660 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-7/Input-6 \$0-Matrix-8-x-8/Output-7/Input-6 Input-6 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 4660 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-7/Input-6 \$0-Matrix-8-x-8/Output-7/Input-6 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 4735 30 vsl 15 128 -96 4 0 0 \$0-Matrix-8-x-8/Output-7/Input-7 \$0-Matrix-8-x-8/Output-7/Input-7 Input-7 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 4735 170 nbx 5 14 -96 4 0 0 \$0-Matrix-8-x-8/Output-7/Input-7 \$0-Matrix-8-x-8/Output-7/Input-7 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 4772 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 4792 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 4840 10 r \$0-init; ++#X obj 5136 10 s \$0-in; ++#X obj 5284 10 s \$0-read; ++#X obj 5432 10 r \$0-write; ++#X msg 4840 30 1; ++#X obj 4840 50 s \$0-active; ++#X connect 158 0 159 0; ++#X obj 5136 30 r \$0-active; ++#X msg 5136 50 active \$1; ++#X connect 160 0 161 0; ++#X connect 161 0 155 0; ++#X obj 5432 30 route active; ++#X obj 5432 50 s \$0-active; ++#X connect 157 0 162 0; ++#X connect 162 0 163 0; ++#X msg 4840 70 -10; ++#X obj 4840 90 s \$0-Matrix-8-x-8/Output-0/Input-0; ++#X connect 154 0 164 0; ++#X connect 164 0 165 0; ++#X obj 5136 70 r \$0-Matrix-8-x-8/Output-0/Input-0; ++#X msg 5136 90 /Matrix-8-x-8/Output-0/Input-0 \$1; ++#X connect 166 0 167 0; ++#X connect 167 0 155 0; ++#X obj 5432 70 route /Matrix-8-x-8/Output-0/Input-0; ++#X obj 5432 90 s \$0-Matrix-8-x-8/Output-0/Input-0; ++#X connect 162 1 168 0; ++#X connect 168 0 169 0; ++#X msg 4840 110 -10; ++#X obj 4840 130 s \$0-Matrix-8-x-8/Output-0/Input-1; ++#X connect 154 0 170 0; ++#X connect 170 0 171 0; ++#X obj 5136 110 r \$0-Matrix-8-x-8/Output-0/Input-1; ++#X msg 5136 130 /Matrix-8-x-8/Output-0/Input-1 \$1; ++#X connect 172 0 173 0; ++#X connect 173 0 155 0; ++#X obj 5432 110 route /Matrix-8-x-8/Output-0/Input-1; ++#X obj 5432 130 s \$0-Matrix-8-x-8/Output-0/Input-1; ++#X connect 168 1 174 0; ++#X connect 174 0 175 0; ++#X msg 4840 150 -10; ++#X obj 4840 170 s \$0-Matrix-8-x-8/Output-0/Input-2; ++#X connect 154 0 176 0; ++#X connect 176 0 177 0; ++#X obj 5136 150 r \$0-Matrix-8-x-8/Output-0/Input-2; ++#X msg 5136 170 /Matrix-8-x-8/Output-0/Input-2 \$1; ++#X connect 178 0 179 0; ++#X connect 179 0 155 0; ++#X obj 5432 150 route /Matrix-8-x-8/Output-0/Input-2; ++#X obj 5432 170 s \$0-Matrix-8-x-8/Output-0/Input-2; ++#X connect 174 1 180 0; ++#X connect 180 0 181 0; ++#X msg 4840 190 -10; ++#X obj 4840 210 s \$0-Matrix-8-x-8/Output-0/Input-3; ++#X connect 154 0 182 0; ++#X connect 182 0 183 0; ++#X obj 5136 190 r \$0-Matrix-8-x-8/Output-0/Input-3; ++#X msg 5136 210 /Matrix-8-x-8/Output-0/Input-3 \$1; ++#X connect 184 0 185 0; ++#X connect 185 0 155 0; ++#X obj 5432 190 route /Matrix-8-x-8/Output-0/Input-3; ++#X obj 5432 210 s \$0-Matrix-8-x-8/Output-0/Input-3; ++#X connect 180 1 186 0; ++#X connect 186 0 187 0; ++#X msg 4840 230 -10; ++#X obj 4840 250 s \$0-Matrix-8-x-8/Output-0/Input-4; ++#X connect 154 0 188 0; ++#X connect 188 0 189 0; ++#X obj 5136 230 r \$0-Matrix-8-x-8/Output-0/Input-4; ++#X msg 5136 250 /Matrix-8-x-8/Output-0/Input-4 \$1; ++#X connect 190 0 191 0; ++#X connect 191 0 155 0; ++#X obj 5432 230 route /Matrix-8-x-8/Output-0/Input-4; ++#X obj 5432 250 s \$0-Matrix-8-x-8/Output-0/Input-4; ++#X connect 186 1 192 0; ++#X connect 192 0 193 0; ++#X msg 4840 270 -10; ++#X obj 4840 290 s \$0-Matrix-8-x-8/Output-0/Input-5; ++#X connect 154 0 194 0; ++#X connect 194 0 195 0; ++#X obj 5136 270 r \$0-Matrix-8-x-8/Output-0/Input-5; ++#X msg 5136 290 /Matrix-8-x-8/Output-0/Input-5 \$1; ++#X connect 196 0 197 0; ++#X connect 197 0 155 0; ++#X obj 5432 270 route /Matrix-8-x-8/Output-0/Input-5; ++#X obj 5432 290 s \$0-Matrix-8-x-8/Output-0/Input-5; ++#X connect 192 1 198 0; ++#X connect 198 0 199 0; ++#X msg 4840 310 -10; ++#X obj 4840 330 s \$0-Matrix-8-x-8/Output-0/Input-6; ++#X connect 154 0 200 0; ++#X connect 200 0 201 0; ++#X obj 5136 310 r \$0-Matrix-8-x-8/Output-0/Input-6; ++#X msg 5136 330 /Matrix-8-x-8/Output-0/Input-6 \$1; ++#X connect 202 0 203 0; ++#X connect 203 0 155 0; ++#X obj 5432 310 route /Matrix-8-x-8/Output-0/Input-6; ++#X obj 5432 330 s \$0-Matrix-8-x-8/Output-0/Input-6; ++#X connect 198 1 204 0; ++#X connect 204 0 205 0; ++#X msg 4840 350 -10; ++#X obj 4840 370 s \$0-Matrix-8-x-8/Output-0/Input-7; ++#X connect 154 0 206 0; ++#X connect 206 0 207 0; ++#X obj 5136 350 r \$0-Matrix-8-x-8/Output-0/Input-7; ++#X msg 5136 370 /Matrix-8-x-8/Output-0/Input-7 \$1; ++#X connect 208 0 209 0; ++#X connect 209 0 155 0; ++#X obj 5432 350 route /Matrix-8-x-8/Output-0/Input-7; ++#X obj 5432 370 s \$0-Matrix-8-x-8/Output-0/Input-7; ++#X connect 204 1 210 0; ++#X connect 210 0 211 0; ++#X msg 4840 390 -10; ++#X obj 4840 410 s \$0-Matrix-8-x-8/Output-1/Input-0; ++#X connect 154 0 212 0; ++#X connect 212 0 213 0; ++#X obj 5136 390 r \$0-Matrix-8-x-8/Output-1/Input-0; ++#X msg 5136 410 /Matrix-8-x-8/Output-1/Input-0 \$1; ++#X connect 214 0 215 0; ++#X connect 215 0 155 0; ++#X obj 5432 390 route /Matrix-8-x-8/Output-1/Input-0; ++#X obj 5432 410 s \$0-Matrix-8-x-8/Output-1/Input-0; ++#X connect 210 1 216 0; ++#X connect 216 0 217 0; ++#X msg 4840 430 -10; ++#X obj 4840 450 s \$0-Matrix-8-x-8/Output-1/Input-1; ++#X connect 154 0 218 0; ++#X connect 218 0 219 0; ++#X obj 5136 430 r \$0-Matrix-8-x-8/Output-1/Input-1; ++#X msg 5136 450 /Matrix-8-x-8/Output-1/Input-1 \$1; ++#X connect 220 0 221 0; ++#X connect 221 0 155 0; ++#X obj 5432 430 route /Matrix-8-x-8/Output-1/Input-1; ++#X obj 5432 450 s \$0-Matrix-8-x-8/Output-1/Input-1; ++#X connect 216 1 222 0; ++#X connect 222 0 223 0; ++#X msg 4840 470 -10; ++#X obj 4840 490 s \$0-Matrix-8-x-8/Output-1/Input-2; ++#X connect 154 0 224 0; ++#X connect 224 0 225 0; ++#X obj 5136 470 r \$0-Matrix-8-x-8/Output-1/Input-2; ++#X msg 5136 490 /Matrix-8-x-8/Output-1/Input-2 \$1; ++#X connect 226 0 227 0; ++#X connect 227 0 155 0; ++#X obj 5432 470 route /Matrix-8-x-8/Output-1/Input-2; ++#X obj 5432 490 s \$0-Matrix-8-x-8/Output-1/Input-2; ++#X connect 222 1 228 0; ++#X connect 228 0 229 0; ++#X msg 4840 510 -10; ++#X obj 4840 530 s \$0-Matrix-8-x-8/Output-1/Input-3; ++#X connect 154 0 230 0; ++#X connect 230 0 231 0; ++#X obj 5136 510 r \$0-Matrix-8-x-8/Output-1/Input-3; ++#X msg 5136 530 /Matrix-8-x-8/Output-1/Input-3 \$1; ++#X connect 232 0 233 0; ++#X connect 233 0 155 0; ++#X obj 5432 510 route /Matrix-8-x-8/Output-1/Input-3; ++#X obj 5432 530 s \$0-Matrix-8-x-8/Output-1/Input-3; ++#X connect 228 1 234 0; ++#X connect 234 0 235 0; ++#X msg 4840 550 -10; ++#X obj 4840 570 s \$0-Matrix-8-x-8/Output-1/Input-4; ++#X connect 154 0 236 0; ++#X connect 236 0 237 0; ++#X obj 5136 550 r \$0-Matrix-8-x-8/Output-1/Input-4; ++#X msg 5136 570 /Matrix-8-x-8/Output-1/Input-4 \$1; ++#X connect 238 0 239 0; ++#X connect 239 0 155 0; ++#X obj 5432 550 route /Matrix-8-x-8/Output-1/Input-4; ++#X obj 5432 570 s \$0-Matrix-8-x-8/Output-1/Input-4; ++#X connect 234 1 240 0; ++#X connect 240 0 241 0; ++#X msg 4840 590 -10; ++#X obj 4840 610 s \$0-Matrix-8-x-8/Output-1/Input-5; ++#X connect 154 0 242 0; ++#X connect 242 0 243 0; ++#X obj 5136 590 r \$0-Matrix-8-x-8/Output-1/Input-5; ++#X msg 5136 610 /Matrix-8-x-8/Output-1/Input-5 \$1; ++#X connect 244 0 245 0; ++#X connect 245 0 155 0; ++#X obj 5432 590 route /Matrix-8-x-8/Output-1/Input-5; ++#X obj 5432 610 s \$0-Matrix-8-x-8/Output-1/Input-5; ++#X connect 240 1 246 0; ++#X connect 246 0 247 0; ++#X msg 4840 630 -10; ++#X obj 4840 650 s \$0-Matrix-8-x-8/Output-1/Input-6; ++#X connect 154 0 248 0; ++#X connect 248 0 249 0; ++#X obj 5136 630 r \$0-Matrix-8-x-8/Output-1/Input-6; ++#X msg 5136 650 /Matrix-8-x-8/Output-1/Input-6 \$1; ++#X connect 250 0 251 0; ++#X connect 251 0 155 0; ++#X obj 5432 630 route /Matrix-8-x-8/Output-1/Input-6; ++#X obj 5432 650 s \$0-Matrix-8-x-8/Output-1/Input-6; ++#X connect 246 1 252 0; ++#X connect 252 0 253 0; ++#X msg 4840 670 -10; ++#X obj 4840 690 s \$0-Matrix-8-x-8/Output-1/Input-7; ++#X connect 154 0 254 0; ++#X connect 254 0 255 0; ++#X obj 5136 670 r \$0-Matrix-8-x-8/Output-1/Input-7; ++#X msg 5136 690 /Matrix-8-x-8/Output-1/Input-7 \$1; ++#X connect 256 0 257 0; ++#X connect 257 0 155 0; ++#X obj 5432 670 route /Matrix-8-x-8/Output-1/Input-7; ++#X obj 5432 690 s \$0-Matrix-8-x-8/Output-1/Input-7; ++#X connect 252 1 258 0; ++#X connect 258 0 259 0; ++#X msg 4840 710 -10; ++#X obj 4840 730 s \$0-Matrix-8-x-8/Output-2/Input-0; ++#X connect 154 0 260 0; ++#X connect 260 0 261 0; ++#X obj 5136 710 r \$0-Matrix-8-x-8/Output-2/Input-0; ++#X msg 5136 730 /Matrix-8-x-8/Output-2/Input-0 \$1; ++#X connect 262 0 263 0; ++#X connect 263 0 155 0; ++#X obj 5432 710 route /Matrix-8-x-8/Output-2/Input-0; ++#X obj 5432 730 s \$0-Matrix-8-x-8/Output-2/Input-0; ++#X connect 258 1 264 0; ++#X connect 264 0 265 0; ++#X msg 4840 750 -10; ++#X obj 4840 770 s \$0-Matrix-8-x-8/Output-2/Input-1; ++#X connect 154 0 266 0; ++#X connect 266 0 267 0; ++#X obj 5136 750 r \$0-Matrix-8-x-8/Output-2/Input-1; ++#X msg 5136 770 /Matrix-8-x-8/Output-2/Input-1 \$1; ++#X connect 268 0 269 0; ++#X connect 269 0 155 0; ++#X obj 5432 750 route /Matrix-8-x-8/Output-2/Input-1; ++#X obj 5432 770 s \$0-Matrix-8-x-8/Output-2/Input-1; ++#X connect 264 1 270 0; ++#X connect 270 0 271 0; ++#X msg 4840 790 -10; ++#X obj 4840 810 s \$0-Matrix-8-x-8/Output-2/Input-2; ++#X connect 154 0 272 0; ++#X connect 272 0 273 0; ++#X obj 5136 790 r \$0-Matrix-8-x-8/Output-2/Input-2; ++#X msg 5136 810 /Matrix-8-x-8/Output-2/Input-2 \$1; ++#X connect 274 0 275 0; ++#X connect 275 0 155 0; ++#X obj 5432 790 route /Matrix-8-x-8/Output-2/Input-2; ++#X obj 5432 810 s \$0-Matrix-8-x-8/Output-2/Input-2; ++#X connect 270 1 276 0; ++#X connect 276 0 277 0; ++#X msg 4840 830 -10; ++#X obj 4840 850 s \$0-Matrix-8-x-8/Output-2/Input-3; ++#X connect 154 0 278 0; ++#X connect 278 0 279 0; ++#X obj 5136 830 r \$0-Matrix-8-x-8/Output-2/Input-3; ++#X msg 5136 850 /Matrix-8-x-8/Output-2/Input-3 \$1; ++#X connect 280 0 281 0; ++#X connect 281 0 155 0; ++#X obj 5432 830 route /Matrix-8-x-8/Output-2/Input-3; ++#X obj 5432 850 s \$0-Matrix-8-x-8/Output-2/Input-3; ++#X connect 276 1 282 0; ++#X connect 282 0 283 0; ++#X msg 4840 870 -10; ++#X obj 4840 890 s \$0-Matrix-8-x-8/Output-2/Input-4; ++#X connect 154 0 284 0; ++#X connect 284 0 285 0; ++#X obj 5136 870 r \$0-Matrix-8-x-8/Output-2/Input-4; ++#X msg 5136 890 /Matrix-8-x-8/Output-2/Input-4 \$1; ++#X connect 286 0 287 0; ++#X connect 287 0 155 0; ++#X obj 5432 870 route /Matrix-8-x-8/Output-2/Input-4; ++#X obj 5432 890 s \$0-Matrix-8-x-8/Output-2/Input-4; ++#X connect 282 1 288 0; ++#X connect 288 0 289 0; ++#X msg 4840 910 -10; ++#X obj 4840 930 s \$0-Matrix-8-x-8/Output-2/Input-5; ++#X connect 154 0 290 0; ++#X connect 290 0 291 0; ++#X obj 5136 910 r \$0-Matrix-8-x-8/Output-2/Input-5; ++#X msg 5136 930 /Matrix-8-x-8/Output-2/Input-5 \$1; ++#X connect 292 0 293 0; ++#X connect 293 0 155 0; ++#X obj 5432 910 route /Matrix-8-x-8/Output-2/Input-5; ++#X obj 5432 930 s \$0-Matrix-8-x-8/Output-2/Input-5; ++#X connect 288 1 294 0; ++#X connect 294 0 295 0; ++#X msg 4840 950 -10; ++#X obj 4840 970 s \$0-Matrix-8-x-8/Output-2/Input-6; ++#X connect 154 0 296 0; ++#X connect 296 0 297 0; ++#X obj 5136 950 r \$0-Matrix-8-x-8/Output-2/Input-6; ++#X msg 5136 970 /Matrix-8-x-8/Output-2/Input-6 \$1; ++#X connect 298 0 299 0; ++#X connect 299 0 155 0; ++#X obj 5432 950 route /Matrix-8-x-8/Output-2/Input-6; ++#X obj 5432 970 s \$0-Matrix-8-x-8/Output-2/Input-6; ++#X connect 294 1 300 0; ++#X connect 300 0 301 0; ++#X msg 4840 990 -10; ++#X obj 4840 1010 s \$0-Matrix-8-x-8/Output-2/Input-7; ++#X connect 154 0 302 0; ++#X connect 302 0 303 0; ++#X obj 5136 990 r \$0-Matrix-8-x-8/Output-2/Input-7; ++#X msg 5136 1010 /Matrix-8-x-8/Output-2/Input-7 \$1; ++#X connect 304 0 305 0; ++#X connect 305 0 155 0; ++#X obj 5432 990 route /Matrix-8-x-8/Output-2/Input-7; ++#X obj 5432 1010 s \$0-Matrix-8-x-8/Output-2/Input-7; ++#X connect 300 1 306 0; ++#X connect 306 0 307 0; ++#X msg 4840 1030 -10; ++#X obj 4840 1050 s \$0-Matrix-8-x-8/Output-3/Input-0; ++#X connect 154 0 308 0; ++#X connect 308 0 309 0; ++#X obj 5136 1030 r \$0-Matrix-8-x-8/Output-3/Input-0; ++#X msg 5136 1050 /Matrix-8-x-8/Output-3/Input-0 \$1; ++#X connect 310 0 311 0; ++#X connect 311 0 155 0; ++#X obj 5432 1030 route /Matrix-8-x-8/Output-3/Input-0; ++#X obj 5432 1050 s \$0-Matrix-8-x-8/Output-3/Input-0; ++#X connect 306 1 312 0; ++#X connect 312 0 313 0; ++#X msg 4840 1070 -10; ++#X obj 4840 1090 s \$0-Matrix-8-x-8/Output-3/Input-1; ++#X connect 154 0 314 0; ++#X connect 314 0 315 0; ++#X obj 5136 1070 r \$0-Matrix-8-x-8/Output-3/Input-1; ++#X msg 5136 1090 /Matrix-8-x-8/Output-3/Input-1 \$1; ++#X connect 316 0 317 0; ++#X connect 317 0 155 0; ++#X obj 5432 1070 route /Matrix-8-x-8/Output-3/Input-1; ++#X obj 5432 1090 s \$0-Matrix-8-x-8/Output-3/Input-1; ++#X connect 312 1 318 0; ++#X connect 318 0 319 0; ++#X msg 4840 1110 -10; ++#X obj 4840 1130 s \$0-Matrix-8-x-8/Output-3/Input-2; ++#X connect 154 0 320 0; ++#X connect 320 0 321 0; ++#X obj 5136 1110 r \$0-Matrix-8-x-8/Output-3/Input-2; ++#X msg 5136 1130 /Matrix-8-x-8/Output-3/Input-2 \$1; ++#X connect 322 0 323 0; ++#X connect 323 0 155 0; ++#X obj 5432 1110 route /Matrix-8-x-8/Output-3/Input-2; ++#X obj 5432 1130 s \$0-Matrix-8-x-8/Output-3/Input-2; ++#X connect 318 1 324 0; ++#X connect 324 0 325 0; ++#X msg 4840 1150 -10; ++#X obj 4840 1170 s \$0-Matrix-8-x-8/Output-3/Input-3; ++#X connect 154 0 326 0; ++#X connect 326 0 327 0; ++#X obj 5136 1150 r \$0-Matrix-8-x-8/Output-3/Input-3; ++#X msg 5136 1170 /Matrix-8-x-8/Output-3/Input-3 \$1; ++#X connect 328 0 329 0; ++#X connect 329 0 155 0; ++#X obj 5432 1150 route /Matrix-8-x-8/Output-3/Input-3; ++#X obj 5432 1170 s \$0-Matrix-8-x-8/Output-3/Input-3; ++#X connect 324 1 330 0; ++#X connect 330 0 331 0; ++#X msg 4840 1190 -10; ++#X obj 4840 1210 s \$0-Matrix-8-x-8/Output-3/Input-4; ++#X connect 154 0 332 0; ++#X connect 332 0 333 0; ++#X obj 5136 1190 r \$0-Matrix-8-x-8/Output-3/Input-4; ++#X msg 5136 1210 /Matrix-8-x-8/Output-3/Input-4 \$1; ++#X connect 334 0 335 0; ++#X connect 335 0 155 0; ++#X obj 5432 1190 route /Matrix-8-x-8/Output-3/Input-4; ++#X obj 5432 1210 s \$0-Matrix-8-x-8/Output-3/Input-4; ++#X connect 330 1 336 0; ++#X connect 336 0 337 0; ++#X msg 4840 1230 -10; ++#X obj 4840 1250 s \$0-Matrix-8-x-8/Output-3/Input-5; ++#X connect 154 0 338 0; ++#X connect 338 0 339 0; ++#X obj 5136 1230 r \$0-Matrix-8-x-8/Output-3/Input-5; ++#X msg 5136 1250 /Matrix-8-x-8/Output-3/Input-5 \$1; ++#X connect 340 0 341 0; ++#X connect 341 0 155 0; ++#X obj 5432 1230 route /Matrix-8-x-8/Output-3/Input-5; ++#X obj 5432 1250 s \$0-Matrix-8-x-8/Output-3/Input-5; ++#X connect 336 1 342 0; ++#X connect 342 0 343 0; ++#X msg 4840 1270 -10; ++#X obj 4840 1290 s \$0-Matrix-8-x-8/Output-3/Input-6; ++#X connect 154 0 344 0; ++#X connect 344 0 345 0; ++#X obj 5136 1270 r \$0-Matrix-8-x-8/Output-3/Input-6; ++#X msg 5136 1290 /Matrix-8-x-8/Output-3/Input-6 \$1; ++#X connect 346 0 347 0; ++#X connect 347 0 155 0; ++#X obj 5432 1270 route /Matrix-8-x-8/Output-3/Input-6; ++#X obj 5432 1290 s \$0-Matrix-8-x-8/Output-3/Input-6; ++#X connect 342 1 348 0; ++#X connect 348 0 349 0; ++#X msg 4840 1310 -10; ++#X obj 4840 1330 s \$0-Matrix-8-x-8/Output-3/Input-7; ++#X connect 154 0 350 0; ++#X connect 350 0 351 0; ++#X obj 5136 1310 r \$0-Matrix-8-x-8/Output-3/Input-7; ++#X msg 5136 1330 /Matrix-8-x-8/Output-3/Input-7 \$1; ++#X connect 352 0 353 0; ++#X connect 353 0 155 0; ++#X obj 5432 1310 route /Matrix-8-x-8/Output-3/Input-7; ++#X obj 5432 1330 s \$0-Matrix-8-x-8/Output-3/Input-7; ++#X connect 348 1 354 0; ++#X connect 354 0 355 0; ++#X msg 4840 1350 -10; ++#X obj 4840 1370 s \$0-Matrix-8-x-8/Output-4/Input-0; ++#X connect 154 0 356 0; ++#X connect 356 0 357 0; ++#X obj 5136 1350 r \$0-Matrix-8-x-8/Output-4/Input-0; ++#X msg 5136 1370 /Matrix-8-x-8/Output-4/Input-0 \$1; ++#X connect 358 0 359 0; ++#X connect 359 0 155 0; ++#X obj 5432 1350 route /Matrix-8-x-8/Output-4/Input-0; ++#X obj 5432 1370 s \$0-Matrix-8-x-8/Output-4/Input-0; ++#X connect 354 1 360 0; ++#X connect 360 0 361 0; ++#X msg 4840 1390 -10; ++#X obj 4840 1410 s \$0-Matrix-8-x-8/Output-4/Input-1; ++#X connect 154 0 362 0; ++#X connect 362 0 363 0; ++#X obj 5136 1390 r \$0-Matrix-8-x-8/Output-4/Input-1; ++#X msg 5136 1410 /Matrix-8-x-8/Output-4/Input-1 \$1; ++#X connect 364 0 365 0; ++#X connect 365 0 155 0; ++#X obj 5432 1390 route /Matrix-8-x-8/Output-4/Input-1; ++#X obj 5432 1410 s \$0-Matrix-8-x-8/Output-4/Input-1; ++#X connect 360 1 366 0; ++#X connect 366 0 367 0; ++#X msg 4840 1430 -10; ++#X obj 4840 1450 s \$0-Matrix-8-x-8/Output-4/Input-2; ++#X connect 154 0 368 0; ++#X connect 368 0 369 0; ++#X obj 5136 1430 r \$0-Matrix-8-x-8/Output-4/Input-2; ++#X msg 5136 1450 /Matrix-8-x-8/Output-4/Input-2 \$1; ++#X connect 370 0 371 0; ++#X connect 371 0 155 0; ++#X obj 5432 1430 route /Matrix-8-x-8/Output-4/Input-2; ++#X obj 5432 1450 s \$0-Matrix-8-x-8/Output-4/Input-2; ++#X connect 366 1 372 0; ++#X connect 372 0 373 0; ++#X msg 4840 1470 -10; ++#X obj 4840 1490 s \$0-Matrix-8-x-8/Output-4/Input-3; ++#X connect 154 0 374 0; ++#X connect 374 0 375 0; ++#X obj 5136 1470 r \$0-Matrix-8-x-8/Output-4/Input-3; ++#X msg 5136 1490 /Matrix-8-x-8/Output-4/Input-3 \$1; ++#X connect 376 0 377 0; ++#X connect 377 0 155 0; ++#X obj 5432 1470 route /Matrix-8-x-8/Output-4/Input-3; ++#X obj 5432 1490 s \$0-Matrix-8-x-8/Output-4/Input-3; ++#X connect 372 1 378 0; ++#X connect 378 0 379 0; ++#X msg 4840 1510 -10; ++#X obj 4840 1530 s \$0-Matrix-8-x-8/Output-4/Input-4; ++#X connect 154 0 380 0; ++#X connect 380 0 381 0; ++#X obj 5136 1510 r \$0-Matrix-8-x-8/Output-4/Input-4; ++#X msg 5136 1530 /Matrix-8-x-8/Output-4/Input-4 \$1; ++#X connect 382 0 383 0; ++#X connect 383 0 155 0; ++#X obj 5432 1510 route /Matrix-8-x-8/Output-4/Input-4; ++#X obj 5432 1530 s \$0-Matrix-8-x-8/Output-4/Input-4; ++#X connect 378 1 384 0; ++#X connect 384 0 385 0; ++#X msg 4840 1550 -10; ++#X obj 4840 1570 s \$0-Matrix-8-x-8/Output-4/Input-5; ++#X connect 154 0 386 0; ++#X connect 386 0 387 0; ++#X obj 5136 1550 r \$0-Matrix-8-x-8/Output-4/Input-5; ++#X msg 5136 1570 /Matrix-8-x-8/Output-4/Input-5 \$1; ++#X connect 388 0 389 0; ++#X connect 389 0 155 0; ++#X obj 5432 1550 route /Matrix-8-x-8/Output-4/Input-5; ++#X obj 5432 1570 s \$0-Matrix-8-x-8/Output-4/Input-5; ++#X connect 384 1 390 0; ++#X connect 390 0 391 0; ++#X msg 4840 1590 -10; ++#X obj 4840 1610 s \$0-Matrix-8-x-8/Output-4/Input-6; ++#X connect 154 0 392 0; ++#X connect 392 0 393 0; ++#X obj 5136 1590 r \$0-Matrix-8-x-8/Output-4/Input-6; ++#X msg 5136 1610 /Matrix-8-x-8/Output-4/Input-6 \$1; ++#X connect 394 0 395 0; ++#X connect 395 0 155 0; ++#X obj 5432 1590 route /Matrix-8-x-8/Output-4/Input-6; ++#X obj 5432 1610 s \$0-Matrix-8-x-8/Output-4/Input-6; ++#X connect 390 1 396 0; ++#X connect 396 0 397 0; ++#X msg 4840 1630 -10; ++#X obj 4840 1650 s \$0-Matrix-8-x-8/Output-4/Input-7; ++#X connect 154 0 398 0; ++#X connect 398 0 399 0; ++#X obj 5136 1630 r \$0-Matrix-8-x-8/Output-4/Input-7; ++#X msg 5136 1650 /Matrix-8-x-8/Output-4/Input-7 \$1; ++#X connect 400 0 401 0; ++#X connect 401 0 155 0; ++#X obj 5432 1630 route /Matrix-8-x-8/Output-4/Input-7; ++#X obj 5432 1650 s \$0-Matrix-8-x-8/Output-4/Input-7; ++#X connect 396 1 402 0; ++#X connect 402 0 403 0; ++#X msg 4840 1670 -10; ++#X obj 4840 1690 s \$0-Matrix-8-x-8/Output-5/Input-0; ++#X connect 154 0 404 0; ++#X connect 404 0 405 0; ++#X obj 5136 1670 r \$0-Matrix-8-x-8/Output-5/Input-0; ++#X msg 5136 1690 /Matrix-8-x-8/Output-5/Input-0 \$1; ++#X connect 406 0 407 0; ++#X connect 407 0 155 0; ++#X obj 5432 1670 route /Matrix-8-x-8/Output-5/Input-0; ++#X obj 5432 1690 s \$0-Matrix-8-x-8/Output-5/Input-0; ++#X connect 402 1 408 0; ++#X connect 408 0 409 0; ++#X msg 4840 1710 -10; ++#X obj 4840 1730 s \$0-Matrix-8-x-8/Output-5/Input-1; ++#X connect 154 0 410 0; ++#X connect 410 0 411 0; ++#X obj 5136 1710 r \$0-Matrix-8-x-8/Output-5/Input-1; ++#X msg 5136 1730 /Matrix-8-x-8/Output-5/Input-1 \$1; ++#X connect 412 0 413 0; ++#X connect 413 0 155 0; ++#X obj 5432 1710 route /Matrix-8-x-8/Output-5/Input-1; ++#X obj 5432 1730 s \$0-Matrix-8-x-8/Output-5/Input-1; ++#X connect 408 1 414 0; ++#X connect 414 0 415 0; ++#X msg 4840 1750 -10; ++#X obj 4840 1770 s \$0-Matrix-8-x-8/Output-5/Input-2; ++#X connect 154 0 416 0; ++#X connect 416 0 417 0; ++#X obj 5136 1750 r \$0-Matrix-8-x-8/Output-5/Input-2; ++#X msg 5136 1770 /Matrix-8-x-8/Output-5/Input-2 \$1; ++#X connect 418 0 419 0; ++#X connect 419 0 155 0; ++#X obj 5432 1750 route /Matrix-8-x-8/Output-5/Input-2; ++#X obj 5432 1770 s \$0-Matrix-8-x-8/Output-5/Input-2; ++#X connect 414 1 420 0; ++#X connect 420 0 421 0; ++#X msg 4840 1790 -10; ++#X obj 4840 1810 s \$0-Matrix-8-x-8/Output-5/Input-3; ++#X connect 154 0 422 0; ++#X connect 422 0 423 0; ++#X obj 5136 1790 r \$0-Matrix-8-x-8/Output-5/Input-3; ++#X msg 5136 1810 /Matrix-8-x-8/Output-5/Input-3 \$1; ++#X connect 424 0 425 0; ++#X connect 425 0 155 0; ++#X obj 5432 1790 route /Matrix-8-x-8/Output-5/Input-3; ++#X obj 5432 1810 s \$0-Matrix-8-x-8/Output-5/Input-3; ++#X connect 420 1 426 0; ++#X connect 426 0 427 0; ++#X msg 4840 1830 -10; ++#X obj 4840 1850 s \$0-Matrix-8-x-8/Output-5/Input-4; ++#X connect 154 0 428 0; ++#X connect 428 0 429 0; ++#X obj 5136 1830 r \$0-Matrix-8-x-8/Output-5/Input-4; ++#X msg 5136 1850 /Matrix-8-x-8/Output-5/Input-4 \$1; ++#X connect 430 0 431 0; ++#X connect 431 0 155 0; ++#X obj 5432 1830 route /Matrix-8-x-8/Output-5/Input-4; ++#X obj 5432 1850 s \$0-Matrix-8-x-8/Output-5/Input-4; ++#X connect 426 1 432 0; ++#X connect 432 0 433 0; ++#X msg 4840 1870 -10; ++#X obj 4840 1890 s \$0-Matrix-8-x-8/Output-5/Input-5; ++#X connect 154 0 434 0; ++#X connect 434 0 435 0; ++#X obj 5136 1870 r \$0-Matrix-8-x-8/Output-5/Input-5; ++#X msg 5136 1890 /Matrix-8-x-8/Output-5/Input-5 \$1; ++#X connect 436 0 437 0; ++#X connect 437 0 155 0; ++#X obj 5432 1870 route /Matrix-8-x-8/Output-5/Input-5; ++#X obj 5432 1890 s \$0-Matrix-8-x-8/Output-5/Input-5; ++#X connect 432 1 438 0; ++#X connect 438 0 439 0; ++#X msg 4840 1910 -10; ++#X obj 4840 1930 s \$0-Matrix-8-x-8/Output-5/Input-6; ++#X connect 154 0 440 0; ++#X connect 440 0 441 0; ++#X obj 5136 1910 r \$0-Matrix-8-x-8/Output-5/Input-6; ++#X msg 5136 1930 /Matrix-8-x-8/Output-5/Input-6 \$1; ++#X connect 442 0 443 0; ++#X connect 443 0 155 0; ++#X obj 5432 1910 route /Matrix-8-x-8/Output-5/Input-6; ++#X obj 5432 1930 s \$0-Matrix-8-x-8/Output-5/Input-6; ++#X connect 438 1 444 0; ++#X connect 444 0 445 0; ++#X msg 4840 1950 -10; ++#X obj 4840 1970 s \$0-Matrix-8-x-8/Output-5/Input-7; ++#X connect 154 0 446 0; ++#X connect 446 0 447 0; ++#X obj 5136 1950 r \$0-Matrix-8-x-8/Output-5/Input-7; ++#X msg 5136 1970 /Matrix-8-x-8/Output-5/Input-7 \$1; ++#X connect 448 0 449 0; ++#X connect 449 0 155 0; ++#X obj 5432 1950 route /Matrix-8-x-8/Output-5/Input-7; ++#X obj 5432 1970 s \$0-Matrix-8-x-8/Output-5/Input-7; ++#X connect 444 1 450 0; ++#X connect 450 0 451 0; ++#X msg 4840 1990 -10; ++#X obj 4840 2010 s \$0-Matrix-8-x-8/Output-6/Input-0; ++#X connect 154 0 452 0; ++#X connect 452 0 453 0; ++#X obj 5136 1990 r \$0-Matrix-8-x-8/Output-6/Input-0; ++#X msg 5136 2010 /Matrix-8-x-8/Output-6/Input-0 \$1; ++#X connect 454 0 455 0; ++#X connect 455 0 155 0; ++#X obj 5432 1990 route /Matrix-8-x-8/Output-6/Input-0; ++#X obj 5432 2010 s \$0-Matrix-8-x-8/Output-6/Input-0; ++#X connect 450 1 456 0; ++#X connect 456 0 457 0; ++#X msg 4840 2030 -10; ++#X obj 4840 2050 s \$0-Matrix-8-x-8/Output-6/Input-1; ++#X connect 154 0 458 0; ++#X connect 458 0 459 0; ++#X obj 5136 2030 r \$0-Matrix-8-x-8/Output-6/Input-1; ++#X msg 5136 2050 /Matrix-8-x-8/Output-6/Input-1 \$1; ++#X connect 460 0 461 0; ++#X connect 461 0 155 0; ++#X obj 5432 2030 route /Matrix-8-x-8/Output-6/Input-1; ++#X obj 5432 2050 s \$0-Matrix-8-x-8/Output-6/Input-1; ++#X connect 456 1 462 0; ++#X connect 462 0 463 0; ++#X msg 4840 2070 -10; ++#X obj 4840 2090 s \$0-Matrix-8-x-8/Output-6/Input-2; ++#X connect 154 0 464 0; ++#X connect 464 0 465 0; ++#X obj 5136 2070 r \$0-Matrix-8-x-8/Output-6/Input-2; ++#X msg 5136 2090 /Matrix-8-x-8/Output-6/Input-2 \$1; ++#X connect 466 0 467 0; ++#X connect 467 0 155 0; ++#X obj 5432 2070 route /Matrix-8-x-8/Output-6/Input-2; ++#X obj 5432 2090 s \$0-Matrix-8-x-8/Output-6/Input-2; ++#X connect 462 1 468 0; ++#X connect 468 0 469 0; ++#X msg 4840 2110 -10; ++#X obj 4840 2130 s \$0-Matrix-8-x-8/Output-6/Input-3; ++#X connect 154 0 470 0; ++#X connect 470 0 471 0; ++#X obj 5136 2110 r \$0-Matrix-8-x-8/Output-6/Input-3; ++#X msg 5136 2130 /Matrix-8-x-8/Output-6/Input-3 \$1; ++#X connect 472 0 473 0; ++#X connect 473 0 155 0; ++#X obj 5432 2110 route /Matrix-8-x-8/Output-6/Input-3; ++#X obj 5432 2130 s \$0-Matrix-8-x-8/Output-6/Input-3; ++#X connect 468 1 474 0; ++#X connect 474 0 475 0; ++#X msg 4840 2150 -10; ++#X obj 4840 2170 s \$0-Matrix-8-x-8/Output-6/Input-4; ++#X connect 154 0 476 0; ++#X connect 476 0 477 0; ++#X obj 5136 2150 r \$0-Matrix-8-x-8/Output-6/Input-4; ++#X msg 5136 2170 /Matrix-8-x-8/Output-6/Input-4 \$1; ++#X connect 478 0 479 0; ++#X connect 479 0 155 0; ++#X obj 5432 2150 route /Matrix-8-x-8/Output-6/Input-4; ++#X obj 5432 2170 s \$0-Matrix-8-x-8/Output-6/Input-4; ++#X connect 474 1 480 0; ++#X connect 480 0 481 0; ++#X msg 4840 2190 -10; ++#X obj 4840 2210 s \$0-Matrix-8-x-8/Output-6/Input-5; ++#X connect 154 0 482 0; ++#X connect 482 0 483 0; ++#X obj 5136 2190 r \$0-Matrix-8-x-8/Output-6/Input-5; ++#X msg 5136 2210 /Matrix-8-x-8/Output-6/Input-5 \$1; ++#X connect 484 0 485 0; ++#X connect 485 0 155 0; ++#X obj 5432 2190 route /Matrix-8-x-8/Output-6/Input-5; ++#X obj 5432 2210 s \$0-Matrix-8-x-8/Output-6/Input-5; ++#X connect 480 1 486 0; ++#X connect 486 0 487 0; ++#X msg 4840 2230 -10; ++#X obj 4840 2250 s \$0-Matrix-8-x-8/Output-6/Input-6; ++#X connect 154 0 488 0; ++#X connect 488 0 489 0; ++#X obj 5136 2230 r \$0-Matrix-8-x-8/Output-6/Input-6; ++#X msg 5136 2250 /Matrix-8-x-8/Output-6/Input-6 \$1; ++#X connect 490 0 491 0; ++#X connect 491 0 155 0; ++#X obj 5432 2230 route /Matrix-8-x-8/Output-6/Input-6; ++#X obj 5432 2250 s \$0-Matrix-8-x-8/Output-6/Input-6; ++#X connect 486 1 492 0; ++#X connect 492 0 493 0; ++#X msg 4840 2270 -10; ++#X obj 4840 2290 s \$0-Matrix-8-x-8/Output-6/Input-7; ++#X connect 154 0 494 0; ++#X connect 494 0 495 0; ++#X obj 5136 2270 r \$0-Matrix-8-x-8/Output-6/Input-7; ++#X msg 5136 2290 /Matrix-8-x-8/Output-6/Input-7 \$1; ++#X connect 496 0 497 0; ++#X connect 497 0 155 0; ++#X obj 5432 2270 route /Matrix-8-x-8/Output-6/Input-7; ++#X obj 5432 2290 s \$0-Matrix-8-x-8/Output-6/Input-7; ++#X connect 492 1 498 0; ++#X connect 498 0 499 0; ++#X msg 4840 2310 -10; ++#X obj 4840 2330 s \$0-Matrix-8-x-8/Output-7/Input-0; ++#X connect 154 0 500 0; ++#X connect 500 0 501 0; ++#X obj 5136 2310 r \$0-Matrix-8-x-8/Output-7/Input-0; ++#X msg 5136 2330 /Matrix-8-x-8/Output-7/Input-0 \$1; ++#X connect 502 0 503 0; ++#X connect 503 0 155 0; ++#X obj 5432 2310 route /Matrix-8-x-8/Output-7/Input-0; ++#X obj 5432 2330 s \$0-Matrix-8-x-8/Output-7/Input-0; ++#X connect 498 1 504 0; ++#X connect 504 0 505 0; ++#X msg 4840 2350 -10; ++#X obj 4840 2370 s \$0-Matrix-8-x-8/Output-7/Input-1; ++#X connect 154 0 506 0; ++#X connect 506 0 507 0; ++#X obj 5136 2350 r \$0-Matrix-8-x-8/Output-7/Input-1; ++#X msg 5136 2370 /Matrix-8-x-8/Output-7/Input-1 \$1; ++#X connect 508 0 509 0; ++#X connect 509 0 155 0; ++#X obj 5432 2350 route /Matrix-8-x-8/Output-7/Input-1; ++#X obj 5432 2370 s \$0-Matrix-8-x-8/Output-7/Input-1; ++#X connect 504 1 510 0; ++#X connect 510 0 511 0; ++#X msg 4840 2390 -10; ++#X obj 4840 2410 s \$0-Matrix-8-x-8/Output-7/Input-2; ++#X connect 154 0 512 0; ++#X connect 512 0 513 0; ++#X obj 5136 2390 r \$0-Matrix-8-x-8/Output-7/Input-2; ++#X msg 5136 2410 /Matrix-8-x-8/Output-7/Input-2 \$1; ++#X connect 514 0 515 0; ++#X connect 515 0 155 0; ++#X obj 5432 2390 route /Matrix-8-x-8/Output-7/Input-2; ++#X obj 5432 2410 s \$0-Matrix-8-x-8/Output-7/Input-2; ++#X connect 510 1 516 0; ++#X connect 516 0 517 0; ++#X msg 4840 2430 -10; ++#X obj 4840 2450 s \$0-Matrix-8-x-8/Output-7/Input-3; ++#X connect 154 0 518 0; ++#X connect 518 0 519 0; ++#X obj 5136 2430 r \$0-Matrix-8-x-8/Output-7/Input-3; ++#X msg 5136 2450 /Matrix-8-x-8/Output-7/Input-3 \$1; ++#X connect 520 0 521 0; ++#X connect 521 0 155 0; ++#X obj 5432 2430 route /Matrix-8-x-8/Output-7/Input-3; ++#X obj 5432 2450 s \$0-Matrix-8-x-8/Output-7/Input-3; ++#X connect 516 1 522 0; ++#X connect 522 0 523 0; ++#X msg 4840 2470 -10; ++#X obj 4840 2490 s \$0-Matrix-8-x-8/Output-7/Input-4; ++#X connect 154 0 524 0; ++#X connect 524 0 525 0; ++#X obj 5136 2470 r \$0-Matrix-8-x-8/Output-7/Input-4; ++#X msg 5136 2490 /Matrix-8-x-8/Output-7/Input-4 \$1; ++#X connect 526 0 527 0; ++#X connect 527 0 155 0; ++#X obj 5432 2470 route /Matrix-8-x-8/Output-7/Input-4; ++#X obj 5432 2490 s \$0-Matrix-8-x-8/Output-7/Input-4; ++#X connect 522 1 528 0; ++#X connect 528 0 529 0; ++#X msg 4840 2510 -10; ++#X obj 4840 2530 s \$0-Matrix-8-x-8/Output-7/Input-5; ++#X connect 154 0 530 0; ++#X connect 530 0 531 0; ++#X obj 5136 2510 r \$0-Matrix-8-x-8/Output-7/Input-5; ++#X msg 5136 2530 /Matrix-8-x-8/Output-7/Input-5 \$1; ++#X connect 532 0 533 0; ++#X connect 533 0 155 0; ++#X obj 5432 2510 route /Matrix-8-x-8/Output-7/Input-5; ++#X obj 5432 2530 s \$0-Matrix-8-x-8/Output-7/Input-5; ++#X connect 528 1 534 0; ++#X connect 534 0 535 0; ++#X msg 4840 2550 -10; ++#X obj 4840 2570 s \$0-Matrix-8-x-8/Output-7/Input-6; ++#X connect 154 0 536 0; ++#X connect 536 0 537 0; ++#X obj 5136 2550 r \$0-Matrix-8-x-8/Output-7/Input-6; ++#X msg 5136 2570 /Matrix-8-x-8/Output-7/Input-6 \$1; ++#X connect 538 0 539 0; ++#X connect 539 0 155 0; ++#X obj 5432 2550 route /Matrix-8-x-8/Output-7/Input-6; ++#X obj 5432 2570 s \$0-Matrix-8-x-8/Output-7/Input-6; ++#X connect 534 1 540 0; ++#X connect 540 0 541 0; ++#X msg 4840 2590 -10; ++#X obj 4840 2610 s \$0-Matrix-8-x-8/Output-7/Input-7; ++#X connect 154 0 542 0; ++#X connect 542 0 543 0; ++#X obj 5136 2590 r \$0-Matrix-8-x-8/Output-7/Input-7; ++#X msg 5136 2610 /Matrix-8-x-8/Output-7/Input-7 \$1; ++#X connect 544 0 545 0; ++#X connect 545 0 155 0; ++#X obj 5432 2590 route /Matrix-8-x-8/Output-7/Input-7; ++#X obj 5432 2610 s \$0-Matrix-8-x-8/Output-7/Input-7; ++#X connect 540 1 546 0; ++#X connect 546 0 547 0; ++#X coords 0 -1 1 1 4810 200 1 0 0; ++#X text 0 220 Generated Tue Jan 16 18:57:55 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/faust/mixer.dsp.xml +@@ -0,0 +1,346 @@ ++ ++ ++ mixer ++ Grame ++ (c)GRAME 2006 ++ BSD ++ 1.0 ++ mydsp ++ 8 ++ 2 ++ ++ ++ 25 ++ ++ ++ fEntry0 ++ 0.0f ++ -90.0f ++ 90.0f ++ 1.0f ++ ++ ++ ++ fVslider1 ++ 0.0f ++ -70.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fCheckbox0 ++ ++ ++ ++ fEntry1 ++ 0.0f ++ -90.0f ++ 90.0f ++ 1.0f ++ ++ ++ ++ fVslider2 ++ 0.0f ++ -70.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fCheckbox1 ++ ++ ++ ++ fEntry2 ++ 0.0f ++ -90.0f ++ 90.0f ++ 1.0f ++ ++ ++ ++ fVslider3 ++ 0.0f ++ -70.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fCheckbox2 ++ ++ ++ ++ fEntry3 ++ 0.0f ++ -90.0f ++ 90.0f ++ 1.0f ++ ++ ++ ++ fVslider4 ++ 0.0f ++ -70.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fCheckbox3 ++ ++ ++ ++ fEntry4 ++ 0.0f ++ -90.0f ++ 90.0f ++ 1.0f ++ ++ ++ ++ fVslider5 ++ 0.0f ++ -70.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fCheckbox4 ++ ++ ++ ++ fEntry5 ++ 0.0f ++ -90.0f ++ 90.0f ++ 1.0f ++ ++ ++ ++ fVslider6 ++ 0.0f ++ -70.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fCheckbox5 ++ ++ ++ ++ fEntry6 ++ 0.0f ++ -90.0f ++ 90.0f ++ 1.0f ++ ++ ++ ++ fVslider7 ++ 0.0f ++ -70.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fCheckbox6 ++ ++ ++ ++ fEntry7 ++ 0.0f ++ -90.0f ++ 90.0f ++ 1.0f ++ ++ ++ ++ fVslider8 ++ 0.0f ++ -70.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ fCheckbox7 ++ ++ ++ ++ fVslider0 ++ 0.0f ++ -70.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ ++ 10 ++ ++ ++ fVbargraph0 ++ -70.0f ++ 5.0f ++ ++ ++ ++ fVbargraph1 ++ -70.0f ++ 5.0f ++ ++ ++ ++ fVbargraph2 ++ -70.0f ++ 5.0f ++ ++ ++ ++ fVbargraph3 ++ -70.0f ++ 5.0f ++ ++ ++ ++ fVbargraph4 ++ -70.0f ++ 5.0f ++ ++ ++ ++ fVbargraph5 ++ -70.0f ++ 5.0f ++ ++ ++ ++ fVbargraph6 ++ -70.0f ++ 5.0f ++ ++ ++ ++ fVbargraph7 ++ -70.0f ++ 5.0f ++ ++ ++ ++ fVbargraph8 ++ -70.0f ++ 5.0f ++ ++ ++ ++ fVbargraph9 ++ -70.0f ++ 5.0f ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/mixer.pd +@@ -0,0 +1,528 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 330 inlet~; ++#X obj 130 330 inlet~; ++#X obj 190 330 inlet~; ++#X obj 250 330 inlet~; ++#X obj 310 330 inlet~; ++#X obj 370 330 inlet~; ++#X obj 430 330 inlet~; ++#X obj 490 330 inlet~; ++#X obj 10 330 inlet; ++#X obj 550 330 r \$0-read; ++#X obj 550 360 faust-control \$0; ++#X obj 550 390 s \$0-write; ++#X obj 10 390 r \$0-in; ++#X obj 10 420 mixer~; ++#X obj 10 450 s \$0-out; ++#X obj 70 480 outlet~; ++#X obj 130 480 outlet~; ++#X obj 10 480 outlet; ++#X connect 8 0 10 0; ++#X connect 9 0 10 0; ++#X connect 10 0 11 0; ++#X connect 13 0 14 0; ++#X connect 8 0 17 0; ++#X connect 12 0 13 0; ++#X connect 0 0 13 1; ++#X connect 1 0 13 2; ++#X connect 2 0 13 3; ++#X connect 3 0 13 4; ++#X connect 4 0 13 5; ++#X connect 5 0 13 6; ++#X connect 6 0 13 7; ++#X connect 7 0 13 8; ++#X connect 13 1 15 0; ++#X connect 13 2 16 0; ++#X obj 10 30 nbx 5 14 -90 90 0 0 \$0-mixer/Ch-0/pan \$0-mixer/Ch-0/pan pan 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 vsl 15 128 -70 4 0 0 \$0-mixer/Ch-0/0x00/0x7f83e8197680 \$0-mixer/Ch-0/0x00/0x7f83e8197680 0x7f83e8197680 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 10 200 nbx 5 14 -70 4 0 0 \$0-mixer/Ch-0/0x00/0x7f83e8197680 \$0-mixer/Ch-0/0x00/0x7f83e8197680 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 85 60 vsl 15 128 -70 5 0 0 \$0-mixer/Ch-0/0x00/0x564707a549c0 \$0-mixer/Ch-0/0x00/0x564707a549c0 0x564707a549c0 0 -8 0 10 -233017 -1 -1 0 1; ++#X obj 85 200 nbx 5 14 -70 5 0 0 \$0-mixer/Ch-0/0x00/0x564707a549c0 \$0-mixer/Ch-0/0x00/0x564707a549c0 empty 0 -6 0 10 -233017 -1 -1 256; ++#X obj 10 240 tgl 15 0 \$0-mixer/Ch-0/mute \$0-mixer/Ch-0/mute mute 0 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 -90 90 0 0 \$0-mixer/Ch-1/pan \$0-mixer/Ch-1/pan pan 0 -6 0 10 -262144 -1 -1 256; ++#X obj 160 60 vsl 15 128 -70 4 0 0 \$0-mixer/Ch-1/0x00/0x7f83e8189250 \$0-mixer/Ch-1/0x00/0x7f83e8189250 0x7f83e8189250 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 160 200 nbx 5 14 -70 4 0 0 \$0-mixer/Ch-1/0x00/0x7f83e8189250 \$0-mixer/Ch-1/0x00/0x7f83e8189250 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 235 60 vsl 15 128 -70 5 0 0 \$0-mixer/Ch-1/0x00/0x564707a57550 \$0-mixer/Ch-1/0x00/0x564707a57550 0x564707a57550 0 -8 0 10 -233017 -1 -1 0 1; ++#X obj 235 200 nbx 5 14 -70 5 0 0 \$0-mixer/Ch-1/0x00/0x564707a57550 \$0-mixer/Ch-1/0x00/0x564707a57550 empty 0 -6 0 10 -233017 -1 -1 256; ++#X obj 160 240 tgl 15 0 \$0-mixer/Ch-1/mute \$0-mixer/Ch-1/mute mute 0 -6 0 10 -262144 -1 -1 0 1; ++#X obj 310 30 nbx 5 14 -90 90 0 0 \$0-mixer/Ch-2/pan \$0-mixer/Ch-2/pan pan 0 -6 0 10 -262144 -1 -1 256; ++#X obj 310 60 vsl 15 128 -70 4 0 0 \$0-mixer/Ch-2/0x00/0x7f83e817ae20 \$0-mixer/Ch-2/0x00/0x7f83e817ae20 0x7f83e817ae20 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 310 200 nbx 5 14 -70 4 0 0 \$0-mixer/Ch-2/0x00/0x7f83e817ae20 \$0-mixer/Ch-2/0x00/0x7f83e817ae20 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 385 60 vsl 15 128 -70 5 0 0 \$0-mixer/Ch-2/0x00/0x564707a5a160 \$0-mixer/Ch-2/0x00/0x564707a5a160 0x564707a5a160 0 -8 0 10 -233017 -1 -1 0 1; ++#X obj 385 200 nbx 5 14 -70 5 0 0 \$0-mixer/Ch-2/0x00/0x564707a5a160 \$0-mixer/Ch-2/0x00/0x564707a5a160 empty 0 -6 0 10 -233017 -1 -1 256; ++#X obj 310 240 tgl 15 0 \$0-mixer/Ch-2/mute \$0-mixer/Ch-2/mute mute 0 -6 0 10 -262144 -1 -1 0 1; ++#X obj 460 30 nbx 5 14 -90 90 0 0 \$0-mixer/Ch-3/pan \$0-mixer/Ch-3/pan pan 0 -6 0 10 -262144 -1 -1 256; ++#X obj 460 60 vsl 15 128 -70 4 0 0 \$0-mixer/Ch-3/0x00/0x7f83e816ca00 \$0-mixer/Ch-3/0x00/0x7f83e816ca00 0x7f83e816ca00 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 460 200 nbx 5 14 -70 4 0 0 \$0-mixer/Ch-3/0x00/0x7f83e816ca00 \$0-mixer/Ch-3/0x00/0x7f83e816ca00 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 535 60 vsl 15 128 -70 5 0 0 \$0-mixer/Ch-3/0x00/0x564707a5cde0 \$0-mixer/Ch-3/0x00/0x564707a5cde0 0x564707a5cde0 0 -8 0 10 -233017 -1 -1 0 1; ++#X obj 535 200 nbx 5 14 -70 5 0 0 \$0-mixer/Ch-3/0x00/0x564707a5cde0 \$0-mixer/Ch-3/0x00/0x564707a5cde0 empty 0 -6 0 10 -233017 -1 -1 256; ++#X obj 460 240 tgl 15 0 \$0-mixer/Ch-3/mute \$0-mixer/Ch-3/mute mute 0 -6 0 10 -262144 -1 -1 0 1; ++#X obj 610 30 nbx 5 14 -90 90 0 0 \$0-mixer/Ch-4/pan \$0-mixer/Ch-4/pan pan 0 -6 0 10 -262144 -1 -1 256; ++#X obj 610 60 vsl 15 128 -70 4 0 0 \$0-mixer/Ch-4/0x00/0x7f83e815e670 \$0-mixer/Ch-4/0x00/0x7f83e815e670 0x7f83e815e670 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 610 200 nbx 5 14 -70 4 0 0 \$0-mixer/Ch-4/0x00/0x7f83e815e670 \$0-mixer/Ch-4/0x00/0x7f83e815e670 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 685 60 vsl 15 128 -70 5 0 0 \$0-mixer/Ch-4/0x00/0x564707a5fa60 \$0-mixer/Ch-4/0x00/0x564707a5fa60 0x564707a5fa60 0 -8 0 10 -233017 -1 -1 0 1; ++#X obj 685 200 nbx 5 14 -70 5 0 0 \$0-mixer/Ch-4/0x00/0x564707a5fa60 \$0-mixer/Ch-4/0x00/0x564707a5fa60 empty 0 -6 0 10 -233017 -1 -1 256; ++#X obj 610 240 tgl 15 0 \$0-mixer/Ch-4/mute \$0-mixer/Ch-4/mute mute 0 -6 0 10 -262144 -1 -1 0 1; ++#X obj 760 30 nbx 5 14 -90 90 0 0 \$0-mixer/Ch-5/pan \$0-mixer/Ch-5/pan pan 0 -6 0 10 -262144 -1 -1 256; ++#X obj 760 60 vsl 15 128 -70 4 0 0 \$0-mixer/Ch-5/0x00/0x7f83e8150290 \$0-mixer/Ch-5/0x00/0x7f83e8150290 0x7f83e8150290 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 760 200 nbx 5 14 -70 4 0 0 \$0-mixer/Ch-5/0x00/0x7f83e8150290 \$0-mixer/Ch-5/0x00/0x7f83e8150290 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 835 60 vsl 15 128 -70 5 0 0 \$0-mixer/Ch-5/0x00/0x564707a626e0 \$0-mixer/Ch-5/0x00/0x564707a626e0 0x564707a626e0 0 -8 0 10 -233017 -1 -1 0 1; ++#X obj 835 200 nbx 5 14 -70 5 0 0 \$0-mixer/Ch-5/0x00/0x564707a626e0 \$0-mixer/Ch-5/0x00/0x564707a626e0 empty 0 -6 0 10 -233017 -1 -1 256; ++#X obj 760 240 tgl 15 0 \$0-mixer/Ch-5/mute \$0-mixer/Ch-5/mute mute 0 -6 0 10 -262144 -1 -1 0 1; ++#X obj 910 30 nbx 5 14 -90 90 0 0 \$0-mixer/Ch-6/pan \$0-mixer/Ch-6/pan pan 0 -6 0 10 -262144 -1 -1 256; ++#X obj 910 60 vsl 15 128 -70 4 0 0 \$0-mixer/Ch-6/0x00/0x7f83e8141eb0 \$0-mixer/Ch-6/0x00/0x7f83e8141eb0 0x7f83e8141eb0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 910 200 nbx 5 14 -70 4 0 0 \$0-mixer/Ch-6/0x00/0x7f83e8141eb0 \$0-mixer/Ch-6/0x00/0x7f83e8141eb0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 985 60 vsl 15 128 -70 5 0 0 \$0-mixer/Ch-6/0x00/0x564707a65360 \$0-mixer/Ch-6/0x00/0x564707a65360 0x564707a65360 0 -8 0 10 -233017 -1 -1 0 1; ++#X obj 985 200 nbx 5 14 -70 5 0 0 \$0-mixer/Ch-6/0x00/0x564707a65360 \$0-mixer/Ch-6/0x00/0x564707a65360 empty 0 -6 0 10 -233017 -1 -1 256; ++#X obj 910 240 tgl 15 0 \$0-mixer/Ch-6/mute \$0-mixer/Ch-6/mute mute 0 -6 0 10 -262144 -1 -1 0 1; ++#X obj 1060 30 nbx 5 14 -90 90 0 0 \$0-mixer/Ch-7/pan \$0-mixer/Ch-7/pan pan 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1060 60 vsl 15 128 -70 4 0 0 \$0-mixer/Ch-7/0x00/0x7f83e8131be0 \$0-mixer/Ch-7/0x00/0x7f83e8131be0 0x7f83e8131be0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1060 200 nbx 5 14 -70 4 0 0 \$0-mixer/Ch-7/0x00/0x7f83e8131be0 \$0-mixer/Ch-7/0x00/0x7f83e8131be0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1135 60 vsl 15 128 -70 5 0 0 \$0-mixer/Ch-7/0x00/0x564707a67fe0 \$0-mixer/Ch-7/0x00/0x564707a67fe0 0x564707a67fe0 0 -8 0 10 -233017 -1 -1 0 1; ++#X obj 1135 200 nbx 5 14 -70 5 0 0 \$0-mixer/Ch-7/0x00/0x564707a67fe0 \$0-mixer/Ch-7/0x00/0x564707a67fe0 empty 0 -6 0 10 -233017 -1 -1 256; ++#X obj 1060 240 tgl 15 0 \$0-mixer/Ch-7/mute \$0-mixer/Ch-7/mute mute 0 -6 0 10 -262144 -1 -1 0 1; ++#X obj 1210 30 vsl 15 128 -70 5 0 0 \$0-mixer/stereo-out/L/0x564707a6a3c0 \$0-mixer/stereo-out/L/0x564707a6a3c0 0x564707a6a3c0 0 -8 0 10 -233017 -1 -1 0 1; ++#X obj 1210 170 nbx 5 14 -70 5 0 0 \$0-mixer/stereo-out/L/0x564707a6a3c0 \$0-mixer/stereo-out/L/0x564707a6a3c0 empty 0 -6 0 10 -233017 -1 -1 256; ++#X obj 1285 30 vsl 15 128 -70 5 0 0 \$0-mixer/stereo-out/R/0x564707a6e610 \$0-mixer/stereo-out/R/0x564707a6e610 0x564707a6e610 0 -8 0 10 -233017 -1 -1 0 1; ++#X obj 1285 170 nbx 5 14 -70 5 0 0 \$0-mixer/stereo-out/R/0x564707a6e610 \$0-mixer/stereo-out/R/0x564707a6e610 empty 0 -6 0 10 -233017 -1 -1 256; ++#X obj 1360 30 vsl 15 128 -70 4 0 0 \$0-mixer/stereo-out/0x7f83e81a5290 \$0-mixer/stereo-out/0x7f83e81a5290 0x7f83e81a5290 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1360 170 nbx 5 14 -70 4 0 0 \$0-mixer/stereo-out/0x7f83e81a5290 \$0-mixer/stereo-out/0x7f83e81a5290 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1397 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 1417 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 1465 10 r \$0-init; ++#X obj 1793 10 s \$0-in; ++#X obj 1957 10 s \$0-read; ++#X obj 2121 10 r \$0-write; ++#X msg 1465 30 1; ++#X obj 1465 50 s \$0-active; ++#X connect 78 0 79 0; ++#X obj 1793 30 r \$0-active; ++#X msg 1793 50 active \$1; ++#X connect 80 0 81 0; ++#X connect 81 0 75 0; ++#X obj 2121 30 route active; ++#X obj 2121 50 s \$0-active; ++#X connect 77 0 82 0; ++#X connect 82 0 83 0; ++#X msg 1465 70 0; ++#X obj 1465 90 s \$0-mixer/Ch-0/pan; ++#X connect 74 0 84 0; ++#X connect 84 0 85 0; ++#X obj 1793 70 r \$0-mixer/Ch-0/pan; ++#X msg 1793 90 /mixer/Ch-0/pan \$1; ++#X connect 86 0 87 0; ++#X connect 87 0 75 0; ++#X obj 2121 70 route /mixer/Ch-0/pan; ++#X obj 2121 90 s \$0-mixer/Ch-0/pan; ++#X connect 82 1 88 0; ++#X connect 88 0 89 0; ++#X msg 1465 110 0; ++#X obj 1465 130 s \$0-mixer/Ch-0/0x00/0x7f83e8197680; ++#X connect 74 0 90 0; ++#X connect 90 0 91 0; ++#X obj 1793 110 r \$0-mixer/Ch-0/0x00/0x7f83e8197680; ++#X msg 1793 130 /mixer/Ch-0/0x00/0x7f83e8197680 \$1; ++#X connect 92 0 93 0; ++#X connect 93 0 75 0; ++#X obj 2121 110 route /mixer/Ch-0/0x00/0x7f83e8197680; ++#X obj 2121 130 s \$0-mixer/Ch-0/0x00/0x7f83e8197680; ++#X connect 88 1 94 0; ++#X connect 94 0 95 0; ++#X msg 1465 150 0; ++#X obj 1465 170 s \$0-mixer/Ch-0/0x00/0x564707a549c0; ++#X connect 74 0 96 0; ++#X connect 96 0 97 0; ++#X obj 1793 150 faust-timer \$0; ++#X msg 1793 170 /mixer/Ch-0/0x00/0x564707a549c0; ++#X connect 98 0 99 0; ++#X connect 99 0 76 0; ++#X obj 2121 150 route /mixer/Ch-0/0x00/0x564707a549c0; ++#X obj 2121 170 s \$0-mixer/Ch-0/0x00/0x564707a549c0; ++#X connect 94 1 100 0; ++#X connect 100 0 101 0; ++#X msg 1465 190 0; ++#X obj 1465 210 s \$0-mixer/Ch-0/mute; ++#X connect 74 0 102 0; ++#X connect 102 0 103 0; ++#X obj 1793 190 r \$0-mixer/Ch-0/mute; ++#X msg 1793 210 /mixer/Ch-0/mute \$1; ++#X connect 104 0 105 0; ++#X connect 105 0 75 0; ++#X obj 2121 190 route /mixer/Ch-0/mute; ++#X obj 2121 210 s \$0-mixer/Ch-0/mute; ++#X connect 100 1 106 0; ++#X connect 106 0 107 0; ++#X msg 1465 230 0; ++#X obj 1465 250 s \$0-mixer/Ch-1/pan; ++#X connect 74 0 108 0; ++#X connect 108 0 109 0; ++#X obj 1793 230 r \$0-mixer/Ch-1/pan; ++#X msg 1793 250 /mixer/Ch-1/pan \$1; ++#X connect 110 0 111 0; ++#X connect 111 0 75 0; ++#X obj 2121 230 route /mixer/Ch-1/pan; ++#X obj 2121 250 s \$0-mixer/Ch-1/pan; ++#X connect 106 1 112 0; ++#X connect 112 0 113 0; ++#X msg 1465 270 0; ++#X obj 1465 290 s \$0-mixer/Ch-1/0x00/0x7f83e8189250; ++#X connect 74 0 114 0; ++#X connect 114 0 115 0; ++#X obj 1793 270 r \$0-mixer/Ch-1/0x00/0x7f83e8189250; ++#X msg 1793 290 /mixer/Ch-1/0x00/0x7f83e8189250 \$1; ++#X connect 116 0 117 0; ++#X connect 117 0 75 0; ++#X obj 2121 270 route /mixer/Ch-1/0x00/0x7f83e8189250; ++#X obj 2121 290 s \$0-mixer/Ch-1/0x00/0x7f83e8189250; ++#X connect 112 1 118 0; ++#X connect 118 0 119 0; ++#X msg 1465 310 0; ++#X obj 1465 330 s \$0-mixer/Ch-1/0x00/0x564707a57550; ++#X connect 74 0 120 0; ++#X connect 120 0 121 0; ++#X obj 1793 310 faust-timer \$0; ++#X msg 1793 330 /mixer/Ch-1/0x00/0x564707a57550; ++#X connect 122 0 123 0; ++#X connect 123 0 76 0; ++#X obj 2121 310 route /mixer/Ch-1/0x00/0x564707a57550; ++#X obj 2121 330 s \$0-mixer/Ch-1/0x00/0x564707a57550; ++#X connect 118 1 124 0; ++#X connect 124 0 125 0; ++#X msg 1465 350 0; ++#X obj 1465 370 s \$0-mixer/Ch-1/mute; ++#X connect 74 0 126 0; ++#X connect 126 0 127 0; ++#X obj 1793 350 r \$0-mixer/Ch-1/mute; ++#X msg 1793 370 /mixer/Ch-1/mute \$1; ++#X connect 128 0 129 0; ++#X connect 129 0 75 0; ++#X obj 2121 350 route /mixer/Ch-1/mute; ++#X obj 2121 370 s \$0-mixer/Ch-1/mute; ++#X connect 124 1 130 0; ++#X connect 130 0 131 0; ++#X msg 1465 390 0; ++#X obj 1465 410 s \$0-mixer/Ch-2/pan; ++#X connect 74 0 132 0; ++#X connect 132 0 133 0; ++#X obj 1793 390 r \$0-mixer/Ch-2/pan; ++#X msg 1793 410 /mixer/Ch-2/pan \$1; ++#X connect 134 0 135 0; ++#X connect 135 0 75 0; ++#X obj 2121 390 route /mixer/Ch-2/pan; ++#X obj 2121 410 s \$0-mixer/Ch-2/pan; ++#X connect 130 1 136 0; ++#X connect 136 0 137 0; ++#X msg 1465 430 0; ++#X obj 1465 450 s \$0-mixer/Ch-2/0x00/0x7f83e817ae20; ++#X connect 74 0 138 0; ++#X connect 138 0 139 0; ++#X obj 1793 430 r \$0-mixer/Ch-2/0x00/0x7f83e817ae20; ++#X msg 1793 450 /mixer/Ch-2/0x00/0x7f83e817ae20 \$1; ++#X connect 140 0 141 0; ++#X connect 141 0 75 0; ++#X obj 2121 430 route /mixer/Ch-2/0x00/0x7f83e817ae20; ++#X obj 2121 450 s \$0-mixer/Ch-2/0x00/0x7f83e817ae20; ++#X connect 136 1 142 0; ++#X connect 142 0 143 0; ++#X msg 1465 470 0; ++#X obj 1465 490 s \$0-mixer/Ch-2/0x00/0x564707a5a160; ++#X connect 74 0 144 0; ++#X connect 144 0 145 0; ++#X obj 1793 470 faust-timer \$0; ++#X msg 1793 490 /mixer/Ch-2/0x00/0x564707a5a160; ++#X connect 146 0 147 0; ++#X connect 147 0 76 0; ++#X obj 2121 470 route /mixer/Ch-2/0x00/0x564707a5a160; ++#X obj 2121 490 s \$0-mixer/Ch-2/0x00/0x564707a5a160; ++#X connect 142 1 148 0; ++#X connect 148 0 149 0; ++#X msg 1465 510 0; ++#X obj 1465 530 s \$0-mixer/Ch-2/mute; ++#X connect 74 0 150 0; ++#X connect 150 0 151 0; ++#X obj 1793 510 r \$0-mixer/Ch-2/mute; ++#X msg 1793 530 /mixer/Ch-2/mute \$1; ++#X connect 152 0 153 0; ++#X connect 153 0 75 0; ++#X obj 2121 510 route /mixer/Ch-2/mute; ++#X obj 2121 530 s \$0-mixer/Ch-2/mute; ++#X connect 148 1 154 0; ++#X connect 154 0 155 0; ++#X msg 1465 550 0; ++#X obj 1465 570 s \$0-mixer/Ch-3/pan; ++#X connect 74 0 156 0; ++#X connect 156 0 157 0; ++#X obj 1793 550 r \$0-mixer/Ch-3/pan; ++#X msg 1793 570 /mixer/Ch-3/pan \$1; ++#X connect 158 0 159 0; ++#X connect 159 0 75 0; ++#X obj 2121 550 route /mixer/Ch-3/pan; ++#X obj 2121 570 s \$0-mixer/Ch-3/pan; ++#X connect 154 1 160 0; ++#X connect 160 0 161 0; ++#X msg 1465 590 0; ++#X obj 1465 610 s \$0-mixer/Ch-3/0x00/0x7f83e816ca00; ++#X connect 74 0 162 0; ++#X connect 162 0 163 0; ++#X obj 1793 590 r \$0-mixer/Ch-3/0x00/0x7f83e816ca00; ++#X msg 1793 610 /mixer/Ch-3/0x00/0x7f83e816ca00 \$1; ++#X connect 164 0 165 0; ++#X connect 165 0 75 0; ++#X obj 2121 590 route /mixer/Ch-3/0x00/0x7f83e816ca00; ++#X obj 2121 610 s \$0-mixer/Ch-3/0x00/0x7f83e816ca00; ++#X connect 160 1 166 0; ++#X connect 166 0 167 0; ++#X msg 1465 630 0; ++#X obj 1465 650 s \$0-mixer/Ch-3/0x00/0x564707a5cde0; ++#X connect 74 0 168 0; ++#X connect 168 0 169 0; ++#X obj 1793 630 faust-timer \$0; ++#X msg 1793 650 /mixer/Ch-3/0x00/0x564707a5cde0; ++#X connect 170 0 171 0; ++#X connect 171 0 76 0; ++#X obj 2121 630 route /mixer/Ch-3/0x00/0x564707a5cde0; ++#X obj 2121 650 s \$0-mixer/Ch-3/0x00/0x564707a5cde0; ++#X connect 166 1 172 0; ++#X connect 172 0 173 0; ++#X msg 1465 670 0; ++#X obj 1465 690 s \$0-mixer/Ch-3/mute; ++#X connect 74 0 174 0; ++#X connect 174 0 175 0; ++#X obj 1793 670 r \$0-mixer/Ch-3/mute; ++#X msg 1793 690 /mixer/Ch-3/mute \$1; ++#X connect 176 0 177 0; ++#X connect 177 0 75 0; ++#X obj 2121 670 route /mixer/Ch-3/mute; ++#X obj 2121 690 s \$0-mixer/Ch-3/mute; ++#X connect 172 1 178 0; ++#X connect 178 0 179 0; ++#X msg 1465 710 0; ++#X obj 1465 730 s \$0-mixer/Ch-4/pan; ++#X connect 74 0 180 0; ++#X connect 180 0 181 0; ++#X obj 1793 710 r \$0-mixer/Ch-4/pan; ++#X msg 1793 730 /mixer/Ch-4/pan \$1; ++#X connect 182 0 183 0; ++#X connect 183 0 75 0; ++#X obj 2121 710 route /mixer/Ch-4/pan; ++#X obj 2121 730 s \$0-mixer/Ch-4/pan; ++#X connect 178 1 184 0; ++#X connect 184 0 185 0; ++#X msg 1465 750 0; ++#X obj 1465 770 s \$0-mixer/Ch-4/0x00/0x7f83e815e670; ++#X connect 74 0 186 0; ++#X connect 186 0 187 0; ++#X obj 1793 750 r \$0-mixer/Ch-4/0x00/0x7f83e815e670; ++#X msg 1793 770 /mixer/Ch-4/0x00/0x7f83e815e670 \$1; ++#X connect 188 0 189 0; ++#X connect 189 0 75 0; ++#X obj 2121 750 route /mixer/Ch-4/0x00/0x7f83e815e670; ++#X obj 2121 770 s \$0-mixer/Ch-4/0x00/0x7f83e815e670; ++#X connect 184 1 190 0; ++#X connect 190 0 191 0; ++#X msg 1465 790 0; ++#X obj 1465 810 s \$0-mixer/Ch-4/0x00/0x564707a5fa60; ++#X connect 74 0 192 0; ++#X connect 192 0 193 0; ++#X obj 1793 790 faust-timer \$0; ++#X msg 1793 810 /mixer/Ch-4/0x00/0x564707a5fa60; ++#X connect 194 0 195 0; ++#X connect 195 0 76 0; ++#X obj 2121 790 route /mixer/Ch-4/0x00/0x564707a5fa60; ++#X obj 2121 810 s \$0-mixer/Ch-4/0x00/0x564707a5fa60; ++#X connect 190 1 196 0; ++#X connect 196 0 197 0; ++#X msg 1465 830 0; ++#X obj 1465 850 s \$0-mixer/Ch-4/mute; ++#X connect 74 0 198 0; ++#X connect 198 0 199 0; ++#X obj 1793 830 r \$0-mixer/Ch-4/mute; ++#X msg 1793 850 /mixer/Ch-4/mute \$1; ++#X connect 200 0 201 0; ++#X connect 201 0 75 0; ++#X obj 2121 830 route /mixer/Ch-4/mute; ++#X obj 2121 850 s \$0-mixer/Ch-4/mute; ++#X connect 196 1 202 0; ++#X connect 202 0 203 0; ++#X msg 1465 870 0; ++#X obj 1465 890 s \$0-mixer/Ch-5/pan; ++#X connect 74 0 204 0; ++#X connect 204 0 205 0; ++#X obj 1793 870 r \$0-mixer/Ch-5/pan; ++#X msg 1793 890 /mixer/Ch-5/pan \$1; ++#X connect 206 0 207 0; ++#X connect 207 0 75 0; ++#X obj 2121 870 route /mixer/Ch-5/pan; ++#X obj 2121 890 s \$0-mixer/Ch-5/pan; ++#X connect 202 1 208 0; ++#X connect 208 0 209 0; ++#X msg 1465 910 0; ++#X obj 1465 930 s \$0-mixer/Ch-5/0x00/0x7f83e8150290; ++#X connect 74 0 210 0; ++#X connect 210 0 211 0; ++#X obj 1793 910 r \$0-mixer/Ch-5/0x00/0x7f83e8150290; ++#X msg 1793 930 /mixer/Ch-5/0x00/0x7f83e8150290 \$1; ++#X connect 212 0 213 0; ++#X connect 213 0 75 0; ++#X obj 2121 910 route /mixer/Ch-5/0x00/0x7f83e8150290; ++#X obj 2121 930 s \$0-mixer/Ch-5/0x00/0x7f83e8150290; ++#X connect 208 1 214 0; ++#X connect 214 0 215 0; ++#X msg 1465 950 0; ++#X obj 1465 970 s \$0-mixer/Ch-5/0x00/0x564707a626e0; ++#X connect 74 0 216 0; ++#X connect 216 0 217 0; ++#X obj 1793 950 faust-timer \$0; ++#X msg 1793 970 /mixer/Ch-5/0x00/0x564707a626e0; ++#X connect 218 0 219 0; ++#X connect 219 0 76 0; ++#X obj 2121 950 route /mixer/Ch-5/0x00/0x564707a626e0; ++#X obj 2121 970 s \$0-mixer/Ch-5/0x00/0x564707a626e0; ++#X connect 214 1 220 0; ++#X connect 220 0 221 0; ++#X msg 1465 990 0; ++#X obj 1465 1010 s \$0-mixer/Ch-5/mute; ++#X connect 74 0 222 0; ++#X connect 222 0 223 0; ++#X obj 1793 990 r \$0-mixer/Ch-5/mute; ++#X msg 1793 1010 /mixer/Ch-5/mute \$1; ++#X connect 224 0 225 0; ++#X connect 225 0 75 0; ++#X obj 2121 990 route /mixer/Ch-5/mute; ++#X obj 2121 1010 s \$0-mixer/Ch-5/mute; ++#X connect 220 1 226 0; ++#X connect 226 0 227 0; ++#X msg 1465 1030 0; ++#X obj 1465 1050 s \$0-mixer/Ch-6/pan; ++#X connect 74 0 228 0; ++#X connect 228 0 229 0; ++#X obj 1793 1030 r \$0-mixer/Ch-6/pan; ++#X msg 1793 1050 /mixer/Ch-6/pan \$1; ++#X connect 230 0 231 0; ++#X connect 231 0 75 0; ++#X obj 2121 1030 route /mixer/Ch-6/pan; ++#X obj 2121 1050 s \$0-mixer/Ch-6/pan; ++#X connect 226 1 232 0; ++#X connect 232 0 233 0; ++#X msg 1465 1070 0; ++#X obj 1465 1090 s \$0-mixer/Ch-6/0x00/0x7f83e8141eb0; ++#X connect 74 0 234 0; ++#X connect 234 0 235 0; ++#X obj 1793 1070 r \$0-mixer/Ch-6/0x00/0x7f83e8141eb0; ++#X msg 1793 1090 /mixer/Ch-6/0x00/0x7f83e8141eb0 \$1; ++#X connect 236 0 237 0; ++#X connect 237 0 75 0; ++#X obj 2121 1070 route /mixer/Ch-6/0x00/0x7f83e8141eb0; ++#X obj 2121 1090 s \$0-mixer/Ch-6/0x00/0x7f83e8141eb0; ++#X connect 232 1 238 0; ++#X connect 238 0 239 0; ++#X msg 1465 1110 0; ++#X obj 1465 1130 s \$0-mixer/Ch-6/0x00/0x564707a65360; ++#X connect 74 0 240 0; ++#X connect 240 0 241 0; ++#X obj 1793 1110 faust-timer \$0; ++#X msg 1793 1130 /mixer/Ch-6/0x00/0x564707a65360; ++#X connect 242 0 243 0; ++#X connect 243 0 76 0; ++#X obj 2121 1110 route /mixer/Ch-6/0x00/0x564707a65360; ++#X obj 2121 1130 s \$0-mixer/Ch-6/0x00/0x564707a65360; ++#X connect 238 1 244 0; ++#X connect 244 0 245 0; ++#X msg 1465 1150 0; ++#X obj 1465 1170 s \$0-mixer/Ch-6/mute; ++#X connect 74 0 246 0; ++#X connect 246 0 247 0; ++#X obj 1793 1150 r \$0-mixer/Ch-6/mute; ++#X msg 1793 1170 /mixer/Ch-6/mute \$1; ++#X connect 248 0 249 0; ++#X connect 249 0 75 0; ++#X obj 2121 1150 route /mixer/Ch-6/mute; ++#X obj 2121 1170 s \$0-mixer/Ch-6/mute; ++#X connect 244 1 250 0; ++#X connect 250 0 251 0; ++#X msg 1465 1190 0; ++#X obj 1465 1210 s \$0-mixer/Ch-7/pan; ++#X connect 74 0 252 0; ++#X connect 252 0 253 0; ++#X obj 1793 1190 r \$0-mixer/Ch-7/pan; ++#X msg 1793 1210 /mixer/Ch-7/pan \$1; ++#X connect 254 0 255 0; ++#X connect 255 0 75 0; ++#X obj 2121 1190 route /mixer/Ch-7/pan; ++#X obj 2121 1210 s \$0-mixer/Ch-7/pan; ++#X connect 250 1 256 0; ++#X connect 256 0 257 0; ++#X msg 1465 1230 0; ++#X obj 1465 1250 s \$0-mixer/Ch-7/0x00/0x7f83e8131be0; ++#X connect 74 0 258 0; ++#X connect 258 0 259 0; ++#X obj 1793 1230 r \$0-mixer/Ch-7/0x00/0x7f83e8131be0; ++#X msg 1793 1250 /mixer/Ch-7/0x00/0x7f83e8131be0 \$1; ++#X connect 260 0 261 0; ++#X connect 261 0 75 0; ++#X obj 2121 1230 route /mixer/Ch-7/0x00/0x7f83e8131be0; ++#X obj 2121 1250 s \$0-mixer/Ch-7/0x00/0x7f83e8131be0; ++#X connect 256 1 262 0; ++#X connect 262 0 263 0; ++#X msg 1465 1270 0; ++#X obj 1465 1290 s \$0-mixer/Ch-7/0x00/0x564707a67fe0; ++#X connect 74 0 264 0; ++#X connect 264 0 265 0; ++#X obj 1793 1270 faust-timer \$0; ++#X msg 1793 1290 /mixer/Ch-7/0x00/0x564707a67fe0; ++#X connect 266 0 267 0; ++#X connect 267 0 76 0; ++#X obj 2121 1270 route /mixer/Ch-7/0x00/0x564707a67fe0; ++#X obj 2121 1290 s \$0-mixer/Ch-7/0x00/0x564707a67fe0; ++#X connect 262 1 268 0; ++#X connect 268 0 269 0; ++#X msg 1465 1310 0; ++#X obj 1465 1330 s \$0-mixer/Ch-7/mute; ++#X connect 74 0 270 0; ++#X connect 270 0 271 0; ++#X obj 1793 1310 r \$0-mixer/Ch-7/mute; ++#X msg 1793 1330 /mixer/Ch-7/mute \$1; ++#X connect 272 0 273 0; ++#X connect 273 0 75 0; ++#X obj 2121 1310 route /mixer/Ch-7/mute; ++#X obj 2121 1330 s \$0-mixer/Ch-7/mute; ++#X connect 268 1 274 0; ++#X connect 274 0 275 0; ++#X msg 1465 1350 0; ++#X obj 1465 1370 s \$0-mixer/stereo-out/L/0x564707a6a3c0; ++#X connect 74 0 276 0; ++#X connect 276 0 277 0; ++#X obj 1793 1350 faust-timer \$0; ++#X msg 1793 1370 /mixer/stereo-out/L/0x564707a6a3c0; ++#X connect 278 0 279 0; ++#X connect 279 0 76 0; ++#X obj 2121 1350 route /mixer/stereo-out/L/0x564707a6a3c0; ++#X obj 2121 1370 s \$0-mixer/stereo-out/L/0x564707a6a3c0; ++#X connect 274 1 280 0; ++#X connect 280 0 281 0; ++#X msg 1465 1390 0; ++#X obj 1465 1410 s \$0-mixer/stereo-out/R/0x564707a6e610; ++#X connect 74 0 282 0; ++#X connect 282 0 283 0; ++#X obj 1793 1390 faust-timer \$0; ++#X msg 1793 1410 /mixer/stereo-out/R/0x564707a6e610; ++#X connect 284 0 285 0; ++#X connect 285 0 76 0; ++#X obj 2121 1390 route /mixer/stereo-out/R/0x564707a6e610; ++#X obj 2121 1410 s \$0-mixer/stereo-out/R/0x564707a6e610; ++#X connect 280 1 286 0; ++#X connect 286 0 287 0; ++#X msg 1465 1430 0; ++#X obj 1465 1450 s \$0-mixer/stereo-out/0x7f83e81a5290; ++#X connect 74 0 288 0; ++#X connect 288 0 289 0; ++#X obj 1793 1430 r \$0-mixer/stereo-out/0x7f83e81a5290; ++#X msg 1793 1450 /mixer/stereo-out/0x7f83e81a5290 \$1; ++#X connect 290 0 291 0; ++#X connect 291 0 75 0; ++#X obj 2121 1430 route /mixer/stereo-out/0x7f83e81a5290; ++#X obj 2121 1450 s \$0-mixer/stereo-out/0x7f83e81a5290; ++#X connect 286 1 292 0; ++#X connect 292 0 293 0; ++#X coords 0 -1 1 1 1435 260 1 0 0; ++#X text 0 280 Generated Tue Jan 16 18:57:55 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/faust/multibandfilter.dsp.xml +@@ -0,0 +1,326 @@ ++ ++ ++ multibandfilter ++ Grame ++ (c)GRAME 2006 ++ BSD ++ 1.0 ++ mydsp ++ 1 ++ 1 ++ ++ ++ 30 ++ ++ ++ fEntry19 ++ 50.0f ++ 0.10000000000000001f ++ 100.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry18 ++ 1000.0f ++ 20.0f ++ 20000.0f ++ 1.0f ++ ++ ++ ++ fVslider9 ++ 0.0f ++ -50.0f ++ 50.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry17 ++ 50.0f ++ 0.10000000000000001f ++ 100.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry16 ++ 2000.0f ++ 20.0f ++ 20000.0f ++ 1.0f ++ ++ ++ ++ fVslider8 ++ 0.0f ++ -50.0f ++ 50.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry15 ++ 50.0f ++ 0.10000000000000001f ++ 100.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry14 ++ 3000.0f ++ 20.0f ++ 20000.0f ++ 1.0f ++ ++ ++ ++ fVslider7 ++ 0.0f ++ -50.0f ++ 50.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry13 ++ 50.0f ++ 0.10000000000000001f ++ 100.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry12 ++ 4000.0f ++ 20.0f ++ 20000.0f ++ 1.0f ++ ++ ++ ++ fVslider6 ++ 0.0f ++ -50.0f ++ 50.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry11 ++ 50.0f ++ 0.10000000000000001f ++ 100.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry10 ++ 5000.0f ++ 20.0f ++ 20000.0f ++ 1.0f ++ ++ ++ ++ fVslider5 ++ 0.0f ++ -50.0f ++ 50.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry9 ++ 50.0f ++ 0.10000000000000001f ++ 100.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry8 ++ 6000.0f ++ 20.0f ++ 20000.0f ++ 1.0f ++ ++ ++ ++ fVslider4 ++ 0.0f ++ -50.0f ++ 50.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry7 ++ 50.0f ++ 0.10000000000000001f ++ 100.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry6 ++ 7000.0f ++ 20.0f ++ 20000.0f ++ 1.0f ++ ++ ++ ++ fVslider3 ++ 0.0f ++ -50.0f ++ 50.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry5 ++ 50.0f ++ 0.10000000000000001f ++ 100.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry4 ++ 8000.0f ++ 20.0f ++ 20000.0f ++ 1.0f ++ ++ ++ ++ fVslider2 ++ 0.0f ++ -50.0f ++ 50.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry3 ++ 50.0f ++ 0.10000000000000001f ++ 100.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry2 ++ 9000.0f ++ 20.0f ++ 20000.0f ++ 1.0f ++ ++ ++ ++ fVslider1 ++ 0.0f ++ -50.0f ++ 50.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry1 ++ 50.0f ++ 0.10000000000000001f ++ 100.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry0 ++ 10000.0f ++ 20.0f ++ 20000.0f ++ 1.0f ++ ++ ++ ++ fVslider0 ++ 0.0f ++ -50.0f ++ 50.0f ++ 0.10000000000000001f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/multibandfilter.pd +@@ -0,0 +1,438 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 330 inlet~; ++#X obj 10 330 inlet; ++#X obj 130 330 r \$0-read; ++#X obj 130 360 faust-control \$0; ++#X obj 130 390 s \$0-write; ++#X obj 10 390 r \$0-in; ++#X obj 10 420 multibandfilter~; ++#X obj 10 450 s \$0-out; ++#X obj 70 480 outlet~; ++#X obj 10 480 outlet; ++#X connect 1 0 3 0; ++#X connect 2 0 3 0; ++#X connect 3 0 4 0; ++#X connect 6 0 7 0; ++#X connect 1 0 9 0; ++#X connect 5 0 6 0; ++#X connect 0 0 6 1; ++#X connect 6 1 8 0; ++#X obj 10 30 nbx 5 14 0.1 100 0 0 \$0-Multi-Band-Filter/peak-0/Q-factor \$0-Multi-Band-Filter/peak-0/Q-factor Q-factor 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 nbx 5 14 20 20000 0 0 \$0-Multi-Band-Filter/peak-0/freq \$0-Multi-Band-Filter/peak-0/freq freq 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 vsl 15 128 -50 50 0 0 \$0-Multi-Band-Filter/peak-0/gain \$0-Multi-Band-Filter/peak-0/gain gain 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 10 230 nbx 5 14 -50 50 0 0 \$0-Multi-Band-Filter/peak-0/gain \$0-Multi-Band-Filter/peak-0/gain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 85 30 nbx 5 14 0.1 100 0 0 \$0-Multi-Band-Filter/peak-1/Q-factor \$0-Multi-Band-Filter/peak-1/Q-factor Q-factor 0 -6 0 10 -262144 -1 -1 256; ++#X obj 85 60 nbx 5 14 20 20000 0 0 \$0-Multi-Band-Filter/peak-1/freq \$0-Multi-Band-Filter/peak-1/freq freq 0 -6 0 10 -262144 -1 -1 256; ++#X obj 85 90 vsl 15 128 -50 50 0 0 \$0-Multi-Band-Filter/peak-1/gain \$0-Multi-Band-Filter/peak-1/gain gain 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 85 230 nbx 5 14 -50 50 0 0 \$0-Multi-Band-Filter/peak-1/gain \$0-Multi-Band-Filter/peak-1/gain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 160 30 nbx 5 14 0.1 100 0 0 \$0-Multi-Band-Filter/peak-2/Q-factor \$0-Multi-Band-Filter/peak-2/Q-factor Q-factor 0 -6 0 10 -262144 -1 -1 256; ++#X obj 160 60 nbx 5 14 20 20000 0 0 \$0-Multi-Band-Filter/peak-2/freq \$0-Multi-Band-Filter/peak-2/freq freq 0 -6 0 10 -262144 -1 -1 256; ++#X obj 160 90 vsl 15 128 -50 50 0 0 \$0-Multi-Band-Filter/peak-2/gain \$0-Multi-Band-Filter/peak-2/gain gain 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 160 230 nbx 5 14 -50 50 0 0 \$0-Multi-Band-Filter/peak-2/gain \$0-Multi-Band-Filter/peak-2/gain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 235 30 nbx 5 14 0.1 100 0 0 \$0-Multi-Band-Filter/peak-3/Q-factor \$0-Multi-Band-Filter/peak-3/Q-factor Q-factor 0 -6 0 10 -262144 -1 -1 256; ++#X obj 235 60 nbx 5 14 20 20000 0 0 \$0-Multi-Band-Filter/peak-3/freq \$0-Multi-Band-Filter/peak-3/freq freq 0 -6 0 10 -262144 -1 -1 256; ++#X obj 235 90 vsl 15 128 -50 50 0 0 \$0-Multi-Band-Filter/peak-3/gain \$0-Multi-Band-Filter/peak-3/gain gain 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 235 230 nbx 5 14 -50 50 0 0 \$0-Multi-Band-Filter/peak-3/gain \$0-Multi-Band-Filter/peak-3/gain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 310 30 nbx 5 14 0.1 100 0 0 \$0-Multi-Band-Filter/peak-4/Q-factor \$0-Multi-Band-Filter/peak-4/Q-factor Q-factor 0 -6 0 10 -262144 -1 -1 256; ++#X obj 310 60 nbx 5 14 20 20000 0 0 \$0-Multi-Band-Filter/peak-4/freq \$0-Multi-Band-Filter/peak-4/freq freq 0 -6 0 10 -262144 -1 -1 256; ++#X obj 310 90 vsl 15 128 -50 50 0 0 \$0-Multi-Band-Filter/peak-4/gain \$0-Multi-Band-Filter/peak-4/gain gain 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 310 230 nbx 5 14 -50 50 0 0 \$0-Multi-Band-Filter/peak-4/gain \$0-Multi-Band-Filter/peak-4/gain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 385 30 nbx 5 14 0.1 100 0 0 \$0-Multi-Band-Filter/peak-5/Q-factor \$0-Multi-Band-Filter/peak-5/Q-factor Q-factor 0 -6 0 10 -262144 -1 -1 256; ++#X obj 385 60 nbx 5 14 20 20000 0 0 \$0-Multi-Band-Filter/peak-5/freq \$0-Multi-Band-Filter/peak-5/freq freq 0 -6 0 10 -262144 -1 -1 256; ++#X obj 385 90 vsl 15 128 -50 50 0 0 \$0-Multi-Band-Filter/peak-5/gain \$0-Multi-Band-Filter/peak-5/gain gain 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 385 230 nbx 5 14 -50 50 0 0 \$0-Multi-Band-Filter/peak-5/gain \$0-Multi-Band-Filter/peak-5/gain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 460 30 nbx 5 14 0.1 100 0 0 \$0-Multi-Band-Filter/peak-6/Q-factor \$0-Multi-Band-Filter/peak-6/Q-factor Q-factor 0 -6 0 10 -262144 -1 -1 256; ++#X obj 460 60 nbx 5 14 20 20000 0 0 \$0-Multi-Band-Filter/peak-6/freq \$0-Multi-Band-Filter/peak-6/freq freq 0 -6 0 10 -262144 -1 -1 256; ++#X obj 460 90 vsl 15 128 -50 50 0 0 \$0-Multi-Band-Filter/peak-6/gain \$0-Multi-Band-Filter/peak-6/gain gain 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 460 230 nbx 5 14 -50 50 0 0 \$0-Multi-Band-Filter/peak-6/gain \$0-Multi-Band-Filter/peak-6/gain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 535 30 nbx 5 14 0.1 100 0 0 \$0-Multi-Band-Filter/peak-7/Q-factor \$0-Multi-Band-Filter/peak-7/Q-factor Q-factor 0 -6 0 10 -262144 -1 -1 256; ++#X obj 535 60 nbx 5 14 20 20000 0 0 \$0-Multi-Band-Filter/peak-7/freq \$0-Multi-Band-Filter/peak-7/freq freq 0 -6 0 10 -262144 -1 -1 256; ++#X obj 535 90 vsl 15 128 -50 50 0 0 \$0-Multi-Band-Filter/peak-7/gain \$0-Multi-Band-Filter/peak-7/gain gain 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 535 230 nbx 5 14 -50 50 0 0 \$0-Multi-Band-Filter/peak-7/gain \$0-Multi-Band-Filter/peak-7/gain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 610 30 nbx 5 14 0.1 100 0 0 \$0-Multi-Band-Filter/peak-8/Q-factor \$0-Multi-Band-Filter/peak-8/Q-factor Q-factor 0 -6 0 10 -262144 -1 -1 256; ++#X obj 610 60 nbx 5 14 20 20000 0 0 \$0-Multi-Band-Filter/peak-8/freq \$0-Multi-Band-Filter/peak-8/freq freq 0 -6 0 10 -262144 -1 -1 256; ++#X obj 610 90 vsl 15 128 -50 50 0 0 \$0-Multi-Band-Filter/peak-8/gain \$0-Multi-Band-Filter/peak-8/gain gain 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 610 230 nbx 5 14 -50 50 0 0 \$0-Multi-Band-Filter/peak-8/gain \$0-Multi-Band-Filter/peak-8/gain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 685 30 nbx 5 14 0.1 100 0 0 \$0-Multi-Band-Filter/peak-9/Q-factor \$0-Multi-Band-Filter/peak-9/Q-factor Q-factor 0 -6 0 10 -262144 -1 -1 256; ++#X obj 685 60 nbx 5 14 20 20000 0 0 \$0-Multi-Band-Filter/peak-9/freq \$0-Multi-Band-Filter/peak-9/freq freq 0 -6 0 10 -262144 -1 -1 256; ++#X obj 685 90 vsl 15 128 -50 50 0 0 \$0-Multi-Band-Filter/peak-9/gain \$0-Multi-Band-Filter/peak-9/gain gain 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 685 230 nbx 5 14 -50 50 0 0 \$0-Multi-Band-Filter/peak-9/gain \$0-Multi-Band-Filter/peak-9/gain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 722 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 742 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 790 10 r \$0-init; ++#X obj 1118 10 s \$0-in; ++#X obj 1282 10 s \$0-read; ++#X obj 1446 10 r \$0-write; ++#X msg 790 30 1; ++#X obj 790 50 s \$0-active; ++#X connect 56 0 57 0; ++#X obj 1118 30 r \$0-active; ++#X msg 1118 50 active \$1; ++#X connect 58 0 59 0; ++#X connect 59 0 53 0; ++#X obj 1446 30 route active; ++#X obj 1446 50 s \$0-active; ++#X connect 55 0 60 0; ++#X connect 60 0 61 0; ++#X msg 790 70 50; ++#X obj 790 90 s \$0-Multi-Band-Filter/peak-0/Q-factor; ++#X connect 52 0 62 0; ++#X connect 62 0 63 0; ++#X obj 1118 70 r \$0-Multi-Band-Filter/peak-0/Q-factor; ++#X msg 1118 90 /Multi-Band-Filter/peak-0/Q-factor \$1; ++#X connect 64 0 65 0; ++#X connect 65 0 53 0; ++#X obj 1446 70 route /Multi-Band-Filter/peak-0/Q-factor; ++#X obj 1446 90 s \$0-Multi-Band-Filter/peak-0/Q-factor; ++#X connect 60 1 66 0; ++#X connect 66 0 67 0; ++#X msg 790 110 1000; ++#X obj 790 130 s \$0-Multi-Band-Filter/peak-0/freq; ++#X connect 52 0 68 0; ++#X connect 68 0 69 0; ++#X obj 1118 110 r \$0-Multi-Band-Filter/peak-0/freq; ++#X msg 1118 130 /Multi-Band-Filter/peak-0/freq \$1; ++#X connect 70 0 71 0; ++#X connect 71 0 53 0; ++#X obj 1446 110 route /Multi-Band-Filter/peak-0/freq; ++#X obj 1446 130 s \$0-Multi-Band-Filter/peak-0/freq; ++#X connect 66 1 72 0; ++#X connect 72 0 73 0; ++#X msg 790 150 0; ++#X obj 790 170 s \$0-Multi-Band-Filter/peak-0/gain; ++#X connect 52 0 74 0; ++#X connect 74 0 75 0; ++#X obj 1118 150 r \$0-Multi-Band-Filter/peak-0/gain; ++#X msg 1118 170 /Multi-Band-Filter/peak-0/gain \$1; ++#X connect 76 0 77 0; ++#X connect 77 0 53 0; ++#X obj 1446 150 route /Multi-Band-Filter/peak-0/gain; ++#X obj 1446 170 s \$0-Multi-Band-Filter/peak-0/gain; ++#X connect 72 1 78 0; ++#X connect 78 0 79 0; ++#X msg 790 190 50; ++#X obj 790 210 s \$0-Multi-Band-Filter/peak-1/Q-factor; ++#X connect 52 0 80 0; ++#X connect 80 0 81 0; ++#X obj 1118 190 r \$0-Multi-Band-Filter/peak-1/Q-factor; ++#X msg 1118 210 /Multi-Band-Filter/peak-1/Q-factor \$1; ++#X connect 82 0 83 0; ++#X connect 83 0 53 0; ++#X obj 1446 190 route /Multi-Band-Filter/peak-1/Q-factor; ++#X obj 1446 210 s \$0-Multi-Band-Filter/peak-1/Q-factor; ++#X connect 78 1 84 0; ++#X connect 84 0 85 0; ++#X msg 790 230 2000; ++#X obj 790 250 s \$0-Multi-Band-Filter/peak-1/freq; ++#X connect 52 0 86 0; ++#X connect 86 0 87 0; ++#X obj 1118 230 r \$0-Multi-Band-Filter/peak-1/freq; ++#X msg 1118 250 /Multi-Band-Filter/peak-1/freq \$1; ++#X connect 88 0 89 0; ++#X connect 89 0 53 0; ++#X obj 1446 230 route /Multi-Band-Filter/peak-1/freq; ++#X obj 1446 250 s \$0-Multi-Band-Filter/peak-1/freq; ++#X connect 84 1 90 0; ++#X connect 90 0 91 0; ++#X msg 790 270 0; ++#X obj 790 290 s \$0-Multi-Band-Filter/peak-1/gain; ++#X connect 52 0 92 0; ++#X connect 92 0 93 0; ++#X obj 1118 270 r \$0-Multi-Band-Filter/peak-1/gain; ++#X msg 1118 290 /Multi-Band-Filter/peak-1/gain \$1; ++#X connect 94 0 95 0; ++#X connect 95 0 53 0; ++#X obj 1446 270 route /Multi-Band-Filter/peak-1/gain; ++#X obj 1446 290 s \$0-Multi-Band-Filter/peak-1/gain; ++#X connect 90 1 96 0; ++#X connect 96 0 97 0; ++#X msg 790 310 50; ++#X obj 790 330 s \$0-Multi-Band-Filter/peak-2/Q-factor; ++#X connect 52 0 98 0; ++#X connect 98 0 99 0; ++#X obj 1118 310 r \$0-Multi-Band-Filter/peak-2/Q-factor; ++#X msg 1118 330 /Multi-Band-Filter/peak-2/Q-factor \$1; ++#X connect 100 0 101 0; ++#X connect 101 0 53 0; ++#X obj 1446 310 route /Multi-Band-Filter/peak-2/Q-factor; ++#X obj 1446 330 s \$0-Multi-Band-Filter/peak-2/Q-factor; ++#X connect 96 1 102 0; ++#X connect 102 0 103 0; ++#X msg 790 350 3000; ++#X obj 790 370 s \$0-Multi-Band-Filter/peak-2/freq; ++#X connect 52 0 104 0; ++#X connect 104 0 105 0; ++#X obj 1118 350 r \$0-Multi-Band-Filter/peak-2/freq; ++#X msg 1118 370 /Multi-Band-Filter/peak-2/freq \$1; ++#X connect 106 0 107 0; ++#X connect 107 0 53 0; ++#X obj 1446 350 route /Multi-Band-Filter/peak-2/freq; ++#X obj 1446 370 s \$0-Multi-Band-Filter/peak-2/freq; ++#X connect 102 1 108 0; ++#X connect 108 0 109 0; ++#X msg 790 390 0; ++#X obj 790 410 s \$0-Multi-Band-Filter/peak-2/gain; ++#X connect 52 0 110 0; ++#X connect 110 0 111 0; ++#X obj 1118 390 r \$0-Multi-Band-Filter/peak-2/gain; ++#X msg 1118 410 /Multi-Band-Filter/peak-2/gain \$1; ++#X connect 112 0 113 0; ++#X connect 113 0 53 0; ++#X obj 1446 390 route /Multi-Band-Filter/peak-2/gain; ++#X obj 1446 410 s \$0-Multi-Band-Filter/peak-2/gain; ++#X connect 108 1 114 0; ++#X connect 114 0 115 0; ++#X msg 790 430 50; ++#X obj 790 450 s \$0-Multi-Band-Filter/peak-3/Q-factor; ++#X connect 52 0 116 0; ++#X connect 116 0 117 0; ++#X obj 1118 430 r \$0-Multi-Band-Filter/peak-3/Q-factor; ++#X msg 1118 450 /Multi-Band-Filter/peak-3/Q-factor \$1; ++#X connect 118 0 119 0; ++#X connect 119 0 53 0; ++#X obj 1446 430 route /Multi-Band-Filter/peak-3/Q-factor; ++#X obj 1446 450 s \$0-Multi-Band-Filter/peak-3/Q-factor; ++#X connect 114 1 120 0; ++#X connect 120 0 121 0; ++#X msg 790 470 4000; ++#X obj 790 490 s \$0-Multi-Band-Filter/peak-3/freq; ++#X connect 52 0 122 0; ++#X connect 122 0 123 0; ++#X obj 1118 470 r \$0-Multi-Band-Filter/peak-3/freq; ++#X msg 1118 490 /Multi-Band-Filter/peak-3/freq \$1; ++#X connect 124 0 125 0; ++#X connect 125 0 53 0; ++#X obj 1446 470 route /Multi-Band-Filter/peak-3/freq; ++#X obj 1446 490 s \$0-Multi-Band-Filter/peak-3/freq; ++#X connect 120 1 126 0; ++#X connect 126 0 127 0; ++#X msg 790 510 0; ++#X obj 790 530 s \$0-Multi-Band-Filter/peak-3/gain; ++#X connect 52 0 128 0; ++#X connect 128 0 129 0; ++#X obj 1118 510 r \$0-Multi-Band-Filter/peak-3/gain; ++#X msg 1118 530 /Multi-Band-Filter/peak-3/gain \$1; ++#X connect 130 0 131 0; ++#X connect 131 0 53 0; ++#X obj 1446 510 route /Multi-Band-Filter/peak-3/gain; ++#X obj 1446 530 s \$0-Multi-Band-Filter/peak-3/gain; ++#X connect 126 1 132 0; ++#X connect 132 0 133 0; ++#X msg 790 550 50; ++#X obj 790 570 s \$0-Multi-Band-Filter/peak-4/Q-factor; ++#X connect 52 0 134 0; ++#X connect 134 0 135 0; ++#X obj 1118 550 r \$0-Multi-Band-Filter/peak-4/Q-factor; ++#X msg 1118 570 /Multi-Band-Filter/peak-4/Q-factor \$1; ++#X connect 136 0 137 0; ++#X connect 137 0 53 0; ++#X obj 1446 550 route /Multi-Band-Filter/peak-4/Q-factor; ++#X obj 1446 570 s \$0-Multi-Band-Filter/peak-4/Q-factor; ++#X connect 132 1 138 0; ++#X connect 138 0 139 0; ++#X msg 790 590 5000; ++#X obj 790 610 s \$0-Multi-Band-Filter/peak-4/freq; ++#X connect 52 0 140 0; ++#X connect 140 0 141 0; ++#X obj 1118 590 r \$0-Multi-Band-Filter/peak-4/freq; ++#X msg 1118 610 /Multi-Band-Filter/peak-4/freq \$1; ++#X connect 142 0 143 0; ++#X connect 143 0 53 0; ++#X obj 1446 590 route /Multi-Band-Filter/peak-4/freq; ++#X obj 1446 610 s \$0-Multi-Band-Filter/peak-4/freq; ++#X connect 138 1 144 0; ++#X connect 144 0 145 0; ++#X msg 790 630 0; ++#X obj 790 650 s \$0-Multi-Band-Filter/peak-4/gain; ++#X connect 52 0 146 0; ++#X connect 146 0 147 0; ++#X obj 1118 630 r \$0-Multi-Band-Filter/peak-4/gain; ++#X msg 1118 650 /Multi-Band-Filter/peak-4/gain \$1; ++#X connect 148 0 149 0; ++#X connect 149 0 53 0; ++#X obj 1446 630 route /Multi-Band-Filter/peak-4/gain; ++#X obj 1446 650 s \$0-Multi-Band-Filter/peak-4/gain; ++#X connect 144 1 150 0; ++#X connect 150 0 151 0; ++#X msg 790 670 50; ++#X obj 790 690 s \$0-Multi-Band-Filter/peak-5/Q-factor; ++#X connect 52 0 152 0; ++#X connect 152 0 153 0; ++#X obj 1118 670 r \$0-Multi-Band-Filter/peak-5/Q-factor; ++#X msg 1118 690 /Multi-Band-Filter/peak-5/Q-factor \$1; ++#X connect 154 0 155 0; ++#X connect 155 0 53 0; ++#X obj 1446 670 route /Multi-Band-Filter/peak-5/Q-factor; ++#X obj 1446 690 s \$0-Multi-Band-Filter/peak-5/Q-factor; ++#X connect 150 1 156 0; ++#X connect 156 0 157 0; ++#X msg 790 710 6000; ++#X obj 790 730 s \$0-Multi-Band-Filter/peak-5/freq; ++#X connect 52 0 158 0; ++#X connect 158 0 159 0; ++#X obj 1118 710 r \$0-Multi-Band-Filter/peak-5/freq; ++#X msg 1118 730 /Multi-Band-Filter/peak-5/freq \$1; ++#X connect 160 0 161 0; ++#X connect 161 0 53 0; ++#X obj 1446 710 route /Multi-Band-Filter/peak-5/freq; ++#X obj 1446 730 s \$0-Multi-Band-Filter/peak-5/freq; ++#X connect 156 1 162 0; ++#X connect 162 0 163 0; ++#X msg 790 750 0; ++#X obj 790 770 s \$0-Multi-Band-Filter/peak-5/gain; ++#X connect 52 0 164 0; ++#X connect 164 0 165 0; ++#X obj 1118 750 r \$0-Multi-Band-Filter/peak-5/gain; ++#X msg 1118 770 /Multi-Band-Filter/peak-5/gain \$1; ++#X connect 166 0 167 0; ++#X connect 167 0 53 0; ++#X obj 1446 750 route /Multi-Band-Filter/peak-5/gain; ++#X obj 1446 770 s \$0-Multi-Band-Filter/peak-5/gain; ++#X connect 162 1 168 0; ++#X connect 168 0 169 0; ++#X msg 790 790 50; ++#X obj 790 810 s \$0-Multi-Band-Filter/peak-6/Q-factor; ++#X connect 52 0 170 0; ++#X connect 170 0 171 0; ++#X obj 1118 790 r \$0-Multi-Band-Filter/peak-6/Q-factor; ++#X msg 1118 810 /Multi-Band-Filter/peak-6/Q-factor \$1; ++#X connect 172 0 173 0; ++#X connect 173 0 53 0; ++#X obj 1446 790 route /Multi-Band-Filter/peak-6/Q-factor; ++#X obj 1446 810 s \$0-Multi-Band-Filter/peak-6/Q-factor; ++#X connect 168 1 174 0; ++#X connect 174 0 175 0; ++#X msg 790 830 7000; ++#X obj 790 850 s \$0-Multi-Band-Filter/peak-6/freq; ++#X connect 52 0 176 0; ++#X connect 176 0 177 0; ++#X obj 1118 830 r \$0-Multi-Band-Filter/peak-6/freq; ++#X msg 1118 850 /Multi-Band-Filter/peak-6/freq \$1; ++#X connect 178 0 179 0; ++#X connect 179 0 53 0; ++#X obj 1446 830 route /Multi-Band-Filter/peak-6/freq; ++#X obj 1446 850 s \$0-Multi-Band-Filter/peak-6/freq; ++#X connect 174 1 180 0; ++#X connect 180 0 181 0; ++#X msg 790 870 0; ++#X obj 790 890 s \$0-Multi-Band-Filter/peak-6/gain; ++#X connect 52 0 182 0; ++#X connect 182 0 183 0; ++#X obj 1118 870 r \$0-Multi-Band-Filter/peak-6/gain; ++#X msg 1118 890 /Multi-Band-Filter/peak-6/gain \$1; ++#X connect 184 0 185 0; ++#X connect 185 0 53 0; ++#X obj 1446 870 route /Multi-Band-Filter/peak-6/gain; ++#X obj 1446 890 s \$0-Multi-Band-Filter/peak-6/gain; ++#X connect 180 1 186 0; ++#X connect 186 0 187 0; ++#X msg 790 910 50; ++#X obj 790 930 s \$0-Multi-Band-Filter/peak-7/Q-factor; ++#X connect 52 0 188 0; ++#X connect 188 0 189 0; ++#X obj 1118 910 r \$0-Multi-Band-Filter/peak-7/Q-factor; ++#X msg 1118 930 /Multi-Band-Filter/peak-7/Q-factor \$1; ++#X connect 190 0 191 0; ++#X connect 191 0 53 0; ++#X obj 1446 910 route /Multi-Band-Filter/peak-7/Q-factor; ++#X obj 1446 930 s \$0-Multi-Band-Filter/peak-7/Q-factor; ++#X connect 186 1 192 0; ++#X connect 192 0 193 0; ++#X msg 790 950 8000; ++#X obj 790 970 s \$0-Multi-Band-Filter/peak-7/freq; ++#X connect 52 0 194 0; ++#X connect 194 0 195 0; ++#X obj 1118 950 r \$0-Multi-Band-Filter/peak-7/freq; ++#X msg 1118 970 /Multi-Band-Filter/peak-7/freq \$1; ++#X connect 196 0 197 0; ++#X connect 197 0 53 0; ++#X obj 1446 950 route /Multi-Band-Filter/peak-7/freq; ++#X obj 1446 970 s \$0-Multi-Band-Filter/peak-7/freq; ++#X connect 192 1 198 0; ++#X connect 198 0 199 0; ++#X msg 790 990 0; ++#X obj 790 1010 s \$0-Multi-Band-Filter/peak-7/gain; ++#X connect 52 0 200 0; ++#X connect 200 0 201 0; ++#X obj 1118 990 r \$0-Multi-Band-Filter/peak-7/gain; ++#X msg 1118 1010 /Multi-Band-Filter/peak-7/gain \$1; ++#X connect 202 0 203 0; ++#X connect 203 0 53 0; ++#X obj 1446 990 route /Multi-Band-Filter/peak-7/gain; ++#X obj 1446 1010 s \$0-Multi-Band-Filter/peak-7/gain; ++#X connect 198 1 204 0; ++#X connect 204 0 205 0; ++#X msg 790 1030 50; ++#X obj 790 1050 s \$0-Multi-Band-Filter/peak-8/Q-factor; ++#X connect 52 0 206 0; ++#X connect 206 0 207 0; ++#X obj 1118 1030 r \$0-Multi-Band-Filter/peak-8/Q-factor; ++#X msg 1118 1050 /Multi-Band-Filter/peak-8/Q-factor \$1; ++#X connect 208 0 209 0; ++#X connect 209 0 53 0; ++#X obj 1446 1030 route /Multi-Band-Filter/peak-8/Q-factor; ++#X obj 1446 1050 s \$0-Multi-Band-Filter/peak-8/Q-factor; ++#X connect 204 1 210 0; ++#X connect 210 0 211 0; ++#X msg 790 1070 9000; ++#X obj 790 1090 s \$0-Multi-Band-Filter/peak-8/freq; ++#X connect 52 0 212 0; ++#X connect 212 0 213 0; ++#X obj 1118 1070 r \$0-Multi-Band-Filter/peak-8/freq; ++#X msg 1118 1090 /Multi-Band-Filter/peak-8/freq \$1; ++#X connect 214 0 215 0; ++#X connect 215 0 53 0; ++#X obj 1446 1070 route /Multi-Band-Filter/peak-8/freq; ++#X obj 1446 1090 s \$0-Multi-Band-Filter/peak-8/freq; ++#X connect 210 1 216 0; ++#X connect 216 0 217 0; ++#X msg 790 1110 0; ++#X obj 790 1130 s \$0-Multi-Band-Filter/peak-8/gain; ++#X connect 52 0 218 0; ++#X connect 218 0 219 0; ++#X obj 1118 1110 r \$0-Multi-Band-Filter/peak-8/gain; ++#X msg 1118 1130 /Multi-Band-Filter/peak-8/gain \$1; ++#X connect 220 0 221 0; ++#X connect 221 0 53 0; ++#X obj 1446 1110 route /Multi-Band-Filter/peak-8/gain; ++#X obj 1446 1130 s \$0-Multi-Band-Filter/peak-8/gain; ++#X connect 216 1 222 0; ++#X connect 222 0 223 0; ++#X msg 790 1150 50; ++#X obj 790 1170 s \$0-Multi-Band-Filter/peak-9/Q-factor; ++#X connect 52 0 224 0; ++#X connect 224 0 225 0; ++#X obj 1118 1150 r \$0-Multi-Band-Filter/peak-9/Q-factor; ++#X msg 1118 1170 /Multi-Band-Filter/peak-9/Q-factor \$1; ++#X connect 226 0 227 0; ++#X connect 227 0 53 0; ++#X obj 1446 1150 route /Multi-Band-Filter/peak-9/Q-factor; ++#X obj 1446 1170 s \$0-Multi-Band-Filter/peak-9/Q-factor; ++#X connect 222 1 228 0; ++#X connect 228 0 229 0; ++#X msg 790 1190 10000; ++#X obj 790 1210 s \$0-Multi-Band-Filter/peak-9/freq; ++#X connect 52 0 230 0; ++#X connect 230 0 231 0; ++#X obj 1118 1190 r \$0-Multi-Band-Filter/peak-9/freq; ++#X msg 1118 1210 /Multi-Band-Filter/peak-9/freq \$1; ++#X connect 232 0 233 0; ++#X connect 233 0 53 0; ++#X obj 1446 1190 route /Multi-Band-Filter/peak-9/freq; ++#X obj 1446 1210 s \$0-Multi-Band-Filter/peak-9/freq; ++#X connect 228 1 234 0; ++#X connect 234 0 235 0; ++#X msg 790 1230 0; ++#X obj 790 1250 s \$0-Multi-Band-Filter/peak-9/gain; ++#X connect 52 0 236 0; ++#X connect 236 0 237 0; ++#X obj 1118 1230 r \$0-Multi-Band-Filter/peak-9/gain; ++#X msg 1118 1250 /Multi-Band-Filter/peak-9/gain \$1; ++#X connect 238 0 239 0; ++#X connect 239 0 53 0; ++#X obj 1446 1230 route /Multi-Band-Filter/peak-9/gain; ++#X obj 1446 1250 s \$0-Multi-Band-Filter/peak-9/gain; ++#X connect 234 1 240 0; ++#X connect 240 0 241 0; ++#X coords 0 -1 1 1 760 260 1 0 0; ++#X text 0 280 Generated Tue Jan 16 18:57:54 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/faust/noise2.dsp.xml +@@ -0,0 +1,35 @@ ++ ++ ++ noise ++ Grame ++ (c)GRAME 2006 ++ BSD ++ 1.0 ++ mydsp ++ 0 ++ 1 ++ ++ ++ 1 ++ ++ ++ fVslider0 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/noise2.pd +@@ -0,0 +1,50 @@ ++#N canvas 0 0 450 300 10; ++#X obj 10 270 inlet; ++#X obj 130 270 r \$0-read; ++#X obj 130 300 faust-control \$0; ++#X obj 130 330 s \$0-write; ++#X obj 10 330 r \$0-in; ++#X obj 10 360 noise2~; ++#X obj 10 390 s \$0-out; ++#X obj 70 420 outlet~; ++#X obj 10 420 outlet; ++#X connect 0 0 2 0; ++#X connect 1 0 2 0; ++#X connect 2 0 3 0; ++#X connect 5 0 6 0; ++#X connect 0 0 8 0; ++#X connect 4 0 5 0; ++#X connect 5 1 7 0; ++#X obj 10 30 vsl 15 128 0 1 0 0 \$0-noise2/vol \$0-noise2/vol vol 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 10 170 nbx 5 14 0 1 0 0 \$0-noise2/vol \$0-noise2/vol empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 47 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 67 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 594 10 s \$0-in; ++#X obj 666 10 s \$0-read; ++#X obj 738 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 17 0 18 0; ++#X obj 594 30 r \$0-active; ++#X msg 594 50 active \$1; ++#X connect 19 0 20 0; ++#X connect 20 0 14 0; ++#X obj 738 30 route active; ++#X obj 738 50 s \$0-active; ++#X connect 16 0 21 0; ++#X connect 21 0 22 0; ++#X msg 450 70 0; ++#X obj 450 90 s \$0-noise2/vol; ++#X connect 13 0 23 0; ++#X connect 23 0 24 0; ++#X obj 594 70 r \$0-noise2/vol; ++#X msg 594 90 /noise2/vol \$1; ++#X connect 25 0 26 0; ++#X connect 26 0 14 0; ++#X obj 738 70 route /noise2/vol; ++#X obj 738 90 s \$0-noise2/vol; ++#X connect 21 1 27 0; ++#X connect 27 0 28 0; ++#X coords 0 -1 1 1 85 200 1 0 0; ++#X text 0 220 Generated Tue Jan 16 18:57:55 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/faust/osc2.dsp.xml +@@ -0,0 +1,44 @@ ++ ++ ++ osc ++ Grame ++ (c)GRAME 2006 ++ BSD ++ 1.0 ++ mydsp ++ 0 ++ 1 ++ ++ ++ 2 ++ ++ ++ fHslider1 ++ 1000.0f ++ 0.0f ++ 24000.0f ++ 0.10000000000000001f ++ ++ ++ ++ fHslider0 ++ 0.0f ++ -96.0f ++ 0.0f ++ 0.10000000000000001f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/osc2.pd +@@ -0,0 +1,64 @@ ++#N canvas 0 0 450 300 10; ++#X obj 10 150 inlet; ++#X obj 130 150 r \$0-read; ++#X obj 130 180 faust-control \$0; ++#X obj 130 210 s \$0-write; ++#X obj 10 210 r \$0-in; ++#X obj 10 240 osc2~; ++#X obj 10 270 s \$0-out; ++#X obj 70 300 outlet~; ++#X obj 10 300 outlet; ++#X connect 0 0 2 0; ++#X connect 1 0 2 0; ++#X connect 2 0 3 0; ++#X connect 5 0 6 0; ++#X connect 0 0 8 0; ++#X connect 4 0 5 0; ++#X connect 5 1 7 0; ++#X obj 10 30 hsl 128 15 0 24000 0 0 \$0-Oscillator/freq \$0-Oscillator/freq freq -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 0 24000 0 0 \$0-Oscillator/freq \$0-Oscillator/freq empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 -96 0 0 0 \$0-Oscillator/volume-db \$0-Oscillator/volume-db volume-db -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 -96 0 0 0 \$0-Oscillator/volume-db \$0-Oscillator/volume-db empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 674 10 s \$0-in; ++#X obj 786 10 s \$0-read; ++#X obj 898 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 19 0 20 0; ++#X obj 674 30 r \$0-active; ++#X msg 674 50 active \$1; ++#X connect 21 0 22 0; ++#X connect 22 0 16 0; ++#X obj 898 30 route active; ++#X obj 898 50 s \$0-active; ++#X connect 18 0 23 0; ++#X connect 23 0 24 0; ++#X msg 450 70 1000; ++#X obj 450 90 s \$0-Oscillator/freq; ++#X connect 15 0 25 0; ++#X connect 25 0 26 0; ++#X obj 674 70 r \$0-Oscillator/freq; ++#X msg 674 90 /Oscillator/freq \$1; ++#X connect 27 0 28 0; ++#X connect 28 0 16 0; ++#X obj 898 70 route /Oscillator/freq; ++#X obj 898 90 s \$0-Oscillator/freq; ++#X connect 23 1 29 0; ++#X connect 29 0 30 0; ++#X msg 450 110 0; ++#X obj 450 130 s \$0-Oscillator/volume-db; ++#X connect 15 0 31 0; ++#X connect 31 0 32 0; ++#X obj 674 110 r \$0-Oscillator/volume-db; ++#X msg 674 130 /Oscillator/volume-db \$1; ++#X connect 33 0 34 0; ++#X connect 34 0 16 0; ++#X obj 898 110 route /Oscillator/volume-db; ++#X obj 898 130 s \$0-Oscillator/volume-db; ++#X connect 29 1 35 0; ++#X connect 35 0 36 0; ++#X coords 0 -1 1 1 235 80 1 0 0; ++#X text 0 100 Generated Tue Jan 16 18:57:54 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/faust/osci.dsp.xml +@@ -0,0 +1,44 @@ ++ ++ ++ osci ++ Grame ++ (c)GRAME 2009 ++ BSD ++ 1.0 ++ mydsp ++ 0 ++ 1 ++ ++ ++ 2 ++ ++ ++ fHslider1 ++ 1000.0f ++ 20.0f ++ 24000.0f ++ 1.0f ++ ++ ++ ++ fHslider0 ++ 0.0f ++ -96.0f ++ 0.0f ++ 0.10000000000000001f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/osci.pd +@@ -0,0 +1,64 @@ ++#N canvas 0 0 450 300 10; ++#X obj 10 150 inlet; ++#X obj 130 150 r \$0-read; ++#X obj 130 180 faust-control \$0; ++#X obj 130 210 s \$0-write; ++#X obj 10 210 r \$0-in; ++#X obj 10 240 osci~; ++#X obj 10 270 s \$0-out; ++#X obj 70 300 outlet~; ++#X obj 10 300 outlet; ++#X connect 0 0 2 0; ++#X connect 1 0 2 0; ++#X connect 2 0 3 0; ++#X connect 5 0 6 0; ++#X connect 0 0 8 0; ++#X connect 4 0 5 0; ++#X connect 5 1 7 0; ++#X obj 10 30 hsl 128 15 20 24000 0 0 \$0-Oscillator/freq \$0-Oscillator/freq freq -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 20 24000 0 0 \$0-Oscillator/freq \$0-Oscillator/freq empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 -96 0 0 0 \$0-Oscillator/volume \$0-Oscillator/volume volume -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 -96 0 0 0 \$0-Oscillator/volume \$0-Oscillator/volume empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 650 10 s \$0-in; ++#X obj 750 10 s \$0-read; ++#X obj 850 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 19 0 20 0; ++#X obj 650 30 r \$0-active; ++#X msg 650 50 active \$1; ++#X connect 21 0 22 0; ++#X connect 22 0 16 0; ++#X obj 850 30 route active; ++#X obj 850 50 s \$0-active; ++#X connect 18 0 23 0; ++#X connect 23 0 24 0; ++#X msg 450 70 1000; ++#X obj 450 90 s \$0-Oscillator/freq; ++#X connect 15 0 25 0; ++#X connect 25 0 26 0; ++#X obj 650 70 r \$0-Oscillator/freq; ++#X msg 650 90 /Oscillator/freq \$1; ++#X connect 27 0 28 0; ++#X connect 28 0 16 0; ++#X obj 850 70 route /Oscillator/freq; ++#X obj 850 90 s \$0-Oscillator/freq; ++#X connect 23 1 29 0; ++#X connect 29 0 30 0; ++#X msg 450 110 0; ++#X obj 450 130 s \$0-Oscillator/volume; ++#X connect 15 0 31 0; ++#X connect 31 0 32 0; ++#X obj 650 110 r \$0-Oscillator/volume; ++#X msg 650 130 /Oscillator/volume \$1; ++#X connect 33 0 34 0; ++#X connect 34 0 16 0; ++#X obj 850 110 route /Oscillator/volume; ++#X obj 850 130 s \$0-Oscillator/volume; ++#X connect 29 1 35 0; ++#X connect 35 0 36 0; ++#X coords 0 -1 1 1 235 80 1 0 0; ++#X text 0 100 Generated Tue Jan 16 18:57:54 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/faust/panpot.dsp.xml +@@ -0,0 +1,35 @@ ++ ++ ++ panpot ++ Grame ++ (c)GRAME 2006 ++ BSD ++ 1.0 ++ mydsp ++ 1 ++ 2 ++ ++ ++ 1 ++ ++ ++ fEntry0 ++ 0.0f ++ -90.0f ++ 90.0f ++ 1.0f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/panpot.pd +@@ -0,0 +1,53 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 120 inlet~; ++#X obj 10 120 inlet; ++#X obj 130 120 r \$0-read; ++#X obj 130 150 faust-control \$0; ++#X obj 130 180 s \$0-write; ++#X obj 10 180 r \$0-in; ++#X obj 10 210 panpot~; ++#X obj 10 240 s \$0-out; ++#X obj 70 270 outlet~; ++#X obj 130 270 outlet~; ++#X obj 10 270 outlet; ++#X connect 1 0 3 0; ++#X connect 2 0 3 0; ++#X connect 3 0 4 0; ++#X connect 6 0 7 0; ++#X connect 1 0 10 0; ++#X connect 5 0 6 0; ++#X connect 0 0 6 1; ++#X connect 6 1 8 0; ++#X connect 6 2 9 0; ++#X obj 10 30 nbx 5 14 -90 90 0 0 \$0-panpot/pan \$0-panpot/pan pan 0 -6 0 10 -262144 -1 -1 256; ++#X obj 47 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 67 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 594 10 s \$0-in; ++#X obj 666 10 s \$0-read; ++#X obj 738 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 18 0 19 0; ++#X obj 594 30 r \$0-active; ++#X msg 594 50 active \$1; ++#X connect 20 0 21 0; ++#X connect 21 0 15 0; ++#X obj 738 30 route active; ++#X obj 738 50 s \$0-active; ++#X connect 17 0 22 0; ++#X connect 22 0 23 0; ++#X msg 450 70 0; ++#X obj 450 90 s \$0-panpot/pan; ++#X connect 14 0 24 0; ++#X connect 24 0 25 0; ++#X obj 594 70 r \$0-panpot/pan; ++#X msg 594 90 /panpot/pan \$1; ++#X connect 26 0 27 0; ++#X connect 27 0 15 0; ++#X obj 738 70 route /panpot/pan; ++#X obj 738 90 s \$0-panpot/pan; ++#X connect 22 1 28 0; ++#X connect 28 0 29 0; ++#X coords 0 -1 1 1 85 50 1 0 0; ++#X text 0 70 Generated Tue Jan 16 18:57:55 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/faust/pitch_shifter.dsp.xml +@@ -0,0 +1,53 @@ ++ ++ ++ pitch-shifter ++ Grame ++ (c)GRAME 2006 ++ BSD ++ 1.0 ++ mydsp ++ 1 ++ 1 ++ ++ ++ 3 ++ ++ ++ fHslider1 ++ 0.0f ++ -12.0f ++ 12.0f ++ 0.10000000000000001f ++ ++ ++ ++ fHslider0 ++ 1000.0f ++ 50.0f ++ 10000.0f ++ 1.0f ++ ++ ++ ++ fHslider2 ++ 10.0f ++ 1.0f ++ 10000.0f ++ 1.0f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/pitch_shifter.pd +@@ -0,0 +1,80 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 180 inlet~; ++#X obj 10 180 inlet; ++#X obj 130 180 r \$0-read; ++#X obj 130 210 faust-control \$0; ++#X obj 130 240 s \$0-write; ++#X obj 10 240 r \$0-in; ++#X obj 10 270 pitch_shifter~; ++#X obj 10 300 s \$0-out; ++#X obj 70 330 outlet~; ++#X obj 10 330 outlet; ++#X connect 1 0 3 0; ++#X connect 2 0 3 0; ++#X connect 3 0 4 0; ++#X connect 6 0 7 0; ++#X connect 1 0 9 0; ++#X connect 5 0 6 0; ++#X connect 0 0 6 1; ++#X connect 6 1 8 0; ++#X obj 10 30 hsl 128 15 -12 12 0 0 \$0-Pitch-Shifter/shift-semitones \$0-Pitch-Shifter/shift-semitones shift-semitones -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 -12 12 0 0 \$0-Pitch-Shifter/shift-semitones \$0-Pitch-Shifter/shift-semitones empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 50 10000 0 0 \$0-Pitch-Shifter/window-samples \$0-Pitch-Shifter/window-samples window-samples -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 50 10000 0 0 \$0-Pitch-Shifter/window-samples \$0-Pitch-Shifter/window-samples empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 hsl 128 15 1 10000 0 0 \$0-Pitch-Shifter/xfade-samples \$0-Pitch-Shifter/xfade-samples xfade-samples -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 90 nbx 5 14 1 10000 0 0 \$0-Pitch-Shifter/xfade-samples \$0-Pitch-Shifter/xfade-samples empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 746 10 s \$0-in; ++#X obj 894 10 s \$0-read; ++#X obj 1042 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 22 0 23 0; ++#X obj 746 30 r \$0-active; ++#X msg 746 50 active \$1; ++#X connect 24 0 25 0; ++#X connect 25 0 19 0; ++#X obj 1042 30 route active; ++#X obj 1042 50 s \$0-active; ++#X connect 21 0 26 0; ++#X connect 26 0 27 0; ++#X msg 450 70 0; ++#X obj 450 90 s \$0-Pitch-Shifter/shift-semitones; ++#X connect 18 0 28 0; ++#X connect 28 0 29 0; ++#X obj 746 70 r \$0-Pitch-Shifter/shift-semitones; ++#X msg 746 90 /Pitch-Shifter/shift-semitones \$1; ++#X connect 30 0 31 0; ++#X connect 31 0 19 0; ++#X obj 1042 70 route /Pitch-Shifter/shift-semitones; ++#X obj 1042 90 s \$0-Pitch-Shifter/shift-semitones; ++#X connect 26 1 32 0; ++#X connect 32 0 33 0; ++#X msg 450 110 1000; ++#X obj 450 130 s \$0-Pitch-Shifter/window-samples; ++#X connect 18 0 34 0; ++#X connect 34 0 35 0; ++#X obj 746 110 r \$0-Pitch-Shifter/window-samples; ++#X msg 746 130 /Pitch-Shifter/window-samples \$1; ++#X connect 36 0 37 0; ++#X connect 37 0 19 0; ++#X obj 1042 110 route /Pitch-Shifter/window-samples; ++#X obj 1042 130 s \$0-Pitch-Shifter/window-samples; ++#X connect 32 1 38 0; ++#X connect 38 0 39 0; ++#X msg 450 150 10; ++#X obj 450 170 s \$0-Pitch-Shifter/xfade-samples; ++#X connect 18 0 40 0; ++#X connect 40 0 41 0; ++#X obj 746 150 r \$0-Pitch-Shifter/xfade-samples; ++#X msg 746 170 /Pitch-Shifter/xfade-samples \$1; ++#X connect 42 0 43 0; ++#X connect 43 0 19 0; ++#X obj 1042 150 route /Pitch-Shifter/xfade-samples; ++#X obj 1042 170 s \$0-Pitch-Shifter/xfade-samples; ++#X connect 38 1 44 0; ++#X connect 44 0 45 0; ++#X coords 0 -1 1 1 235 110 1 0 0; ++#X text 0 130 Generated Tue Jan 16 18:57:55 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/faust/spat.dsp.xml +@@ -0,0 +1,44 @@ ++ ++ ++ spat ++ Grame ++ (c)GRAME 2006 ++ BSD ++ 1.0 ++ mydsp ++ 1 ++ 8 ++ ++ ++ 2 ++ ++ ++ fHslider0 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.01f ++ ++ ++ ++ fHslider1 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.01f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/spat.pd +@@ -0,0 +1,80 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 150 inlet~; ++#X obj 10 150 inlet; ++#X obj 130 150 r \$0-read; ++#X obj 130 180 faust-control \$0; ++#X obj 130 210 s \$0-write; ++#X obj 10 210 r \$0-in; ++#X obj 10 240 spat~; ++#X obj 10 270 s \$0-out; ++#X obj 70 300 outlet~; ++#X obj 130 300 outlet~; ++#X obj 190 300 outlet~; ++#X obj 250 300 outlet~; ++#X obj 310 300 outlet~; ++#X obj 370 300 outlet~; ++#X obj 430 300 outlet~; ++#X obj 490 300 outlet~; ++#X obj 10 300 outlet; ++#X connect 1 0 3 0; ++#X connect 2 0 3 0; ++#X connect 3 0 4 0; ++#X connect 6 0 7 0; ++#X connect 1 0 16 0; ++#X connect 5 0 6 0; ++#X connect 0 0 6 1; ++#X connect 6 1 8 0; ++#X connect 6 2 9 0; ++#X connect 6 3 10 0; ++#X connect 6 4 11 0; ++#X connect 6 5 12 0; ++#X connect 6 6 13 0; ++#X connect 6 7 14 0; ++#X connect 6 8 15 0; ++#X obj 10 30 hsl 128 15 0 1 0 0 \$0-Spatializer-1x8/angle \$0-Spatializer-1x8/angle angle -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 0 1 0 0 \$0-Spatializer-1x8/angle \$0-Spatializer-1x8/angle empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 0 1 0 0 \$0-Spatializer-1x8/distance \$0-Spatializer-1x8/distance distance -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 0 1 0 0 \$0-Spatializer-1x8/distance \$0-Spatializer-1x8/distance empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 706 10 s \$0-in; ++#X obj 834 10 s \$0-read; ++#X obj 962 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 27 0 28 0; ++#X obj 706 30 r \$0-active; ++#X msg 706 50 active \$1; ++#X connect 29 0 30 0; ++#X connect 30 0 24 0; ++#X obj 962 30 route active; ++#X obj 962 50 s \$0-active; ++#X connect 26 0 31 0; ++#X connect 31 0 32 0; ++#X msg 450 70 0; ++#X obj 450 90 s \$0-Spatializer-1x8/angle; ++#X connect 23 0 33 0; ++#X connect 33 0 34 0; ++#X obj 706 70 r \$0-Spatializer-1x8/angle; ++#X msg 706 90 /Spatializer-1x8/angle \$1; ++#X connect 35 0 36 0; ++#X connect 36 0 24 0; ++#X obj 962 70 route /Spatializer-1x8/angle; ++#X obj 962 90 s \$0-Spatializer-1x8/angle; ++#X connect 31 1 37 0; ++#X connect 37 0 38 0; ++#X msg 450 110 0.5; ++#X obj 450 130 s \$0-Spatializer-1x8/distance; ++#X connect 23 0 39 0; ++#X connect 39 0 40 0; ++#X obj 706 110 r \$0-Spatializer-1x8/distance; ++#X msg 706 130 /Spatializer-1x8/distance \$1; ++#X connect 41 0 42 0; ++#X connect 42 0 24 0; ++#X obj 962 110 route /Spatializer-1x8/distance; ++#X obj 962 130 s \$0-Spatializer-1x8/distance; ++#X connect 37 1 43 0; ++#X connect 43 0 44 0; ++#X coords 0 -1 1 1 235 80 1 0 0; ++#X text 0 100 Generated Tue Jan 16 18:57:55 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/faust/tapiir.dsp.xml +@@ -0,0 +1,758 @@ ++ ++ ++ tapiir ++ Grame ++ (c)GRAME 2006 ++ BSD ++ 1.0 ++ mydsp ++ 2 ++ 2 ++ ++ ++ 78 ++ ++ ++ fVslider11 ++ 0.0f ++ 0.0f ++ 5.0f ++ 0.01f ++ ++ ++ ++ fVslider2 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider9 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider10 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider3 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider4 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider5 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider6 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider7 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider8 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider21 ++ 0.0f ++ 0.0f ++ 5.0f ++ 0.01f ++ ++ ++ ++ fVslider12 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider19 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider20 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider13 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider14 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider15 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider16 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider17 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider18 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider31 ++ 0.0f ++ 0.0f ++ 5.0f ++ 0.01f ++ ++ ++ ++ fVslider22 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider29 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider30 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider23 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider24 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider25 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider26 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider27 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider28 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider41 ++ 0.0f ++ 0.0f ++ 5.0f ++ 0.01f ++ ++ ++ ++ fVslider32 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider39 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider40 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider33 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider34 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider35 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider36 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider37 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider38 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider51 ++ 0.0f ++ 0.0f ++ 5.0f ++ 0.01f ++ ++ ++ ++ fVslider42 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider49 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider50 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider43 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider44 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider45 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider46 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider47 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider48 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider61 ++ 0.0f ++ 0.0f ++ 5.0f ++ 0.01f ++ ++ ++ ++ fVslider52 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider59 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider60 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider53 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider54 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider55 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider56 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider57 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider58 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider0 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider67 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider68 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider1 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider62 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider63 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider64 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider65 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider66 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider69 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider76 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider77 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider70 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider71 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider72 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider73 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider74 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ fVslider75 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.10000000000000001f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/tapiir.pd +@@ -0,0 +1,1134 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 630 inlet~; ++#X obj 130 630 inlet~; ++#X obj 10 630 inlet; ++#X obj 190 630 r \$0-read; ++#X obj 190 660 faust-control \$0; ++#X obj 190 690 s \$0-write; ++#X obj 10 690 r \$0-in; ++#X obj 10 720 tapiir~; ++#X obj 10 750 s \$0-out; ++#X obj 70 780 outlet~; ++#X obj 130 780 outlet~; ++#X obj 10 780 outlet; ++#X connect 2 0 4 0; ++#X connect 3 0 4 0; ++#X connect 4 0 5 0; ++#X connect 7 0 8 0; ++#X connect 2 0 11 0; ++#X connect 6 0 7 0; ++#X connect 0 0 7 1; ++#X connect 1 0 7 2; ++#X connect 7 1 9 0; ++#X connect 7 2 10 0; ++#X obj 10 30 vsl 15 128 0 5 0 0 \$0-Tapiir/0x00/Tap-0/delay-sec \$0-Tapiir/0x00/Tap-0/delay-sec delay-sec 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 10 170 nbx 5 14 0 5 0 0 \$0-Tapiir/0x00/Tap-0/delay-sec \$0-Tapiir/0x00/Tap-0/delay-sec empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 85 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-0/gain \$0-Tapiir/0x00/Tap-0/gain gain 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 85 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-0/gain \$0-Tapiir/0x00/Tap-0/gain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 160 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-0/input-0 \$0-Tapiir/0x00/Tap-0/input-0 input-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 160 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-0/input-0 \$0-Tapiir/0x00/Tap-0/input-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 235 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-0/input-1 \$0-Tapiir/0x00/Tap-0/input-1 input-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 235 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-0/input-1 \$0-Tapiir/0x00/Tap-0/input-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 310 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-0/tap-0 \$0-Tapiir/0x00/Tap-0/tap-0 tap-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 310 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-0/tap-0 \$0-Tapiir/0x00/Tap-0/tap-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 385 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-0/tap-1 \$0-Tapiir/0x00/Tap-0/tap-1 tap-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 385 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-0/tap-1 \$0-Tapiir/0x00/Tap-0/tap-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 460 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-0/tap-2 \$0-Tapiir/0x00/Tap-0/tap-2 tap-2 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 460 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-0/tap-2 \$0-Tapiir/0x00/Tap-0/tap-2 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 535 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-0/tap-3 \$0-Tapiir/0x00/Tap-0/tap-3 tap-3 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 535 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-0/tap-3 \$0-Tapiir/0x00/Tap-0/tap-3 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 610 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-0/tap-4 \$0-Tapiir/0x00/Tap-0/tap-4 tap-4 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 610 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-0/tap-4 \$0-Tapiir/0x00/Tap-0/tap-4 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 685 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-0/tap-5 \$0-Tapiir/0x00/Tap-0/tap-5 tap-5 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 685 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-0/tap-5 \$0-Tapiir/0x00/Tap-0/tap-5 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 760 30 vsl 15 128 0 5 0 0 \$0-Tapiir/0x00/Tap-1/delay-sec \$0-Tapiir/0x00/Tap-1/delay-sec delay-sec 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 760 170 nbx 5 14 0 5 0 0 \$0-Tapiir/0x00/Tap-1/delay-sec \$0-Tapiir/0x00/Tap-1/delay-sec empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 835 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-1/gain \$0-Tapiir/0x00/Tap-1/gain gain 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 835 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-1/gain \$0-Tapiir/0x00/Tap-1/gain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 910 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-1/input-0 \$0-Tapiir/0x00/Tap-1/input-0 input-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 910 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-1/input-0 \$0-Tapiir/0x00/Tap-1/input-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 985 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-1/input-1 \$0-Tapiir/0x00/Tap-1/input-1 input-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 985 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-1/input-1 \$0-Tapiir/0x00/Tap-1/input-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1060 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-1/tap-0 \$0-Tapiir/0x00/Tap-1/tap-0 tap-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1060 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-1/tap-0 \$0-Tapiir/0x00/Tap-1/tap-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1135 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-1/tap-1 \$0-Tapiir/0x00/Tap-1/tap-1 tap-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1135 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-1/tap-1 \$0-Tapiir/0x00/Tap-1/tap-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1210 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-1/tap-2 \$0-Tapiir/0x00/Tap-1/tap-2 tap-2 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1210 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-1/tap-2 \$0-Tapiir/0x00/Tap-1/tap-2 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1285 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-1/tap-3 \$0-Tapiir/0x00/Tap-1/tap-3 tap-3 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1285 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-1/tap-3 \$0-Tapiir/0x00/Tap-1/tap-3 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1360 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-1/tap-4 \$0-Tapiir/0x00/Tap-1/tap-4 tap-4 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1360 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-1/tap-4 \$0-Tapiir/0x00/Tap-1/tap-4 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1435 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-1/tap-5 \$0-Tapiir/0x00/Tap-1/tap-5 tap-5 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1435 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-1/tap-5 \$0-Tapiir/0x00/Tap-1/tap-5 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1510 30 vsl 15 128 0 5 0 0 \$0-Tapiir/0x00/Tap-2/delay-sec \$0-Tapiir/0x00/Tap-2/delay-sec delay-sec 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1510 170 nbx 5 14 0 5 0 0 \$0-Tapiir/0x00/Tap-2/delay-sec \$0-Tapiir/0x00/Tap-2/delay-sec empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1585 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-2/gain \$0-Tapiir/0x00/Tap-2/gain gain 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1585 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-2/gain \$0-Tapiir/0x00/Tap-2/gain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1660 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-2/input-0 \$0-Tapiir/0x00/Tap-2/input-0 input-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1660 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-2/input-0 \$0-Tapiir/0x00/Tap-2/input-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1735 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-2/input-1 \$0-Tapiir/0x00/Tap-2/input-1 input-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1735 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-2/input-1 \$0-Tapiir/0x00/Tap-2/input-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1810 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-2/tap-0 \$0-Tapiir/0x00/Tap-2/tap-0 tap-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1810 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-2/tap-0 \$0-Tapiir/0x00/Tap-2/tap-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1885 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-2/tap-1 \$0-Tapiir/0x00/Tap-2/tap-1 tap-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1885 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-2/tap-1 \$0-Tapiir/0x00/Tap-2/tap-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 1960 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-2/tap-2 \$0-Tapiir/0x00/Tap-2/tap-2 tap-2 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 1960 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-2/tap-2 \$0-Tapiir/0x00/Tap-2/tap-2 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2035 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-2/tap-3 \$0-Tapiir/0x00/Tap-2/tap-3 tap-3 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2035 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-2/tap-3 \$0-Tapiir/0x00/Tap-2/tap-3 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2110 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-2/tap-4 \$0-Tapiir/0x00/Tap-2/tap-4 tap-4 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2110 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-2/tap-4 \$0-Tapiir/0x00/Tap-2/tap-4 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2185 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-2/tap-5 \$0-Tapiir/0x00/Tap-2/tap-5 tap-5 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2185 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-2/tap-5 \$0-Tapiir/0x00/Tap-2/tap-5 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2260 30 vsl 15 128 0 5 0 0 \$0-Tapiir/0x00/Tap-3/delay-sec \$0-Tapiir/0x00/Tap-3/delay-sec delay-sec 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2260 170 nbx 5 14 0 5 0 0 \$0-Tapiir/0x00/Tap-3/delay-sec \$0-Tapiir/0x00/Tap-3/delay-sec empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2335 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-3/gain \$0-Tapiir/0x00/Tap-3/gain gain 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2335 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-3/gain \$0-Tapiir/0x00/Tap-3/gain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2410 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-3/input-0 \$0-Tapiir/0x00/Tap-3/input-0 input-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2410 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-3/input-0 \$0-Tapiir/0x00/Tap-3/input-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2485 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-3/input-1 \$0-Tapiir/0x00/Tap-3/input-1 input-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2485 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-3/input-1 \$0-Tapiir/0x00/Tap-3/input-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2560 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-3/tap-0 \$0-Tapiir/0x00/Tap-3/tap-0 tap-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2560 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-3/tap-0 \$0-Tapiir/0x00/Tap-3/tap-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2635 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-3/tap-1 \$0-Tapiir/0x00/Tap-3/tap-1 tap-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2635 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-3/tap-1 \$0-Tapiir/0x00/Tap-3/tap-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2710 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-3/tap-2 \$0-Tapiir/0x00/Tap-3/tap-2 tap-2 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2710 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-3/tap-2 \$0-Tapiir/0x00/Tap-3/tap-2 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2785 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-3/tap-3 \$0-Tapiir/0x00/Tap-3/tap-3 tap-3 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2785 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-3/tap-3 \$0-Tapiir/0x00/Tap-3/tap-3 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2860 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-3/tap-4 \$0-Tapiir/0x00/Tap-3/tap-4 tap-4 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2860 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-3/tap-4 \$0-Tapiir/0x00/Tap-3/tap-4 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 2935 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-3/tap-5 \$0-Tapiir/0x00/Tap-3/tap-5 tap-5 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 2935 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-3/tap-5 \$0-Tapiir/0x00/Tap-3/tap-5 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3010 30 vsl 15 128 0 5 0 0 \$0-Tapiir/0x00/Tap-4/delay-sec \$0-Tapiir/0x00/Tap-4/delay-sec delay-sec 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3010 170 nbx 5 14 0 5 0 0 \$0-Tapiir/0x00/Tap-4/delay-sec \$0-Tapiir/0x00/Tap-4/delay-sec empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3085 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-4/gain \$0-Tapiir/0x00/Tap-4/gain gain 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3085 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-4/gain \$0-Tapiir/0x00/Tap-4/gain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3160 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-4/input-0 \$0-Tapiir/0x00/Tap-4/input-0 input-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3160 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-4/input-0 \$0-Tapiir/0x00/Tap-4/input-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3235 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-4/input-1 \$0-Tapiir/0x00/Tap-4/input-1 input-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3235 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-4/input-1 \$0-Tapiir/0x00/Tap-4/input-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3310 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-4/tap-0 \$0-Tapiir/0x00/Tap-4/tap-0 tap-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3310 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-4/tap-0 \$0-Tapiir/0x00/Tap-4/tap-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3385 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-4/tap-1 \$0-Tapiir/0x00/Tap-4/tap-1 tap-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3385 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-4/tap-1 \$0-Tapiir/0x00/Tap-4/tap-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3460 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-4/tap-2 \$0-Tapiir/0x00/Tap-4/tap-2 tap-2 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3460 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-4/tap-2 \$0-Tapiir/0x00/Tap-4/tap-2 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3535 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-4/tap-3 \$0-Tapiir/0x00/Tap-4/tap-3 tap-3 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3535 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-4/tap-3 \$0-Tapiir/0x00/Tap-4/tap-3 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3610 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-4/tap-4 \$0-Tapiir/0x00/Tap-4/tap-4 tap-4 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3610 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-4/tap-4 \$0-Tapiir/0x00/Tap-4/tap-4 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3685 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-4/tap-5 \$0-Tapiir/0x00/Tap-4/tap-5 tap-5 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3685 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-4/tap-5 \$0-Tapiir/0x00/Tap-4/tap-5 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3760 30 vsl 15 128 0 5 0 0 \$0-Tapiir/0x00/Tap-5/delay-sec \$0-Tapiir/0x00/Tap-5/delay-sec delay-sec 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3760 170 nbx 5 14 0 5 0 0 \$0-Tapiir/0x00/Tap-5/delay-sec \$0-Tapiir/0x00/Tap-5/delay-sec empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3835 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-5/gain \$0-Tapiir/0x00/Tap-5/gain gain 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3835 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-5/gain \$0-Tapiir/0x00/Tap-5/gain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3910 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-5/input-0 \$0-Tapiir/0x00/Tap-5/input-0 input-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3910 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-5/input-0 \$0-Tapiir/0x00/Tap-5/input-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 3985 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-5/input-1 \$0-Tapiir/0x00/Tap-5/input-1 input-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 3985 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-5/input-1 \$0-Tapiir/0x00/Tap-5/input-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 4060 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-5/tap-0 \$0-Tapiir/0x00/Tap-5/tap-0 tap-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 4060 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-5/tap-0 \$0-Tapiir/0x00/Tap-5/tap-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 4135 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-5/tap-1 \$0-Tapiir/0x00/Tap-5/tap-1 tap-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 4135 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-5/tap-1 \$0-Tapiir/0x00/Tap-5/tap-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 4210 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-5/tap-2 \$0-Tapiir/0x00/Tap-5/tap-2 tap-2 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 4210 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-5/tap-2 \$0-Tapiir/0x00/Tap-5/tap-2 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 4285 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-5/tap-3 \$0-Tapiir/0x00/Tap-5/tap-3 tap-3 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 4285 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-5/tap-3 \$0-Tapiir/0x00/Tap-5/tap-3 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 4360 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-5/tap-4 \$0-Tapiir/0x00/Tap-5/tap-4 tap-4 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 4360 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-5/tap-4 \$0-Tapiir/0x00/Tap-5/tap-4 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 4435 30 vsl 15 128 0 1 0 0 \$0-Tapiir/0x00/Tap-5/tap-5 \$0-Tapiir/0x00/Tap-5/tap-5 tap-5 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 4435 170 nbx 5 14 0 1 0 0 \$0-Tapiir/0x00/Tap-5/tap-5 \$0-Tapiir/0x00/Tap-5/tap-5 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 210 vsl 15 128 0 1 0 0 \$0-Tapiir/outputs/output-0/gain \$0-Tapiir/outputs/output-0/gain gain 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 10 350 nbx 5 14 0 1 0 0 \$0-Tapiir/outputs/output-0/gain \$0-Tapiir/outputs/output-0/gain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 85 210 vsl 15 128 0 1 0 0 \$0-Tapiir/outputs/output-0/input-0 \$0-Tapiir/outputs/output-0/input-0 input-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 85 350 nbx 5 14 0 1 0 0 \$0-Tapiir/outputs/output-0/input-0 \$0-Tapiir/outputs/output-0/input-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 160 210 vsl 15 128 0 1 0 0 \$0-Tapiir/outputs/output-0/input-1 \$0-Tapiir/outputs/output-0/input-1 input-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 160 350 nbx 5 14 0 1 0 0 \$0-Tapiir/outputs/output-0/input-1 \$0-Tapiir/outputs/output-0/input-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 235 210 vsl 15 128 0 1 0 0 \$0-Tapiir/outputs/output-0/tap-0 \$0-Tapiir/outputs/output-0/tap-0 tap-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 235 350 nbx 5 14 0 1 0 0 \$0-Tapiir/outputs/output-0/tap-0 \$0-Tapiir/outputs/output-0/tap-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 310 210 vsl 15 128 0 1 0 0 \$0-Tapiir/outputs/output-0/tap-1 \$0-Tapiir/outputs/output-0/tap-1 tap-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 310 350 nbx 5 14 0 1 0 0 \$0-Tapiir/outputs/output-0/tap-1 \$0-Tapiir/outputs/output-0/tap-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 385 210 vsl 15 128 0 1 0 0 \$0-Tapiir/outputs/output-0/tap-2 \$0-Tapiir/outputs/output-0/tap-2 tap-2 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 385 350 nbx 5 14 0 1 0 0 \$0-Tapiir/outputs/output-0/tap-2 \$0-Tapiir/outputs/output-0/tap-2 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 460 210 vsl 15 128 0 1 0 0 \$0-Tapiir/outputs/output-0/tap-3 \$0-Tapiir/outputs/output-0/tap-3 tap-3 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 460 350 nbx 5 14 0 1 0 0 \$0-Tapiir/outputs/output-0/tap-3 \$0-Tapiir/outputs/output-0/tap-3 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 535 210 vsl 15 128 0 1 0 0 \$0-Tapiir/outputs/output-0/tap-4 \$0-Tapiir/outputs/output-0/tap-4 tap-4 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 535 350 nbx 5 14 0 1 0 0 \$0-Tapiir/outputs/output-0/tap-4 \$0-Tapiir/outputs/output-0/tap-4 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 610 210 vsl 15 128 0 1 0 0 \$0-Tapiir/outputs/output-0/tap-5 \$0-Tapiir/outputs/output-0/tap-5 tap-5 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 610 350 nbx 5 14 0 1 0 0 \$0-Tapiir/outputs/output-0/tap-5 \$0-Tapiir/outputs/output-0/tap-5 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 390 vsl 15 128 0 1 0 0 \$0-Tapiir/outputs/output-1/gain \$0-Tapiir/outputs/output-1/gain gain 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 10 530 nbx 5 14 0 1 0 0 \$0-Tapiir/outputs/output-1/gain \$0-Tapiir/outputs/output-1/gain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 85 390 vsl 15 128 0 1 0 0 \$0-Tapiir/outputs/output-1/input-0 \$0-Tapiir/outputs/output-1/input-0 input-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 85 530 nbx 5 14 0 1 0 0 \$0-Tapiir/outputs/output-1/input-0 \$0-Tapiir/outputs/output-1/input-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 160 390 vsl 15 128 0 1 0 0 \$0-Tapiir/outputs/output-1/input-1 \$0-Tapiir/outputs/output-1/input-1 input-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 160 530 nbx 5 14 0 1 0 0 \$0-Tapiir/outputs/output-1/input-1 \$0-Tapiir/outputs/output-1/input-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 235 390 vsl 15 128 0 1 0 0 \$0-Tapiir/outputs/output-1/tap-0 \$0-Tapiir/outputs/output-1/tap-0 tap-0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 235 530 nbx 5 14 0 1 0 0 \$0-Tapiir/outputs/output-1/tap-0 \$0-Tapiir/outputs/output-1/tap-0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 310 390 vsl 15 128 0 1 0 0 \$0-Tapiir/outputs/output-1/tap-1 \$0-Tapiir/outputs/output-1/tap-1 tap-1 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 310 530 nbx 5 14 0 1 0 0 \$0-Tapiir/outputs/output-1/tap-1 \$0-Tapiir/outputs/output-1/tap-1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 385 390 vsl 15 128 0 1 0 0 \$0-Tapiir/outputs/output-1/tap-2 \$0-Tapiir/outputs/output-1/tap-2 tap-2 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 385 530 nbx 5 14 0 1 0 0 \$0-Tapiir/outputs/output-1/tap-2 \$0-Tapiir/outputs/output-1/tap-2 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 460 390 vsl 15 128 0 1 0 0 \$0-Tapiir/outputs/output-1/tap-3 \$0-Tapiir/outputs/output-1/tap-3 tap-3 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 460 530 nbx 5 14 0 1 0 0 \$0-Tapiir/outputs/output-1/tap-3 \$0-Tapiir/outputs/output-1/tap-3 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 535 390 vsl 15 128 0 1 0 0 \$0-Tapiir/outputs/output-1/tap-4 \$0-Tapiir/outputs/output-1/tap-4 tap-4 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 535 530 nbx 5 14 0 1 0 0 \$0-Tapiir/outputs/output-1/tap-4 \$0-Tapiir/outputs/output-1/tap-4 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 610 390 vsl 15 128 0 1 0 0 \$0-Tapiir/outputs/output-1/tap-5 \$0-Tapiir/outputs/output-1/tap-5 tap-5 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 610 530 nbx 5 14 0 1 0 0 \$0-Tapiir/outputs/output-1/tap-5 \$0-Tapiir/outputs/output-1/tap-5 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 4472 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 4492 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 4540 10 r \$0-init; ++#X obj 4852 10 s \$0-in; ++#X obj 5008 10 s \$0-read; ++#X obj 5164 10 r \$0-write; ++#X msg 4540 30 1; ++#X obj 4540 50 s \$0-active; ++#X connect 174 0 175 0; ++#X obj 4852 30 r \$0-active; ++#X msg 4852 50 active \$1; ++#X connect 176 0 177 0; ++#X connect 177 0 171 0; ++#X obj 5164 30 route active; ++#X obj 5164 50 s \$0-active; ++#X connect 173 0 178 0; ++#X connect 178 0 179 0; ++#X msg 4540 70 0; ++#X obj 4540 90 s \$0-Tapiir/0x00/Tap-0/delay-sec; ++#X connect 170 0 180 0; ++#X connect 180 0 181 0; ++#X obj 4852 70 r \$0-Tapiir/0x00/Tap-0/delay-sec; ++#X msg 4852 90 /Tapiir/0x00/Tap-0/delay-sec \$1; ++#X connect 182 0 183 0; ++#X connect 183 0 171 0; ++#X obj 5164 70 route /Tapiir/0x00/Tap-0/delay-sec; ++#X obj 5164 90 s \$0-Tapiir/0x00/Tap-0/delay-sec; ++#X connect 178 1 184 0; ++#X connect 184 0 185 0; ++#X msg 4540 110 1; ++#X obj 4540 130 s \$0-Tapiir/0x00/Tap-0/gain; ++#X connect 170 0 186 0; ++#X connect 186 0 187 0; ++#X obj 4852 110 r \$0-Tapiir/0x00/Tap-0/gain; ++#X msg 4852 130 /Tapiir/0x00/Tap-0/gain \$1; ++#X connect 188 0 189 0; ++#X connect 189 0 171 0; ++#X obj 5164 110 route /Tapiir/0x00/Tap-0/gain; ++#X obj 5164 130 s \$0-Tapiir/0x00/Tap-0/gain; ++#X connect 184 1 190 0; ++#X connect 190 0 191 0; ++#X msg 4540 150 1; ++#X obj 4540 170 s \$0-Tapiir/0x00/Tap-0/input-0; ++#X connect 170 0 192 0; ++#X connect 192 0 193 0; ++#X obj 4852 150 r \$0-Tapiir/0x00/Tap-0/input-0; ++#X msg 4852 170 /Tapiir/0x00/Tap-0/input-0 \$1; ++#X connect 194 0 195 0; ++#X connect 195 0 171 0; ++#X obj 5164 150 route /Tapiir/0x00/Tap-0/input-0; ++#X obj 5164 170 s \$0-Tapiir/0x00/Tap-0/input-0; ++#X connect 190 1 196 0; ++#X connect 196 0 197 0; ++#X msg 4540 190 1; ++#X obj 4540 210 s \$0-Tapiir/0x00/Tap-0/input-1; ++#X connect 170 0 198 0; ++#X connect 198 0 199 0; ++#X obj 4852 190 r \$0-Tapiir/0x00/Tap-0/input-1; ++#X msg 4852 210 /Tapiir/0x00/Tap-0/input-1 \$1; ++#X connect 200 0 201 0; ++#X connect 201 0 171 0; ++#X obj 5164 190 route /Tapiir/0x00/Tap-0/input-1; ++#X obj 5164 210 s \$0-Tapiir/0x00/Tap-0/input-1; ++#X connect 196 1 202 0; ++#X connect 202 0 203 0; ++#X msg 4540 230 0; ++#X obj 4540 250 s \$0-Tapiir/0x00/Tap-0/tap-0; ++#X connect 170 0 204 0; ++#X connect 204 0 205 0; ++#X obj 4852 230 r \$0-Tapiir/0x00/Tap-0/tap-0; ++#X msg 4852 250 /Tapiir/0x00/Tap-0/tap-0 \$1; ++#X connect 206 0 207 0; ++#X connect 207 0 171 0; ++#X obj 5164 230 route /Tapiir/0x00/Tap-0/tap-0; ++#X obj 5164 250 s \$0-Tapiir/0x00/Tap-0/tap-0; ++#X connect 202 1 208 0; ++#X connect 208 0 209 0; ++#X msg 4540 270 0; ++#X obj 4540 290 s \$0-Tapiir/0x00/Tap-0/tap-1; ++#X connect 170 0 210 0; ++#X connect 210 0 211 0; ++#X obj 4852 270 r \$0-Tapiir/0x00/Tap-0/tap-1; ++#X msg 4852 290 /Tapiir/0x00/Tap-0/tap-1 \$1; ++#X connect 212 0 213 0; ++#X connect 213 0 171 0; ++#X obj 5164 270 route /Tapiir/0x00/Tap-0/tap-1; ++#X obj 5164 290 s \$0-Tapiir/0x00/Tap-0/tap-1; ++#X connect 208 1 214 0; ++#X connect 214 0 215 0; ++#X msg 4540 310 0; ++#X obj 4540 330 s \$0-Tapiir/0x00/Tap-0/tap-2; ++#X connect 170 0 216 0; ++#X connect 216 0 217 0; ++#X obj 4852 310 r \$0-Tapiir/0x00/Tap-0/tap-2; ++#X msg 4852 330 /Tapiir/0x00/Tap-0/tap-2 \$1; ++#X connect 218 0 219 0; ++#X connect 219 0 171 0; ++#X obj 5164 310 route /Tapiir/0x00/Tap-0/tap-2; ++#X obj 5164 330 s \$0-Tapiir/0x00/Tap-0/tap-2; ++#X connect 214 1 220 0; ++#X connect 220 0 221 0; ++#X msg 4540 350 0; ++#X obj 4540 370 s \$0-Tapiir/0x00/Tap-0/tap-3; ++#X connect 170 0 222 0; ++#X connect 222 0 223 0; ++#X obj 4852 350 r \$0-Tapiir/0x00/Tap-0/tap-3; ++#X msg 4852 370 /Tapiir/0x00/Tap-0/tap-3 \$1; ++#X connect 224 0 225 0; ++#X connect 225 0 171 0; ++#X obj 5164 350 route /Tapiir/0x00/Tap-0/tap-3; ++#X obj 5164 370 s \$0-Tapiir/0x00/Tap-0/tap-3; ++#X connect 220 1 226 0; ++#X connect 226 0 227 0; ++#X msg 4540 390 0; ++#X obj 4540 410 s \$0-Tapiir/0x00/Tap-0/tap-4; ++#X connect 170 0 228 0; ++#X connect 228 0 229 0; ++#X obj 4852 390 r \$0-Tapiir/0x00/Tap-0/tap-4; ++#X msg 4852 410 /Tapiir/0x00/Tap-0/tap-4 \$1; ++#X connect 230 0 231 0; ++#X connect 231 0 171 0; ++#X obj 5164 390 route /Tapiir/0x00/Tap-0/tap-4; ++#X obj 5164 410 s \$0-Tapiir/0x00/Tap-0/tap-4; ++#X connect 226 1 232 0; ++#X connect 232 0 233 0; ++#X msg 4540 430 0; ++#X obj 4540 450 s \$0-Tapiir/0x00/Tap-0/tap-5; ++#X connect 170 0 234 0; ++#X connect 234 0 235 0; ++#X obj 4852 430 r \$0-Tapiir/0x00/Tap-0/tap-5; ++#X msg 4852 450 /Tapiir/0x00/Tap-0/tap-5 \$1; ++#X connect 236 0 237 0; ++#X connect 237 0 171 0; ++#X obj 5164 430 route /Tapiir/0x00/Tap-0/tap-5; ++#X obj 5164 450 s \$0-Tapiir/0x00/Tap-0/tap-5; ++#X connect 232 1 238 0; ++#X connect 238 0 239 0; ++#X msg 4540 470 0; ++#X obj 4540 490 s \$0-Tapiir/0x00/Tap-1/delay-sec; ++#X connect 170 0 240 0; ++#X connect 240 0 241 0; ++#X obj 4852 470 r \$0-Tapiir/0x00/Tap-1/delay-sec; ++#X msg 4852 490 /Tapiir/0x00/Tap-1/delay-sec \$1; ++#X connect 242 0 243 0; ++#X connect 243 0 171 0; ++#X obj 5164 470 route /Tapiir/0x00/Tap-1/delay-sec; ++#X obj 5164 490 s \$0-Tapiir/0x00/Tap-1/delay-sec; ++#X connect 238 1 244 0; ++#X connect 244 0 245 0; ++#X msg 4540 510 1; ++#X obj 4540 530 s \$0-Tapiir/0x00/Tap-1/gain; ++#X connect 170 0 246 0; ++#X connect 246 0 247 0; ++#X obj 4852 510 r \$0-Tapiir/0x00/Tap-1/gain; ++#X msg 4852 530 /Tapiir/0x00/Tap-1/gain \$1; ++#X connect 248 0 249 0; ++#X connect 249 0 171 0; ++#X obj 5164 510 route /Tapiir/0x00/Tap-1/gain; ++#X obj 5164 530 s \$0-Tapiir/0x00/Tap-1/gain; ++#X connect 244 1 250 0; ++#X connect 250 0 251 0; ++#X msg 4540 550 1; ++#X obj 4540 570 s \$0-Tapiir/0x00/Tap-1/input-0; ++#X connect 170 0 252 0; ++#X connect 252 0 253 0; ++#X obj 4852 550 r \$0-Tapiir/0x00/Tap-1/input-0; ++#X msg 4852 570 /Tapiir/0x00/Tap-1/input-0 \$1; ++#X connect 254 0 255 0; ++#X connect 255 0 171 0; ++#X obj 5164 550 route /Tapiir/0x00/Tap-1/input-0; ++#X obj 5164 570 s \$0-Tapiir/0x00/Tap-1/input-0; ++#X connect 250 1 256 0; ++#X connect 256 0 257 0; ++#X msg 4540 590 1; ++#X obj 4540 610 s \$0-Tapiir/0x00/Tap-1/input-1; ++#X connect 170 0 258 0; ++#X connect 258 0 259 0; ++#X obj 4852 590 r \$0-Tapiir/0x00/Tap-1/input-1; ++#X msg 4852 610 /Tapiir/0x00/Tap-1/input-1 \$1; ++#X connect 260 0 261 0; ++#X connect 261 0 171 0; ++#X obj 5164 590 route /Tapiir/0x00/Tap-1/input-1; ++#X obj 5164 610 s \$0-Tapiir/0x00/Tap-1/input-1; ++#X connect 256 1 262 0; ++#X connect 262 0 263 0; ++#X msg 4540 630 0; ++#X obj 4540 650 s \$0-Tapiir/0x00/Tap-1/tap-0; ++#X connect 170 0 264 0; ++#X connect 264 0 265 0; ++#X obj 4852 630 r \$0-Tapiir/0x00/Tap-1/tap-0; ++#X msg 4852 650 /Tapiir/0x00/Tap-1/tap-0 \$1; ++#X connect 266 0 267 0; ++#X connect 267 0 171 0; ++#X obj 5164 630 route /Tapiir/0x00/Tap-1/tap-0; ++#X obj 5164 650 s \$0-Tapiir/0x00/Tap-1/tap-0; ++#X connect 262 1 268 0; ++#X connect 268 0 269 0; ++#X msg 4540 670 0; ++#X obj 4540 690 s \$0-Tapiir/0x00/Tap-1/tap-1; ++#X connect 170 0 270 0; ++#X connect 270 0 271 0; ++#X obj 4852 670 r \$0-Tapiir/0x00/Tap-1/tap-1; ++#X msg 4852 690 /Tapiir/0x00/Tap-1/tap-1 \$1; ++#X connect 272 0 273 0; ++#X connect 273 0 171 0; ++#X obj 5164 670 route /Tapiir/0x00/Tap-1/tap-1; ++#X obj 5164 690 s \$0-Tapiir/0x00/Tap-1/tap-1; ++#X connect 268 1 274 0; ++#X connect 274 0 275 0; ++#X msg 4540 710 0; ++#X obj 4540 730 s \$0-Tapiir/0x00/Tap-1/tap-2; ++#X connect 170 0 276 0; ++#X connect 276 0 277 0; ++#X obj 4852 710 r \$0-Tapiir/0x00/Tap-1/tap-2; ++#X msg 4852 730 /Tapiir/0x00/Tap-1/tap-2 \$1; ++#X connect 278 0 279 0; ++#X connect 279 0 171 0; ++#X obj 5164 710 route /Tapiir/0x00/Tap-1/tap-2; ++#X obj 5164 730 s \$0-Tapiir/0x00/Tap-1/tap-2; ++#X connect 274 1 280 0; ++#X connect 280 0 281 0; ++#X msg 4540 750 0; ++#X obj 4540 770 s \$0-Tapiir/0x00/Tap-1/tap-3; ++#X connect 170 0 282 0; ++#X connect 282 0 283 0; ++#X obj 4852 750 r \$0-Tapiir/0x00/Tap-1/tap-3; ++#X msg 4852 770 /Tapiir/0x00/Tap-1/tap-3 \$1; ++#X connect 284 0 285 0; ++#X connect 285 0 171 0; ++#X obj 5164 750 route /Tapiir/0x00/Tap-1/tap-3; ++#X obj 5164 770 s \$0-Tapiir/0x00/Tap-1/tap-3; ++#X connect 280 1 286 0; ++#X connect 286 0 287 0; ++#X msg 4540 790 0; ++#X obj 4540 810 s \$0-Tapiir/0x00/Tap-1/tap-4; ++#X connect 170 0 288 0; ++#X connect 288 0 289 0; ++#X obj 4852 790 r \$0-Tapiir/0x00/Tap-1/tap-4; ++#X msg 4852 810 /Tapiir/0x00/Tap-1/tap-4 \$1; ++#X connect 290 0 291 0; ++#X connect 291 0 171 0; ++#X obj 5164 790 route /Tapiir/0x00/Tap-1/tap-4; ++#X obj 5164 810 s \$0-Tapiir/0x00/Tap-1/tap-4; ++#X connect 286 1 292 0; ++#X connect 292 0 293 0; ++#X msg 4540 830 0; ++#X obj 4540 850 s \$0-Tapiir/0x00/Tap-1/tap-5; ++#X connect 170 0 294 0; ++#X connect 294 0 295 0; ++#X obj 4852 830 r \$0-Tapiir/0x00/Tap-1/tap-5; ++#X msg 4852 850 /Tapiir/0x00/Tap-1/tap-5 \$1; ++#X connect 296 0 297 0; ++#X connect 297 0 171 0; ++#X obj 5164 830 route /Tapiir/0x00/Tap-1/tap-5; ++#X obj 5164 850 s \$0-Tapiir/0x00/Tap-1/tap-5; ++#X connect 292 1 298 0; ++#X connect 298 0 299 0; ++#X msg 4540 870 0; ++#X obj 4540 890 s \$0-Tapiir/0x00/Tap-2/delay-sec; ++#X connect 170 0 300 0; ++#X connect 300 0 301 0; ++#X obj 4852 870 r \$0-Tapiir/0x00/Tap-2/delay-sec; ++#X msg 4852 890 /Tapiir/0x00/Tap-2/delay-sec \$1; ++#X connect 302 0 303 0; ++#X connect 303 0 171 0; ++#X obj 5164 870 route /Tapiir/0x00/Tap-2/delay-sec; ++#X obj 5164 890 s \$0-Tapiir/0x00/Tap-2/delay-sec; ++#X connect 298 1 304 0; ++#X connect 304 0 305 0; ++#X msg 4540 910 1; ++#X obj 4540 930 s \$0-Tapiir/0x00/Tap-2/gain; ++#X connect 170 0 306 0; ++#X connect 306 0 307 0; ++#X obj 4852 910 r \$0-Tapiir/0x00/Tap-2/gain; ++#X msg 4852 930 /Tapiir/0x00/Tap-2/gain \$1; ++#X connect 308 0 309 0; ++#X connect 309 0 171 0; ++#X obj 5164 910 route /Tapiir/0x00/Tap-2/gain; ++#X obj 5164 930 s \$0-Tapiir/0x00/Tap-2/gain; ++#X connect 304 1 310 0; ++#X connect 310 0 311 0; ++#X msg 4540 950 1; ++#X obj 4540 970 s \$0-Tapiir/0x00/Tap-2/input-0; ++#X connect 170 0 312 0; ++#X connect 312 0 313 0; ++#X obj 4852 950 r \$0-Tapiir/0x00/Tap-2/input-0; ++#X msg 4852 970 /Tapiir/0x00/Tap-2/input-0 \$1; ++#X connect 314 0 315 0; ++#X connect 315 0 171 0; ++#X obj 5164 950 route /Tapiir/0x00/Tap-2/input-0; ++#X obj 5164 970 s \$0-Tapiir/0x00/Tap-2/input-0; ++#X connect 310 1 316 0; ++#X connect 316 0 317 0; ++#X msg 4540 990 1; ++#X obj 4540 1010 s \$0-Tapiir/0x00/Tap-2/input-1; ++#X connect 170 0 318 0; ++#X connect 318 0 319 0; ++#X obj 4852 990 r \$0-Tapiir/0x00/Tap-2/input-1; ++#X msg 4852 1010 /Tapiir/0x00/Tap-2/input-1 \$1; ++#X connect 320 0 321 0; ++#X connect 321 0 171 0; ++#X obj 5164 990 route /Tapiir/0x00/Tap-2/input-1; ++#X obj 5164 1010 s \$0-Tapiir/0x00/Tap-2/input-1; ++#X connect 316 1 322 0; ++#X connect 322 0 323 0; ++#X msg 4540 1030 0; ++#X obj 4540 1050 s \$0-Tapiir/0x00/Tap-2/tap-0; ++#X connect 170 0 324 0; ++#X connect 324 0 325 0; ++#X obj 4852 1030 r \$0-Tapiir/0x00/Tap-2/tap-0; ++#X msg 4852 1050 /Tapiir/0x00/Tap-2/tap-0 \$1; ++#X connect 326 0 327 0; ++#X connect 327 0 171 0; ++#X obj 5164 1030 route /Tapiir/0x00/Tap-2/tap-0; ++#X obj 5164 1050 s \$0-Tapiir/0x00/Tap-2/tap-0; ++#X connect 322 1 328 0; ++#X connect 328 0 329 0; ++#X msg 4540 1070 0; ++#X obj 4540 1090 s \$0-Tapiir/0x00/Tap-2/tap-1; ++#X connect 170 0 330 0; ++#X connect 330 0 331 0; ++#X obj 4852 1070 r \$0-Tapiir/0x00/Tap-2/tap-1; ++#X msg 4852 1090 /Tapiir/0x00/Tap-2/tap-1 \$1; ++#X connect 332 0 333 0; ++#X connect 333 0 171 0; ++#X obj 5164 1070 route /Tapiir/0x00/Tap-2/tap-1; ++#X obj 5164 1090 s \$0-Tapiir/0x00/Tap-2/tap-1; ++#X connect 328 1 334 0; ++#X connect 334 0 335 0; ++#X msg 4540 1110 0; ++#X obj 4540 1130 s \$0-Tapiir/0x00/Tap-2/tap-2; ++#X connect 170 0 336 0; ++#X connect 336 0 337 0; ++#X obj 4852 1110 r \$0-Tapiir/0x00/Tap-2/tap-2; ++#X msg 4852 1130 /Tapiir/0x00/Tap-2/tap-2 \$1; ++#X connect 338 0 339 0; ++#X connect 339 0 171 0; ++#X obj 5164 1110 route /Tapiir/0x00/Tap-2/tap-2; ++#X obj 5164 1130 s \$0-Tapiir/0x00/Tap-2/tap-2; ++#X connect 334 1 340 0; ++#X connect 340 0 341 0; ++#X msg 4540 1150 0; ++#X obj 4540 1170 s \$0-Tapiir/0x00/Tap-2/tap-3; ++#X connect 170 0 342 0; ++#X connect 342 0 343 0; ++#X obj 4852 1150 r \$0-Tapiir/0x00/Tap-2/tap-3; ++#X msg 4852 1170 /Tapiir/0x00/Tap-2/tap-3 \$1; ++#X connect 344 0 345 0; ++#X connect 345 0 171 0; ++#X obj 5164 1150 route /Tapiir/0x00/Tap-2/tap-3; ++#X obj 5164 1170 s \$0-Tapiir/0x00/Tap-2/tap-3; ++#X connect 340 1 346 0; ++#X connect 346 0 347 0; ++#X msg 4540 1190 0; ++#X obj 4540 1210 s \$0-Tapiir/0x00/Tap-2/tap-4; ++#X connect 170 0 348 0; ++#X connect 348 0 349 0; ++#X obj 4852 1190 r \$0-Tapiir/0x00/Tap-2/tap-4; ++#X msg 4852 1210 /Tapiir/0x00/Tap-2/tap-4 \$1; ++#X connect 350 0 351 0; ++#X connect 351 0 171 0; ++#X obj 5164 1190 route /Tapiir/0x00/Tap-2/tap-4; ++#X obj 5164 1210 s \$0-Tapiir/0x00/Tap-2/tap-4; ++#X connect 346 1 352 0; ++#X connect 352 0 353 0; ++#X msg 4540 1230 0; ++#X obj 4540 1250 s \$0-Tapiir/0x00/Tap-2/tap-5; ++#X connect 170 0 354 0; ++#X connect 354 0 355 0; ++#X obj 4852 1230 r \$0-Tapiir/0x00/Tap-2/tap-5; ++#X msg 4852 1250 /Tapiir/0x00/Tap-2/tap-5 \$1; ++#X connect 356 0 357 0; ++#X connect 357 0 171 0; ++#X obj 5164 1230 route /Tapiir/0x00/Tap-2/tap-5; ++#X obj 5164 1250 s \$0-Tapiir/0x00/Tap-2/tap-5; ++#X connect 352 1 358 0; ++#X connect 358 0 359 0; ++#X msg 4540 1270 0; ++#X obj 4540 1290 s \$0-Tapiir/0x00/Tap-3/delay-sec; ++#X connect 170 0 360 0; ++#X connect 360 0 361 0; ++#X obj 4852 1270 r \$0-Tapiir/0x00/Tap-3/delay-sec; ++#X msg 4852 1290 /Tapiir/0x00/Tap-3/delay-sec \$1; ++#X connect 362 0 363 0; ++#X connect 363 0 171 0; ++#X obj 5164 1270 route /Tapiir/0x00/Tap-3/delay-sec; ++#X obj 5164 1290 s \$0-Tapiir/0x00/Tap-3/delay-sec; ++#X connect 358 1 364 0; ++#X connect 364 0 365 0; ++#X msg 4540 1310 1; ++#X obj 4540 1330 s \$0-Tapiir/0x00/Tap-3/gain; ++#X connect 170 0 366 0; ++#X connect 366 0 367 0; ++#X obj 4852 1310 r \$0-Tapiir/0x00/Tap-3/gain; ++#X msg 4852 1330 /Tapiir/0x00/Tap-3/gain \$1; ++#X connect 368 0 369 0; ++#X connect 369 0 171 0; ++#X obj 5164 1310 route /Tapiir/0x00/Tap-3/gain; ++#X obj 5164 1330 s \$0-Tapiir/0x00/Tap-3/gain; ++#X connect 364 1 370 0; ++#X connect 370 0 371 0; ++#X msg 4540 1350 1; ++#X obj 4540 1370 s \$0-Tapiir/0x00/Tap-3/input-0; ++#X connect 170 0 372 0; ++#X connect 372 0 373 0; ++#X obj 4852 1350 r \$0-Tapiir/0x00/Tap-3/input-0; ++#X msg 4852 1370 /Tapiir/0x00/Tap-3/input-0 \$1; ++#X connect 374 0 375 0; ++#X connect 375 0 171 0; ++#X obj 5164 1350 route /Tapiir/0x00/Tap-3/input-0; ++#X obj 5164 1370 s \$0-Tapiir/0x00/Tap-3/input-0; ++#X connect 370 1 376 0; ++#X connect 376 0 377 0; ++#X msg 4540 1390 1; ++#X obj 4540 1410 s \$0-Tapiir/0x00/Tap-3/input-1; ++#X connect 170 0 378 0; ++#X connect 378 0 379 0; ++#X obj 4852 1390 r \$0-Tapiir/0x00/Tap-3/input-1; ++#X msg 4852 1410 /Tapiir/0x00/Tap-3/input-1 \$1; ++#X connect 380 0 381 0; ++#X connect 381 0 171 0; ++#X obj 5164 1390 route /Tapiir/0x00/Tap-3/input-1; ++#X obj 5164 1410 s \$0-Tapiir/0x00/Tap-3/input-1; ++#X connect 376 1 382 0; ++#X connect 382 0 383 0; ++#X msg 4540 1430 0; ++#X obj 4540 1450 s \$0-Tapiir/0x00/Tap-3/tap-0; ++#X connect 170 0 384 0; ++#X connect 384 0 385 0; ++#X obj 4852 1430 r \$0-Tapiir/0x00/Tap-3/tap-0; ++#X msg 4852 1450 /Tapiir/0x00/Tap-3/tap-0 \$1; ++#X connect 386 0 387 0; ++#X connect 387 0 171 0; ++#X obj 5164 1430 route /Tapiir/0x00/Tap-3/tap-0; ++#X obj 5164 1450 s \$0-Tapiir/0x00/Tap-3/tap-0; ++#X connect 382 1 388 0; ++#X connect 388 0 389 0; ++#X msg 4540 1470 0; ++#X obj 4540 1490 s \$0-Tapiir/0x00/Tap-3/tap-1; ++#X connect 170 0 390 0; ++#X connect 390 0 391 0; ++#X obj 4852 1470 r \$0-Tapiir/0x00/Tap-3/tap-1; ++#X msg 4852 1490 /Tapiir/0x00/Tap-3/tap-1 \$1; ++#X connect 392 0 393 0; ++#X connect 393 0 171 0; ++#X obj 5164 1470 route /Tapiir/0x00/Tap-3/tap-1; ++#X obj 5164 1490 s \$0-Tapiir/0x00/Tap-3/tap-1; ++#X connect 388 1 394 0; ++#X connect 394 0 395 0; ++#X msg 4540 1510 0; ++#X obj 4540 1530 s \$0-Tapiir/0x00/Tap-3/tap-2; ++#X connect 170 0 396 0; ++#X connect 396 0 397 0; ++#X obj 4852 1510 r \$0-Tapiir/0x00/Tap-3/tap-2; ++#X msg 4852 1530 /Tapiir/0x00/Tap-3/tap-2 \$1; ++#X connect 398 0 399 0; ++#X connect 399 0 171 0; ++#X obj 5164 1510 route /Tapiir/0x00/Tap-3/tap-2; ++#X obj 5164 1530 s \$0-Tapiir/0x00/Tap-3/tap-2; ++#X connect 394 1 400 0; ++#X connect 400 0 401 0; ++#X msg 4540 1550 0; ++#X obj 4540 1570 s \$0-Tapiir/0x00/Tap-3/tap-3; ++#X connect 170 0 402 0; ++#X connect 402 0 403 0; ++#X obj 4852 1550 r \$0-Tapiir/0x00/Tap-3/tap-3; ++#X msg 4852 1570 /Tapiir/0x00/Tap-3/tap-3 \$1; ++#X connect 404 0 405 0; ++#X connect 405 0 171 0; ++#X obj 5164 1550 route /Tapiir/0x00/Tap-3/tap-3; ++#X obj 5164 1570 s \$0-Tapiir/0x00/Tap-3/tap-3; ++#X connect 400 1 406 0; ++#X connect 406 0 407 0; ++#X msg 4540 1590 0; ++#X obj 4540 1610 s \$0-Tapiir/0x00/Tap-3/tap-4; ++#X connect 170 0 408 0; ++#X connect 408 0 409 0; ++#X obj 4852 1590 r \$0-Tapiir/0x00/Tap-3/tap-4; ++#X msg 4852 1610 /Tapiir/0x00/Tap-3/tap-4 \$1; ++#X connect 410 0 411 0; ++#X connect 411 0 171 0; ++#X obj 5164 1590 route /Tapiir/0x00/Tap-3/tap-4; ++#X obj 5164 1610 s \$0-Tapiir/0x00/Tap-3/tap-4; ++#X connect 406 1 412 0; ++#X connect 412 0 413 0; ++#X msg 4540 1630 0; ++#X obj 4540 1650 s \$0-Tapiir/0x00/Tap-3/tap-5; ++#X connect 170 0 414 0; ++#X connect 414 0 415 0; ++#X obj 4852 1630 r \$0-Tapiir/0x00/Tap-3/tap-5; ++#X msg 4852 1650 /Tapiir/0x00/Tap-3/tap-5 \$1; ++#X connect 416 0 417 0; ++#X connect 417 0 171 0; ++#X obj 5164 1630 route /Tapiir/0x00/Tap-3/tap-5; ++#X obj 5164 1650 s \$0-Tapiir/0x00/Tap-3/tap-5; ++#X connect 412 1 418 0; ++#X connect 418 0 419 0; ++#X msg 4540 1670 0; ++#X obj 4540 1690 s \$0-Tapiir/0x00/Tap-4/delay-sec; ++#X connect 170 0 420 0; ++#X connect 420 0 421 0; ++#X obj 4852 1670 r \$0-Tapiir/0x00/Tap-4/delay-sec; ++#X msg 4852 1690 /Tapiir/0x00/Tap-4/delay-sec \$1; ++#X connect 422 0 423 0; ++#X connect 423 0 171 0; ++#X obj 5164 1670 route /Tapiir/0x00/Tap-4/delay-sec; ++#X obj 5164 1690 s \$0-Tapiir/0x00/Tap-4/delay-sec; ++#X connect 418 1 424 0; ++#X connect 424 0 425 0; ++#X msg 4540 1710 1; ++#X obj 4540 1730 s \$0-Tapiir/0x00/Tap-4/gain; ++#X connect 170 0 426 0; ++#X connect 426 0 427 0; ++#X obj 4852 1710 r \$0-Tapiir/0x00/Tap-4/gain; ++#X msg 4852 1730 /Tapiir/0x00/Tap-4/gain \$1; ++#X connect 428 0 429 0; ++#X connect 429 0 171 0; ++#X obj 5164 1710 route /Tapiir/0x00/Tap-4/gain; ++#X obj 5164 1730 s \$0-Tapiir/0x00/Tap-4/gain; ++#X connect 424 1 430 0; ++#X connect 430 0 431 0; ++#X msg 4540 1750 1; ++#X obj 4540 1770 s \$0-Tapiir/0x00/Tap-4/input-0; ++#X connect 170 0 432 0; ++#X connect 432 0 433 0; ++#X obj 4852 1750 r \$0-Tapiir/0x00/Tap-4/input-0; ++#X msg 4852 1770 /Tapiir/0x00/Tap-4/input-0 \$1; ++#X connect 434 0 435 0; ++#X connect 435 0 171 0; ++#X obj 5164 1750 route /Tapiir/0x00/Tap-4/input-0; ++#X obj 5164 1770 s \$0-Tapiir/0x00/Tap-4/input-0; ++#X connect 430 1 436 0; ++#X connect 436 0 437 0; ++#X msg 4540 1790 1; ++#X obj 4540 1810 s \$0-Tapiir/0x00/Tap-4/input-1; ++#X connect 170 0 438 0; ++#X connect 438 0 439 0; ++#X obj 4852 1790 r \$0-Tapiir/0x00/Tap-4/input-1; ++#X msg 4852 1810 /Tapiir/0x00/Tap-4/input-1 \$1; ++#X connect 440 0 441 0; ++#X connect 441 0 171 0; ++#X obj 5164 1790 route /Tapiir/0x00/Tap-4/input-1; ++#X obj 5164 1810 s \$0-Tapiir/0x00/Tap-4/input-1; ++#X connect 436 1 442 0; ++#X connect 442 0 443 0; ++#X msg 4540 1830 0; ++#X obj 4540 1850 s \$0-Tapiir/0x00/Tap-4/tap-0; ++#X connect 170 0 444 0; ++#X connect 444 0 445 0; ++#X obj 4852 1830 r \$0-Tapiir/0x00/Tap-4/tap-0; ++#X msg 4852 1850 /Tapiir/0x00/Tap-4/tap-0 \$1; ++#X connect 446 0 447 0; ++#X connect 447 0 171 0; ++#X obj 5164 1830 route /Tapiir/0x00/Tap-4/tap-0; ++#X obj 5164 1850 s \$0-Tapiir/0x00/Tap-4/tap-0; ++#X connect 442 1 448 0; ++#X connect 448 0 449 0; ++#X msg 4540 1870 0; ++#X obj 4540 1890 s \$0-Tapiir/0x00/Tap-4/tap-1; ++#X connect 170 0 450 0; ++#X connect 450 0 451 0; ++#X obj 4852 1870 r \$0-Tapiir/0x00/Tap-4/tap-1; ++#X msg 4852 1890 /Tapiir/0x00/Tap-4/tap-1 \$1; ++#X connect 452 0 453 0; ++#X connect 453 0 171 0; ++#X obj 5164 1870 route /Tapiir/0x00/Tap-4/tap-1; ++#X obj 5164 1890 s \$0-Tapiir/0x00/Tap-4/tap-1; ++#X connect 448 1 454 0; ++#X connect 454 0 455 0; ++#X msg 4540 1910 0; ++#X obj 4540 1930 s \$0-Tapiir/0x00/Tap-4/tap-2; ++#X connect 170 0 456 0; ++#X connect 456 0 457 0; ++#X obj 4852 1910 r \$0-Tapiir/0x00/Tap-4/tap-2; ++#X msg 4852 1930 /Tapiir/0x00/Tap-4/tap-2 \$1; ++#X connect 458 0 459 0; ++#X connect 459 0 171 0; ++#X obj 5164 1910 route /Tapiir/0x00/Tap-4/tap-2; ++#X obj 5164 1930 s \$0-Tapiir/0x00/Tap-4/tap-2; ++#X connect 454 1 460 0; ++#X connect 460 0 461 0; ++#X msg 4540 1950 0; ++#X obj 4540 1970 s \$0-Tapiir/0x00/Tap-4/tap-3; ++#X connect 170 0 462 0; ++#X connect 462 0 463 0; ++#X obj 4852 1950 r \$0-Tapiir/0x00/Tap-4/tap-3; ++#X msg 4852 1970 /Tapiir/0x00/Tap-4/tap-3 \$1; ++#X connect 464 0 465 0; ++#X connect 465 0 171 0; ++#X obj 5164 1950 route /Tapiir/0x00/Tap-4/tap-3; ++#X obj 5164 1970 s \$0-Tapiir/0x00/Tap-4/tap-3; ++#X connect 460 1 466 0; ++#X connect 466 0 467 0; ++#X msg 4540 1990 0; ++#X obj 4540 2010 s \$0-Tapiir/0x00/Tap-4/tap-4; ++#X connect 170 0 468 0; ++#X connect 468 0 469 0; ++#X obj 4852 1990 r \$0-Tapiir/0x00/Tap-4/tap-4; ++#X msg 4852 2010 /Tapiir/0x00/Tap-4/tap-4 \$1; ++#X connect 470 0 471 0; ++#X connect 471 0 171 0; ++#X obj 5164 1990 route /Tapiir/0x00/Tap-4/tap-4; ++#X obj 5164 2010 s \$0-Tapiir/0x00/Tap-4/tap-4; ++#X connect 466 1 472 0; ++#X connect 472 0 473 0; ++#X msg 4540 2030 0; ++#X obj 4540 2050 s \$0-Tapiir/0x00/Tap-4/tap-5; ++#X connect 170 0 474 0; ++#X connect 474 0 475 0; ++#X obj 4852 2030 r \$0-Tapiir/0x00/Tap-4/tap-5; ++#X msg 4852 2050 /Tapiir/0x00/Tap-4/tap-5 \$1; ++#X connect 476 0 477 0; ++#X connect 477 0 171 0; ++#X obj 5164 2030 route /Tapiir/0x00/Tap-4/tap-5; ++#X obj 5164 2050 s \$0-Tapiir/0x00/Tap-4/tap-5; ++#X connect 472 1 478 0; ++#X connect 478 0 479 0; ++#X msg 4540 2070 0; ++#X obj 4540 2090 s \$0-Tapiir/0x00/Tap-5/delay-sec; ++#X connect 170 0 480 0; ++#X connect 480 0 481 0; ++#X obj 4852 2070 r \$0-Tapiir/0x00/Tap-5/delay-sec; ++#X msg 4852 2090 /Tapiir/0x00/Tap-5/delay-sec \$1; ++#X connect 482 0 483 0; ++#X connect 483 0 171 0; ++#X obj 5164 2070 route /Tapiir/0x00/Tap-5/delay-sec; ++#X obj 5164 2090 s \$0-Tapiir/0x00/Tap-5/delay-sec; ++#X connect 478 1 484 0; ++#X connect 484 0 485 0; ++#X msg 4540 2110 1; ++#X obj 4540 2130 s \$0-Tapiir/0x00/Tap-5/gain; ++#X connect 170 0 486 0; ++#X connect 486 0 487 0; ++#X obj 4852 2110 r \$0-Tapiir/0x00/Tap-5/gain; ++#X msg 4852 2130 /Tapiir/0x00/Tap-5/gain \$1; ++#X connect 488 0 489 0; ++#X connect 489 0 171 0; ++#X obj 5164 2110 route /Tapiir/0x00/Tap-5/gain; ++#X obj 5164 2130 s \$0-Tapiir/0x00/Tap-5/gain; ++#X connect 484 1 490 0; ++#X connect 490 0 491 0; ++#X msg 4540 2150 1; ++#X obj 4540 2170 s \$0-Tapiir/0x00/Tap-5/input-0; ++#X connect 170 0 492 0; ++#X connect 492 0 493 0; ++#X obj 4852 2150 r \$0-Tapiir/0x00/Tap-5/input-0; ++#X msg 4852 2170 /Tapiir/0x00/Tap-5/input-0 \$1; ++#X connect 494 0 495 0; ++#X connect 495 0 171 0; ++#X obj 5164 2150 route /Tapiir/0x00/Tap-5/input-0; ++#X obj 5164 2170 s \$0-Tapiir/0x00/Tap-5/input-0; ++#X connect 490 1 496 0; ++#X connect 496 0 497 0; ++#X msg 4540 2190 1; ++#X obj 4540 2210 s \$0-Tapiir/0x00/Tap-5/input-1; ++#X connect 170 0 498 0; ++#X connect 498 0 499 0; ++#X obj 4852 2190 r \$0-Tapiir/0x00/Tap-5/input-1; ++#X msg 4852 2210 /Tapiir/0x00/Tap-5/input-1 \$1; ++#X connect 500 0 501 0; ++#X connect 501 0 171 0; ++#X obj 5164 2190 route /Tapiir/0x00/Tap-5/input-1; ++#X obj 5164 2210 s \$0-Tapiir/0x00/Tap-5/input-1; ++#X connect 496 1 502 0; ++#X connect 502 0 503 0; ++#X msg 4540 2230 0; ++#X obj 4540 2250 s \$0-Tapiir/0x00/Tap-5/tap-0; ++#X connect 170 0 504 0; ++#X connect 504 0 505 0; ++#X obj 4852 2230 r \$0-Tapiir/0x00/Tap-5/tap-0; ++#X msg 4852 2250 /Tapiir/0x00/Tap-5/tap-0 \$1; ++#X connect 506 0 507 0; ++#X connect 507 0 171 0; ++#X obj 5164 2230 route /Tapiir/0x00/Tap-5/tap-0; ++#X obj 5164 2250 s \$0-Tapiir/0x00/Tap-5/tap-0; ++#X connect 502 1 508 0; ++#X connect 508 0 509 0; ++#X msg 4540 2270 0; ++#X obj 4540 2290 s \$0-Tapiir/0x00/Tap-5/tap-1; ++#X connect 170 0 510 0; ++#X connect 510 0 511 0; ++#X obj 4852 2270 r \$0-Tapiir/0x00/Tap-5/tap-1; ++#X msg 4852 2290 /Tapiir/0x00/Tap-5/tap-1 \$1; ++#X connect 512 0 513 0; ++#X connect 513 0 171 0; ++#X obj 5164 2270 route /Tapiir/0x00/Tap-5/tap-1; ++#X obj 5164 2290 s \$0-Tapiir/0x00/Tap-5/tap-1; ++#X connect 508 1 514 0; ++#X connect 514 0 515 0; ++#X msg 4540 2310 0; ++#X obj 4540 2330 s \$0-Tapiir/0x00/Tap-5/tap-2; ++#X connect 170 0 516 0; ++#X connect 516 0 517 0; ++#X obj 4852 2310 r \$0-Tapiir/0x00/Tap-5/tap-2; ++#X msg 4852 2330 /Tapiir/0x00/Tap-5/tap-2 \$1; ++#X connect 518 0 519 0; ++#X connect 519 0 171 0; ++#X obj 5164 2310 route /Tapiir/0x00/Tap-5/tap-2; ++#X obj 5164 2330 s \$0-Tapiir/0x00/Tap-5/tap-2; ++#X connect 514 1 520 0; ++#X connect 520 0 521 0; ++#X msg 4540 2350 0; ++#X obj 4540 2370 s \$0-Tapiir/0x00/Tap-5/tap-3; ++#X connect 170 0 522 0; ++#X connect 522 0 523 0; ++#X obj 4852 2350 r \$0-Tapiir/0x00/Tap-5/tap-3; ++#X msg 4852 2370 /Tapiir/0x00/Tap-5/tap-3 \$1; ++#X connect 524 0 525 0; ++#X connect 525 0 171 0; ++#X obj 5164 2350 route /Tapiir/0x00/Tap-5/tap-3; ++#X obj 5164 2370 s \$0-Tapiir/0x00/Tap-5/tap-3; ++#X connect 520 1 526 0; ++#X connect 526 0 527 0; ++#X msg 4540 2390 0; ++#X obj 4540 2410 s \$0-Tapiir/0x00/Tap-5/tap-4; ++#X connect 170 0 528 0; ++#X connect 528 0 529 0; ++#X obj 4852 2390 r \$0-Tapiir/0x00/Tap-5/tap-4; ++#X msg 4852 2410 /Tapiir/0x00/Tap-5/tap-4 \$1; ++#X connect 530 0 531 0; ++#X connect 531 0 171 0; ++#X obj 5164 2390 route /Tapiir/0x00/Tap-5/tap-4; ++#X obj 5164 2410 s \$0-Tapiir/0x00/Tap-5/tap-4; ++#X connect 526 1 532 0; ++#X connect 532 0 533 0; ++#X msg 4540 2430 0; ++#X obj 4540 2450 s \$0-Tapiir/0x00/Tap-5/tap-5; ++#X connect 170 0 534 0; ++#X connect 534 0 535 0; ++#X obj 4852 2430 r \$0-Tapiir/0x00/Tap-5/tap-5; ++#X msg 4852 2450 /Tapiir/0x00/Tap-5/tap-5 \$1; ++#X connect 536 0 537 0; ++#X connect 537 0 171 0; ++#X obj 5164 2430 route /Tapiir/0x00/Tap-5/tap-5; ++#X obj 5164 2450 s \$0-Tapiir/0x00/Tap-5/tap-5; ++#X connect 532 1 538 0; ++#X connect 538 0 539 0; ++#X msg 4540 2470 1; ++#X obj 4540 2490 s \$0-Tapiir/outputs/output-0/gain; ++#X connect 170 0 540 0; ++#X connect 540 0 541 0; ++#X obj 4852 2470 r \$0-Tapiir/outputs/output-0/gain; ++#X msg 4852 2490 /Tapiir/outputs/output-0/gain \$1; ++#X connect 542 0 543 0; ++#X connect 543 0 171 0; ++#X obj 5164 2470 route /Tapiir/outputs/output-0/gain; ++#X obj 5164 2490 s \$0-Tapiir/outputs/output-0/gain; ++#X connect 538 1 544 0; ++#X connect 544 0 545 0; ++#X msg 4540 2510 1; ++#X obj 4540 2530 s \$0-Tapiir/outputs/output-0/input-0; ++#X connect 170 0 546 0; ++#X connect 546 0 547 0; ++#X obj 4852 2510 r \$0-Tapiir/outputs/output-0/input-0; ++#X msg 4852 2530 /Tapiir/outputs/output-0/input-0 \$1; ++#X connect 548 0 549 0; ++#X connect 549 0 171 0; ++#X obj 5164 2510 route /Tapiir/outputs/output-0/input-0; ++#X obj 5164 2530 s \$0-Tapiir/outputs/output-0/input-0; ++#X connect 544 1 550 0; ++#X connect 550 0 551 0; ++#X msg 4540 2550 1; ++#X obj 4540 2570 s \$0-Tapiir/outputs/output-0/input-1; ++#X connect 170 0 552 0; ++#X connect 552 0 553 0; ++#X obj 4852 2550 r \$0-Tapiir/outputs/output-0/input-1; ++#X msg 4852 2570 /Tapiir/outputs/output-0/input-1 \$1; ++#X connect 554 0 555 0; ++#X connect 555 0 171 0; ++#X obj 5164 2550 route /Tapiir/outputs/output-0/input-1; ++#X obj 5164 2570 s \$0-Tapiir/outputs/output-0/input-1; ++#X connect 550 1 556 0; ++#X connect 556 0 557 0; ++#X msg 4540 2590 0; ++#X obj 4540 2610 s \$0-Tapiir/outputs/output-0/tap-0; ++#X connect 170 0 558 0; ++#X connect 558 0 559 0; ++#X obj 4852 2590 r \$0-Tapiir/outputs/output-0/tap-0; ++#X msg 4852 2610 /Tapiir/outputs/output-0/tap-0 \$1; ++#X connect 560 0 561 0; ++#X connect 561 0 171 0; ++#X obj 5164 2590 route /Tapiir/outputs/output-0/tap-0; ++#X obj 5164 2610 s \$0-Tapiir/outputs/output-0/tap-0; ++#X connect 556 1 562 0; ++#X connect 562 0 563 0; ++#X msg 4540 2630 0; ++#X obj 4540 2650 s \$0-Tapiir/outputs/output-0/tap-1; ++#X connect 170 0 564 0; ++#X connect 564 0 565 0; ++#X obj 4852 2630 r \$0-Tapiir/outputs/output-0/tap-1; ++#X msg 4852 2650 /Tapiir/outputs/output-0/tap-1 \$1; ++#X connect 566 0 567 0; ++#X connect 567 0 171 0; ++#X obj 5164 2630 route /Tapiir/outputs/output-0/tap-1; ++#X obj 5164 2650 s \$0-Tapiir/outputs/output-0/tap-1; ++#X connect 562 1 568 0; ++#X connect 568 0 569 0; ++#X msg 4540 2670 0; ++#X obj 4540 2690 s \$0-Tapiir/outputs/output-0/tap-2; ++#X connect 170 0 570 0; ++#X connect 570 0 571 0; ++#X obj 4852 2670 r \$0-Tapiir/outputs/output-0/tap-2; ++#X msg 4852 2690 /Tapiir/outputs/output-0/tap-2 \$1; ++#X connect 572 0 573 0; ++#X connect 573 0 171 0; ++#X obj 5164 2670 route /Tapiir/outputs/output-0/tap-2; ++#X obj 5164 2690 s \$0-Tapiir/outputs/output-0/tap-2; ++#X connect 568 1 574 0; ++#X connect 574 0 575 0; ++#X msg 4540 2710 0; ++#X obj 4540 2730 s \$0-Tapiir/outputs/output-0/tap-3; ++#X connect 170 0 576 0; ++#X connect 576 0 577 0; ++#X obj 4852 2710 r \$0-Tapiir/outputs/output-0/tap-3; ++#X msg 4852 2730 /Tapiir/outputs/output-0/tap-3 \$1; ++#X connect 578 0 579 0; ++#X connect 579 0 171 0; ++#X obj 5164 2710 route /Tapiir/outputs/output-0/tap-3; ++#X obj 5164 2730 s \$0-Tapiir/outputs/output-0/tap-3; ++#X connect 574 1 580 0; ++#X connect 580 0 581 0; ++#X msg 4540 2750 0; ++#X obj 4540 2770 s \$0-Tapiir/outputs/output-0/tap-4; ++#X connect 170 0 582 0; ++#X connect 582 0 583 0; ++#X obj 4852 2750 r \$0-Tapiir/outputs/output-0/tap-4; ++#X msg 4852 2770 /Tapiir/outputs/output-0/tap-4 \$1; ++#X connect 584 0 585 0; ++#X connect 585 0 171 0; ++#X obj 5164 2750 route /Tapiir/outputs/output-0/tap-4; ++#X obj 5164 2770 s \$0-Tapiir/outputs/output-0/tap-4; ++#X connect 580 1 586 0; ++#X connect 586 0 587 0; ++#X msg 4540 2790 0; ++#X obj 4540 2810 s \$0-Tapiir/outputs/output-0/tap-5; ++#X connect 170 0 588 0; ++#X connect 588 0 589 0; ++#X obj 4852 2790 r \$0-Tapiir/outputs/output-0/tap-5; ++#X msg 4852 2810 /Tapiir/outputs/output-0/tap-5 \$1; ++#X connect 590 0 591 0; ++#X connect 591 0 171 0; ++#X obj 5164 2790 route /Tapiir/outputs/output-0/tap-5; ++#X obj 5164 2810 s \$0-Tapiir/outputs/output-0/tap-5; ++#X connect 586 1 592 0; ++#X connect 592 0 593 0; ++#X msg 4540 2830 1; ++#X obj 4540 2850 s \$0-Tapiir/outputs/output-1/gain; ++#X connect 170 0 594 0; ++#X connect 594 0 595 0; ++#X obj 4852 2830 r \$0-Tapiir/outputs/output-1/gain; ++#X msg 4852 2850 /Tapiir/outputs/output-1/gain \$1; ++#X connect 596 0 597 0; ++#X connect 597 0 171 0; ++#X obj 5164 2830 route /Tapiir/outputs/output-1/gain; ++#X obj 5164 2850 s \$0-Tapiir/outputs/output-1/gain; ++#X connect 592 1 598 0; ++#X connect 598 0 599 0; ++#X msg 4540 2870 1; ++#X obj 4540 2890 s \$0-Tapiir/outputs/output-1/input-0; ++#X connect 170 0 600 0; ++#X connect 600 0 601 0; ++#X obj 4852 2870 r \$0-Tapiir/outputs/output-1/input-0; ++#X msg 4852 2890 /Tapiir/outputs/output-1/input-0 \$1; ++#X connect 602 0 603 0; ++#X connect 603 0 171 0; ++#X obj 5164 2870 route /Tapiir/outputs/output-1/input-0; ++#X obj 5164 2890 s \$0-Tapiir/outputs/output-1/input-0; ++#X connect 598 1 604 0; ++#X connect 604 0 605 0; ++#X msg 4540 2910 1; ++#X obj 4540 2930 s \$0-Tapiir/outputs/output-1/input-1; ++#X connect 170 0 606 0; ++#X connect 606 0 607 0; ++#X obj 4852 2910 r \$0-Tapiir/outputs/output-1/input-1; ++#X msg 4852 2930 /Tapiir/outputs/output-1/input-1 \$1; ++#X connect 608 0 609 0; ++#X connect 609 0 171 0; ++#X obj 5164 2910 route /Tapiir/outputs/output-1/input-1; ++#X obj 5164 2930 s \$0-Tapiir/outputs/output-1/input-1; ++#X connect 604 1 610 0; ++#X connect 610 0 611 0; ++#X msg 4540 2950 0; ++#X obj 4540 2970 s \$0-Tapiir/outputs/output-1/tap-0; ++#X connect 170 0 612 0; ++#X connect 612 0 613 0; ++#X obj 4852 2950 r \$0-Tapiir/outputs/output-1/tap-0; ++#X msg 4852 2970 /Tapiir/outputs/output-1/tap-0 \$1; ++#X connect 614 0 615 0; ++#X connect 615 0 171 0; ++#X obj 5164 2950 route /Tapiir/outputs/output-1/tap-0; ++#X obj 5164 2970 s \$0-Tapiir/outputs/output-1/tap-0; ++#X connect 610 1 616 0; ++#X connect 616 0 617 0; ++#X msg 4540 2990 0; ++#X obj 4540 3010 s \$0-Tapiir/outputs/output-1/tap-1; ++#X connect 170 0 618 0; ++#X connect 618 0 619 0; ++#X obj 4852 2990 r \$0-Tapiir/outputs/output-1/tap-1; ++#X msg 4852 3010 /Tapiir/outputs/output-1/tap-1 \$1; ++#X connect 620 0 621 0; ++#X connect 621 0 171 0; ++#X obj 5164 2990 route /Tapiir/outputs/output-1/tap-1; ++#X obj 5164 3010 s \$0-Tapiir/outputs/output-1/tap-1; ++#X connect 616 1 622 0; ++#X connect 622 0 623 0; ++#X msg 4540 3030 0; ++#X obj 4540 3050 s \$0-Tapiir/outputs/output-1/tap-2; ++#X connect 170 0 624 0; ++#X connect 624 0 625 0; ++#X obj 4852 3030 r \$0-Tapiir/outputs/output-1/tap-2; ++#X msg 4852 3050 /Tapiir/outputs/output-1/tap-2 \$1; ++#X connect 626 0 627 0; ++#X connect 627 0 171 0; ++#X obj 5164 3030 route /Tapiir/outputs/output-1/tap-2; ++#X obj 5164 3050 s \$0-Tapiir/outputs/output-1/tap-2; ++#X connect 622 1 628 0; ++#X connect 628 0 629 0; ++#X msg 4540 3070 0; ++#X obj 4540 3090 s \$0-Tapiir/outputs/output-1/tap-3; ++#X connect 170 0 630 0; ++#X connect 630 0 631 0; ++#X obj 4852 3070 r \$0-Tapiir/outputs/output-1/tap-3; ++#X msg 4852 3090 /Tapiir/outputs/output-1/tap-3 \$1; ++#X connect 632 0 633 0; ++#X connect 633 0 171 0; ++#X obj 5164 3070 route /Tapiir/outputs/output-1/tap-3; ++#X obj 5164 3090 s \$0-Tapiir/outputs/output-1/tap-3; ++#X connect 628 1 634 0; ++#X connect 634 0 635 0; ++#X msg 4540 3110 0; ++#X obj 4540 3130 s \$0-Tapiir/outputs/output-1/tap-4; ++#X connect 170 0 636 0; ++#X connect 636 0 637 0; ++#X obj 4852 3110 r \$0-Tapiir/outputs/output-1/tap-4; ++#X msg 4852 3130 /Tapiir/outputs/output-1/tap-4 \$1; ++#X connect 638 0 639 0; ++#X connect 639 0 171 0; ++#X obj 5164 3110 route /Tapiir/outputs/output-1/tap-4; ++#X obj 5164 3130 s \$0-Tapiir/outputs/output-1/tap-4; ++#X connect 634 1 640 0; ++#X connect 640 0 641 0; ++#X msg 4540 3150 0; ++#X obj 4540 3170 s \$0-Tapiir/outputs/output-1/tap-5; ++#X connect 170 0 642 0; ++#X connect 642 0 643 0; ++#X obj 4852 3150 r \$0-Tapiir/outputs/output-1/tap-5; ++#X msg 4852 3170 /Tapiir/outputs/output-1/tap-5 \$1; ++#X connect 644 0 645 0; ++#X connect 645 0 171 0; ++#X obj 5164 3150 route /Tapiir/outputs/output-1/tap-5; ++#X obj 5164 3170 s \$0-Tapiir/outputs/output-1/tap-5; ++#X connect 640 1 646 0; ++#X connect 646 0 647 0; ++#X coords 0 -1 1 1 4510 560 1 0 0; ++#X text 0 580 Generated Tue Jan 16 18:57:54 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/faust/tester.dsp.xml +@@ -0,0 +1,68 @@ ++ ++ ++ tester ++ Grame ++ (c)GRAME 2006 ++ BSD ++ 1.0 ++ mydsp ++ 0 ++ 8 ++ ++ ++ 6 ++ ++ ++ fHslider2 ++ 1000.0f ++ 10.0f ++ 20000.0f ++ 1.0f ++ ++ ++ ++ fHslider1 ++ -96.0f ++ -96.0f ++ 0.0f ++ 1.0f ++ ++ ++ ++ fHslider0 ++ 0.0f ++ 0.0f ++ 8.0f ++ 1.0f ++ ++ ++ ++ fCheckbox2 ++ ++ ++ ++ fCheckbox0 ++ ++ ++ ++ fCheckbox1 ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/tester.pd +@@ -0,0 +1,130 @@ ++#N canvas 0 0 450 300 10; ++#X obj 10 270 inlet; ++#X obj 130 270 r \$0-read; ++#X obj 130 300 faust-control \$0; ++#X obj 130 330 s \$0-write; ++#X obj 10 330 r \$0-in; ++#X obj 10 360 tester~; ++#X obj 10 390 s \$0-out; ++#X obj 70 420 outlet~; ++#X obj 130 420 outlet~; ++#X obj 190 420 outlet~; ++#X obj 250 420 outlet~; ++#X obj 310 420 outlet~; ++#X obj 370 420 outlet~; ++#X obj 430 420 outlet~; ++#X obj 490 420 outlet~; ++#X obj 10 420 outlet; ++#X connect 0 0 2 0; ++#X connect 1 0 2 0; ++#X connect 2 0 3 0; ++#X connect 5 0 6 0; ++#X connect 0 0 15 0; ++#X connect 4 0 5 0; ++#X connect 5 1 7 0; ++#X connect 5 2 8 0; ++#X connect 5 3 9 0; ++#X connect 5 4 10 0; ++#X connect 5 5 11 0; ++#X connect 5 6 12 0; ++#X connect 5 7 13 0; ++#X connect 5 8 14 0; ++#X obj 10 30 hsl 128 15 10 20000 0 0 \$0-Audio-Tester/freq \$0-Audio-Tester/freq freq -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 10 20000 0 0 \$0-Audio-Tester/freq \$0-Audio-Tester/freq empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 -96 0 0 0 \$0-Audio-Tester/volume \$0-Audio-Tester/volume volume -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 -96 0 0 0 \$0-Audio-Tester/volume \$0-Audio-Tester/volume empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 hradio 15 1 0 9 \$0-Audio-Tester/destination \$0-Audio-Tester/destination destination 0 -6 0 10 -262144 -1 -1 0; ++#X obj 10 120 tgl 15 0 \$0-Audio-Tester/pink-noise \$0-Audio-Tester/pink-noise pink-noise 0 -6 0 10 -262144 -1 -1 0 1; ++#X obj 10 150 tgl 15 0 \$0-Audio-Tester/sine-wave \$0-Audio-Tester/sine-wave sine-wave 0 -6 0 10 -262144 -1 -1 0 1; ++#X obj 10 180 tgl 15 0 \$0-Audio-Tester/white-noise \$0-Audio-Tester/white-noise white-noise 0 -6 0 10 -262144 -1 -1 0 1; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 706 10 s \$0-in; ++#X obj 834 10 s \$0-read; ++#X obj 962 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 30 0 31 0; ++#X obj 706 30 r \$0-active; ++#X msg 706 50 active \$1; ++#X connect 32 0 33 0; ++#X connect 33 0 27 0; ++#X obj 962 30 route active; ++#X obj 962 50 s \$0-active; ++#X connect 29 0 34 0; ++#X connect 34 0 35 0; ++#X msg 450 70 1000; ++#X obj 450 90 s \$0-Audio-Tester/freq; ++#X connect 26 0 36 0; ++#X connect 36 0 37 0; ++#X obj 706 70 r \$0-Audio-Tester/freq; ++#X msg 706 90 /Audio-Tester/freq \$1; ++#X connect 38 0 39 0; ++#X connect 39 0 27 0; ++#X obj 962 70 route /Audio-Tester/freq; ++#X obj 962 90 s \$0-Audio-Tester/freq; ++#X connect 34 1 40 0; ++#X connect 40 0 41 0; ++#X msg 450 110 -96; ++#X obj 450 130 s \$0-Audio-Tester/volume; ++#X connect 26 0 42 0; ++#X connect 42 0 43 0; ++#X obj 706 110 r \$0-Audio-Tester/volume; ++#X msg 706 130 /Audio-Tester/volume \$1; ++#X connect 44 0 45 0; ++#X connect 45 0 27 0; ++#X obj 962 110 route /Audio-Tester/volume; ++#X obj 962 130 s \$0-Audio-Tester/volume; ++#X connect 40 1 46 0; ++#X connect 46 0 47 0; ++#X msg 450 150 0; ++#X obj 450 170 s \$0-Audio-Tester/destination; ++#X connect 26 0 48 0; ++#X connect 48 0 49 0; ++#X obj 706 150 r \$0-Audio-Tester/destination; ++#X msg 706 170 /Audio-Tester/destination \$1; ++#X connect 50 0 51 0; ++#X connect 51 0 27 0; ++#X obj 962 150 route /Audio-Tester/destination; ++#X obj 962 170 s \$0-Audio-Tester/destination; ++#X connect 46 1 52 0; ++#X connect 52 0 53 0; ++#X msg 450 190 0; ++#X obj 450 210 s \$0-Audio-Tester/pink-noise; ++#X connect 26 0 54 0; ++#X connect 54 0 55 0; ++#X obj 706 190 r \$0-Audio-Tester/pink-noise; ++#X msg 706 210 /Audio-Tester/pink-noise \$1; ++#X connect 56 0 57 0; ++#X connect 57 0 27 0; ++#X obj 962 190 route /Audio-Tester/pink-noise; ++#X obj 962 210 s \$0-Audio-Tester/pink-noise; ++#X connect 52 1 58 0; ++#X connect 58 0 59 0; ++#X msg 450 230 0; ++#X obj 450 250 s \$0-Audio-Tester/sine-wave; ++#X connect 26 0 60 0; ++#X connect 60 0 61 0; ++#X obj 706 230 r \$0-Audio-Tester/sine-wave; ++#X msg 706 250 /Audio-Tester/sine-wave \$1; ++#X connect 62 0 63 0; ++#X connect 63 0 27 0; ++#X obj 962 230 route /Audio-Tester/sine-wave; ++#X obj 962 250 s \$0-Audio-Tester/sine-wave; ++#X connect 58 1 64 0; ++#X connect 64 0 65 0; ++#X msg 450 270 0; ++#X obj 450 290 s \$0-Audio-Tester/white-noise; ++#X connect 26 0 66 0; ++#X connect 66 0 67 0; ++#X obj 706 270 r \$0-Audio-Tester/white-noise; ++#X msg 706 290 /Audio-Tester/white-noise \$1; ++#X connect 68 0 69 0; ++#X connect 69 0 27 0; ++#X obj 962 270 route /Audio-Tester/white-noise; ++#X obj 962 290 s \$0-Audio-Tester/white-noise; ++#X connect 64 1 70 0; ++#X connect 70 0 71 0; ++#X coords 0 -1 1 1 235 200 1 0 0; ++#X text 0 220 Generated Tue Jan 16 18:57:55 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/faust/volume.dsp.xml +@@ -0,0 +1,35 @@ ++ ++ ++ volume ++ Grame ++ (c)GRAME 2006 ++ BSD ++ 1.0 ++ mydsp ++ 1 ++ 1 ++ ++ ++ 1 ++ ++ ++ fVslider0 ++ 0.0f ++ -70.0f ++ 4.0f ++ 0.10000000000000001f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/volume.pd +@@ -0,0 +1,52 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 270 inlet~; ++#X obj 10 270 inlet; ++#X obj 130 270 r \$0-read; ++#X obj 130 300 faust-control \$0; ++#X obj 130 330 s \$0-write; ++#X obj 10 330 r \$0-in; ++#X obj 10 360 volume~; ++#X obj 10 390 s \$0-out; ++#X obj 70 420 outlet~; ++#X obj 10 420 outlet; ++#X connect 1 0 3 0; ++#X connect 2 0 3 0; ++#X connect 3 0 4 0; ++#X connect 6 0 7 0; ++#X connect 1 0 9 0; ++#X connect 5 0 6 0; ++#X connect 0 0 6 1; ++#X connect 6 1 8 0; ++#X obj 10 30 vsl 15 128 -70 4 0 0 \$0-volume/0x7f270c0158d0 \$0-volume/0x7f270c0158d0 0x7f270c0158d0 0 -8 0 10 -262144 -1 -1 0 1; ++#X obj 10 170 nbx 5 14 -70 4 0 0 \$0-volume/0x7f270c0158d0 \$0-volume/0x7f270c0158d0 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 47 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 67 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 682 10 s \$0-in; ++#X obj 798 10 s \$0-read; ++#X obj 914 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 18 0 19 0; ++#X obj 682 30 r \$0-active; ++#X msg 682 50 active \$1; ++#X connect 20 0 21 0; ++#X connect 21 0 15 0; ++#X obj 914 30 route active; ++#X obj 914 50 s \$0-active; ++#X connect 17 0 22 0; ++#X connect 22 0 23 0; ++#X msg 450 70 0; ++#X obj 450 90 s \$0-volume/0x7f270c0158d0; ++#X connect 14 0 24 0; ++#X connect 24 0 25 0; ++#X obj 682 70 r \$0-volume/0x7f270c0158d0; ++#X msg 682 90 /volume/0x7f270c0158d0 \$1; ++#X connect 26 0 27 0; ++#X connect 27 0 15 0; ++#X obj 914 70 route /volume/0x7f270c0158d0; ++#X obj 914 90 s \$0-volume/0x7f270c0158d0; ++#X connect 22 1 28 0; ++#X connect 28 0 29 0; ++#X coords 0 -1 1 1 85 200 1 0 0; ++#X text 0 220 Generated Tue Jan 16 18:57:56 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/faust/vumeter.dsp.xml +@@ -0,0 +1,40 @@ ++ ++ ++ vumeter ++ Grame ++ (c)GRAME 2006 ++ BSD ++ 1.0 ++ mydsp ++ 2 ++ 2 ++ ++ ++ 0 ++ ++ ++ ++ 2 ++ ++ ++ fHbargraph0 ++ -70.0f ++ 5.0f ++ ++ ++ ++ fHbargraph1 ++ -70.0f ++ 5.0f ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/faust/vumeter.pd +@@ -0,0 +1,70 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 150 inlet~; ++#X obj 130 150 inlet~; ++#X obj 10 150 inlet; ++#X obj 190 150 r \$0-read; ++#X obj 190 180 faust-control \$0; ++#X obj 190 210 s \$0-write; ++#X obj 10 210 r \$0-in; ++#X obj 10 240 vumeter~; ++#X obj 10 270 s \$0-out; ++#X obj 70 300 outlet~; ++#X obj 130 300 outlet~; ++#X obj 10 300 outlet; ++#X connect 2 0 4 0; ++#X connect 3 0 4 0; ++#X connect 4 0 5 0; ++#X connect 7 0 8 0; ++#X connect 2 0 11 0; ++#X connect 6 0 7 0; ++#X connect 0 0 7 1; ++#X connect 1 0 7 2; ++#X connect 7 1 9 0; ++#X connect 7 2 10 0; ++#X obj 10 30 hsl 128 15 -70 5 0 0 \$0-vumeter/0x55b96896da00 \$0-vumeter/0x55b96896da00 0x55b96896da00 -2 -6 0 10 -233017 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 -70 5 0 0 \$0-vumeter/0x55b96896da00 \$0-vumeter/0x55b96896da00 empty 0 -6 0 10 -233017 -1 -1 256; ++#X obj 10 60 hsl 128 15 -70 5 0 0 \$0-vumeter/0x55b96896e710 \$0-vumeter/0x55b96896e710 0x55b96896e710 -2 -6 0 10 -233017 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 -70 5 0 0 \$0-vumeter/0x55b96896e710 \$0-vumeter/0x55b96896e710 empty 0 -6 0 10 -233017 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 690 10 s \$0-in; ++#X obj 810 10 s \$0-read; ++#X obj 930 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 22 0 23 0; ++#X obj 690 30 r \$0-active; ++#X msg 690 50 active \$1; ++#X connect 24 0 25 0; ++#X connect 25 0 19 0; ++#X obj 930 30 route active; ++#X obj 930 50 s \$0-active; ++#X connect 21 0 26 0; ++#X connect 26 0 27 0; ++#X msg 450 70 0; ++#X obj 450 90 s \$0-vumeter/0x55b96896da00; ++#X connect 18 0 28 0; ++#X connect 28 0 29 0; ++#X obj 690 70 faust-timer \$0; ++#X msg 690 90 /vumeter/0x55b96896da00; ++#X connect 30 0 31 0; ++#X connect 31 0 20 0; ++#X obj 930 70 route /vumeter/0x55b96896da00; ++#X obj 930 90 s \$0-vumeter/0x55b96896da00; ++#X connect 26 1 32 0; ++#X connect 32 0 33 0; ++#X msg 450 110 0; ++#X obj 450 130 s \$0-vumeter/0x55b96896e710; ++#X connect 18 0 34 0; ++#X connect 34 0 35 0; ++#X obj 690 110 faust-timer \$0; ++#X msg 690 130 /vumeter/0x55b96896e710; ++#X connect 36 0 37 0; ++#X connect 37 0 20 0; ++#X obj 930 110 route /vumeter/0x55b96896e710; ++#X obj 930 130 s \$0-vumeter/0x55b96896e710; ++#X connect 32 1 38 0; ++#X connect 38 0 39 0; ++#X coords 0 -1 1 1 235 80 1 0 0; ++#X text 0 100 Generated Tue Jan 16 18:57:55 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/seqdemo/chorus.dsp.xml +@@ -0,0 +1,62 @@ ++ ++ ++ chorus ++ Albert Graef ++ ++ ++ 1.0 ++ mydsp ++ 2 ++ 2 ++ ++ ++ 4 ++ ++ ++ fHslider1 ++ 0.025000000000000001f ++ 0.0f ++ 0.20000000000000001f ++ 0.001f ++ ++ ++ ++ fHslider2 ++ 0.02f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fHslider3 ++ 2.0f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fHslider0 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.01f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/seqdemo/chorus.pd +@@ -0,0 +1,98 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 210 inlet~; ++#X obj 130 210 inlet~; ++#X obj 10 210 inlet; ++#X obj 190 210 r \$0-read; ++#X obj 190 240 faust-control \$0; ++#X obj 190 270 s \$0-write; ++#X obj 10 270 r \$0-in; ++#X obj 10 300 chorus~; ++#X obj 10 330 s \$0-out; ++#X obj 70 360 outlet~; ++#X obj 130 360 outlet~; ++#X obj 10 360 outlet; ++#X connect 2 0 4 0; ++#X connect 3 0 4 0; ++#X connect 4 0 5 0; ++#X connect 7 0 8 0; ++#X connect 2 0 11 0; ++#X connect 6 0 7 0; ++#X connect 0 0 7 1; ++#X connect 1 0 7 2; ++#X connect 7 1 9 0; ++#X connect 7 2 10 0; ++#X obj 10 30 hsl 128 15 0 0.2 0 0 \$0-chorus/delay \$0-chorus/delay delay -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 0 0.2 0 0 \$0-chorus/delay \$0-chorus/delay empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 0 1 0 0 \$0-chorus/depth \$0-chorus/depth depth -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 0 1 0 0 \$0-chorus/depth \$0-chorus/depth empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 hsl 128 15 0 10 0 0 \$0-chorus/freq \$0-chorus/freq freq -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 90 nbx 5 14 0 10 0 0 \$0-chorus/freq \$0-chorus/freq empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 120 hsl 128 15 0 1 0 0 \$0-chorus/level \$0-chorus/level level -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 120 nbx 5 14 0 1 0 0 \$0-chorus/level \$0-chorus/level empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 610 10 s \$0-in; ++#X obj 690 10 s \$0-read; ++#X obj 770 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 26 0 27 0; ++#X obj 610 30 r \$0-active; ++#X msg 610 50 active \$1; ++#X connect 28 0 29 0; ++#X connect 29 0 23 0; ++#X obj 770 30 route active; ++#X obj 770 50 s \$0-active; ++#X connect 25 0 30 0; ++#X connect 30 0 31 0; ++#X msg 450 70 0.025; ++#X obj 450 90 s \$0-chorus/delay; ++#X connect 22 0 32 0; ++#X connect 32 0 33 0; ++#X obj 610 70 r \$0-chorus/delay; ++#X msg 610 90 /chorus/delay \$1; ++#X connect 34 0 35 0; ++#X connect 35 0 23 0; ++#X obj 770 70 route /chorus/delay; ++#X obj 770 90 s \$0-chorus/delay; ++#X connect 30 1 36 0; ++#X connect 36 0 37 0; ++#X msg 450 110 0.02; ++#X obj 450 130 s \$0-chorus/depth; ++#X connect 22 0 38 0; ++#X connect 38 0 39 0; ++#X obj 610 110 r \$0-chorus/depth; ++#X msg 610 130 /chorus/depth \$1; ++#X connect 40 0 41 0; ++#X connect 41 0 23 0; ++#X obj 770 110 route /chorus/depth; ++#X obj 770 130 s \$0-chorus/depth; ++#X connect 36 1 42 0; ++#X connect 42 0 43 0; ++#X msg 450 150 2; ++#X obj 450 170 s \$0-chorus/freq; ++#X connect 22 0 44 0; ++#X connect 44 0 45 0; ++#X obj 610 150 r \$0-chorus/freq; ++#X msg 610 170 /chorus/freq \$1; ++#X connect 46 0 47 0; ++#X connect 47 0 23 0; ++#X obj 770 150 route /chorus/freq; ++#X obj 770 170 s \$0-chorus/freq; ++#X connect 42 1 48 0; ++#X connect 48 0 49 0; ++#X msg 450 190 0.5; ++#X obj 450 210 s \$0-chorus/level; ++#X connect 22 0 50 0; ++#X connect 50 0 51 0; ++#X obj 610 190 r \$0-chorus/level; ++#X msg 610 210 /chorus/level \$1; ++#X connect 52 0 53 0; ++#X connect 53 0 23 0; ++#X obj 770 190 route /chorus/level; ++#X obj 770 210 s \$0-chorus/level; ++#X connect 48 1 54 0; ++#X connect 54 0 55 0; ++#X coords 0 -1 1 1 235 140 1 0 0; ++#X text 0 160 Generated Tue Jan 16 18:58:11 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/seqdemo/freeverb.dsp.xml +@@ -0,0 +1,53 @@ ++ ++ ++ freeverb ++ Yann Orlarey ++ ++ ++ 1.0 ++ mydsp ++ 2 ++ 2 ++ ++ ++ 3 ++ ++ ++ fHslider2 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.025000000000000001f ++ ++ ++ ++ fHslider1 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.025000000000000001f ++ ++ ++ ++ fHslider0 ++ 0.33329999999999999f ++ 0.0f ++ 1.0f ++ 0.025000000000000001f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/seqdemo/freeverb.pd +@@ -0,0 +1,84 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 180 inlet~; ++#X obj 130 180 inlet~; ++#X obj 10 180 inlet; ++#X obj 190 180 r \$0-read; ++#X obj 190 210 faust-control \$0; ++#X obj 190 240 s \$0-write; ++#X obj 10 240 r \$0-in; ++#X obj 10 270 freeverb~; ++#X obj 10 300 s \$0-out; ++#X obj 70 330 outlet~; ++#X obj 130 330 outlet~; ++#X obj 10 330 outlet; ++#X connect 2 0 4 0; ++#X connect 3 0 4 0; ++#X connect 4 0 5 0; ++#X connect 7 0 8 0; ++#X connect 2 0 11 0; ++#X connect 6 0 7 0; ++#X connect 0 0 7 1; ++#X connect 1 0 7 2; ++#X connect 7 1 9 0; ++#X connect 7 2 10 0; ++#X obj 10 30 hsl 128 15 0 1 0 0 \$0-freeverb/damp \$0-freeverb/damp damp -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 0 1 0 0 \$0-freeverb/damp \$0-freeverb/damp empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 0 1 0 0 \$0-freeverb/roomsize \$0-freeverb/roomsize roomsize -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 0 1 0 0 \$0-freeverb/roomsize \$0-freeverb/roomsize empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 hsl 128 15 0 1 0 0 \$0-freeverb/wet \$0-freeverb/wet wet -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 90 nbx 5 14 0 1 0 0 \$0-freeverb/wet \$0-freeverb/wet empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 650 10 s \$0-in; ++#X obj 750 10 s \$0-read; ++#X obj 850 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 24 0 25 0; ++#X obj 650 30 r \$0-active; ++#X msg 650 50 active \$1; ++#X connect 26 0 27 0; ++#X connect 27 0 21 0; ++#X obj 850 30 route active; ++#X obj 850 50 s \$0-active; ++#X connect 23 0 28 0; ++#X connect 28 0 29 0; ++#X msg 450 70 0.5; ++#X obj 450 90 s \$0-freeverb/damp; ++#X connect 20 0 30 0; ++#X connect 30 0 31 0; ++#X obj 650 70 r \$0-freeverb/damp; ++#X msg 650 90 /freeverb/damp \$1; ++#X connect 32 0 33 0; ++#X connect 33 0 21 0; ++#X obj 850 70 route /freeverb/damp; ++#X obj 850 90 s \$0-freeverb/damp; ++#X connect 28 1 34 0; ++#X connect 34 0 35 0; ++#X msg 450 110 0.5; ++#X obj 450 130 s \$0-freeverb/roomsize; ++#X connect 20 0 36 0; ++#X connect 36 0 37 0; ++#X obj 650 110 r \$0-freeverb/roomsize; ++#X msg 650 130 /freeverb/roomsize \$1; ++#X connect 38 0 39 0; ++#X connect 39 0 21 0; ++#X obj 850 110 route /freeverb/roomsize; ++#X obj 850 130 s \$0-freeverb/roomsize; ++#X connect 34 1 40 0; ++#X connect 40 0 41 0; ++#X msg 450 150 0.3333; ++#X obj 450 170 s \$0-freeverb/wet; ++#X connect 20 0 42 0; ++#X connect 42 0 43 0; ++#X obj 650 150 r \$0-freeverb/wet; ++#X msg 650 170 /freeverb/wet \$1; ++#X connect 44 0 45 0; ++#X connect 45 0 21 0; ++#X obj 850 150 route /freeverb/wet; ++#X obj 850 170 s \$0-freeverb/wet; ++#X connect 40 1 46 0; ++#X connect 46 0 47 0; ++#X coords 0 -1 1 1 235 110 1 0 0; ++#X text 0 130 Generated Tue Jan 16 18:58:10 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/seqdemo/karplusplus.dsp.xml +@@ -0,0 +1,142 @@ ++ ++ ++ karplusplus ++ Yann Orlarey, Albert Graef ++ ++ ++ 1.0 ++ mydsp ++ 0 ++ 2 ++ ++ ++ 12 ++ ++ ++ fEntry2 ++ 1.0f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fButton0 ++ ++ ++ ++ fHslider7 ++ 512.0f ++ 1.0f ++ 1024.0f ++ 1.0f ++ ++ ++ ++ fHslider6 ++ 4.0f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fEntry1 ++ 440.0f ++ 20.0f ++ 20000.0f ++ 1.0f ++ ++ ++ ++ fHslider5 ++ 0.0f ++ 0.0f ++ 50.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry0 ++ 440.0f ++ 20.0f ++ 20000.0f ++ 1.0f ++ ++ ++ ++ fHslider0 ++ 1.0f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fHslider3 ++ 0.0f ++ 0.0f ++ 20.0f ++ 0.10000000000000001f ++ ++ ++ ++ fHslider4 ++ 20.0f ++ 1.0f ++ 20.0f ++ 0.10000000000000001f ++ ++ ++ ++ fHslider2 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.01f ++ ++ ++ ++ fHslider1 ++ 0.29999999999999999f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/seqdemo/karplusplus.pd +@@ -0,0 +1,163 @@ ++#N canvas 0 0 450 300 10; ++#X obj 10 330 inlet; ++#X obj 130 330 inlet; ++#X obj 190 330 r \$0-read; ++#X obj 130 360 r \$0-all; ++#X obj 190 360 faust-control \$0; ++#X obj 190 390 s \$0-write; ++#X obj 130 390 r \$0-in; ++#X obj 130 480 s \$0-out; ++#X obj 10 420 faust-gate 1; ++#X obj 130 420 karplusplus~; ++#X obj 10 450 faust-gate 2; ++#X obj 130 450 karplusplus~; ++#X obj 130 510 outlet~; ++#X obj 190 510 outlet~; ++#X obj 10 510 outlet; ++#X connect 1 0 4 0; ++#X connect 2 0 4 0; ++#X connect 4 0 5 0; ++#X connect 1 0 14 0; ++#X connect 6 0 9 0; ++#X connect 9 0 7 0; ++#X connect 0 0 8 0; ++#X connect 8 0 9 0; ++#X connect 3 0 9 0; ++#X connect 0 0 10 0; ++#X connect 10 0 11 0; ++#X connect 3 0 11 0; ++#X connect 9 1 12 0; ++#X connect 9 2 13 0; ++#X connect 11 1 12 0; ++#X connect 11 2 13 0; ++#X obj 10 30 hsl 128 15 1 1024 0 0 \$0-karplusplus/1-excitator/samples \$0-karplusplus/1-excitator/samples samples -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 1 1024 0 0 \$0-karplusplus/1-excitator/samples \$0-karplusplus/1-excitator/samples empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 0 10 0 0 \$0-karplusplus/2-resonator/decay-time \$0-karplusplus/2-resonator/decay-time decay-time -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 0 10 0 0 \$0-karplusplus/2-resonator/decay-time \$0-karplusplus/2-resonator/decay-time empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 hsl 128 15 0 50 0 0 \$0-karplusplus/3-fuzz/drive \$0-karplusplus/3-fuzz/drive drive -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 90 nbx 5 14 0 50 0 0 \$0-karplusplus/3-fuzz/drive \$0-karplusplus/3-fuzz/drive empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 120 hsl 128 15 0 10 0 0 \$0-karplusplus/3-fuzz/level \$0-karplusplus/3-fuzz/level level -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 120 nbx 5 14 0 10 0 0 \$0-karplusplus/3-fuzz/level \$0-karplusplus/3-fuzz/level empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 150 hsl 128 15 0 20 0 0 \$0-karplusplus/3-fuzz/res \$0-karplusplus/3-fuzz/res res -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 150 nbx 5 14 0 20 0 0 \$0-karplusplus/3-fuzz/res \$0-karplusplus/3-fuzz/res empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 180 hsl 128 15 1 20 0 0 \$0-karplusplus/3-fuzz/tone \$0-karplusplus/3-fuzz/tone tone -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 180 nbx 5 14 1 20 0 0 \$0-karplusplus/3-fuzz/tone \$0-karplusplus/3-fuzz/tone empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 210 hsl 128 15 0 1 0 0 \$0-karplusplus/4-master/pan \$0-karplusplus/4-master/pan pan -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 210 nbx 5 14 0 1 0 0 \$0-karplusplus/4-master/pan \$0-karplusplus/4-master/pan empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 240 hsl 128 15 0 10 0 0 \$0-karplusplus/4-master/vol \$0-karplusplus/4-master/vol vol -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 240 nbx 5 14 0 10 0 0 \$0-karplusplus/4-master/vol \$0-karplusplus/4-master/vol empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 786 10 s \$0-all; ++#X obj 954 10 s \$0-read; ++#X obj 1122 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 37 0 38 0; ++#X obj 786 30 r \$0-active; ++#X msg 786 50 active \$1; ++#X connect 39 0 40 0; ++#X connect 40 0 34 0; ++#X obj 1122 30 route active; ++#X obj 1122 50 s \$0-active; ++#X connect 36 0 41 0; ++#X connect 41 0 42 0; ++#X msg 450 70 512; ++#X obj 450 90 s \$0-karplusplus/1-excitator/samples; ++#X connect 33 0 43 0; ++#X connect 43 0 44 0; ++#X obj 786 70 r \$0-karplusplus/1-excitator/samples; ++#X msg 786 90 /karplusplus/1-excitator/samples \$1; ++#X connect 45 0 46 0; ++#X connect 46 0 34 0; ++#X obj 1122 70 route /karplusplus/1-excitator/samples; ++#X obj 1122 90 s \$0-karplusplus/1-excitator/samples; ++#X connect 41 1 47 0; ++#X connect 47 0 48 0; ++#X msg 450 110 4; ++#X obj 450 130 s \$0-karplusplus/2-resonator/decay-time; ++#X connect 33 0 49 0; ++#X connect 49 0 50 0; ++#X obj 786 110 r \$0-karplusplus/2-resonator/decay-time; ++#X msg 786 130 /karplusplus/2-resonator/decay-time \$1; ++#X connect 51 0 52 0; ++#X connect 52 0 34 0; ++#X obj 1122 110 route /karplusplus/2-resonator/decay-time; ++#X obj 1122 130 s \$0-karplusplus/2-resonator/decay-time; ++#X connect 47 1 53 0; ++#X connect 53 0 54 0; ++#X msg 450 150 0; ++#X obj 450 170 s \$0-karplusplus/3-fuzz/drive; ++#X connect 33 0 55 0; ++#X connect 55 0 56 0; ++#X obj 786 150 r \$0-karplusplus/3-fuzz/drive; ++#X msg 786 170 /karplusplus/3-fuzz/drive \$1; ++#X connect 57 0 58 0; ++#X connect 58 0 34 0; ++#X obj 1122 150 route /karplusplus/3-fuzz/drive; ++#X obj 1122 170 s \$0-karplusplus/3-fuzz/drive; ++#X connect 53 1 59 0; ++#X connect 59 0 60 0; ++#X msg 450 190 1; ++#X obj 450 210 s \$0-karplusplus/3-fuzz/level; ++#X connect 33 0 61 0; ++#X connect 61 0 62 0; ++#X obj 786 190 r \$0-karplusplus/3-fuzz/level; ++#X msg 786 210 /karplusplus/3-fuzz/level \$1; ++#X connect 63 0 64 0; ++#X connect 64 0 34 0; ++#X obj 1122 190 route /karplusplus/3-fuzz/level; ++#X obj 1122 210 s \$0-karplusplus/3-fuzz/level; ++#X connect 59 1 65 0; ++#X connect 65 0 66 0; ++#X msg 450 230 0; ++#X obj 450 250 s \$0-karplusplus/3-fuzz/res; ++#X connect 33 0 67 0; ++#X connect 67 0 68 0; ++#X obj 786 230 r \$0-karplusplus/3-fuzz/res; ++#X msg 786 250 /karplusplus/3-fuzz/res \$1; ++#X connect 69 0 70 0; ++#X connect 70 0 34 0; ++#X obj 1122 230 route /karplusplus/3-fuzz/res; ++#X obj 1122 250 s \$0-karplusplus/3-fuzz/res; ++#X connect 65 1 71 0; ++#X connect 71 0 72 0; ++#X msg 450 270 20; ++#X obj 450 290 s \$0-karplusplus/3-fuzz/tone; ++#X connect 33 0 73 0; ++#X connect 73 0 74 0; ++#X obj 786 270 r \$0-karplusplus/3-fuzz/tone; ++#X msg 786 290 /karplusplus/3-fuzz/tone \$1; ++#X connect 75 0 76 0; ++#X connect 76 0 34 0; ++#X obj 1122 270 route /karplusplus/3-fuzz/tone; ++#X obj 1122 290 s \$0-karplusplus/3-fuzz/tone; ++#X connect 71 1 77 0; ++#X connect 77 0 78 0; ++#X msg 450 310 0.5; ++#X obj 450 330 s \$0-karplusplus/4-master/pan; ++#X connect 33 0 79 0; ++#X connect 79 0 80 0; ++#X obj 786 310 r \$0-karplusplus/4-master/pan; ++#X msg 786 330 /karplusplus/4-master/pan \$1; ++#X connect 81 0 82 0; ++#X connect 82 0 34 0; ++#X obj 1122 310 route /karplusplus/4-master/pan; ++#X obj 1122 330 s \$0-karplusplus/4-master/pan; ++#X connect 77 1 83 0; ++#X connect 83 0 84 0; ++#X msg 450 350 0.3; ++#X obj 450 370 s \$0-karplusplus/4-master/vol; ++#X connect 33 0 85 0; ++#X connect 85 0 86 0; ++#X obj 786 350 r \$0-karplusplus/4-master/vol; ++#X msg 786 370 /karplusplus/4-master/vol \$1; ++#X connect 87 0 88 0; ++#X connect 88 0 34 0; ++#X obj 1122 350 route /karplusplus/4-master/vol; ++#X obj 1122 370 s \$0-karplusplus/4-master/vol; ++#X connect 83 1 89 0; ++#X connect 89 0 90 0; ++#X coords 0 -1 1 1 235 260 1 0 0; ++#X text 0 280 Generated Tue Jan 16 18:58:10 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/seqdemo/organ.dsp.xml +@@ -0,0 +1,109 @@ ++ ++ ++ organ ++ Albert Graef ++ ++ ++ 1.0 ++ mydsp ++ 0 ++ 2 ++ ++ ++ 9 ++ ++ ++ fHslider2 ++ 0.01f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fHslider4 ++ 0.29999999999999999f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fHslider5 ++ 0.20000000000000001f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fHslider3 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.01f ++ ++ ++ ++ fHslider1 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.01f ++ ++ ++ ++ fHslider0 ++ 0.29999999999999999f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fEntry1 ++ 440.0f ++ 20.0f ++ 20000.0f ++ 1.0f ++ ++ ++ ++ fEntry0 ++ 0.29999999999999999f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fButton0 ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/seqdemo/organ.pd +@@ -0,0 +1,135 @@ ++#N canvas 0 0 450 300 10; ++#X obj 10 270 inlet; ++#X obj 130 270 inlet; ++#X obj 190 270 r \$0-read; ++#X obj 130 300 r \$0-all; ++#X obj 190 300 faust-control \$0; ++#X obj 190 330 s \$0-write; ++#X obj 130 330 r \$0-in; ++#X obj 130 420 s \$0-out; ++#X obj 10 360 faust-gate 1; ++#X obj 130 360 organ~; ++#X obj 10 390 faust-gate 2; ++#X obj 130 390 organ~; ++#X obj 130 450 outlet~; ++#X obj 190 450 outlet~; ++#X obj 10 450 outlet; ++#X connect 1 0 4 0; ++#X connect 2 0 4 0; ++#X connect 4 0 5 0; ++#X connect 1 0 14 0; ++#X connect 6 0 9 0; ++#X connect 9 0 7 0; ++#X connect 0 0 8 0; ++#X connect 8 0 9 0; ++#X connect 3 0 9 0; ++#X connect 0 0 10 0; ++#X connect 10 0 11 0; ++#X connect 3 0 11 0; ++#X connect 9 1 12 0; ++#X connect 9 2 13 0; ++#X connect 11 1 12 0; ++#X connect 11 2 13 0; ++#X obj 10 30 hsl 128 15 0 1 0 0 \$0-organ/1-adsr/attack \$0-organ/1-adsr/attack attack -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 0 1 0 0 \$0-organ/1-adsr/attack \$0-organ/1-adsr/attack empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 0 1 0 0 \$0-organ/1-adsr/decay \$0-organ/1-adsr/decay decay -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 0 1 0 0 \$0-organ/1-adsr/decay \$0-organ/1-adsr/decay empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 hsl 128 15 0 1 0 0 \$0-organ/1-adsr/release \$0-organ/1-adsr/release release -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 90 nbx 5 14 0 1 0 0 \$0-organ/1-adsr/release \$0-organ/1-adsr/release empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 120 hsl 128 15 0 1 0 0 \$0-organ/1-adsr/sustain \$0-organ/1-adsr/sustain sustain -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 120 nbx 5 14 0 1 0 0 \$0-organ/1-adsr/sustain \$0-organ/1-adsr/sustain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 150 hsl 128 15 0 1 0 0 \$0-organ/2-master/pan \$0-organ/2-master/pan pan -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 150 nbx 5 14 0 1 0 0 \$0-organ/2-master/pan \$0-organ/2-master/pan empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 180 hsl 128 15 0 10 0 0 \$0-organ/2-master/vol \$0-organ/2-master/vol vol -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 180 nbx 5 14 0 10 0 0 \$0-organ/2-master/vol \$0-organ/2-master/vol empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 674 10 s \$0-all; ++#X obj 786 10 s \$0-read; ++#X obj 898 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 33 0 34 0; ++#X obj 674 30 r \$0-active; ++#X msg 674 50 active \$1; ++#X connect 35 0 36 0; ++#X connect 36 0 30 0; ++#X obj 898 30 route active; ++#X obj 898 50 s \$0-active; ++#X connect 32 0 37 0; ++#X connect 37 0 38 0; ++#X msg 450 70 0.01; ++#X obj 450 90 s \$0-organ/1-adsr/attack; ++#X connect 29 0 39 0; ++#X connect 39 0 40 0; ++#X obj 674 70 r \$0-organ/1-adsr/attack; ++#X msg 674 90 /organ/1-adsr/attack \$1; ++#X connect 41 0 42 0; ++#X connect 42 0 30 0; ++#X obj 898 70 route /organ/1-adsr/attack; ++#X obj 898 90 s \$0-organ/1-adsr/attack; ++#X connect 37 1 43 0; ++#X connect 43 0 44 0; ++#X msg 450 110 0.3; ++#X obj 450 130 s \$0-organ/1-adsr/decay; ++#X connect 29 0 45 0; ++#X connect 45 0 46 0; ++#X obj 674 110 r \$0-organ/1-adsr/decay; ++#X msg 674 130 /organ/1-adsr/decay \$1; ++#X connect 47 0 48 0; ++#X connect 48 0 30 0; ++#X obj 898 110 route /organ/1-adsr/decay; ++#X obj 898 130 s \$0-organ/1-adsr/decay; ++#X connect 43 1 49 0; ++#X connect 49 0 50 0; ++#X msg 450 150 0.2; ++#X obj 450 170 s \$0-organ/1-adsr/release; ++#X connect 29 0 51 0; ++#X connect 51 0 52 0; ++#X obj 674 150 r \$0-organ/1-adsr/release; ++#X msg 674 170 /organ/1-adsr/release \$1; ++#X connect 53 0 54 0; ++#X connect 54 0 30 0; ++#X obj 898 150 route /organ/1-adsr/release; ++#X obj 898 170 s \$0-organ/1-adsr/release; ++#X connect 49 1 55 0; ++#X connect 55 0 56 0; ++#X msg 450 190 0.5; ++#X obj 450 210 s \$0-organ/1-adsr/sustain; ++#X connect 29 0 57 0; ++#X connect 57 0 58 0; ++#X obj 674 190 r \$0-organ/1-adsr/sustain; ++#X msg 674 210 /organ/1-adsr/sustain \$1; ++#X connect 59 0 60 0; ++#X connect 60 0 30 0; ++#X obj 898 190 route /organ/1-adsr/sustain; ++#X obj 898 210 s \$0-organ/1-adsr/sustain; ++#X connect 55 1 61 0; ++#X connect 61 0 62 0; ++#X msg 450 230 0.5; ++#X obj 450 250 s \$0-organ/2-master/pan; ++#X connect 29 0 63 0; ++#X connect 63 0 64 0; ++#X obj 674 230 r \$0-organ/2-master/pan; ++#X msg 674 250 /organ/2-master/pan \$1; ++#X connect 65 0 66 0; ++#X connect 66 0 30 0; ++#X obj 898 230 route /organ/2-master/pan; ++#X obj 898 250 s \$0-organ/2-master/pan; ++#X connect 61 1 67 0; ++#X connect 67 0 68 0; ++#X msg 450 270 0.3; ++#X obj 450 290 s \$0-organ/2-master/vol; ++#X connect 29 0 69 0; ++#X connect 69 0 70 0; ++#X obj 674 270 r \$0-organ/2-master/vol; ++#X msg 674 290 /organ/2-master/vol \$1; ++#X connect 71 0 72 0; ++#X connect 72 0 30 0; ++#X obj 898 270 route /organ/2-master/vol; ++#X obj 898 290 s \$0-organ/2-master/vol; ++#X connect 67 1 73 0; ++#X connect 73 0 74 0; ++#X coords 0 -1 1 1 235 200 1 0 0; ++#X text 0 220 Generated Tue Jan 16 18:58:10 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/seqdemo/subtractive.dsp.xml +@@ -0,0 +1,130 @@ ++ ++ ++ subtractive ++ Albert Graef ++ ++ ++ 1.0 ++ mydsp ++ 0 ++ 2 ++ ++ ++ 11 ++ ++ ++ fHslider2 ++ 0.01f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fHslider4 ++ 0.29999999999999999f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fHslider5 ++ 0.20000000000000001f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fHslider3 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.01f ++ ++ ++ ++ fHslider6 ++ 6.0f ++ 1.0f ++ 20.0f ++ 0.10000000000000001f ++ ++ ++ ++ fHslider7 ++ 3.0f ++ 0.0f ++ 20.0f ++ 0.10000000000000001f ++ ++ ++ ++ fHslider1 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.01f ++ ++ ++ ++ fHslider0 ++ 0.29999999999999999f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fEntry1 ++ 440.0f ++ 20.0f ++ 20000.0f ++ 1.0f ++ ++ ++ ++ fEntry0 ++ 1.0f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fButton0 ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/seqdemo/subtractive.pd +@@ -0,0 +1,163 @@ ++#N canvas 0 0 450 300 10; ++#X obj 10 330 inlet; ++#X obj 130 330 inlet; ++#X obj 190 330 r \$0-read; ++#X obj 130 360 r \$0-all; ++#X obj 190 360 faust-control \$0; ++#X obj 190 390 s \$0-write; ++#X obj 130 390 r \$0-in; ++#X obj 130 480 s \$0-out; ++#X obj 10 420 faust-gate 1; ++#X obj 130 420 subtractive~; ++#X obj 10 450 faust-gate 2; ++#X obj 130 450 subtractive~; ++#X obj 130 510 outlet~; ++#X obj 190 510 outlet~; ++#X obj 10 510 outlet; ++#X connect 1 0 4 0; ++#X connect 2 0 4 0; ++#X connect 4 0 5 0; ++#X connect 1 0 14 0; ++#X connect 6 0 9 0; ++#X connect 9 0 7 0; ++#X connect 0 0 8 0; ++#X connect 8 0 9 0; ++#X connect 3 0 9 0; ++#X connect 0 0 10 0; ++#X connect 10 0 11 0; ++#X connect 3 0 11 0; ++#X connect 9 1 12 0; ++#X connect 9 2 13 0; ++#X connect 11 1 12 0; ++#X connect 11 2 13 0; ++#X obj 10 30 hsl 128 15 0 1 0 0 \$0-subtractive/1-adsr/attack \$0-subtractive/1-adsr/attack attack -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 0 1 0 0 \$0-subtractive/1-adsr/attack \$0-subtractive/1-adsr/attack empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 0 1 0 0 \$0-subtractive/1-adsr/decay \$0-subtractive/1-adsr/decay decay -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 0 1 0 0 \$0-subtractive/1-adsr/decay \$0-subtractive/1-adsr/decay empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 hsl 128 15 0 1 0 0 \$0-subtractive/1-adsr/release \$0-subtractive/1-adsr/release release -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 90 nbx 5 14 0 1 0 0 \$0-subtractive/1-adsr/release \$0-subtractive/1-adsr/release empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 120 hsl 128 15 0 1 0 0 \$0-subtractive/1-adsr/sustain \$0-subtractive/1-adsr/sustain sustain -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 120 nbx 5 14 0 1 0 0 \$0-subtractive/1-adsr/sustain \$0-subtractive/1-adsr/sustain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 150 hsl 128 15 1 20 0 0 \$0-subtractive/2-filter/cutoff-harmonic \$0-subtractive/2-filter/cutoff-harmonic cutoff-harmonic -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 150 nbx 5 14 1 20 0 0 \$0-subtractive/2-filter/cutoff-harmonic \$0-subtractive/2-filter/cutoff-harmonic empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 180 hsl 128 15 0 20 0 0 \$0-subtractive/2-filter/resonance-dB \$0-subtractive/2-filter/resonance-dB resonance-dB -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 180 nbx 5 14 0 20 0 0 \$0-subtractive/2-filter/resonance-dB \$0-subtractive/2-filter/resonance-dB empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 210 hsl 128 15 0 1 0 0 \$0-subtractive/3-master/pan \$0-subtractive/3-master/pan pan -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 210 nbx 5 14 0 1 0 0 \$0-subtractive/3-master/pan \$0-subtractive/3-master/pan empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 240 hsl 128 15 0 10 0 0 \$0-subtractive/3-master/vol \$0-subtractive/3-master/vol vol -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 240 nbx 5 14 0 10 0 0 \$0-subtractive/3-master/vol \$0-subtractive/3-master/vol empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 802 10 s \$0-all; ++#X obj 978 10 s \$0-read; ++#X obj 1154 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 37 0 38 0; ++#X obj 802 30 r \$0-active; ++#X msg 802 50 active \$1; ++#X connect 39 0 40 0; ++#X connect 40 0 34 0; ++#X obj 1154 30 route active; ++#X obj 1154 50 s \$0-active; ++#X connect 36 0 41 0; ++#X connect 41 0 42 0; ++#X msg 450 70 0.01; ++#X obj 450 90 s \$0-subtractive/1-adsr/attack; ++#X connect 33 0 43 0; ++#X connect 43 0 44 0; ++#X obj 802 70 r \$0-subtractive/1-adsr/attack; ++#X msg 802 90 /subtractive/1-adsr/attack \$1; ++#X connect 45 0 46 0; ++#X connect 46 0 34 0; ++#X obj 1154 70 route /subtractive/1-adsr/attack; ++#X obj 1154 90 s \$0-subtractive/1-adsr/attack; ++#X connect 41 1 47 0; ++#X connect 47 0 48 0; ++#X msg 450 110 0.3; ++#X obj 450 130 s \$0-subtractive/1-adsr/decay; ++#X connect 33 0 49 0; ++#X connect 49 0 50 0; ++#X obj 802 110 r \$0-subtractive/1-adsr/decay; ++#X msg 802 130 /subtractive/1-adsr/decay \$1; ++#X connect 51 0 52 0; ++#X connect 52 0 34 0; ++#X obj 1154 110 route /subtractive/1-adsr/decay; ++#X obj 1154 130 s \$0-subtractive/1-adsr/decay; ++#X connect 47 1 53 0; ++#X connect 53 0 54 0; ++#X msg 450 150 0.2; ++#X obj 450 170 s \$0-subtractive/1-adsr/release; ++#X connect 33 0 55 0; ++#X connect 55 0 56 0; ++#X obj 802 150 r \$0-subtractive/1-adsr/release; ++#X msg 802 170 /subtractive/1-adsr/release \$1; ++#X connect 57 0 58 0; ++#X connect 58 0 34 0; ++#X obj 1154 150 route /subtractive/1-adsr/release; ++#X obj 1154 170 s \$0-subtractive/1-adsr/release; ++#X connect 53 1 59 0; ++#X connect 59 0 60 0; ++#X msg 450 190 0.5; ++#X obj 450 210 s \$0-subtractive/1-adsr/sustain; ++#X connect 33 0 61 0; ++#X connect 61 0 62 0; ++#X obj 802 190 r \$0-subtractive/1-adsr/sustain; ++#X msg 802 210 /subtractive/1-adsr/sustain \$1; ++#X connect 63 0 64 0; ++#X connect 64 0 34 0; ++#X obj 1154 190 route /subtractive/1-adsr/sustain; ++#X obj 1154 210 s \$0-subtractive/1-adsr/sustain; ++#X connect 59 1 65 0; ++#X connect 65 0 66 0; ++#X msg 450 230 6; ++#X obj 450 250 s \$0-subtractive/2-filter/cutoff-harmonic; ++#X connect 33 0 67 0; ++#X connect 67 0 68 0; ++#X obj 802 230 r \$0-subtractive/2-filter/cutoff-harmonic; ++#X msg 802 250 /subtractive/2-filter/cutoff-harmonic \$1; ++#X connect 69 0 70 0; ++#X connect 70 0 34 0; ++#X obj 1154 230 route /subtractive/2-filter/cutoff-harmonic; ++#X obj 1154 250 s \$0-subtractive/2-filter/cutoff-harmonic; ++#X connect 65 1 71 0; ++#X connect 71 0 72 0; ++#X msg 450 270 3; ++#X obj 450 290 s \$0-subtractive/2-filter/resonance-dB; ++#X connect 33 0 73 0; ++#X connect 73 0 74 0; ++#X obj 802 270 r \$0-subtractive/2-filter/resonance-dB; ++#X msg 802 290 /subtractive/2-filter/resonance-dB \$1; ++#X connect 75 0 76 0; ++#X connect 76 0 34 0; ++#X obj 1154 270 route /subtractive/2-filter/resonance-dB; ++#X obj 1154 290 s \$0-subtractive/2-filter/resonance-dB; ++#X connect 71 1 77 0; ++#X connect 77 0 78 0; ++#X msg 450 310 0.5; ++#X obj 450 330 s \$0-subtractive/3-master/pan; ++#X connect 33 0 79 0; ++#X connect 79 0 80 0; ++#X obj 802 310 r \$0-subtractive/3-master/pan; ++#X msg 802 330 /subtractive/3-master/pan \$1; ++#X connect 81 0 82 0; ++#X connect 82 0 34 0; ++#X obj 1154 310 route /subtractive/3-master/pan; ++#X obj 1154 330 s \$0-subtractive/3-master/pan; ++#X connect 77 1 83 0; ++#X connect 83 0 84 0; ++#X msg 450 350 0.3; ++#X obj 450 370 s \$0-subtractive/3-master/vol; ++#X connect 33 0 85 0; ++#X connect 85 0 86 0; ++#X obj 802 350 r \$0-subtractive/3-master/vol; ++#X msg 802 370 /subtractive/3-master/vol \$1; ++#X connect 87 0 88 0; ++#X connect 88 0 34 0; ++#X obj 1154 350 route /subtractive/3-master/vol; ++#X obj 1154 370 s \$0-subtractive/3-master/vol; ++#X connect 83 1 89 0; ++#X connect 89 0 90 0; ++#X coords 0 -1 1 1 235 260 1 0 0; ++#X text 0 280 Generated Tue Jan 16 18:58:11 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/synth/amp.dsp.xml +@@ -0,0 +1,91 @@ ++ ++ ++ amp ++ Albert Graef ++ ++ ++ 1.0 ++ mydsp ++ 2 ++ 2 ++ ++ ++ 4 ++ ++ ++ fEntry2 ++ 0.0f ++ -20.0f ++ 20.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry1 ++ 0.0f ++ -20.0f ++ 20.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry0 ++ 0.0f ++ -96.0f ++ 96.0f ++ 0.10000000000000001f ++ ++ ++ ++ fHslider0 ++ 0.0f ++ -1.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ ++ 2 ++ ++ ++ fHbargraph0 ++ -96.0f ++ 10.0f ++ ++ ++ ++ fHbargraph1 ++ -96.0f ++ 10.0f ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/synth/amp.pd +@@ -0,0 +1,123 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 210 inlet~; ++#X obj 130 210 inlet~; ++#X obj 10 210 inlet; ++#X obj 190 210 r \$0-read; ++#X obj 190 240 faust-control \$0; ++#X obj 190 270 s \$0-write; ++#X obj 10 270 r \$0-in; ++#X obj 10 300 amp~; ++#X obj 10 330 s \$0-out; ++#X obj 70 360 outlet~; ++#X obj 130 360 outlet~; ++#X obj 10 360 outlet; ++#X connect 2 0 4 0; ++#X connect 3 0 4 0; ++#X connect 4 0 5 0; ++#X connect 7 0 8 0; ++#X connect 2 0 11 0; ++#X connect 6 0 7 0; ++#X connect 0 0 7 1; ++#X connect 1 0 7 2; ++#X connect 7 1 9 0; ++#X connect 7 2 10 0; ++#X obj 10 30 nbx 5 14 -20 20 0 0 \$0-amp/0-amp/1-tone/bass \$0-amp/0-amp/1-tone/bass bass 0 -6 0 10 -262144 -1 -1 256; ++#X obj 85 30 nbx 5 14 -20 20 0 0 \$0-amp/0-amp/1-tone/treble \$0-amp/0-amp/1-tone/treble treble 0 -6 0 10 -262144 -1 -1 256; ++#X obj 160 30 nbx 5 14 -96 96 0 0 \$0-amp/0-amp/2-gain/gain \$0-amp/0-amp/2-gain/gain gain 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 -1 1 0 0 \$0-amp/3-balance/balance \$0-amp/3-balance/balance balance -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 -1 1 0 0 \$0-amp/3-balance/balance \$0-amp/3-balance/balance empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 hsl 128 15 -96 10 0 0 \$0-amp/4-meter/left \$0-amp/4-meter/left left -2 -6 0 10 -233017 -1 -1 0 1; ++#X obj 160 90 nbx 5 14 -96 10 0 0 \$0-amp/4-meter/left \$0-amp/4-meter/left empty 0 -6 0 10 -233017 -1 -1 256; ++#X obj 10 120 hsl 128 15 -96 10 0 0 \$0-amp/4-meter/right \$0-amp/4-meter/right right -2 -6 0 10 -233017 -1 -1 0 1; ++#X obj 160 120 nbx 5 14 -96 10 0 0 \$0-amp/4-meter/right \$0-amp/4-meter/right empty 0 -6 0 10 -233017 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 698 10 s \$0-in; ++#X obj 822 10 s \$0-read; ++#X obj 946 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 27 0 28 0; ++#X obj 698 30 r \$0-active; ++#X msg 698 50 active \$1; ++#X connect 29 0 30 0; ++#X connect 30 0 24 0; ++#X obj 946 30 route active; ++#X obj 946 50 s \$0-active; ++#X connect 26 0 31 0; ++#X connect 31 0 32 0; ++#X msg 450 70 0; ++#X obj 450 90 s \$0-amp/0-amp/1-tone/bass; ++#X connect 23 0 33 0; ++#X connect 33 0 34 0; ++#X obj 698 70 r \$0-amp/0-amp/1-tone/bass; ++#X msg 698 90 /amp/0-amp/1-tone/bass \$1; ++#X connect 35 0 36 0; ++#X connect 36 0 24 0; ++#X obj 946 70 route /amp/0-amp/1-tone/bass; ++#X obj 946 90 s \$0-amp/0-amp/1-tone/bass; ++#X connect 31 1 37 0; ++#X connect 37 0 38 0; ++#X msg 450 110 0; ++#X obj 450 130 s \$0-amp/0-amp/1-tone/treble; ++#X connect 23 0 39 0; ++#X connect 39 0 40 0; ++#X obj 698 110 r \$0-amp/0-amp/1-tone/treble; ++#X msg 698 130 /amp/0-amp/1-tone/treble \$1; ++#X connect 41 0 42 0; ++#X connect 42 0 24 0; ++#X obj 946 110 route /amp/0-amp/1-tone/treble; ++#X obj 946 130 s \$0-amp/0-amp/1-tone/treble; ++#X connect 37 1 43 0; ++#X connect 43 0 44 0; ++#X msg 450 150 0; ++#X obj 450 170 s \$0-amp/0-amp/2-gain/gain; ++#X connect 23 0 45 0; ++#X connect 45 0 46 0; ++#X obj 698 150 r \$0-amp/0-amp/2-gain/gain; ++#X msg 698 170 /amp/0-amp/2-gain/gain \$1; ++#X connect 47 0 48 0; ++#X connect 48 0 24 0; ++#X obj 946 150 route /amp/0-amp/2-gain/gain; ++#X obj 946 170 s \$0-amp/0-amp/2-gain/gain; ++#X connect 43 1 49 0; ++#X connect 49 0 50 0; ++#X msg 450 190 0; ++#X obj 450 210 s \$0-amp/3-balance/balance; ++#X connect 23 0 51 0; ++#X connect 51 0 52 0; ++#X obj 698 190 r \$0-amp/3-balance/balance; ++#X msg 698 210 /amp/3-balance/balance \$1; ++#X connect 53 0 54 0; ++#X connect 54 0 24 0; ++#X obj 946 190 route /amp/3-balance/balance; ++#X obj 946 210 s \$0-amp/3-balance/balance; ++#X connect 49 1 55 0; ++#X connect 55 0 56 0; ++#X msg 450 230 0; ++#X obj 450 250 s \$0-amp/4-meter/left; ++#X connect 23 0 57 0; ++#X connect 57 0 58 0; ++#X obj 698 230 faust-timer \$0; ++#X msg 698 250 /amp/4-meter/left; ++#X connect 59 0 60 0; ++#X connect 60 0 25 0; ++#X obj 946 230 route /amp/4-meter/left; ++#X obj 946 250 s \$0-amp/4-meter/left; ++#X connect 55 1 61 0; ++#X connect 61 0 62 0; ++#X msg 450 270 0; ++#X obj 450 290 s \$0-amp/4-meter/right; ++#X connect 23 0 63 0; ++#X connect 63 0 64 0; ++#X obj 698 270 faust-timer \$0; ++#X msg 698 290 /amp/4-meter/right; ++#X connect 65 0 66 0; ++#X connect 66 0 25 0; ++#X obj 946 270 route /amp/4-meter/right; ++#X obj 946 290 s \$0-amp/4-meter/right; ++#X connect 61 1 67 0; ++#X connect 67 0 68 0; ++#X coords 0 -1 1 1 235 140 1 0 0; ++#X text 0 160 Generated Tue Jan 16 18:58:06 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/synth/chimes.pd +@@ -0,0 +1,394 @@ ++#N canvas 0 0 450 300 10; ++#X obj 10 330 inlet; ++#X obj 130 330 inlet; ++#X obj 190 330 r \$0-read; ++#X obj 130 360 r \$0-all; ++#X obj 190 360 faust-control \$0; ++#X obj 190 390 s \$0-write; ++#X obj 130 390 r \$0-in; ++#X obj 130 660 s \$0-out; ++#X obj 10 420 faust-gate 1; ++#X obj 130 420 chimes~; ++#X obj 10 450 faust-gate 2; ++#X obj 130 450 chimes~; ++#X obj 10 480 faust-gate 3; ++#X obj 130 480 chimes~; ++#X obj 10 510 faust-gate 4; ++#X obj 130 510 chimes~; ++#X obj 10 540 faust-gate 5; ++#X obj 130 540 chimes~; ++#X obj 10 570 faust-gate 6; ++#X obj 130 570 chimes~; ++#X obj 10 600 faust-gate 7; ++#X obj 130 600 chimes~; ++#X obj 10 630 faust-gate 8; ++#X obj 130 630 chimes~; ++#X obj 130 690 outlet~; ++#X obj 190 690 outlet~; ++#X obj 10 690 outlet; ++#X connect 1 0 4 0; ++#X connect 2 0 4 0; ++#X connect 4 0 5 0; ++#X connect 1 0 26 0; ++#X connect 6 0 9 0; ++#X connect 9 0 7 0; ++#X connect 0 0 8 0; ++#X connect 8 0 9 0; ++#X connect 3 0 9 0; ++#X connect 0 0 10 0; ++#X connect 10 0 11 0; ++#X connect 3 0 11 0; ++#X connect 0 0 12 0; ++#X connect 12 0 13 0; ++#X connect 3 0 13 0; ++#X connect 0 0 14 0; ++#X connect 14 0 15 0; ++#X connect 3 0 15 0; ++#X connect 0 0 16 0; ++#X connect 16 0 17 0; ++#X connect 3 0 17 0; ++#X connect 0 0 18 0; ++#X connect 18 0 19 0; ++#X connect 3 0 19 0; ++#X connect 0 0 20 0; ++#X connect 20 0 21 0; ++#X connect 3 0 21 0; ++#X connect 0 0 22 0; ++#X connect 22 0 23 0; ++#X connect 3 0 23 0; ++#X connect 9 1 24 0; ++#X connect 9 2 25 0; ++#X connect 11 1 24 0; ++#X connect 11 2 25 0; ++#X connect 13 1 24 0; ++#X connect 13 2 25 0; ++#X connect 15 1 24 0; ++#X connect 15 2 25 0; ++#X connect 17 1 24 0; ++#X connect 17 2 25 0; ++#X connect 19 1 24 0; ++#X connect 19 2 25 0; ++#X connect 21 1 24 0; ++#X connect 21 2 25 0; ++#X connect 23 1 24 0; ++#X connect 23 2 25 0; ++#X obj 10 30 nbx 5 14 0 1 0 0 \$0-chimes/1-excitator/decay \$0-chimes/1-excitator/decay decay 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 nbx 5 14 0 1 0 0 \$0-chimes/2-resonator-0/amplitude0 \$0-chimes/2-resonator-0/amplitude0 amplitude0 0 -6 0 10 -262144 -1 -1 256; ++#X obj 85 60 nbx 5 14 0 10 0 0 \$0-chimes/2-resonator-0/decay0 \$0-chimes/2-resonator-0/decay0 decay0 0 -6 0 10 -262144 -1 -1 256; ++#X obj 160 60 nbx 5 14 0 50 0 0 \$0-chimes/2-resonator-0/harmonic0 \$0-chimes/2-resonator-0/harmonic0 harmonic0 0 -6 0 10 -262144 -1 -1 256; ++#X obj 235 60 nbx 5 14 0 1 0 0 \$0-chimes/2-resonator-0/rq0 \$0-chimes/2-resonator-0/rq0 rq0 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 nbx 5 14 0 1 0 0 \$0-chimes/2-resonator-1/amplitude1 \$0-chimes/2-resonator-1/amplitude1 amplitude1 0 -6 0 10 -262144 -1 -1 256; ++#X obj 85 90 nbx 5 14 0 10 0 0 \$0-chimes/2-resonator-1/decay1 \$0-chimes/2-resonator-1/decay1 decay1 0 -6 0 10 -262144 -1 -1 256; ++#X obj 160 90 nbx 5 14 0 50 0 0 \$0-chimes/2-resonator-1/harmonic1 \$0-chimes/2-resonator-1/harmonic1 harmonic1 0 -6 0 10 -262144 -1 -1 256; ++#X obj 235 90 nbx 5 14 0 1 0 0 \$0-chimes/2-resonator-1/rq1 \$0-chimes/2-resonator-1/rq1 rq1 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 120 nbx 5 14 0 1 0 0 \$0-chimes/2-resonator-2/amplitude2 \$0-chimes/2-resonator-2/amplitude2 amplitude2 0 -6 0 10 -262144 -1 -1 256; ++#X obj 85 120 nbx 5 14 0 10 0 0 \$0-chimes/2-resonator-2/decay2 \$0-chimes/2-resonator-2/decay2 decay2 0 -6 0 10 -262144 -1 -1 256; ++#X obj 160 120 nbx 5 14 0 50 0 0 \$0-chimes/2-resonator-2/harmonic2 \$0-chimes/2-resonator-2/harmonic2 harmonic2 0 -6 0 10 -262144 -1 -1 256; ++#X obj 235 120 nbx 5 14 0 1 0 0 \$0-chimes/2-resonator-2/rq2 \$0-chimes/2-resonator-2/rq2 rq2 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 150 nbx 5 14 0 1 0 0 \$0-chimes/2-resonator-3/amplitude3 \$0-chimes/2-resonator-3/amplitude3 amplitude3 0 -6 0 10 -262144 -1 -1 256; ++#X obj 85 150 nbx 5 14 0 10 0 0 \$0-chimes/2-resonator-3/decay3 \$0-chimes/2-resonator-3/decay3 decay3 0 -6 0 10 -262144 -1 -1 256; ++#X obj 160 150 nbx 5 14 0 50 0 0 \$0-chimes/2-resonator-3/harmonic3 \$0-chimes/2-resonator-3/harmonic3 harmonic3 0 -6 0 10 -262144 -1 -1 256; ++#X obj 235 150 nbx 5 14 0 1 0 0 \$0-chimes/2-resonator-3/rq3 \$0-chimes/2-resonator-3/rq3 rq3 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 180 nbx 5 14 0 1 0 0 \$0-chimes/2-resonator-4/amplitude4 \$0-chimes/2-resonator-4/amplitude4 amplitude4 0 -6 0 10 -262144 -1 -1 256; ++#X obj 85 180 nbx 5 14 0 10 0 0 \$0-chimes/2-resonator-4/decay4 \$0-chimes/2-resonator-4/decay4 decay4 0 -6 0 10 -262144 -1 -1 256; ++#X obj 160 180 nbx 5 14 0 50 0 0 \$0-chimes/2-resonator-4/harmonic4 \$0-chimes/2-resonator-4/harmonic4 harmonic4 0 -6 0 10 -262144 -1 -1 256; ++#X obj 235 180 nbx 5 14 0 1 0 0 \$0-chimes/2-resonator-4/rq4 \$0-chimes/2-resonator-4/rq4 rq4 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 210 hsl 128 15 0 1 0 0 \$0-chimes/3-master/pan \$0-chimes/3-master/pan pan -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 210 nbx 5 14 0 1 0 0 \$0-chimes/3-master/pan \$0-chimes/3-master/pan empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 240 hsl 128 15 0 10 0 0 \$0-chimes/3-master/vol \$0-chimes/3-master/vol vol -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 240 nbx 5 14 0 10 0 0 \$0-chimes/3-master/vol \$0-chimes/3-master/vol empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 272 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 292 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 762 10 s \$0-all; ++#X obj 918 10 s \$0-read; ++#X obj 1074 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 58 0 59 0; ++#X obj 762 30 r \$0-active; ++#X msg 762 50 active \$1; ++#X connect 60 0 61 0; ++#X connect 61 0 55 0; ++#X obj 1074 30 route active; ++#X obj 1074 50 s \$0-active; ++#X connect 57 0 62 0; ++#X connect 62 0 63 0; ++#X msg 450 70 0.01; ++#X obj 450 90 s \$0-chimes/1-excitator/decay; ++#X connect 54 0 64 0; ++#X connect 64 0 65 0; ++#X obj 762 70 r \$0-chimes/1-excitator/decay; ++#X msg 762 90 /chimes/1-excitator/decay \$1; ++#X connect 66 0 67 0; ++#X connect 67 0 55 0; ++#X obj 1074 70 route /chimes/1-excitator/decay; ++#X obj 1074 90 s \$0-chimes/1-excitator/decay; ++#X connect 62 1 68 0; ++#X connect 68 0 69 0; ++#X msg 450 110 0.167; ++#X obj 450 130 s \$0-chimes/2-resonator-0/amplitude0; ++#X connect 54 0 70 0; ++#X connect 70 0 71 0; ++#X obj 762 110 r \$0-chimes/2-resonator-0/amplitude0; ++#X msg 762 130 /chimes/2-resonator-0/amplitude0 \$1; ++#X connect 72 0 73 0; ++#X connect 73 0 55 0; ++#X obj 1074 110 route /chimes/2-resonator-0/amplitude0; ++#X obj 1074 130 s \$0-chimes/2-resonator-0/amplitude0; ++#X connect 68 1 74 0; ++#X connect 74 0 75 0; ++#X msg 450 150 3.693; ++#X obj 450 170 s \$0-chimes/2-resonator-0/decay0; ++#X connect 54 0 76 0; ++#X connect 76 0 77 0; ++#X obj 762 150 r \$0-chimes/2-resonator-0/decay0; ++#X msg 762 170 /chimes/2-resonator-0/decay0 \$1; ++#X connect 78 0 79 0; ++#X connect 79 0 55 0; ++#X obj 1074 150 route /chimes/2-resonator-0/decay0; ++#X obj 1074 170 s \$0-chimes/2-resonator-0/decay0; ++#X connect 74 1 80 0; ++#X connect 80 0 81 0; ++#X msg 450 190 1; ++#X obj 450 210 s \$0-chimes/2-resonator-0/harmonic0; ++#X connect 54 0 82 0; ++#X connect 82 0 83 0; ++#X obj 762 190 r \$0-chimes/2-resonator-0/harmonic0; ++#X msg 762 210 /chimes/2-resonator-0/harmonic0 \$1; ++#X connect 84 0 85 0; ++#X connect 85 0 55 0; ++#X obj 1074 190 route /chimes/2-resonator-0/harmonic0; ++#X obj 1074 210 s \$0-chimes/2-resonator-0/harmonic0; ++#X connect 80 1 86 0; ++#X connect 86 0 87 0; ++#X msg 450 230 0.002; ++#X obj 450 250 s \$0-chimes/2-resonator-0/rq0; ++#X connect 54 0 88 0; ++#X connect 88 0 89 0; ++#X obj 762 230 r \$0-chimes/2-resonator-0/rq0; ++#X msg 762 250 /chimes/2-resonator-0/rq0 \$1; ++#X connect 90 0 91 0; ++#X connect 91 0 55 0; ++#X obj 1074 230 route /chimes/2-resonator-0/rq0; ++#X obj 1074 250 s \$0-chimes/2-resonator-0/rq0; ++#X connect 86 1 92 0; ++#X connect 92 0 93 0; ++#X msg 450 270 0.083; ++#X obj 450 290 s \$0-chimes/2-resonator-1/amplitude1; ++#X connect 54 0 94 0; ++#X connect 94 0 95 0; ++#X obj 762 270 r \$0-chimes/2-resonator-1/amplitude1; ++#X msg 762 290 /chimes/2-resonator-1/amplitude1 \$1; ++#X connect 96 0 97 0; ++#X connect 97 0 55 0; ++#X obj 1074 270 route /chimes/2-resonator-1/amplitude1; ++#X obj 1074 290 s \$0-chimes/2-resonator-1/amplitude1; ++#X connect 92 1 98 0; ++#X connect 98 0 99 0; ++#X msg 450 310 2.248; ++#X obj 450 330 s \$0-chimes/2-resonator-1/decay1; ++#X connect 54 0 100 0; ++#X connect 100 0 101 0; ++#X obj 762 310 r \$0-chimes/2-resonator-1/decay1; ++#X msg 762 330 /chimes/2-resonator-1/decay1 \$1; ++#X connect 102 0 103 0; ++#X connect 103 0 55 0; ++#X obj 1074 310 route /chimes/2-resonator-1/decay1; ++#X obj 1074 330 s \$0-chimes/2-resonator-1/decay1; ++#X connect 98 1 104 0; ++#X connect 104 0 105 0; ++#X msg 450 350 3.007; ++#X obj 450 370 s \$0-chimes/2-resonator-1/harmonic1; ++#X connect 54 0 106 0; ++#X connect 106 0 107 0; ++#X obj 762 350 r \$0-chimes/2-resonator-1/harmonic1; ++#X msg 762 370 /chimes/2-resonator-1/harmonic1 \$1; ++#X connect 108 0 109 0; ++#X connect 109 0 55 0; ++#X obj 1074 350 route /chimes/2-resonator-1/harmonic1; ++#X obj 1074 370 s \$0-chimes/2-resonator-1/harmonic1; ++#X connect 104 1 110 0; ++#X connect 110 0 111 0; ++#X msg 450 390 0.002; ++#X obj 450 410 s \$0-chimes/2-resonator-1/rq1; ++#X connect 54 0 112 0; ++#X connect 112 0 113 0; ++#X obj 762 390 r \$0-chimes/2-resonator-1/rq1; ++#X msg 762 410 /chimes/2-resonator-1/rq1 \$1; ++#X connect 114 0 115 0; ++#X connect 115 0 55 0; ++#X obj 1074 390 route /chimes/2-resonator-1/rq1; ++#X obj 1074 410 s \$0-chimes/2-resonator-1/rq1; ++#X connect 110 1 116 0; ++#X connect 116 0 117 0; ++#X msg 450 430 0.087; ++#X obj 450 450 s \$0-chimes/2-resonator-2/amplitude2; ++#X connect 54 0 118 0; ++#X connect 118 0 119 0; ++#X obj 762 430 r \$0-chimes/2-resonator-2/amplitude2; ++#X msg 762 450 /chimes/2-resonator-2/amplitude2 \$1; ++#X connect 120 0 121 0; ++#X connect 121 0 55 0; ++#X obj 1074 430 route /chimes/2-resonator-2/amplitude2; ++#X obj 1074 450 s \$0-chimes/2-resonator-2/amplitude2; ++#X connect 116 1 122 0; ++#X connect 122 0 123 0; ++#X msg 450 470 2.828; ++#X obj 450 490 s \$0-chimes/2-resonator-2/decay2; ++#X connect 54 0 124 0; ++#X connect 124 0 125 0; ++#X obj 762 470 r \$0-chimes/2-resonator-2/decay2; ++#X msg 762 490 /chimes/2-resonator-2/decay2 \$1; ++#X connect 126 0 127 0; ++#X connect 127 0 55 0; ++#X obj 1074 470 route /chimes/2-resonator-2/decay2; ++#X obj 1074 490 s \$0-chimes/2-resonator-2/decay2; ++#X connect 122 1 128 0; ++#X connect 128 0 129 0; ++#X msg 450 510 4.968; ++#X obj 450 530 s \$0-chimes/2-resonator-2/harmonic2; ++#X connect 54 0 130 0; ++#X connect 130 0 131 0; ++#X obj 762 510 r \$0-chimes/2-resonator-2/harmonic2; ++#X msg 762 530 /chimes/2-resonator-2/harmonic2 \$1; ++#X connect 132 0 133 0; ++#X connect 133 0 55 0; ++#X obj 1074 510 route /chimes/2-resonator-2/harmonic2; ++#X obj 1074 530 s \$0-chimes/2-resonator-2/harmonic2; ++#X connect 128 1 134 0; ++#X connect 134 0 135 0; ++#X msg 450 550 0.002; ++#X obj 450 570 s \$0-chimes/2-resonator-2/rq2; ++#X connect 54 0 136 0; ++#X connect 136 0 137 0; ++#X obj 762 550 r \$0-chimes/2-resonator-2/rq2; ++#X msg 762 570 /chimes/2-resonator-2/rq2 \$1; ++#X connect 138 0 139 0; ++#X connect 139 0 55 0; ++#X obj 1074 550 route /chimes/2-resonator-2/rq2; ++#X obj 1074 570 s \$0-chimes/2-resonator-2/rq2; ++#X connect 134 1 140 0; ++#X connect 140 0 141 0; ++#X msg 450 590 0.053; ++#X obj 450 610 s \$0-chimes/2-resonator-3/amplitude3; ++#X connect 54 0 142 0; ++#X connect 142 0 143 0; ++#X obj 762 590 r \$0-chimes/2-resonator-3/amplitude3; ++#X msg 762 610 /chimes/2-resonator-3/amplitude3 \$1; ++#X connect 144 0 145 0; ++#X connect 145 0 55 0; ++#X obj 1074 590 route /chimes/2-resonator-3/amplitude3; ++#X obj 1074 610 s \$0-chimes/2-resonator-3/amplitude3; ++#X connect 140 1 146 0; ++#X connect 146 0 147 0; ++#X msg 450 630 3.364; ++#X obj 450 650 s \$0-chimes/2-resonator-3/decay3; ++#X connect 54 0 148 0; ++#X connect 148 0 149 0; ++#X obj 762 630 r \$0-chimes/2-resonator-3/decay3; ++#X msg 762 650 /chimes/2-resonator-3/decay3 \$1; ++#X connect 150 0 151 0; ++#X connect 151 0 55 0; ++#X obj 1074 630 route /chimes/2-resonator-3/decay3; ++#X obj 1074 650 s \$0-chimes/2-resonator-3/decay3; ++#X connect 146 1 152 0; ++#X connect 152 0 153 0; ++#X msg 450 670 8.994; ++#X obj 450 690 s \$0-chimes/2-resonator-3/harmonic3; ++#X connect 54 0 154 0; ++#X connect 154 0 155 0; ++#X obj 762 670 r \$0-chimes/2-resonator-3/harmonic3; ++#X msg 762 690 /chimes/2-resonator-3/harmonic3 \$1; ++#X connect 156 0 157 0; ++#X connect 157 0 55 0; ++#X obj 1074 670 route /chimes/2-resonator-3/harmonic3; ++#X obj 1074 690 s \$0-chimes/2-resonator-3/harmonic3; ++#X connect 152 1 158 0; ++#X connect 158 0 159 0; ++#X msg 450 710 0.002; ++#X obj 450 730 s \$0-chimes/2-resonator-3/rq3; ++#X connect 54 0 160 0; ++#X connect 160 0 161 0; ++#X obj 762 710 r \$0-chimes/2-resonator-3/rq3; ++#X msg 762 730 /chimes/2-resonator-3/rq3 \$1; ++#X connect 162 0 163 0; ++#X connect 163 0 55 0; ++#X obj 1074 710 route /chimes/2-resonator-3/rq3; ++#X obj 1074 730 s \$0-chimes/2-resonator-3/rq3; ++#X connect 158 1 164 0; ++#X connect 164 0 165 0; ++#X msg 450 750 0.053; ++#X obj 450 770 s \$0-chimes/2-resonator-4/amplitude4; ++#X connect 54 0 166 0; ++#X connect 166 0 167 0; ++#X obj 762 750 r \$0-chimes/2-resonator-4/amplitude4; ++#X msg 762 770 /chimes/2-resonator-4/amplitude4 \$1; ++#X connect 168 0 169 0; ++#X connect 169 0 55 0; ++#X obj 1074 750 route /chimes/2-resonator-4/amplitude4; ++#X obj 1074 770 s \$0-chimes/2-resonator-4/amplitude4; ++#X connect 164 1 170 0; ++#X connect 170 0 171 0; ++#X msg 450 790 2.488; ++#X obj 450 810 s \$0-chimes/2-resonator-4/decay4; ++#X connect 54 0 172 0; ++#X connect 172 0 173 0; ++#X obj 762 790 r \$0-chimes/2-resonator-4/decay4; ++#X msg 762 810 /chimes/2-resonator-4/decay4 \$1; ++#X connect 174 0 175 0; ++#X connect 175 0 55 0; ++#X obj 1074 790 route /chimes/2-resonator-4/decay4; ++#X obj 1074 810 s \$0-chimes/2-resonator-4/decay4; ++#X connect 170 1 176 0; ++#X connect 176 0 177 0; ++#X msg 450 830 12.006; ++#X obj 450 850 s \$0-chimes/2-resonator-4/harmonic4; ++#X connect 54 0 178 0; ++#X connect 178 0 179 0; ++#X obj 762 830 r \$0-chimes/2-resonator-4/harmonic4; ++#X msg 762 850 /chimes/2-resonator-4/harmonic4 \$1; ++#X connect 180 0 181 0; ++#X connect 181 0 55 0; ++#X obj 1074 830 route /chimes/2-resonator-4/harmonic4; ++#X obj 1074 850 s \$0-chimes/2-resonator-4/harmonic4; ++#X connect 176 1 182 0; ++#X connect 182 0 183 0; ++#X msg 450 870 0.002; ++#X obj 450 890 s \$0-chimes/2-resonator-4/rq4; ++#X connect 54 0 184 0; ++#X connect 184 0 185 0; ++#X obj 762 870 r \$0-chimes/2-resonator-4/rq4; ++#X msg 762 890 /chimes/2-resonator-4/rq4 \$1; ++#X connect 186 0 187 0; ++#X connect 187 0 55 0; ++#X obj 1074 870 route /chimes/2-resonator-4/rq4; ++#X obj 1074 890 s \$0-chimes/2-resonator-4/rq4; ++#X connect 182 1 188 0; ++#X connect 188 0 189 0; ++#X msg 450 910 0.5; ++#X obj 450 930 s \$0-chimes/3-master/pan; ++#X connect 54 0 190 0; ++#X connect 190 0 191 0; ++#X obj 762 910 r \$0-chimes/3-master/pan; ++#X msg 762 930 /chimes/3-master/pan \$1; ++#X connect 192 0 193 0; ++#X connect 193 0 55 0; ++#X obj 1074 910 route /chimes/3-master/pan; ++#X obj 1074 930 s \$0-chimes/3-master/pan; ++#X connect 188 1 194 0; ++#X connect 194 0 195 0; ++#X msg 450 950 0.5; ++#X obj 450 970 s \$0-chimes/3-master/vol; ++#X connect 54 0 196 0; ++#X connect 196 0 197 0; ++#X obj 762 950 r \$0-chimes/3-master/vol; ++#X msg 762 970 /chimes/3-master/vol \$1; ++#X connect 198 0 199 0; ++#X connect 199 0 55 0; ++#X obj 1074 950 route /chimes/3-master/vol; ++#X obj 1074 970 s \$0-chimes/3-master/vol; ++#X connect 194 1 200 0; ++#X connect 200 0 201 0; ++#X coords 0 -1 1 1 310 260 1 0 0; ++#X text 0 280 Generated Tue Jan 16 18:58:06 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/synth/chimes.syn.xml +@@ -0,0 +1,277 @@ ++ ++ ++ chimes ++ Albert Graef ++ ++ ++ 2.0 ++ mydsp ++ 0 ++ 2 ++ ++ ++ 26 ++ ++ ++ fEntry5 ++ 0.01f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fEntry1 ++ 0.16700000000000001f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fEntry6 ++ 3.6930000000000001f ++ 0.0f ++ 10.0f ++ 0.001f ++ ++ ++ ++ fEntry3 ++ 1.0f ++ 0.0f ++ 50.0f ++ 0.001f ++ ++ ++ ++ fEntry2 ++ 0.002f ++ 0.0f ++ 1.0f ++ 0.0001f ++ ++ ++ ++ fEntry7 ++ 0.083000000000000004f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fEntry10 ++ 2.2480000000000002f ++ 0.0f ++ 10.0f ++ 0.001f ++ ++ ++ ++ fEntry9 ++ 3.0070000000000001f ++ 0.0f ++ 50.0f ++ 0.001f ++ ++ ++ ++ fEntry8 ++ 0.002f ++ 0.0f ++ 1.0f ++ 0.0001f ++ ++ ++ ++ fEntry11 ++ 0.086999999999999994f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fEntry14 ++ 2.8279999999999998f ++ 0.0f ++ 10.0f ++ 0.001f ++ ++ ++ ++ fEntry13 ++ 4.968f ++ 0.0f ++ 50.0f ++ 0.001f ++ ++ ++ ++ fEntry12 ++ 0.002f ++ 0.0f ++ 1.0f ++ 0.0001f ++ ++ ++ ++ fEntry15 ++ 0.052999999999999999f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fEntry18 ++ 3.3639999999999999f ++ 0.0f ++ 10.0f ++ 0.001f ++ ++ ++ ++ fEntry17 ++ 8.9939999999999998f ++ 0.0f ++ 50.0f ++ 0.001f ++ ++ ++ ++ fEntry16 ++ 0.002f ++ 0.0f ++ 1.0f ++ 0.0001f ++ ++ ++ ++ fEntry19 ++ 0.052999999999999999f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fEntry22 ++ 2.488f ++ 0.0f ++ 10.0f ++ 0.001f ++ ++ ++ ++ fEntry21 ++ 12.006f ++ 0.0f ++ 50.0f ++ 0.001f ++ ++ ++ ++ fEntry20 ++ 0.002f ++ 0.0f ++ 1.0f ++ 0.0001f ++ ++ ++ ++ fHslider1 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.01f ++ ++ ++ ++ fHslider0 ++ 0.5f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fEntry0 ++ 440.0f ++ 20.0f ++ 20000.0f ++ 1.0f ++ ++ ++ ++ fEntry4 ++ 1.0f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fButton0 ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/synth/chorus.dsp.xml +@@ -0,0 +1,62 @@ ++ ++ ++ chorus ++ Albert Graef ++ ++ ++ 1.0 ++ mydsp ++ 2 ++ 2 ++ ++ ++ 4 ++ ++ ++ fHslider1 ++ 0.025000000000000001f ++ 0.0f ++ 0.20000000000000001f ++ 0.001f ++ ++ ++ ++ fHslider2 ++ 0.02f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fHslider3 ++ 3.0f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fHslider0 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.01f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/synth/chorus.pd +@@ -0,0 +1,98 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 210 inlet~; ++#X obj 130 210 inlet~; ++#X obj 10 210 inlet; ++#X obj 190 210 r \$0-read; ++#X obj 190 240 faust-control \$0; ++#X obj 190 270 s \$0-write; ++#X obj 10 270 r \$0-in; ++#X obj 10 300 chorus~; ++#X obj 10 330 s \$0-out; ++#X obj 70 360 outlet~; ++#X obj 130 360 outlet~; ++#X obj 10 360 outlet; ++#X connect 2 0 4 0; ++#X connect 3 0 4 0; ++#X connect 4 0 5 0; ++#X connect 7 0 8 0; ++#X connect 2 0 11 0; ++#X connect 6 0 7 0; ++#X connect 0 0 7 1; ++#X connect 1 0 7 2; ++#X connect 7 1 9 0; ++#X connect 7 2 10 0; ++#X obj 10 30 hsl 128 15 0 0.2 0 0 \$0-chorus/delay \$0-chorus/delay delay -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 0 0.2 0 0 \$0-chorus/delay \$0-chorus/delay empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 0 1 0 0 \$0-chorus/depth \$0-chorus/depth depth -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 0 1 0 0 \$0-chorus/depth \$0-chorus/depth empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 hsl 128 15 0 10 0 0 \$0-chorus/freq \$0-chorus/freq freq -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 90 nbx 5 14 0 10 0 0 \$0-chorus/freq \$0-chorus/freq empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 120 hsl 128 15 0 1 0 0 \$0-chorus/level \$0-chorus/level level -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 120 nbx 5 14 0 1 0 0 \$0-chorus/level \$0-chorus/level empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 610 10 s \$0-in; ++#X obj 690 10 s \$0-read; ++#X obj 770 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 26 0 27 0; ++#X obj 610 30 r \$0-active; ++#X msg 610 50 active \$1; ++#X connect 28 0 29 0; ++#X connect 29 0 23 0; ++#X obj 770 30 route active; ++#X obj 770 50 s \$0-active; ++#X connect 25 0 30 0; ++#X connect 30 0 31 0; ++#X msg 450 70 0.025; ++#X obj 450 90 s \$0-chorus/delay; ++#X connect 22 0 32 0; ++#X connect 32 0 33 0; ++#X obj 610 70 r \$0-chorus/delay; ++#X msg 610 90 /chorus/delay \$1; ++#X connect 34 0 35 0; ++#X connect 35 0 23 0; ++#X obj 770 70 route /chorus/delay; ++#X obj 770 90 s \$0-chorus/delay; ++#X connect 30 1 36 0; ++#X connect 36 0 37 0; ++#X msg 450 110 0.02; ++#X obj 450 130 s \$0-chorus/depth; ++#X connect 22 0 38 0; ++#X connect 38 0 39 0; ++#X obj 610 110 r \$0-chorus/depth; ++#X msg 610 130 /chorus/depth \$1; ++#X connect 40 0 41 0; ++#X connect 41 0 23 0; ++#X obj 770 110 route /chorus/depth; ++#X obj 770 130 s \$0-chorus/depth; ++#X connect 36 1 42 0; ++#X connect 42 0 43 0; ++#X msg 450 150 3; ++#X obj 450 170 s \$0-chorus/freq; ++#X connect 22 0 44 0; ++#X connect 44 0 45 0; ++#X obj 610 150 r \$0-chorus/freq; ++#X msg 610 170 /chorus/freq \$1; ++#X connect 46 0 47 0; ++#X connect 47 0 23 0; ++#X obj 770 150 route /chorus/freq; ++#X obj 770 170 s \$0-chorus/freq; ++#X connect 42 1 48 0; ++#X connect 48 0 49 0; ++#X msg 450 190 0.5; ++#X obj 450 210 s \$0-chorus/level; ++#X connect 22 0 50 0; ++#X connect 50 0 51 0; ++#X obj 610 190 r \$0-chorus/level; ++#X msg 610 210 /chorus/level \$1; ++#X connect 52 0 53 0; ++#X connect 53 0 23 0; ++#X obj 770 190 route /chorus/level; ++#X obj 770 210 s \$0-chorus/level; ++#X connect 48 1 54 0; ++#X connect 54 0 55 0; ++#X coords 0 -1 1 1 235 140 1 0 0; ++#X text 0 160 Generated Tue Jan 16 18:58:06 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/synth/compressor.dsp.xml +@@ -0,0 +1,96 @@ ++ ++ ++ compressor ++ Albert Graef ++ ++ ++ 1.0 ++ mydsp ++ 2 ++ 2 ++ ++ ++ 6 ++ ++ ++ fEntry1 ++ 3.0f ++ 0.0f ++ 20.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry0 ++ 2.0f ++ 1.0f ++ 20.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry2 ++ -20.0f ++ -96.0f ++ 10.0f ++ 0.10000000000000001f ++ ++ ++ ++ fHslider1 ++ 0.002f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fHslider2 ++ 0.5f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fHslider0 ++ 0.0f ++ -96.0f ++ 96.0f ++ 0.10000000000000001f ++ ++ ++ ++ ++ 1 ++ ++ ++ fHbargraph0 ++ -96.0f ++ 0.0f ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/synth/compressor.pd +@@ -0,0 +1,137 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 240 inlet~; ++#X obj 130 240 inlet~; ++#X obj 10 240 inlet; ++#X obj 190 240 r \$0-read; ++#X obj 190 270 faust-control \$0; ++#X obj 190 300 s \$0-write; ++#X obj 10 300 r \$0-in; ++#X obj 10 330 compressor~; ++#X obj 10 360 s \$0-out; ++#X obj 70 390 outlet~; ++#X obj 130 390 outlet~; ++#X obj 10 390 outlet; ++#X connect 2 0 4 0; ++#X connect 3 0 4 0; ++#X connect 4 0 5 0; ++#X connect 7 0 8 0; ++#X connect 2 0 11 0; ++#X connect 6 0 7 0; ++#X connect 0 0 7 1; ++#X connect 1 0 7 2; ++#X connect 7 1 9 0; ++#X connect 7 2 10 0; ++#X obj 10 30 nbx 5 14 0 20 0 0 \$0-compressor/1-compression/knee \$0-compressor/1-compression/knee knee 0 -6 0 10 -262144 -1 -1 256; ++#X obj 85 30 nbx 5 14 1 20 0 0 \$0-compressor/1-compression/ratio \$0-compressor/1-compression/ratio ratio 0 -6 0 10 -262144 -1 -1 256; ++#X obj 160 30 nbx 5 14 -96 10 0 0 \$0-compressor/1-compression/threshold \$0-compressor/1-compression/threshold threshold 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 0 1 0 0 \$0-compressor/2-envelop/attack \$0-compressor/2-envelop/attack attack -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 0 1 0 0 \$0-compressor/2-envelop/attack \$0-compressor/2-envelop/attack empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 hsl 128 15 0 10 0 0 \$0-compressor/2-envelop/release \$0-compressor/2-envelop/release release -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 90 nbx 5 14 0 10 0 0 \$0-compressor/2-envelop/release \$0-compressor/2-envelop/release empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 120 hsl 128 15 -96 0 0 0 \$0-compressor/3-gain/gain \$0-compressor/3-gain/gain gain -2 -6 0 10 -233017 -1 -1 0 1; ++#X obj 160 120 nbx 5 14 -96 0 0 0 \$0-compressor/3-gain/gain \$0-compressor/3-gain/gain empty 0 -6 0 10 -233017 -1 -1 256; ++#X obj 10 150 hsl 128 15 -96 96 0 0 \$0-compressor/3-gain/makeup-gain \$0-compressor/3-gain/makeup-gain makeup-gain -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 150 nbx 5 14 -96 96 0 0 \$0-compressor/3-gain/makeup-gain \$0-compressor/3-gain/makeup-gain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 786 10 s \$0-in; ++#X obj 954 10 s \$0-read; ++#X obj 1122 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 29 0 30 0; ++#X obj 786 30 r \$0-active; ++#X msg 786 50 active \$1; ++#X connect 31 0 32 0; ++#X connect 32 0 26 0; ++#X obj 1122 30 route active; ++#X obj 1122 50 s \$0-active; ++#X connect 28 0 33 0; ++#X connect 33 0 34 0; ++#X msg 450 70 3; ++#X obj 450 90 s \$0-compressor/1-compression/knee; ++#X connect 25 0 35 0; ++#X connect 35 0 36 0; ++#X obj 786 70 r \$0-compressor/1-compression/knee; ++#X msg 786 90 /compressor/1-compression/knee \$1; ++#X connect 37 0 38 0; ++#X connect 38 0 26 0; ++#X obj 1122 70 route /compressor/1-compression/knee; ++#X obj 1122 90 s \$0-compressor/1-compression/knee; ++#X connect 33 1 39 0; ++#X connect 39 0 40 0; ++#X msg 450 110 2; ++#X obj 450 130 s \$0-compressor/1-compression/ratio; ++#X connect 25 0 41 0; ++#X connect 41 0 42 0; ++#X obj 786 110 r \$0-compressor/1-compression/ratio; ++#X msg 786 130 /compressor/1-compression/ratio \$1; ++#X connect 43 0 44 0; ++#X connect 44 0 26 0; ++#X obj 1122 110 route /compressor/1-compression/ratio; ++#X obj 1122 130 s \$0-compressor/1-compression/ratio; ++#X connect 39 1 45 0; ++#X connect 45 0 46 0; ++#X msg 450 150 -20; ++#X obj 450 170 s \$0-compressor/1-compression/threshold; ++#X connect 25 0 47 0; ++#X connect 47 0 48 0; ++#X obj 786 150 r \$0-compressor/1-compression/threshold; ++#X msg 786 170 /compressor/1-compression/threshold \$1; ++#X connect 49 0 50 0; ++#X connect 50 0 26 0; ++#X obj 1122 150 route /compressor/1-compression/threshold; ++#X obj 1122 170 s \$0-compressor/1-compression/threshold; ++#X connect 45 1 51 0; ++#X connect 51 0 52 0; ++#X msg 450 190 0.002; ++#X obj 450 210 s \$0-compressor/2-envelop/attack; ++#X connect 25 0 53 0; ++#X connect 53 0 54 0; ++#X obj 786 190 r \$0-compressor/2-envelop/attack; ++#X msg 786 210 /compressor/2-envelop/attack \$1; ++#X connect 55 0 56 0; ++#X connect 56 0 26 0; ++#X obj 1122 190 route /compressor/2-envelop/attack; ++#X obj 1122 210 s \$0-compressor/2-envelop/attack; ++#X connect 51 1 57 0; ++#X connect 57 0 58 0; ++#X msg 450 230 0.5; ++#X obj 450 250 s \$0-compressor/2-envelop/release; ++#X connect 25 0 59 0; ++#X connect 59 0 60 0; ++#X obj 786 230 r \$0-compressor/2-envelop/release; ++#X msg 786 250 /compressor/2-envelop/release \$1; ++#X connect 61 0 62 0; ++#X connect 62 0 26 0; ++#X obj 1122 230 route /compressor/2-envelop/release; ++#X obj 1122 250 s \$0-compressor/2-envelop/release; ++#X connect 57 1 63 0; ++#X connect 63 0 64 0; ++#X msg 450 270 0; ++#X obj 450 290 s \$0-compressor/3-gain/gain; ++#X connect 25 0 65 0; ++#X connect 65 0 66 0; ++#X obj 786 270 faust-timer \$0; ++#X msg 786 290 /compressor/3-gain/gain; ++#X connect 67 0 68 0; ++#X connect 68 0 27 0; ++#X obj 1122 270 route /compressor/3-gain/gain; ++#X obj 1122 290 s \$0-compressor/3-gain/gain; ++#X connect 63 1 69 0; ++#X connect 69 0 70 0; ++#X msg 450 310 0; ++#X obj 450 330 s \$0-compressor/3-gain/makeup-gain; ++#X connect 25 0 71 0; ++#X connect 71 0 72 0; ++#X obj 786 310 r \$0-compressor/3-gain/makeup-gain; ++#X msg 786 330 /compressor/3-gain/makeup-gain \$1; ++#X connect 73 0 74 0; ++#X connect 74 0 26 0; ++#X obj 1122 310 route /compressor/3-gain/makeup-gain; ++#X obj 1122 330 s \$0-compressor/3-gain/makeup-gain; ++#X connect 69 1 75 0; ++#X connect 75 0 76 0; ++#X coords 0 -1 1 1 235 170 1 0 0; ++#X text 0 190 Generated Tue Jan 16 18:58:06 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/synth/echo.dsp.xml +@@ -0,0 +1,62 @@ ++ ++ ++ echo ++ Albert Graef ++ ++ ++ 1.0 ++ mydsp ++ 2 ++ 2 ++ ++ ++ 4 ++ ++ ++ fHslider2 ++ 0.040000000000000001f ++ 0.0f ++ 5.0f ++ 0.001f ++ ++ ++ ++ fHslider3 ++ 0.0f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fHslider0 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.01f ++ ++ ++ ++ fHslider1 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/synth/echo.pd +@@ -0,0 +1,98 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 210 inlet~; ++#X obj 130 210 inlet~; ++#X obj 10 210 inlet; ++#X obj 190 210 r \$0-read; ++#X obj 190 240 faust-control \$0; ++#X obj 190 270 s \$0-write; ++#X obj 10 270 r \$0-in; ++#X obj 10 300 echo~; ++#X obj 10 330 s \$0-out; ++#X obj 70 360 outlet~; ++#X obj 130 360 outlet~; ++#X obj 10 360 outlet; ++#X connect 2 0 4 0; ++#X connect 3 0 4 0; ++#X connect 4 0 5 0; ++#X connect 7 0 8 0; ++#X connect 2 0 11 0; ++#X connect 6 0 7 0; ++#X connect 0 0 7 1; ++#X connect 1 0 7 2; ++#X connect 7 1 9 0; ++#X connect 7 2 10 0; ++#X obj 10 30 hsl 128 15 0 5 0 0 \$0-echo/delay \$0-echo/delay delay -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 0 5 0 0 \$0-echo/delay \$0-echo/delay empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 0 1 0 0 \$0-echo/feedback \$0-echo/feedback feedback -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 0 1 0 0 \$0-echo/feedback \$0-echo/feedback empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 hsl 128 15 0 1 0 0 \$0-echo/level \$0-echo/level level -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 90 nbx 5 14 0 1 0 0 \$0-echo/level \$0-echo/level empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 120 hsl 128 15 0 1 0 0 \$0-echo/stereo \$0-echo/stereo stereo -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 120 nbx 5 14 0 1 0 0 \$0-echo/stereo \$0-echo/stereo empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 618 10 s \$0-in; ++#X obj 702 10 s \$0-read; ++#X obj 786 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 26 0 27 0; ++#X obj 618 30 r \$0-active; ++#X msg 618 50 active \$1; ++#X connect 28 0 29 0; ++#X connect 29 0 23 0; ++#X obj 786 30 route active; ++#X obj 786 50 s \$0-active; ++#X connect 25 0 30 0; ++#X connect 30 0 31 0; ++#X msg 450 70 0.04; ++#X obj 450 90 s \$0-echo/delay; ++#X connect 22 0 32 0; ++#X connect 32 0 33 0; ++#X obj 618 70 r \$0-echo/delay; ++#X msg 618 90 /echo/delay \$1; ++#X connect 34 0 35 0; ++#X connect 35 0 23 0; ++#X obj 786 70 route /echo/delay; ++#X obj 786 90 s \$0-echo/delay; ++#X connect 30 1 36 0; ++#X connect 36 0 37 0; ++#X msg 450 110 0; ++#X obj 450 130 s \$0-echo/feedback; ++#X connect 22 0 38 0; ++#X connect 38 0 39 0; ++#X obj 618 110 r \$0-echo/feedback; ++#X msg 618 130 /echo/feedback \$1; ++#X connect 40 0 41 0; ++#X connect 41 0 23 0; ++#X obj 786 110 route /echo/feedback; ++#X obj 786 130 s \$0-echo/feedback; ++#X connect 36 1 42 0; ++#X connect 42 0 43 0; ++#X msg 450 150 1; ++#X obj 450 170 s \$0-echo/level; ++#X connect 22 0 44 0; ++#X connect 44 0 45 0; ++#X obj 618 150 r \$0-echo/level; ++#X msg 618 170 /echo/level \$1; ++#X connect 46 0 47 0; ++#X connect 47 0 23 0; ++#X obj 786 150 route /echo/level; ++#X obj 786 170 s \$0-echo/level; ++#X connect 42 1 48 0; ++#X connect 48 0 49 0; ++#X msg 450 190 1; ++#X obj 450 210 s \$0-echo/stereo; ++#X connect 22 0 50 0; ++#X connect 50 0 51 0; ++#X obj 618 190 r \$0-echo/stereo; ++#X msg 618 210 /echo/stereo \$1; ++#X connect 52 0 53 0; ++#X connect 53 0 23 0; ++#X obj 786 190 route /echo/stereo; ++#X obj 786 210 s \$0-echo/stereo; ++#X connect 48 1 54 0; ++#X connect 54 0 55 0; ++#X coords 0 -1 1 1 235 140 1 0 0; ++#X text 0 160 Generated Tue Jan 16 18:58:06 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/synth/expander.dsp.xml +@@ -0,0 +1,87 @@ ++ ++ ++ expander ++ Albert Graef ++ ++ ++ 1.0 ++ mydsp ++ 2 ++ 2 ++ ++ ++ 5 ++ ++ ++ fEntry1 ++ 3.0f ++ 0.0f ++ 20.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry0 ++ 2.0f ++ 1.0f ++ 20.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry2 ++ -40.0f ++ -96.0f ++ 10.0f ++ 0.10000000000000001f ++ ++ ++ ++ fHslider0 ++ 0.001f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fHslider1 ++ 0.10000000000000001f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ ++ 1 ++ ++ ++ fHbargraph0 ++ -96.0f ++ 0.0f ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/synth/expander.pd +@@ -0,0 +1,123 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 210 inlet~; ++#X obj 130 210 inlet~; ++#X obj 10 210 inlet; ++#X obj 190 210 r \$0-read; ++#X obj 190 240 faust-control \$0; ++#X obj 190 270 s \$0-write; ++#X obj 10 270 r \$0-in; ++#X obj 10 300 expander~; ++#X obj 10 330 s \$0-out; ++#X obj 70 360 outlet~; ++#X obj 130 360 outlet~; ++#X obj 10 360 outlet; ++#X connect 2 0 4 0; ++#X connect 3 0 4 0; ++#X connect 4 0 5 0; ++#X connect 7 0 8 0; ++#X connect 2 0 11 0; ++#X connect 6 0 7 0; ++#X connect 0 0 7 1; ++#X connect 1 0 7 2; ++#X connect 7 1 9 0; ++#X connect 7 2 10 0; ++#X obj 10 30 nbx 5 14 0 20 0 0 \$0-expander/1-expander/knee \$0-expander/1-expander/knee knee 0 -6 0 10 -262144 -1 -1 256; ++#X obj 85 30 nbx 5 14 1 20 0 0 \$0-expander/1-expander/ratio \$0-expander/1-expander/ratio ratio 0 -6 0 10 -262144 -1 -1 256; ++#X obj 160 30 nbx 5 14 -96 10 0 0 \$0-expander/1-expander/threshold \$0-expander/1-expander/threshold threshold 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 0 1 0 0 \$0-expander/2-envelop/attack \$0-expander/2-envelop/attack attack -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 0 1 0 0 \$0-expander/2-envelop/attack \$0-expander/2-envelop/attack empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 hsl 128 15 0 10 0 0 \$0-expander/2-envelop/release \$0-expander/2-envelop/release release -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 90 nbx 5 14 0 10 0 0 \$0-expander/2-envelop/release \$0-expander/2-envelop/release empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 120 hsl 128 15 -96 0 0 0 \$0-expander/3-gain/gain \$0-expander/3-gain/gain gain -2 -6 0 10 -233017 -1 -1 0 1; ++#X obj 160 120 nbx 5 14 -96 0 0 0 \$0-expander/3-gain/gain \$0-expander/3-gain/gain empty 0 -6 0 10 -233017 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 746 10 s \$0-in; ++#X obj 894 10 s \$0-read; ++#X obj 1042 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 27 0 28 0; ++#X obj 746 30 r \$0-active; ++#X msg 746 50 active \$1; ++#X connect 29 0 30 0; ++#X connect 30 0 24 0; ++#X obj 1042 30 route active; ++#X obj 1042 50 s \$0-active; ++#X connect 26 0 31 0; ++#X connect 31 0 32 0; ++#X msg 450 70 3; ++#X obj 450 90 s \$0-expander/1-expander/knee; ++#X connect 23 0 33 0; ++#X connect 33 0 34 0; ++#X obj 746 70 r \$0-expander/1-expander/knee; ++#X msg 746 90 /expander/1-expander/knee \$1; ++#X connect 35 0 36 0; ++#X connect 36 0 24 0; ++#X obj 1042 70 route /expander/1-expander/knee; ++#X obj 1042 90 s \$0-expander/1-expander/knee; ++#X connect 31 1 37 0; ++#X connect 37 0 38 0; ++#X msg 450 110 2; ++#X obj 450 130 s \$0-expander/1-expander/ratio; ++#X connect 23 0 39 0; ++#X connect 39 0 40 0; ++#X obj 746 110 r \$0-expander/1-expander/ratio; ++#X msg 746 130 /expander/1-expander/ratio \$1; ++#X connect 41 0 42 0; ++#X connect 42 0 24 0; ++#X obj 1042 110 route /expander/1-expander/ratio; ++#X obj 1042 130 s \$0-expander/1-expander/ratio; ++#X connect 37 1 43 0; ++#X connect 43 0 44 0; ++#X msg 450 150 -40; ++#X obj 450 170 s \$0-expander/1-expander/threshold; ++#X connect 23 0 45 0; ++#X connect 45 0 46 0; ++#X obj 746 150 r \$0-expander/1-expander/threshold; ++#X msg 746 170 /expander/1-expander/threshold \$1; ++#X connect 47 0 48 0; ++#X connect 48 0 24 0; ++#X obj 1042 150 route /expander/1-expander/threshold; ++#X obj 1042 170 s \$0-expander/1-expander/threshold; ++#X connect 43 1 49 0; ++#X connect 49 0 50 0; ++#X msg 450 190 0.001; ++#X obj 450 210 s \$0-expander/2-envelop/attack; ++#X connect 23 0 51 0; ++#X connect 51 0 52 0; ++#X obj 746 190 r \$0-expander/2-envelop/attack; ++#X msg 746 210 /expander/2-envelop/attack \$1; ++#X connect 53 0 54 0; ++#X connect 54 0 24 0; ++#X obj 1042 190 route /expander/2-envelop/attack; ++#X obj 1042 210 s \$0-expander/2-envelop/attack; ++#X connect 49 1 55 0; ++#X connect 55 0 56 0; ++#X msg 450 230 0.1; ++#X obj 450 250 s \$0-expander/2-envelop/release; ++#X connect 23 0 57 0; ++#X connect 57 0 58 0; ++#X obj 746 230 r \$0-expander/2-envelop/release; ++#X msg 746 250 /expander/2-envelop/release \$1; ++#X connect 59 0 60 0; ++#X connect 60 0 24 0; ++#X obj 1042 230 route /expander/2-envelop/release; ++#X obj 1042 250 s \$0-expander/2-envelop/release; ++#X connect 55 1 61 0; ++#X connect 61 0 62 0; ++#X msg 450 270 0; ++#X obj 450 290 s \$0-expander/3-gain/gain; ++#X connect 23 0 63 0; ++#X connect 63 0 64 0; ++#X obj 746 270 faust-timer \$0; ++#X msg 746 290 /expander/3-gain/gain; ++#X connect 65 0 66 0; ++#X connect 66 0 25 0; ++#X obj 1042 270 route /expander/3-gain/gain; ++#X obj 1042 290 s \$0-expander/3-gain/gain; ++#X connect 61 1 67 0; ++#X connect 67 0 68 0; ++#X coords 0 -1 1 1 235 140 1 0 0; ++#X text 0 160 Generated Tue Jan 16 18:58:06 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/synth/flanger.dsp.xml +@@ -0,0 +1,80 @@ ++ ++ ++ flanger ++ Albert Graef ++ ++ ++ 1.0 ++ mydsp ++ 2 ++ 2 ++ ++ ++ 6 ++ ++ ++ fHslider2 ++ 0.002f ++ 0.0f ++ 0.040000000000000001f ++ 0.001f ++ ++ ++ ++ fHslider3 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fHslider1 ++ 0.10000000000000001f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fHslider4 ++ 2.0f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fHslider0 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.01f ++ ++ ++ ++ fHslider5 ++ 1.0f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/synth/flanger.pd +@@ -0,0 +1,126 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 270 inlet~; ++#X obj 130 270 inlet~; ++#X obj 10 270 inlet; ++#X obj 190 270 r \$0-read; ++#X obj 190 300 faust-control \$0; ++#X obj 190 330 s \$0-write; ++#X obj 10 330 r \$0-in; ++#X obj 10 360 flanger~; ++#X obj 10 390 s \$0-out; ++#X obj 70 420 outlet~; ++#X obj 130 420 outlet~; ++#X obj 10 420 outlet; ++#X connect 2 0 4 0; ++#X connect 3 0 4 0; ++#X connect 4 0 5 0; ++#X connect 7 0 8 0; ++#X connect 2 0 11 0; ++#X connect 6 0 7 0; ++#X connect 0 0 7 1; ++#X connect 1 0 7 2; ++#X connect 7 1 9 0; ++#X connect 7 2 10 0; ++#X obj 10 30 hsl 128 15 0 0.04 0 0 \$0-flanger/delay \$0-flanger/delay delay -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 0 0.04 0 0 \$0-flanger/delay \$0-flanger/delay empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 0 1 0 0 \$0-flanger/depth \$0-flanger/depth depth -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 0 1 0 0 \$0-flanger/depth \$0-flanger/depth empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 hsl 128 15 0 1 0 0 \$0-flanger/feedback \$0-flanger/feedback feedback -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 90 nbx 5 14 0 1 0 0 \$0-flanger/feedback \$0-flanger/feedback empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 120 hsl 128 15 0 10 0 0 \$0-flanger/freq \$0-flanger/freq freq -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 120 nbx 5 14 0 10 0 0 \$0-flanger/freq \$0-flanger/freq empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 150 hsl 128 15 0 1 0 0 \$0-flanger/level \$0-flanger/level level -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 150 nbx 5 14 0 1 0 0 \$0-flanger/level \$0-flanger/level empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 180 hsl 128 15 0 1 0 0 \$0-flanger/stereo \$0-flanger/stereo stereo -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 180 nbx 5 14 0 1 0 0 \$0-flanger/stereo \$0-flanger/stereo empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 642 10 s \$0-in; ++#X obj 738 10 s \$0-read; ++#X obj 834 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 30 0 31 0; ++#X obj 642 30 r \$0-active; ++#X msg 642 50 active \$1; ++#X connect 32 0 33 0; ++#X connect 33 0 27 0; ++#X obj 834 30 route active; ++#X obj 834 50 s \$0-active; ++#X connect 29 0 34 0; ++#X connect 34 0 35 0; ++#X msg 450 70 0.002; ++#X obj 450 90 s \$0-flanger/delay; ++#X connect 26 0 36 0; ++#X connect 36 0 37 0; ++#X obj 642 70 r \$0-flanger/delay; ++#X msg 642 90 /flanger/delay \$1; ++#X connect 38 0 39 0; ++#X connect 39 0 27 0; ++#X obj 834 70 route /flanger/delay; ++#X obj 834 90 s \$0-flanger/delay; ++#X connect 34 1 40 0; ++#X connect 40 0 41 0; ++#X msg 450 110 0.5; ++#X obj 450 130 s \$0-flanger/depth; ++#X connect 26 0 42 0; ++#X connect 42 0 43 0; ++#X obj 642 110 r \$0-flanger/depth; ++#X msg 642 130 /flanger/depth \$1; ++#X connect 44 0 45 0; ++#X connect 45 0 27 0; ++#X obj 834 110 route /flanger/depth; ++#X obj 834 130 s \$0-flanger/depth; ++#X connect 40 1 46 0; ++#X connect 46 0 47 0; ++#X msg 450 150 0.1; ++#X obj 450 170 s \$0-flanger/feedback; ++#X connect 26 0 48 0; ++#X connect 48 0 49 0; ++#X obj 642 150 r \$0-flanger/feedback; ++#X msg 642 170 /flanger/feedback \$1; ++#X connect 50 0 51 0; ++#X connect 51 0 27 0; ++#X obj 834 150 route /flanger/feedback; ++#X obj 834 170 s \$0-flanger/feedback; ++#X connect 46 1 52 0; ++#X connect 52 0 53 0; ++#X msg 450 190 2; ++#X obj 450 210 s \$0-flanger/freq; ++#X connect 26 0 54 0; ++#X connect 54 0 55 0; ++#X obj 642 190 r \$0-flanger/freq; ++#X msg 642 210 /flanger/freq \$1; ++#X connect 56 0 57 0; ++#X connect 57 0 27 0; ++#X obj 834 190 route /flanger/freq; ++#X obj 834 210 s \$0-flanger/freq; ++#X connect 52 1 58 0; ++#X connect 58 0 59 0; ++#X msg 450 230 1; ++#X obj 450 250 s \$0-flanger/level; ++#X connect 26 0 60 0; ++#X connect 60 0 61 0; ++#X obj 642 230 r \$0-flanger/level; ++#X msg 642 250 /flanger/level \$1; ++#X connect 62 0 63 0; ++#X connect 63 0 27 0; ++#X obj 834 230 route /flanger/level; ++#X obj 834 250 s \$0-flanger/level; ++#X connect 58 1 64 0; ++#X connect 64 0 65 0; ++#X msg 450 270 1; ++#X obj 450 290 s \$0-flanger/stereo; ++#X connect 26 0 66 0; ++#X connect 66 0 67 0; ++#X obj 642 270 r \$0-flanger/stereo; ++#X msg 642 290 /flanger/stereo \$1; ++#X connect 68 0 69 0; ++#X connect 69 0 27 0; ++#X obj 834 270 route /flanger/stereo; ++#X obj 834 290 s \$0-flanger/stereo; ++#X connect 64 1 70 0; ++#X connect 70 0 71 0; ++#X coords 0 -1 1 1 235 200 1 0 0; ++#X text 0 220 Generated Tue Jan 16 18:58:06 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/synth/freeverb.dsp.xml +@@ -0,0 +1,53 @@ ++ ++ ++ freeverb ++ Yann Orlarey ++ ++ ++ 1.0 ++ mydsp ++ 2 ++ 2 ++ ++ ++ 3 ++ ++ ++ fHslider2 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.025000000000000001f ++ ++ ++ ++ fHslider1 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.025000000000000001f ++ ++ ++ ++ fHslider0 ++ 0.25f ++ 0.0f ++ 1.0f ++ 0.025000000000000001f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/synth/freeverb.pd +@@ -0,0 +1,84 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 180 inlet~; ++#X obj 130 180 inlet~; ++#X obj 10 180 inlet; ++#X obj 190 180 r \$0-read; ++#X obj 190 210 faust-control \$0; ++#X obj 190 240 s \$0-write; ++#X obj 10 240 r \$0-in; ++#X obj 10 270 freeverb~; ++#X obj 10 300 s \$0-out; ++#X obj 70 330 outlet~; ++#X obj 130 330 outlet~; ++#X obj 10 330 outlet; ++#X connect 2 0 4 0; ++#X connect 3 0 4 0; ++#X connect 4 0 5 0; ++#X connect 7 0 8 0; ++#X connect 2 0 11 0; ++#X connect 6 0 7 0; ++#X connect 0 0 7 1; ++#X connect 1 0 7 2; ++#X connect 7 1 9 0; ++#X connect 7 2 10 0; ++#X obj 10 30 hsl 128 15 0 1 0 0 \$0-freeverb/damp \$0-freeverb/damp damp -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 0 1 0 0 \$0-freeverb/damp \$0-freeverb/damp empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 0 1 0 0 \$0-freeverb/roomsize \$0-freeverb/roomsize roomsize -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 0 1 0 0 \$0-freeverb/roomsize \$0-freeverb/roomsize empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 hsl 128 15 0 1 0 0 \$0-freeverb/wet \$0-freeverb/wet wet -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 90 nbx 5 14 0 1 0 0 \$0-freeverb/wet \$0-freeverb/wet empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 650 10 s \$0-in; ++#X obj 750 10 s \$0-read; ++#X obj 850 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 24 0 25 0; ++#X obj 650 30 r \$0-active; ++#X msg 650 50 active \$1; ++#X connect 26 0 27 0; ++#X connect 27 0 21 0; ++#X obj 850 30 route active; ++#X obj 850 50 s \$0-active; ++#X connect 23 0 28 0; ++#X connect 28 0 29 0; ++#X msg 450 70 0.5; ++#X obj 450 90 s \$0-freeverb/damp; ++#X connect 20 0 30 0; ++#X connect 30 0 31 0; ++#X obj 650 70 r \$0-freeverb/damp; ++#X msg 650 90 /freeverb/damp \$1; ++#X connect 32 0 33 0; ++#X connect 33 0 21 0; ++#X obj 850 70 route /freeverb/damp; ++#X obj 850 90 s \$0-freeverb/damp; ++#X connect 28 1 34 0; ++#X connect 34 0 35 0; ++#X msg 450 110 0.5; ++#X obj 450 130 s \$0-freeverb/roomsize; ++#X connect 20 0 36 0; ++#X connect 36 0 37 0; ++#X obj 650 110 r \$0-freeverb/roomsize; ++#X msg 650 130 /freeverb/roomsize \$1; ++#X connect 38 0 39 0; ++#X connect 39 0 21 0; ++#X obj 850 110 route /freeverb/roomsize; ++#X obj 850 130 s \$0-freeverb/roomsize; ++#X connect 34 1 40 0; ++#X connect 40 0 41 0; ++#X msg 450 150 0.25; ++#X obj 450 170 s \$0-freeverb/wet; ++#X connect 20 0 42 0; ++#X connect 42 0 43 0; ++#X obj 650 150 r \$0-freeverb/wet; ++#X msg 650 170 /freeverb/wet \$1; ++#X connect 44 0 45 0; ++#X connect 45 0 21 0; ++#X obj 850 150 route /freeverb/wet; ++#X obj 850 170 s \$0-freeverb/wet; ++#X connect 40 1 46 0; ++#X connect 46 0 47 0; ++#X coords 0 -1 1 1 235 110 1 0 0; ++#X text 0 130 Generated Tue Jan 16 18:58:06 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/synth/fuzz.dsp.xml +@@ -0,0 +1,44 @@ ++ ++ ++ fuzz ++ Bram de Jong (from musicdsp.org) ++ ++ ++ 1.0 ++ mydsp ++ 2 ++ 2 ++ ++ ++ 2 ++ ++ ++ fHslider1 ++ 12.0f ++ 0.0f ++ 100.0f ++ 0.10000000000000001f ++ ++ ++ ++ fHslider0 ++ 3.0f ++ -96.0f ++ 96.0f ++ 0.10000000000000001f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/synth/fuzz.pd +@@ -0,0 +1,70 @@ ++#N canvas 0 0 450 300 10; ++#X obj 70 150 inlet~; ++#X obj 130 150 inlet~; ++#X obj 10 150 inlet; ++#X obj 190 150 r \$0-read; ++#X obj 190 180 faust-control \$0; ++#X obj 190 210 s \$0-write; ++#X obj 10 210 r \$0-in; ++#X obj 10 240 fuzz~; ++#X obj 10 270 s \$0-out; ++#X obj 70 300 outlet~; ++#X obj 130 300 outlet~; ++#X obj 10 300 outlet; ++#X connect 2 0 4 0; ++#X connect 3 0 4 0; ++#X connect 4 0 5 0; ++#X connect 7 0 8 0; ++#X connect 2 0 11 0; ++#X connect 6 0 7 0; ++#X connect 0 0 7 1; ++#X connect 1 0 7 2; ++#X connect 7 1 9 0; ++#X connect 7 2 10 0; ++#X obj 10 30 hsl 128 15 0 100 0 0 \$0-dist/distortion \$0-dist/distortion distortion -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 0 100 0 0 \$0-dist/distortion \$0-dist/distortion empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 -96 96 0 0 \$0-dist/gain \$0-dist/gain gain -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 -96 96 0 0 \$0-dist/gain \$0-dist/gain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 634 10 s \$0-in; ++#X obj 726 10 s \$0-read; ++#X obj 818 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 22 0 23 0; ++#X obj 634 30 r \$0-active; ++#X msg 634 50 active \$1; ++#X connect 24 0 25 0; ++#X connect 25 0 19 0; ++#X obj 818 30 route active; ++#X obj 818 50 s \$0-active; ++#X connect 21 0 26 0; ++#X connect 26 0 27 0; ++#X msg 450 70 12; ++#X obj 450 90 s \$0-dist/distortion; ++#X connect 18 0 28 0; ++#X connect 28 0 29 0; ++#X obj 634 70 r \$0-dist/distortion; ++#X msg 634 90 /dist/distortion \$1; ++#X connect 30 0 31 0; ++#X connect 31 0 19 0; ++#X obj 818 70 route /dist/distortion; ++#X obj 818 90 s \$0-dist/distortion; ++#X connect 26 1 32 0; ++#X connect 32 0 33 0; ++#X msg 450 110 3; ++#X obj 450 130 s \$0-dist/gain; ++#X connect 18 0 34 0; ++#X connect 34 0 35 0; ++#X obj 634 110 r \$0-dist/gain; ++#X msg 634 130 /dist/gain \$1; ++#X connect 36 0 37 0; ++#X connect 37 0 19 0; ++#X obj 818 110 route /dist/gain; ++#X obj 818 130 s \$0-dist/gain; ++#X connect 32 1 38 0; ++#X connect 38 0 39 0; ++#X coords 0 -1 1 1 235 80 1 0 0; ++#X text 0 100 Generated Tue Jan 16 18:58:06 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/synth/karplus.pd +@@ -0,0 +1,163 @@ ++#N canvas 0 0 450 300 10; ++#X obj 10 240 inlet; ++#X obj 130 240 inlet; ++#X obj 190 240 r \$0-read; ++#X obj 130 270 r \$0-all; ++#X obj 190 270 faust-control \$0; ++#X obj 190 300 s \$0-write; ++#X obj 130 300 r \$0-in; ++#X obj 130 570 s \$0-out; ++#X obj 10 330 faust-gate 1; ++#X obj 130 330 karplus~; ++#X obj 10 360 faust-gate 2; ++#X obj 130 360 karplus~; ++#X obj 10 390 faust-gate 3; ++#X obj 130 390 karplus~; ++#X obj 10 420 faust-gate 4; ++#X obj 130 420 karplus~; ++#X obj 10 450 faust-gate 5; ++#X obj 130 450 karplus~; ++#X obj 10 480 faust-gate 6; ++#X obj 130 480 karplus~; ++#X obj 10 510 faust-gate 7; ++#X obj 130 510 karplus~; ++#X obj 10 540 faust-gate 8; ++#X obj 130 540 karplus~; ++#X obj 130 600 outlet~; ++#X obj 190 600 outlet~; ++#X obj 10 600 outlet; ++#X connect 1 0 4 0; ++#X connect 2 0 4 0; ++#X connect 4 0 5 0; ++#X connect 1 0 26 0; ++#X connect 6 0 9 0; ++#X connect 9 0 7 0; ++#X connect 0 0 8 0; ++#X connect 8 0 9 0; ++#X connect 3 0 9 0; ++#X connect 0 0 10 0; ++#X connect 10 0 11 0; ++#X connect 3 0 11 0; ++#X connect 0 0 12 0; ++#X connect 12 0 13 0; ++#X connect 3 0 13 0; ++#X connect 0 0 14 0; ++#X connect 14 0 15 0; ++#X connect 3 0 15 0; ++#X connect 0 0 16 0; ++#X connect 16 0 17 0; ++#X connect 3 0 17 0; ++#X connect 0 0 18 0; ++#X connect 18 0 19 0; ++#X connect 3 0 19 0; ++#X connect 0 0 20 0; ++#X connect 20 0 21 0; ++#X connect 3 0 21 0; ++#X connect 0 0 22 0; ++#X connect 22 0 23 0; ++#X connect 3 0 23 0; ++#X connect 9 1 24 0; ++#X connect 9 2 25 0; ++#X connect 11 1 24 0; ++#X connect 11 2 25 0; ++#X connect 13 1 24 0; ++#X connect 13 2 25 0; ++#X connect 15 1 24 0; ++#X connect 15 2 25 0; ++#X connect 17 1 24 0; ++#X connect 17 2 25 0; ++#X connect 19 1 24 0; ++#X connect 19 2 25 0; ++#X connect 21 1 24 0; ++#X connect 21 2 25 0; ++#X connect 23 1 24 0; ++#X connect 23 2 25 0; ++#X obj 10 30 hsl 128 15 1 1024 0 0 \$0-karplus/1-excitator/samples \$0-karplus/1-excitator/samples samples -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 1 1024 0 0 \$0-karplus/1-excitator/samples \$0-karplus/1-excitator/samples empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 0 10 0 0 \$0-karplus/2-resonator/decay-time \$0-karplus/2-resonator/decay-time decay-time -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 0 10 0 0 \$0-karplus/2-resonator/decay-time \$0-karplus/2-resonator/decay-time empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 hsl 128 15 -2 2 0 0 \$0-karplus/2-resonator/pitch-bend \$0-karplus/2-resonator/pitch-bend pitch-bend -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 90 nbx 5 14 -2 2 0 0 \$0-karplus/2-resonator/pitch-bend \$0-karplus/2-resonator/pitch-bend empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 120 hsl 128 15 -1 1 0 0 \$0-karplus/3-master/pan \$0-karplus/3-master/pan pan -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 120 nbx 5 14 -1 1 0 0 \$0-karplus/3-master/pan \$0-karplus/3-master/pan empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 150 hsl 128 15 -96 96 0 0 \$0-karplus/3-master/vol \$0-karplus/3-master/vol vol -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 150 nbx 5 14 -96 96 0 0 \$0-karplus/3-master/vol \$0-karplus/3-master/vol empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 754 10 s \$0-all; ++#X obj 906 10 s \$0-read; ++#X obj 1058 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 43 0 44 0; ++#X obj 754 30 r \$0-active; ++#X msg 754 50 active \$1; ++#X connect 45 0 46 0; ++#X connect 46 0 40 0; ++#X obj 1058 30 route active; ++#X obj 1058 50 s \$0-active; ++#X connect 42 0 47 0; ++#X connect 47 0 48 0; ++#X msg 450 70 512; ++#X obj 450 90 s \$0-karplus/1-excitator/samples; ++#X connect 39 0 49 0; ++#X connect 49 0 50 0; ++#X obj 754 70 r \$0-karplus/1-excitator/samples; ++#X msg 754 90 /karplus/1-excitator/samples \$1; ++#X connect 51 0 52 0; ++#X connect 52 0 40 0; ++#X obj 1058 70 route /karplus/1-excitator/samples; ++#X obj 1058 90 s \$0-karplus/1-excitator/samples; ++#X connect 47 1 53 0; ++#X connect 53 0 54 0; ++#X msg 450 110 4; ++#X obj 450 130 s \$0-karplus/2-resonator/decay-time; ++#X connect 39 0 55 0; ++#X connect 55 0 56 0; ++#X obj 754 110 r \$0-karplus/2-resonator/decay-time; ++#X msg 754 130 /karplus/2-resonator/decay-time \$1; ++#X connect 57 0 58 0; ++#X connect 58 0 40 0; ++#X obj 1058 110 route /karplus/2-resonator/decay-time; ++#X obj 1058 130 s \$0-karplus/2-resonator/decay-time; ++#X connect 53 1 59 0; ++#X connect 59 0 60 0; ++#X msg 450 150 0; ++#X obj 450 170 s \$0-karplus/2-resonator/pitch-bend; ++#X connect 39 0 61 0; ++#X connect 61 0 62 0; ++#X obj 754 150 r \$0-karplus/2-resonator/pitch-bend; ++#X msg 754 170 /karplus/2-resonator/pitch-bend \$1; ++#X connect 63 0 64 0; ++#X connect 64 0 40 0; ++#X obj 1058 150 route /karplus/2-resonator/pitch-bend; ++#X obj 1058 170 s \$0-karplus/2-resonator/pitch-bend; ++#X connect 59 1 65 0; ++#X connect 65 0 66 0; ++#X msg 450 190 0; ++#X obj 450 210 s \$0-karplus/3-master/pan; ++#X connect 39 0 67 0; ++#X connect 67 0 68 0; ++#X obj 754 190 r \$0-karplus/3-master/pan; ++#X msg 754 210 /karplus/3-master/pan \$1; ++#X connect 69 0 70 0; ++#X connect 70 0 40 0; ++#X obj 1058 190 route /karplus/3-master/pan; ++#X obj 1058 210 s \$0-karplus/3-master/pan; ++#X connect 65 1 71 0; ++#X connect 71 0 72 0; ++#X msg 450 230 -10; ++#X obj 450 250 s \$0-karplus/3-master/vol; ++#X connect 39 0 73 0; ++#X connect 73 0 74 0; ++#X obj 754 230 r \$0-karplus/3-master/vol; ++#X msg 754 250 /karplus/3-master/vol \$1; ++#X connect 75 0 76 0; ++#X connect 76 0 40 0; ++#X obj 1058 230 route /karplus/3-master/vol; ++#X obj 1058 250 s \$0-karplus/3-master/vol; ++#X connect 71 1 77 0; ++#X connect 77 0 78 0; ++#X coords 0 -1 1 1 235 170 1 0 0; ++#X text 0 190 Generated Tue Jan 16 18:58:06 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/synth/karplus.syn.xml +@@ -0,0 +1,103 @@ ++ ++ ++ karplus ++ Yann Orlarey ++ ++ ++ 1.0 ++ mydsp ++ 0 ++ 2 ++ ++ ++ 8 ++ ++ ++ fEntry1 ++ 1.0f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fButton0 ++ ++ ++ ++ fHslider4 ++ 512.0f ++ 1.0f ++ 1024.0f ++ 1.0f ++ ++ ++ ++ fHslider3 ++ 4.0f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fEntry0 ++ 440.0f ++ 20.0f ++ 20000.0f ++ 1.0f ++ ++ ++ ++ fHslider2 ++ 0.0f ++ -2.0f ++ 2.0f ++ 0.01f ++ ++ ++ ++ fHslider1 ++ 0.0f ++ -1.0f ++ 1.0f ++ 0.01f ++ ++ ++ ++ fHslider0 ++ -10.0f ++ -96.0f ++ 96.0f ++ 0.10000000000000001f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/synth/karplusplus.pd +@@ -0,0 +1,205 @@ ++#N canvas 0 0 450 300 10; ++#X obj 10 330 inlet; ++#X obj 130 330 inlet; ++#X obj 190 330 r \$0-read; ++#X obj 130 360 r \$0-all; ++#X obj 190 360 faust-control \$0; ++#X obj 190 390 s \$0-write; ++#X obj 130 390 r \$0-in; ++#X obj 130 660 s \$0-out; ++#X obj 10 420 faust-gate 1; ++#X obj 130 420 karplusplus~; ++#X obj 10 450 faust-gate 2; ++#X obj 130 450 karplusplus~; ++#X obj 10 480 faust-gate 3; ++#X obj 130 480 karplusplus~; ++#X obj 10 510 faust-gate 4; ++#X obj 130 510 karplusplus~; ++#X obj 10 540 faust-gate 5; ++#X obj 130 540 karplusplus~; ++#X obj 10 570 faust-gate 6; ++#X obj 130 570 karplusplus~; ++#X obj 10 600 faust-gate 7; ++#X obj 130 600 karplusplus~; ++#X obj 10 630 faust-gate 8; ++#X obj 130 630 karplusplus~; ++#X obj 130 690 outlet~; ++#X obj 190 690 outlet~; ++#X obj 10 690 outlet; ++#X connect 1 0 4 0; ++#X connect 2 0 4 0; ++#X connect 4 0 5 0; ++#X connect 1 0 26 0; ++#X connect 6 0 9 0; ++#X connect 9 0 7 0; ++#X connect 0 0 8 0; ++#X connect 8 0 9 0; ++#X connect 3 0 9 0; ++#X connect 0 0 10 0; ++#X connect 10 0 11 0; ++#X connect 3 0 11 0; ++#X connect 0 0 12 0; ++#X connect 12 0 13 0; ++#X connect 3 0 13 0; ++#X connect 0 0 14 0; ++#X connect 14 0 15 0; ++#X connect 3 0 15 0; ++#X connect 0 0 16 0; ++#X connect 16 0 17 0; ++#X connect 3 0 17 0; ++#X connect 0 0 18 0; ++#X connect 18 0 19 0; ++#X connect 3 0 19 0; ++#X connect 0 0 20 0; ++#X connect 20 0 21 0; ++#X connect 3 0 21 0; ++#X connect 0 0 22 0; ++#X connect 22 0 23 0; ++#X connect 3 0 23 0; ++#X connect 9 1 24 0; ++#X connect 9 2 25 0; ++#X connect 11 1 24 0; ++#X connect 11 2 25 0; ++#X connect 13 1 24 0; ++#X connect 13 2 25 0; ++#X connect 15 1 24 0; ++#X connect 15 2 25 0; ++#X connect 17 1 24 0; ++#X connect 17 2 25 0; ++#X connect 19 1 24 0; ++#X connect 19 2 25 0; ++#X connect 21 1 24 0; ++#X connect 21 2 25 0; ++#X connect 23 1 24 0; ++#X connect 23 2 25 0; ++#X obj 10 30 hsl 128 15 1 1024 0 0 \$0-karplusplus/1-excitator/samples \$0-karplusplus/1-excitator/samples samples -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 1 1024 0 0 \$0-karplusplus/1-excitator/samples \$0-karplusplus/1-excitator/samples empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 0 10 0 0 \$0-karplusplus/2-resonator/decay-time \$0-karplusplus/2-resonator/decay-time decay-time -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 0 10 0 0 \$0-karplusplus/2-resonator/decay-time \$0-karplusplus/2-resonator/decay-time empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 hsl 128 15 0 50 0 0 \$0-karplusplus/3-fuzz/drive \$0-karplusplus/3-fuzz/drive drive -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 90 nbx 5 14 0 50 0 0 \$0-karplusplus/3-fuzz/drive \$0-karplusplus/3-fuzz/drive empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 120 hsl 128 15 0 10 0 0 \$0-karplusplus/3-fuzz/level \$0-karplusplus/3-fuzz/level level -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 120 nbx 5 14 0 10 0 0 \$0-karplusplus/3-fuzz/level \$0-karplusplus/3-fuzz/level empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 150 hsl 128 15 0 20 0 0 \$0-karplusplus/3-fuzz/res \$0-karplusplus/3-fuzz/res res -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 150 nbx 5 14 0 20 0 0 \$0-karplusplus/3-fuzz/res \$0-karplusplus/3-fuzz/res empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 180 hsl 128 15 1 20 0 0 \$0-karplusplus/3-fuzz/tone \$0-karplusplus/3-fuzz/tone tone -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 180 nbx 5 14 1 20 0 0 \$0-karplusplus/3-fuzz/tone \$0-karplusplus/3-fuzz/tone empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 210 hsl 128 15 0 1 0 0 \$0-karplusplus/4-master/pan \$0-karplusplus/4-master/pan pan -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 210 nbx 5 14 0 1 0 0 \$0-karplusplus/4-master/pan \$0-karplusplus/4-master/pan empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 240 hsl 128 15 0 10 0 0 \$0-karplusplus/4-master/vol \$0-karplusplus/4-master/vol vol -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 240 nbx 5 14 0 10 0 0 \$0-karplusplus/4-master/vol \$0-karplusplus/4-master/vol empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 786 10 s \$0-all; ++#X obj 954 10 s \$0-read; ++#X obj 1122 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 49 0 50 0; ++#X obj 786 30 r \$0-active; ++#X msg 786 50 active \$1; ++#X connect 51 0 52 0; ++#X connect 52 0 46 0; ++#X obj 1122 30 route active; ++#X obj 1122 50 s \$0-active; ++#X connect 48 0 53 0; ++#X connect 53 0 54 0; ++#X msg 450 70 512; ++#X obj 450 90 s \$0-karplusplus/1-excitator/samples; ++#X connect 45 0 55 0; ++#X connect 55 0 56 0; ++#X obj 786 70 r \$0-karplusplus/1-excitator/samples; ++#X msg 786 90 /karplusplus/1-excitator/samples \$1; ++#X connect 57 0 58 0; ++#X connect 58 0 46 0; ++#X obj 1122 70 route /karplusplus/1-excitator/samples; ++#X obj 1122 90 s \$0-karplusplus/1-excitator/samples; ++#X connect 53 1 59 0; ++#X connect 59 0 60 0; ++#X msg 450 110 4; ++#X obj 450 130 s \$0-karplusplus/2-resonator/decay-time; ++#X connect 45 0 61 0; ++#X connect 61 0 62 0; ++#X obj 786 110 r \$0-karplusplus/2-resonator/decay-time; ++#X msg 786 130 /karplusplus/2-resonator/decay-time \$1; ++#X connect 63 0 64 0; ++#X connect 64 0 46 0; ++#X obj 1122 110 route /karplusplus/2-resonator/decay-time; ++#X obj 1122 130 s \$0-karplusplus/2-resonator/decay-time; ++#X connect 59 1 65 0; ++#X connect 65 0 66 0; ++#X msg 450 150 0; ++#X obj 450 170 s \$0-karplusplus/3-fuzz/drive; ++#X connect 45 0 67 0; ++#X connect 67 0 68 0; ++#X obj 786 150 r \$0-karplusplus/3-fuzz/drive; ++#X msg 786 170 /karplusplus/3-fuzz/drive \$1; ++#X connect 69 0 70 0; ++#X connect 70 0 46 0; ++#X obj 1122 150 route /karplusplus/3-fuzz/drive; ++#X obj 1122 170 s \$0-karplusplus/3-fuzz/drive; ++#X connect 65 1 71 0; ++#X connect 71 0 72 0; ++#X msg 450 190 1; ++#X obj 450 210 s \$0-karplusplus/3-fuzz/level; ++#X connect 45 0 73 0; ++#X connect 73 0 74 0; ++#X obj 786 190 r \$0-karplusplus/3-fuzz/level; ++#X msg 786 210 /karplusplus/3-fuzz/level \$1; ++#X connect 75 0 76 0; ++#X connect 76 0 46 0; ++#X obj 1122 190 route /karplusplus/3-fuzz/level; ++#X obj 1122 210 s \$0-karplusplus/3-fuzz/level; ++#X connect 71 1 77 0; ++#X connect 77 0 78 0; ++#X msg 450 230 0; ++#X obj 450 250 s \$0-karplusplus/3-fuzz/res; ++#X connect 45 0 79 0; ++#X connect 79 0 80 0; ++#X obj 786 230 r \$0-karplusplus/3-fuzz/res; ++#X msg 786 250 /karplusplus/3-fuzz/res \$1; ++#X connect 81 0 82 0; ++#X connect 82 0 46 0; ++#X obj 1122 230 route /karplusplus/3-fuzz/res; ++#X obj 1122 250 s \$0-karplusplus/3-fuzz/res; ++#X connect 77 1 83 0; ++#X connect 83 0 84 0; ++#X msg 450 270 20; ++#X obj 450 290 s \$0-karplusplus/3-fuzz/tone; ++#X connect 45 0 85 0; ++#X connect 85 0 86 0; ++#X obj 786 270 r \$0-karplusplus/3-fuzz/tone; ++#X msg 786 290 /karplusplus/3-fuzz/tone \$1; ++#X connect 87 0 88 0; ++#X connect 88 0 46 0; ++#X obj 1122 270 route /karplusplus/3-fuzz/tone; ++#X obj 1122 290 s \$0-karplusplus/3-fuzz/tone; ++#X connect 83 1 89 0; ++#X connect 89 0 90 0; ++#X msg 450 310 0.5; ++#X obj 450 330 s \$0-karplusplus/4-master/pan; ++#X connect 45 0 91 0; ++#X connect 91 0 92 0; ++#X obj 786 310 r \$0-karplusplus/4-master/pan; ++#X msg 786 330 /karplusplus/4-master/pan \$1; ++#X connect 93 0 94 0; ++#X connect 94 0 46 0; ++#X obj 1122 310 route /karplusplus/4-master/pan; ++#X obj 1122 330 s \$0-karplusplus/4-master/pan; ++#X connect 89 1 95 0; ++#X connect 95 0 96 0; ++#X msg 450 350 0.3; ++#X obj 450 370 s \$0-karplusplus/4-master/vol; ++#X connect 45 0 97 0; ++#X connect 97 0 98 0; ++#X obj 786 350 r \$0-karplusplus/4-master/vol; ++#X msg 786 370 /karplusplus/4-master/vol \$1; ++#X connect 99 0 100 0; ++#X connect 100 0 46 0; ++#X obj 1122 350 route /karplusplus/4-master/vol; ++#X obj 1122 370 s \$0-karplusplus/4-master/vol; ++#X connect 95 1 101 0; ++#X connect 101 0 102 0; ++#X coords 0 -1 1 1 235 260 1 0 0; ++#X text 0 280 Generated Tue Jan 16 18:58:06 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/synth/karplusplus.syn.xml +@@ -0,0 +1,142 @@ ++ ++ ++ karplusplus ++ Yann Orlarey, Albert Graef ++ ++ ++ 1.0 ++ mydsp ++ 0 ++ 2 ++ ++ ++ 12 ++ ++ ++ fEntry2 ++ 1.0f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fButton0 ++ ++ ++ ++ fHslider7 ++ 512.0f ++ 1.0f ++ 1024.0f ++ 1.0f ++ ++ ++ ++ fHslider6 ++ 4.0f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fEntry1 ++ 440.0f ++ 20.0f ++ 20000.0f ++ 1.0f ++ ++ ++ ++ fHslider5 ++ 0.0f ++ 0.0f ++ 50.0f ++ 0.10000000000000001f ++ ++ ++ ++ fEntry0 ++ 440.0f ++ 20.0f ++ 20000.0f ++ 1.0f ++ ++ ++ ++ fHslider0 ++ 1.0f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fHslider3 ++ 0.0f ++ 0.0f ++ 20.0f ++ 0.10000000000000001f ++ ++ ++ ++ fHslider4 ++ 20.0f ++ 1.0f ++ 20.0f ++ 0.10000000000000001f ++ ++ ++ ++ fHslider2 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.01f ++ ++ ++ ++ fHslider1 ++ 0.29999999999999999f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/synth/organ.pd +@@ -0,0 +1,219 @@ ++#N canvas 0 0 450 300 10; ++#X obj 10 360 inlet; ++#X obj 130 360 inlet; ++#X obj 190 360 r \$0-read; ++#X obj 130 390 r \$0-all; ++#X obj 190 390 faust-control \$0; ++#X obj 190 420 s \$0-write; ++#X obj 130 420 r \$0-in; ++#X obj 130 690 s \$0-out; ++#X obj 10 450 faust-gate 1; ++#X obj 130 450 organ~; ++#X obj 10 480 faust-gate 2; ++#X obj 130 480 organ~; ++#X obj 10 510 faust-gate 3; ++#X obj 130 510 organ~; ++#X obj 10 540 faust-gate 4; ++#X obj 130 540 organ~; ++#X obj 10 570 faust-gate 5; ++#X obj 130 570 organ~; ++#X obj 10 600 faust-gate 6; ++#X obj 130 600 organ~; ++#X obj 10 630 faust-gate 7; ++#X obj 130 630 organ~; ++#X obj 10 660 faust-gate 8; ++#X obj 130 660 organ~; ++#X obj 130 720 outlet~; ++#X obj 190 720 outlet~; ++#X obj 10 720 outlet; ++#X connect 1 0 4 0; ++#X connect 2 0 4 0; ++#X connect 4 0 5 0; ++#X connect 1 0 26 0; ++#X connect 6 0 9 0; ++#X connect 9 0 7 0; ++#X connect 0 0 8 0; ++#X connect 8 0 9 0; ++#X connect 3 0 9 0; ++#X connect 0 0 10 0; ++#X connect 10 0 11 0; ++#X connect 3 0 11 0; ++#X connect 0 0 12 0; ++#X connect 12 0 13 0; ++#X connect 3 0 13 0; ++#X connect 0 0 14 0; ++#X connect 14 0 15 0; ++#X connect 3 0 15 0; ++#X connect 0 0 16 0; ++#X connect 16 0 17 0; ++#X connect 3 0 17 0; ++#X connect 0 0 18 0; ++#X connect 18 0 19 0; ++#X connect 3 0 19 0; ++#X connect 0 0 20 0; ++#X connect 20 0 21 0; ++#X connect 3 0 21 0; ++#X connect 0 0 22 0; ++#X connect 22 0 23 0; ++#X connect 3 0 23 0; ++#X connect 9 1 24 0; ++#X connect 9 2 25 0; ++#X connect 11 1 24 0; ++#X connect 11 2 25 0; ++#X connect 13 1 24 0; ++#X connect 13 2 25 0; ++#X connect 15 1 24 0; ++#X connect 15 2 25 0; ++#X connect 17 1 24 0; ++#X connect 17 2 25 0; ++#X connect 19 1 24 0; ++#X connect 19 2 25 0; ++#X connect 21 1 24 0; ++#X connect 21 2 25 0; ++#X connect 23 1 24 0; ++#X connect 23 2 25 0; ++#X obj 10 30 hsl 128 15 0 1 0 0 \$0-organ/1-adsr/attack \$0-organ/1-adsr/attack attack -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 0 1 0 0 \$0-organ/1-adsr/attack \$0-organ/1-adsr/attack empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 0 1 0 0 \$0-organ/1-adsr/decay \$0-organ/1-adsr/decay decay -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 0 1 0 0 \$0-organ/1-adsr/decay \$0-organ/1-adsr/decay empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 hsl 128 15 0 1 0 0 \$0-organ/1-adsr/release \$0-organ/1-adsr/release release -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 90 nbx 5 14 0 1 0 0 \$0-organ/1-adsr/release \$0-organ/1-adsr/release empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 120 hsl 128 15 0 1 0 0 \$0-organ/1-adsr/sustain \$0-organ/1-adsr/sustain sustain -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 120 nbx 5 14 0 1 0 0 \$0-organ/1-adsr/sustain \$0-organ/1-adsr/sustain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 150 hsl 128 15 0 1 0 0 \$0-organ/2-master/pan \$0-organ/2-master/pan pan -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 150 nbx 5 14 0 1 0 0 \$0-organ/2-master/pan \$0-organ/2-master/pan empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 180 hsl 128 15 0 10 0 0 \$0-organ/2-master/vol \$0-organ/2-master/vol vol -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 180 nbx 5 14 0 10 0 0 \$0-organ/2-master/vol \$0-organ/2-master/vol empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 210 hsl 128 15 0 3 0 0 \$0-organ/amp1 \$0-organ/amp1 amp1 -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 210 nbx 5 14 0 3 0 0 \$0-organ/amp1 \$0-organ/amp1 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 240 hsl 128 15 0 3 0 0 \$0-organ/amp2 \$0-organ/amp2 amp2 -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 240 nbx 5 14 0 3 0 0 \$0-organ/amp2 \$0-organ/amp2 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 270 hsl 128 15 0 3 0 0 \$0-organ/amp3 \$0-organ/amp3 amp3 -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 270 nbx 5 14 0 3 0 0 \$0-organ/amp3 \$0-organ/amp3 empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 674 10 s \$0-all; ++#X obj 786 10 s \$0-read; ++#X obj 898 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 51 0 52 0; ++#X obj 674 30 r \$0-active; ++#X msg 674 50 active \$1; ++#X connect 53 0 54 0; ++#X connect 54 0 48 0; ++#X obj 898 30 route active; ++#X obj 898 50 s \$0-active; ++#X connect 50 0 55 0; ++#X connect 55 0 56 0; ++#X msg 450 70 0.01; ++#X obj 450 90 s \$0-organ/1-adsr/attack; ++#X connect 47 0 57 0; ++#X connect 57 0 58 0; ++#X obj 674 70 r \$0-organ/1-adsr/attack; ++#X msg 674 90 /organ/1-adsr/attack \$1; ++#X connect 59 0 60 0; ++#X connect 60 0 48 0; ++#X obj 898 70 route /organ/1-adsr/attack; ++#X obj 898 90 s \$0-organ/1-adsr/attack; ++#X connect 55 1 61 0; ++#X connect 61 0 62 0; ++#X msg 450 110 0.3; ++#X obj 450 130 s \$0-organ/1-adsr/decay; ++#X connect 47 0 63 0; ++#X connect 63 0 64 0; ++#X obj 674 110 r \$0-organ/1-adsr/decay; ++#X msg 674 130 /organ/1-adsr/decay \$1; ++#X connect 65 0 66 0; ++#X connect 66 0 48 0; ++#X obj 898 110 route /organ/1-adsr/decay; ++#X obj 898 130 s \$0-organ/1-adsr/decay; ++#X connect 61 1 67 0; ++#X connect 67 0 68 0; ++#X msg 450 150 0.2; ++#X obj 450 170 s \$0-organ/1-adsr/release; ++#X connect 47 0 69 0; ++#X connect 69 0 70 0; ++#X obj 674 150 r \$0-organ/1-adsr/release; ++#X msg 674 170 /organ/1-adsr/release \$1; ++#X connect 71 0 72 0; ++#X connect 72 0 48 0; ++#X obj 898 150 route /organ/1-adsr/release; ++#X obj 898 170 s \$0-organ/1-adsr/release; ++#X connect 67 1 73 0; ++#X connect 73 0 74 0; ++#X msg 450 190 0.5; ++#X obj 450 210 s \$0-organ/1-adsr/sustain; ++#X connect 47 0 75 0; ++#X connect 75 0 76 0; ++#X obj 674 190 r \$0-organ/1-adsr/sustain; ++#X msg 674 210 /organ/1-adsr/sustain \$1; ++#X connect 77 0 78 0; ++#X connect 78 0 48 0; ++#X obj 898 190 route /organ/1-adsr/sustain; ++#X obj 898 210 s \$0-organ/1-adsr/sustain; ++#X connect 73 1 79 0; ++#X connect 79 0 80 0; ++#X msg 450 230 0.5; ++#X obj 450 250 s \$0-organ/2-master/pan; ++#X connect 47 0 81 0; ++#X connect 81 0 82 0; ++#X obj 674 230 r \$0-organ/2-master/pan; ++#X msg 674 250 /organ/2-master/pan \$1; ++#X connect 83 0 84 0; ++#X connect 84 0 48 0; ++#X obj 898 230 route /organ/2-master/pan; ++#X obj 898 250 s \$0-organ/2-master/pan; ++#X connect 79 1 85 0; ++#X connect 85 0 86 0; ++#X msg 450 270 0.3; ++#X obj 450 290 s \$0-organ/2-master/vol; ++#X connect 47 0 87 0; ++#X connect 87 0 88 0; ++#X obj 674 270 r \$0-organ/2-master/vol; ++#X msg 674 290 /organ/2-master/vol \$1; ++#X connect 89 0 90 0; ++#X connect 90 0 48 0; ++#X obj 898 270 route /organ/2-master/vol; ++#X obj 898 290 s \$0-organ/2-master/vol; ++#X connect 85 1 91 0; ++#X connect 91 0 92 0; ++#X msg 450 310 1; ++#X obj 450 330 s \$0-organ/amp1; ++#X connect 47 0 93 0; ++#X connect 93 0 94 0; ++#X obj 674 310 r \$0-organ/amp1; ++#X msg 674 330 /organ/amp1 \$1; ++#X connect 95 0 96 0; ++#X connect 96 0 48 0; ++#X obj 898 310 route /organ/amp1; ++#X obj 898 330 s \$0-organ/amp1; ++#X connect 91 1 97 0; ++#X connect 97 0 98 0; ++#X msg 450 350 0.5; ++#X obj 450 370 s \$0-organ/amp2; ++#X connect 47 0 99 0; ++#X connect 99 0 100 0; ++#X obj 674 350 r \$0-organ/amp2; ++#X msg 674 370 /organ/amp2 \$1; ++#X connect 101 0 102 0; ++#X connect 102 0 48 0; ++#X obj 898 350 route /organ/amp2; ++#X obj 898 370 s \$0-organ/amp2; ++#X connect 97 1 103 0; ++#X connect 103 0 104 0; ++#X msg 450 390 0.25; ++#X obj 450 410 s \$0-organ/amp3; ++#X connect 47 0 105 0; ++#X connect 105 0 106 0; ++#X obj 674 390 r \$0-organ/amp3; ++#X msg 674 410 /organ/amp3 \$1; ++#X connect 107 0 108 0; ++#X connect 108 0 48 0; ++#X obj 898 390 route /organ/amp3; ++#X obj 898 410 s \$0-organ/amp3; ++#X connect 103 1 109 0; ++#X connect 109 0 110 0; ++#X coords 0 -1 1 1 235 290 1 0 0; ++#X text 0 310 Generated Tue Jan 16 18:58:06 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/synth/organ.syn.xml +@@ -0,0 +1,136 @@ ++ ++ ++ organ ++ Albert Graef ++ ++ ++ 1.0 ++ mydsp ++ 0 ++ 2 ++ ++ ++ 12 ++ ++ ++ fHslider2 ++ 0.01f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fHslider4 ++ 0.29999999999999999f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fHslider5 ++ 0.20000000000000001f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fHslider3 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.01f ++ ++ ++ ++ fHslider1 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.01f ++ ++ ++ ++ fHslider0 ++ 0.29999999999999999f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fHslider6 ++ 1.0f ++ 0.0f ++ 3.0f ++ 0.01f ++ ++ ++ ++ fHslider7 ++ 0.5f ++ 0.0f ++ 3.0f ++ 0.01f ++ ++ ++ ++ fHslider8 ++ 0.25f ++ 0.0f ++ 3.0f ++ 0.01f ++ ++ ++ ++ fEntry1 ++ 440.0f ++ 20.0f ++ 20000.0f ++ 1.0f ++ ++ ++ ++ fEntry0 ++ 0.29999999999999999f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fButton0 ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/synth/phasemod.pd +@@ -0,0 +1,177 @@ ++#N canvas 0 0 450 300 10; ++#X obj 10 270 inlet; ++#X obj 130 270 inlet; ++#X obj 190 270 r \$0-read; ++#X obj 130 300 r \$0-all; ++#X obj 190 300 faust-control \$0; ++#X obj 190 330 s \$0-write; ++#X obj 130 330 r \$0-in; ++#X obj 130 600 s \$0-out; ++#X obj 10 360 faust-gate 1; ++#X obj 130 360 phasemod~; ++#X obj 10 390 faust-gate 2; ++#X obj 130 390 phasemod~; ++#X obj 10 420 faust-gate 3; ++#X obj 130 420 phasemod~; ++#X obj 10 450 faust-gate 4; ++#X obj 130 450 phasemod~; ++#X obj 10 480 faust-gate 5; ++#X obj 130 480 phasemod~; ++#X obj 10 510 faust-gate 6; ++#X obj 130 510 phasemod~; ++#X obj 10 540 faust-gate 7; ++#X obj 130 540 phasemod~; ++#X obj 10 570 faust-gate 8; ++#X obj 130 570 phasemod~; ++#X obj 130 630 outlet~; ++#X obj 190 630 outlet~; ++#X obj 10 630 outlet; ++#X connect 1 0 4 0; ++#X connect 2 0 4 0; ++#X connect 4 0 5 0; ++#X connect 1 0 26 0; ++#X connect 6 0 9 0; ++#X connect 9 0 7 0; ++#X connect 0 0 8 0; ++#X connect 8 0 9 0; ++#X connect 3 0 9 0; ++#X connect 0 0 10 0; ++#X connect 10 0 11 0; ++#X connect 3 0 11 0; ++#X connect 0 0 12 0; ++#X connect 12 0 13 0; ++#X connect 3 0 13 0; ++#X connect 0 0 14 0; ++#X connect 14 0 15 0; ++#X connect 3 0 15 0; ++#X connect 0 0 16 0; ++#X connect 16 0 17 0; ++#X connect 3 0 17 0; ++#X connect 0 0 18 0; ++#X connect 18 0 19 0; ++#X connect 3 0 19 0; ++#X connect 0 0 20 0; ++#X connect 20 0 21 0; ++#X connect 3 0 21 0; ++#X connect 0 0 22 0; ++#X connect 22 0 23 0; ++#X connect 3 0 23 0; ++#X connect 9 1 24 0; ++#X connect 9 2 25 0; ++#X connect 11 1 24 0; ++#X connect 11 2 25 0; ++#X connect 13 1 24 0; ++#X connect 13 2 25 0; ++#X connect 15 1 24 0; ++#X connect 15 2 25 0; ++#X connect 17 1 24 0; ++#X connect 17 2 25 0; ++#X connect 19 1 24 0; ++#X connect 19 2 25 0; ++#X connect 21 1 24 0; ++#X connect 21 2 25 0; ++#X connect 23 1 24 0; ++#X connect 23 2 25 0; ++#X obj 10 30 hsl 128 15 0 1 0 0 \$0-phasemod/1-adsr/attack \$0-phasemod/1-adsr/attack attack -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 0 1 0 0 \$0-phasemod/1-adsr/attack \$0-phasemod/1-adsr/attack empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 0 1 0 0 \$0-phasemod/1-adsr/decay \$0-phasemod/1-adsr/decay decay -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 0 1 0 0 \$0-phasemod/1-adsr/decay \$0-phasemod/1-adsr/decay empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 hsl 128 15 0 1 0 0 \$0-phasemod/1-adsr/release \$0-phasemod/1-adsr/release release -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 90 nbx 5 14 0 1 0 0 \$0-phasemod/1-adsr/release \$0-phasemod/1-adsr/release empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 120 hsl 128 15 0 1 0 0 \$0-phasemod/1-adsr/sustain \$0-phasemod/1-adsr/sustain sustain -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 120 nbx 5 14 0 1 0 0 \$0-phasemod/1-adsr/sustain \$0-phasemod/1-adsr/sustain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 150 hsl 128 15 0 1 0 0 \$0-phasemod/2-master/pan \$0-phasemod/2-master/pan pan -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 150 nbx 5 14 0 1 0 0 \$0-phasemod/2-master/pan \$0-phasemod/2-master/pan empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 180 hsl 128 15 0 10 0 0 \$0-phasemod/2-master/vol \$0-phasemod/2-master/vol vol -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 180 nbx 5 14 0 10 0 0 \$0-phasemod/2-master/vol \$0-phasemod/2-master/vol empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 698 10 s \$0-all; ++#X obj 822 10 s \$0-read; ++#X obj 946 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 45 0 46 0; ++#X obj 698 30 r \$0-active; ++#X msg 698 50 active \$1; ++#X connect 47 0 48 0; ++#X connect 48 0 42 0; ++#X obj 946 30 route active; ++#X obj 946 50 s \$0-active; ++#X connect 44 0 49 0; ++#X connect 49 0 50 0; ++#X msg 450 70 0.01; ++#X obj 450 90 s \$0-phasemod/1-adsr/attack; ++#X connect 41 0 51 0; ++#X connect 51 0 52 0; ++#X obj 698 70 r \$0-phasemod/1-adsr/attack; ++#X msg 698 90 /phasemod/1-adsr/attack \$1; ++#X connect 53 0 54 0; ++#X connect 54 0 42 0; ++#X obj 946 70 route /phasemod/1-adsr/attack; ++#X obj 946 90 s \$0-phasemod/1-adsr/attack; ++#X connect 49 1 55 0; ++#X connect 55 0 56 0; ++#X msg 450 110 0.3; ++#X obj 450 130 s \$0-phasemod/1-adsr/decay; ++#X connect 41 0 57 0; ++#X connect 57 0 58 0; ++#X obj 698 110 r \$0-phasemod/1-adsr/decay; ++#X msg 698 130 /phasemod/1-adsr/decay \$1; ++#X connect 59 0 60 0; ++#X connect 60 0 42 0; ++#X obj 946 110 route /phasemod/1-adsr/decay; ++#X obj 946 130 s \$0-phasemod/1-adsr/decay; ++#X connect 55 1 61 0; ++#X connect 61 0 62 0; ++#X msg 450 150 0.2; ++#X obj 450 170 s \$0-phasemod/1-adsr/release; ++#X connect 41 0 63 0; ++#X connect 63 0 64 0; ++#X obj 698 150 r \$0-phasemod/1-adsr/release; ++#X msg 698 170 /phasemod/1-adsr/release \$1; ++#X connect 65 0 66 0; ++#X connect 66 0 42 0; ++#X obj 946 150 route /phasemod/1-adsr/release; ++#X obj 946 170 s \$0-phasemod/1-adsr/release; ++#X connect 61 1 67 0; ++#X connect 67 0 68 0; ++#X msg 450 190 0.5; ++#X obj 450 210 s \$0-phasemod/1-adsr/sustain; ++#X connect 41 0 69 0; ++#X connect 69 0 70 0; ++#X obj 698 190 r \$0-phasemod/1-adsr/sustain; ++#X msg 698 210 /phasemod/1-adsr/sustain \$1; ++#X connect 71 0 72 0; ++#X connect 72 0 42 0; ++#X obj 946 190 route /phasemod/1-adsr/sustain; ++#X obj 946 210 s \$0-phasemod/1-adsr/sustain; ++#X connect 67 1 73 0; ++#X connect 73 0 74 0; ++#X msg 450 230 0.5; ++#X obj 450 250 s \$0-phasemod/2-master/pan; ++#X connect 41 0 75 0; ++#X connect 75 0 76 0; ++#X obj 698 230 r \$0-phasemod/2-master/pan; ++#X msg 698 250 /phasemod/2-master/pan \$1; ++#X connect 77 0 78 0; ++#X connect 78 0 42 0; ++#X obj 946 230 route /phasemod/2-master/pan; ++#X obj 946 250 s \$0-phasemod/2-master/pan; ++#X connect 73 1 79 0; ++#X connect 79 0 80 0; ++#X msg 450 270 0.3; ++#X obj 450 290 s \$0-phasemod/2-master/vol; ++#X connect 41 0 81 0; ++#X connect 81 0 82 0; ++#X obj 698 270 r \$0-phasemod/2-master/vol; ++#X msg 698 290 /phasemod/2-master/vol \$1; ++#X connect 83 0 84 0; ++#X connect 84 0 42 0; ++#X obj 946 270 route /phasemod/2-master/vol; ++#X obj 946 290 s \$0-phasemod/2-master/vol; ++#X connect 79 1 85 0; ++#X connect 85 0 86 0; ++#X coords 0 -1 1 1 235 200 1 0 0; ++#X text 0 220 Generated Tue Jan 16 18:58:07 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/synth/phasemod.syn.xml +@@ -0,0 +1,109 @@ ++ ++ ++ phasemod ++ Albert Graef ++ ++ ++ 1.0 ++ mydsp ++ 0 ++ 2 ++ ++ ++ 9 ++ ++ ++ fHslider2 ++ 0.01f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fHslider4 ++ 0.29999999999999999f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fHslider5 ++ 0.20000000000000001f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fHslider3 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.01f ++ ++ ++ ++ fHslider1 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.01f ++ ++ ++ ++ fHslider0 ++ 0.29999999999999999f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fEntry1 ++ 440.0f ++ 20.0f ++ 20000.0f ++ 1.0f ++ ++ ++ ++ fEntry0 ++ 1.0f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fButton0 ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- /dev/null ++++ faust2pd-2.16/examples/synth/subtractive.pd +@@ -0,0 +1,205 @@ ++#N canvas 0 0 450 300 10; ++#X obj 10 330 inlet; ++#X obj 130 330 inlet; ++#X obj 190 330 r \$0-read; ++#X obj 130 360 r \$0-all; ++#X obj 190 360 faust-control \$0; ++#X obj 190 390 s \$0-write; ++#X obj 130 390 r \$0-in; ++#X obj 130 660 s \$0-out; ++#X obj 10 420 faust-gate 1; ++#X obj 130 420 subtractive~; ++#X obj 10 450 faust-gate 2; ++#X obj 130 450 subtractive~; ++#X obj 10 480 faust-gate 3; ++#X obj 130 480 subtractive~; ++#X obj 10 510 faust-gate 4; ++#X obj 130 510 subtractive~; ++#X obj 10 540 faust-gate 5; ++#X obj 130 540 subtractive~; ++#X obj 10 570 faust-gate 6; ++#X obj 130 570 subtractive~; ++#X obj 10 600 faust-gate 7; ++#X obj 130 600 subtractive~; ++#X obj 10 630 faust-gate 8; ++#X obj 130 630 subtractive~; ++#X obj 130 690 outlet~; ++#X obj 190 690 outlet~; ++#X obj 10 690 outlet; ++#X connect 1 0 4 0; ++#X connect 2 0 4 0; ++#X connect 4 0 5 0; ++#X connect 1 0 26 0; ++#X connect 6 0 9 0; ++#X connect 9 0 7 0; ++#X connect 0 0 8 0; ++#X connect 8 0 9 0; ++#X connect 3 0 9 0; ++#X connect 0 0 10 0; ++#X connect 10 0 11 0; ++#X connect 3 0 11 0; ++#X connect 0 0 12 0; ++#X connect 12 0 13 0; ++#X connect 3 0 13 0; ++#X connect 0 0 14 0; ++#X connect 14 0 15 0; ++#X connect 3 0 15 0; ++#X connect 0 0 16 0; ++#X connect 16 0 17 0; ++#X connect 3 0 17 0; ++#X connect 0 0 18 0; ++#X connect 18 0 19 0; ++#X connect 3 0 19 0; ++#X connect 0 0 20 0; ++#X connect 20 0 21 0; ++#X connect 3 0 21 0; ++#X connect 0 0 22 0; ++#X connect 22 0 23 0; ++#X connect 3 0 23 0; ++#X connect 9 1 24 0; ++#X connect 9 2 25 0; ++#X connect 11 1 24 0; ++#X connect 11 2 25 0; ++#X connect 13 1 24 0; ++#X connect 13 2 25 0; ++#X connect 15 1 24 0; ++#X connect 15 2 25 0; ++#X connect 17 1 24 0; ++#X connect 17 2 25 0; ++#X connect 19 1 24 0; ++#X connect 19 2 25 0; ++#X connect 21 1 24 0; ++#X connect 21 2 25 0; ++#X connect 23 1 24 0; ++#X connect 23 2 25 0; ++#X obj 10 30 hsl 128 15 0 1 0 0 \$0-subtractive/1-adsr/attack \$0-subtractive/1-adsr/attack attack -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 30 nbx 5 14 0 1 0 0 \$0-subtractive/1-adsr/attack \$0-subtractive/1-adsr/attack empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 60 hsl 128 15 0 1 0 0 \$0-subtractive/1-adsr/decay \$0-subtractive/1-adsr/decay decay -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 60 nbx 5 14 0 1 0 0 \$0-subtractive/1-adsr/decay \$0-subtractive/1-adsr/decay empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 90 hsl 128 15 0 1 0 0 \$0-subtractive/1-adsr/release \$0-subtractive/1-adsr/release release -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 90 nbx 5 14 0 1 0 0 \$0-subtractive/1-adsr/release \$0-subtractive/1-adsr/release empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 120 hsl 128 15 0 1 0 0 \$0-subtractive/1-adsr/sustain \$0-subtractive/1-adsr/sustain sustain -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 120 nbx 5 14 0 1 0 0 \$0-subtractive/1-adsr/sustain \$0-subtractive/1-adsr/sustain empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 150 hsl 128 15 1 20 0 0 \$0-subtractive/2-filter/cutoff-harmonic \$0-subtractive/2-filter/cutoff-harmonic cutoff-harmonic -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 150 nbx 5 14 1 20 0 0 \$0-subtractive/2-filter/cutoff-harmonic \$0-subtractive/2-filter/cutoff-harmonic empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 180 hsl 128 15 0 20 0 0 \$0-subtractive/2-filter/resonance-dB \$0-subtractive/2-filter/resonance-dB resonance-dB -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 180 nbx 5 14 0 20 0 0 \$0-subtractive/2-filter/resonance-dB \$0-subtractive/2-filter/resonance-dB empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 210 hsl 128 15 0 1 0 0 \$0-subtractive/3-master/pan \$0-subtractive/3-master/pan pan -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 210 nbx 5 14 0 1 0 0 \$0-subtractive/3-master/pan \$0-subtractive/3-master/pan empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 10 240 hsl 128 15 0 10 0 0 \$0-subtractive/3-master/vol \$0-subtractive/3-master/vol vol -2 -6 0 10 -262144 -1 -1 0 1; ++#X obj 160 240 nbx 5 14 0 10 0 0 \$0-subtractive/3-master/vol \$0-subtractive/3-master/vol empty 0 -6 0 10 -262144 -1 -1 256; ++#X obj 197 3 bng 15 250 50 1 \$0-init \$0-ignore empty 0 -6 0 10 -262144 -1 -1; ++#X obj 217 3 tgl 15 1 \$0-active \$0-active empty 0 -6 0 10 -262144 -1 -1 1 1; ++#X obj 450 10 r \$0-init; ++#X obj 802 10 s \$0-all; ++#X obj 978 10 s \$0-read; ++#X obj 1154 10 r \$0-write; ++#X msg 450 30 1; ++#X obj 450 50 s \$0-active; ++#X connect 49 0 50 0; ++#X obj 802 30 r \$0-active; ++#X msg 802 50 active \$1; ++#X connect 51 0 52 0; ++#X connect 52 0 46 0; ++#X obj 1154 30 route active; ++#X obj 1154 50 s \$0-active; ++#X connect 48 0 53 0; ++#X connect 53 0 54 0; ++#X msg 450 70 0.01; ++#X obj 450 90 s \$0-subtractive/1-adsr/attack; ++#X connect 45 0 55 0; ++#X connect 55 0 56 0; ++#X obj 802 70 r \$0-subtractive/1-adsr/attack; ++#X msg 802 90 /subtractive/1-adsr/attack \$1; ++#X connect 57 0 58 0; ++#X connect 58 0 46 0; ++#X obj 1154 70 route /subtractive/1-adsr/attack; ++#X obj 1154 90 s \$0-subtractive/1-adsr/attack; ++#X connect 53 1 59 0; ++#X connect 59 0 60 0; ++#X msg 450 110 0.3; ++#X obj 450 130 s \$0-subtractive/1-adsr/decay; ++#X connect 45 0 61 0; ++#X connect 61 0 62 0; ++#X obj 802 110 r \$0-subtractive/1-adsr/decay; ++#X msg 802 130 /subtractive/1-adsr/decay \$1; ++#X connect 63 0 64 0; ++#X connect 64 0 46 0; ++#X obj 1154 110 route /subtractive/1-adsr/decay; ++#X obj 1154 130 s \$0-subtractive/1-adsr/decay; ++#X connect 59 1 65 0; ++#X connect 65 0 66 0; ++#X msg 450 150 0.2; ++#X obj 450 170 s \$0-subtractive/1-adsr/release; ++#X connect 45 0 67 0; ++#X connect 67 0 68 0; ++#X obj 802 150 r \$0-subtractive/1-adsr/release; ++#X msg 802 170 /subtractive/1-adsr/release \$1; ++#X connect 69 0 70 0; ++#X connect 70 0 46 0; ++#X obj 1154 150 route /subtractive/1-adsr/release; ++#X obj 1154 170 s \$0-subtractive/1-adsr/release; ++#X connect 65 1 71 0; ++#X connect 71 0 72 0; ++#X msg 450 190 0.5; ++#X obj 450 210 s \$0-subtractive/1-adsr/sustain; ++#X connect 45 0 73 0; ++#X connect 73 0 74 0; ++#X obj 802 190 r \$0-subtractive/1-adsr/sustain; ++#X msg 802 210 /subtractive/1-adsr/sustain \$1; ++#X connect 75 0 76 0; ++#X connect 76 0 46 0; ++#X obj 1154 190 route /subtractive/1-adsr/sustain; ++#X obj 1154 210 s \$0-subtractive/1-adsr/sustain; ++#X connect 71 1 77 0; ++#X connect 77 0 78 0; ++#X msg 450 230 6; ++#X obj 450 250 s \$0-subtractive/2-filter/cutoff-harmonic; ++#X connect 45 0 79 0; ++#X connect 79 0 80 0; ++#X obj 802 230 r \$0-subtractive/2-filter/cutoff-harmonic; ++#X msg 802 250 /subtractive/2-filter/cutoff-harmonic \$1; ++#X connect 81 0 82 0; ++#X connect 82 0 46 0; ++#X obj 1154 230 route /subtractive/2-filter/cutoff-harmonic; ++#X obj 1154 250 s \$0-subtractive/2-filter/cutoff-harmonic; ++#X connect 77 1 83 0; ++#X connect 83 0 84 0; ++#X msg 450 270 3; ++#X obj 450 290 s \$0-subtractive/2-filter/resonance-dB; ++#X connect 45 0 85 0; ++#X connect 85 0 86 0; ++#X obj 802 270 r \$0-subtractive/2-filter/resonance-dB; ++#X msg 802 290 /subtractive/2-filter/resonance-dB \$1; ++#X connect 87 0 88 0; ++#X connect 88 0 46 0; ++#X obj 1154 270 route /subtractive/2-filter/resonance-dB; ++#X obj 1154 290 s \$0-subtractive/2-filter/resonance-dB; ++#X connect 83 1 89 0; ++#X connect 89 0 90 0; ++#X msg 450 310 0.5; ++#X obj 450 330 s \$0-subtractive/3-master/pan; ++#X connect 45 0 91 0; ++#X connect 91 0 92 0; ++#X obj 802 310 r \$0-subtractive/3-master/pan; ++#X msg 802 330 /subtractive/3-master/pan \$1; ++#X connect 93 0 94 0; ++#X connect 94 0 46 0; ++#X obj 1154 310 route /subtractive/3-master/pan; ++#X obj 1154 330 s \$0-subtractive/3-master/pan; ++#X connect 89 1 95 0; ++#X connect 95 0 96 0; ++#X msg 450 350 0.3; ++#X obj 450 370 s \$0-subtractive/3-master/vol; ++#X connect 45 0 97 0; ++#X connect 97 0 98 0; ++#X obj 802 350 r \$0-subtractive/3-master/vol; ++#X msg 802 370 /subtractive/3-master/vol \$1; ++#X connect 99 0 100 0; ++#X connect 100 0 46 0; ++#X obj 1154 350 route /subtractive/3-master/vol; ++#X obj 1154 370 s \$0-subtractive/3-master/vol; ++#X connect 95 1 101 0; ++#X connect 101 0 102 0; ++#X coords 0 -1 1 1 235 260 1 0 0; ++#X text 0 280 Generated Tue Jan 16 18:58:07 2018 by faust2pd v2.16. See http://faust.grame.fr and http://purelang.bitbucket.org.; +--- /dev/null ++++ faust2pd-2.16/examples/synth/subtractive.syn.xml +@@ -0,0 +1,130 @@ ++ ++ ++ subtractive ++ Albert Graef ++ ++ ++ 1.0 ++ mydsp ++ 0 ++ 2 ++ ++ ++ 11 ++ ++ ++ fHslider0 ++ 0.01f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fHslider2 ++ 0.29999999999999999f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fHslider3 ++ 0.20000000000000001f ++ 0.0f ++ 1.0f ++ 0.001f ++ ++ ++ ++ fHslider1 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.01f ++ ++ ++ ++ fHslider4 ++ 6.0f ++ 1.0f ++ 20.0f ++ 0.10000000000000001f ++ ++ ++ ++ fHslider5 ++ 3.0f ++ 0.0f ++ 20.0f ++ 0.10000000000000001f ++ ++ ++ ++ fHslider7 ++ 0.5f ++ 0.0f ++ 1.0f ++ 0.01f ++ ++ ++ ++ fHslider6 ++ 0.29999999999999999f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fEntry1 ++ 440.0f ++ 20.0f ++ 20000.0f ++ 1.0f ++ ++ ++ ++ fEntry0 ++ 1.0f ++ 0.0f ++ 10.0f ++ 0.01f ++ ++ ++ ++ fButton0 ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ diff -Nru faust2pd-2.15/debian/patches/series faust2pd-2.16/debian/patches/series --- faust2pd-2.15/debian/patches/series 2017-01-09 08:43:39.000000000 +0000 +++ faust2pd-2.16/debian/patches/series 2018-01-15 17:38:53.000000000 +0000 @@ -1 +1 @@ -debian-changes-2.15-2 +debian-changes-2.16-1 diff -Nru faust2pd-2.15/examples/basic/freeverb.dsp faust2pd-2.16/examples/basic/freeverb.dsp --- faust2pd-2.15/examples/basic/freeverb.dsp 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/basic/freeverb.dsp 2018-01-15 01:28:56.000000000 +0000 @@ -5,7 +5,8 @@ // //====================================================== -declare name "freeverb -- a Schroeder reverb"; +declare name "freeverb"; +declare description "a Schroeder reverb"; declare author "Yann Orlarey"; declare version "1.0"; diff -Nru faust2pd-2.15/examples/basic/karplus.dsp faust2pd-2.16/examples/basic/karplus.dsp --- faust2pd-2.15/examples/basic/karplus.dsp 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/basic/karplus.dsp 2018-01-15 01:28:56.000000000 +0000 @@ -1,5 +1,6 @@ -declare name "karplus -- Karplus-Strong string synth"; +declare name "karplus"; +declare description "Karplus-Strong string synth"; declare author "Yann Orlarey"; declare version "1.0"; diff -Nru faust2pd-2.15/examples/basic/pink.dsp faust2pd-2.16/examples/basic/pink.dsp --- faust2pd-2.15/examples/basic/pink.dsp 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/basic/pink.dsp 2018-01-15 01:28:56.000000000 +0000 @@ -1,5 +1,6 @@ -declare name "pink -- pink noise"; +declare name "pink"; +declare description "pink noise"; declare author "Albert Graef"; declare version "1.0"; diff -Nru faust2pd-2.15/examples/basic/puredata.cpp faust2pd-2.16/examples/basic/puredata.cpp --- faust2pd-2.15/examples/basic/puredata.cpp 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/basic/puredata.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,634 +0,0 @@ -/************************************************************************ - ************************************************************************ - FAUST Architecture File - Copyright (C) 2006-2011 Albert Graef - --------------------------------------------------------------------- - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. - ************************************************************************ - ************************************************************************/ - -/* Pd architecture file, written by Albert Graef . - This was derived from minimal.cpp included in the Faust distribution. - Please note that this is to be compiled as a shared library, which is - then loaded dynamically by Pd as an external. */ - -#include -#include -#include - -#include "faust/misc.h" -#include "faust/gui/UI.h" -#include "faust/gui/meta.h" -#include "faust/dsp/dsp.h" - -/****************************************************************************** -******************************************************************************* - - VECTOR INTRINSICS - -******************************************************************************* -*******************************************************************************/ - -<> - -/*************************************************************************** - Pd UI interface - ***************************************************************************/ - -enum ui_elem_type_t { - UI_BUTTON, UI_CHECK_BUTTON, - UI_V_SLIDER, UI_H_SLIDER, UI_NUM_ENTRY, - UI_V_BARGRAPH, UI_H_BARGRAPH, - UI_END_GROUP, UI_V_GROUP, UI_H_GROUP, UI_T_GROUP -}; - -struct ui_elem_t { - ui_elem_type_t type; - char *label; - float *zone; - float init, min, max, step; -}; - -class PdUI : public UI -{ -public: - const char *name; - int nelems, level; - ui_elem_t *elems; - - PdUI(); - PdUI(const char *nm, const char *s); - virtual ~PdUI(); - -protected: - std::string path; - void add_elem(ui_elem_type_t type, const char *label = NULL); - void add_elem(ui_elem_type_t type, const char *label, float *zone); - void add_elem(ui_elem_type_t type, const char *label, float *zone, - float init, float min, float max, float step); - void add_elem(ui_elem_type_t type, const char *label, float *zone, - float min, float max); - -public: - virtual void addButton(const char* label, float* zone); - virtual void addCheckButton(const char* label, float* zone); - virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step); - virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step); - virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step); - - virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max); - virtual void addVerticalBargraph(const char* label, float* zone, float min, float max); - - virtual void openTabBox(const char* label); - virtual void openHorizontalBox(const char* label); - virtual void openVerticalBox(const char* label); - virtual void closeBox(); - - virtual void run(); -}; - -static std::string mangle(const char *name, int level, const char *s) -{ - const char *s0 = s; - std::string t = ""; - if (!s) return t; - // Get rid of bogus "0x00" labels in recent Faust revisions. Also, for - // backward compatibility with old Faust versions, make sure that default - // toplevel groups and explicit toplevel groups with an empty label are - // treated alike (these both return "0x00" labels in the latest Faust, but - // would be treated inconsistently in earlier versions). - if (!*s || strcmp(s, "0x00") == 0) { - if (level == 0) - // toplevel group with empty label, map to dsp name - s = name; - else - // empty label - s = ""; - } - while (*s) - if (isalnum(*s)) - t += *(s++); - else { - const char *s1 = s; - while (*s && !isalnum(*s)) ++s; - if (s1 != s0 && *s) t += "-"; - } - return t; -} - -static std::string normpath(std::string path) -{ - path = std::string("/")+path; - int pos = path.find("//"); - while (pos >= 0) { - path.erase(pos, 1); - pos = path.find("//"); - } - size_t len = path.length(); - if (len > 1 && path[len-1] == '/') - path.erase(len-1, 1); - return path; -} - -static std::string pathcat(std::string path, std::string label) -{ - if (path.empty()) - return normpath(label); - else if (label.empty()) - return normpath(path); - else - return normpath(path+"/"+label); -} - -PdUI::PdUI() -{ - nelems = level = 0; - elems = NULL; - name = ""; - path = ""; -} - -PdUI::PdUI(const char *nm, const char *s) -{ - nelems = level = 0; - elems = NULL; - name = nm?nm:""; - path = s?s:""; -} - -PdUI::~PdUI() -{ - if (elems) { - for (int i = 0; i < nelems; i++) - if (elems[i].label) - free(elems[i].label); - free(elems); - } -} - -inline void PdUI::add_elem(ui_elem_type_t type, const char *label) -{ - ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); - if (elems1) - elems = elems1; - else - return; - std::string s = pathcat(path, mangle(name, level, label)); - elems[nelems].type = type; - elems[nelems].label = strdup(s.c_str()); - elems[nelems].zone = NULL; - elems[nelems].init = 0.0; - elems[nelems].min = 0.0; - elems[nelems].max = 0.0; - elems[nelems].step = 0.0; - nelems++; -} - -inline void PdUI::add_elem(ui_elem_type_t type, const char *label, float *zone) -{ - ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); - if (elems1) - elems = elems1; - else - return; - std::string s = pathcat(path, mangle(name, level, label)); - elems[nelems].type = type; - elems[nelems].label = strdup(s.c_str()); - elems[nelems].zone = zone; - elems[nelems].init = 0.0; - elems[nelems].min = 0.0; - elems[nelems].max = 1.0; - elems[nelems].step = 1.0; - nelems++; -} - -inline void PdUI::add_elem(ui_elem_type_t type, const char *label, float *zone, - float init, float min, float max, float step) -{ - ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); - if (elems1) - elems = elems1; - else - return; - std::string s = pathcat(path, mangle(name, level, label)); - elems[nelems].type = type; - elems[nelems].label = strdup(s.c_str()); - elems[nelems].zone = zone; - elems[nelems].init = init; - elems[nelems].min = min; - elems[nelems].max = max; - elems[nelems].step = step; - nelems++; -} - -inline void PdUI::add_elem(ui_elem_type_t type, const char *label, float *zone, - float min, float max) -{ - ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); - if (elems1) - elems = elems1; - else - return; - std::string s = pathcat(path, mangle(name, level, label)); - elems[nelems].type = type; - elems[nelems].label = strdup(s.c_str()); - elems[nelems].zone = zone; - elems[nelems].init = 0.0; - elems[nelems].min = min; - elems[nelems].max = max; - elems[nelems].step = 0.0; - nelems++; -} - -void PdUI::addButton(const char* label, float* zone) -{ add_elem(UI_BUTTON, label, zone); } -void PdUI::addCheckButton(const char* label, float* zone) -{ add_elem(UI_CHECK_BUTTON, label, zone); } -void PdUI::addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) -{ add_elem(UI_V_SLIDER, label, zone, init, min, max, step); } -void PdUI::addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) -{ add_elem(UI_H_SLIDER, label, zone, init, min, max, step); } -void PdUI::addNumEntry(const char* label, float* zone, float init, float min, float max, float step) -{ add_elem(UI_NUM_ENTRY, label, zone, init, min, max, step); } - -void PdUI::addHorizontalBargraph(const char* label, float* zone, float min, float max) -{ add_elem(UI_H_BARGRAPH, label, zone, min, max); } -void PdUI::addVerticalBargraph(const char* label, float* zone, float min, float max) -{ add_elem(UI_V_BARGRAPH, label, zone, min, max); } - -void PdUI::openTabBox(const char* label) -{ - if (!path.empty()) path += "/"; - path += mangle(name, level, label); - level++; -} -void PdUI::openHorizontalBox(const char* label) -{ - if (!path.empty()) path += "/"; - path += mangle(name, level, label); - level++; -} -void PdUI::openVerticalBox(const char* label) -{ - if (!path.empty()) path += "/"; - path += mangle(name, level, label); - level++; -} -void PdUI::closeBox() -{ - int pos = path.rfind("/"); - if (pos < 0) pos = 0; - path.erase(pos); - level--; -} - -void PdUI::run() {} - -/****************************************************************************** -******************************************************************************* - - FAUST DSP - -******************************************************************************* -*******************************************************************************/ - -//---------------------------------------------------------------------------- -// FAUST generated signal processor -//---------------------------------------------------------------------------- - -<> - -#include -#include -#include "m_pd.h" - -#define sym(name) xsym(name) -#define xsym(name) #name -#define faust_setup(name) xfaust_setup(name) -#define xfaust_setup(name) name ## _tilde_setup(void) - -// time for "active" toggle xfades in secs -#define XFADE_TIME 0.1f - -static t_class *faust_class; - -struct t_faust { - t_object x_obj; -#ifdef __MINGW32__ - /* This seems to be necessary as some as yet undetermined Pd routine seems - to write past the end of x_obj on Windows. */ - int fence; /* dummy field (not used) */ -#endif - mydsp *dsp; - PdUI *ui; - std::string *label; - int active, xfade, n_xfade, rate, n_in, n_out; - t_sample **inputs, **outputs, **buf; - t_outlet *out; - t_sample f; -}; - -static t_symbol *s_button, *s_checkbox, *s_vslider, *s_hslider, *s_nentry, - *s_vbargraph, *s_hbargraph; - -static inline void zero_samples(int k, int n, t_sample **out) -{ - for (int i = 0; i < k; i++) -#ifdef __STDC_IEC_559__ - /* IEC 559 a.k.a. IEEE 754 floats can be initialized faster like this */ - memset(out[i], 0, n*sizeof(t_sample)); -#else - for (int j = 0; j < n; j++) - out[i][j] = 0.0f; -#endif -} - -static inline void copy_samples(int k, int n, t_sample **out, t_sample **in) -{ - for (int i = 0; i < k; i++) - memcpy(out[i], in[i], n*sizeof(t_sample)); -} - -static t_int *faust_perform(t_int *w) -{ - t_faust *x = (t_faust *)(w[1]); - int n = (int)(w[2]); - if (!x->dsp || !x->buf) return (w+3); - AVOIDDENORMALS; - if (x->xfade > 0) { - float d = 1.0f/x->n_xfade, f = (x->xfade--)*d; - d = d/n; - x->dsp->compute(n, x->inputs, x->buf); - if (x->active) - if (x->n_in == x->n_out) - /* xfade inputs -> buf */ - for (int j = 0; j < n; j++, f -= d) - for (int i = 0; i < x->n_out; i++) - x->outputs[i][j] = f*x->inputs[i][j]+(1.0f-f)*x->buf[i][j]; - else - /* xfade 0 -> buf */ - for (int j = 0; j < n; j++, f -= d) - for (int i = 0; i < x->n_out; i++) - x->outputs[i][j] = (1.0f-f)*x->buf[i][j]; - else - if (x->n_in == x->n_out) - /* xfade buf -> inputs */ - for (int j = 0; j < n; j++, f -= d) - for (int i = 0; i < x->n_out; i++) - x->outputs[i][j] = f*x->buf[i][j]+(1.0f-f)*x->inputs[i][j]; - else - /* xfade buf -> 0 */ - for (int j = 0; j < n; j++, f -= d) - for (int i = 0; i < x->n_out; i++) - x->outputs[i][j] = f*x->buf[i][j]; - } else if (x->active) { - x->dsp->compute(n, x->inputs, x->buf); - copy_samples(x->n_out, n, x->outputs, x->buf); - } else if (x->n_in == x->n_out) { - copy_samples(x->n_out, n, x->buf, x->inputs); - copy_samples(x->n_out, n, x->outputs, x->buf); - } else - zero_samples(x->n_out, n, x->outputs); - return (w+3); -} - -static void faust_dsp(t_faust *x, t_signal **sp) -{ - int n = sp[0]->s_n, sr = (int)sp[0]->s_sr; - if (x->rate <= 0) { - /* default sample rate is whatever Pd tells us */ - PdUI *ui = x->ui; - float *z = NULL; - if (ui->nelems > 0 && - (z = (float*)malloc(ui->nelems*sizeof(float)))) { - /* save the current control values */ - for (int i = 0; i < ui->nelems; i++) - if (ui->elems[i].zone) - z[i] = *ui->elems[i].zone; - } - /* set the proper sample rate; this requires reinitializing the dsp */ - x->rate = sr; - x->dsp->init(sr); - if (z) { - /* restore previous control values */ - for (int i = 0; i < ui->nelems; i++) - if (ui->elems[i].zone) - *ui->elems[i].zone = z[i]; - free(z); - } - } - if (n > 0) - x->n_xfade = (int)(x->rate*XFADE_TIME/n); - dsp_add(faust_perform, 2, x, n); - for (int i = 0; i < x->n_in; i++) - x->inputs[i] = sp[i+1]->s_vec; - for (int i = 0; i < x->n_out; i++) - x->outputs[i] = sp[x->n_in+i+1]->s_vec; - if (x->buf != NULL) - for (int i = 0; i < x->n_out; i++) { - x->buf[i] = (t_sample*)malloc(n*sizeof(t_sample)); - if (x->buf[i] == NULL) { - for (int j = 0; j < i; j++) - free(x->buf[j]); - free(x->buf); - x->buf = NULL; - break; - } - } -} - -static int pathcmp(const char *s, const char *t) -{ - int n = strlen(s), m = strlen(t); - if (n == 0 || m == 0) - return 0; - else if (t[0] == '/') - return strcmp(s, t); - else if (n <= m || s[n-m-1] != '/') - return strcmp(s+1, t); - else - return strcmp(s+n-m, t); -} - -static void faust_any(t_faust *x, t_symbol *s, int argc, t_atom *argv) -{ - if (!x->dsp) return; - PdUI *ui = x->ui; - if (s == &s_bang) { - for (int i = 0; i < ui->nelems; i++) - if (ui->elems[i].label && ui->elems[i].zone) { - t_atom args[6]; - t_symbol *_s; - switch (ui->elems[i].type) { - case UI_BUTTON: - _s = s_button; - break; - case UI_CHECK_BUTTON: - _s = s_checkbox; - break; - case UI_V_SLIDER: - _s = s_vslider; - break; - case UI_H_SLIDER: - _s = s_hslider; - break; - case UI_NUM_ENTRY: - _s = s_nentry; - break; - case UI_V_BARGRAPH: - _s = s_vbargraph; - break; - case UI_H_BARGRAPH: - _s = s_hbargraph; - break; - default: - continue; - } - SETSYMBOL(&args[0], gensym(ui->elems[i].label)); - SETFLOAT(&args[1], *ui->elems[i].zone); - SETFLOAT(&args[2], ui->elems[i].init); - SETFLOAT(&args[3], ui->elems[i].min); - SETFLOAT(&args[4], ui->elems[i].max); - SETFLOAT(&args[5], ui->elems[i].step); - outlet_anything(x->out, _s, 6, args); - } - } else { - const char *label = s->s_name; - int count = 0; - for (int i = 0; i < ui->nelems; i++) - if (ui->elems[i].label && - pathcmp(ui->elems[i].label, label) == 0) { - if (argc == 0) { - if (ui->elems[i].zone) { - t_atom arg; - SETFLOAT(&arg, *ui->elems[i].zone); - outlet_anything(x->out, gensym(ui->elems[i].label), 1, &arg); - } - ++count; - } else if (argc == 1 && - (argv[0].a_type == A_FLOAT || - argv[0].a_type == A_DEFFLOAT) && - ui->elems[i].zone) { - float f = atom_getfloat(argv); - *ui->elems[i].zone = f; - ++count; - } else - pd_error(x, "[faust] %s: bad control argument: %s", - x->label->c_str(), label); - } - if (count == 0 && strcmp(label, "active") == 0) { - if (argc == 0) { - t_atom arg; - SETFLOAT(&arg, (float)x->active); - outlet_anything(x->out, gensym((char*)"active"), 1, &arg); - } else if (argc == 1 && - (argv[0].a_type == A_FLOAT || - argv[0].a_type == A_DEFFLOAT)) { - float f = atom_getfloat(argv); - x->active = (int)f; - x->xfade = x->n_xfade; - } - } - } -} - -static void faust_free(t_faust *x) -{ - if (x->label) delete x->label; - if (x->dsp) delete x->dsp; - if (x->ui) delete x->ui; - if (x->inputs) free(x->inputs); - if (x->outputs) free(x->outputs); - if (x->buf) { - for (int i = 0; i < x->n_out; i++) - if (x->buf[i]) free(x->buf[i]); - free(x->buf); - } -} - -static void *faust_new(t_symbol *s, int argc, t_atom *argv) -{ - t_faust *x = (t_faust*)pd_new(faust_class); - int sr = -1; - t_symbol *id = NULL; - x->active = 1; - for (int i = 0; i < argc; i++) - if (argv[i].a_type == A_FLOAT || argv[i].a_type == A_DEFFLOAT) - sr = (int)argv[i].a_w.w_float; - else if (argv[i].a_type == A_SYMBOL || argv[i].a_type == A_DEFSYMBOL) - id = argv[i].a_w.w_symbol; - x->rate = sr; - if (sr <= 0) sr = 44100; - x->xfade = 0; x->n_xfade = (int)(sr*XFADE_TIME/64); - x->inputs = x->outputs = x->buf = NULL; - x->label = new std::string(sym(mydsp) "~"); - x->dsp = new mydsp(); - x->ui = new PdUI(sym(mydsp), id?id->s_name:NULL); - if (!x->dsp || !x->ui || !x->label) goto error; - if (id) { - *x->label += " "; - *x->label += id->s_name; - } - x->n_in = x->dsp->getNumInputs(); - x->n_out = x->dsp->getNumOutputs(); - if (x->n_in > 0) - x->inputs = (t_sample**)malloc(x->n_in*sizeof(t_sample*)); - if (x->n_out > 0) { - x->outputs = (t_sample**)malloc(x->n_out*sizeof(t_sample*)); - x->buf = (t_sample**)malloc(x->n_out*sizeof(t_sample*)); - } - if ((x->n_in > 0 && x->inputs == NULL) || - (x->n_out > 0 && (x->outputs == NULL || x->buf == NULL))) - goto error; - for (int i = 0; i < x->n_out; i++) - x->buf[i] = NULL; - x->dsp->init(sr); - x->dsp->buildUserInterface(x->ui); - for (int i = 0; i < x->n_in; i++) - inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal); - x->out = outlet_new(&x->x_obj, 0); - for (int i = 0; i < x->n_out; i++) - outlet_new(&x->x_obj, &s_signal); - return (void *)x; - error: - faust_free(x); - x->dsp = NULL; x->ui = NULL; - x->inputs = x->outputs = x->buf = NULL; - return (void *)x; -} - -extern "C" void faust_setup(mydsp) -{ - t_symbol *s = gensym(sym(mydsp) "~"); - faust_class = - class_new(s, (t_newmethod)faust_new, (t_method)faust_free, - sizeof(t_faust), CLASS_DEFAULT, - A_GIMME, A_NULL); - class_addmethod(faust_class, (t_method)faust_dsp, gensym((char*)"dsp"), A_NULL); - class_addanything(faust_class, faust_any); - class_addmethod(faust_class, nullfn, &s_signal, A_NULL); - s_button = gensym((char*)"button"); - s_checkbox = gensym((char*)"checkbox"); - s_vslider = gensym((char*)"vslider"); - s_hslider = gensym((char*)"hslider"); - s_nentry = gensym((char*)"nentry"); - s_vbargraph = gensym((char*)"vbargraph"); - s_hbargraph = gensym((char*)"hbargraph"); - /* give some indication that we're loaded and ready to go */ - mydsp dsp = mydsp(); - post("[faust] %s: %d inputs, %d outputs", sym(mydsp) "~", - dsp.getNumInputs(), dsp.getNumOutputs()); -} diff -Nru faust2pd-2.15/examples/basic/tone.dsp faust2pd-2.16/examples/basic/tone.dsp --- faust2pd-2.15/examples/basic/tone.dsp 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/basic/tone.dsp 2018-01-15 01:28:56.000000000 +0000 @@ -1,5 +1,6 @@ -declare name "tone -- sine oscillator with adjustable frequency"; +declare name "tone"; +declare description "sine oscillator with adjustable frequency"; declare author "Albert Graef"; declare version "1.0"; diff -Nru faust2pd-2.15/examples/basic/white.dsp faust2pd-2.16/examples/basic/white.dsp --- faust2pd-2.15/examples/basic/white.dsp 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/basic/white.dsp 2018-01-15 01:28:56.000000000 +0000 @@ -1,5 +1,6 @@ -declare name "white -- white noise"; +declare name "white"; +declare description "white noise"; declare author "Albert Graef"; declare version "1.0"; diff -Nru faust2pd-2.15/examples/faust/puredata.cpp faust2pd-2.16/examples/faust/puredata.cpp --- faust2pd-2.15/examples/faust/puredata.cpp 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/faust/puredata.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,634 +0,0 @@ -/************************************************************************ - ************************************************************************ - FAUST Architecture File - Copyright (C) 2006-2011 Albert Graef - --------------------------------------------------------------------- - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. - ************************************************************************ - ************************************************************************/ - -/* Pd architecture file, written by Albert Graef . - This was derived from minimal.cpp included in the Faust distribution. - Please note that this is to be compiled as a shared library, which is - then loaded dynamically by Pd as an external. */ - -#include -#include -#include - -#include "faust/misc.h" -#include "faust/gui/UI.h" -#include "faust/gui/meta.h" -#include "faust/dsp/dsp.h" - -/****************************************************************************** -******************************************************************************* - - VECTOR INTRINSICS - -******************************************************************************* -*******************************************************************************/ - -<> - -/*************************************************************************** - Pd UI interface - ***************************************************************************/ - -enum ui_elem_type_t { - UI_BUTTON, UI_CHECK_BUTTON, - UI_V_SLIDER, UI_H_SLIDER, UI_NUM_ENTRY, - UI_V_BARGRAPH, UI_H_BARGRAPH, - UI_END_GROUP, UI_V_GROUP, UI_H_GROUP, UI_T_GROUP -}; - -struct ui_elem_t { - ui_elem_type_t type; - char *label; - float *zone; - float init, min, max, step; -}; - -class PdUI : public UI -{ -public: - const char *name; - int nelems, level; - ui_elem_t *elems; - - PdUI(); - PdUI(const char *nm, const char *s); - virtual ~PdUI(); - -protected: - std::string path; - void add_elem(ui_elem_type_t type, const char *label = NULL); - void add_elem(ui_elem_type_t type, const char *label, float *zone); - void add_elem(ui_elem_type_t type, const char *label, float *zone, - float init, float min, float max, float step); - void add_elem(ui_elem_type_t type, const char *label, float *zone, - float min, float max); - -public: - virtual void addButton(const char* label, float* zone); - virtual void addCheckButton(const char* label, float* zone); - virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step); - virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step); - virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step); - - virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max); - virtual void addVerticalBargraph(const char* label, float* zone, float min, float max); - - virtual void openTabBox(const char* label); - virtual void openHorizontalBox(const char* label); - virtual void openVerticalBox(const char* label); - virtual void closeBox(); - - virtual void run(); -}; - -static std::string mangle(const char *name, int level, const char *s) -{ - const char *s0 = s; - std::string t = ""; - if (!s) return t; - // Get rid of bogus "0x00" labels in recent Faust revisions. Also, for - // backward compatibility with old Faust versions, make sure that default - // toplevel groups and explicit toplevel groups with an empty label are - // treated alike (these both return "0x00" labels in the latest Faust, but - // would be treated inconsistently in earlier versions). - if (!*s || strcmp(s, "0x00") == 0) { - if (level == 0) - // toplevel group with empty label, map to dsp name - s = name; - else - // empty label - s = ""; - } - while (*s) - if (isalnum(*s)) - t += *(s++); - else { - const char *s1 = s; - while (*s && !isalnum(*s)) ++s; - if (s1 != s0 && *s) t += "-"; - } - return t; -} - -static std::string normpath(std::string path) -{ - path = std::string("/")+path; - int pos = path.find("//"); - while (pos >= 0) { - path.erase(pos, 1); - pos = path.find("//"); - } - size_t len = path.length(); - if (len > 1 && path[len-1] == '/') - path.erase(len-1, 1); - return path; -} - -static std::string pathcat(std::string path, std::string label) -{ - if (path.empty()) - return normpath(label); - else if (label.empty()) - return normpath(path); - else - return normpath(path+"/"+label); -} - -PdUI::PdUI() -{ - nelems = level = 0; - elems = NULL; - name = ""; - path = ""; -} - -PdUI::PdUI(const char *nm, const char *s) -{ - nelems = level = 0; - elems = NULL; - name = nm?nm:""; - path = s?s:""; -} - -PdUI::~PdUI() -{ - if (elems) { - for (int i = 0; i < nelems; i++) - if (elems[i].label) - free(elems[i].label); - free(elems); - } -} - -inline void PdUI::add_elem(ui_elem_type_t type, const char *label) -{ - ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); - if (elems1) - elems = elems1; - else - return; - std::string s = pathcat(path, mangle(name, level, label)); - elems[nelems].type = type; - elems[nelems].label = strdup(s.c_str()); - elems[nelems].zone = NULL; - elems[nelems].init = 0.0; - elems[nelems].min = 0.0; - elems[nelems].max = 0.0; - elems[nelems].step = 0.0; - nelems++; -} - -inline void PdUI::add_elem(ui_elem_type_t type, const char *label, float *zone) -{ - ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); - if (elems1) - elems = elems1; - else - return; - std::string s = pathcat(path, mangle(name, level, label)); - elems[nelems].type = type; - elems[nelems].label = strdup(s.c_str()); - elems[nelems].zone = zone; - elems[nelems].init = 0.0; - elems[nelems].min = 0.0; - elems[nelems].max = 1.0; - elems[nelems].step = 1.0; - nelems++; -} - -inline void PdUI::add_elem(ui_elem_type_t type, const char *label, float *zone, - float init, float min, float max, float step) -{ - ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); - if (elems1) - elems = elems1; - else - return; - std::string s = pathcat(path, mangle(name, level, label)); - elems[nelems].type = type; - elems[nelems].label = strdup(s.c_str()); - elems[nelems].zone = zone; - elems[nelems].init = init; - elems[nelems].min = min; - elems[nelems].max = max; - elems[nelems].step = step; - nelems++; -} - -inline void PdUI::add_elem(ui_elem_type_t type, const char *label, float *zone, - float min, float max) -{ - ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); - if (elems1) - elems = elems1; - else - return; - std::string s = pathcat(path, mangle(name, level, label)); - elems[nelems].type = type; - elems[nelems].label = strdup(s.c_str()); - elems[nelems].zone = zone; - elems[nelems].init = 0.0; - elems[nelems].min = min; - elems[nelems].max = max; - elems[nelems].step = 0.0; - nelems++; -} - -void PdUI::addButton(const char* label, float* zone) -{ add_elem(UI_BUTTON, label, zone); } -void PdUI::addCheckButton(const char* label, float* zone) -{ add_elem(UI_CHECK_BUTTON, label, zone); } -void PdUI::addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) -{ add_elem(UI_V_SLIDER, label, zone, init, min, max, step); } -void PdUI::addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) -{ add_elem(UI_H_SLIDER, label, zone, init, min, max, step); } -void PdUI::addNumEntry(const char* label, float* zone, float init, float min, float max, float step) -{ add_elem(UI_NUM_ENTRY, label, zone, init, min, max, step); } - -void PdUI::addHorizontalBargraph(const char* label, float* zone, float min, float max) -{ add_elem(UI_H_BARGRAPH, label, zone, min, max); } -void PdUI::addVerticalBargraph(const char* label, float* zone, float min, float max) -{ add_elem(UI_V_BARGRAPH, label, zone, min, max); } - -void PdUI::openTabBox(const char* label) -{ - if (!path.empty()) path += "/"; - path += mangle(name, level, label); - level++; -} -void PdUI::openHorizontalBox(const char* label) -{ - if (!path.empty()) path += "/"; - path += mangle(name, level, label); - level++; -} -void PdUI::openVerticalBox(const char* label) -{ - if (!path.empty()) path += "/"; - path += mangle(name, level, label); - level++; -} -void PdUI::closeBox() -{ - int pos = path.rfind("/"); - if (pos < 0) pos = 0; - path.erase(pos); - level--; -} - -void PdUI::run() {} - -/****************************************************************************** -******************************************************************************* - - FAUST DSP - -******************************************************************************* -*******************************************************************************/ - -//---------------------------------------------------------------------------- -// FAUST generated signal processor -//---------------------------------------------------------------------------- - -<> - -#include -#include -#include "m_pd.h" - -#define sym(name) xsym(name) -#define xsym(name) #name -#define faust_setup(name) xfaust_setup(name) -#define xfaust_setup(name) name ## _tilde_setup(void) - -// time for "active" toggle xfades in secs -#define XFADE_TIME 0.1f - -static t_class *faust_class; - -struct t_faust { - t_object x_obj; -#ifdef __MINGW32__ - /* This seems to be necessary as some as yet undetermined Pd routine seems - to write past the end of x_obj on Windows. */ - int fence; /* dummy field (not used) */ -#endif - mydsp *dsp; - PdUI *ui; - std::string *label; - int active, xfade, n_xfade, rate, n_in, n_out; - t_sample **inputs, **outputs, **buf; - t_outlet *out; - t_sample f; -}; - -static t_symbol *s_button, *s_checkbox, *s_vslider, *s_hslider, *s_nentry, - *s_vbargraph, *s_hbargraph; - -static inline void zero_samples(int k, int n, t_sample **out) -{ - for (int i = 0; i < k; i++) -#ifdef __STDC_IEC_559__ - /* IEC 559 a.k.a. IEEE 754 floats can be initialized faster like this */ - memset(out[i], 0, n*sizeof(t_sample)); -#else - for (int j = 0; j < n; j++) - out[i][j] = 0.0f; -#endif -} - -static inline void copy_samples(int k, int n, t_sample **out, t_sample **in) -{ - for (int i = 0; i < k; i++) - memcpy(out[i], in[i], n*sizeof(t_sample)); -} - -static t_int *faust_perform(t_int *w) -{ - t_faust *x = (t_faust *)(w[1]); - int n = (int)(w[2]); - if (!x->dsp || !x->buf) return (w+3); - AVOIDDENORMALS; - if (x->xfade > 0) { - float d = 1.0f/x->n_xfade, f = (x->xfade--)*d; - d = d/n; - x->dsp->compute(n, x->inputs, x->buf); - if (x->active) - if (x->n_in == x->n_out) - /* xfade inputs -> buf */ - for (int j = 0; j < n; j++, f -= d) - for (int i = 0; i < x->n_out; i++) - x->outputs[i][j] = f*x->inputs[i][j]+(1.0f-f)*x->buf[i][j]; - else - /* xfade 0 -> buf */ - for (int j = 0; j < n; j++, f -= d) - for (int i = 0; i < x->n_out; i++) - x->outputs[i][j] = (1.0f-f)*x->buf[i][j]; - else - if (x->n_in == x->n_out) - /* xfade buf -> inputs */ - for (int j = 0; j < n; j++, f -= d) - for (int i = 0; i < x->n_out; i++) - x->outputs[i][j] = f*x->buf[i][j]+(1.0f-f)*x->inputs[i][j]; - else - /* xfade buf -> 0 */ - for (int j = 0; j < n; j++, f -= d) - for (int i = 0; i < x->n_out; i++) - x->outputs[i][j] = f*x->buf[i][j]; - } else if (x->active) { - x->dsp->compute(n, x->inputs, x->buf); - copy_samples(x->n_out, n, x->outputs, x->buf); - } else if (x->n_in == x->n_out) { - copy_samples(x->n_out, n, x->buf, x->inputs); - copy_samples(x->n_out, n, x->outputs, x->buf); - } else - zero_samples(x->n_out, n, x->outputs); - return (w+3); -} - -static void faust_dsp(t_faust *x, t_signal **sp) -{ - int n = sp[0]->s_n, sr = (int)sp[0]->s_sr; - if (x->rate <= 0) { - /* default sample rate is whatever Pd tells us */ - PdUI *ui = x->ui; - float *z = NULL; - if (ui->nelems > 0 && - (z = (float*)malloc(ui->nelems*sizeof(float)))) { - /* save the current control values */ - for (int i = 0; i < ui->nelems; i++) - if (ui->elems[i].zone) - z[i] = *ui->elems[i].zone; - } - /* set the proper sample rate; this requires reinitializing the dsp */ - x->rate = sr; - x->dsp->init(sr); - if (z) { - /* restore previous control values */ - for (int i = 0; i < ui->nelems; i++) - if (ui->elems[i].zone) - *ui->elems[i].zone = z[i]; - free(z); - } - } - if (n > 0) - x->n_xfade = (int)(x->rate*XFADE_TIME/n); - dsp_add(faust_perform, 2, x, n); - for (int i = 0; i < x->n_in; i++) - x->inputs[i] = sp[i+1]->s_vec; - for (int i = 0; i < x->n_out; i++) - x->outputs[i] = sp[x->n_in+i+1]->s_vec; - if (x->buf != NULL) - for (int i = 0; i < x->n_out; i++) { - x->buf[i] = (t_sample*)malloc(n*sizeof(t_sample)); - if (x->buf[i] == NULL) { - for (int j = 0; j < i; j++) - free(x->buf[j]); - free(x->buf); - x->buf = NULL; - break; - } - } -} - -static int pathcmp(const char *s, const char *t) -{ - int n = strlen(s), m = strlen(t); - if (n == 0 || m == 0) - return 0; - else if (t[0] == '/') - return strcmp(s, t); - else if (n <= m || s[n-m-1] != '/') - return strcmp(s+1, t); - else - return strcmp(s+n-m, t); -} - -static void faust_any(t_faust *x, t_symbol *s, int argc, t_atom *argv) -{ - if (!x->dsp) return; - PdUI *ui = x->ui; - if (s == &s_bang) { - for (int i = 0; i < ui->nelems; i++) - if (ui->elems[i].label && ui->elems[i].zone) { - t_atom args[6]; - t_symbol *_s; - switch (ui->elems[i].type) { - case UI_BUTTON: - _s = s_button; - break; - case UI_CHECK_BUTTON: - _s = s_checkbox; - break; - case UI_V_SLIDER: - _s = s_vslider; - break; - case UI_H_SLIDER: - _s = s_hslider; - break; - case UI_NUM_ENTRY: - _s = s_nentry; - break; - case UI_V_BARGRAPH: - _s = s_vbargraph; - break; - case UI_H_BARGRAPH: - _s = s_hbargraph; - break; - default: - continue; - } - SETSYMBOL(&args[0], gensym(ui->elems[i].label)); - SETFLOAT(&args[1], *ui->elems[i].zone); - SETFLOAT(&args[2], ui->elems[i].init); - SETFLOAT(&args[3], ui->elems[i].min); - SETFLOAT(&args[4], ui->elems[i].max); - SETFLOAT(&args[5], ui->elems[i].step); - outlet_anything(x->out, _s, 6, args); - } - } else { - const char *label = s->s_name; - int count = 0; - for (int i = 0; i < ui->nelems; i++) - if (ui->elems[i].label && - pathcmp(ui->elems[i].label, label) == 0) { - if (argc == 0) { - if (ui->elems[i].zone) { - t_atom arg; - SETFLOAT(&arg, *ui->elems[i].zone); - outlet_anything(x->out, gensym(ui->elems[i].label), 1, &arg); - } - ++count; - } else if (argc == 1 && - (argv[0].a_type == A_FLOAT || - argv[0].a_type == A_DEFFLOAT) && - ui->elems[i].zone) { - float f = atom_getfloat(argv); - *ui->elems[i].zone = f; - ++count; - } else - pd_error(x, "[faust] %s: bad control argument: %s", - x->label->c_str(), label); - } - if (count == 0 && strcmp(label, "active") == 0) { - if (argc == 0) { - t_atom arg; - SETFLOAT(&arg, (float)x->active); - outlet_anything(x->out, gensym((char*)"active"), 1, &arg); - } else if (argc == 1 && - (argv[0].a_type == A_FLOAT || - argv[0].a_type == A_DEFFLOAT)) { - float f = atom_getfloat(argv); - x->active = (int)f; - x->xfade = x->n_xfade; - } - } - } -} - -static void faust_free(t_faust *x) -{ - if (x->label) delete x->label; - if (x->dsp) delete x->dsp; - if (x->ui) delete x->ui; - if (x->inputs) free(x->inputs); - if (x->outputs) free(x->outputs); - if (x->buf) { - for (int i = 0; i < x->n_out; i++) - if (x->buf[i]) free(x->buf[i]); - free(x->buf); - } -} - -static void *faust_new(t_symbol *s, int argc, t_atom *argv) -{ - t_faust *x = (t_faust*)pd_new(faust_class); - int sr = -1; - t_symbol *id = NULL; - x->active = 1; - for (int i = 0; i < argc; i++) - if (argv[i].a_type == A_FLOAT || argv[i].a_type == A_DEFFLOAT) - sr = (int)argv[i].a_w.w_float; - else if (argv[i].a_type == A_SYMBOL || argv[i].a_type == A_DEFSYMBOL) - id = argv[i].a_w.w_symbol; - x->rate = sr; - if (sr <= 0) sr = 44100; - x->xfade = 0; x->n_xfade = (int)(sr*XFADE_TIME/64); - x->inputs = x->outputs = x->buf = NULL; - x->label = new std::string(sym(mydsp) "~"); - x->dsp = new mydsp(); - x->ui = new PdUI(sym(mydsp), id?id->s_name:NULL); - if (!x->dsp || !x->ui || !x->label) goto error; - if (id) { - *x->label += " "; - *x->label += id->s_name; - } - x->n_in = x->dsp->getNumInputs(); - x->n_out = x->dsp->getNumOutputs(); - if (x->n_in > 0) - x->inputs = (t_sample**)malloc(x->n_in*sizeof(t_sample*)); - if (x->n_out > 0) { - x->outputs = (t_sample**)malloc(x->n_out*sizeof(t_sample*)); - x->buf = (t_sample**)malloc(x->n_out*sizeof(t_sample*)); - } - if ((x->n_in > 0 && x->inputs == NULL) || - (x->n_out > 0 && (x->outputs == NULL || x->buf == NULL))) - goto error; - for (int i = 0; i < x->n_out; i++) - x->buf[i] = NULL; - x->dsp->init(sr); - x->dsp->buildUserInterface(x->ui); - for (int i = 0; i < x->n_in; i++) - inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal); - x->out = outlet_new(&x->x_obj, 0); - for (int i = 0; i < x->n_out; i++) - outlet_new(&x->x_obj, &s_signal); - return (void *)x; - error: - faust_free(x); - x->dsp = NULL; x->ui = NULL; - x->inputs = x->outputs = x->buf = NULL; - return (void *)x; -} - -extern "C" void faust_setup(mydsp) -{ - t_symbol *s = gensym(sym(mydsp) "~"); - faust_class = - class_new(s, (t_newmethod)faust_new, (t_method)faust_free, - sizeof(t_faust), CLASS_DEFAULT, - A_GIMME, A_NULL); - class_addmethod(faust_class, (t_method)faust_dsp, gensym((char*)"dsp"), A_NULL); - class_addanything(faust_class, faust_any); - class_addmethod(faust_class, nullfn, &s_signal, A_NULL); - s_button = gensym((char*)"button"); - s_checkbox = gensym((char*)"checkbox"); - s_vslider = gensym((char*)"vslider"); - s_hslider = gensym((char*)"hslider"); - s_nentry = gensym((char*)"nentry"); - s_vbargraph = gensym((char*)"vbargraph"); - s_hbargraph = gensym((char*)"hbargraph"); - /* give some indication that we're loaded and ready to go */ - mydsp dsp = mydsp(); - post("[faust] %s: %d inputs, %d outputs", sym(mydsp) "~", - dsp.getNumInputs(), dsp.getNumOutputs()); -} diff -Nru faust2pd-2.15/examples/seqdemo/chorus.dsp faust2pd-2.16/examples/seqdemo/chorus.dsp --- faust2pd-2.15/examples/seqdemo/chorus.dsp 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/seqdemo/chorus.dsp 2018-01-15 01:28:56.000000000 +0000 @@ -1,7 +1,8 @@ /* A simple chorus effect. */ -declare name "chorus -- a simple chorus effect"; +declare name "chorus"; +declare description "a simple chorus effect"; declare author "Albert Graef"; declare version "1.0"; diff -Nru faust2pd-2.15/examples/seqdemo/freeverb.dsp faust2pd-2.16/examples/seqdemo/freeverb.dsp --- faust2pd-2.15/examples/seqdemo/freeverb.dsp 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/seqdemo/freeverb.dsp 2018-01-15 01:28:56.000000000 +0000 @@ -5,7 +5,8 @@ // //====================================================== -declare name "freeverb -- a Schroeder reverb"; +declare name "freeverb"; +declare description "a Schroeder reverb"; declare author "Yann Orlarey"; declare version "1.0"; diff -Nru faust2pd-2.15/examples/seqdemo/karplusplus.dsp faust2pd-2.16/examples/seqdemo/karplusplus.dsp --- faust2pd-2.15/examples/seqdemo/karplusplus.dsp 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/seqdemo/karplusplus.dsp 2018-01-15 01:28:56.000000000 +0000 @@ -1,5 +1,6 @@ -declare name "karplusplus -- Karplus-Strong + Fuzz"; +declare name "karplusplus"; +declare description "Karplus-Strong + Fuzz"; declare author "Yann Orlarey, Albert Graef"; declare version "1.0"; diff -Nru faust2pd-2.15/examples/seqdemo/organ.dsp faust2pd-2.16/examples/seqdemo/organ.dsp --- faust2pd-2.15/examples/seqdemo/organ.dsp 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/seqdemo/organ.dsp 2018-01-15 01:28:56.000000000 +0000 @@ -1,5 +1,6 @@ -declare name "organ -- a simple additive synth"; +declare name "organ"; +declare description "a simple additive synth"; declare author "Albert Graef"; declare version "1.0"; diff -Nru faust2pd-2.15/examples/seqdemo/puredata.cpp faust2pd-2.16/examples/seqdemo/puredata.cpp --- faust2pd-2.15/examples/seqdemo/puredata.cpp 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/seqdemo/puredata.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,634 +0,0 @@ -/************************************************************************ - ************************************************************************ - FAUST Architecture File - Copyright (C) 2006-2011 Albert Graef - --------------------------------------------------------------------- - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. - ************************************************************************ - ************************************************************************/ - -/* Pd architecture file, written by Albert Graef . - This was derived from minimal.cpp included in the Faust distribution. - Please note that this is to be compiled as a shared library, which is - then loaded dynamically by Pd as an external. */ - -#include -#include -#include - -#include "faust/misc.h" -#include "faust/gui/UI.h" -#include "faust/gui/meta.h" -#include "faust/dsp/dsp.h" - -/****************************************************************************** -******************************************************************************* - - VECTOR INTRINSICS - -******************************************************************************* -*******************************************************************************/ - -<> - -/*************************************************************************** - Pd UI interface - ***************************************************************************/ - -enum ui_elem_type_t { - UI_BUTTON, UI_CHECK_BUTTON, - UI_V_SLIDER, UI_H_SLIDER, UI_NUM_ENTRY, - UI_V_BARGRAPH, UI_H_BARGRAPH, - UI_END_GROUP, UI_V_GROUP, UI_H_GROUP, UI_T_GROUP -}; - -struct ui_elem_t { - ui_elem_type_t type; - char *label; - float *zone; - float init, min, max, step; -}; - -class PdUI : public UI -{ -public: - const char *name; - int nelems, level; - ui_elem_t *elems; - - PdUI(); - PdUI(const char *nm, const char *s); - virtual ~PdUI(); - -protected: - std::string path; - void add_elem(ui_elem_type_t type, const char *label = NULL); - void add_elem(ui_elem_type_t type, const char *label, float *zone); - void add_elem(ui_elem_type_t type, const char *label, float *zone, - float init, float min, float max, float step); - void add_elem(ui_elem_type_t type, const char *label, float *zone, - float min, float max); - -public: - virtual void addButton(const char* label, float* zone); - virtual void addCheckButton(const char* label, float* zone); - virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step); - virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step); - virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step); - - virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max); - virtual void addVerticalBargraph(const char* label, float* zone, float min, float max); - - virtual void openTabBox(const char* label); - virtual void openHorizontalBox(const char* label); - virtual void openVerticalBox(const char* label); - virtual void closeBox(); - - virtual void run(); -}; - -static std::string mangle(const char *name, int level, const char *s) -{ - const char *s0 = s; - std::string t = ""; - if (!s) return t; - // Get rid of bogus "0x00" labels in recent Faust revisions. Also, for - // backward compatibility with old Faust versions, make sure that default - // toplevel groups and explicit toplevel groups with an empty label are - // treated alike (these both return "0x00" labels in the latest Faust, but - // would be treated inconsistently in earlier versions). - if (!*s || strcmp(s, "0x00") == 0) { - if (level == 0) - // toplevel group with empty label, map to dsp name - s = name; - else - // empty label - s = ""; - } - while (*s) - if (isalnum(*s)) - t += *(s++); - else { - const char *s1 = s; - while (*s && !isalnum(*s)) ++s; - if (s1 != s0 && *s) t += "-"; - } - return t; -} - -static std::string normpath(std::string path) -{ - path = std::string("/")+path; - int pos = path.find("//"); - while (pos >= 0) { - path.erase(pos, 1); - pos = path.find("//"); - } - size_t len = path.length(); - if (len > 1 && path[len-1] == '/') - path.erase(len-1, 1); - return path; -} - -static std::string pathcat(std::string path, std::string label) -{ - if (path.empty()) - return normpath(label); - else if (label.empty()) - return normpath(path); - else - return normpath(path+"/"+label); -} - -PdUI::PdUI() -{ - nelems = level = 0; - elems = NULL; - name = ""; - path = ""; -} - -PdUI::PdUI(const char *nm, const char *s) -{ - nelems = level = 0; - elems = NULL; - name = nm?nm:""; - path = s?s:""; -} - -PdUI::~PdUI() -{ - if (elems) { - for (int i = 0; i < nelems; i++) - if (elems[i].label) - free(elems[i].label); - free(elems); - } -} - -inline void PdUI::add_elem(ui_elem_type_t type, const char *label) -{ - ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); - if (elems1) - elems = elems1; - else - return; - std::string s = pathcat(path, mangle(name, level, label)); - elems[nelems].type = type; - elems[nelems].label = strdup(s.c_str()); - elems[nelems].zone = NULL; - elems[nelems].init = 0.0; - elems[nelems].min = 0.0; - elems[nelems].max = 0.0; - elems[nelems].step = 0.0; - nelems++; -} - -inline void PdUI::add_elem(ui_elem_type_t type, const char *label, float *zone) -{ - ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); - if (elems1) - elems = elems1; - else - return; - std::string s = pathcat(path, mangle(name, level, label)); - elems[nelems].type = type; - elems[nelems].label = strdup(s.c_str()); - elems[nelems].zone = zone; - elems[nelems].init = 0.0; - elems[nelems].min = 0.0; - elems[nelems].max = 1.0; - elems[nelems].step = 1.0; - nelems++; -} - -inline void PdUI::add_elem(ui_elem_type_t type, const char *label, float *zone, - float init, float min, float max, float step) -{ - ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); - if (elems1) - elems = elems1; - else - return; - std::string s = pathcat(path, mangle(name, level, label)); - elems[nelems].type = type; - elems[nelems].label = strdup(s.c_str()); - elems[nelems].zone = zone; - elems[nelems].init = init; - elems[nelems].min = min; - elems[nelems].max = max; - elems[nelems].step = step; - nelems++; -} - -inline void PdUI::add_elem(ui_elem_type_t type, const char *label, float *zone, - float min, float max) -{ - ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); - if (elems1) - elems = elems1; - else - return; - std::string s = pathcat(path, mangle(name, level, label)); - elems[nelems].type = type; - elems[nelems].label = strdup(s.c_str()); - elems[nelems].zone = zone; - elems[nelems].init = 0.0; - elems[nelems].min = min; - elems[nelems].max = max; - elems[nelems].step = 0.0; - nelems++; -} - -void PdUI::addButton(const char* label, float* zone) -{ add_elem(UI_BUTTON, label, zone); } -void PdUI::addCheckButton(const char* label, float* zone) -{ add_elem(UI_CHECK_BUTTON, label, zone); } -void PdUI::addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) -{ add_elem(UI_V_SLIDER, label, zone, init, min, max, step); } -void PdUI::addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) -{ add_elem(UI_H_SLIDER, label, zone, init, min, max, step); } -void PdUI::addNumEntry(const char* label, float* zone, float init, float min, float max, float step) -{ add_elem(UI_NUM_ENTRY, label, zone, init, min, max, step); } - -void PdUI::addHorizontalBargraph(const char* label, float* zone, float min, float max) -{ add_elem(UI_H_BARGRAPH, label, zone, min, max); } -void PdUI::addVerticalBargraph(const char* label, float* zone, float min, float max) -{ add_elem(UI_V_BARGRAPH, label, zone, min, max); } - -void PdUI::openTabBox(const char* label) -{ - if (!path.empty()) path += "/"; - path += mangle(name, level, label); - level++; -} -void PdUI::openHorizontalBox(const char* label) -{ - if (!path.empty()) path += "/"; - path += mangle(name, level, label); - level++; -} -void PdUI::openVerticalBox(const char* label) -{ - if (!path.empty()) path += "/"; - path += mangle(name, level, label); - level++; -} -void PdUI::closeBox() -{ - int pos = path.rfind("/"); - if (pos < 0) pos = 0; - path.erase(pos); - level--; -} - -void PdUI::run() {} - -/****************************************************************************** -******************************************************************************* - - FAUST DSP - -******************************************************************************* -*******************************************************************************/ - -//---------------------------------------------------------------------------- -// FAUST generated signal processor -//---------------------------------------------------------------------------- - -<> - -#include -#include -#include "m_pd.h" - -#define sym(name) xsym(name) -#define xsym(name) #name -#define faust_setup(name) xfaust_setup(name) -#define xfaust_setup(name) name ## _tilde_setup(void) - -// time for "active" toggle xfades in secs -#define XFADE_TIME 0.1f - -static t_class *faust_class; - -struct t_faust { - t_object x_obj; -#ifdef __MINGW32__ - /* This seems to be necessary as some as yet undetermined Pd routine seems - to write past the end of x_obj on Windows. */ - int fence; /* dummy field (not used) */ -#endif - mydsp *dsp; - PdUI *ui; - std::string *label; - int active, xfade, n_xfade, rate, n_in, n_out; - t_sample **inputs, **outputs, **buf; - t_outlet *out; - t_sample f; -}; - -static t_symbol *s_button, *s_checkbox, *s_vslider, *s_hslider, *s_nentry, - *s_vbargraph, *s_hbargraph; - -static inline void zero_samples(int k, int n, t_sample **out) -{ - for (int i = 0; i < k; i++) -#ifdef __STDC_IEC_559__ - /* IEC 559 a.k.a. IEEE 754 floats can be initialized faster like this */ - memset(out[i], 0, n*sizeof(t_sample)); -#else - for (int j = 0; j < n; j++) - out[i][j] = 0.0f; -#endif -} - -static inline void copy_samples(int k, int n, t_sample **out, t_sample **in) -{ - for (int i = 0; i < k; i++) - memcpy(out[i], in[i], n*sizeof(t_sample)); -} - -static t_int *faust_perform(t_int *w) -{ - t_faust *x = (t_faust *)(w[1]); - int n = (int)(w[2]); - if (!x->dsp || !x->buf) return (w+3); - AVOIDDENORMALS; - if (x->xfade > 0) { - float d = 1.0f/x->n_xfade, f = (x->xfade--)*d; - d = d/n; - x->dsp->compute(n, x->inputs, x->buf); - if (x->active) - if (x->n_in == x->n_out) - /* xfade inputs -> buf */ - for (int j = 0; j < n; j++, f -= d) - for (int i = 0; i < x->n_out; i++) - x->outputs[i][j] = f*x->inputs[i][j]+(1.0f-f)*x->buf[i][j]; - else - /* xfade 0 -> buf */ - for (int j = 0; j < n; j++, f -= d) - for (int i = 0; i < x->n_out; i++) - x->outputs[i][j] = (1.0f-f)*x->buf[i][j]; - else - if (x->n_in == x->n_out) - /* xfade buf -> inputs */ - for (int j = 0; j < n; j++, f -= d) - for (int i = 0; i < x->n_out; i++) - x->outputs[i][j] = f*x->buf[i][j]+(1.0f-f)*x->inputs[i][j]; - else - /* xfade buf -> 0 */ - for (int j = 0; j < n; j++, f -= d) - for (int i = 0; i < x->n_out; i++) - x->outputs[i][j] = f*x->buf[i][j]; - } else if (x->active) { - x->dsp->compute(n, x->inputs, x->buf); - copy_samples(x->n_out, n, x->outputs, x->buf); - } else if (x->n_in == x->n_out) { - copy_samples(x->n_out, n, x->buf, x->inputs); - copy_samples(x->n_out, n, x->outputs, x->buf); - } else - zero_samples(x->n_out, n, x->outputs); - return (w+3); -} - -static void faust_dsp(t_faust *x, t_signal **sp) -{ - int n = sp[0]->s_n, sr = (int)sp[0]->s_sr; - if (x->rate <= 0) { - /* default sample rate is whatever Pd tells us */ - PdUI *ui = x->ui; - float *z = NULL; - if (ui->nelems > 0 && - (z = (float*)malloc(ui->nelems*sizeof(float)))) { - /* save the current control values */ - for (int i = 0; i < ui->nelems; i++) - if (ui->elems[i].zone) - z[i] = *ui->elems[i].zone; - } - /* set the proper sample rate; this requires reinitializing the dsp */ - x->rate = sr; - x->dsp->init(sr); - if (z) { - /* restore previous control values */ - for (int i = 0; i < ui->nelems; i++) - if (ui->elems[i].zone) - *ui->elems[i].zone = z[i]; - free(z); - } - } - if (n > 0) - x->n_xfade = (int)(x->rate*XFADE_TIME/n); - dsp_add(faust_perform, 2, x, n); - for (int i = 0; i < x->n_in; i++) - x->inputs[i] = sp[i+1]->s_vec; - for (int i = 0; i < x->n_out; i++) - x->outputs[i] = sp[x->n_in+i+1]->s_vec; - if (x->buf != NULL) - for (int i = 0; i < x->n_out; i++) { - x->buf[i] = (t_sample*)malloc(n*sizeof(t_sample)); - if (x->buf[i] == NULL) { - for (int j = 0; j < i; j++) - free(x->buf[j]); - free(x->buf); - x->buf = NULL; - break; - } - } -} - -static int pathcmp(const char *s, const char *t) -{ - int n = strlen(s), m = strlen(t); - if (n == 0 || m == 0) - return 0; - else if (t[0] == '/') - return strcmp(s, t); - else if (n <= m || s[n-m-1] != '/') - return strcmp(s+1, t); - else - return strcmp(s+n-m, t); -} - -static void faust_any(t_faust *x, t_symbol *s, int argc, t_atom *argv) -{ - if (!x->dsp) return; - PdUI *ui = x->ui; - if (s == &s_bang) { - for (int i = 0; i < ui->nelems; i++) - if (ui->elems[i].label && ui->elems[i].zone) { - t_atom args[6]; - t_symbol *_s; - switch (ui->elems[i].type) { - case UI_BUTTON: - _s = s_button; - break; - case UI_CHECK_BUTTON: - _s = s_checkbox; - break; - case UI_V_SLIDER: - _s = s_vslider; - break; - case UI_H_SLIDER: - _s = s_hslider; - break; - case UI_NUM_ENTRY: - _s = s_nentry; - break; - case UI_V_BARGRAPH: - _s = s_vbargraph; - break; - case UI_H_BARGRAPH: - _s = s_hbargraph; - break; - default: - continue; - } - SETSYMBOL(&args[0], gensym(ui->elems[i].label)); - SETFLOAT(&args[1], *ui->elems[i].zone); - SETFLOAT(&args[2], ui->elems[i].init); - SETFLOAT(&args[3], ui->elems[i].min); - SETFLOAT(&args[4], ui->elems[i].max); - SETFLOAT(&args[5], ui->elems[i].step); - outlet_anything(x->out, _s, 6, args); - } - } else { - const char *label = s->s_name; - int count = 0; - for (int i = 0; i < ui->nelems; i++) - if (ui->elems[i].label && - pathcmp(ui->elems[i].label, label) == 0) { - if (argc == 0) { - if (ui->elems[i].zone) { - t_atom arg; - SETFLOAT(&arg, *ui->elems[i].zone); - outlet_anything(x->out, gensym(ui->elems[i].label), 1, &arg); - } - ++count; - } else if (argc == 1 && - (argv[0].a_type == A_FLOAT || - argv[0].a_type == A_DEFFLOAT) && - ui->elems[i].zone) { - float f = atom_getfloat(argv); - *ui->elems[i].zone = f; - ++count; - } else - pd_error(x, "[faust] %s: bad control argument: %s", - x->label->c_str(), label); - } - if (count == 0 && strcmp(label, "active") == 0) { - if (argc == 0) { - t_atom arg; - SETFLOAT(&arg, (float)x->active); - outlet_anything(x->out, gensym((char*)"active"), 1, &arg); - } else if (argc == 1 && - (argv[0].a_type == A_FLOAT || - argv[0].a_type == A_DEFFLOAT)) { - float f = atom_getfloat(argv); - x->active = (int)f; - x->xfade = x->n_xfade; - } - } - } -} - -static void faust_free(t_faust *x) -{ - if (x->label) delete x->label; - if (x->dsp) delete x->dsp; - if (x->ui) delete x->ui; - if (x->inputs) free(x->inputs); - if (x->outputs) free(x->outputs); - if (x->buf) { - for (int i = 0; i < x->n_out; i++) - if (x->buf[i]) free(x->buf[i]); - free(x->buf); - } -} - -static void *faust_new(t_symbol *s, int argc, t_atom *argv) -{ - t_faust *x = (t_faust*)pd_new(faust_class); - int sr = -1; - t_symbol *id = NULL; - x->active = 1; - for (int i = 0; i < argc; i++) - if (argv[i].a_type == A_FLOAT || argv[i].a_type == A_DEFFLOAT) - sr = (int)argv[i].a_w.w_float; - else if (argv[i].a_type == A_SYMBOL || argv[i].a_type == A_DEFSYMBOL) - id = argv[i].a_w.w_symbol; - x->rate = sr; - if (sr <= 0) sr = 44100; - x->xfade = 0; x->n_xfade = (int)(sr*XFADE_TIME/64); - x->inputs = x->outputs = x->buf = NULL; - x->label = new std::string(sym(mydsp) "~"); - x->dsp = new mydsp(); - x->ui = new PdUI(sym(mydsp), id?id->s_name:NULL); - if (!x->dsp || !x->ui || !x->label) goto error; - if (id) { - *x->label += " "; - *x->label += id->s_name; - } - x->n_in = x->dsp->getNumInputs(); - x->n_out = x->dsp->getNumOutputs(); - if (x->n_in > 0) - x->inputs = (t_sample**)malloc(x->n_in*sizeof(t_sample*)); - if (x->n_out > 0) { - x->outputs = (t_sample**)malloc(x->n_out*sizeof(t_sample*)); - x->buf = (t_sample**)malloc(x->n_out*sizeof(t_sample*)); - } - if ((x->n_in > 0 && x->inputs == NULL) || - (x->n_out > 0 && (x->outputs == NULL || x->buf == NULL))) - goto error; - for (int i = 0; i < x->n_out; i++) - x->buf[i] = NULL; - x->dsp->init(sr); - x->dsp->buildUserInterface(x->ui); - for (int i = 0; i < x->n_in; i++) - inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal); - x->out = outlet_new(&x->x_obj, 0); - for (int i = 0; i < x->n_out; i++) - outlet_new(&x->x_obj, &s_signal); - return (void *)x; - error: - faust_free(x); - x->dsp = NULL; x->ui = NULL; - x->inputs = x->outputs = x->buf = NULL; - return (void *)x; -} - -extern "C" void faust_setup(mydsp) -{ - t_symbol *s = gensym(sym(mydsp) "~"); - faust_class = - class_new(s, (t_newmethod)faust_new, (t_method)faust_free, - sizeof(t_faust), CLASS_DEFAULT, - A_GIMME, A_NULL); - class_addmethod(faust_class, (t_method)faust_dsp, gensym((char*)"dsp"), A_NULL); - class_addanything(faust_class, faust_any); - class_addmethod(faust_class, nullfn, &s_signal, A_NULL); - s_button = gensym((char*)"button"); - s_checkbox = gensym((char*)"checkbox"); - s_vslider = gensym((char*)"vslider"); - s_hslider = gensym((char*)"hslider"); - s_nentry = gensym((char*)"nentry"); - s_vbargraph = gensym((char*)"vbargraph"); - s_hbargraph = gensym((char*)"hbargraph"); - /* give some indication that we're loaded and ready to go */ - mydsp dsp = mydsp(); - post("[faust] %s: %d inputs, %d outputs", sym(mydsp) "~", - dsp.getNumInputs(), dsp.getNumOutputs()); -} diff -Nru faust2pd-2.15/examples/seqdemo/subtractive.dsp faust2pd-2.16/examples/seqdemo/subtractive.dsp --- faust2pd-2.15/examples/seqdemo/subtractive.dsp 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/seqdemo/subtractive.dsp 2018-01-15 01:28:56.000000000 +0000 @@ -1,5 +1,6 @@ -declare name "subtractive -- saw wave filtered with resonant lowpass"; +declare name "subtractive"; +declare description "saw wave filtered with resonant lowpass"; declare author "Albert Graef"; declare version "1.0"; diff -Nru faust2pd-2.15/examples/synth/amp.dsp faust2pd-2.16/examples/synth/amp.dsp --- faust2pd-2.15/examples/synth/amp.dsp 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/synth/amp.dsp 2018-01-15 01:28:56.000000000 +0000 @@ -2,7 +2,8 @@ /* Stereo amplifier stage with bass, treble, gain and balance controls and a dB meter. */ -declare name "amp -- stereo amplifier stage"; +declare name "amp"; +declare description "stereo amplifier stage"; declare author "Albert Graef"; declare version "1.0"; diff -Nru faust2pd-2.15/examples/synth/chimes.syn faust2pd-2.16/examples/synth/chimes.syn --- faust2pd-2.15/examples/synth/chimes.syn 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/synth/chimes.syn 2018-01-15 07:22:31.000000000 +0000 @@ -2,7 +2,8 @@ /* A simple "chimes" patch, using a bank of resonz filters (cf. Steiglitz, DSP Primer, pp. 89f.). */ -declare name "chimes -- chimes synth using a bank of resonz filters"; +declare name "chimes"; +declare description "chimes synth using a bank of resonz filters"; declare author "Albert Graef"; declare version "2.0"; diff -Nru faust2pd-2.15/examples/synth/chorus.dsp faust2pd-2.16/examples/synth/chorus.dsp --- faust2pd-2.15/examples/synth/chorus.dsp 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/synth/chorus.dsp 2018-01-15 01:28:56.000000000 +0000 @@ -1,7 +1,8 @@ /* Stereo chorus. */ -declare name "chorus -- stereo chorus effect"; +declare name "chorus"; +declare description "stereo chorus effect"; declare author "Albert Graef"; declare version "1.0"; diff -Nru faust2pd-2.15/examples/synth/compressor.dsp faust2pd-2.16/examples/synth/compressor.dsp --- faust2pd-2.15/examples/synth/compressor.dsp 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/synth/compressor.dsp 2018-01-15 01:28:56.000000000 +0000 @@ -1,7 +1,8 @@ /* Compressor unit. */ -declare name "compressor -- compressor/limiter unit"; +declare name "compressor"; +declare description "compressor/limiter unit"; declare author "Albert Graef"; declare version "1.0"; diff -Nru faust2pd-2.15/examples/synth/echo.dsp faust2pd-2.16/examples/synth/echo.dsp --- faust2pd-2.15/examples/synth/echo.dsp 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/synth/echo.dsp 2018-01-15 01:28:56.000000000 +0000 @@ -1,7 +1,8 @@ /* Stereo delay with feedback. */ -declare name "echo -- stereo delay effect"; +declare name "echo"; +declare description "stereo delay effect"; declare author "Albert Graef"; declare version "1.0"; diff -Nru faust2pd-2.15/examples/synth/expander.dsp faust2pd-2.16/examples/synth/expander.dsp --- faust2pd-2.15/examples/synth/expander.dsp 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/synth/expander.dsp 2018-01-15 01:28:56.000000000 +0000 @@ -4,7 +4,8 @@ /* This is pretty much the same as compressor.dsp, but here the given ratio is applied to *attenuate* levels *below* the threshold. */ -declare name "expander -- expander/noise gate unit"; +declare name "expander"; +declare description "expander/noise gate unit"; declare author "Albert Graef"; declare version "1.0"; diff -Nru faust2pd-2.15/examples/synth/flanger.dsp faust2pd-2.16/examples/synth/flanger.dsp --- faust2pd-2.15/examples/synth/flanger.dsp 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/synth/flanger.dsp 2018-01-15 01:28:56.000000000 +0000 @@ -15,7 +15,8 @@ by cranking up the delay time while setting the feedback to zero and reducing level and depth (the latter by at least an order of magnitude). */ -declare name "flanger -- stereo flanger with feedback"; +declare name "flanger"; +declare description "stereo flanger with feedback"; declare author "Albert Graef"; declare version "1.0"; diff -Nru faust2pd-2.15/examples/synth/freeverb.dsp faust2pd-2.16/examples/synth/freeverb.dsp --- faust2pd-2.15/examples/synth/freeverb.dsp 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/synth/freeverb.dsp 2018-01-15 01:28:56.000000000 +0000 @@ -5,7 +5,8 @@ // //====================================================== -declare name "freeverb -- a Schroeder reverb"; +declare name "freeverb"; +declare description "a Schroeder reverb"; declare author "Yann Orlarey"; declare version "1.0"; diff -Nru faust2pd-2.15/examples/synth/fuzz.dsp faust2pd-2.16/examples/synth/fuzz.dsp --- faust2pd-2.15/examples/synth/fuzz.dsp 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/synth/fuzz.dsp 2018-01-15 01:28:56.000000000 +0000 @@ -1,7 +1,8 @@ /* A simple waveshaping effect. */ -declare name "fuzz -- a simple distortion effect"; +declare name "fuzz"; +declare description "a simple distortion effect"; declare author "Bram de Jong (from musicdsp.org)"; declare version "1.0"; diff -Nru faust2pd-2.15/examples/synth/karplusplus.syn faust2pd-2.16/examples/synth/karplusplus.syn --- faust2pd-2.15/examples/synth/karplusplus.syn 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/synth/karplusplus.syn 2018-01-15 07:22:41.000000000 +0000 @@ -1,5 +1,6 @@ -declare name "karplusplus -- Karplus-Strong + Fuzz"; +declare name "karplusplus"; +declare description "Karplus-Strong + Fuzz"; declare author "Yann Orlarey, Albert Graef"; declare version "1.0"; diff -Nru faust2pd-2.15/examples/synth/karplus.syn faust2pd-2.16/examples/synth/karplus.syn --- faust2pd-2.15/examples/synth/karplus.syn 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/synth/karplus.syn 2018-01-15 07:22:50.000000000 +0000 @@ -1,5 +1,6 @@ -declare name "karplus -- Karplus-Strong string synth"; +declare name "karplus"; +declare description "Karplus-Strong string synth"; declare author "Yann Orlarey"; declare version "1.0"; diff -Nru faust2pd-2.15/examples/synth/organ.syn faust2pd-2.16/examples/synth/organ.syn --- faust2pd-2.15/examples/synth/organ.syn 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/synth/organ.syn 2018-01-15 07:22:59.000000000 +0000 @@ -1,5 +1,6 @@ -declare name "organ -- a simple additive synth"; +declare name "organ"; +declare description "a simple additive synth"; declare author "Albert Graef"; declare version "1.0"; diff -Nru faust2pd-2.15/examples/synth/phasemod.syn faust2pd-2.16/examples/synth/phasemod.syn --- faust2pd-2.15/examples/synth/phasemod.syn 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/synth/phasemod.syn 2018-01-15 07:23:05.000000000 +0000 @@ -1,5 +1,6 @@ -declare name "phasemod -- phase modulation synth"; +declare name "phasemod"; +declare description "phase modulation synth"; declare author "Albert Graef"; declare version "1.0"; diff -Nru faust2pd-2.15/examples/synth/puredata.cpp faust2pd-2.16/examples/synth/puredata.cpp --- faust2pd-2.15/examples/synth/puredata.cpp 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/synth/puredata.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,634 +0,0 @@ -/************************************************************************ - ************************************************************************ - FAUST Architecture File - Copyright (C) 2006-2011 Albert Graef - --------------------------------------------------------------------- - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. - ************************************************************************ - ************************************************************************/ - -/* Pd architecture file, written by Albert Graef . - This was derived from minimal.cpp included in the Faust distribution. - Please note that this is to be compiled as a shared library, which is - then loaded dynamically by Pd as an external. */ - -#include -#include -#include - -#include "faust/misc.h" -#include "faust/gui/UI.h" -#include "faust/gui/meta.h" -#include "faust/dsp/dsp.h" - -/****************************************************************************** -******************************************************************************* - - VECTOR INTRINSICS - -******************************************************************************* -*******************************************************************************/ - -<> - -/*************************************************************************** - Pd UI interface - ***************************************************************************/ - -enum ui_elem_type_t { - UI_BUTTON, UI_CHECK_BUTTON, - UI_V_SLIDER, UI_H_SLIDER, UI_NUM_ENTRY, - UI_V_BARGRAPH, UI_H_BARGRAPH, - UI_END_GROUP, UI_V_GROUP, UI_H_GROUP, UI_T_GROUP -}; - -struct ui_elem_t { - ui_elem_type_t type; - char *label; - float *zone; - float init, min, max, step; -}; - -class PdUI : public UI -{ -public: - const char *name; - int nelems, level; - ui_elem_t *elems; - - PdUI(); - PdUI(const char *nm, const char *s); - virtual ~PdUI(); - -protected: - std::string path; - void add_elem(ui_elem_type_t type, const char *label = NULL); - void add_elem(ui_elem_type_t type, const char *label, float *zone); - void add_elem(ui_elem_type_t type, const char *label, float *zone, - float init, float min, float max, float step); - void add_elem(ui_elem_type_t type, const char *label, float *zone, - float min, float max); - -public: - virtual void addButton(const char* label, float* zone); - virtual void addCheckButton(const char* label, float* zone); - virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step); - virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step); - virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step); - - virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max); - virtual void addVerticalBargraph(const char* label, float* zone, float min, float max); - - virtual void openTabBox(const char* label); - virtual void openHorizontalBox(const char* label); - virtual void openVerticalBox(const char* label); - virtual void closeBox(); - - virtual void run(); -}; - -static std::string mangle(const char *name, int level, const char *s) -{ - const char *s0 = s; - std::string t = ""; - if (!s) return t; - // Get rid of bogus "0x00" labels in recent Faust revisions. Also, for - // backward compatibility with old Faust versions, make sure that default - // toplevel groups and explicit toplevel groups with an empty label are - // treated alike (these both return "0x00" labels in the latest Faust, but - // would be treated inconsistently in earlier versions). - if (!*s || strcmp(s, "0x00") == 0) { - if (level == 0) - // toplevel group with empty label, map to dsp name - s = name; - else - // empty label - s = ""; - } - while (*s) - if (isalnum(*s)) - t += *(s++); - else { - const char *s1 = s; - while (*s && !isalnum(*s)) ++s; - if (s1 != s0 && *s) t += "-"; - } - return t; -} - -static std::string normpath(std::string path) -{ - path = std::string("/")+path; - int pos = path.find("//"); - while (pos >= 0) { - path.erase(pos, 1); - pos = path.find("//"); - } - size_t len = path.length(); - if (len > 1 && path[len-1] == '/') - path.erase(len-1, 1); - return path; -} - -static std::string pathcat(std::string path, std::string label) -{ - if (path.empty()) - return normpath(label); - else if (label.empty()) - return normpath(path); - else - return normpath(path+"/"+label); -} - -PdUI::PdUI() -{ - nelems = level = 0; - elems = NULL; - name = ""; - path = ""; -} - -PdUI::PdUI(const char *nm, const char *s) -{ - nelems = level = 0; - elems = NULL; - name = nm?nm:""; - path = s?s:""; -} - -PdUI::~PdUI() -{ - if (elems) { - for (int i = 0; i < nelems; i++) - if (elems[i].label) - free(elems[i].label); - free(elems); - } -} - -inline void PdUI::add_elem(ui_elem_type_t type, const char *label) -{ - ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); - if (elems1) - elems = elems1; - else - return; - std::string s = pathcat(path, mangle(name, level, label)); - elems[nelems].type = type; - elems[nelems].label = strdup(s.c_str()); - elems[nelems].zone = NULL; - elems[nelems].init = 0.0; - elems[nelems].min = 0.0; - elems[nelems].max = 0.0; - elems[nelems].step = 0.0; - nelems++; -} - -inline void PdUI::add_elem(ui_elem_type_t type, const char *label, float *zone) -{ - ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); - if (elems1) - elems = elems1; - else - return; - std::string s = pathcat(path, mangle(name, level, label)); - elems[nelems].type = type; - elems[nelems].label = strdup(s.c_str()); - elems[nelems].zone = zone; - elems[nelems].init = 0.0; - elems[nelems].min = 0.0; - elems[nelems].max = 1.0; - elems[nelems].step = 1.0; - nelems++; -} - -inline void PdUI::add_elem(ui_elem_type_t type, const char *label, float *zone, - float init, float min, float max, float step) -{ - ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); - if (elems1) - elems = elems1; - else - return; - std::string s = pathcat(path, mangle(name, level, label)); - elems[nelems].type = type; - elems[nelems].label = strdup(s.c_str()); - elems[nelems].zone = zone; - elems[nelems].init = init; - elems[nelems].min = min; - elems[nelems].max = max; - elems[nelems].step = step; - nelems++; -} - -inline void PdUI::add_elem(ui_elem_type_t type, const char *label, float *zone, - float min, float max) -{ - ui_elem_t *elems1 = (ui_elem_t*)realloc(elems, (nelems+1)*sizeof(ui_elem_t)); - if (elems1) - elems = elems1; - else - return; - std::string s = pathcat(path, mangle(name, level, label)); - elems[nelems].type = type; - elems[nelems].label = strdup(s.c_str()); - elems[nelems].zone = zone; - elems[nelems].init = 0.0; - elems[nelems].min = min; - elems[nelems].max = max; - elems[nelems].step = 0.0; - nelems++; -} - -void PdUI::addButton(const char* label, float* zone) -{ add_elem(UI_BUTTON, label, zone); } -void PdUI::addCheckButton(const char* label, float* zone) -{ add_elem(UI_CHECK_BUTTON, label, zone); } -void PdUI::addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) -{ add_elem(UI_V_SLIDER, label, zone, init, min, max, step); } -void PdUI::addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) -{ add_elem(UI_H_SLIDER, label, zone, init, min, max, step); } -void PdUI::addNumEntry(const char* label, float* zone, float init, float min, float max, float step) -{ add_elem(UI_NUM_ENTRY, label, zone, init, min, max, step); } - -void PdUI::addHorizontalBargraph(const char* label, float* zone, float min, float max) -{ add_elem(UI_H_BARGRAPH, label, zone, min, max); } -void PdUI::addVerticalBargraph(const char* label, float* zone, float min, float max) -{ add_elem(UI_V_BARGRAPH, label, zone, min, max); } - -void PdUI::openTabBox(const char* label) -{ - if (!path.empty()) path += "/"; - path += mangle(name, level, label); - level++; -} -void PdUI::openHorizontalBox(const char* label) -{ - if (!path.empty()) path += "/"; - path += mangle(name, level, label); - level++; -} -void PdUI::openVerticalBox(const char* label) -{ - if (!path.empty()) path += "/"; - path += mangle(name, level, label); - level++; -} -void PdUI::closeBox() -{ - int pos = path.rfind("/"); - if (pos < 0) pos = 0; - path.erase(pos); - level--; -} - -void PdUI::run() {} - -/****************************************************************************** -******************************************************************************* - - FAUST DSP - -******************************************************************************* -*******************************************************************************/ - -//---------------------------------------------------------------------------- -// FAUST generated signal processor -//---------------------------------------------------------------------------- - -<> - -#include -#include -#include "m_pd.h" - -#define sym(name) xsym(name) -#define xsym(name) #name -#define faust_setup(name) xfaust_setup(name) -#define xfaust_setup(name) name ## _tilde_setup(void) - -// time for "active" toggle xfades in secs -#define XFADE_TIME 0.1f - -static t_class *faust_class; - -struct t_faust { - t_object x_obj; -#ifdef __MINGW32__ - /* This seems to be necessary as some as yet undetermined Pd routine seems - to write past the end of x_obj on Windows. */ - int fence; /* dummy field (not used) */ -#endif - mydsp *dsp; - PdUI *ui; - std::string *label; - int active, xfade, n_xfade, rate, n_in, n_out; - t_sample **inputs, **outputs, **buf; - t_outlet *out; - t_sample f; -}; - -static t_symbol *s_button, *s_checkbox, *s_vslider, *s_hslider, *s_nentry, - *s_vbargraph, *s_hbargraph; - -static inline void zero_samples(int k, int n, t_sample **out) -{ - for (int i = 0; i < k; i++) -#ifdef __STDC_IEC_559__ - /* IEC 559 a.k.a. IEEE 754 floats can be initialized faster like this */ - memset(out[i], 0, n*sizeof(t_sample)); -#else - for (int j = 0; j < n; j++) - out[i][j] = 0.0f; -#endif -} - -static inline void copy_samples(int k, int n, t_sample **out, t_sample **in) -{ - for (int i = 0; i < k; i++) - memcpy(out[i], in[i], n*sizeof(t_sample)); -} - -static t_int *faust_perform(t_int *w) -{ - t_faust *x = (t_faust *)(w[1]); - int n = (int)(w[2]); - if (!x->dsp || !x->buf) return (w+3); - AVOIDDENORMALS; - if (x->xfade > 0) { - float d = 1.0f/x->n_xfade, f = (x->xfade--)*d; - d = d/n; - x->dsp->compute(n, x->inputs, x->buf); - if (x->active) - if (x->n_in == x->n_out) - /* xfade inputs -> buf */ - for (int j = 0; j < n; j++, f -= d) - for (int i = 0; i < x->n_out; i++) - x->outputs[i][j] = f*x->inputs[i][j]+(1.0f-f)*x->buf[i][j]; - else - /* xfade 0 -> buf */ - for (int j = 0; j < n; j++, f -= d) - for (int i = 0; i < x->n_out; i++) - x->outputs[i][j] = (1.0f-f)*x->buf[i][j]; - else - if (x->n_in == x->n_out) - /* xfade buf -> inputs */ - for (int j = 0; j < n; j++, f -= d) - for (int i = 0; i < x->n_out; i++) - x->outputs[i][j] = f*x->buf[i][j]+(1.0f-f)*x->inputs[i][j]; - else - /* xfade buf -> 0 */ - for (int j = 0; j < n; j++, f -= d) - for (int i = 0; i < x->n_out; i++) - x->outputs[i][j] = f*x->buf[i][j]; - } else if (x->active) { - x->dsp->compute(n, x->inputs, x->buf); - copy_samples(x->n_out, n, x->outputs, x->buf); - } else if (x->n_in == x->n_out) { - copy_samples(x->n_out, n, x->buf, x->inputs); - copy_samples(x->n_out, n, x->outputs, x->buf); - } else - zero_samples(x->n_out, n, x->outputs); - return (w+3); -} - -static void faust_dsp(t_faust *x, t_signal **sp) -{ - int n = sp[0]->s_n, sr = (int)sp[0]->s_sr; - if (x->rate <= 0) { - /* default sample rate is whatever Pd tells us */ - PdUI *ui = x->ui; - float *z = NULL; - if (ui->nelems > 0 && - (z = (float*)malloc(ui->nelems*sizeof(float)))) { - /* save the current control values */ - for (int i = 0; i < ui->nelems; i++) - if (ui->elems[i].zone) - z[i] = *ui->elems[i].zone; - } - /* set the proper sample rate; this requires reinitializing the dsp */ - x->rate = sr; - x->dsp->init(sr); - if (z) { - /* restore previous control values */ - for (int i = 0; i < ui->nelems; i++) - if (ui->elems[i].zone) - *ui->elems[i].zone = z[i]; - free(z); - } - } - if (n > 0) - x->n_xfade = (int)(x->rate*XFADE_TIME/n); - dsp_add(faust_perform, 2, x, n); - for (int i = 0; i < x->n_in; i++) - x->inputs[i] = sp[i+1]->s_vec; - for (int i = 0; i < x->n_out; i++) - x->outputs[i] = sp[x->n_in+i+1]->s_vec; - if (x->buf != NULL) - for (int i = 0; i < x->n_out; i++) { - x->buf[i] = (t_sample*)malloc(n*sizeof(t_sample)); - if (x->buf[i] == NULL) { - for (int j = 0; j < i; j++) - free(x->buf[j]); - free(x->buf); - x->buf = NULL; - break; - } - } -} - -static int pathcmp(const char *s, const char *t) -{ - int n = strlen(s), m = strlen(t); - if (n == 0 || m == 0) - return 0; - else if (t[0] == '/') - return strcmp(s, t); - else if (n <= m || s[n-m-1] != '/') - return strcmp(s+1, t); - else - return strcmp(s+n-m, t); -} - -static void faust_any(t_faust *x, t_symbol *s, int argc, t_atom *argv) -{ - if (!x->dsp) return; - PdUI *ui = x->ui; - if (s == &s_bang) { - for (int i = 0; i < ui->nelems; i++) - if (ui->elems[i].label && ui->elems[i].zone) { - t_atom args[6]; - t_symbol *_s; - switch (ui->elems[i].type) { - case UI_BUTTON: - _s = s_button; - break; - case UI_CHECK_BUTTON: - _s = s_checkbox; - break; - case UI_V_SLIDER: - _s = s_vslider; - break; - case UI_H_SLIDER: - _s = s_hslider; - break; - case UI_NUM_ENTRY: - _s = s_nentry; - break; - case UI_V_BARGRAPH: - _s = s_vbargraph; - break; - case UI_H_BARGRAPH: - _s = s_hbargraph; - break; - default: - continue; - } - SETSYMBOL(&args[0], gensym(ui->elems[i].label)); - SETFLOAT(&args[1], *ui->elems[i].zone); - SETFLOAT(&args[2], ui->elems[i].init); - SETFLOAT(&args[3], ui->elems[i].min); - SETFLOAT(&args[4], ui->elems[i].max); - SETFLOAT(&args[5], ui->elems[i].step); - outlet_anything(x->out, _s, 6, args); - } - } else { - const char *label = s->s_name; - int count = 0; - for (int i = 0; i < ui->nelems; i++) - if (ui->elems[i].label && - pathcmp(ui->elems[i].label, label) == 0) { - if (argc == 0) { - if (ui->elems[i].zone) { - t_atom arg; - SETFLOAT(&arg, *ui->elems[i].zone); - outlet_anything(x->out, gensym(ui->elems[i].label), 1, &arg); - } - ++count; - } else if (argc == 1 && - (argv[0].a_type == A_FLOAT || - argv[0].a_type == A_DEFFLOAT) && - ui->elems[i].zone) { - float f = atom_getfloat(argv); - *ui->elems[i].zone = f; - ++count; - } else - pd_error(x, "[faust] %s: bad control argument: %s", - x->label->c_str(), label); - } - if (count == 0 && strcmp(label, "active") == 0) { - if (argc == 0) { - t_atom arg; - SETFLOAT(&arg, (float)x->active); - outlet_anything(x->out, gensym((char*)"active"), 1, &arg); - } else if (argc == 1 && - (argv[0].a_type == A_FLOAT || - argv[0].a_type == A_DEFFLOAT)) { - float f = atom_getfloat(argv); - x->active = (int)f; - x->xfade = x->n_xfade; - } - } - } -} - -static void faust_free(t_faust *x) -{ - if (x->label) delete x->label; - if (x->dsp) delete x->dsp; - if (x->ui) delete x->ui; - if (x->inputs) free(x->inputs); - if (x->outputs) free(x->outputs); - if (x->buf) { - for (int i = 0; i < x->n_out; i++) - if (x->buf[i]) free(x->buf[i]); - free(x->buf); - } -} - -static void *faust_new(t_symbol *s, int argc, t_atom *argv) -{ - t_faust *x = (t_faust*)pd_new(faust_class); - int sr = -1; - t_symbol *id = NULL; - x->active = 1; - for (int i = 0; i < argc; i++) - if (argv[i].a_type == A_FLOAT || argv[i].a_type == A_DEFFLOAT) - sr = (int)argv[i].a_w.w_float; - else if (argv[i].a_type == A_SYMBOL || argv[i].a_type == A_DEFSYMBOL) - id = argv[i].a_w.w_symbol; - x->rate = sr; - if (sr <= 0) sr = 44100; - x->xfade = 0; x->n_xfade = (int)(sr*XFADE_TIME/64); - x->inputs = x->outputs = x->buf = NULL; - x->label = new std::string(sym(mydsp) "~"); - x->dsp = new mydsp(); - x->ui = new PdUI(sym(mydsp), id?id->s_name:NULL); - if (!x->dsp || !x->ui || !x->label) goto error; - if (id) { - *x->label += " "; - *x->label += id->s_name; - } - x->n_in = x->dsp->getNumInputs(); - x->n_out = x->dsp->getNumOutputs(); - if (x->n_in > 0) - x->inputs = (t_sample**)malloc(x->n_in*sizeof(t_sample*)); - if (x->n_out > 0) { - x->outputs = (t_sample**)malloc(x->n_out*sizeof(t_sample*)); - x->buf = (t_sample**)malloc(x->n_out*sizeof(t_sample*)); - } - if ((x->n_in > 0 && x->inputs == NULL) || - (x->n_out > 0 && (x->outputs == NULL || x->buf == NULL))) - goto error; - for (int i = 0; i < x->n_out; i++) - x->buf[i] = NULL; - x->dsp->init(sr); - x->dsp->buildUserInterface(x->ui); - for (int i = 0; i < x->n_in; i++) - inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal); - x->out = outlet_new(&x->x_obj, 0); - for (int i = 0; i < x->n_out; i++) - outlet_new(&x->x_obj, &s_signal); - return (void *)x; - error: - faust_free(x); - x->dsp = NULL; x->ui = NULL; - x->inputs = x->outputs = x->buf = NULL; - return (void *)x; -} - -extern "C" void faust_setup(mydsp) -{ - t_symbol *s = gensym(sym(mydsp) "~"); - faust_class = - class_new(s, (t_newmethod)faust_new, (t_method)faust_free, - sizeof(t_faust), CLASS_DEFAULT, - A_GIMME, A_NULL); - class_addmethod(faust_class, (t_method)faust_dsp, gensym((char*)"dsp"), A_NULL); - class_addanything(faust_class, faust_any); - class_addmethod(faust_class, nullfn, &s_signal, A_NULL); - s_button = gensym((char*)"button"); - s_checkbox = gensym((char*)"checkbox"); - s_vslider = gensym((char*)"vslider"); - s_hslider = gensym((char*)"hslider"); - s_nentry = gensym((char*)"nentry"); - s_vbargraph = gensym((char*)"vbargraph"); - s_hbargraph = gensym((char*)"hbargraph"); - /* give some indication that we're loaded and ready to go */ - mydsp dsp = mydsp(); - post("[faust] %s: %d inputs, %d outputs", sym(mydsp) "~", - dsp.getNumInputs(), dsp.getNumOutputs()); -} diff -Nru faust2pd-2.15/examples/synth/subtractive.syn faust2pd-2.16/examples/synth/subtractive.syn --- faust2pd-2.15/examples/synth/subtractive.syn 2016-06-30 11:24:55.000000000 +0000 +++ faust2pd-2.16/examples/synth/subtractive.syn 2018-01-15 15:37:21.000000000 +0000 @@ -1,5 +1,6 @@ -declare name "subtractive -- saw wave filtered with resonant lowpass"; +declare name "subtractive"; +declare description "saw wave filtered with resonant lowpass"; declare author "Albert Graef"; declare version "1.0"; @@ -76,8 +77,8 @@ smooth(c) = *(1-c) : +~*(c); process = tblosc(1<<16, saw, freq, 0) : ((env,freq,_) : filter) : - *(env * (gain/*:smooth(0.999)*/)) - : vgroup("3-master", *(vol) : panner(pan)) + *(env * gain) + : vgroup("3-master", *(vol:smooth(0.99)) : panner(pan:smooth(0.99))) with { env = gate : vgroup("1-adsr", adsr(attack, decay, sustain, release)); filter(env,freq) diff -Nru faust2pd-2.15/Makefile faust2pd-2.16/Makefile --- faust2pd-2.15/Makefile 2017-01-01 10:26:25.000000000 +0000 +++ faust2pd-2.16/Makefile 2018-01-15 17:22:44.000000000 +0000 @@ -1,7 +1,7 @@ # Package name and version number: dist = faust2pd-$(version) -version = 2.15 +version = 2.16 # Default installation prefix: prefix = /usr/local @@ -24,6 +24,10 @@ # Windows EXE = .exe endif +ifneq "$(findstring x86_64-,$(host))" "" +# 64 bit, needs -fPIC flag +PIC = -fPIC +endif DESTDIR= @@ -52,7 +56,7 @@ # as of pure-0.21, we can compile the script to an executable faust2pd$(EXE): faust2pd.pure faustxml.pure sed -e 's?@version@?$(version)?' < $< > xx$< - pure $(PUREC_FLAGS) -I. -c xx$< -o $@ + pure $(PIC) $(PUREC_FLAGS) -I. -c xx$< -o $@ rm -f xx$< # install faust2pd diff -Nru faust2pd-2.15/README faust2pd-2.16/README --- faust2pd-2.15/README 2017-01-01 11:47:37.000000000 +0000 +++ faust2pd-2.16/README 2018-01-15 17:31:02.000000000 +0000 @@ -3,7 +3,7 @@ faust2pd: Pd Patch Generator for Faust ====================================== -Version 2.15, Januar 1, 2017 +Version 2.16, January 15, 2018 Albert Graef @@ -46,7 +46,7 @@ running the Faust2 development version). At the time of this writing, these versions are only available in the Faust git repository. -.. _Pure: http://purelang.bitbucket.org +.. _Pure: https://agraef.github.io/pure-lang/ .. contents:: .. sectnum:: @@ -104,7 +104,7 @@ ============ Get the latest source from -https://bitbucket.org/purelang/pure-lang/downloads/faust2pd-2.15.tar.gz. +https://github.com/agraef/pure-lang/releases/download/faust2pd-2.16/faust2pd-2.16.tar.gz. Run ``make`` and ``make install`` to compile and install the faust2pd program on your system. You can set the installation prefix by running make as ``make @@ -313,7 +313,7 @@ multitimbral synth, built with Faust units, in an automatic fashion using a pattern sequencer programmed in Pure. This example requires the Pure interpreter as well as the pd-pure plugin available from - http://purelang.bitbucket.org. + https://agraef.github.io/pure-lang/. Wrapping DSPs with faust2pd ===========================