diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-08-30 17:17:38 +0200 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-08-30 17:17:38 +0200 |
commit | 3c19adc8a7d67305631d560ac69a8e6f74f052f8 (patch) | |
tree | 3bf7d48107feeaa885425980942667f482e6e639 | |
parent | fd7a7851ef99dedf5116dc5dff772445eb670218 (diff) | |
download | digitale-debutanten-3c19adc8a7d67305631d560ac69a8e6f74f052f8.tar.gz |
replace Chubgraph Clipper with Chugin Clipper, giving a significant speed increase
* Chubgraph Clipper now available as ClipperGraph
* Chugins are built in chugins/ and do not need to be installed
* additional command line options to ./start_chuck are passed to chuck
-rw-r--r-- | chugins/Clipper.cpp | 22 | ||||
-rw-r--r-- | chugins/Makefile | 15 | ||||
-rw-r--r-- | lib.ck | 2 | ||||
-rw-r--r-- | lib/ClipperGraph.ck (renamed from lib/Clipper.ck) | 2 | ||||
-rwxr-xr-x | start_chuck | 6 |
5 files changed, 43 insertions, 4 deletions
diff --git a/chugins/Clipper.cpp b/chugins/Clipper.cpp new file mode 100644 index 0000000..7c80793 --- /dev/null +++ b/chugins/Clipper.cpp @@ -0,0 +1,22 @@ +#include <chuck_dl.h> +#include <chuck_def.h> + +CK_DLL_TICK(clipper_tick); + +CK_DLL_QUERY(Clipper) +{ + QUERY->setname(QUERY, "Clipper"); + + QUERY->begin_class(QUERY, "Clipper", "UGen"); + QUERY->add_ugen_func(QUERY, clipper_tick, NULL, 1, 1); + QUERY->end_class(QUERY); + + return TRUE; +} + +CK_DLL_TICK(clipper_tick) +{ + *out = in > 1. ? 1. : (in < -1. ? -1. : in); + + return TRUE; +} diff --git a/chugins/Makefile b/chugins/Makefile new file mode 100644 index 0000000..f75e667 --- /dev/null +++ b/chugins/Makefile @@ -0,0 +1,15 @@ +CFLAGS ?= -O3 + +CFLAGS += -m32 +CPPFLAGS += -I/usr/include/chuck -D__LINUX_JACK__ +LDFLAGS += -m32 + +CXXFLAGS += $(CFLAGS) + +all : Clipper.chug + +%.chug : %.o + $(CXX) -shared $(LDFLAGS) -o $@ $^ + +clean: + $(RM) *.chug *.o @@ -2,7 +2,7 @@ Machine.add("lib/ChubgraphStd.ck"); Machine.add("lib/LiSaX.ck"); Machine.add("lib/SampOsc.ck"); -Machine.add("lib/Clipper.ck"); +Machine.add("lib/ClipperGraph.ck"); Machine.add("lib/ClipperGen.ck"); Machine.add("lib/Element.ck"); Machine.add("lib/List.ck"); diff --git a/lib/Clipper.ck b/lib/ClipperGraph.ck index eb45ea2..86e6183 100644 --- a/lib/Clipper.ck +++ b/lib/ClipperGraph.ck @@ -1,7 +1,7 @@ /* * clip signal within -1 to 1 with simple UGens */ -public class Clipper extends ChubgraphStd { +public class ClipperGraph extends ChubgraphStd { /* calculate a from HalfRect(inlet + 1) */ Step __one; 1 => __one.next; inlet => HalfRect __a; diff --git a/start_chuck b/start_chuck index 9c4aebf..c711c61 100755 --- a/start_chuck +++ b/start_chuck @@ -11,5 +11,7 @@ jack.scope -n 3 -w 512 -b 96512 >/dev/null & # ChucK server # NOTE: Last three output ports are for jack.scope -chuck --srate:44100 --in:3 --out:7 --loop lib.ck - +chuck $* \ + --srate:44100 --in:3 --out:7 \ + --chugin-path:chugins/ \ + --loop lib.ck |