From dd5ac2e76720932af409a803bb04381781a644e8 Mon Sep 17 00:00:00 2001 From: Jonathan Wilkes <jon.w.wilkes@gmail.com> Date: Fri, 14 Aug 2015 20:45:40 -0400 Subject: [PATCH] ported: "added rjlib to the base install to support added K12 functionality" from pd-l2ork: 640d3c53ad8cd592b1d757b988e27d3ada2b1779 --- l2ork_addons/rjlib/Makefile | 26 + l2ork_addons/rjlib/README | 28 + l2ork_addons/rjlib/abs/reverb-echo.pd | 24 + l2ork_addons/rjlib/accelerate.pd | 90 ++ l2ork_addons/rjlib/analysepitch.pd | 23 + l2ork_addons/rjlib/analysesimpleonset.pd | 37 + l2ork_addons/rjlib/hilbert~.pd | 27 + l2ork_addons/rjlib/playback.pd | 13 + l2ork_addons/rjlib/recorder.pd | 36 + l2ork_addons/rjlib/reverb.pd | 99 ++ l2ork_addons/rjlib/rj/OVERVIEW.pd | 68 ++ l2ork_addons/rjlib/rj/c.txt | 5 + l2ork_addons/rjlib/rj/c_adsr-help.pd | 58 ++ l2ork_addons/rjlib/rj/c_adsr.pd | 96 ++ l2ork_addons/rjlib/rj/c_adsrj-help.pd | 54 + l2ork_addons/rjlib/rj/c_adsrj.pd | 40 + l2ork_addons/rjlib/rj/c_mphasor-help.pd | 68 ++ l2ork_addons/rjlib/rj/c_mphasor.pd | 87 ++ l2ork_addons/rjlib/rj/c_multimetro-help.pd | 45 + l2ork_addons/rjlib/rj/c_multimetro.pd | 55 ++ l2ork_addons/rjlib/rj/c_xfade-help.pd | 31 + l2ork_addons/rjlib/rj/c_xfade.pd | 23 + l2ork_addons/rjlib/rj/e.txt | 14 + l2ork_addons/rjlib/rj/e_alias-help.pd | 30 + l2ork_addons/rjlib/rj/e_alias.pd | 49 + l2ork_addons/rjlib/rj/e_chorus-help.pd | 60 ++ l2ork_addons/rjlib/rj/e_chorus.pd | 121 +++ l2ork_addons/rjlib/rj/e_chorusr-help.pd | 62 ++ l2ork_addons/rjlib/rj/e_chorusr.pd | 131 +++ l2ork_addons/rjlib/rj/e_fbdelay-help.pd | 87 ++ l2ork_addons/rjlib/rj/e_fbdelay.pd | 85 ++ l2ork_addons/rjlib/rj/e_fbdelay2.pd | 17 + l2ork_addons/rjlib/rj/e_freqshift-help.pd | 22 + l2ork_addons/rjlib/rj/e_freqshift.pd | 52 + l2ork_addons/rjlib/rj/e_pan-help.pd | 25 + l2ork_addons/rjlib/rj/e_pan.pd | 54 + l2ork_addons/rjlib/rj/e_phaser-help.pd | 72 ++ l2ork_addons/rjlib/rj/e_phaser.pd | 70 ++ l2ork_addons/rjlib/rj/e_pingpong-help.pd | 93 ++ l2ork_addons/rjlib/rj/e_pingpong.pd | 127 +++ l2ork_addons/rjlib/rj/e_pitchshift-help.pd | 15 + l2ork_addons/rjlib/rj/e_pitchshift.pd | 131 +++ l2ork_addons/rjlib/rj/e_reslop-help.pd | 47 + l2ork_addons/rjlib/rj/e_reslop.pd | 42 + l2ork_addons/rjlib/rj/e_reverb-help.pd | 42 + l2ork_addons/rjlib/rj/e_reverb.pd | 258 +++++ l2ork_addons/rjlib/rj/e_softclip-help.pd | 54 + l2ork_addons/rjlib/rj/e_softclip.pd | 93 ++ l2ork_addons/rjlib/rj/e_vocoder-help.pd | 136 +++ l2ork_addons/rjlib/rj/e_vocoder.pd | 156 +++ l2ork_addons/rjlib/rj/jon~.pd | 919 ++++++++++++++++++ l2ork_addons/rjlib/rj/m.txt | 3 + l2ork_addons/rjlib/rj/m_bpm2ms-help.pd | 28 + l2ork_addons/rjlib/rj/m_bpm2ms.pd | 9 + l2ork_addons/rjlib/rj/m_scale-help.pd | 109 +++ l2ork_addons/rjlib/rj/m_scale.pd | 153 +++ l2ork_addons/rjlib/rj/m_speedlimit-help.pd | 26 + l2ork_addons/rjlib/rj/m_speedlimit.pd | 59 ++ l2ork_addons/rjlib/rj/rjdispatch-help.pd | 67 ++ l2ork_addons/rjlib/rj/rjdispatch.pd | 28 + l2ork_addons/rjlib/rj/rjloader-help.pd | 3 + l2ork_addons/rjlib/rj/rjloader.pd | 26 + l2ork_addons/rjlib/rj/s.txt | 10 + l2ork_addons/rjlib/rj/s_blsaw-help.pd | 25 + l2ork_addons/rjlib/rj/s_blsaw.pd | 11 + l2ork_addons/rjlib/rj/s_blsquare-help.pd | 43 + l2ork_addons/rjlib/rj/s_blsquare.pd | 60 ++ l2ork_addons/rjlib/rj/s_buzz-help.pd | 39 + l2ork_addons/rjlib/rj/s_buzz.pd | 106 ++ l2ork_addons/rjlib/rj/s_fplaytable.pd | 19 + l2ork_addons/rjlib/rj/s_fplaytable2.pd | 23 + l2ork_addons/rjlib/rj/s_guitar-help.pd | 71 ++ l2ork_addons/rjlib/rj/s_guitar.pd | 309 ++++++ l2ork_addons/rjlib/rj/s_looper-help.pd | 72 ++ l2ork_addons/rjlib/rj/s_looper.pd | 153 +++ l2ork_addons/rjlib/rj/s_playtable-help.pd | 69 ++ l2ork_addons/rjlib/rj/s_playtable.pd | 298 ++++++ l2ork_addons/rjlib/rj/s_playtable2-help.pd | 75 ++ l2ork_addons/rjlib/rj/s_playtable2.pd | 39 + l2ork_addons/rjlib/rj/s_rhodey-help.pd | 119 +++ l2ork_addons/rjlib/rj/s_rhodey.pd | 212 ++++ l2ork_addons/rjlib/rj/sssad.pd | 257 +++++ l2ork_addons/rjlib/rj/u.txt | 6 + l2ork_addons/rjlib/rj/u_fade-help.pd | 10 + l2ork_addons/rjlib/rj/u_fade.pd | 21 + l2ork_addons/rjlib/rj/u_record-help.pd | 77 ++ l2ork_addons/rjlib/rj/u_record.pd | 225 +++++ l2ork_addons/rjlib/rj/u_samplebank-help.pd | 57 ++ l2ork_addons/rjlib/rj/u_samplebank.pd | 65 ++ l2ork_addons/rjlib/rj/u_samplebank2-help.pd | 59 ++ l2ork_addons/rjlib/rj/u_samplebank2.pd | 66 ++ l2ork_addons/rjlib/rj/u_splicetrans-help.pd | 160 +++ l2ork_addons/rjlib/rj/u_splicetrans.pd | 136 +++ l2ork_addons/rjlib/rj/u_stereo-help.pd | 16 + l2ork_addons/rjlib/rj/u_stereo.pd | 16 + l2ork_addons/rjlib/rjXYZshake-help.pd | 41 + l2ork_addons/rjlib/rjXYZshake.pd | 116 +++ l2ork_addons/rjlib/rj_fft.pd | 194 ++++ l2ork_addons/rjlib/rjdispatch-help.pd | 67 ++ l2ork_addons/rjlib/rjdispatch.pd | 28 + l2ork_addons/rjlib/rjloader-help.pd | 3 + l2ork_addons/rjlib/rjloader.pd | 26 + l2ork_addons/rjlib/rjsave-ex-help.pd | 49 + l2ork_addons/rjlib/rjsave-ex.pd | 19 + l2ork_addons/rjlib/soundinput.pd | 55 ++ l2ork_addons/rjlib/soundoutput.pd | 63 ++ l2ork_addons/rjlib/src/makefile | 53 + l2ork_addons/rjlib/src/makefile_mingw | 36 + l2ork_addons/rjlib/src/rj_accum-help.pd | 218 +++++ l2ork_addons/rjlib/src/rj_accum.c | 195 ++++ .../rjlib/src/rj_barkflux_accum~-help.pd | 214 ++++ l2ork_addons/rjlib/src/rj_barkflux_accum~.c | 372 +++++++ l2ork_addons/rjlib/src/rj_centroid~-help.pd | 207 ++++ l2ork_addons/rjlib/src/rj_centroid~.c | 98 ++ l2ork_addons/rjlib/src/rj_senergy~-help.pd | 207 ++++ l2ork_addons/rjlib/src/rj_senergy~.c | 90 ++ l2ork_addons/rjlib/src/rj_zcr~-help.pd | 9 + l2ork_addons/rjlib/src/rj_zcr~.c | 109 +++ l2ork_addons/rjlib/sssad.pd | 257 +++++ l2ork_addons/rjlib/touch.pd | 253 +++++ l2ork_addons/tar_em_up.sh | 2 + packages/linux_make/default.settings | 3 +- 122 files changed, 10515 insertions(+), 1 deletion(-) create mode 100644 l2ork_addons/rjlib/Makefile create mode 100644 l2ork_addons/rjlib/README create mode 100644 l2ork_addons/rjlib/abs/reverb-echo.pd create mode 100644 l2ork_addons/rjlib/accelerate.pd create mode 100644 l2ork_addons/rjlib/analysepitch.pd create mode 100644 l2ork_addons/rjlib/analysesimpleonset.pd create mode 100644 l2ork_addons/rjlib/hilbert~.pd create mode 100644 l2ork_addons/rjlib/playback.pd create mode 100644 l2ork_addons/rjlib/recorder.pd create mode 100644 l2ork_addons/rjlib/reverb.pd create mode 100644 l2ork_addons/rjlib/rj/OVERVIEW.pd create mode 100644 l2ork_addons/rjlib/rj/c.txt create mode 100644 l2ork_addons/rjlib/rj/c_adsr-help.pd create mode 100644 l2ork_addons/rjlib/rj/c_adsr.pd create mode 100644 l2ork_addons/rjlib/rj/c_adsrj-help.pd create mode 100644 l2ork_addons/rjlib/rj/c_adsrj.pd create mode 100644 l2ork_addons/rjlib/rj/c_mphasor-help.pd create mode 100644 l2ork_addons/rjlib/rj/c_mphasor.pd create mode 100644 l2ork_addons/rjlib/rj/c_multimetro-help.pd create mode 100644 l2ork_addons/rjlib/rj/c_multimetro.pd create mode 100644 l2ork_addons/rjlib/rj/c_xfade-help.pd create mode 100644 l2ork_addons/rjlib/rj/c_xfade.pd create mode 100644 l2ork_addons/rjlib/rj/e.txt create mode 100644 l2ork_addons/rjlib/rj/e_alias-help.pd create mode 100644 l2ork_addons/rjlib/rj/e_alias.pd create mode 100644 l2ork_addons/rjlib/rj/e_chorus-help.pd create mode 100644 l2ork_addons/rjlib/rj/e_chorus.pd create mode 100644 l2ork_addons/rjlib/rj/e_chorusr-help.pd create mode 100644 l2ork_addons/rjlib/rj/e_chorusr.pd create mode 100644 l2ork_addons/rjlib/rj/e_fbdelay-help.pd create mode 100644 l2ork_addons/rjlib/rj/e_fbdelay.pd create mode 100644 l2ork_addons/rjlib/rj/e_fbdelay2.pd create mode 100644 l2ork_addons/rjlib/rj/e_freqshift-help.pd create mode 100644 l2ork_addons/rjlib/rj/e_freqshift.pd create mode 100644 l2ork_addons/rjlib/rj/e_pan-help.pd create mode 100644 l2ork_addons/rjlib/rj/e_pan.pd create mode 100644 l2ork_addons/rjlib/rj/e_phaser-help.pd create mode 100644 l2ork_addons/rjlib/rj/e_phaser.pd create mode 100644 l2ork_addons/rjlib/rj/e_pingpong-help.pd create mode 100644 l2ork_addons/rjlib/rj/e_pingpong.pd create mode 100644 l2ork_addons/rjlib/rj/e_pitchshift-help.pd create mode 100644 l2ork_addons/rjlib/rj/e_pitchshift.pd create mode 100644 l2ork_addons/rjlib/rj/e_reslop-help.pd create mode 100644 l2ork_addons/rjlib/rj/e_reslop.pd create mode 100644 l2ork_addons/rjlib/rj/e_reverb-help.pd create mode 100644 l2ork_addons/rjlib/rj/e_reverb.pd create mode 100644 l2ork_addons/rjlib/rj/e_softclip-help.pd create mode 100644 l2ork_addons/rjlib/rj/e_softclip.pd create mode 100644 l2ork_addons/rjlib/rj/e_vocoder-help.pd create mode 100644 l2ork_addons/rjlib/rj/e_vocoder.pd create mode 100644 l2ork_addons/rjlib/rj/jon~.pd create mode 100644 l2ork_addons/rjlib/rj/m.txt create mode 100644 l2ork_addons/rjlib/rj/m_bpm2ms-help.pd create mode 100644 l2ork_addons/rjlib/rj/m_bpm2ms.pd create mode 100644 l2ork_addons/rjlib/rj/m_scale-help.pd create mode 100644 l2ork_addons/rjlib/rj/m_scale.pd create mode 100644 l2ork_addons/rjlib/rj/m_speedlimit-help.pd create mode 100644 l2ork_addons/rjlib/rj/m_speedlimit.pd create mode 100644 l2ork_addons/rjlib/rj/rjdispatch-help.pd create mode 100644 l2ork_addons/rjlib/rj/rjdispatch.pd create mode 100644 l2ork_addons/rjlib/rj/rjloader-help.pd create mode 100644 l2ork_addons/rjlib/rj/rjloader.pd create mode 100644 l2ork_addons/rjlib/rj/s.txt create mode 100644 l2ork_addons/rjlib/rj/s_blsaw-help.pd create mode 100644 l2ork_addons/rjlib/rj/s_blsaw.pd create mode 100644 l2ork_addons/rjlib/rj/s_blsquare-help.pd create mode 100644 l2ork_addons/rjlib/rj/s_blsquare.pd create mode 100644 l2ork_addons/rjlib/rj/s_buzz-help.pd create mode 100644 l2ork_addons/rjlib/rj/s_buzz.pd create mode 100644 l2ork_addons/rjlib/rj/s_fplaytable.pd create mode 100644 l2ork_addons/rjlib/rj/s_fplaytable2.pd create mode 100644 l2ork_addons/rjlib/rj/s_guitar-help.pd create mode 100644 l2ork_addons/rjlib/rj/s_guitar.pd create mode 100644 l2ork_addons/rjlib/rj/s_looper-help.pd create mode 100644 l2ork_addons/rjlib/rj/s_looper.pd create mode 100644 l2ork_addons/rjlib/rj/s_playtable-help.pd create mode 100644 l2ork_addons/rjlib/rj/s_playtable.pd create mode 100644 l2ork_addons/rjlib/rj/s_playtable2-help.pd create mode 100644 l2ork_addons/rjlib/rj/s_playtable2.pd create mode 100644 l2ork_addons/rjlib/rj/s_rhodey-help.pd create mode 100644 l2ork_addons/rjlib/rj/s_rhodey.pd create mode 100644 l2ork_addons/rjlib/rj/sssad.pd create mode 100644 l2ork_addons/rjlib/rj/u.txt create mode 100644 l2ork_addons/rjlib/rj/u_fade-help.pd create mode 100644 l2ork_addons/rjlib/rj/u_fade.pd create mode 100644 l2ork_addons/rjlib/rj/u_record-help.pd create mode 100644 l2ork_addons/rjlib/rj/u_record.pd create mode 100644 l2ork_addons/rjlib/rj/u_samplebank-help.pd create mode 100644 l2ork_addons/rjlib/rj/u_samplebank.pd create mode 100644 l2ork_addons/rjlib/rj/u_samplebank2-help.pd create mode 100644 l2ork_addons/rjlib/rj/u_samplebank2.pd create mode 100644 l2ork_addons/rjlib/rj/u_splicetrans-help.pd create mode 100644 l2ork_addons/rjlib/rj/u_splicetrans.pd create mode 100644 l2ork_addons/rjlib/rj/u_stereo-help.pd create mode 100644 l2ork_addons/rjlib/rj/u_stereo.pd create mode 100644 l2ork_addons/rjlib/rjXYZshake-help.pd create mode 100644 l2ork_addons/rjlib/rjXYZshake.pd create mode 100644 l2ork_addons/rjlib/rj_fft.pd create mode 100644 l2ork_addons/rjlib/rjdispatch-help.pd create mode 100644 l2ork_addons/rjlib/rjdispatch.pd create mode 100644 l2ork_addons/rjlib/rjloader-help.pd create mode 100644 l2ork_addons/rjlib/rjloader.pd create mode 100644 l2ork_addons/rjlib/rjsave-ex-help.pd create mode 100644 l2ork_addons/rjlib/rjsave-ex.pd create mode 100644 l2ork_addons/rjlib/soundinput.pd create mode 100644 l2ork_addons/rjlib/soundoutput.pd create mode 100644 l2ork_addons/rjlib/src/makefile create mode 100644 l2ork_addons/rjlib/src/makefile_mingw create mode 100644 l2ork_addons/rjlib/src/rj_accum-help.pd create mode 100644 l2ork_addons/rjlib/src/rj_accum.c create mode 100644 l2ork_addons/rjlib/src/rj_barkflux_accum~-help.pd create mode 100644 l2ork_addons/rjlib/src/rj_barkflux_accum~.c create mode 100644 l2ork_addons/rjlib/src/rj_centroid~-help.pd create mode 100644 l2ork_addons/rjlib/src/rj_centroid~.c create mode 100644 l2ork_addons/rjlib/src/rj_senergy~-help.pd create mode 100644 l2ork_addons/rjlib/src/rj_senergy~.c create mode 100644 l2ork_addons/rjlib/src/rj_zcr~-help.pd create mode 100644 l2ork_addons/rjlib/src/rj_zcr~.c create mode 100644 l2ork_addons/rjlib/sssad.pd create mode 100644 l2ork_addons/rjlib/touch.pd diff --git a/l2ork_addons/rjlib/Makefile b/l2ork_addons/rjlib/Makefile new file mode 100644 index 000000000..25afbab3f --- /dev/null +++ b/l2ork_addons/rjlib/Makefile @@ -0,0 +1,26 @@ +#! /usr/bin/make + +# available targets: +# clean: clean everything +# all: compile objective-c application +# package: prepare a zip file of the app +# upload: upload app to a phone +# +# use "make upload IPHONE=<iphone_ip>" to build and upload to device + +# name of the application +TRG=RjDj +# version +VER=0.5 +# ip of the phone to install it to +IPHONE?=192.168.1.36 +# user name to upload with +IPHONE_USER=mobile + +SCENE_LOC=/var/mobile/Applications/RJ/rjlib + +RSYNC=rsync +RSYNC_OPTS=-av --delete-after --exclude .svn + +upload: + $(RSYNC) $(RSYNC_OPTS) ./ $(IPHONE_USER)@$(IPHONE):$(SCENE_LOC) || echo "make sure rsync is installed on the phone" diff --git a/l2ork_addons/rjlib/README b/l2ork_addons/rjlib/README new file mode 100644 index 000000000..cb073a9cf --- /dev/null +++ b/l2ork_addons/rjlib/README @@ -0,0 +1,28 @@ + +Global messages from rjlib: + +1) receiver "accelerate", + module accelerate.pd + - magnitude float: gives the magnitude of an accelerator motion + - pitch float: the pitch + - roll float: the roll + - x float: raw x value + - y float: raw y value + - z loat: raw z value + +2) receiver "touch" ??? TODO: document + module touch.pd + - tap float: + - speed1.delta.1 float + - speed2.delta.2 float + - speed float float + +3) receiver analyse + module analysepitch.pd + - pitch float: a pitch value when a pitched sound is detected + - continuouspitch float: always delivers a pitch + - onset bang: bang if an onset is detected + module analysesimpleonset.pd + configuration: onset_threshold float: default value 10 + - simpleonset bang: cheap, basic onset detector + diff --git a/l2ork_addons/rjlib/abs/reverb-echo.pd b/l2ork_addons/rjlib/abs/reverb-echo.pd new file mode 100644 index 000000000..b45cc52d8 --- /dev/null +++ b/l2ork_addons/rjlib/abs/reverb-echo.pd @@ -0,0 +1,24 @@ +#N canvas 840 189 600 492 12; +#X obj 66 95 inlet~; +#X obj 130 96 inlet~; +#X obj 68 216 outlet~; +#X obj 141 215 outlet~; +#X obj 67 143 +~; +#X obj 140 141 -~; +#X obj 141 165 delwrite~ \$1 \$2; +#X obj 140 191 delread~ \$1 \$2; +#X text 48 14 This appears as an abstraction in patch G08.reverb.pd +; +#X text 27 267 This network makes two copies of the (stereo) input +\, one in phase \, the other out of phase and delayed. The total frequency +response is flat. The total signal power out is exactly twice that +of the input \, no matter what freqiencies the input contains. This +is used to increase echo density \, by stacking several of these units +with different delay times. Each stage doubles the echo density.; +#X connect 0 0 4 0; +#X connect 0 0 5 0; +#X connect 1 0 4 1; +#X connect 1 0 5 1; +#X connect 4 0 2 0; +#X connect 5 0 6 0; +#X connect 7 0 3 0; diff --git a/l2ork_addons/rjlib/accelerate.pd b/l2ork_addons/rjlib/accelerate.pd new file mode 100644 index 000000000..0b12d1ce8 --- /dev/null +++ b/l2ork_addons/rjlib/accelerate.pd @@ -0,0 +1,90 @@ +#N canvas 537 40 360 283 10; +#N canvas 79 298 269 329 magnitude 0; +#X obj 14 17 r #accelerate; +#X obj 14 48 unpack f f f; +#X obj 14 108 *; +#X obj 76 108 *; +#X obj 135 108 *; +#X obj 14 138 +; +#X obj 14 168 +; +#X obj 14 198 pow 0.5; +#X obj 14 258 s accelerate; +#X msg 14 228 magnitude \$1; +#X msg 14 78 \$1 \$1; +#X msg 76 78 \$1 \$1; +#X msg 135 78 \$1 \$1; +#X connect 0 0 1 0; +#X connect 1 0 10 0; +#X connect 1 1 11 0; +#X connect 1 2 12 0; +#X connect 2 0 5 0; +#X connect 3 0 5 1; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 9 0; +#X connect 9 0 8 0; +#X connect 10 0 2 0; +#X connect 11 0 3 0; +#X connect 12 0 4 0; +#X restore 16 22 pd magnitude; +#N canvas 123 87 366 291 pitch 0; +#X obj 31 25 r #accelerate; +#X obj 31 205 s accelerate; +#X obj 31 85 /; +#X obj 31 115 atan; +#X msg 31 175 pitch \$1; +#X obj 31 145 * -1; +#X obj 31 55 list split 1; +#X connect 0 0 6 0; +#X connect 2 0 3 0; +#X connect 3 0 5 0; +#X connect 4 0 1 0; +#X connect 5 0 4 0; +#X connect 6 1 2 0; +#X restore 16 52 pd pitch; +#N canvas 256 44 307 244 roll 0; +#X obj 14 17 r #accelerate; +#X obj 14 47 unpack f f f; +#X obj 14 167 s accelerate; +#X msg 14 137 roll \$1; +#X obj 14 77 /; +#X obj 14 107 atan; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 1 2 4 1; +#X connect 3 0 2 0; +#X connect 4 0 5 0; +#X connect 5 0 3 0; +#X restore 16 82 pd roll; +#X text 16 187 Author: Roman Haefeli; +#N canvas 166 94 327 239 x_y_z 0; +#X obj 14 17 r #accelerate; +#X obj 14 77 s accelerate; +#X msg 14 47 x \$1 \, y \$2 \, z \$3; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 16 112 pd x_y_z; +#X text 15 168 Version: 2008-07-14; +#N canvas 0 22 223 279 status 0; +#X obj 14 17 r #accelerate; +#X obj 14 77 f 150; +#X obj 14 107 del; +#X obj 14 167 change; +#X obj 14 47 t b b; +#X msg 14 197 status \$1; +#X obj 14 227 s accelerate; +#X obj 104 117 f 1; +#X obj 14 137 f 0; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 8 0; +#X connect 3 0 5 0; +#X connect 4 0 1 0; +#X connect 4 1 7 0; +#X connect 5 0 6 0; +#X connect 7 0 3 0; +#X connect 8 0 3 0; +#X restore 16 142 pd status; +#X text 16 207 Revision: 2008-09-19 eerne: minor enhancement; +#X text 16 227 2008-09-20 eerne: added status; diff --git a/l2ork_addons/rjlib/analysepitch.pd b/l2ork_addons/rjlib/analysepitch.pd new file mode 100644 index 000000000..0a0d170fc --- /dev/null +++ b/l2ork_addons/rjlib/analysepitch.pd @@ -0,0 +1,23 @@ +#N canvas 486 22 450 300 10; +#X obj 119 128 fiddle~; +#X obj 153 263 s analyse; +#X obj 119 65 adc~; +#X floatatom 43 235 5 0 0 0 - - -; +#X msg 92 202 pitch \$1; +#X msg 263 201 continuouspitch \$1; +#X msg 169 202 onset bang; +#X obj 264 178 unpack; +#X obj 169 64 r inputvolume; +#X obj 120 99 *~ 1; +#X connect 0 0 4 0; +#X connect 0 0 3 0; +#X connect 0 1 6 0; +#X connect 0 2 7 0; +#X connect 2 0 9 0; +#X connect 2 1 9 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 1 0; +#X connect 7 0 5 0; +#X connect 8 0 9 1; +#X connect 9 0 0 0; diff --git a/l2ork_addons/rjlib/analysesimpleonset.pd b/l2ork_addons/rjlib/analysesimpleonset.pd new file mode 100644 index 000000000..c93a86456 --- /dev/null +++ b/l2ork_addons/rjlib/analysesimpleonset.pd @@ -0,0 +1,37 @@ +#N canvas 270 63 551 550 10; +#X obj 96 61 adc~; +#X obj 97 121 env~; +#X obj 152 62 inlet; +#X obj 203 63 r onset_threshold; +#X obj 167 268 change; +#X obj 167 290 sel 1; +#X obj 167 389 s analyse; +#X floatatom 180 153 5 0 0 0 - - -; +#X obj 97 182 -; +#X obj 97 159 t f f; +#X obj 125 339 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 70 213 t f f; +#X obj 79 268 spigot; +#X obj 168 328 float; +#X msg 168 362 simpleonset \$1; +#X obj 103 236 > 3; +#X connect 0 0 1 0; +#X connect 0 1 1 0; +#X connect 1 0 7 0; +#X connect 1 0 9 0; +#X connect 2 0 15 1; +#X connect 3 0 15 1; +#X connect 4 0 5 0; +#X connect 5 0 10 0; +#X connect 5 0 13 0; +#X connect 8 0 11 0; +#X connect 9 0 8 1; +#X connect 9 1 8 0; +#X connect 11 0 12 0; +#X connect 11 1 15 0; +#X connect 12 0 13 1; +#X connect 13 0 14 0; +#X connect 14 0 6 0; +#X connect 15 0 4 0; +#X connect 15 0 12 1; diff --git a/l2ork_addons/rjlib/hilbert~.pd b/l2ork_addons/rjlib/hilbert~.pd new file mode 100644 index 000000000..152c2082a --- /dev/null +++ b/l2ork_addons/rjlib/hilbert~.pd @@ -0,0 +1,27 @@ +#N canvas 269 0 593 306 12; +#X obj 105 92 biquad~ 0.83774 -0.06338 0.06338 -0.83774 1; +#X obj 105 66 biquad~ 1.94632 -0.94657 0.94657 -1.94632 1; +#X obj 86 149 biquad~ -0.02569 0.260502 -0.260502 0.02569 1; +#X obj 86 175 biquad~ 1.8685 -0.870686 0.870686 -1.8685 1; +#X obj 86 39 inlet~; +#X obj 105 121 outlet~; +#X obj 86 202 outlet~; +#X text 34 232 This is a pair of 4th-order all-pass filters whose outputs +somehow manage to be about 90 degrees out of phase from each other. +Both have different phases from the original. Adapted from a 4X patch +by Emmanuel Favreau \, circa 1982; +#X obj 502 39 inlet; +#X text 461 13 bang to clear; +#X text 80 16 signal in; +#X msg 502 112 clear; +#X connect 0 0 5 0; +#X connect 1 0 0 0; +#X connect 2 0 3 0; +#X connect 3 0 6 0; +#X connect 4 0 1 0; +#X connect 4 0 2 0; +#X connect 8 0 11 0; +#X connect 11 0 1 0; +#X connect 11 0 0 0; +#X connect 11 0 2 0; +#X connect 11 0 3 0; diff --git a/l2ork_addons/rjlib/playback.pd b/l2ork_addons/rjlib/playback.pd new file mode 100644 index 000000000..1f68566d9 --- /dev/null +++ b/l2ork_addons/rjlib/playback.pd @@ -0,0 +1,13 @@ +#N canvas 461 160 618 519 10; +#X obj 19 103 readsf~ 2; +#X msg 19 79 open \$1 \, 1; +#X obj 19 57 symbol; +#X obj 20 7 r #transport; +#X obj 19 30 route playback; +#X obj 19 132 soundoutput; +#X connect 0 0 5 0; +#X connect 0 1 5 1; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 4 0 2 0; diff --git a/l2ork_addons/rjlib/recorder.pd b/l2ork_addons/rjlib/recorder.pd new file mode 100644 index 000000000..54bc8bd64 --- /dev/null +++ b/l2ork_addons/rjlib/recorder.pd @@ -0,0 +1,36 @@ +#N canvas 512 221 504 404 10; +#X obj 184 376 writesf~ 2; +#X obj 144 16 r #transport; +#X obj 156 127 route scene; +#X floatatom 48 209 5 0 0 0 - - -; +#X obj 48 188 random 30000; +#X obj 49 135 route record; +#X obj 48 166 sel 1; +#X msg 72 285 open \$1 \, start; +#X msg 143 310 stop; +#X obj 199 323 catch~ rec1; +#X obj 286 323 catch~ rec2; +#X obj 69 375 print; +#X msg 159 199 set \$1_%d.wav; +#X obj 159 150 symbol; +#X obj 158 179 makefilename %s; +#X obj 72 234 makefilename record_%d.wav; +#X connect 1 0 2 0; +#X connect 1 0 5 0; +#X connect 2 0 13 0; +#X connect 3 0 15 0; +#X connect 4 0 3 0; +#X connect 5 0 6 0; +#X connect 5 1 8 0; +#X connect 6 0 4 0; +#X connect 7 0 0 0; +#X connect 7 0 11 0; +#X connect 8 0 0 0; +#X connect 8 0 11 0; +#X connect 9 0 0 0; +#X connect 10 0 0 1; +#X connect 12 0 11 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 12 0; +#X connect 15 0 7 0; diff --git a/l2ork_addons/rjlib/reverb.pd b/l2ork_addons/rjlib/reverb.pd new file mode 100644 index 000000000..d505617a0 --- /dev/null +++ b/l2ork_addons/rjlib/reverb.pd @@ -0,0 +1,99 @@ +#N canvas 390 121 790 517 10; +#X obj 91 17 inlet~; +#X obj 344 225 +~; +#X obj 386 225 +~; +#X obj 615 453 outlet~; +#X obj 685 453 outlet~; +#X obj 305 288 +~; +#X obj 414 289 +~; +#X obj 347 288 -~; +#X obj 454 288 -~; +#X obj 305 327 +~; +#X obj 349 328 +~; +#X obj 393 329 -~; +#X obj 432 329 -~; +#X obj 680 172 inlet; +#X obj 680 244 / 200; +#X obj 680 196 min 100; +#X obj 680 219 max 0; +#X obj 306 465 delwrite~ loop-del1 60; +#X obj 351 443 delwrite~ loop-del2 71.9345; +#X obj 432 397 delwrite~ loop-del4 95.945; +#X obj 365 164 delread~ loop-del1 60; +#X obj 407 189 delread~ loop-del2 71.9345; +#X obj 475 243 delread~ loop-del4 95.945; +#X obj 453 218 delread~ loop-del3 86.7545; +#X obj 393 420 delwrite~ loop-del3 86.7545; +#X obj 91 41 abs/reverb-echo echo-del1 5.43216; +#X obj 91 65 abs/reverb-echo echo-del2 8.45346; +#X obj 91 89 abs/reverb-echo echo-del3 13.4367; +#X obj 91 113 abs/reverb-echo echo-del4 21.5463; +#X obj 91 137 abs/reverb-echo echo-del5 34.3876; +#X obj 91 161 abs/reverb-echo echo-del6 55.5437; +#X obj 305 354 *~ \$1; +#X obj 350 355 *~ \$1; +#X obj 392 356 *~ \$1; +#X obj 433 357 *~ \$1; +#X obj 746 174 inlet; +#X obj 746 198 min 100; +#X obj 746 221 max 0; +#X obj 706 364 / 100; +#X obj 709 403 *~ \$2; +#X obj 652 393 *~ \$2; +#X connect 0 0 25 0; +#X connect 0 0 3 0; +#X connect 0 0 4 0; +#X connect 1 0 5 0; +#X connect 1 0 7 0; +#X connect 1 0 40 0; +#X connect 2 0 5 1; +#X connect 2 0 7 1; +#X connect 2 0 39 0; +#X connect 5 0 9 0; +#X connect 5 0 11 0; +#X connect 6 0 11 1; +#X connect 6 0 9 1; +#X connect 7 0 10 0; +#X connect 7 0 12 0; +#X connect 8 0 10 1; +#X connect 8 0 12 1; +#X connect 9 0 31 0; +#X connect 10 0 32 0; +#X connect 11 0 33 0; +#X connect 12 0 34 0; +#X connect 13 0 15 0; +#X connect 14 0 31 1; +#X connect 14 0 32 1; +#X connect 14 0 33 1; +#X connect 14 0 34 1; +#X connect 15 0 16 0; +#X connect 16 0 14 0; +#X connect 20 0 1 1; +#X connect 21 0 2 1; +#X connect 22 0 6 1; +#X connect 22 0 8 1; +#X connect 23 0 6 0; +#X connect 23 0 8 0; +#X connect 25 0 26 0; +#X connect 25 1 26 1; +#X connect 26 0 27 0; +#X connect 26 1 27 1; +#X connect 27 0 28 0; +#X connect 27 1 28 1; +#X connect 28 0 29 0; +#X connect 28 1 29 1; +#X connect 29 0 30 0; +#X connect 29 1 30 1; +#X connect 30 0 1 0; +#X connect 30 1 2 0; +#X connect 31 0 17 0; +#X connect 32 0 18 0; +#X connect 33 0 24 0; +#X connect 34 0 19 0; +#X connect 35 0 36 0; +#X connect 36 0 37 0; +#X connect 37 0 38 0; +#X connect 38 0 39 1; +#X connect 38 0 40 1; +#X connect 39 0 4 0; +#X connect 40 0 3 0; diff --git a/l2ork_addons/rjlib/rj/OVERVIEW.pd b/l2ork_addons/rjlib/rj/OVERVIEW.pd new file mode 100644 index 000000000..ee6ea6e00 --- /dev/null +++ b/l2ork_addons/rjlib/rj/OVERVIEW.pd @@ -0,0 +1,68 @@ +#N canvas 722 176 296 279 10; +#N canvas 0 0 682 744 \$0-overview 1; +#X restore 85 182 pd \$0-overview; +#N canvas 337 123 417 469 dump 0; +#X obj 94 243 textfile; +#X obj 94 277 t a b; +#X obj 128 301 f; +#X obj 160 302 + 1; +#X obj 94 401 s pd-\$0-overview; +#X obj 94 351 list; +#X msg 172 247 1; +#X obj 94 211 until; +#X obj 74 41 inlet; +#X obj 74 76 list; +#X msg 258 199 print; +#X msg 115 184 read \$1 cr \, rewind; +#X msg 239 247 clear; +#X msg 94 373 obj 100 \$2 \$1; +#X obj 239 42 inlet; +#X obj 128 324 * 45; +#X msg 74 113 symbol \$1.txt; +#X obj 74 152 t b b a b; +#X msg 74 427 vis 1; +#X connect 0 0 1 0; +#X connect 0 1 7 1; +#X connect 1 0 5 0; +#X connect 1 1 2 0; +#X connect 2 0 3 0; +#X connect 2 0 15 0; +#X connect 3 0 2 1; +#X connect 5 0 13 0; +#X connect 6 0 2 1; +#X connect 7 0 0 0; +#X connect 8 0 9 0; +#X connect 9 0 16 0; +#X connect 10 0 0 0; +#X connect 11 0 0 0; +#X connect 12 0 4 0; +#X connect 13 0 4 0; +#X connect 14 0 12 0; +#X connect 15 0 5 1; +#X connect 16 0 17 0; +#X connect 17 0 18 0; +#X connect 17 1 7 0; +#X connect 17 2 11 0; +#X connect 17 3 12 0; +#X connect 17 3 6 0; +#X connect 18 0 4 0; +#X restore 84 154 pd dump; +#X msg 110 33 s; +#X text 138 33 ynths; +#X msg 110 54 e; +#X text 138 54 ffects; +#X msg 111 77 m; +#X text 139 77 appings; +#X msg 111 99 c; +#X text 139 99 controllers; +#X msg 111 122 u; +#X text 139 122 tilities; +#X msg 143 154 clear; +#X text 85 211 Help-click any object to; +#X text 84 229 open the help file!; +#X connect 2 0 1 0; +#X connect 4 0 1 0; +#X connect 6 0 1 0; +#X connect 8 0 1 0; +#X connect 10 0 1 0; +#X connect 12 0 1 1; diff --git a/l2ork_addons/rjlib/rj/c.txt b/l2ork_addons/rjlib/rj/c.txt new file mode 100644 index 000000000..f32c3c922 --- /dev/null +++ b/l2ork_addons/rjlib/rj/c.txt @@ -0,0 +1,5 @@ +c_adsr +c_adsrj +c_mphasor +c_multimetro +c_xfade diff --git a/l2ork_addons/rjlib/rj/c_adsr-help.pd b/l2ork_addons/rjlib/rj/c_adsr-help.pd new file mode 100644 index 000000000..22e328729 --- /dev/null +++ b/l2ork_addons/rjlib/rj/c_adsr-help.pd @@ -0,0 +1,58 @@ +#N canvas 256 30 668 776 10; +#X text 51 13 c_adsr: ADSR ENVELOPE; +#X text 85 151 When you send this patch a positive trigger it schedules +a line~ to do an attack and decay \, and if zero \, it starts the release +ramp.; +#X text 86 204 Negative triggers cause the output to jump to zero and +then attack (instead of attacking from the current location).; +#X obj 196 357 / 127; +#N canvas 0 0 450 300 (subpatch) 0; +#X array \$0-adsr 44100 float 2; +#X coords 0 1 44100 -1 200 140 1; +#X restore 118 558 graph; +#X obj 119 513 tabwrite~ \$0-adsr; +#X obj 87 292 t a b; +#X msg 87 270 80; +#X obj 87 335 makenote 100 400; +#X obj 196 383 t a a; +#X floatatom 141 311 5 0 0 2 velocity - -; +#X floatatom 256 290 5 0 0 1 A - -; +#X floatatom 286 315 5 0 0 1 D - -; +#X floatatom 316 343 5 0 0 1 S(%) - -; +#X floatatom 347 368 5 0 0 1 R - -; +#X text 85 46 This is the classical Miller S. Puckette linear ADSR +envelope \, but with vline~ instead of line~ inside for a bit of extra +timing accuracy.; +#X text 86 102 Arguments: peak level \, attack time \, decay time \, +sustain level \, release time. A \, D \, and R are in msec and S is +in percent!; +#N canvas 0 0 450 300 (subpatch) 0; +#X array \$0-adsr-quartic 44100 float 2; +#X coords 0 1 44100 -1 200 140 1; +#X restore 347 558 graph; +#X obj 347 518 tabwrite~ \$0-adsr-quartic; +#X obj 119 449 t b b; +#X obj 345 465 *~; +#X obj 346 494 *~; +#X obj 196 411 c_adsr 1 80 100 80 200; +#X text 385 473 simple curved envelope; +#X connect 3 0 9 0; +#X connect 6 0 8 0; +#X connect 6 1 19 0; +#X connect 7 0 6 0; +#X connect 8 1 3 0; +#X connect 9 0 22 0; +#X connect 9 1 22 1; +#X connect 10 0 8 1; +#X connect 11 0 22 2; +#X connect 12 0 22 3; +#X connect 13 0 22 4; +#X connect 14 0 22 5; +#X connect 19 0 5 0; +#X connect 19 1 18 0; +#X connect 20 0 21 0; +#X connect 20 0 21 1; +#X connect 21 0 18 0; +#X connect 22 0 5 0; +#X connect 22 0 20 0; +#X connect 22 0 20 1; diff --git a/l2ork_addons/rjlib/rj/c_adsr.pd b/l2ork_addons/rjlib/rj/c_adsr.pd new file mode 100644 index 000000000..a12957f01 --- /dev/null +++ b/l2ork_addons/rjlib/rj/c_adsr.pd @@ -0,0 +1,96 @@ +#N canvas 131 27 1006 740 10; +#X obj 105 111 inlet; +#X obj 435 151 inlet; +#X text 101 86 trigger; +#X obj 105 139 sel 0; +#X obj 244 155 t b; +#X obj 166 264 f \$1; +#X obj 166 289 pack 0 \$2; +#X obj 492 151 inlet; +#X obj 438 281 del \$2; +#X obj 462 304 f \$4; +#X obj 501 379 pack 0 \$3; +#X obj 554 151 inlet; +#X obj 616 151 inlet; +#X obj 689 150 inlet; +#X msg 105 170 stop; +#X obj 612 306 pack 0 \$5; +#X text 435 129 level; +#X obj 501 355 * \$1; +#X obj 458 454 outlet~; +#X text 102 378 and pack with; +#X text 103 398 attack time; +#X text 31 126 if zero; +#X text 32 143 release; +#X text 12 160 and cancel; +#X text 43 177 decay; +#X text 284 272 on attack \, set a; +#X text 278 305 recall sustain value; +#X text 315 378 pack with decay time; +#X text 605 332 on release ramp; +#X text 606 349 back to zero; +#X obj 462 329 * 0.01; +#X text 47 567 Objects such as "f" and "pack" can be given dollar sign +arguments to initialize their contents from adsr's creation arguments. +Inlets are supplied to change them on the fly.; +#X text 13 2 ADSR ENVELOPE; +#X text 488 129 attack; +#X text 555 128 decay; +#X text 609 129 sustain; +#X text 686 129 release; +#X text 202 71 attack; +#X obj 204 92 moses; +#X obj 194 122 t b b; +#X msg 128 290 0; +#X text 20 273 optionally; +#X text 10 291 bash to zero; +#X text 25 246 ATTACK:; +#X text 49 477 When you send this patch a positive trigger it schedules +a line~ to do an attack and decay \, and if zero \, it starts the release +ramp.; +#X text 495 629 Updated for Pd version 0.37; +#X text 255 89 test for negative trigger; +#X text 253 113 if so \, zero; +#X text 254 129 the output; +#X text 278 165 in any case; +#X text 303 355 multiply by peak level; +#X text 280 286 delay for sustain; +#X text 276 328 convert from percent; +#X text 155 340 ... then; +#X text 103 359 recall peak level; +#X text 439 113 peak; +#X text 281 149 ... do this; +#X text 47 529 Negative triggers cause the output to jump to zero and +then attack (instead of attacking from the current location).; +#X text 208 1 Arguments: level \, attack time \, decay time \, sustain +level \, release time. A \, D \, and R are in msec and S is in percent. +This patch is used as an abstraction in various examples.; +#X obj 458 429 vline~; +#X connect 0 0 3 0; +#X connect 1 0 5 1; +#X connect 1 0 17 1; +#X connect 3 0 14 0; +#X connect 3 0 15 0; +#X connect 3 1 38 0; +#X connect 4 0 5 0; +#X connect 4 0 8 0; +#X connect 5 0 6 0; +#X connect 6 0 59 0; +#X connect 7 0 6 1; +#X connect 7 0 8 1; +#X connect 8 0 9 0; +#X connect 9 0 30 0; +#X connect 10 0 59 0; +#X connect 11 0 10 1; +#X connect 12 0 9 1; +#X connect 13 0 15 1; +#X connect 14 0 8 0; +#X connect 15 0 59 0; +#X connect 17 0 10 0; +#X connect 30 0 17 0; +#X connect 38 0 39 0; +#X connect 38 1 4 0; +#X connect 39 0 4 0; +#X connect 39 1 40 0; +#X connect 40 0 59 0; +#X connect 59 0 18 0; diff --git a/l2ork_addons/rjlib/rj/c_adsrj-help.pd b/l2ork_addons/rjlib/rj/c_adsrj-help.pd new file mode 100644 index 000000000..05f03b4b9 --- /dev/null +++ b/l2ork_addons/rjlib/rj/c_adsrj-help.pd @@ -0,0 +1,54 @@ +#N canvas 282 52 718 684 10; +#N canvas 0 0 450 300 (subpatch) 0; +#X array \$0-adsr 44100 float 2; +#X coords 0 1 44100 -1 200 140 1; +#X restore 118 488 graph; +#X obj 119 443 tabwrite~ \$0-adsr; +#X obj 87 232 t a b; +#X msg 87 210 80; +#X obj 87 275 makenote 100 400; +#X floatatom 141 251 5 0 0 2 velocity - -; +#X floatatom 349 218 5 0 0 1 A - -; +#X floatatom 413 218 5 0 0 1 D - -; +#X floatatom 475 218 5 0 0 1 S(%) - -; +#X floatatom 547 218 5 0 0 1 R - -; +#X msg 349 237 A \$1; +#X msg 413 237 D \$1; +#X msg 475 238 S \$1; +#X msg 547 238 R \$1; +#X text 51 13 c_adsrj: ADSR ENVELOPE with GUI and state saving; +#X floatatom 153 316 5 0 0 0 - - -; +#X text 475 336 Remote control; +#X obj 478 453 s RJ_SCENE_LOAD; +#X obj 196 351 c_adsrj myadsr; +#X text 85 46 This is a variation on the classical Miller S. Puckette +linear ADSR envelope which has a GUI included and is rj-save enabled. +; +#X text 86 102 Arguments: NAME \, attack time \, decay time \, sustain +level \, release time. A \, D \, and R are in msec and S is in percent! +; +#X obj 478 406 list prepend c_adsrj-myadsr; +#X obj 478 430 list trim; +#X msg 478 362 A 50 \, D 80 \, S 70 \, R 300; +#X text 378 568 Also see; +#X obj 448 566 c_adsr 1 20 30 90 300; +#X text 86 152 Trigger input is taken to be a number specifiying midi +velocity (0-127) which will also set the peak level.; +#X connect 2 0 4 0; +#X connect 2 1 1 0; +#X connect 3 0 2 0; +#X connect 4 1 15 0; +#X connect 4 1 18 0; +#X connect 5 0 4 1; +#X connect 6 0 10 0; +#X connect 7 0 11 0; +#X connect 8 0 12 0; +#X connect 9 0 13 0; +#X connect 10 0 18 1; +#X connect 11 0 18 1; +#X connect 12 0 18 1; +#X connect 13 0 18 1; +#X connect 18 0 1 0; +#X connect 21 0 22 0; +#X connect 22 0 17 0; +#X connect 23 0 21 0; diff --git a/l2ork_addons/rjlib/rj/c_adsrj.pd b/l2ork_addons/rjlib/rj/c_adsrj.pd new file mode 100644 index 000000000..80a07e00c --- /dev/null +++ b/l2ork_addons/rjlib/rj/c_adsrj.pd @@ -0,0 +1,40 @@ +#N canvas 255 130 736 454 10; +#X obj 101 204 inlet; +#X obj 101 254 t a a; +#X obj 128 284 abs; +#X obj 101 229 / 127; +#X obj 451 59 inlet; +#X obj 451 84 rjdispatch \$0 A; +#X obj 451 109 rjdispatch \$0 D; +#X obj 451 134 rjdispatch \$0 S; +#X obj 451 159 rjdispatch \$0 R; +#X obj 508 59 rjloader c_adsrj-\$1 \$0; +#X obj 106 132 nbx 3 14 -1e+37 1e+37 0 0 \$0-A \$0-A A 0 -8 1 10 -262144 +-1 -1 151 256; +#X obj 155 282 r \$0-A; +#X obj 183 301 r \$0-D; +#X obj 210 326 r \$0-S; +#X obj 238 348 r \$0-R; +#X obj 101 407 outlet~; +#X obj 142 132 nbx 3 14 -1e+37 1e+37 0 0 \$0-D \$0-D D 0 -8 1 10 -262144 +-1 -1 53 256; +#X obj 178 132 nbx 3 14 -1e+37 1e+37 0 0 \$0-S \$0-S S 0 -8 1 10 -262144 +-1 -1 41 256; +#X obj 214 132 nbx 4 14 -1e+37 1e+37 0 0 \$0-R \$0-R R 0 -8 1 10 -262144 +-1 -1 74 256; +#X obj 101 377 c_adsr 1 \$2 \$3 \$4 \$5; +#X connect 0 0 3 0; +#X connect 1 0 19 0; +#X connect 1 1 2 0; +#X connect 2 0 19 1; +#X connect 3 0 1 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 11 0 19 2; +#X connect 12 0 19 3; +#X connect 13 0 19 4; +#X connect 14 0 19 5; +#X connect 19 0 15 0; +#X coords 0 -1 1 1 160 50 1 100 100; diff --git a/l2ork_addons/rjlib/rj/c_mphasor-help.pd b/l2ork_addons/rjlib/rj/c_mphasor-help.pd new file mode 100644 index 000000000..03e6aa34c --- /dev/null +++ b/l2ork_addons/rjlib/rj/c_mphasor-help.pd @@ -0,0 +1,68 @@ +#N canvas 26 24 904 644 10; +#X obj 205 473 hsl 128 15 0 1 0 0 empty empty 0...1 10 7 1 10 -262144 +-1 -1 5056 1; +#X msg 202 342 on \$1; +#X obj 202 323 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 148 525 timer; +#X obj 148 503 t b b; +#X floatatom 148 549 5 0 0 0 - - -; +#X floatatom 202 437 5 0 0 0 - - -; +#X obj 384 340 hsl 128 15 0 1 0 0 empty empty phase(0...1) -2 -8 1 +10 -262144 -1 -1 1500 1; +#X floatatom 155 322 5 0 0 2 freq - -; +#X obj 155 342 / 100; +#X msg 252 342 updates \$1; +#X floatatom 252 322 5 0 0 0 - - -; +#X floatatom 381 361 5 0 0 1 phase - -; +#X obj 381 381 / 100; +#X obj 202 407 c_mphasor 0.3 20; +#X text 93 16 c_mphasor; +#X text 130 68 Generates a message rate sawtooth ramp between 0...1 +with variable frequency and update period.; +#X text 129 120 Arguments:; +#X text 221 119 c_mphasor <freq Hz> <update period ms>; +#X text 128 143 Inlet 0:; +#X text 223 184 - on 0/1: switch on or off; +#X text 223 144 - float number sets frequency in Hz \, negative frequencies +give falling ramp; +#X text 131 248 Inlet 1:; +#X obj 619 554 table \$0-sinewave 1024; +#X obj 620 531 s \$0-sinewave; +#X msg 620 508 sinesum 1024 1; +#X obj 620 483 loadbang; +#X obj 419 479 * 1024; +#X obj 419 502 + 1; +#X obj 419 526 tabread \$0-sinewave; +#X obj 422 550 hsl 128 15 -1 1 0 0 empty empty -1...1 10 7 1 10 -262144 +-1 -1 10164 1; +#X text 414 452 c_mphasor can be used to make a sinewave LFO like this: +; +#X text 382 406 phases wrap around; +#X text 129 40 Message rate phasor object \, useful for building LFOs. +; +#X text 222 210 - updates NUM: set update period in milliseconds (minimum +2ms); +#X text 221 246 - set and output phase like in [phasor~]. Range is +0-1 \, values outside this are wrapped around.; +#X connect 1 0 14 0; +#X connect 2 0 1 0; +#X connect 3 0 5 0; +#X connect 4 0 3 0; +#X connect 4 1 3 1; +#X connect 6 0 0 0; +#X connect 7 0 14 1; +#X connect 8 0 9 0; +#X connect 9 0 14 0; +#X connect 10 0 14 0; +#X connect 11 0 10 0; +#X connect 12 0 13 0; +#X connect 13 0 14 1; +#X connect 14 0 6 0; +#X connect 14 0 4 0; +#X connect 14 0 27 0; +#X connect 25 0 24 0; +#X connect 26 0 25 0; +#X connect 27 0 28 0; +#X connect 28 0 29 0; +#X connect 29 0 30 0; diff --git a/l2ork_addons/rjlib/rj/c_mphasor.pd b/l2ork_addons/rjlib/rj/c_mphasor.pd new file mode 100644 index 000000000..4654a938a --- /dev/null +++ b/l2ork_addons/rjlib/rj/c_mphasor.pd @@ -0,0 +1,87 @@ +#N canvas 137 114 832 614 10; +#X obj 93 47 inlet; +#X text 101 27 freq; +#X obj 26 190 loadbang; +#X obj 93 390 outlet; +#X obj 406 53 inlet; +#X obj 93 321 f 0; +#X obj 127 321 + 1; +#X obj 262 215 f \$1; +#X obj 125 218 f \$2; +#X obj 154 145 loadbang; +#X obj 93 267 metro; +#N canvas 565 325 520 366 \$0-calc-increment 0; +#X obj 165 68 inlet; +#X obj 54 66 inlet; +#X obj 165 129 /; +#X obj 165 100 swap 1000; +#X obj 165 221 / 1; +#X text 165 43 freq; +#X obj 165 296 outlet; +#X text 164 315 counter increment; +#X obj 54 293 outlet; +#X text 48 319 metro period; +#X obj 165 166 t b a; +#X text 211 219 inverse number of updates per sweep; +#X text 54 43 update period; +#X obj 54 127 max 2; +#X connect 0 0 3 0; +#X connect 1 0 13 0; +#X connect 2 0 10 0; +#X connect 3 0 2 0; +#X connect 3 1 2 1; +#X connect 4 0 6 0; +#X connect 10 0 4 0; +#X connect 10 1 4 1; +#X connect 13 0 4 0; +#X connect 13 0 8 0; +#X restore 125 245 pd \$0-calc-increment; +#X obj 154 170 t b b; +#X text 412 198 [c_mphasor <freq> <update period>]; +#X text 404 33 phase (0-1); +#X obj 93 83 route on updates float; +#X floatatom 314 301 5 0 0 0 - - -; +#N canvas 105 5 620 333 \$0-wrap 0; +#X obj 75 88 int; +#X obj 43 114 -; +#X obj 43 62 t a a; +#X obj 43 194 +; +#X obj 43 136 t a a; +#X obj 75 161 < 0; +#X obj 43 36 inlet; +#X obj 43 221 t a a; +#X obj 75 249 outlet; +#X obj 43 275 outlet; +#X text 112 40 wraparound between 0 and +1 \, also for negative numbers +; +#X connect 0 0 1 1; +#X connect 1 0 4 0; +#X connect 2 0 1 0; +#X connect 2 1 0 0; +#X connect 3 0 7 0; +#X connect 4 0 3 0; +#X connect 4 1 5 0; +#X connect 5 0 3 1; +#X connect 6 0 2 0; +#X connect 7 0 9 0; +#X connect 7 1 8 0; +#X restore 93 348 pd \$0-wrap; +#X connect 0 0 15 0; +#X connect 2 0 10 0; +#X connect 4 0 5 0; +#X connect 5 0 17 0; +#X connect 6 0 5 1; +#X connect 7 0 11 1; +#X connect 8 0 11 0; +#X connect 9 0 12 0; +#X connect 10 0 5 0; +#X connect 11 0 10 1; +#X connect 11 1 6 1; +#X connect 11 1 16 0; +#X connect 12 0 8 0; +#X connect 12 1 7 0; +#X connect 15 0 10 0; +#X connect 15 1 8 0; +#X connect 15 2 7 0; +#X connect 17 0 3 0; +#X connect 17 1 6 0; diff --git a/l2ork_addons/rjlib/rj/c_multimetro-help.pd b/l2ork_addons/rjlib/rj/c_multimetro-help.pd new file mode 100644 index 000000000..a1111169d --- /dev/null +++ b/l2ork_addons/rjlib/rj/c_multimetro-help.pd @@ -0,0 +1,45 @@ +#N canvas 201 94 943 509 10; +#X obj 172 194 tgl 15 0 empty empty on/off 17 7 1 10 -262144 -1 -1 +0 1; +#X floatatom 172 309 5 0 0 0 - - -; +#X floatatom 237 221 5 0 0 2 length - -; +#X text 184 60 args: 1) pattern length; +#X text 236 131 2) pattern length; +#X text 234 152 3) (list of) periods \, will be cycled.; +#X floatatom 302 223 5 0 0 2 period - -; +#X text 228 76 2) single period; +#X obj 172 361 timer; +#X obj 172 384 list prepend; +#X obj 172 336 t b b a; +#X msg 172 437; +#X msg 172 410 set \$1 \$2; +#X text 369 209 also lists are possible; +#X msg 367 232 200 300 400 150; +#X text 502 229 == duration of beat0==200 \, duration of beat1=300 +\, duration of beat2=400 \, duration of beat3=150 and so on for beat([modulo +pattern length] modulo period list-length).; +#X msg 132 409 set; +#X text 366 60 or "set POS" message; +#X msg 97 219 set 3; +#X msg 183 230 bang; +#X msg 185 252 stop; +#X text 182 109 inlets: 1) 0/1 rsp bang/stop for start/stop; +#X obj 172 278 c_multimetro 16 125; +#X text 161 26 variable period metro with counter inside.; +#X obj 60 26 c_multimetro; +#X connect 0 0 22 0; +#X connect 1 0 10 0; +#X connect 2 0 22 1; +#X connect 6 0 22 2; +#X connect 8 0 9 0; +#X connect 9 0 12 0; +#X connect 10 0 8 0; +#X connect 10 1 8 1; +#X connect 10 2 9 1; +#X connect 12 0 11 0; +#X connect 14 0 22 2; +#X connect 16 0 11 0; +#X connect 18 0 22 0; +#X connect 19 0 22 0; +#X connect 20 0 22 0; +#X connect 22 0 1 0; diff --git a/l2ork_addons/rjlib/rj/c_multimetro.pd b/l2ork_addons/rjlib/rj/c_multimetro.pd new file mode 100644 index 000000000..9f2785aa5 --- /dev/null +++ b/l2ork_addons/rjlib/rj/c_multimetro.pd @@ -0,0 +1,55 @@ +#N canvas 365 298 539 494 10; +#X obj 192 296 list; +#X obj 361 53 inlet; +#X obj 391 211 list length; +#X obj 361 167 t a a; +#X obj 192 323 list split 1; +#X msg 232 352 \$1; +#X obj 271 251 f 0; +#X obj 299 251 + 1; +#X obj 271 300 mod 1; +#X obj 121 281 delay; +#X obj 192 221 t b b; +#X obj 370 402 outlet; +#X obj 192 169 select 1 0; +#X obj 52 53 inlet; +#X msg 236 220 stop; +#X obj 310 52 inlet; +#X obj 271 272 mod \$1; +#X obj 381 101 loadbang; +#X obj 381 133 f \$2; +#X msg 95 112 1; +#X obj 52 88 route set bang stop; +#X msg 138 111 0; +#X text 51 31 control; +#X text 303 32 length; +#X text 362 32 period(s); +#X connect 0 0 4 0; +#X connect 1 0 3 0; +#X connect 2 0 8 1; +#X connect 3 0 0 1; +#X connect 3 1 2 0; +#X connect 4 1 5 0; +#X connect 5 0 9 0; +#X connect 6 0 16 0; +#X connect 7 0 6 1; +#X connect 8 0 4 1; +#X connect 9 0 10 0; +#X connect 10 0 0 0; +#X connect 10 1 6 0; +#X connect 12 0 10 0; +#X connect 12 1 14 0; +#X connect 13 0 20 0; +#X connect 14 0 9 0; +#X connect 15 0 16 1; +#X connect 16 0 7 0; +#X connect 16 0 8 0; +#X connect 16 0 11 0; +#X connect 17 0 18 0; +#X connect 18 0 3 0; +#X connect 19 0 12 0; +#X connect 20 0 6 1; +#X connect 20 1 19 0; +#X connect 20 2 21 0; +#X connect 20 3 12 0; +#X connect 21 0 12 0; diff --git a/l2ork_addons/rjlib/rj/c_xfade-help.pd b/l2ork_addons/rjlib/rj/c_xfade-help.pd new file mode 100644 index 000000000..b264a4ac2 --- /dev/null +++ b/l2ork_addons/rjlib/rj/c_xfade-help.pd @@ -0,0 +1,31 @@ +#N canvas 386 259 738 465 10; +#X obj 232 201 hsl 128 15 0 1 0 0 empty empty 0-1 -2 -8 1 10 -262144 +-1 -1 0 1; +#X obj 229 252 pack 0 10; +#X obj 150 182 osc~ 440; +#X obj 173 232 noise~; +#X obj 151 374 soundoutput; +#X floatatom 229 230 5 0 0 0 - - -; +#X obj 151 313 c_xfade; +#X text 84 24 c_xfade; +#X text 110 52 Linear crossfader. 0 to last inlet gives left signal +\, 1 gives only right signal. Values in between get interpolated linearly. +; +#X text 109 111 A list of two or three numbers in last inlet can be +used to set interpolation time and delay - internally this is connected +to [vline~]; +#X obj 395 196 hsl 128 15 0 1 0 0 empty empty 0-1 -2 -8 1 10 -262144 +-1 -1 0 1; +#X floatatom 392 224 5 0 0 0 - - -; +#X obj 392 253 pack 0 200 500; +#X text 508 252 third number is predelay; +#X connect 0 0 5 0; +#X connect 1 0 6 2; +#X connect 2 0 6 0; +#X connect 3 0 6 1; +#X connect 5 0 1 0; +#X connect 6 0 4 0; +#X connect 6 0 4 1; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 12 0 6 2; diff --git a/l2ork_addons/rjlib/rj/c_xfade.pd b/l2ork_addons/rjlib/rj/c_xfade.pd new file mode 100644 index 000000000..2f93806a2 --- /dev/null +++ b/l2ork_addons/rjlib/rj/c_xfade.pd @@ -0,0 +1,23 @@ +#N canvas 230 196 783 283 10; +#X obj 76 87 inlet~; +#X obj 142 87 inlet~; +#X obj 77 198 outlet~; +#X obj 201 87 inlet; +#X obj 201 127 vline~; +#X obj 141 136 -~; +#X obj 141 156 *~; +#X text 371 150 (1-x)*a + x*b; +#X text 371 167 = a - x*a + x*b; +#X text 371 184 = a + x*(b - a); +#X text 366 119 x: fade factor (0-1); +#X text 366 90 a: sig from inlet~ 0; +#X text 339 50 Linear crossfade according to the following calculation: +; +#X text 367 104 b: sig from inlet~ 1; +#X connect 0 0 5 1; +#X connect 0 0 2 0; +#X connect 1 0 5 0; +#X connect 3 0 4 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 6 0 2 0; diff --git a/l2ork_addons/rjlib/rj/e.txt b/l2ork_addons/rjlib/rj/e.txt new file mode 100644 index 000000000..4c7d12286 --- /dev/null +++ b/l2ork_addons/rjlib/rj/e.txt @@ -0,0 +1,14 @@ +e_alias +e_chorus +e_chorusr +e_fbdelay +e_fbdelay2 +e_freqshift +e_pan +e_phaser +e_pingpong +e_pitchshift +e_reslop +e_reverb +e_softclip +e_vocoder diff --git a/l2ork_addons/rjlib/rj/e_alias-help.pd b/l2ork_addons/rjlib/rj/e_alias-help.pd new file mode 100644 index 000000000..521a80aab --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_alias-help.pd @@ -0,0 +1,30 @@ +#N canvas 0 0 709 451 10; +#X obj 162 189 osc~ 220; +#X obj 161 212 *~ 0.5; +#X floatatom 256 206 5 0 0 0 - - -; +#X obj 161 316 soundoutput; +#X obj 161 248 e_alias name 4; +#X msg 256 225 alias \$1; +#X obj 72 41 e_alias; +#X text 152 42 distort by reducing the sample rate to generate aliasing +; +#X text 145 85 Args: <name> <aliasing factor>; +#X text 147 117 Inlet0~: signal to distort; +#X text 154 135 Inlet1: alias <number>; +#X obj 303 310 tabwrite~ \$0-scope; +#N canvas 0 0 450 300 (subpatch) 0; +#X array \$0-scope 441 float 2; +#X coords 0 1 441 -1 200 140 1; +#X restore 446 188 graph; +#X obj 303 288 metro 100; +#X obj 303 269 tgl 15 0 empty empty scope 17 7 1 10 -262144 -1 -1 1 +1; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 2 0 5 0; +#X connect 4 0 3 0; +#X connect 4 0 3 1; +#X connect 4 0 11 0; +#X connect 5 0 4 1; +#X connect 13 0 11 0; +#X connect 14 0 13 0; diff --git a/l2ork_addons/rjlib/rj/e_alias.pd b/l2ork_addons/rjlib/rj/e_alias.pd new file mode 100644 index 000000000..91ea19975 --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_alias.pd @@ -0,0 +1,49 @@ +#N canvas 547 326 767 536 10; +#X obj 193 76 inlet~; +#X obj 192 491 outlet~; +#X obj 253 360 phasor~; +#X obj 194 389 samphold~; +#X obj 253 107 samplerate~; +#X obj 253 74 loadbang; +#X floatatom 305 452 10 0 0 0 - - -; +#X msg 325 73 bang; +#X obj 411 70 inlet; +#X obj 267 291 t b a; +#X obj 253 327 / 1; +#X obj 279 184 loadbang; +#X msg 267 259 1; +#X obj 267 236 moses 1; +#X obj 267 209 f \$2; +#X obj 467 71 rjloader e_alias-\$1 \$0; +#X obj 412 98 rjdispatch \$0 alias; +#X obj 267 164 r \$0-alias; +#X obj 412 119 rjdispatch \$0 freq; +#X obj 294 326 r \$0-freq; +#X obj 195 461 c_xfade; +#X msg 241 439 \$1 10; +#X obj 241 418 r \$0-dry; +#X obj 413 142 rjdispatch \$0 dry; +#X connect 0 0 3 0; +#X connect 0 0 20 1; +#X connect 2 0 3 1; +#X connect 3 0 20 0; +#X connect 4 0 10 0; +#X connect 5 0 4 0; +#X connect 7 0 4 0; +#X connect 8 0 16 0; +#X connect 9 0 10 0; +#X connect 9 1 10 1; +#X connect 10 0 6 0; +#X connect 10 0 2 0; +#X connect 11 0 14 0; +#X connect 12 0 9 0; +#X connect 13 0 12 0; +#X connect 13 1 9 0; +#X connect 14 0 13 0; +#X connect 16 0 18 0; +#X connect 17 0 14 0; +#X connect 18 0 23 0; +#X connect 19 0 2 0; +#X connect 20 0 1 0; +#X connect 21 0 20 2; +#X connect 22 0 21 0; diff --git a/l2ork_addons/rjlib/rj/e_chorus-help.pd b/l2ork_addons/rjlib/rj/e_chorus-help.pd new file mode 100644 index 000000000..75bd8740c --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_chorus-help.pd @@ -0,0 +1,60 @@ +#N canvas 406 231 594 419 10; +#X msg 242 248 help; +#X msg 296 187 mod \$1; +#X msg 230 186 freq \$1; +#X text 45 34 e_chorus; +#X text 63 62 a simple stereo chorus effect; +#X obj 296 164 / 100; +#X floatatom 296 144 5 0 0 2 mod - -; +#X obj 230 164 / 100; +#X floatatom 230 144 5 0 0 2 freq - -; +#X obj 115 297 soundoutput; +#X obj 114 248 e_chorus mychorus; +#X floatatom 115 144 5 0 0 2 pitch - -; +#N canvas 0 0 690 655 guitar 0; +#X obj 132 187 vline~; +#X obj 150 209 noise~; +#X obj 131 311 *~; +#X msg 132 162 0.8 10 \, 0 20 10; +#X msg 274 296 delayfreq \$1; +#X obj 274 255 mtof; +#X obj 132 77 inlet; +#X obj 130 426 outlet~; +#X obj 299 332 loadbang; +#X obj 150 238 bp~ 3000 7; +#X obj 164 266 bp~ 5107 10; +#X obj 132 99 t b a; +#X obj 130 397 e_fbdelay guitar 2000; +#X text 316 76 Karplus-Strong pluck; +#X msg 299 357 feedback 0.99999 \, lpfreq 3200; +#X connect 0 0 2 0; +#X connect 1 0 9 0; +#X connect 1 0 10 0; +#X connect 2 0 12 0; +#X connect 3 0 0 0; +#X connect 4 0 12 2; +#X connect 5 0 4 0; +#X connect 6 0 11 0; +#X connect 8 0 14 0; +#X connect 9 0 2 1; +#X connect 10 0 2 1; +#X connect 11 0 3 0; +#X connect 11 1 5 0; +#X connect 12 0 7 0; +#X connect 14 0 12 2; +#X restore 115 161 pd guitar; +#X msg 369 186 freq 0.8 \, mod 1.3; +#X obj 369 166 loadbang; +#X connect 0 0 10 1; +#X connect 1 0 10 1; +#X connect 2 0 10 1; +#X connect 5 0 1 0; +#X connect 6 0 5 0; +#X connect 7 0 2 0; +#X connect 8 0 7 0; +#X connect 10 0 9 0; +#X connect 10 1 9 1; +#X connect 11 0 12 0; +#X connect 12 0 10 0; +#X connect 13 0 10 1; +#X connect 14 0 13 0; diff --git a/l2ork_addons/rjlib/rj/e_chorus.pd b/l2ork_addons/rjlib/rj/e_chorus.pd new file mode 100644 index 000000000..58015c569 --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_chorus.pd @@ -0,0 +1,121 @@ +#N canvas 0 0 783 320 10; +#N canvas 376 147 756 534 engine 0; +#X obj 179 259 cos~; +#X obj 179 282 +~ 1; +#X obj 266 143 +~ 0.25; +#X obj 266 258 cos~; +#X obj 266 281 +~ 1; +#X obj 179 425 outlet~; +#X obj 266 426 outlet~; +#X obj 365 190 +~ 0.25; +#X obj 365 257 cos~; +#X obj 365 280 +~ 1; +#X obj 460 230 +~ 0.25; +#X obj 460 255 cos~; +#X obj 460 278 +~ 1; +#X obj 14 32 inlet~; +#X obj 535 284 line~; +#X obj 535 263 pack 0 50; +#X obj 460 339 *~; +#X obj 365 341 *~; +#X obj 266 342 *~; +#X obj 179 343 *~; +#X obj 180 94 line~; +#X obj 180 73 pack 0 50; +#X obj 179 124 phasor~; +#X obj 365 424 outlet~; +#X obj 460 421 outlet~; +#X text 609 238 modulation; +#X text 174 28 frequence; +#X obj 179 404 vd~ \$0-c; +#X obj 266 404 vd~ \$0-c; +#X obj 365 402 vd~ \$0-c; +#X obj 460 400 vd~ \$0-c; +#X obj 180 48 r \$0-freq; +#X obj 535 239 r \$0-mod; +#X obj 460 376 +~ 0; +#X obj 366 376 +~ 0; +#X obj 266 379 +~ 0; +#X obj 180 376 +~ 0; +#N canvas 314 253 450 300 sampledur 0; +#X obj 70 100 samplerate~; +#X obj 70 144 swap 1000; +#X obj 70 172 /; +#X obj 70 51 loadbang; +#X msg 82 77 bang; +#X obj 70 205 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 2 1; +#X connect 2 0 5 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X restore 546 343 pd sampledur; +#X obj 14 91 delwrite~ \$0-c 2000; +#X obj 14 63 *~ 0.5; +#X obj 525 198 loadbang; +#X obj 525 220 0.2; +#X connect 0 0 1 0; +#X connect 1 0 19 0; +#X connect 2 0 3 0; +#X connect 2 0 7 0; +#X connect 3 0 4 0; +#X connect 4 0 18 0; +#X connect 7 0 8 0; +#X connect 7 0 10 0; +#X connect 8 0 9 0; +#X connect 9 0 17 0; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 12 0 16 0; +#X connect 13 0 39 0; +#X connect 14 0 16 1; +#X connect 14 0 17 1; +#X connect 14 0 18 1; +#X connect 14 0 19 1; +#X connect 15 0 14 0; +#X connect 16 0 33 0; +#X connect 17 0 34 0; +#X connect 18 0 35 0; +#X connect 19 0 36 0; +#X connect 20 0 22 0; +#X connect 21 0 20 0; +#X connect 22 0 0 0; +#X connect 22 0 2 0; +#X connect 27 0 5 0; +#X connect 28 0 6 0; +#X connect 29 0 23 0; +#X connect 30 0 24 0; +#X connect 31 0 21 0; +#X connect 32 0 15 0; +#X connect 33 0 30 0; +#X connect 34 0 29 0; +#X connect 35 0 28 0; +#X connect 36 0 27 0; +#X connect 37 0 33 1; +#X connect 37 0 34 1; +#X connect 37 0 35 1; +#X connect 37 0 36 1; +#X connect 39 0 38 0; +#X connect 40 0 41 0; +#X connect 41 0 14 0; +#X restore 118 108 pd engine; +#X obj 118 83 inlet~; +#X obj 118 215 outlet~; +#X obj 177 215 outlet~; +#X obj 347 85 inlet; +#X obj 347 112 rjdispatch \$0 freq; +#X obj 347 134 rjdispatch \$0 mod; +#X obj 404 84 rjloader e_chorus-\$1 \$0; +#X text 120 37 a simple chorus; +#X obj 583 70 loadbang; +#X msg 583 95 freq 0.8 \, mod 1.8; +#X connect 0 0 2 0; +#X connect 0 1 3 0; +#X connect 0 2 2 0; +#X connect 0 3 3 0; +#X connect 1 0 0 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 9 0 10 0; +#X connect 10 0 5 0; diff --git a/l2ork_addons/rjlib/rj/e_chorusr-help.pd b/l2ork_addons/rjlib/rj/e_chorusr-help.pd new file mode 100644 index 000000000..2513986cb --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_chorusr-help.pd @@ -0,0 +1,62 @@ +#N canvas 343 144 621 479 10; +#X msg 257 266 help; +#X msg 308 204 mod \$1; +#X msg 242 203 freq \$1; +#X obj 308 181 / 100; +#X floatatom 308 161 5 0 0 2 mod - -; +#X obj 242 181 / 100; +#X floatatom 242 161 5 0 0 2 freq - -; +#X obj 120 314 soundoutput; +#X floatatom 120 161 5 0 0 2 pitch - -; +#N canvas 0 0 690 655 guitar 0; +#X obj 132 187 vline~; +#X obj 150 209 noise~; +#X obj 131 311 *~; +#X msg 132 162 0.8 10 \, 0 20 10; +#X msg 274 296 delayfreq \$1; +#X obj 274 255 mtof; +#X obj 132 77 inlet; +#X obj 130 426 outlet~; +#X obj 299 332 loadbang; +#X obj 150 238 bp~ 3000 7; +#X obj 164 266 bp~ 5107 10; +#X obj 132 99 t b a; +#X text 316 76 Karplus-Strong pluck; +#X msg 299 357 feedback 0.99999 \, lpfreq 3200; +#X obj 130 397 e_fbdelay guitar 2000; +#X connect 0 0 2 0; +#X connect 1 0 9 0; +#X connect 1 0 10 0; +#X connect 2 0 14 0; +#X connect 3 0 0 0; +#X connect 4 0 14 2; +#X connect 5 0 4 0; +#X connect 6 0 11 0; +#X connect 8 0 13 0; +#X connect 9 0 2 1; +#X connect 10 0 2 1; +#X connect 11 0 3 0; +#X connect 11 1 5 0; +#X connect 13 0 14 2; +#X connect 14 0 7 0; +#X restore 120 178 pd guitar; +#X msg 374 203 freq 0.8 \, mod 1.3; +#X obj 374 183 loadbang; +#X text 91 68 another simple stereo chorus. This is a Roland design +with delays driven by frequency dividers at 1 \, 1/2 \, 1/4 \, 1/8 +times the base chorus frequency instead of phase shifters.; +#X obj 119 265 e_chorusr mychorus; +#X text 67 46 e_chorusr; +#X connect 0 0 13 1; +#X connect 1 0 13 1; +#X connect 2 0 13 1; +#X connect 3 0 1 0; +#X connect 4 0 3 0; +#X connect 5 0 2 0; +#X connect 6 0 5 0; +#X connect 8 0 9 0; +#X connect 9 0 13 0; +#X connect 10 0 13 1; +#X connect 11 0 10 0; +#X connect 13 0 7 0; +#X connect 13 1 7 1; diff --git a/l2ork_addons/rjlib/rj/e_chorusr.pd b/l2ork_addons/rjlib/rj/e_chorusr.pd new file mode 100644 index 000000000..d5c3529e2 --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_chorusr.pd @@ -0,0 +1,131 @@ +#N canvas 0 0 879 443 10; +#N canvas 376 147 756 534 engine 0; +#X obj 179 259 cos~; +#X obj 179 282 +~ 1; +#X obj 266 258 cos~; +#X obj 266 281 +~ 1; +#X obj 179 425 outlet~; +#X obj 266 426 outlet~; +#X obj 365 257 cos~; +#X obj 365 280 +~ 1; +#X obj 460 255 cos~; +#X obj 460 278 +~ 1; +#X obj 14 32 inlet~; +#X obj 535 284 line~; +#X obj 535 263 pack 0 50; +#X obj 460 339 *~; +#X obj 365 341 *~; +#X obj 266 342 *~; +#X obj 179 343 *~; +#X obj 180 94 line~; +#X obj 180 73 pack 0 50; +#X obj 179 124 phasor~; +#X obj 365 424 outlet~; +#X obj 460 421 outlet~; +#X text 609 238 modulation; +#X obj 179 404 vd~ \$0-c; +#X obj 266 404 vd~ \$0-c; +#X obj 365 402 vd~ \$0-c; +#X obj 460 400 vd~ \$0-c; +#X obj 180 28 r \$0-freq; +#X obj 535 239 r \$0-mod; +#X obj 460 376 +~ 0; +#X obj 366 376 +~ 0; +#X obj 266 379 +~ 0; +#X obj 180 376 +~ 0; +#N canvas 314 253 450 300 sampledur 0; +#X obj 70 100 samplerate~; +#X obj 70 144 swap 1000; +#X obj 70 172 /; +#X obj 70 51 loadbang; +#X msg 82 77 bang; +#X obj 70 205 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 2 1; +#X connect 2 0 5 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X restore 546 343 pd sampledur; +#X obj 14 91 delwrite~ \$0-c 2000; +#X obj 14 63 *~ 0.5; +#X obj 525 198 loadbang; +#X obj 525 220 0.2; +#X obj 266 214 wrap~; +#X obj 364 218 wrap~; +#X obj 459 218 wrap~; +#X obj 180 51 / 8; +#X text 177 7 frequency; +#X obj 266 193 *~ 2; +#X obj 364 197 *~ 4; +#X obj 459 197 *~ 8; +#X connect 0 0 1 0; +#X connect 1 0 16 0; +#X connect 2 0 3 0; +#X connect 3 0 15 0; +#X connect 6 0 7 0; +#X connect 7 0 14 0; +#X connect 8 0 9 0; +#X connect 9 0 13 0; +#X connect 10 0 35 0; +#X connect 11 0 13 1; +#X connect 11 0 14 1; +#X connect 11 0 15 1; +#X connect 11 0 16 1; +#X connect 12 0 11 0; +#X connect 13 0 29 0; +#X connect 14 0 30 0; +#X connect 15 0 31 0; +#X connect 16 0 32 0; +#X connect 17 0 19 0; +#X connect 18 0 17 0; +#X connect 19 0 0 0; +#X connect 19 0 43 0; +#X connect 19 0 44 0; +#X connect 19 0 45 0; +#X connect 23 0 4 0; +#X connect 24 0 5 0; +#X connect 25 0 20 0; +#X connect 26 0 21 0; +#X connect 27 0 41 0; +#X connect 28 0 12 0; +#X connect 29 0 26 0; +#X connect 30 0 25 0; +#X connect 31 0 24 0; +#X connect 32 0 23 0; +#X connect 33 0 29 1; +#X connect 33 0 30 1; +#X connect 33 0 31 1; +#X connect 33 0 32 1; +#X connect 35 0 34 0; +#X connect 36 0 37 0; +#X connect 37 0 11 0; +#X connect 38 0 2 0; +#X connect 39 0 6 0; +#X connect 40 0 8 0; +#X connect 41 0 18 0; +#X connect 43 0 38 0; +#X connect 44 0 39 0; +#X connect 45 0 40 0; +#X restore 118 138 pd engine; +#X obj 118 113 inlet~; +#X obj 118 245 outlet~; +#X obj 177 245 outlet~; +#X obj 347 115 inlet; +#X obj 347 142 rjdispatch \$0 freq; +#X obj 347 164 rjdispatch \$0 mod; +#X obj 583 100 loadbang; +#X msg 583 125 freq 0.8 \, mod 1.8; +#X obj 404 114 rjloader e_rchorus-\$1 \$0; +#X text 108 20 another simple chorus. This is a Roland design with +delays driven by frequency dividers at 1 \, 1/2 \, 1/4 \, 1/8 times +the base chorus frequency instead of phase shifters.; +#X connect 0 0 2 0; +#X connect 0 1 3 0; +#X connect 0 2 2 0; +#X connect 0 3 3 0; +#X connect 1 0 0 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 7 0 8 0; +#X connect 8 0 5 0; diff --git a/l2ork_addons/rjlib/rj/e_fbdelay-help.pd b/l2ork_addons/rjlib/rj/e_fbdelay-help.pd new file mode 100644 index 000000000..b19fa4572 --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_fbdelay-help.pd @@ -0,0 +1,87 @@ +#N canvas 66 126 1037 545 10; +#X text 35 54 use as: e_fbdelay <NAME> <max delay time in ms>; +#X obj 132 187 vline~; +#X obj 150 209 noise~; +#X obj 131 231 *~; +#X obj 129 454 soundoutput; +#X obj 130 397 e_fbdelay mydelay 2000; +#X msg 281 337 feedback \$1; +#X obj 281 283 / 100; +#X obj 281 177 vsl 15 100 0 100 0 0 empty empty feedback 0 -9 1 10 +-262144 -1 -1 0 1; +#X obj 204 367 sig~ 0; +#X obj 132 134 bng 24 250 50 0 empty empty empty 17 7 0 10 -4034 -1 +-1; +#X msg 132 162 0.8 10 \, 0 20 10; +#X obj 557 177 vsl 15 100 0 2000 0 0 empty empty delay_time(ms) 0 -9 +1 10 -262144 -1 -1 0 1; +#X msg 557 327 delay \$1; +#X floatatom 564 286 8 0 0 0 - - -; +#X floatatom 298 307 5 0 0 0 - - -; +#X obj 656 146 vsl 15 128 0 127 0 0 empty empty delay_frequency 0 -9 +1 10 -262144 -1 -1 0 1; +#X msg 656 328 delayfreq \$1; +#X obj 656 287 mtof; +#X text 560 393 Delays set through last inlet will be added to the +delay of the audio delay inlet (second inlet); +#X floatatom 694 286 5 0 0 1 pitch - -; +#X obj 387 144 vsl 15 128 0 127 0 0 empty empty lowpass_cutoff_fr. +0 -9 1 10 -262144 -1 -1 0 1; +#X obj 387 285 mtof; +#X floatatom 401 308 8 0 0 0 - - -; +#X msg 387 336 lpfreq \$1; +#X obj 656 359 s \$0-trigger; +#X obj 132 84 r \$0-trigger; +#X obj 132 108 bang; +#X text 685 181 sets delaytime as a frequency value; +#X text 35 39 feedback delay line with lowpass filtered feedback path. +; +#X text 25 13 e_fbdelay; +#X obj 204 253 vsl 15 100 0 2000 0 0 empty empty delay_time(ms) -10 +-9 1 10 -262144 -1 -1 0 1; +#X floatatom 672 310 8 0 0 1 freq - -; +#X obj 321 402 hsl 50 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X floatatom 318 422 5 0 0 0 - - -; +#X msg 318 439 dry \$1; +#X text 319 459 default is dry=0 i.e. fully wet; +#X msg 478 324 input \$1; +#X obj 478 279 / 100; +#X obj 478 173 vsl 15 100 0 100 0 0 empty empty inputlevel 0 -9 1 10 +-262144 -1 -1 0 1; +#X floatatom 495 303 5 0 0 0 - - -; +#X connect 1 0 3 0; +#X connect 2 0 3 1; +#X connect 3 0 5 0; +#X connect 5 0 4 0; +#X connect 5 0 4 1; +#X connect 6 0 5 2; +#X connect 7 0 6 0; +#X connect 7 0 15 0; +#X connect 8 0 7 0; +#X connect 9 0 5 1; +#X connect 10 0 11 0; +#X connect 11 0 1 0; +#X connect 12 0 13 0; +#X connect 12 0 14 0; +#X connect 13 0 5 2; +#X connect 16 0 18 0; +#X connect 16 0 20 0; +#X connect 17 0 5 2; +#X connect 17 0 25 0; +#X connect 18 0 17 0; +#X connect 18 0 32 0; +#X connect 21 0 22 0; +#X connect 22 0 24 0; +#X connect 22 0 23 0; +#X connect 24 0 5 2; +#X connect 26 0 27 0; +#X connect 27 0 10 0; +#X connect 31 0 9 0; +#X connect 33 0 34 0; +#X connect 34 0 35 0; +#X connect 35 0 5 2; +#X connect 37 0 5 2; +#X connect 38 0 40 0; +#X connect 38 0 37 0; +#X connect 39 0 38 0; diff --git a/l2ork_addons/rjlib/rj/e_fbdelay.pd b/l2ork_addons/rjlib/rj/e_fbdelay.pd new file mode 100644 index 000000000..3bc6aa833 --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_fbdelay.pd @@ -0,0 +1,85 @@ +#N canvas 360 180 852 486 10; +#N canvas 371 208 987 586 del 0; +#X obj 164 87 inlet~; +#X obj 484 100 block~ 16; +#X obj 290 86 inlet~; +#X obj 291 117 vd~ \$0-del1; +#X obj 399 86 inlet; +#X obj 190 194 outlet~; +#X obj 583 82 inlet; +#X msg 411 291 0.998849; +#X obj 290 186 lop~ 10000; +#X obj 173 405 delwrite~ \$0-del1 \$2; +#X obj 290 148 *~ 0; +#X obj 399 123 clip -1 1; +#X obj 634 83 inlet; +#X obj 172 343 *~; +#X obj 190 314 line~; +#X msg 190 273 1; +#X obj 191 253 loadbang; +#X msg 190 294 \$1 20; +#X connect 0 0 5 0; +#X connect 0 0 13 0; +#X connect 2 0 3 0; +#X connect 3 0 10 0; +#X connect 4 0 11 0; +#X connect 6 0 8 1; +#X connect 8 0 9 0; +#X connect 10 0 8 0; +#X connect 10 0 5 0; +#X connect 11 0 10 1; +#X connect 12 0 17 0; +#X connect 13 0 9 0; +#X connect 14 0 13 1; +#X connect 15 0 17 0; +#X connect 16 0 15 0; +#X connect 17 0 14 0; +#X restore 118 183 pd del; +#X obj 117 40 inlet~; +#X obj 132 60 inlet~; +#X obj 118 281 outlet~; +#X obj 542 92 rjdispatch \$0 feedback; +#X obj 542 113 rjdispatch \$0 lpfreq; +#X obj 593 66 rjloader e_fbdelay-\$1 \$0; +#X obj 542 66 inlet; +#X obj 210 131 r \$0-feedback; +#X obj 315 132 r \$0-lpfreq; +#X obj 542 136 rjdispatch \$0 delay; +#X obj 391 286 r \$0-delayfreq; +#X obj 542 158 rjdispatch \$0 delayfreq; +#X obj 391 315 swap 1000; +#X obj 391 345 /; +#X text 474 314 delay time can be set as frequency as well.; +#X obj 208 47 r \$0-delay; +#X obj 391 374 s \$0-delay; +#X obj 208 104 line~; +#X msg 208 81 \$1 10; +#X obj 119 259 c_xfade; +#X msg 165 237 \$1 10; +#X obj 165 216 r \$0-dry; +#X obj 542 180 rjdispatch \$0 dry; +#X obj 315 158 r \$0-input; +#X obj 542 204 rjdispatch \$0 input; +#X connect 0 0 20 0; +#X connect 1 0 0 0; +#X connect 1 0 20 1; +#X connect 2 0 0 1; +#X connect 4 0 5 0; +#X connect 5 0 10 0; +#X connect 7 0 4 0; +#X connect 8 0 0 2; +#X connect 9 0 0 3; +#X connect 10 0 12 0; +#X connect 11 0 13 0; +#X connect 12 0 23 0; +#X connect 13 0 14 0; +#X connect 13 1 14 1; +#X connect 14 0 17 0; +#X connect 16 0 19 0; +#X connect 18 0 0 1; +#X connect 19 0 18 0; +#X connect 20 0 3 0; +#X connect 21 0 20 2; +#X connect 22 0 21 0; +#X connect 23 0 25 0; +#X connect 24 0 0 4; diff --git a/l2ork_addons/rjlib/rj/e_fbdelay2.pd b/l2ork_addons/rjlib/rj/e_fbdelay2.pd new file mode 100644 index 000000000..d32f81c5a --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_fbdelay2.pd @@ -0,0 +1,17 @@ +#N canvas 0 22 450 300 10; +#X obj 73 59 inlet~; +#X obj 131 59 inlet~; +#X obj 201 61 inlet~; +#X obj 262 66 inlet; +#X obj 35 199 outlet~; +#X obj 189 194 outlet~; +#X obj 36 130 rj/e_fbdelay \$1-1 \$2; +#X obj 190 129 rj/e_fbdelay \$1-2 \$2; +#X connect 0 0 6 0; +#X connect 1 0 7 0; +#X connect 2 0 7 1; +#X connect 2 0 6 1; +#X connect 3 0 7 2; +#X connect 3 0 6 2; +#X connect 6 0 4 0; +#X connect 7 0 5 0; diff --git a/l2ork_addons/rjlib/rj/e_freqshift-help.pd b/l2ork_addons/rjlib/rj/e_freqshift-help.pd new file mode 100644 index 000000000..8b43d07ab --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_freqshift-help.pd @@ -0,0 +1,22 @@ +#N canvas 196 66 492 362 10; +#X obj 85 144 osc~ 220; +#X floatatom 197 140 5 0 0 0 - - -; +#X obj 84 214 *~ 0.1; +#X floatatom 84 123 5 0 0 0 - - -; +#X obj 68 254 soundoutput; +#X obj 84 182 rj/e_freqshift; +#X msg 254 155 freq \$1; +#X floatatom 255 134 5 0 0 0 - - -; +#X text 29 25 e_freqshift: shift all frequencies by a certain amount +; +#X text 30 53 This effect distroys the harmonic structure of a tone +\, if you want to keep that use pitchshift.; +#X text 252 113 shift amount in Hz; +#X connect 0 0 5 0; +#X connect 1 0 5 1; +#X connect 2 0 4 0; +#X connect 2 0 4 1; +#X connect 3 0 0 0; +#X connect 5 0 2 0; +#X connect 6 0 5 1; +#X connect 7 0 6 0; diff --git a/l2ork_addons/rjlib/rj/e_freqshift.pd b/l2ork_addons/rjlib/rj/e_freqshift.pd new file mode 100644 index 000000000..bebcfc398 --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_freqshift.pd @@ -0,0 +1,52 @@ +#N canvas 632 156 696 455 10; +#X obj 131 103 phasor~; +#X obj 131 156 cos~; +#X obj 177 154 cos~; +#X obj 44 56 inlet~; +#X obj 113 207 *~; +#X obj 45 257 outlet~; +#X obj 206 55 inlet; +#X obj 45 205 *~; +#N canvas 0 22 588 330 hilbert 0; +#X obj 105 92 biquad~ 0.83774 -0.06338 0.06338 -0.83774 1; +#X obj 105 66 biquad~ 1.94632 -0.94657 0.94657 -1.94632 1; +#X obj 86 149 biquad~ -0.02569 0.260502 -0.260502 0.02569 1; +#X obj 86 175 biquad~ 1.8685 -0.870686 0.870686 -1.8685 1; +#X obj 86 39 inlet~; +#X obj 105 121 outlet~; +#X obj 86 202 outlet~; +#X obj 502 39 inlet; +#X text 461 13 bang to clear; +#X text 80 16 signal in; +#X msg 502 112 clear; +#X connect 0 0 5 0; +#X connect 1 0 0 0; +#X connect 2 0 3 0; +#X connect 3 0 6 0; +#X connect 4 0 1 0; +#X connect 4 0 2 0; +#X connect 7 0 10 0; +#X connect 10 0 1 0; +#X connect 10 0 0 0; +#X connect 10 0 2 0; +#X connect 10 0 3 0; +#X restore 44 128 pd hilbert; +#X obj 177 134 +~ 0.25; +#X obj 294 74 rjloader e_freqshift-\$1 \$0; +#X obj 206 75 route float; +#X obj 132 54 r \$0-freq; +#X obj 280 101 rjdispatch \$0 freq; +#X connect 0 0 1 0; +#X connect 0 0 9 0; +#X connect 1 0 7 1; +#X connect 2 0 4 1; +#X connect 3 0 8 0; +#X connect 4 0 5 0; +#X connect 6 0 11 0; +#X connect 7 0 5 0; +#X connect 8 0 7 0; +#X connect 8 1 4 0; +#X connect 9 0 2 0; +#X connect 11 0 0 0; +#X connect 11 1 13 0; +#X connect 12 0 0 0; diff --git a/l2ork_addons/rjlib/rj/e_pan-help.pd b/l2ork_addons/rjlib/rj/e_pan-help.pd new file mode 100644 index 000000000..aaca3c9fc --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_pan-help.pd @@ -0,0 +1,25 @@ +#N canvas 365 203 597 514 10; +#X obj 116 245 noise~; +#X floatatom 171 275 8 0 0 0 - - -; +#X obj 171 245 / 127; +#X obj 174 220 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 6600 1; +#X text 177 202 L < < < M > > > R; +#X text 260 238 controller value; +#X obj 115 275 *~ 0.3; +#X obj 115 343 soundoutput; +#X obj 115 305 e_pan; +#X text 91 23 Constant power panner (cosine law); +#X text 64 110 Inlets: 1) signal to pan; +#X text 121 132 2) panning position (0 = left \, 1 = right). Default +is center (0.5); +#X obj 39 23 e_pan; +#X text 65 63 Argument: panning position (0 = left \, 1 = right). Default +with empty argument is center (i.e. 0.5); +#X connect 0 0 6 0; +#X connect 1 0 8 1; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 6 0 8 0; +#X connect 8 0 7 0; +#X connect 8 1 7 1; diff --git a/l2ork_addons/rjlib/rj/e_pan.pd b/l2ork_addons/rjlib/rj/e_pan.pd new file mode 100644 index 000000000..cc618d7a4 --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_pan.pd @@ -0,0 +1,54 @@ +#N canvas 405 232 567 432 10; +#X text 190 183 * ~M_PI/2; +#X obj 117 175 * 1.5708; +#X obj 39 262 *~ 0.7; +#X obj 120 262 *~ 0.7; +#X obj 117 60 inlet; +#X obj 38 62 inlet~; +#X obj 39 293 outlet~; +#X obj 120 293 outlet~; +#X obj 76 240 cos; +#X obj 157 241 sin; +#X msg 168 132 0.5; +#X obj 201 133 f \$1; +#N canvas 0 0 715 450 check-arg 0; +#X obj 179 184 makefilename $%d-EMPTY; +#X obj 52 185 symbol \$1-EMPTY; +#X msg 69 156 bang; +#X obj 52 217 select DUMMY; +#X obj 52 39 loadbang; +#X obj 52 62 t b b; +#X obj 179 157 1; +#X obj 52 294 outlet; +#X text 182 85 Using an idiom by IOhannes; +#X msg 133 250 1; +#X msg 52 246 0; +#X text 182 247 Output 0 if no \$1 argument present \, and 1 if \$1 +is present even if it's 0!; +#X connect 0 0 3 1; +#X connect 1 0 3 0; +#X connect 2 0 1 0; +#X connect 3 0 10 0; +#X connect 3 1 9 0; +#X connect 4 0 5 0; +#X connect 5 0 1 0; +#X connect 5 1 6 0; +#X connect 6 0 0 0; +#X connect 9 0 7 0; +#X connect 10 0 7 0; +#X restore 168 59 pd check-arg; +#X obj 168 85 select 0 1; +#X connect 1 0 8 0; +#X connect 1 0 9 0; +#X connect 2 0 6 0; +#X connect 3 0 7 0; +#X connect 4 0 1 0; +#X connect 5 0 2 0; +#X connect 5 0 3 0; +#X connect 8 0 2 1; +#X connect 9 0 3 1; +#X connect 10 0 1 0; +#X connect 11 0 1 0; +#X connect 12 0 13 0; +#X connect 13 0 10 0; +#X connect 13 1 11 0; diff --git a/l2ork_addons/rjlib/rj/e_phaser-help.pd b/l2ork_addons/rjlib/rj/e_phaser-help.pd new file mode 100644 index 000000000..8f0f007d5 --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_phaser-help.pd @@ -0,0 +1,72 @@ +#N canvas 406 84 718 570 10; +#N canvas 0 0 660 424 chord 0; +#X obj 92 97 -~ 0.5; +#X obj 92 146 clip~ -0.5 0.5; +#X obj 92 169 cos~; +#X obj 91 252 hip~ 5; +#X obj 91 315 outlet~; +#X obj 92 122 *~ 3; +#X obj 92 74 phasor~ 220; +#X obj 221 97 -~ 0.5; +#X obj 221 146 clip~ -0.5 0.5; +#X obj 221 169 cos~; +#X obj 221 122 *~ 3; +#X obj 356 100 -~ 0.5; +#X obj 356 149 clip~ -0.5 0.5; +#X obj 356 172 cos~; +#X obj 356 125 *~ 3; +#X obj 221 74 phasor~ 251; +#X obj 356 77 phasor~ 281; +#X text 147 32 test sound for phaser; +#X obj 91 285 *~ 0.2; +#X msg 430 26 0; +#X connect 0 0 5 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 18 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 10 0; +#X connect 8 0 9 0; +#X connect 9 0 3 0; +#X connect 10 0 8 0; +#X connect 11 0 14 0; +#X connect 12 0 13 0; +#X connect 13 0 3 0; +#X connect 14 0 12 0; +#X connect 15 0 7 0; +#X connect 16 0 11 0; +#X connect 18 0 4 0; +#X connect 19 0 16 1; +#X connect 19 0 15 1; +#X connect 19 0 6 1; +#X restore 119 105 pd chord; +#X obj 119 350 soundoutput; +#X msg 199 145 freq \$1; +#X obj 199 123 / 100; +#X obj 202 103 hsl 128 15 0 127 0 0 empty empty frequency -2 -8 1 10 +-262144 -1 -1 0 1; +#X msg 342 145 freq \$1; +#X obj 342 123 / 100; +#X obj 345 103 hsl 128 15 0 127 0 0 empty empty frequency -2 -8 1 10 +-262144 -1 -1 0 1; +#X obj 390 199 / 100; +#X obj 393 179 hsl 128 15 0 127 0 0 empty empty depth -2 -8 1 10 -262144 +-1 -1 0 1; +#X msg 390 221 depth \$1; +#X obj 118 288 e_phaser ph0; +#X obj 261 289 e_phaser ph1; +#X connect 0 0 11 0; +#X connect 0 0 12 0; +#X connect 2 0 11 1; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 5 0 12 1; +#X connect 6 0 5 0; +#X connect 7 0 6 0; +#X connect 8 0 10 0; +#X connect 9 0 8 0; +#X connect 10 0 11 1; +#X connect 10 0 12 1; +#X connect 11 0 1 0; +#X connect 12 0 1 1; diff --git a/l2ork_addons/rjlib/rj/e_phaser.pd b/l2ork_addons/rjlib/rj/e_phaser.pd new file mode 100644 index 000000000..557f36c1c --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_phaser.pd @@ -0,0 +1,70 @@ +#N canvas 270 214 868 518 10; +#X obj 74 38 inlet~; +#X obj 414 28 inlet; +#X obj 96 127 rpole~; +#X obj 96 102 rzero_rev~; +#X obj 96 176 rpole~; +#X obj 96 151 rzero_rev~; +#X obj 96 224 rpole~; +#X obj 96 199 rzero_rev~; +#X obj 96 273 rpole~; +#X obj 96 248 rzero_rev~; +#X obj 73 303 +~; +#X obj 72 331 outlet~; +#X obj 528 30 rjloader e_phaser-\$1 \$0; +#X obj 414 62 rjdispatch \$0 freq; +#X obj 403 180 r \$0-freq; +#X obj 403 211 phasor~ 0.3; +#X text 339 129 replacement for: expr~ 1 - 0.03 - 0.6*abs($v1-0.5)*abs($v1-0.5) +; +#X obj 345 211 sig~ 1; +#X obj 345 237 -~; +#X obj 346 281 min~; +#X floatatom 484 178 5 0 0 0 - - -; +#X obj 346 306 *~; +#X obj 270 360 -~; +#X obj 271 330 sig~ 0.97; +#X obj 414 84 rjdispatch \$0 depth; +#X obj 406 300 line~; +#X obj 489 250 loadbang; +#X obj 489 271 f 0.6; +#X obj 346 333 *~; +#X obj 406 245 r \$0-depth; +#X obj 406 271 pack 0 10; +#X connect 0 0 3 0; +#X connect 0 0 10 0; +#X connect 1 0 13 0; +#X connect 2 0 5 0; +#X connect 3 0 2 0; +#X connect 4 0 7 0; +#X connect 5 0 4 0; +#X connect 6 0 9 0; +#X connect 7 0 6 0; +#X connect 8 0 10 1; +#X connect 9 0 8 0; +#X connect 10 0 11 0; +#X connect 13 0 24 0; +#X connect 14 0 15 0; +#X connect 15 0 19 1; +#X connect 15 0 18 1; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 21 0; +#X connect 19 0 21 1; +#X connect 20 0 15 0; +#X connect 21 0 28 0; +#X connect 22 0 3 1; +#X connect 22 0 2 1; +#X connect 22 0 5 1; +#X connect 22 0 4 1; +#X connect 22 0 7 1; +#X connect 22 0 6 1; +#X connect 22 0 9 1; +#X connect 22 0 8 1; +#X connect 23 0 22 0; +#X connect 25 0 28 1; +#X connect 26 0 27 0; +#X connect 27 0 25 0; +#X connect 28 0 22 1; +#X connect 29 0 30 0; +#X connect 30 0 25 0; diff --git a/l2ork_addons/rjlib/rj/e_pingpong-help.pd b/l2ork_addons/rjlib/rj/e_pingpong-help.pd new file mode 100644 index 000000000..07c3f4382 --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_pingpong-help.pd @@ -0,0 +1,93 @@ +#N canvas 66 126 1095 623 10; +#X obj 132 237 vline~; +#X obj 150 259 noise~; +#X obj 131 281 *~; +#X obj 129 504 soundoutput; +#X obj 281 333 / 100; +#X obj 281 227 vsl 15 100 0 100 0 0 empty empty x_feedback_1+2 0 -9 +1 10 -262144 -1 -1 9400 1; +#X obj 204 417 sig~ 0; +#X obj 132 184 bng 24 250 50 0 empty empty empty 17 7 0 10 -4034 -1 +-1; +#X msg 132 212 0.8 10 \, 0 20 10; +#X obj 562 205 vsl 15 100 0 2000 0 0 empty empty delay_time2_(ms) 0 +-9 1 10 -262144 -1 -1 3100 1; +#X floatatom 569 310 8 0 0 0 - - -; +#X floatatom 298 357 5 0 0 0 - - -; +#X obj 661 203 vsl 15 128 0 127 0 0 empty empty delay_frequency_1+2 +0 -9 1 10 -262144 -1 -1 2100 1; +#X obj 661 344 mtof; +#X text 553 578 Delays set through last inlet will be added to the +delay of the audio delay inlet (second inlet); +#X floatatom 699 343 5 0 0 1 pitch - -; +#X obj 387 194 vsl 15 128 0 127 0 0 empty empty lowpass_cutoff_fr._1+2 +0 -9 1 10 -262144 -1 -1 7000 1; +#X obj 387 335 mtof; +#X floatatom 401 358 8 0 0 0 - - -; +#X obj 661 416 s \$0-trigger; +#X obj 132 134 r \$0-trigger; +#X obj 132 158 bang; +#X text 657 164 sets delaytime as a frequency value; +#X obj 204 303 vsl 15 100 0 2000 0 0 empty empty delay_time(ms) -10 +-9 1 10 -262144 -1 -1 0 1; +#X floatatom 677 367 8 0 0 1 freq - -; +#X obj 130 447 e_pingpong myping 2000; +#X msg 661 385 delayfreq1 \$1 \, delayfreq2 \$1; +#X obj 487 205 vsl 15 100 0 2000 0 0 empty empty delay_time1 0 -9 1 +10 -262144 -1 -1 1100 1; +#X floatatom 494 314 8 0 0 0 - - -; +#X msg 487 355 delay1 \$1; +#X msg 562 354 delay2 \$1; +#X msg 387 386 lpfreq1 \$1 \, lpfreq2 \$1; +#X obj 888 334 / 100; +#X obj 888 228 vsl 15 100 0 100 0 0 empty empty direct_feedback_1+2 +0 -9 1 10 -262144 -1 -1 0 1; +#X floatatom 905 358 5 0 0 0 - - -; +#X msg 281 415 x-feedback1 \$1 \, x-feedback2 \$1; +#X msg 888 396 feedback1 \$1 \, feedback2 \$1; +#X text 25 13 e_pingpong; +#X text 35 39 pingpong feedback delay line with lowpass filtered feedback +path.; +#X text 41 81 use as: e_pingpong <NAME> <max delay time in ms>; +#X text 561 30 WARNING: For stable operation the sum of direct feedback +and cross-feedback on each channel must not be greater than 1; +#X obj 167 286 *~; +#X obj 199 258 osc~ 880; +#X connect 0 0 2 0; +#X connect 0 0 41 0; +#X connect 1 0 2 1; +#X connect 2 0 25 0; +#X connect 4 0 35 0; +#X connect 4 0 11 0; +#X connect 5 0 4 0; +#X connect 6 0 25 2; +#X connect 7 0 8 0; +#X connect 8 0 0 0; +#X connect 9 0 30 0; +#X connect 9 0 10 0; +#X connect 12 0 13 0; +#X connect 12 0 15 0; +#X connect 13 0 26 0; +#X connect 13 0 24 0; +#X connect 16 0 17 0; +#X connect 17 0 31 0; +#X connect 17 0 18 0; +#X connect 20 0 21 0; +#X connect 21 0 7 0; +#X connect 23 0 6 0; +#X connect 25 0 3 0; +#X connect 25 1 3 1; +#X connect 26 0 19 0; +#X connect 26 0 25 4; +#X connect 27 0 29 0; +#X connect 27 0 28 0; +#X connect 29 0 25 4; +#X connect 30 0 25 4; +#X connect 31 0 25 4; +#X connect 32 0 36 0; +#X connect 32 0 34 0; +#X connect 33 0 32 0; +#X connect 35 0 25 4; +#X connect 36 0 25 4; +#X connect 41 0 25 1; +#X connect 42 0 41 1; diff --git a/l2ork_addons/rjlib/rj/e_pingpong.pd b/l2ork_addons/rjlib/rj/e_pingpong.pd new file mode 100644 index 000000000..41d834d0a --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_pingpong.pd @@ -0,0 +1,127 @@ +#N canvas 216 405 817 377 10; +#X obj 117 32 inlet~; +#X obj 195 33 inlet~; +#X obj 118 241 outlet~; +#X obj 512 54 inlet; +#X obj 213 142 line~; +#X msg 213 119 \$1 10; +#X obj 512 172 rjdispatch \$0 lpfreq1; +#X obj 512 195 rjdispatch \$0 delay1; +#X obj 512 217 rjdispatch \$0 delayfreq1; +#X obj 512 241 rjdispatch \$0 lpfreq2; +#X obj 512 264 rjdispatch \$0 delay2; +#X obj 512 286 rjdispatch \$0 delayfreq2; +#X obj 213 85 r \$0-delay1; +#X obj 361 142 line~; +#X msg 361 119 \$1 10; +#X obj 361 85 r \$0-delay2; +#X obj 346 33 inlet~; +#X obj 271 32 inlet~; +#N canvas 0 0 1057 597 two_delaylines_cross_connected 0; +#X obj 57 84 inlet~; +#X obj 860 45 block~ 16; +#X obj 503 83 inlet~; +#X obj 504 114 vd~ \$0-del1; +#X obj 94 338 outlet~; +#X obj 503 163 lop~ 10000; +#X obj 57 458 delwrite~ \$0-del1 \$2; +#X obj 780 90 inlet~; +#X obj 781 121 vd~ \$0-del2; +#X obj 307 458 delwrite~ \$0-del2 \$2; +#X obj 339 334 outlet~; +#X obj 307 86 inlet~; +#X obj 583 163 r \$0-lpfreq1; +#X obj 859 164 r \$0-lpfreq2; +#X obj 781 164 lop~ 10000; +#X obj 504 229 *~ 0; +#X obj 529 208 clip -1 1; +#X obj 628 227 *~ 0; +#X obj 653 206 clip -1 1; +#X obj 903 239 *~ 0; +#X obj 928 218 clip -1 1; +#X obj 782 238 *~ 0; +#X obj 807 217 clip -1 1; +#X obj 781 144 clip~ -1 1; +#X obj 504 138 clip~ -1 1; +#X obj 529 187 r \$0-feedback1; +#X obj 653 185 r \$0-x-feedback1; +#X obj 807 196 r \$0-x-feedback2; +#X obj 928 197 r \$0-feedback2; +#X connect 0 0 6 0; +#X connect 0 0 4 0; +#X connect 2 0 3 0; +#X connect 3 0 24 0; +#X connect 5 0 15 0; +#X connect 5 0 17 0; +#X connect 7 0 8 0; +#X connect 8 0 23 0; +#X connect 11 0 9 0; +#X connect 11 0 10 0; +#X connect 12 0 5 1; +#X connect 13 0 14 1; +#X connect 14 0 19 0; +#X connect 14 0 21 0; +#X connect 15 0 6 0; +#X connect 16 0 15 1; +#X connect 17 0 9 0; +#X connect 17 0 10 0; +#X connect 18 0 17 1; +#X connect 19 0 9 0; +#X connect 20 0 19 1; +#X connect 21 0 6 0; +#X connect 21 0 4 0; +#X connect 22 0 21 1; +#X connect 23 0 14 0; +#X connect 24 0 5 0; +#X connect 25 0 16 0; +#X connect 26 0 18 0; +#X connect 27 0 22 0; +#X connect 28 0 20 0; +#X restore 118 183 pd two_delaylines_cross_connected; +#N canvas 0 0 450 300 conversions 0; +#X obj 57 72 swap 1000; +#X obj 57 102 /; +#X text 140 71 delay time can be set as frequency as well.; +#X obj 57 131 s \$0-delay1; +#X obj 58 183 swap 1000; +#X obj 58 213 /; +#X obj 58 154 r \$0-delayfreq2; +#X obj 58 242 s \$0-delay2; +#X obj 57 43 r \$0-delayfreq1; +#X connect 0 0 1 0; +#X connect 0 1 1 1; +#X connect 1 0 3 0; +#X connect 4 0 5 0; +#X connect 4 1 5 1; +#X connect 5 0 7 0; +#X connect 6 0 4 0; +#X connect 8 0 0 0; +#X restore 512 329 pd conversions; +#X obj 346 247 outlet~; +#X obj 563 55 rjloader e_pingpong-\$1 \$0; +#X obj 512 81 rjdispatch \$0 feedback1; +#X obj 512 105 rjdispatch \$0 feedback2; +#X obj 512 125 rjdispatch \$0 x-feedback1; +#X obj 512 149 rjdispatch \$0 x-feedback2; +#X connect 0 0 18 0; +#X connect 1 0 18 1; +#X connect 3 0 22 0; +#X connect 4 0 18 2; +#X connect 5 0 4 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 12 0 5 0; +#X connect 13 0 18 3; +#X connect 14 0 13 0; +#X connect 15 0 14 0; +#X connect 16 0 18 3; +#X connect 17 0 18 2; +#X connect 18 0 2 0; +#X connect 18 1 20 0; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 24 0 25 0; +#X connect 25 0 6 0; diff --git a/l2ork_addons/rjlib/rj/e_pitchshift-help.pd b/l2ork_addons/rjlib/rj/e_pitchshift-help.pd new file mode 100644 index 000000000..c732c7470 --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_pitchshift-help.pd @@ -0,0 +1,15 @@ +#N canvas 579 259 581 342 10; +#X obj 77 120 rj/e_pitchshift; +#X obj 77 91 osc~ 220; +#X obj 76 150 *~ 0.1; +#X msg 178 96 pitch \$1; +#X floatatom 179 75 5 0 0 0 - - -; +#X obj 60 190 soundoutput; +#X text 221 75 desired pitch shift in semitones; +#X text 29 18 pitchshift: shift pitch of incoming signal; +#X connect 0 0 2 0; +#X connect 1 0 0 0; +#X connect 2 0 5 0; +#X connect 2 0 5 1; +#X connect 3 0 0 1; +#X connect 4 0 3 0; diff --git a/l2ork_addons/rjlib/rj/e_pitchshift.pd b/l2ork_addons/rjlib/rj/e_pitchshift.pd new file mode 100644 index 000000000..3740591d7 --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_pitchshift.pd @@ -0,0 +1,131 @@ +#N canvas 300 369 721 432 10; +#N canvas 575 364 759 580 guts 1; +#X floatatom 230 85 0 0 0 0 - - -; +#X obj 286 395 *~; +#X obj 383 272 line~; +#X floatatom 340 86 0 0 0 0 - - -; +#X text 68 9 PITCH SHIFTER; +#X obj 383 246 pack 0 200; +#X obj 223 139 exp; +#X floatatom 223 160 6 0 0 0 - - -; +#X obj 224 238 /; +#X obj 276 183 * 0.001; +#X obj 518 361 line~; +#X obj 518 336 pack 0 200; +#X floatatom 518 285 0 0 0 0 - - -; +#X obj 286 421 +~; +#X obj 223 447 cos~; +#X obj 223 474 *~; +#X obj 291 522 +~; +#X obj 382 367 wrap~; +#X obj 445 400 *~; +#X obj 445 433 +~; +#X obj 382 460 cos~; +#X obj 382 481 *~; +#X obj 423 38 loadbang; +#X obj 277 204 t b f; +#X floatatom 224 259 6 0 0 0 - - -; +#X obj 382 346 +~ 0.5; +#X obj 223 395 -~ 0.5; +#X obj 223 421 *~ 0.5; +#X obj 382 399 -~ 0.5; +#X obj 382 432 *~ 0.5; +#X obj 223 181 - 1; +#X obj 230 115 * 0.05776; +#X obj 224 201 * -1; +#X text 262 141 speed; +#X text 262 148 change; +#X text 377 83 <--window (msec); +#X text 259 231 tape head; +#X obj 223 315 phasor~; +#X obj 518 312 max 1.5; +#X text 521 45 delay; +#X text 518 63 (msec); +#X obj 340 113 max 1; +#X text 260 244 rotation freq; +#X obj 230 59 inlet; +#X text 228 41 transposition; +#X obj 340 60 inlet; +#X text 337 42 windowsize; +#X obj 37 89 delwrite~ \$0-del 5000; +#X obj 286 447 vd~ \$0-del; +#X obj 445 462 vd~ \$0-del; +#X obj 291 546 outlet~; +#X obj 37 58 inlet~; +#X obj 518 86 inlet; +#X msg 423 60 100; +#X msg 554 199 1.5; +#X obj 223 294 line~; +#X msg 224 275 \$1 30; +#X connect 0 0 31 0; +#X connect 1 0 13 0; +#X connect 2 0 1 1; +#X connect 2 0 18 1; +#X connect 3 0 41 0; +#X connect 5 0 2 0; +#X connect 6 0 7 0; +#X connect 7 0 30 0; +#X connect 8 0 24 0; +#X connect 9 0 23 0; +#X connect 10 0 13 1; +#X connect 10 0 19 1; +#X connect 11 0 10 0; +#X connect 12 0 38 0; +#X connect 13 0 48 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 50 0; +#X connect 17 0 18 0; +#X connect 17 0 28 0; +#X connect 18 0 19 0; +#X connect 19 0 49 0; +#X connect 20 0 21 0; +#X connect 21 0 16 1; +#X connect 22 0 53 0; +#X connect 22 0 54 0; +#X connect 23 0 8 0; +#X connect 23 1 8 1; +#X connect 24 0 56 0; +#X connect 25 0 17 0; +#X connect 26 0 27 0; +#X connect 27 0 14 0; +#X connect 28 0 29 0; +#X connect 29 0 20 0; +#X connect 30 0 32 0; +#X connect 31 0 6 0; +#X connect 32 0 8 0; +#X connect 37 0 1 0; +#X connect 37 0 26 0; +#X connect 37 0 25 0; +#X connect 38 0 11 0; +#X connect 41 0 9 0; +#X connect 41 0 5 0; +#X connect 43 0 0 0; +#X connect 45 0 3 0; +#X connect 48 0 15 1; +#X connect 49 0 21 1; +#X connect 51 0 47 0; +#X connect 52 0 12 0; +#X connect 53 0 3 0; +#X connect 54 0 12 0; +#X connect 55 0 37 0; +#X connect 56 0 55 0; +#X restore 78 148 pd guts; +#X obj 78 46 inlet~; +#X obj 79 201 outlet~; +#X obj 230 45 inlet; +#X obj 276 45 rjloader e_pitchshift-\$1 \$0; +#X obj 231 78 rjdispatch \$0 pitch; +#X obj 232 104 rjdispatch \$0 delay; +#X obj 232 129 rjdispatch \$0 size; +#X obj 94 69 r \$0-pitch; +#X obj 124 120 r \$0-delay; +#X obj 108 94 r \$0-size; +#X connect 0 0 2 0; +#X connect 1 0 0 0; +#X connect 3 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 8 0 0 1; +#X connect 9 0 0 3; +#X connect 10 0 0 2; diff --git a/l2ork_addons/rjlib/rj/e_reslop-help.pd b/l2ork_addons/rjlib/rj/e_reslop-help.pd new file mode 100644 index 000000000..a68040d28 --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_reslop-help.pd @@ -0,0 +1,47 @@ +#N canvas 66 126 1037 545 10; +#X obj 132 187 vline~; +#X obj 150 209 noise~; +#X obj 131 231 *~; +#X obj 129 454 soundoutput; +#X obj 375 153 vsl 15 100 0 100 0 0 empty empty q_(peakiness) 0 -9 +1 10 -262144 -1 -1 0 1; +#X obj 132 134 bng 24 250 50 0 empty empty empty 17 7 0 10 -4034 -1 +-1; +#X msg 132 162 0.8 10 \, 0 20 10; +#X floatatom 392 283 5 0 0 0 - - -; +#X obj 260 152 vsl 15 128 0 100 0 0 empty empty lowpass_frequency 0 +-9 1 10 -262144 -1 -1 0 1; +#X obj 260 293 mtof; +#X floatatom 274 316 8 0 0 0 - - -; +#X obj 132 84 r \$0-trigger; +#X obj 132 108 bang; +#X obj 453 277 hsl 50 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X floatatom 450 297 5 0 0 0 - - -; +#X msg 450 314 dry \$1; +#X text 451 334 default is dry=0 i.e. fully wet; +#X obj 130 397 e_reslop mylop 2000; +#X msg 260 344 freq \$1; +#X text 35 39 Resonant lowpass filter.; +#X text 25 13 e_reslop; +#X text 35 54 use as: e_reslop <NAME> <default freq>; +#X msg 374 313 q \$1; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X connect 2 0 17 0; +#X connect 4 0 22 0; +#X connect 4 0 7 0; +#X connect 5 0 6 0; +#X connect 6 0 0 0; +#X connect 8 0 9 0; +#X connect 9 0 18 0; +#X connect 9 0 10 0; +#X connect 11 0 12 0; +#X connect 12 0 5 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 17 1; +#X connect 17 0 3 0; +#X connect 17 0 3 1; +#X connect 18 0 17 1; +#X connect 22 0 17 1; diff --git a/l2ork_addons/rjlib/rj/e_reslop.pd b/l2ork_addons/rjlib/rj/e_reslop.pd new file mode 100644 index 000000000..c7313dd8d --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_reslop.pd @@ -0,0 +1,42 @@ +#N canvas 588 25 852 486 10; +#X obj 117 40 inlet~; +#X obj 97 440 outlet~; +#X obj 542 66 inlet; +#X obj 98 418 c_xfade; +#X msg 143 396 \$1 10; +#X obj 144 375 r \$0-dry; +#X obj 542 135 rjdispatch \$0 dry; +#X obj 542 91 rjdispatch \$0 freq; +#X obj 308 62 r \$0-freq; +#X obj 204 132 vcf~ 10; +#X obj 277 252 * 1; +#X obj 261 219 * 1; +#X obj 290 280 * 1; +#X obj 593 66 rjloader e_reslop-\$1 \$0; +#X obj 542 112 rjdispatch \$0 q; +#X obj 383 61 r \$0-q; +#X obj 209 244 lop~ \$2; +#X obj 221 278 lop~ \$2; +#X obj 237 312 lop~ \$2; +#X obj 227 109 sig~ \$2; +#X connect 0 0 3 1; +#X connect 0 0 9 0; +#X connect 2 0 7 0; +#X connect 3 0 1 0; +#X connect 4 0 3 2; +#X connect 5 0 4 0; +#X connect 7 0 14 0; +#X connect 8 0 10 0; +#X connect 8 0 11 0; +#X connect 8 0 12 0; +#X connect 8 0 19 0; +#X connect 9 0 16 0; +#X connect 10 0 17 1; +#X connect 11 0 16 1; +#X connect 12 0 18 1; +#X connect 14 0 6 0; +#X connect 15 0 9 2; +#X connect 16 0 17 0; +#X connect 17 0 18 0; +#X connect 18 0 3 0; +#X connect 19 0 9 1; diff --git a/l2ork_addons/rjlib/rj/e_reverb-help.pd b/l2ork_addons/rjlib/rj/e_reverb-help.pd new file mode 100644 index 000000000..ba2d78197 --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_reverb-help.pd @@ -0,0 +1,42 @@ +#N canvas 649 84 667 495 10; +#X obj 56 347 dac~; +#X obj 56 225 osc~ 220; +#X obj 56 257 *~; +#X obj 56 291 rj/e_reverb rev1; +#X msg 263 236 amp \$1; +#X msg 335 237 hall \$1; +#X msg 260 426 freq \$1; +#X msg 372 427 damp \$1; +#X obj 264 111 vsl 15 100 0 100 0 0 empty empty amplitude 0 -9 0 10 +-262144 -1 -1 9900 1; +#X floatatom 264 217 5 0 0 0 - - -; +#X obj 335 112 vsl 15 100 0 100 0 0 empty empty hall_(room_size) 0 +-9 0 10 -262144 -1 -1 800 1; +#X floatatom 335 218 5 0 0 0 - - -; +#X obj 261 300 vsl 15 100 0 5000 0 0 empty empty filter_freq 0 -9 0 +10 -262144 -1 -1 7100 1; +#X floatatom 261 406 5 0 0 0 - - -; +#X obj 372 301 vsl 15 100 0 100 0 0 empty empty damping 0 -9 0 10 -262144 +-1 -1 9800 1; +#X floatatom 372 407 5 0 0 0 - - -; +#X text 53 36 Simple and cheap reverb module; +#X obj 121 225 vline~; +#X msg 120 200 1 5 \, 0 100 5; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X connect 3 1 0 1; +#X connect 4 0 3 1; +#X connect 5 0 3 1; +#X connect 6 0 3 1; +#X connect 7 0 3 1; +#X connect 8 0 9 0; +#X connect 9 0 4 0; +#X connect 10 0 11 0; +#X connect 11 0 5 0; +#X connect 12 0 13 0; +#X connect 13 0 6 0; +#X connect 14 0 15 0; +#X connect 15 0 7 0; +#X connect 17 0 2 1; +#X connect 18 0 17 0; diff --git a/l2ork_addons/rjlib/rj/e_reverb.pd b/l2ork_addons/rjlib/rj/e_reverb.pd new file mode 100644 index 000000000..b946819ac --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_reverb.pd @@ -0,0 +1,258 @@ +#N canvas 363 269 711 408 10; +#N canvas 396 144 957 645 guts 0; +#X obj 161 497 +~; +#X obj 520 105 inlet; +#X obj 184 407 *~; +#X obj 486 412 *~; +#X obj 285 412 *~; +#X obj 387 412 *~; +#X obj 443 546 -~; +#X obj 364 545 -~; +#X obj 239 537 +~; +#X obj 161 534 +~; +#X obj 162 444 +~; +#X obj 262 440 +~; +#X obj 464 501 -~; +#X obj 387 499 +~; +#X obj 239 500 -~; +#X obj 452 105 inlet; +#X obj 609 429 line~; +#X obj 509 374 line~; +#X obj 16 121 delread~ \$0-del1 58.6435; +#X obj 94 143 delread~ \$0-del2 69.4325; +#X obj 176 165 delread~ \$0-del3 74.5234; +#X obj 258 189 delread~ \$0-del4 86.1244; +#X obj 530 500 *~; +#X obj 599 501 *~; +#X obj 161 641 delwrite~ \$0-del1 58.6435; +#X obj 240 617 delwrite~ \$0-del2 69.4325; +#X obj 365 595 delwrite~ \$0-del3 74.5234; +#X obj 444 573 delwrite~ \$0-del4 86.1244; +#X obj 609 357 dbtorms; +#X obj 609 403 pack 0 30; +#X obj 520 211 pack 0 50; +#X obj 9 390 inlet~; +#X obj 530 525 outlet~; +#X obj 599 525 outlet~; +#X obj 520 187 / 200; +#X obj 520 162 clip 0 100; +#X obj 52 236 lop~; +#X obj 625 143 f \$3; +#X obj 696 143 f \$4; +#X obj 367 106 loadbang; +#X obj 625 167 moses 1; +#X msg 631 193 3000; +#X obj 705 193 clip 0 100; +#N canvas 345 88 355 597 early-reflect 0; +#X obj 119 477 delread~ \$0-ref6 13.645; +#X obj 119 453 delwrite~ \$0-ref6 13.645; +#X obj 106 400 delread~ \$0-ref5 16.364; +#X obj 106 376 delwrite~ \$0-ref5 16.364; +#X obj 102 324 delread~ \$0-ref4 19.392; +#X obj 102 300 delwrite~ \$0-ref4 19.392; +#X obj 106 247 delread~ \$0-ref3 25.796; +#X obj 106 223 delwrite~ \$0-ref3 25.796; +#X obj 107 169 delread~ \$0-ref2 43.5337; +#X obj 107 145 delwrite~ \$0-ref2 43.5337; +#X obj 110 90 delread~ \$0-ref1 75.2546; +#X obj 84 119 -~; +#X obj 49 119 +~; +#X obj 50 195 +~; +#X obj 85 196 -~; +#X obj 84 275 -~; +#X obj 49 274 +~; +#X obj 82 349 -~; +#X obj 48 350 +~; +#X obj 83 428 -~; +#X obj 49 428 +~; +#X obj 65 7 inlet~; +#X obj 110 66 delwrite~ \$0-ref1 75.2546; +#X obj 49 508 outlet~; +#X obj 119 507 outlet~; +#X connect 0 0 24 0; +#X connect 2 0 20 1; +#X connect 2 0 19 1; +#X connect 4 0 18 1; +#X connect 4 0 17 1; +#X connect 6 0 16 1; +#X connect 6 0 15 1; +#X connect 8 0 13 1; +#X connect 8 0 14 1; +#X connect 10 0 12 1; +#X connect 10 0 11 1; +#X connect 11 0 9 0; +#X connect 12 0 14 0; +#X connect 12 0 13 0; +#X connect 13 0 16 0; +#X connect 13 0 15 0; +#X connect 14 0 7 0; +#X connect 15 0 5 0; +#X connect 16 0 18 0; +#X connect 16 0 17 0; +#X connect 17 0 3 0; +#X connect 18 0 20 0; +#X connect 18 0 19 0; +#X connect 19 0 1 0; +#X connect 20 0 23 0; +#X connect 21 0 12 0; +#X connect 21 0 11 0; +#X connect 21 0 22 0; +#X restore 9 416 pd early-reflect; +#X obj 618 216 f; +#X obj 618 105 inlet; +#X obj 696 109 inlet; +#X obj 705 216 f; +#X obj 705 239 * 0.01; +#X obj 705 263 pack 0 50; +#X obj 705 287 line~; +#X obj 29 269 -~; +#X obj 28 300 *~; +#X obj 16 331 +~; +#X obj 132 240 lop~; +#X obj 106 274 -~; +#X obj 105 309 *~; +#X obj 95 333 +~; +#X obj 214 245 lop~; +#X obj 188 273 -~; +#X obj 187 314 *~; +#X obj 176 339 +~; +#X obj 308 249 lop~; +#X obj 281 274 -~; +#X obj 281 318 *~; +#X obj 258 342 +~; +#X obj 609 379 * 0.125; +#X text 403 10 control inlets:; +#X text 400 29 1: output level \, dB \, 0-100; +#X text 399 79 4: high frequency damping \, 0-100; +#X text 400 62 3: crossover frequency in Hz. (3000 default); +#X text 400 45 2: liveness \, 0-100 \, usually between 85 and 100; +#X obj 452 137 f 80; +#X obj 520 138 f 80; +#X connect 0 0 9 0; +#X connect 0 0 7 0; +#X connect 1 0 73 0; +#X connect 2 0 10 1; +#X connect 3 0 12 1; +#X connect 3 0 13 1; +#X connect 4 0 11 1; +#X connect 5 0 13 0; +#X connect 5 0 12 0; +#X connect 6 0 27 0; +#X connect 7 0 26 0; +#X connect 8 0 25 0; +#X connect 9 0 24 0; +#X connect 10 0 14 0; +#X connect 10 0 0 0; +#X connect 10 0 22 0; +#X connect 11 0 0 1; +#X connect 11 0 14 1; +#X connect 11 0 23 0; +#X connect 12 0 8 1; +#X connect 12 0 6 1; +#X connect 13 0 9 1; +#X connect 13 0 7 1; +#X connect 14 0 8 0; +#X connect 14 0 6 0; +#X connect 15 0 72 0; +#X connect 16 0 22 1; +#X connect 16 0 23 1; +#X connect 17 0 4 1; +#X connect 17 0 2 1; +#X connect 17 0 5 1; +#X connect 17 0 3 1; +#X connect 18 0 36 0; +#X connect 18 0 51 1; +#X connect 18 0 53 0; +#X connect 19 0 54 0; +#X connect 19 0 55 1; +#X connect 19 0 57 0; +#X connect 20 0 61 0; +#X connect 20 0 58 0; +#X connect 20 0 59 1; +#X connect 21 0 65 0; +#X connect 21 0 63 1; +#X connect 21 0 62 0; +#X connect 22 0 32 0; +#X connect 23 0 33 0; +#X connect 28 0 66 0; +#X connect 29 0 16 0; +#X connect 30 0 17 0; +#X connect 31 0 43 0; +#X connect 34 0 30 0; +#X connect 35 0 34 0; +#X connect 36 0 51 0; +#X connect 37 0 40 0; +#X connect 38 0 42 0; +#X connect 39 0 37 0; +#X connect 39 0 38 0; +#X connect 39 0 72 0; +#X connect 39 0 73 0; +#X connect 40 0 41 0; +#X connect 40 1 44 0; +#X connect 41 0 44 0; +#X connect 42 0 47 0; +#X connect 43 0 10 0; +#X connect 43 1 11 0; +#X connect 44 0 36 1; +#X connect 44 0 54 1; +#X connect 44 0 58 1; +#X connect 44 0 62 1; +#X connect 45 0 44 0; +#X connect 46 0 38 0; +#X connect 47 0 48 0; +#X connect 48 0 49 0; +#X connect 49 0 50 0; +#X connect 50 0 52 1; +#X connect 50 0 56 1; +#X connect 50 0 60 1; +#X connect 50 0 64 1; +#X connect 51 0 52 0; +#X connect 52 0 53 1; +#X connect 53 0 2 0; +#X connect 54 0 55 0; +#X connect 55 0 56 0; +#X connect 56 0 57 1; +#X connect 57 0 4 0; +#X connect 58 0 59 0; +#X connect 59 0 60 0; +#X connect 60 0 61 1; +#X connect 61 0 5 0; +#X connect 62 0 63 0; +#X connect 63 0 64 0; +#X connect 64 0 65 1; +#X connect 65 0 3 0; +#X connect 66 0 29 0; +#X connect 72 0 28 0; +#X connect 73 0 35 0; +#X restore 60 154 pd guts; +#X text 176 31 This is Millers rev2 \, wrapped for rjlib; +#X obj 50 271 outlet~; +#X obj 106 271 outlet~; +#X obj 201 130 inlet; +#X obj 202 153 rjdispatch \$0 amp; +#X obj 201 176 rjdispatch \$0 hall; +#X obj 345 63 rjloader e_reverb-\$1 \$0; +#X obj 345 86 loadbang; +#X obj 201 198 rjdispatch \$0 freq; +#X obj 201 219 rjdispatch \$0 damp; +#X obj 72 59 r \$0-amp; +#X obj 84 79 r \$0-hall; +#X obj 95 100 r \$0-freq; +#X obj 116 119 r \$0-damp; +#X obj 59 28 inlet~; +#X obj 185 78 print; +#X msg 345 106 amp 80 \, hall 80 \, freq 6000 \, damp 60; +#X connect 0 0 2 0; +#X connect 0 1 3 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 9 0; +#X connect 8 0 17 0; +#X connect 9 0 10 0; +#X connect 11 0 0 1; +#X connect 11 0 16 0; +#X connect 12 0 0 2; +#X connect 13 0 0 3; +#X connect 14 0 0 4; +#X connect 15 0 0 0; +#X connect 17 0 5 0; diff --git a/l2ork_addons/rjlib/rj/e_softclip-help.pd b/l2ork_addons/rjlib/rj/e_softclip-help.pd new file mode 100644 index 000000000..b87fe3fde --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_softclip-help.pd @@ -0,0 +1,54 @@ +#N canvas 277 61 759 541 10; +#X obj 87 241 s_guitar myguit; +#X obj 223 283 osc~; +#X msg 365 289 drive \$1; +#N canvas 0 0 450 300 (subpatch) 0; +#X array \$0-scope 441 float 2; +#X coords 0 1 441 -1 200 140 1; +#X restore 485 289 graph; +#X obj 318 425 tabwrite~ \$0-scope; +#X obj 335 375 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 223 251 mtof; +#X floatatom 223 230 5 0 0 0 - - -; +#X obj 185 407 soundoutput; +#X obj 335 397 metro 100; +#X obj 261 303 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 223 302 *~ 0; +#X floatatom 87 194 5 0 0 0 - - -; +#X obj 342 209 hsl 128 15 0 1 0 0 empty empty wet____________dry 5 +6 1 10 -262144 -1 -1 0 1; +#X msg 339 237 dry \$1; +#X obj 223 324 e_softclip mydist; +#X text 109 15 e_softclip; +#X text 159 44 Clips incoming signal with a tanh-based waveshaper. +; +#X text 157 68 Args: NAME; +#X text 158 86 Inlet0~: signal to clip; +#X text 158 107 Inlet1: dry 0...1: dry/wet factor. 0 (default) is complete +wet.; +#X text 155 144 Inlet1: drive: additional amplification; +#X obj 87 213 mtof; +#X floatatom 365 265 5 0 0 0 - - -; +#X obj 189 185 loadbang; +#X msg 189 208 feedback 0.98; +#X connect 0 0 15 0; +#X connect 1 0 11 0; +#X connect 2 0 15 1; +#X connect 5 0 9 0; +#X connect 6 0 1 0; +#X connect 7 0 6 0; +#X connect 9 0 4 0; +#X connect 10 0 11 1; +#X connect 11 0 15 0; +#X connect 12 0 22 0; +#X connect 13 0 14 0; +#X connect 14 0 15 1; +#X connect 15 0 4 0; +#X connect 15 0 8 0; +#X connect 15 0 8 1; +#X connect 22 0 0 0; +#X connect 23 0 2 0; +#X connect 24 0 25 0; +#X connect 25 0 0 1; diff --git a/l2ork_addons/rjlib/rj/e_softclip.pd b/l2ork_addons/rjlib/rj/e_softclip.pd new file mode 100644 index 000000000..a34edec82 --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_softclip.pd @@ -0,0 +1,93 @@ +#N canvas 452 285 719 521 10; +#X obj 126 81 inlet~; +#X obj 127 452 outlet~; +#N canvas 369 269 805 574 mktanh 0; +#N canvas 0 0 450 300 tanh 0; +#X obj 105 29 inlet; +#X obj 105 119 t a a; +#X obj 105 73 * 2; +#X obj 105 94 exp; +#X obj 105 172 / 1; +#X obj 105 199 outlet; +#X obj 105 148 - 1; +#X obj 137 148 + 1; +#X text 289 97 exp(2x) - 1; +#X text 290 125 exp(2x) + 1; +#X text 240 109 tanh = -----------; +#X obj 105 51 f; +#X connect 0 0 11 0; +#X connect 1 0 6 0; +#X connect 1 1 7 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 4 0 5 0; +#X connect 6 0 4 0; +#X connect 7 0 4 1; +#X connect 11 0 2 0; +#X restore 82 319 pd tanh; +#X msg 467 201 6.28319; +#X obj 82 292 * 6.28319; +#X obj 82 138 until; +#X obj 82 198 t a a; +#X obj 112 168 + 1; +#X obj 82 168 f 0; +#X msg 127 136 0; +#X obj 82 108 t f b; +#X obj 82 348 tabwrite \$0-tanh; +#X obj 82 262 - 1; +#X obj 82 56 loadbang; +#X text 466 179 2PI; +#X obj 82 374 table \$0-tanh 5000; +#X msg 82 84 5000; +#X obj 82 237 / 2500; +#X connect 0 0 9 0; +#X connect 2 0 0 0; +#X connect 3 0 6 0; +#X connect 4 0 15 0; +#X connect 4 1 9 1; +#X connect 5 0 6 1; +#X connect 6 0 5 0; +#X connect 6 0 4 0; +#X connect 7 0 6 1; +#X connect 8 0 3 0; +#X connect 8 1 7 0; +#X connect 10 0 2 0; +#X connect 11 0 14 0; +#X connect 14 0 8 0; +#X connect 15 0 10 0; +#X restore 257 295 pd mktanh; +#X obj 126 295 tabread4~ \$0-tanh; +#X obj 376 55 inlet; +#X obj 376 87 rjdispatch \$0 drive; +#X obj 212 66 r \$0-drive; +#X obj 212 129 line~; +#X obj 293 65 loadbang; +#X obj 127 145 *~; +#X obj 212 93 pack 0 10; +#X obj 125 231 +~ 2500; +#X obj 126 187 *~ 1000; +#X obj 376 109 rjdispatch \$0 dry; +#X obj 299 337 r \$0-dry; +#X obj 299 362 pack 0 10; +#X obj 146 112 sig~ 1; +#X msg 293 85 0; +#X obj 423 55 rjloader e_softclip-\$1 \$0; +#X text 93 30 clipping using tanh-waveshaper; +#X obj 127 391 c_xfade e_softclip_dry-\$1; +#X connect 0 0 9 0; +#X connect 0 0 20 1; +#X connect 3 0 20 0; +#X connect 4 0 5 0; +#X connect 5 0 13 0; +#X connect 6 0 10 0; +#X connect 7 0 9 1; +#X connect 8 0 17 0; +#X connect 9 0 12 0; +#X connect 10 0 7 0; +#X connect 11 0 3 0; +#X connect 12 0 11 0; +#X connect 14 0 15 0; +#X connect 15 0 20 2; +#X connect 16 0 9 1; +#X connect 17 0 7 0; +#X connect 20 0 1 0; diff --git a/l2ork_addons/rjlib/rj/e_vocoder-help.pd b/l2ork_addons/rjlib/rj/e_vocoder-help.pd new file mode 100644 index 000000000..af8832163 --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_vocoder-help.pd @@ -0,0 +1,136 @@ +#N canvas 303 130 782 642 10; +#X obj 141 494 e_vocoder myvocoder; +#X msg 271 462 squelch \$1; +#X floatatom 271 438 5 0 0 0 - - -; +#X text 298 497 inlets: <filter input~> <control source~> <methods> +; +#X obj 105 538 soundoutput; +#X text 45 23 e_vocoder / timbre stamp; +#N canvas 0 0 512 416 play 0; +#X obj 93 86 inlet; +#X obj 93 125 b; +#X obj 93 187 symbol; +#X obj 93 158 openpanel; +#X obj 223 103 inlet; +#X obj 93 258 readsf~; +#X obj 162 308 outlet; +#X obj 93 308 outlet~; +#X obj 170 133 b; +#X obj 170 154 spigot 1; +#X msg 93 216 open \$1 \, 1; +#X obj 156 87 inlet; +#X obj 129 126 b; +#X connect 0 0 1 0; +#X connect 1 0 3 0; +#X connect 2 0 10 0; +#X connect 3 0 2 0; +#X connect 4 0 9 1; +#X connect 5 0 7 0; +#X connect 5 1 6 0; +#X connect 5 1 8 0; +#X connect 8 0 9 0; +#X connect 9 0 2 0; +#X connect 10 0 5 0; +#X connect 11 0 12 0; +#X connect 12 0 2 0; +#X restore 207 283 pd play; +#X obj 253 262 tgl 15 0 empty empty loop 17 7 1 10 -262144 -1 -1 0 +1; +#X obj 207 218 bng 15 250 50 0 empty empty load_sample 17 7 1 10 -4034 +-1 -1; +#X obj 230 238 bng 15 250 50 0 empty empty play_it_again_Sam 17 7 1 +10 -4034 -1 -1; +#N canvas 0 0 660 424 chord 0; +#X obj 92 147 -~ 0.5; +#X obj 92 196 clip~ -0.5 0.5; +#X obj 92 219 cos~; +#X obj 91 302 hip~ 5; +#X obj 91 365 outlet~; +#X obj 92 172 *~ 3; +#X obj 92 124 phasor~ 220; +#X obj 221 147 -~ 0.5; +#X obj 221 196 clip~ -0.5 0.5; +#X obj 221 219 cos~; +#X obj 221 172 *~ 3; +#X obj 356 150 -~ 0.5; +#X obj 356 199 clip~ -0.5 0.5; +#X obj 356 222 cos~; +#X obj 356 175 *~ 3; +#X obj 221 124 phasor~ 251; +#X obj 356 127 phasor~ 281; +#X obj 91 335 *~ 0.2; +#X msg 430 76 0; +#X obj 92 29 inlet; +#X obj 92 52 unpack 0 0 0; +#X text 204 32 test sound; +#X obj 92 79 mtof; +#X obj 132 81 mtof; +#X obj 173 81 mtof; +#X floatatom 237 50 5 0 0 0 - - -; +#X connect 0 0 5 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 17 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 10 0; +#X connect 8 0 9 0; +#X connect 9 0 3 0; +#X connect 10 0 8 0; +#X connect 11 0 14 0; +#X connect 12 0 13 0; +#X connect 13 0 3 0; +#X connect 14 0 12 0; +#X connect 15 0 7 0; +#X connect 16 0 11 0; +#X connect 17 0 4 0; +#X connect 18 0 16 1; +#X connect 18 0 15 1; +#X connect 18 0 6 1; +#X connect 19 0 20 0; +#X connect 20 0 22 0; +#X connect 20 1 23 0; +#X connect 20 2 24 0; +#X connect 22 0 6 0; +#X connect 23 0 15 0; +#X connect 24 0 16 0; +#X connect 25 0 24 0; +#X restore 142 452 pd chord; +#X msg 142 426 40 50 55; +#X msg 142 406 40 45 59; +#X msg 142 386 40 49 57; +#X obj 142 356 select 0 1 2; +#X obj 142 334 random 3; +#X text 49 58 This is a Fourier-based "vocoder" (perhaps better called +a "timbre stamp") like the one the Convolution brothers use. The "control +source" is analyzed to get its spectral envelope \, which is then stamped +onto the "filter input" by adjusting the amplitudes of its Fourier +transform. The "filter input" is first whitened. The best value of +"squelch" to use depends critically on what kind of sounds are used +for the filter input and the control source.; +#X obj 308 285 soundinput; +#X text 398 285 check with soundinput as well!; +#X obj 307 320 *~ 0; +#X obj 353 321 hsl 50 15 0 1 0 0 empty empty volume 5 8 1 10 -4034 +-1 -1 0 1; +#X connect 0 0 4 0; +#X connect 0 0 4 1; +#X connect 1 0 0 2; +#X connect 2 0 1 0; +#X connect 6 0 0 1; +#X connect 6 1 15 0; +#X connect 7 0 6 2; +#X connect 8 0 6 0; +#X connect 9 0 6 1; +#X connect 10 0 0 0; +#X connect 11 0 10 0; +#X connect 12 0 10 0; +#X connect 13 0 10 0; +#X connect 14 0 13 0; +#X connect 14 1 12 0; +#X connect 14 2 11 0; +#X connect 15 0 14 0; +#X connect 17 0 19 0; +#X connect 17 1 19 0; +#X connect 19 0 0 1; +#X connect 20 0 19 1; diff --git a/l2ork_addons/rjlib/rj/e_vocoder.pd b/l2ork_addons/rjlib/rj/e_vocoder.pd new file mode 100644 index 000000000..f11f48b3a --- /dev/null +++ b/l2ork_addons/rjlib/rj/e_vocoder.pd @@ -0,0 +1,156 @@ +#N canvas 373 183 808 432 10; +#N canvas 147 0 795 617 fft-analysis 0; +#X obj 94 511 *~; +#X obj 55 511 *~; +#X obj 413 356 *~; +#X obj 372 356 *~; +#X obj 372 379 +~; +#X obj 54 183 *~; +#X obj 54 158 inlet~; +#X obj 54 206 rfft~; +#X obj 54 560 *~; +#X obj 141 245 *~; +#X obj 372 333 rfft~; +#X obj 54 535 rifft~; +#X obj 54 583 outlet~; +#X obj 107 245 *~; +#X obj 107 268 +~; +#X text 458 408 modulus; +#X obj 107 420 *~; +#X obj 600 13 block~ 1024 4; +#X obj 107 398 clip~; +#X obj 87 184 tabreceive~ \$0-hann; +#X obj 107 294 +~ 1e-20; +#X obj 108 480 *~ 0.00065; +#X obj 87 560 tabreceive~ \$0-hann; +#X obj 373 307 *~; +#X obj 373 282 inlet~; +#X obj 406 308 tabreceive~ \$0-hann; +#X obj 107 321 q8_rsqrt~; +#X obj 372 402 q8_sqrt~; +#X text 458 425 of control; +#X text 456 442 amplitude; +#X text 196 248 reciprocal; +#X text 199 267 modulus of; +#X text 195 287 filter input; +#X text 196 306 amplitude; +#X text 115 159 filter input; +#X text 438 282 control source; +#X text 434 332 Fourier transform; +#X text 28 17 Internal workings of the timbre stamping algorithm. First +the "filter input" is treated as in the compressor patch \, multiplying +each channel amplitude by one over its modulus (but limited by the +"squelch" parameter.) It is then multiplied by the modulus of the channel +amplitude for the control source (which is Fourier analyzed in parallel +with the filter input.); +#X text 145 422 multiply the two amplitude; +#X text 143 439 factors (for compression; +#X text 145 455 and to apply new timbre); +#X obj 148 346 r \$0-squelch; +#X obj 170 388 *; +#X obj 170 366 t a a; +#X obj 170 409 * 0.01; +#X connect 0 0 11 1; +#X connect 1 0 11 0; +#X connect 2 0 4 1; +#X connect 3 0 4 0; +#X connect 4 0 27 0; +#X connect 5 0 7 0; +#X connect 6 0 5 0; +#X connect 7 0 13 0; +#X connect 7 0 13 1; +#X connect 7 0 1 0; +#X connect 7 1 9 0; +#X connect 7 1 9 1; +#X connect 7 1 0 0; +#X connect 8 0 12 0; +#X connect 9 0 14 1; +#X connect 10 0 3 0; +#X connect 10 0 3 1; +#X connect 10 1 2 0; +#X connect 10 1 2 1; +#X connect 11 0 8 0; +#X connect 13 0 14 0; +#X connect 14 0 20 0; +#X connect 16 0 21 0; +#X connect 18 0 16 0; +#X connect 19 0 5 1; +#X connect 20 0 26 0; +#X connect 21 0 0 1; +#X connect 21 0 1 1; +#X connect 22 0 8 1; +#X connect 23 0 10 0; +#X connect 24 0 23 0; +#X connect 25 0 23 1; +#X connect 26 0 18 0; +#X connect 27 0 16 1; +#X connect 41 0 43 0; +#X connect 42 0 44 0; +#X connect 43 0 42 0; +#X connect 43 1 42 1; +#X connect 44 0 18 2; +#X restore 110 211 pd fft-analysis; +#N canvas 0 110 565 454 hann-window 0; +#X obj 378 165 osc~; +#X obj 378 190 *~ -0.5; +#X obj 378 214 +~ 0.5; +#X obj 331 247 tabwrite~ \$0-hann; +#X obj 38 173 /; +#X obj 127 142 samplerate~; +#X obj 177 204 swap; +#X obj 177 228 /; +#X obj 49 201 * 1000; +#X obj 38 115 t f b f; +#X msg 173 92 resize \$1; +#X obj 173 116 s \$0-hann; +#X msg 382 130 0; +#X obj 330 131 t f b; +#X text 15 8 calculate Hann window table (variable window size) and +constants window-hz (fundamental frequency of analysis) \, window-sec +and window-msec (analysis window size in seconds and msec).; +#X obj 330 274 table \$0-hann 1024; +#X obj 49 228 s \$0-window-msec; +#X obj 38 251 s \$0-window-sec; +#X obj 38 88 r \$0-window-size; +#X obj 177 252 s \$0-window-hz; +#X obj 330 105 r \$0-window-hz; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 8 0; +#X connect 4 0 17 0; +#X connect 5 0 4 1; +#X connect 5 0 6 1; +#X connect 6 0 7 0; +#X connect 6 1 7 1; +#X connect 7 0 19 0; +#X connect 8 0 16 0; +#X connect 9 0 4 0; +#X connect 9 0 6 0; +#X connect 9 1 5 0; +#X connect 9 2 10 0; +#X connect 10 0 11 0; +#X connect 12 0 0 1; +#X connect 13 0 0 0; +#X connect 13 1 3 0; +#X connect 13 1 12 0; +#X connect 18 0 9 0; +#X connect 20 0 13 0; +#X restore 243 212 pd hann-window; +#X obj 423 130 rjdispatch \$0 squelch; +#X obj 423 103 inlet; +#X obj 479 103 rjloader e_vocoder-\$1 \$0; +#X obj 545 257 loadbang; +#X obj 545 279 f \$0; +#X msg 545 300 \; pd dsp 1 \; \$1-window-size 1024 \; \$1-squelch 30 +\;; +#X obj 111 186 inlet~; +#X obj 212 186 inlet~; +#X obj 109 238 outlet~; +#X text 114 75 Pd vocoder/timbre stamp; +#X connect 0 0 10 0; +#X connect 3 0 2 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 8 0 0 0; +#X connect 9 0 0 1; diff --git a/l2ork_addons/rjlib/rj/jon~.pd b/l2ork_addons/rjlib/rj/jon~.pd new file mode 100644 index 000000000..1952ee901 --- /dev/null +++ b/l2ork_addons/rjlib/rj/jon~.pd @@ -0,0 +1,919 @@ +#N canvas 229 105 390 422 12; +#X obj 24 32 inlet~; +#X obj 27 282 outlet~; +#X obj 135 282 outlet~; +#N canvas 0 166 634 506 input_diffusion 0; +#X obj 30 60 inlet~; +#X obj 29 295 outlet~; +#X obj 337 79 r \$0-input_diffusion1; +#X obj 336 170 r \$0-input_diffusion2; +#N canvas 393 17 574 578 allpass 0; +#X obj 56 127 inlet~; +#X obj 56 400 +~; +#X obj 427 232 loadbang; +#X obj 417 286 t f f; +#X obj 417 310 *; +#X obj 417 334 expr 1-$f1; +#X obj 253 364 *~; +#X obj 232 394 +~; +#X obj 114 177 * -1; +#X obj 88 207 *~; +#X obj 232 426 outlet~; +#X obj 417 129 inlet; +#X obj 114 117 loadbang; +#X obj 75 365 *~ -1; +#X obj 201 364 *~ -1; +#X obj 114 149 f 0.75; +#X obj 417 262 f 0.75; +#X obj 56 491 delwrite~ \$0-tap_13_14 200; +#X obj 252 262 *~ 0.75; +#X obj 252 53 delread~ \$0-tap_13_14 4.77134; +#X connect 0 0 1 0; +#X connect 0 0 9 0; +#X connect 1 0 17 0; +#X connect 2 0 16 0; +#X connect 3 0 4 0; +#X connect 3 1 4 1; +#X connect 4 0 5 0; +#X connect 5 0 6 1; +#X connect 6 0 7 1; +#X connect 7 0 10 0; +#X connect 8 0 9 1; +#X connect 9 0 14 0; +#X connect 11 0 15 0; +#X connect 11 0 16 0; +#X connect 11 0 18 1; +#X connect 12 0 15 0; +#X connect 13 0 1 1; +#X connect 14 0 7 0; +#X connect 15 0 8 0; +#X connect 16 0 3 0; +#X connect 18 0 6 0; +#X connect 18 0 13 0; +#X connect 19 0 18 0; +#X restore 30 99 pd allpass tap_13_14; +#N canvas 314 10 579 582 allpass 0; +#X obj 56 127 inlet~; +#X obj 56 400 +~; +#X obj 427 232 loadbang; +#X obj 417 286 t f f; +#X obj 417 310 *; +#X obj 417 334 expr 1-$f1; +#X obj 253 364 *~; +#X obj 232 394 +~; +#X obj 114 177 * -1; +#X obj 88 207 *~; +#X obj 232 426 outlet~; +#X obj 417 129 inlet; +#X obj 114 117 loadbang; +#X obj 75 365 *~ -1; +#X obj 201 364 *~ -1; +#X obj 114 149 f 0.75; +#X obj 417 262 f 0.75; +#X obj 252 262 *~ 0.75; +#X obj 56 491 delwrite~ \$0-tap_19_20 200; +#X obj 252 53 delread~ \$0-tap_19_20 3.5953; +#X connect 0 0 1 0; +#X connect 0 0 9 0; +#X connect 1 0 18 0; +#X connect 2 0 16 0; +#X connect 3 0 4 0; +#X connect 3 1 4 1; +#X connect 4 0 5 0; +#X connect 5 0 6 1; +#X connect 6 0 7 1; +#X connect 7 0 10 0; +#X connect 8 0 9 1; +#X connect 9 0 14 0; +#X connect 11 0 15 0; +#X connect 11 0 16 0; +#X connect 11 0 17 1; +#X connect 12 0 15 0; +#X connect 13 0 1 1; +#X connect 14 0 7 0; +#X connect 15 0 8 0; +#X connect 16 0 3 0; +#X connect 17 0 6 0; +#X connect 17 0 13 0; +#X connect 19 0 17 0; +#X restore 30 135 pd allpass tap_19_20; +#N canvas 238 0 570 590 allpass 0; +#X obj 56 127 inlet~; +#X obj 56 400 +~; +#X obj 427 232 loadbang; +#X obj 417 286 t f f; +#X obj 417 310 *; +#X obj 417 334 expr 1-$f1; +#X obj 253 364 *~; +#X obj 232 394 +~; +#X obj 114 177 * -1; +#X obj 88 207 *~; +#X obj 232 426 outlet~; +#X obj 417 129 inlet; +#X obj 114 117 loadbang; +#X obj 75 365 *~ -1; +#X obj 201 364 *~ -1; +#X obj 114 149 f 0.625; +#X obj 252 262 *~ 0.625; +#X obj 417 262 f 0.625; +#X obj 56 491 delwrite~ \$0-tap_15_16 200; +#X obj 252 53 delread~ \$0-tap_15_16 12.7348; +#X connect 0 0 1 0; +#X connect 0 0 9 0; +#X connect 1 0 18 0; +#X connect 2 0 17 0; +#X connect 3 0 4 0; +#X connect 3 1 4 1; +#X connect 4 0 5 0; +#X connect 5 0 6 1; +#X connect 6 0 7 1; +#X connect 7 0 10 0; +#X connect 8 0 9 1; +#X connect 9 0 14 0; +#X connect 11 0 15 0; +#X connect 11 0 16 1; +#X connect 11 0 17 0; +#X connect 12 0 15 0; +#X connect 13 0 1 1; +#X connect 14 0 7 0; +#X connect 15 0 8 0; +#X connect 16 0 6 0; +#X connect 16 0 13 0; +#X connect 17 0 3 0; +#X connect 19 0 16 0; +#X restore 30 190 pd allpass tap_15_16; +#N canvas 238 0 566 586 allpass 0; +#X obj 56 127 inlet~; +#X obj 56 400 +~; +#X obj 427 232 loadbang; +#X obj 417 286 t f f; +#X obj 417 310 *; +#X obj 417 334 expr 1-$f1; +#X obj 253 364 *~; +#X obj 232 394 +~; +#X obj 114 177 * -1; +#X obj 88 207 *~; +#X obj 232 426 outlet~; +#X obj 417 129 inlet; +#X obj 114 117 loadbang; +#X obj 75 365 *~ -1; +#X obj 201 364 *~ -1; +#X obj 114 149 f 0.625; +#X obj 252 262 *~ 0.625; +#X obj 417 262 f 0.625; +#X obj 56 491 delwrite~ \$0-tap_21_22 200; +#X obj 252 53 delread~ \$0-tap_21_22 9.30748; +#X connect 0 0 1 0; +#X connect 0 0 9 0; +#X connect 1 0 18 0; +#X connect 2 0 17 0; +#X connect 3 0 4 0; +#X connect 3 1 4 1; +#X connect 4 0 5 0; +#X connect 5 0 6 1; +#X connect 6 0 7 1; +#X connect 7 0 10 0; +#X connect 8 0 9 1; +#X connect 9 0 14 0; +#X connect 11 0 15 0; +#X connect 11 0 16 1; +#X connect 11 0 17 0; +#X connect 12 0 15 0; +#X connect 13 0 1 1; +#X connect 14 0 7 0; +#X connect 15 0 8 0; +#X connect 16 0 6 0; +#X connect 16 0 13 0; +#X connect 17 0 3 0; +#X connect 19 0 16 0; +#X restore 30 230 pd allpass tap_21_22; +#X connect 0 0 4 0; +#X connect 2 0 4 1; +#X connect 2 0 5 1; +#X connect 3 0 6 1; +#X connect 3 0 7 1; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 1 0; +#X restore 25 168 pd input_diffusion; +#N canvas 38 72 501 476 reverberation_tank 0; +#X obj 168 85 inlet~; +#X obj 43 120 +~; +#X obj 255 121 +~; +#N canvas 0 0 458 308 z^-4217 0; +#X obj 106 55 inlet~; +#X obj 105 120 delwrite~ \$0-tap_48_54 141.695; +#X text 358 135 4217; +#X obj 105 147 delread~ \$0-tap_48_54 141.695; +#X obj 106 223 outlet~; +#X connect 0 0 1 0; +#X connect 3 0 4 0; +#X restore 255 190 pd z^-4217; +#N canvas 0 0 458 308 z^-4453 0; +#X obj 41 104 delwrite~ \$0-tap_24_30 149.625; +#X obj 42 128 delread~ \$0-tap_24_30 149.625; +#X text 287 119 4453; +#X obj 43 60 inlet~; +#X obj 43 168 outlet~; +#X connect 1 0 4 0; +#X connect 3 0 0 0; +#X restore 43 192 pd z^-4453; +#N canvas 0 0 466 316 damping 0; +#X obj 74 53 inlet~; +#X obj 70 222 outlet~; +#X obj 73 137 lop~ 22050; +#X obj 162 137 r \$0-damping; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 3 0 2 1; +#X restore 44 221 pd damping; +#N canvas 0 0 470 320 damping 0; +#X obj 74 53 inlet~; +#X obj 70 222 outlet~; +#X obj 73 137 lop~ 22050; +#X obj 162 137 r \$0-damping; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 3 0 2 1; +#X restore 256 221 pd damping; +#N canvas 0 0 470 320 decay 0; +#X obj 71 66 inlet~; +#X obj 71 220 outlet~; +#X obj 140 139 r \$0-decay; +#X obj 70 140 *~ 0.5; +#X connect 0 0 3 0; +#X connect 2 0 3 1; +#X connect 3 0 1 0; +#X restore 43 249 pd decay; +#N canvas 0 0 470 320 decay 0; +#X obj 71 66 inlet~; +#X obj 71 220 outlet~; +#X obj 140 139 r \$0-decay; +#X obj 70 140 *~ 0.5; +#X connect 0 0 3 0; +#X connect 2 0 3 1; +#X connect 3 0 1 0; +#X restore 257 250 pd decay; +#N canvas 0 0 466 316 decay 0; +#X obj 71 66 inlet~; +#X obj 71 220 outlet~; +#X obj 140 139 r \$0-decay; +#X obj 70 140 *~ 0.5; +#X connect 0 0 3 0; +#X connect 2 0 3 1; +#X connect 3 0 1 0; +#X restore 43 87 pd decay; +#N canvas 0 0 466 316 decay 0; +#X obj 71 66 inlet~; +#X obj 71 220 outlet~; +#X obj 140 139 r \$0-decay; +#X obj 70 140 *~ 0.5; +#X connect 0 0 3 0; +#X connect 2 0 3 1; +#X connect 3 0 1 0; +#X restore 273 85 pd decay; +#N canvas 0 0 498 348 decay_diffusion1 0; +#N canvas 232 298 494 344 excursion 0; +#X obj 66 192 outlet~; +#X obj 62 90 osc~ 1; +#X obj 63 143 *~ 0.53761; +#X obj 138 109 r \$0-excursion; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X connect 3 0 2 1; +#X restore 133 120 pd excursion; +#X obj 43 32 inlet~; +#X obj 44 250 outlet~; +#X obj 88 84 r \$0-decay_diffusion1; +#N canvas 409 74 612 523 allpassvd 0; +#X obj 48 83 inlet~; +#X obj 48 296 +~; +#X obj 285 142 loadbang; +#X obj 285 196 t f f; +#X obj 285 220 *; +#X obj 285 244 expr 1-$f1; +#X obj 229 277 *~; +#X obj 216 300 +~; +#X obj 94 138 * -1; +#X obj 80 163 *~; +#X obj 217 401 outlet~; +#X obj 392 30 inlet~; +#X obj 447 56 sig~; +#X obj 447 10 loadbang; +#X obj 390 78 +~; +#X obj 255 45 inlet; +#X obj 94 60 loadbang; +#X text 9 6 arguments: delay(ms) feedback(mult); +#X text 10 20 inlets: signal feedback(mult) excursion; +#X obj 94 114 f 0.7; +#X obj 230 152 *~ 0.7; +#X obj 285 172 f 0.7; +#X obj 391 404 +~; +#X text 372 428 excursion; +#X obj 48 327 delwrite~ \$0-tap_23_24 100; +#X obj 283 101 vd~ \$0-tap_23_24; +#X obj 447 33 f 22.5599; +#X connect 0 0 1 0; +#X connect 0 0 9 0; +#X connect 1 0 24 0; +#X connect 2 0 21 0; +#X connect 3 0 4 0; +#X connect 3 1 4 1; +#X connect 4 0 5 0; +#X connect 5 0 6 1; +#X connect 6 0 7 1; +#X connect 7 0 10 0; +#X connect 8 0 9 1; +#X connect 9 0 7 0; +#X connect 11 0 14 0; +#X connect 12 0 14 1; +#X connect 13 0 26 0; +#X connect 14 0 22 0; +#X connect 14 0 25 0; +#X connect 15 0 19 0; +#X connect 15 0 20 1; +#X connect 15 0 21 0; +#X connect 16 0 19 0; +#X connect 19 0 8 0; +#X connect 20 0 1 1; +#X connect 20 0 6 0; +#X connect 21 0 3 0; +#X connect 25 0 20 0; +#X connect 26 0 12 0; +#X restore 43 150 pd allpassvd; +#X connect 0 0 4 2; +#X connect 1 0 4 0; +#X connect 3 0 4 1; +#X connect 4 0 2 0; +#X restore 44 156 pd decay_diffusion1; +#N canvas 0 0 529 394 decay_diffusion1 0; +#N canvas 232 298 482 332 excursion 0; +#X obj 65 192 outlet~; +#X obj 63 81 osc~ 1; +#X obj 64 134 *~ 0.53761; +#X obj 139 104 r \$0-excursion; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X connect 3 0 2 1; +#X restore 138 92 pd excursion; +#X obj 49 25 inlet~; +#X obj 49 200 outlet~; +#X obj 93 60 r \$0-decay_diffusion1; +#N canvas 348 52 608 519 allpassvd 0; +#X obj 48 83 inlet~; +#X obj 48 296 +~; +#X obj 285 142 loadbang; +#X obj 285 196 t f f; +#X obj 285 220 *; +#X obj 285 244 expr 1-$f1; +#X obj 229 277 *~; +#X obj 216 300 +~; +#X obj 94 138 * -1; +#X obj 80 163 *~; +#X obj 217 401 outlet~; +#X obj 392 30 inlet~; +#X obj 447 56 sig~; +#X obj 447 10 loadbang; +#X obj 390 78 +~; +#X obj 255 45 inlet; +#X obj 94 60 loadbang; +#X text 9 6 arguments: delay(ms) feedback(mult); +#X text 10 20 inlets: signal feedback(mult) excursion; +#X obj 48 327 delwrite~ \$0-tap_46_48 100; +#X obj 283 101 vd~ \$0-tap_46_48; +#X obj 447 33 f 30.5097; +#X obj 94 114 f 0.7; +#X obj 230 152 *~ 0.7; +#X obj 285 172 f 0.7; +#X obj 391 404 +~; +#X text 372 428 excursion; +#X connect 0 0 1 0; +#X connect 0 0 9 0; +#X connect 1 0 19 0; +#X connect 2 0 24 0; +#X connect 3 0 4 0; +#X connect 3 1 4 1; +#X connect 4 0 5 0; +#X connect 5 0 6 1; +#X connect 6 0 7 1; +#X connect 7 0 10 0; +#X connect 8 0 9 1; +#X connect 9 0 7 0; +#X connect 11 0 14 0; +#X connect 12 0 14 1; +#X connect 13 0 21 0; +#X connect 14 0 20 0; +#X connect 14 0 25 0; +#X connect 15 0 22 0; +#X connect 15 0 23 1; +#X connect 15 0 24 0; +#X connect 16 0 22 0; +#X connect 20 0 23 0; +#X connect 21 0 12 0; +#X connect 22 0 8 0; +#X connect 23 0 1 1; +#X connect 23 0 6 0; +#X connect 24 0 3 0; +#X restore 48 135 pd allpassvd; +#X connect 0 0 4 2; +#X connect 1 0 4 0; +#X connect 3 0 4 1; +#X connect 4 0 2 0; +#X restore 256 155 pd decay_diffusion1; +#N canvas 327 329 552 336 decay_diffusion2 0; +#X obj 37 63 inlet~; +#X obj 37 220 outlet~; +#N canvas 393 17 582 586 allpass 0; +#X obj 56 127 inlet~; +#X obj 56 400 +~; +#X obj 427 232 loadbang; +#X obj 417 286 t f f; +#X obj 417 310 *; +#X obj 417 334 expr 1-$f1; +#X obj 253 364 *~; +#X obj 232 394 +~; +#X obj 114 177 * -1; +#X obj 88 207 *~; +#X obj 232 426 outlet~; +#X obj 417 129 inlet; +#X obj 114 117 loadbang; +#X obj 75 365 *~ -1; +#X obj 201 364 *~ -1; +#X obj 252 52 delread~ \$0-tap_31_33 60.4818; +#X obj 56 491 delwrite~ \$0-tap_31_33 200; +#X obj 114 149 f 0.5; +#X obj 252 262 *~ 0.5; +#X obj 417 262 f 0.5; +#X connect 0 0 1 0; +#X connect 0 0 9 0; +#X connect 1 0 16 0; +#X connect 2 0 19 0; +#X connect 3 0 4 0; +#X connect 3 1 4 1; +#X connect 4 0 5 0; +#X connect 5 0 6 1; +#X connect 6 0 7 1; +#X connect 7 0 10 0; +#X connect 8 0 9 1; +#X connect 9 0 14 0; +#X connect 11 0 17 0; +#X connect 11 0 18 1; +#X connect 11 0 19 0; +#X connect 12 0 17 0; +#X connect 13 0 1 1; +#X connect 14 0 7 0; +#X connect 15 0 18 0; +#X connect 17 0 8 0; +#X connect 18 0 6 0; +#X connect 18 0 13 0; +#X connect 19 0 3 0; +#X restore 36 143 pd allpass tap_31_33; +#X obj 191 114 r \$0-decay_diffusion2; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 3 0 2 1; +#X restore 43 277 pd decay_diffusion2; +#N canvas 0 0 553 336 decay_diffusion2 0; +#X obj 52 38 inlet~; +#X obj 54 171 outlet~; +#X obj 210 85 r \$0-decay_diffusion2; +#N canvas 393 17 586 590 allpass 0; +#X obj 56 127 inlet~; +#X obj 56 400 +~; +#X obj 427 232 loadbang; +#X obj 417 286 t f f; +#X obj 417 310 *; +#X obj 417 334 expr 1-$f1; +#X obj 253 364 *~; +#X obj 232 394 +~; +#X obj 114 177 * -1; +#X obj 88 207 *~; +#X obj 232 426 outlet~; +#X obj 417 129 inlet; +#X obj 114 117 loadbang; +#X obj 75 365 *~ -1; +#X obj 201 364 *~ -1; +#X obj 114 149 f 0.5; +#X obj 252 262 *~ 0.5; +#X obj 417 262 f 0.5; +#X obj 56 491 delwrite~ \$0-tap_55_59 200; +#X obj 252 52 delread~ \$0-tap_55_59 89.2443; +#X connect 0 0 1 0; +#X connect 0 0 9 0; +#X connect 1 0 18 0; +#X connect 2 0 17 0; +#X connect 3 0 4 0; +#X connect 3 1 4 1; +#X connect 4 0 5 0; +#X connect 5 0 6 1; +#X connect 6 0 7 1; +#X connect 7 0 10 0; +#X connect 8 0 9 1; +#X connect 9 0 14 0; +#X connect 11 0 15 0; +#X connect 11 0 16 1; +#X connect 11 0 17 0; +#X connect 12 0 15 0; +#X connect 13 0 1 1; +#X connect 14 0 7 0; +#X connect 15 0 8 0; +#X connect 16 0 6 0; +#X connect 16 0 13 0; +#X connect 17 0 3 0; +#X connect 19 0 16 0; +#X restore 55 114 pd allpass tap_55_59; +#X connect 0 0 3 0; +#X connect 2 0 3 1; +#X connect 3 0 1 0; +#X restore 256 278 pd decay_diffusion2; +#N canvas 0 0 454 304 feedback 0; +#X obj 43 118 outlet~; +#X obj 44 55 delread~ \$0-tap_59_63 106.28; +#X connect 1 0 0 0; +#X restore 43 49 pd feedback; +#N canvas 0 0 454 304 feedback 0; +#X obj 81 188 outlet~; +#X obj 81 134 delread~ \$0-tap_33_39 124.996; +#X connect 1 0 0 0; +#X restore 274 51 pd feedback; +#N canvas 0 0 458 308 to_left 0; +#X obj 48 52 inlet~; +#X obj 48 95 delwrite~ \$0-tap_59_63 106.28; +#X connect 0 0 1 0; +#X restore 255 306 pd to_left; +#N canvas 0 0 454 304 to_right 0; +#X obj 53 173 delwrite~ \$0-tap_33_39 124.996; +#X obj 56 100 inlet~; +#X connect 1 0 0 0; +#X restore 44 305 pd to_right; +#X text 344 190 48_54; +#X text 136 193 24_30; +#X connect 0 0 1 1; +#X connect 0 0 2 0; +#X connect 1 0 11 0; +#X connect 2 0 12 0; +#X connect 3 0 6 0; +#X connect 4 0 5 0; +#X connect 5 0 7 0; +#X connect 6 0 8 0; +#X connect 7 0 13 0; +#X connect 8 0 14 0; +#X connect 9 0 1 0; +#X connect 10 0 2 1; +#X connect 11 0 4 0; +#X connect 12 0 3 0; +#X connect 13 0 18 0; +#X connect 14 0 17 0; +#X connect 15 0 9 0; +#X connect 16 0 10 0; +#X restore 25 198 pd reverberation_tank; +#N canvas 58 172 593 487 predelay 0; +#X obj 97 19 inlet~; +#X obj 97 317 outlet~; +#X obj 393 56 sel 0; +#X obj 96 209 *~ 1; +#X obj 110 178 f 1; +#X obj 140 179 f 0; +#X obj 428 106 t a b; +#X obj 377 222 *~ 1; +#X obj 402 191 f 0; +#X obj 433 191 f 1; +#X text 17 210 no delay; +#X text 237 212 delay; +#N canvas 0 0 496 308 predelay 0; +#X obj 35 52 inlet~; +#X obj 263 227 outlet~; +#X obj 264 50 inlet; +#X obj 35 101 delwrite~ \$0-predelay 1000; +#X obj 264 183 delread~ \$0-predelay 1; +#X connect 0 0 3 0; +#X connect 2 0 4 0; +#X connect 4 0 1 0; +#X restore 297 190 pd predelay; +#X obj 393 25 r \$0-predelay; +#X connect 0 0 3 0; +#X connect 0 0 12 0; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 2 1 6 0; +#X connect 3 0 1 0; +#X connect 4 0 3 1; +#X connect 5 0 3 1; +#X connect 6 0 12 1; +#X connect 6 1 5 0; +#X connect 6 1 9 0; +#X connect 7 0 1 0; +#X connect 8 0 7 1; +#X connect 9 0 7 1; +#X connect 12 0 7 0; +#X connect 13 0 2 0; +#X restore 25 105 pd predelay; +#X obj 85 32 inlet~; +#X obj 223 35 inlet; +#N canvas 0 0 458 308 bandwidth 0; +#X obj 66 22 inlet~; +#X obj 65 183 outlet~; +#X obj 65 107 lop~; +#X obj 92 74 r \$0-bandwidth; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 3 0 2 1; +#X restore 25 137 pd bandwidth; +#N canvas 0 43 903 567 params 0; +#X obj 44 29 inlet; +#X obj 44 158 s \$0-predelay; +#X obj 161 158 s \$0-bandwidth; +#X obj 44 205 route input_diffusion1 input_diffusion2 decay_diffusion1 +decay_diffusion2; +#X obj 44 65 route predelay bandwidth damping decay; +#X obj 285 157 s \$0-damping; +#X obj 398 158 s \$0-decay; +#X obj 44 312 s \$0-input_diffusion1; +#X obj 224 312 s \$0-input_diffusion2; +#X obj 400 313 s \$0-decay_diffusion1; +#X obj 580 314 s \$0-decay_diffusion2; +#X obj 42 450 s \$0-excursion; +#N canvas 295 162 450 343 default 0; +#X obj 55 33 inlet; +#X obj 55 299 outlet; +#X obj 194 34 loadbang; +#X obj 231 144 f 0; +#X obj 55 198 f; +#X obj 194 69 t b b; +#X obj 174 97 f \$1; +#X obj 174 124 sel 0; +#X text 269 145 default; +#X text 250 97 argument; +#X connect 0 0 4 0; +#X connect 2 0 5 0; +#X connect 3 0 4 0; +#X connect 4 0 1 0; +#X connect 5 0 6 0; +#X connect 5 1 3 0; +#X connect 6 0 7 0; +#X connect 7 1 4 0; +#X restore 44 110 pd default; +#N canvas 295 162 450 343 default 0; +#X obj 55 33 inlet; +#X obj 55 299 outlet; +#X obj 194 34 loadbang; +#X obj 55 198 f; +#X obj 194 69 t b b; +#X obj 174 124 sel 0; +#X text 299 145 default; +#X text 250 97 argument; +#X obj 174 97 f \$2; +#X obj 231 144 f 22050; +#X connect 0 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 1 0; +#X connect 4 0 8 0; +#X connect 4 1 9 0; +#X connect 5 1 3 0; +#X connect 8 0 5 0; +#X connect 9 0 3 0; +#X restore 161 111 pd default; +#N canvas 295 162 450 343 default 0; +#X obj 55 33 inlet; +#X obj 55 299 outlet; +#X obj 194 34 loadbang; +#X obj 55 198 f; +#X obj 194 69 t b b; +#X obj 174 124 sel 0; +#X text 299 145 default; +#X text 250 97 argument; +#X obj 174 97 f \$3; +#X obj 231 144 f 22050; +#X connect 0 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 1 0; +#X connect 4 0 8 0; +#X connect 4 1 9 0; +#X connect 5 1 3 0; +#X connect 8 0 5 0; +#X connect 9 0 3 0; +#X restore 285 112 pd default; +#N canvas 295 162 450 343 default 0; +#X obj 55 33 inlet; +#X obj 55 299 outlet; +#X obj 194 34 loadbang; +#X obj 55 198 f; +#X obj 194 69 t b b; +#X obj 174 124 sel 0; +#X text 299 145 default; +#X text 250 97 argument; +#X obj 174 97 f \$4; +#X obj 231 144 f 0.5; +#X connect 0 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 1 0; +#X connect 4 0 8 0; +#X connect 4 1 9 0; +#X connect 5 1 3 0; +#X connect 8 0 5 0; +#X connect 9 0 3 0; +#X restore 398 112 pd default; +#N canvas 295 162 450 343 default 0; +#X obj 55 33 inlet; +#X obj 55 299 outlet; +#X obj 194 34 loadbang; +#X obj 55 198 f; +#X obj 194 69 t b b; +#X obj 174 124 sel 0; +#X text 299 145 default; +#X text 250 97 argument; +#X obj 174 97 f \$5; +#X obj 231 144 f 0.75; +#X connect 0 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 1 0; +#X connect 4 0 8 0; +#X connect 4 1 9 0; +#X connect 5 1 3 0; +#X connect 8 0 5 0; +#X connect 9 0 3 0; +#X restore 44 266 pd default; +#N canvas 295 162 450 343 default 0; +#X obj 55 33 inlet; +#X obj 55 299 outlet; +#X obj 194 34 loadbang; +#X obj 55 198 f; +#X obj 194 69 t b b; +#X obj 174 124 sel 0; +#X text 299 145 default; +#X text 250 97 argument; +#X obj 174 97 f \$6; +#X obj 231 144 f 0.625; +#X connect 0 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 1 0; +#X connect 4 0 8 0; +#X connect 4 1 9 0; +#X connect 5 1 3 0; +#X connect 8 0 5 0; +#X connect 9 0 3 0; +#X restore 224 269 pd default; +#N canvas 295 162 450 343 default 0; +#X obj 55 33 inlet; +#X obj 55 299 outlet; +#X obj 194 34 loadbang; +#X obj 55 198 f; +#X obj 194 69 t b b; +#X obj 174 124 sel 0; +#X text 299 145 default; +#X text 250 97 argument; +#X obj 174 97 f \$7; +#X obj 231 144 f 0.7; +#X connect 0 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 1 0; +#X connect 4 0 8 0; +#X connect 4 1 9 0; +#X connect 5 1 3 0; +#X connect 8 0 5 0; +#X connect 9 0 3 0; +#X restore 400 268 pd default; +#N canvas 295 162 450 343 default 0; +#X obj 55 33 inlet; +#X obj 55 299 outlet; +#X obj 194 34 loadbang; +#X obj 55 198 f; +#X obj 194 69 t b b; +#X obj 174 124 sel 0; +#X text 299 145 default; +#X text 250 97 argument; +#X obj 174 97 f \$8; +#X obj 231 144 f 0.5; +#X connect 0 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 1 0; +#X connect 4 0 8 0; +#X connect 4 1 9 0; +#X connect 5 1 3 0; +#X connect 8 0 5 0; +#X connect 9 0 3 0; +#X restore 580 268 pd default; +#N canvas 189 104 450 343 default 0; +#X obj 55 33 inlet; +#X obj 55 299 outlet; +#X obj 194 34 loadbang; +#X obj 55 198 f; +#X obj 194 69 t b b; +#X obj 174 124 sel 0; +#X text 319 145 default; +#X text 250 97 argument; +#X obj 174 97 f \$9; +#X obj 231 144 f 0.53761; +#X connect 0 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 1 0; +#X connect 4 0 8 0; +#X connect 4 1 9 0; +#X connect 5 1 3 0; +#X connect 8 0 5 0; +#X connect 9 0 3 0; +#X restore 42 404 pd default; +#X obj 42 361 route excursion; +#X obj 218 416 print jon~_nosuchparameter; +#X connect 0 0 4 0; +#X connect 3 0 16 0; +#X connect 3 1 17 0; +#X connect 3 2 18 0; +#X connect 3 3 19 0; +#X connect 3 4 21 0; +#X connect 4 0 12 0; +#X connect 4 1 13 0; +#X connect 4 2 14 0; +#X connect 4 3 15 0; +#X connect 4 4 3 0; +#X connect 12 0 1 0; +#X connect 13 0 2 0; +#X connect 14 0 5 0; +#X connect 15 0 6 0; +#X connect 16 0 7 0; +#X connect 17 0 8 0; +#X connect 18 0 9 0; +#X connect 19 0 10 0; +#X connect 20 0 11 0; +#X connect 21 0 20 0; +#X connect 21 1 22 0; +#X restore 223 72 pd params; +#N canvas 0 0 458 308 1/2 0; +#X obj 102 56 inlet~; +#X obj 182 56 inlet~; +#X obj 103 138 *~ 0.5; +#X obj 103 102 +~; +#X obj 103 175 outlet~; +#X connect 0 0 3 0; +#X connect 1 0 3 1; +#X connect 2 0 4 0; +#X connect 3 0 2 0; +#X restore 25 72 pd 1/2; +#N canvas 120 111 856 498 output_taps 0; +#X obj 28 409 outlet~; +#X obj 30 267 -~; +#X obj 31 109 +~; +#X obj 30 215 +~; +#X obj 29 369 -~; +#X text 30 26 left; +#X obj 32 55 delread~ \$0-tap_48_54 8.93787; +#X obj 51 82 delread~ \$0-tap_48_54 99.9294; +#X obj 50 134 delread~ \$0-tap_55_59 64.2787; +#X obj 31 163 -~; +#X obj 49 188 delread~ \$0-tap_59_63 67.0676; +#X obj 50 240 delread~ \$0-tap_24_30 66.866; +#X obj 50 293 delread~ \$0-tap_31_33 6.28339; +#X obj 30 317 -~; +#X obj 49 342 delread~ \$0-tap_33_39 35.8187; +#X obj 371 407 outlet~; +#X obj 370 105 +~; +#X obj 371 261 -~; +#X obj 370 208 +~; +#X obj 371 365 -~; +#X text 370 20 right; +#X obj 371 51 delread~ \$0-tap_24_30 11.8612; +#X obj 390 78 delread~ \$0-tap_24_30 121.871; +#X obj 390 130 delread~ \$0-tap_31_33 41.2621; +#X obj 390 181 delread~ \$0-tap_33_39 89.8155; +#X obj 391 234 delread~ \$0-tap_48_54 70.9317; +#X obj 372 313 -~; +#X obj 392 286 delread~ \$0-tap_55_59 11.2563; +#X obj 390 338 delread~ \$0-tap_59_63 4.06572; +#X obj 370 154 -~; +#X connect 1 0 13 0; +#X connect 2 0 9 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X connect 6 0 2 0; +#X connect 7 0 2 1; +#X connect 8 0 9 1; +#X connect 9 0 3 0; +#X connect 10 0 3 1; +#X connect 11 0 1 1; +#X connect 12 0 13 1; +#X connect 13 0 4 0; +#X connect 14 0 4 1; +#X connect 16 0 29 0; +#X connect 17 0 26 0; +#X connect 18 0 17 0; +#X connect 19 0 15 0; +#X connect 21 0 16 0; +#X connect 22 0 16 1; +#X connect 23 0 29 1; +#X connect 24 0 18 1; +#X connect 25 0 17 1; +#X connect 26 0 19 0; +#X connect 27 0 26 1; +#X connect 28 0 19 1; +#X connect 29 0 18 0; +#X restore 27 247 pd output_taps; +#X connect 0 0 10 0; +#X connect 3 0 4 0; +#X connect 5 0 8 0; +#X connect 6 0 10 1; +#X connect 7 0 9 0; +#X connect 8 0 3 0; +#X connect 10 0 5 0; +#X connect 11 0 1 0; +#X connect 11 1 2 0; diff --git a/l2ork_addons/rjlib/rj/m.txt b/l2ork_addons/rjlib/rj/m.txt new file mode 100644 index 000000000..dbed6ebb5 --- /dev/null +++ b/l2ork_addons/rjlib/rj/m.txt @@ -0,0 +1,3 @@ +m_bpm2ms +m_scale +m_speedlimit diff --git a/l2ork_addons/rjlib/rj/m_bpm2ms-help.pd b/l2ork_addons/rjlib/rj/m_bpm2ms-help.pd new file mode 100644 index 000000000..3e04cfa2f --- /dev/null +++ b/l2ork_addons/rjlib/rj/m_bpm2ms-help.pd @@ -0,0 +1,28 @@ +#N canvas 233 267 744 433 10; +#X obj 132 161 m_bpm2ms; +#X floatatom 132 137 5 0 0 1 BPM - -; +#X floatatom 132 191 5 0 0 1 Period_in_milliseconds - -; +#X msg 132 111 120; +#X obj 132 246 t a a; +#X obj 132 296 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 132 273 metro; +#X msg 83 246 stop; +#X obj 42 36 m_bpm2ms; +#X obj 446 198 m_bpm2ms; +#X floatatom 446 178 5 0 0 1 Period_in_milliseconds - -; +#X floatatom 446 220 5 0 0 1 BPM - -; +#X text 117 32 convert between a frequeny specified as BPM (beats per +minute) to a period in milliseconds (and back).; +#X text 440 149 Works both ways:; +#X connect 0 0 2 0; +#X connect 0 0 10 0; +#X connect 1 0 0 0; +#X connect 2 0 4 0; +#X connect 3 0 1 0; +#X connect 4 0 6 0; +#X connect 4 1 6 1; +#X connect 6 0 5 0; +#X connect 7 0 6 0; +#X connect 9 0 11 0; +#X connect 10 0 9 0; diff --git a/l2ork_addons/rjlib/rj/m_bpm2ms.pd b/l2ork_addons/rjlib/rj/m_bpm2ms.pd new file mode 100644 index 000000000..309d104a6 --- /dev/null +++ b/l2ork_addons/rjlib/rj/m_bpm2ms.pd @@ -0,0 +1,9 @@ +#N canvas 403 503 450 300 10; +#X obj 93 50 inlet; +#X obj 93 102 swap 60000; +#X obj 93 131 /; +#X obj 93 182 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 2 1; +#X connect 2 0 3 0; diff --git a/l2ork_addons/rjlib/rj/m_scale-help.pd b/l2ork_addons/rjlib/rj/m_scale-help.pd new file mode 100644 index 000000000..0e6b99f42 --- /dev/null +++ b/l2ork_addons/rjlib/rj/m_scale-help.pd @@ -0,0 +1,109 @@ +#N canvas 113 38 819 543 10; +#X floatatom 95 146 5 0 0 0 - - -; +#X floatatom 95 340 5 0 0 0 - - -; +#X floatatom 515 275 5 0 0 0 - - -; +#X floatatom 515 319 5 0 0 0 - - -; +#X obj 518 253 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X floatatom 652 276 5 0 0 0 - - -; +#X floatatom 122 174 5 0 0 1 in_low_border - -; +#X floatatom 149 195 5 0 0 1 in_high_border - -; +#X floatatom 177 220 5 0 0 1 out_low_border - -; +#X floatatom 204 248 5 0 0 1 out_high_border - -; +#X text 65 31 m_scale; +#X floatatom 456 405 5 0 0 0 - - -; +#X floatatom 456 445 5 0 0 0 - - -; +#X text 57 424 Actually low values also may be higher than high values: +; +#X floatatom 232 268 5 0 0 1 curve_exponent - -; +#X msg 255 289 dB; +#X text 295 291 send "dB" to use dB scale; +#X obj 518 336 hsl 128 15 0 1 0 0 empty empty 0-1 20 8 1 10 -262144 +-1 -1 127 1; +#X obj 459 468 hsl 128 15 0 100 0 0 empty empty 0-100 20 8 1 10 -262144 +-1 -1 7600 1; +#X obj 459 373 hsl 128 15 0 100 0 0 empty empty 0-100 20 8 1 10 -262144 +-1 -1 5100 1; +#N canvas 381 198 613 435 visual-example 1; +#X floatatom 111 114 5 0 0 0 - - -; +#X floatatom 127 136 5 0 0 0 - - -; +#X floatatom 187 115 5 0 0 0 - - -; +#X floatatom 201 138 5 0 0 0 - - -; +#X floatatom 55 219 5 0 0 0 - - -; +#X floatatom 276 113 5 0 0 0 - - -; +#N canvas 0 0 450 300 (subpatch) 0; +#X array \$0-map 100 float 2; +#X coords 0 1 99 -1 200 140 1; +#X restore 272 182 graph; +#X msg 275 132 dB; +#X obj 55 290 tabwrite \$0-map; +#N canvas 0 0 450 300 count-to-100 0; +#X obj 171 145 until; +#X msg 171 88 100; +#X obj 171 173 f 0; +#X obj 202 174 + 1; +#X obj 214 144 0; +#X obj 171 116 t a b; +#X obj 170 198 outlet; +#X obj 171 61 inlet; +#X connect 0 0 2 0; +#X connect 1 0 5 0; +#X connect 2 0 3 0; +#X connect 2 0 6 0; +#X connect 3 0 2 1; +#X connect 4 0 2 1; +#X connect 5 0 0 0; +#X connect 5 1 4 0; +#X connect 7 0 1 0; +#X restore 55 70 pd count-to-100; +#X obj 55 49 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 55 100 t a a; +#X msg 267 79 0.5; +#X msg 303 79 1; +#X msg 335 79 2; +#X msg 372 79 4; +#X obj 55 195 m_scale 0 100 -1 1 dB; +#X connect 0 0 16 1; +#X connect 1 0 16 2; +#X connect 2 0 16 3; +#X connect 3 0 16 4; +#X connect 4 0 8 0; +#X connect 5 0 16 5; +#X connect 7 0 16 5; +#X connect 9 0 11 0; +#X connect 10 0 9 0; +#X connect 11 0 16 0; +#X connect 11 1 8 1; +#X connect 12 0 5 0; +#X connect 13 0 5 0; +#X connect 14 0 5 0; +#X connect 15 0 5 0; +#X connect 16 0 4 0; +#X restore 507 161 pd visual-example; +#X msg 696 275 dB; +#X text 82 54 scale input range to output range with linear or exponential +interpolation.; +#X text 83 91 Args: <in_low> <in_high> <out_low> <out_high> <optional: +curve exp. or "dB">; +#X obj 515 298 m_scale 0 127 0 1 dB; +#X obj 95 289 m_scale -10 10 0 100; +#X obj 456 424 m_scale 100 0 0 100 1; +#X connect 0 0 25 0; +#X connect 2 0 24 0; +#X connect 3 0 17 0; +#X connect 4 0 2 0; +#X connect 5 0 24 5; +#X connect 6 0 25 1; +#X connect 7 0 25 2; +#X connect 8 0 25 3; +#X connect 9 0 25 4; +#X connect 11 0 26 0; +#X connect 12 0 18 0; +#X connect 14 0 25 5; +#X connect 15 0 25 5; +#X connect 19 0 11 0; +#X connect 21 0 24 5; +#X connect 24 0 3 0; +#X connect 25 0 1 0; +#X connect 26 0 12 0; diff --git a/l2ork_addons/rjlib/rj/m_scale.pd b/l2ork_addons/rjlib/rj/m_scale.pd new file mode 100644 index 000000000..eb872664f --- /dev/null +++ b/l2ork_addons/rjlib/rj/m_scale.pd @@ -0,0 +1,153 @@ +#N canvas 307 118 953 643 10; +#X obj 197 174 f \$1; +#X obj 367 176 f \$4; +#X obj 317 172 f \$3; +#X obj 247 172 f \$2; +#X obj 197 85 inlet; +#X obj 247 85 inlet; +#X obj 317 85 inlet; +#X obj 367 85 inlet; +#X obj 111 54 inlet; +#X obj 111 558 outlet; +#X text 522 49 ARGS; +#X text 532 73 1: input_low_border; +#X text 532 95 2: input_high_border; +#X text 532 121 3: output_low_border; +#X text 532 143 4: output_high_border; +#X text 174 54 scale [from_low \, from_hi] to [to_low \, to_hi]; +#X obj 416 126 t b b b b; +#X obj 416 84 loadbang; +#X obj 111 525 +; +#X text 229 297 inh-inl; +#X text 354 286 outh-outl; +#X obj 111 488 *; +#X text 143 338 - inl; +#X text 143 526 + outl; +#X obj 247 237 t b a; +#X obj 367 225 t b a; +#X msg 425 105 bang; +#X obj 111 364 / 1; +#X obj 111 340 -; +#X obj 317 287 -; +#X obj 317 266 swap; +#X obj 197 271 swap; +#X obj 197 296 -; +#N canvas 0 0 549 462 mapping 0; +#X obj 103 74 inlet; +#X obj 103 358 outlet; +#X obj 133 265 pow 1; +#X obj 206 75 inlet; +#X obj 206 120 select 1; +#X obj 187 254 * 2; +#X obj 187 227 - 1; +#X msg 187 276 10 \$1; +#X obj 206 96 route float dB; +#N canvas 477 233 525 407 demux3 0; +#X obj 88 263 outlet; +#X obj 88 226 spigot 1; +#X obj 171 264 outlet; +#X obj 171 227 spigot 0; +#X obj 241 264 outlet; +#X obj 241 227 spigot 0; +#X obj 265 152 unpack 0 0 0; +#X obj 88 51 inlet; +#X obj 265 57 inlet; +#X msg 265 109 1 0 0; +#X msg 311 110 0 1 0; +#X msg 360 110 0 0 1; +#X obj 265 83 select 0 1 2; +#X connect 1 0 0 0; +#X connect 3 0 2 0; +#X connect 5 0 4 0; +#X connect 6 0 1 1; +#X connect 6 1 3 1; +#X connect 6 2 5 1; +#X connect 7 0 1 0; +#X connect 7 0 3 0; +#X connect 7 0 5 0; +#X connect 8 0 12 0; +#X connect 9 0 6 0; +#X connect 10 0 6 0; +#X connect 11 0 6 0; +#X connect 12 0 9 0; +#X connect 12 1 10 0; +#X connect 12 2 11 0; +#X restore 103 204 pd demux3; +#X msg 206 142 0; +#X msg 259 142 1; +#X msg 301 143 2; +#X obj 187 302 pow; +#X connect 0 0 9 0; +#X connect 2 0 1 0; +#X connect 3 0 8 0; +#X connect 4 0 10 0; +#X connect 4 1 11 0; +#X connect 5 0 7 0; +#X connect 6 0 5 0; +#X connect 7 0 13 0; +#X connect 8 0 4 0; +#X connect 8 0 2 1; +#X connect 8 1 12 0; +#X connect 9 0 1 0; +#X connect 9 1 2 0; +#X connect 9 2 6 0; +#X connect 10 0 9 1; +#X connect 11 0 9 1; +#X connect 12 0 9 1; +#X connect 13 0 1 0; +#X restore 111 454 pd mapping; +#X obj 620 263 inlet; +#X obj 620 312 list append \$5; +#X obj 673 381 list trim; +#X obj 620 360 select 0; +#X msg 688 285 symbol dB; +#X msg 620 381 1; +#X obj 555 262 loadbang; +#X text 620 242 mapping; +#X obj 620 287 t a b; +#X obj 620 335 list split 1; +#X text 533 170 5: mapping: float is a pow-exponent \, "dB" can be +used to use a dB scaling (optional \, default is linear); +#X connect 0 0 28 1; +#X connect 0 0 31 0; +#X connect 1 0 25 0; +#X connect 2 0 18 1; +#X connect 2 0 30 0; +#X connect 3 0 24 0; +#X connect 4 0 0 0; +#X connect 5 0 3 0; +#X connect 6 0 2 0; +#X connect 7 0 1 0; +#X connect 8 0 28 0; +#X connect 16 0 0 0; +#X connect 16 1 3 0; +#X connect 16 2 2 0; +#X connect 16 3 1 0; +#X connect 17 0 16 0; +#X connect 18 0 9 0; +#X connect 21 0 18 0; +#X connect 24 0 31 0; +#X connect 24 1 31 1; +#X connect 25 0 30 0; +#X connect 25 1 30 1; +#X connect 26 0 16 0; +#X connect 27 0 33 0; +#X connect 28 0 27 0; +#X connect 29 0 21 1; +#X connect 30 0 29 0; +#X connect 30 1 29 1; +#X connect 31 0 32 0; +#X connect 31 1 32 1; +#X connect 32 0 27 1; +#X connect 33 0 21 0; +#X connect 34 0 42 0; +#X connect 35 0 43 0; +#X connect 36 0 33 1; +#X connect 37 0 39 0; +#X connect 37 1 36 0; +#X connect 38 0 35 0; +#X connect 39 0 33 1; +#X connect 40 0 35 0; +#X connect 42 0 35 0; +#X connect 42 1 35 1; +#X connect 43 0 37 0; diff --git a/l2ork_addons/rjlib/rj/m_speedlimit-help.pd b/l2ork_addons/rjlib/rj/m_speedlimit-help.pd new file mode 100644 index 000000000..a4a920727 --- /dev/null +++ b/l2ork_addons/rjlib/rj/m_speedlimit-help.pd @@ -0,0 +1,26 @@ +#N canvas 357 235 570 396 10; +#X obj 128 264 t b b; +#X obj 128 298 timer; +#X floatatom 128 325 5 0 0 0 - - -; +#X obj 128 130 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X floatatom 188 130 5 0 0 0 - - -; +#X obj 128 354 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X floatatom 237 167 5 0 0 1 limit(ms) - -; +#X obj 128 192 m_speedlimit 150; +#X text 37 9 m_speedlimit; +#X text 73 95 Works for any data that can be stored in [list].; +#X obj 128 155 metro 100; +#X text 73 34 Impose a limit on the speed of messages.; +#X text 73 58 Fast changing values are mapped to slower changing values +by dropping everything for the limit duration.; +#X connect 0 0 1 0; +#X connect 0 1 1 1; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 3 0 10 0; +#X connect 4 0 10 1; +#X connect 6 0 7 1; +#X connect 7 0 0 0; +#X connect 10 0 7 0; diff --git a/l2ork_addons/rjlib/rj/m_speedlimit.pd b/l2ork_addons/rjlib/rj/m_speedlimit.pd new file mode 100644 index 000000000..8e92e31e4 --- /dev/null +++ b/l2ork_addons/rjlib/rj/m_speedlimit.pd @@ -0,0 +1,59 @@ +#N canvas 384 34 782 432 10; +#X obj 245 86 inlet; +#X obj 115 249 metro 100; +#X obj 115 69 inlet; +#N canvas 0 0 720 312 activity-monitor 0; +#X obj 108 74 inlet; +#X obj 108 103 b; +#X obj 108 160 delay 100; +#X obj 168 73 inlet; +#X obj 108 198 outlet; +#X text 198 132 if no activity for X msec \, then bang outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 4 0; +#X connect 3 0 2 1; +#X restore 161 192 pd activity-monitor; +#X msg 161 218 0; +#X msg 115 218 1; +#X obj 115 288 list append; +#X text 291 87 speed limit (ms); +#X obj 115 315 outlet; +#X obj 115 126 spigot 1; +#X obj 183 126 == 0; +#X obj 115 93 t a b a; +#X text 359 220 1) store data; +#X text 339 190 If data comes in:; +#X text 360 240 2) start activity monitor; +#X obj 420 55 loadbang; +#X obj 420 80 f \$1; +#X obj 420 108 select 0; +#X msg 420 130 100; +#X obj 245 160 f; +#X text 359 282 4) block system; +#X text 341 315 While blocked \, incoming data is sampled at metro +rate as long as there's activity.; +#X text 340 361 If there's no activity for a metro period \, stop the +metro and unblock the system to accept new data.; +#X text 359 261 3) start metro and output data; +#X connect 0 0 19 0; +#X connect 1 0 6 0; +#X connect 2 0 11 0; +#X connect 3 0 4 0; +#X connect 4 0 1 0; +#X connect 4 0 10 0; +#X connect 5 0 1 0; +#X connect 5 0 10 0; +#X connect 6 0 8 0; +#X connect 9 0 5 0; +#X connect 10 0 9 1; +#X connect 11 0 9 0; +#X connect 11 1 3 0; +#X connect 11 2 6 1; +#X connect 15 0 16 0; +#X connect 16 0 17 0; +#X connect 17 0 18 0; +#X connect 17 1 19 0; +#X connect 18 0 19 0; +#X connect 19 0 3 1; +#X connect 19 0 1 1; diff --git a/l2ork_addons/rjlib/rj/rjdispatch-help.pd b/l2ork_addons/rjlib/rj/rjdispatch-help.pd new file mode 100644 index 000000000..a96aa5103 --- /dev/null +++ b/l2ork_addons/rjlib/rj/rjdispatch-help.pd @@ -0,0 +1,67 @@ +#N canvas 212 72 973 689 10; +#X obj 121 172 inlet; +#X floatatom 175 194 5 0 0 0 - - -; +#X floatatom 383 334 5 0 0 0 - - -; +#X floatatom 382 525 5 0 0 0 - - -; +#X obj 382 504 r \$0-float; +#X floatatom 272 193 5 0 0 0 - - -; +#X floatatom 525 195 5 0 0 0 - - -; +#X floatatom 382 624 5 0 0 0 - - -; +#X floatatom 322 194 5 0 0 0 - - -; +#X obj 383 383 t a b; +#X obj 383 407 list prepend set; +#X obj 383 429 list trim; +#X msg 383 452 a b c d 93; +#X obj 382 603 r \$0-prep; +#X obj 525 217 list prepend prep; +#X msg 175 215 attack \$1; +#X obj 121 312 rjdispatch \$0 attack; +#X obj 383 313 r \$0-attack; +#X obj 383 360 r \$0-alist; +#X obj 322 216 list prepend alist a b c d; +#X text 84 23 [rjdispatch]; +#X text 123 45 Wrapper around [route] that automatically sends incoming +messages to a receiver called "\$1-\$2" \, if they start with \$2. +; +#X text 125 94 Non-matching messages get passed on to the outlet.; +#X text 124 114 Useful for dispatching of inlet-messages if you create +chains of [rjdispatch] objects like below:; +#X text 274 312 sends to this:; +#X text 271 358 sends to this:; +#X text 268 502 sends to this:; +#X text 268 603 sends to this:; +#X msg 476 271 help; +#X obj 121 503 rjdispatch \$0 float; +#X obj 121 600 rjdispatch \$0 prep; +#X obj 121 359 rjdispatch \$0 alist; +#X text 473 252 special method "help" to print all active rjdispatch +targets; +#X obj 121 630 rjdispatch \$0 bang; +#X obj 258 630 r \$0-bang; +#X msg 135 215 bang; +#X obj 258 658 print BANG; +#X obj 671 527 rjdispatch \$0 symbol; +#X text 643 508 This does not work \, don't use it:; +#X connect 0 0 16 0; +#X connect 1 0 15 0; +#X connect 4 0 3 0; +#X connect 5 0 16 0; +#X connect 6 0 14 0; +#X connect 8 0 19 0; +#X connect 9 0 10 0; +#X connect 9 1 10 0; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 13 0 7 0; +#X connect 14 0 16 0; +#X connect 15 0 16 0; +#X connect 16 0 31 0; +#X connect 17 0 2 0; +#X connect 18 0 9 0; +#X connect 19 0 16 0; +#X connect 28 0 16 0; +#X connect 29 0 30 0; +#X connect 30 0 33 0; +#X connect 31 0 29 0; +#X connect 34 0 36 0; +#X connect 35 0 16 0; diff --git a/l2ork_addons/rjlib/rj/rjdispatch.pd b/l2ork_addons/rjlib/rj/rjdispatch.pd new file mode 100644 index 000000000..9f159ede4 --- /dev/null +++ b/l2ork_addons/rjlib/rj/rjdispatch.pd @@ -0,0 +1,28 @@ +#N canvas 303 323 759 261 10; +#X obj 131 28 inlet; +#X obj 182 185 outlet; +#X obj 131 122 route \$2; +#X obj 131 155 s \$1-\$2; +#X obj 131 98 list trim; +#X obj 273 121 select help; +#X obj 273 158 list append \$2; +#X obj 273 182 list trim; +#X obj 273 205 print dispatcher; +#X obj 273 94 route symbol; +#X obj 273 70 list; +#X obj 470 104 sssad \$2 \$1; +#X obj 470 131 s \$1-\$2; +#X obj 544 73 r \$1-\$2; +#X text 447 73 state saves:; +#X connect 0 0 4 0; +#X connect 0 0 10 0; +#X connect 2 0 3 0; +#X connect 2 1 1 0; +#X connect 4 0 2 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 9 0 5 0; +#X connect 10 0 9 0; +#X connect 11 0 12 0; +#X connect 13 0 11 1; diff --git a/l2ork_addons/rjlib/rj/rjloader-help.pd b/l2ork_addons/rjlib/rj/rjloader-help.pd new file mode 100644 index 000000000..7db9bbab0 --- /dev/null +++ b/l2ork_addons/rjlib/rj/rjloader-help.pd @@ -0,0 +1,3 @@ +#N canvas 341 323 756 361 10; +#X text 134 100 Please see help for rjsave-ex:; +#X obj 148 130 rjsave-ex rjload; diff --git a/l2ork_addons/rjlib/rj/rjloader.pd b/l2ork_addons/rjlib/rj/rjloader.pd new file mode 100644 index 000000000..e2b06ca70 --- /dev/null +++ b/l2ork_addons/rjlib/rj/rjloader.pd @@ -0,0 +1,26 @@ +#N canvas 0 0 797 492 10; +#X obj 151 86 route persist; +#X obj 151 117 list prepend \$1; +#X obj 150 196 list trim; +#X obj 150 222 route \$1; +#X msg 150 328 setonly \$1; +#X obj 150 248 t a a; +#X obj 150 306 list; +#X obj 150 174 r RJ_SCENE_LOAD; +#X obj 151 144 s RJ_SCENE; +#X obj 305 98 r RJ_SCENE_SAVE; +#X obj 151 54 r \$2-SSSAD_ADMIN; +#X obj 150 352 s \$2-SSSAD_ADMIN; +#X obj 182 270 s \$2-SSSAD; +#X obj 305 137 s \$2-SSSAD_ADMIN; +#X connect 0 0 1 0; +#X connect 1 0 8 0; +#X connect 2 0 3 0; +#X connect 3 0 5 0; +#X connect 4 0 11 0; +#X connect 5 0 6 0; +#X connect 5 1 12 0; +#X connect 6 0 4 0; +#X connect 7 0 2 0; +#X connect 9 0 13 0; +#X connect 10 0 0 0; diff --git a/l2ork_addons/rjlib/rj/s.txt b/l2ork_addons/rjlib/rj/s.txt new file mode 100644 index 000000000..92c6eac48 --- /dev/null +++ b/l2ork_addons/rjlib/rj/s.txt @@ -0,0 +1,10 @@ +s_blsaw +s_blsquare +s_buzz +s_fplaytable +s_fplaytable2 +s_guitar +s_looper +s_playtable +s_playtable2 +s_rhodey diff --git a/l2ork_addons/rjlib/rj/s_blsaw-help.pd b/l2ork_addons/rjlib/rj/s_blsaw-help.pd new file mode 100644 index 000000000..73b1403ff --- /dev/null +++ b/l2ork_addons/rjlib/rj/s_blsaw-help.pd @@ -0,0 +1,25 @@ +#N canvas 371 298 534 487 10; +#X floatatom 156 208 5 0 0 0 - - -; +#X floatatom 264 209 5 0 0 0 - - -; +#X obj 156 227 s_blsaw; +#X obj 264 227 phasor~; +#X obj 194 179 mtof; +#X floatatom 194 161 5 0 0 0 - - -; +#X obj 264 268 soundoutput; +#X obj 156 269 soundoutput; +#X obj 80 39 s_blsaw; +#X text 98 71 s_blsaw generates a bandlimited sawtooth wave similar +to the Pd builtin phasor~; +#X text 326 226 this is aliased; +#X text 44 227 less aliasing:; +#X text 99 113 inlet 0: signal or float to set frequency in Hz; +#X text 98 134 inlet 1: float to set phase (0-1); +#X connect 0 0 2 0; +#X connect 1 0 3 0; +#X connect 2 0 7 0; +#X connect 2 0 7 1; +#X connect 3 0 6 0; +#X connect 3 0 6 1; +#X connect 4 0 0 0; +#X connect 4 0 1 0; +#X connect 5 0 4 0; diff --git a/l2ork_addons/rjlib/rj/s_blsaw.pd b/l2ork_addons/rjlib/rj/s_blsaw.pd new file mode 100644 index 000000000..12448cbfd --- /dev/null +++ b/l2ork_addons/rjlib/rj/s_blsaw.pd @@ -0,0 +1,11 @@ +#N canvas 291 44 343 388 10; +#X obj 65 62 inlet~; +#X obj 66 174 outlet~; +#X obj 111 62 inlet; +#X obj 65 129 phasor~; +#X obj 65 150 u_splicetrans; +#X connect 0 0 3 0; +#X connect 0 0 4 1; +#X connect 2 0 3 1; +#X connect 3 0 4 0; +#X connect 4 0 1 0; diff --git a/l2ork_addons/rjlib/rj/s_blsquare-help.pd b/l2ork_addons/rjlib/rj/s_blsquare-help.pd new file mode 100644 index 000000000..ad0cea8b8 --- /dev/null +++ b/l2ork_addons/rjlib/rj/s_blsquare-help.pd @@ -0,0 +1,43 @@ +#N canvas 328 78 667 583 10; +#X obj 107 386 s_blsquare; +#X obj 107 259 mtof; +#X floatatom 107 239 5 0 0 0 - - -; +#X obj 108 441 soundoutput; +#X obj 52 35 s_blsquare; +#X floatatom 258 224 5 0 0 2 pwm_freq - -; +#X floatatom 194 387 5 0 0 1 phase_(0...1) - -; +#X obj 258 243 osc~ 0.5; +#X obj 140 322 pack 0 10; +#X obj 140 300 / 100; +#X floatatom 140 282 5 0 0 0 - - -; +#X obj 259 303 +~ 0.5; +#X obj 259 275 *~ 0.1; +#X obj 259 338 *~ 1; +#X obj 304 338 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X text 325 303 it's best to modulate around 0.5; +#X obj 345 242 / 100; +#X floatatom 345 224 5 0 0 2 depth - -; +#X text 97 90 Inlet 0: signal or float for frequency; +#X text 96 114 Inlet 1: signal or float for pulse width - 0.5 is a +50/50 square wave; +#X text 95 149 Inlet 2: float to set phase (0...1); +#X obj 140 343 line~; +#X text 153 33 bandlimited square wave with audio input for PWM.; +#X connect 0 0 3 0; +#X connect 0 0 3 1; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 5 0 7 0; +#X connect 6 0 0 2; +#X connect 7 0 12 0; +#X connect 8 0 21 0; +#X connect 9 0 8 0; +#X connect 10 0 9 0; +#X connect 11 0 13 0; +#X connect 12 0 11 0; +#X connect 13 0 0 1; +#X connect 14 0 13 1; +#X connect 16 0 12 1; +#X connect 17 0 16 0; +#X connect 21 0 0 1; diff --git a/l2ork_addons/rjlib/rj/s_blsquare.pd b/l2ork_addons/rjlib/rj/s_blsquare.pd new file mode 100644 index 000000000..e85ac360d --- /dev/null +++ b/l2ork_addons/rjlib/rj/s_blsquare.pd @@ -0,0 +1,60 @@ +#N canvas 473 354 450 300 10; +#X obj 80 43 inlet~; +#X obj 81 91 phasor~; +#X obj 265 52 inlet~; +#X obj 335 53 inlet; +#X text 262 31 pwm~; +#X text 78 23 freq~; +#X text 335 35 phase; +#N canvas 525 283 512 505 sigment 0; +#X obj 71 154 wrap~; +#X obj 71 216 -~ 0.5; +#X obj 71 132 -~; +#X obj 70 52 inlet~; +#X text 70 34 phasor~; +#X obj 70 277 outlet~; +#X text 261 29 phase; +#X obj 259 50 inlet~; +#X obj 70 184 u_splicetrans; +#X obj 159 51 inlet~; +#X obj 70 253 *~ -1; +#X text 161 32 freq~; +#X connect 0 0 8 0; +#X connect 1 0 10 0; +#X connect 2 0 0 0; +#X connect 3 0 2 0; +#X connect 7 0 2 1; +#X connect 8 0 1 0; +#X connect 9 0 8 1; +#X connect 10 0 5 0; +#X restore 82 154 pd sigment -1; +#N canvas 525 283 508 458 sigment 0; +#X obj 71 154 wrap~; +#X obj 71 216 -~ 0.5; +#X obj 71 132 -~; +#X obj 70 52 inlet~; +#X text 70 34 phasor~; +#X obj 70 277 outlet~; +#X text 261 29 phase; +#X obj 259 50 inlet~; +#X obj 70 184 u_splicetrans; +#X obj 159 51 inlet~; +#X text 161 32 freq~; +#X connect 0 0 8 0; +#X connect 1 0 5 0; +#X connect 2 0 0 0; +#X connect 3 0 2 0; +#X connect 7 0 2 1; +#X connect 8 0 1 0; +#X connect 9 0 8 1; +#X restore 185 154 pd sigment 1; +#X obj 81 214 outlet~; +#X connect 0 0 1 0; +#X connect 0 0 7 1; +#X connect 0 0 8 1; +#X connect 1 0 7 0; +#X connect 1 0 8 0; +#X connect 2 0 8 2; +#X connect 3 0 1 1; +#X connect 7 0 9 0; +#X connect 8 0 9 0; diff --git a/l2ork_addons/rjlib/rj/s_buzz-help.pd b/l2ork_addons/rjlib/rj/s_buzz-help.pd new file mode 100644 index 000000000..e9d0fa16c --- /dev/null +++ b/l2ork_addons/rjlib/rj/s_buzz-help.pd @@ -0,0 +1,39 @@ +#N canvas 274 60 646 649 10; +#X floatatom 111 66 5 0 0 0 - - -; +#X obj 151 332 tabwrite~ \$0-scope; +#N canvas 0 0 450 300 (subpatch) 0; +#X array \$0-scope 2205 float 0; +#X coords 0 1 2204 -1 200 140 1; +#X restore 288 210 graph; +#X obj 151 265 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 111 93 mtof; +#X obj 194 64 hsl 128 15 0 0.9 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 6300 1; +#X obj 191 94 moses 1; +#X text 206 45 Harmonicity-Env; +#X text 252 95 don't go equal or over 1!; +#X floatatom 199 118 5 0 0 0 - - -; +#X obj 191 189 line~; +#X obj 191 165 pack 0 100; +#X msg 164 308 bang; +#X obj 151 286 metro 100; +#X text 87 498 out = sqrt[(1-a^2)(1+a^2)] * [sin(x) / (1+a^2 - 2a*cos(x))] +; +#X text 85 545 cf: James A. Moorer: "Synthesis of Complex Audio Spectra" +and Dodge/Jerse: "Computer Music" page 163f; +#X obj 111 228 s_buzz; +#X obj 68 374 soundoutput; +#X connect 0 0 4 0; +#X connect 3 0 13 0; +#X connect 4 0 16 0; +#X connect 5 0 6 0; +#X connect 6 0 9 0; +#X connect 6 0 11 0; +#X connect 10 0 16 1; +#X connect 11 0 10 0; +#X connect 12 0 1 0; +#X connect 13 0 1 0; +#X connect 16 0 1 0; +#X connect 16 0 17 0; +#X connect 16 0 17 1; diff --git a/l2ork_addons/rjlib/rj/s_buzz.pd b/l2ork_addons/rjlib/rj/s_buzz.pd new file mode 100644 index 000000000..e4f5ca8b6 --- /dev/null +++ b/l2ork_addons/rjlib/rj/s_buzz.pd @@ -0,0 +1,106 @@ +#N canvas 384 121 780 602 10; +#X obj 257 361 +~; +#X obj 132 112 *~ 1024; +#X obj 257 160 tabread4~ \$0-cos; +#X obj 131 350 tabread4~ \$0-sin; +#X obj 132 421 /~; +#X obj 132 132 +~ 1; +#X obj 480 250 *~ 1024; +#X obj 480 278 +~ 1; +#X obj 410 311 tabread4~ \$0-1+a2; +#X obj 544 310 tabread4~ \$0-norm; +#X obj 133 444 *~; +#X obj 380 258 *~ -2; +#X obj 257 311 *~; +#X obj 134 473 outlet~; +#X obj 379 45 inlet~; +#X obj 489 66 table \$0-1+a2 1027; +#X obj 489 85 table \$0-norm 1027; +#X text 133 503 out = sqrt[(1-a^2)(1+a^2)] * [sin(x) / (1+a^2 - 2a*cos(x))] +; +#X obj 489 105 table \$0-cos 1027; +#X obj 489 127 table \$0-sin 1027; +#N canvas 436 142 729 607 init-tables 0; +#X obj 125 75 until; +#X obj 125 104 f 0; +#X obj 153 105 + 1; +#X obj 125 53 t a b; +#X obj 125 150 / 1024; +#X obj 125 127 t a a; +#X obj 343 417 tabwrite \$0-1+a2; +#X obj 125 12 loadbang; +#X obj 547 122 s \$0-cos; +#X obj 509 175 s \$0-sin; +#X msg 509 148 sinesum 1024 1; +#X msg 547 97 cosinesum 1024 0 1; +#X obj 509 67 loadbang; +#X obj 124 412 tabwrite \$0-norm; +#X msg 125 33 1027; +#X text 106 499 writes f(a) = 1+a^2 rsp. normalization into tables +; +#X obj 124 330 sqrt; +#X obj 125 214 *; +#X obj 179 272 + 1; +#X obj 125 241 t a a; +#X obj 125 267 swap 1; +#X obj 125 290 -; +#X obj 125 310 /; +#X obj 125 193 t a a; +#X text 107 434 sqrt((1-$f1*$f1)/(1+$f1*$f1)); +#X text 341 434 1+$f1*$f1; +#X msg 164 75 0; +#X obj 452 361 + 0; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 0 5 0; +#X connect 2 0 1 1; +#X connect 3 0 0 0; +#X connect 3 1 26 0; +#X connect 4 0 23 0; +#X connect 5 0 4 0; +#X connect 5 1 27 0; +#X connect 7 0 14 0; +#X connect 10 0 9 0; +#X connect 11 0 8 0; +#X connect 12 0 11 0; +#X connect 12 0 10 0; +#X connect 14 0 3 0; +#X connect 16 0 13 0; +#X connect 17 0 19 0; +#X connect 18 0 22 1; +#X connect 18 0 6 0; +#X connect 19 0 20 0; +#X connect 19 1 18 0; +#X connect 20 0 21 0; +#X connect 20 1 21 1; +#X connect 21 0 22 0; +#X connect 22 0 16 0; +#X connect 23 0 17 0; +#X connect 23 1 17 1; +#X connect 26 0 1 1; +#X connect 27 0 6 1; +#X connect 27 0 13 1; +#X restore 489 45 pd init-tables; +#X text 131 550 cf: James A. Moorer: "Synthesis of Complex Audio Spectra" +and Dodge/Jerse: "Computer Music" page 163f; +#X obj 132 89 phasor~ \$1; +#X obj 132 46 inlet; +#X connect 0 0 4 1; +#X connect 1 0 5 0; +#X connect 2 0 12 0; +#X connect 3 0 4 0; +#X connect 4 0 10 0; +#X connect 5 0 2 0; +#X connect 5 0 3 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 0 1; +#X connect 9 0 10 1; +#X connect 10 0 13 0; +#X connect 11 0 12 1; +#X connect 12 0 0 0; +#X connect 14 0 6 0; +#X connect 14 0 11 0; +#X connect 22 0 1 0; +#X connect 23 0 22 0; diff --git a/l2ork_addons/rjlib/rj/s_fplaytable.pd b/l2ork_addons/rjlib/rj/s_fplaytable.pd new file mode 100644 index 000000000..7658efbaa --- /dev/null +++ b/l2ork_addons/rjlib/rj/s_fplaytable.pd @@ -0,0 +1,19 @@ +#N canvas 155 209 450 300 10; +#X obj 123 55 inlet; +#X obj 124 166 tabplay~; +#X msg 123 115 set \$1 \, bang; +#X obj 124 220 outlet~; +#X obj 201 219 outlet; +#X obj 123 85 symbol; +#X obj 262 56 inlet; +#X obj 261 77 route loop; +#X obj 221 169 spigot \$1; +#X connect 0 0 5 0; +#X connect 1 0 3 0; +#X connect 1 1 4 0; +#X connect 1 1 8 0; +#X connect 2 0 1 0; +#X connect 5 0 2 0; +#X connect 6 0 7 0; +#X connect 7 0 8 1; +#X connect 8 0 5 0; diff --git a/l2ork_addons/rjlib/rj/s_fplaytable2.pd b/l2ork_addons/rjlib/rj/s_fplaytable2.pd new file mode 100644 index 000000000..985e30fa8 --- /dev/null +++ b/l2ork_addons/rjlib/rj/s_fplaytable2.pd @@ -0,0 +1,23 @@ +#N canvas 0 22 450 300 10; +#X obj 85 207 outlet~; +#X obj 218 215 outlet~; +#X obj 88 29 inlet; +#X obj 86 141 makefilename %s-1; +#X obj 219 142 makefilename %s-2; +#X obj 85 113 symbol; +#X obj 217 117 symbol; +#X obj 245 34 inlet; +#X obj 323 218 outlet; +#X obj 86 162 s_fplaytable \$1; +#X obj 218 163 s_fplaytable \$1; +#X connect 2 0 5 0; +#X connect 2 0 6 0; +#X connect 3 0 9 0; +#X connect 4 0 10 0; +#X connect 5 0 3 0; +#X connect 6 0 4 0; +#X connect 7 0 9 1; +#X connect 7 0 10 1; +#X connect 9 0 0 0; +#X connect 10 0 1 0; +#X connect 10 1 8 0; diff --git a/l2ork_addons/rjlib/rj/s_guitar-help.pd b/l2ork_addons/rjlib/rj/s_guitar-help.pd new file mode 100644 index 000000000..55b7ebf79 --- /dev/null +++ b/l2ork_addons/rjlib/rj/s_guitar-help.pd @@ -0,0 +1,71 @@ +#N canvas 185 305 935 524 10; +#X msg 334 175 pitch \$1; +#X floatatom 308 126 5 0 0 0 - - -; +#X obj 218 296 soundoutput; +#X msg 218 178 bang; +#X floatatom 442 156 5 0 100 0 - - -; +#X obj 442 176 / 100; +#X msg 442 198 feedback \$1; +#X floatatom 577 153 5 0 0 0 - - -; +#X obj 577 173 mtof; +#X msg 577 202 lpfreq \$1; +#X floatatom 613 174 5 0 0 0 - - -; +#X obj 308 149 t b a; +#X msg 541 279 pickuppos \$1; +#X msg 438 280 pluckpos \$1; +#X floatatom 438 238 5 0 0 0 - - -; +#X obj 438 258 / 100; +#X floatatom 541 238 5 0 0 0 - - -; +#X obj 541 258 / 100; +#X obj 150 242 env~; +#X obj 150 267 - 100; +#X obj 151 292 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0; +#X obj 308 73 random 12; +#X obj 308 8 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X obj 384 72 random 2; +#X obj 308 53 t b b; +#X obj 385 101 * 12; +#X obj 308 100 + 40; +#X obj 345 102 +; +#X obj 308 28 metro 250; +#X obj 218 203 s_guitar myguitar; +#X text 29 20 s_guitar; +#X text 31 48 Karplus Strong Guitar; +#X text 28 70 This isn't finished yet!; +#X floatatom 134 128 5 0 0 0 - - -; +#X obj 134 167 mtof; +#X connect 0 0 29 1; +#X connect 1 0 11 0; +#X connect 3 0 29 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 29 1; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 8 0 10 0; +#X connect 9 0 29 1; +#X connect 11 0 29 0; +#X connect 11 1 0 0; +#X connect 12 0 29 1; +#X connect 13 0 29 1; +#X connect 14 0 15 0; +#X connect 15 0 13 0; +#X connect 16 0 17 0; +#X connect 17 0 12 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 21 0 27 0; +#X connect 22 0 28 0; +#X connect 23 0 25 0; +#X connect 24 0 21 0; +#X connect 24 1 23 0; +#X connect 25 0 27 1; +#X connect 26 0 1 0; +#X connect 27 0 26 0; +#X connect 28 0 24 0; +#X connect 29 0 18 0; +#X connect 29 0 2 0; +#X connect 29 0 2 1; +#X connect 33 0 34 0; +#X connect 34 0 29 0; diff --git a/l2ork_addons/rjlib/rj/s_guitar.pd b/l2ork_addons/rjlib/rj/s_guitar.pd new file mode 100644 index 000000000..573313f87 --- /dev/null +++ b/l2ork_addons/rjlib/rj/s_guitar.pd @@ -0,0 +1,309 @@ +#N canvas 83 121 950 563 10; +#N canvas 0 0 987 586 del 0; +#X obj 164 87 inlet~; +#X obj 290 86 inlet~; +#X obj 291 117 vd~ \$0-del1; +#X obj 399 86 inlet; +#X obj 189 187 outlet~; +#X obj 583 82 inlet; +#X msg 411 291 0.998849; +#X obj 290 186 lop~ 10000; +#X obj 399 123 clip -1 1; +#X obj 164 261 delwrite~ \$0-del1 500; +#X obj 484 100 block~ 8; +#X obj 290 148 *~ 0.85; +#X connect 0 0 9 0; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 11 0; +#X connect 3 0 8 0; +#X connect 5 0 7 1; +#X connect 7 0 9 0; +#X connect 8 0 11 1; +#X connect 11 0 7 0; +#X connect 11 0 4 0; +#X restore 156 275 pd del; +#X obj 156 443 outlet~; +#X obj 580 144 rjdispatch \$0 feedback; +#X obj 580 165 rjdispatch \$0 lpfreq; +#X obj 580 118 inlet; +#X obj 324 193 r \$0-feedback; +#X obj 429 194 r \$0-lpfreq; +#X obj 580 188 rjdispatch \$0 delay; +#X obj 322 110 r \$0-delay; +#N canvas 320 76 559 435 comb1 0; +#X obj 278 114 *; +#X obj 99 36 inlet~; +#X obj 299 57 inlet; +#X obj 98 310 outlet~; +#X obj 299 84 t b f; +#X obj 278 29 r \$0-delay; +#X obj 159 257 r \$0-lpfreq; +#X obj 99 286 lop~ 1000; +#X msg 360 53 0.2; +#X obj 360 27 loadbang; +#N canvas 314 253 843 340 addsmp 0; +#X obj 152 91 samplerate~; +#X obj 152 135 swap 1000; +#X obj 152 163 /; +#X obj 152 42 loadbang; +#X msg 164 68 bang; +#X obj 71 42 inlet~; +#X obj 71 235 outlet~; +#X obj 71 205 +~ 0; +#X text 245 48 add the duration of one sample to incoming signal. Use +in front of [vd~]; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 2 1; +#X connect 2 0 7 1; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 5 0 7 0; +#X connect 7 0 6 0; +#X restore 278 174 pd addsmp; +#N canvas 0 0 450 300 dw 0; +#X obj 111 71 delwrite~ \$0-comb1 500; +#X obj 99 38 inlet~; +#X obj 98 127 outlet~; +#X connect 1 0 0 0; +#X connect 1 0 2 0; +#X restore 98 68 pd dw; +#N canvas 0 0 450 300 dr 0; +#X obj 168 103 inlet~; +#X obj 243 100 inlet~; +#X obj 243 137 vd~ \$0-comb1; +#X obj 166 205 outlet~; +#X obj 167 167 -~; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 4 1; +#X connect 4 0 3 0; +#X restore 98 235 pd dr; +#X connect 0 0 10 0; +#X connect 1 0 11 0; +#X connect 2 0 4 0; +#X connect 4 0 0 0; +#X connect 4 1 0 1; +#X connect 5 0 0 0; +#X connect 6 0 7 1; +#X connect 7 0 3 0; +#X connect 8 0 4 0; +#X connect 9 0 8 0; +#X connect 10 0 12 1; +#X connect 11 0 12 0; +#X connect 12 0 7 0; +#X restore 155 188 pd comb1; +#N canvas 320 76 795 504 comb2 0; +#X obj 278 114 *; +#X obj 98 36 inlet~; +#X obj 299 57 inlet; +#X obj 98 260 outlet~; +#X obj 299 84 t b f; +#X obj 278 29 r \$0-delay; +#X msg 360 53 0.2; +#X obj 360 27 loadbang; +#N canvas 314 253 843 340 addsmp 0; +#X obj 152 91 samplerate~; +#X obj 152 135 swap 1000; +#X obj 152 163 /; +#X obj 152 42 loadbang; +#X msg 164 68 bang; +#X obj 71 42 inlet~; +#X obj 71 235 outlet~; +#X obj 71 205 +~ 0; +#X text 245 48 add the duration of one sample to incoming signal. Use +in front of [vd~]; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 2 1; +#X connect 2 0 7 1; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 5 0 7 0; +#X connect 7 0 6 0; +#X restore 278 144 pd addsmp; +#N canvas 0 0 450 300 dw 0; +#X obj 99 38 inlet~; +#X obj 98 127 outlet~; +#X obj 111 71 delwrite~ \$0-comb2 500; +#X connect 0 0 1 0; +#X connect 0 0 2 0; +#X restore 98 64 pd dw; +#N canvas 0 0 450 300 dr 0; +#X obj 168 103 inlet~; +#X obj 243 100 inlet~; +#X obj 166 205 outlet~; +#X obj 167 167 -~; +#X obj 243 137 vd~ \$0-comb2; +#X connect 0 0 3 0; +#X connect 1 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 3 1; +#X restore 98 231 pd dr; +#X connect 0 0 8 0; +#X connect 1 0 9 0; +#X connect 2 0 4 0; +#X connect 4 0 0 0; +#X connect 4 1 0 1; +#X connect 5 0 0 0; +#X connect 6 0 4 0; +#X connect 7 0 6 0; +#X connect 8 0 10 1; +#X connect 9 0 10 0; +#X connect 10 0 3 0; +#X restore 156 359 pd comb2; +#X obj 580 251 rjdispatch \$0 pluckpos; +#X obj 208 166 r \$0-pluckpos; +#X obj 580 274 rjdispatch \$0 pickuppos; +#X obj 209 332 r \$0-pickuppos; +#X obj 631 118 rjloader s_guitar-\$1 \$0; +#X obj 580 210 rjdispatch \$0 freq; +#X obj 580 230 rjdispatch \$0 pitch; +#N canvas 0 0 586 367 conversions 0; +#X obj 50 85 swap 1000; +#X obj 50 115 /; +#X text 133 84 delay time can be set as frequency as well.; +#X obj 50 144 s \$0-delay; +#X obj 50 56 r \$0-freq; +#X obj 46 195 r \$0-pitch; +#X obj 46 221 mtof; +#X obj 46 246 s \$0-freq; +#X connect 0 0 1 0; +#X connect 0 1 1 1; +#X connect 1 0 3 0; +#X connect 4 0 0 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X restore 583 429 pd conversions; +#N canvas 389 267 780 343 play 0; +#X obj 108 172 vline~; +#X obj 108 200 tabread4~ \$0-excite; +#X obj 108 229 outlet~; +#X obj 108 64 inlet; +#X obj 108 89 b; +#N canvas 0 0 450 300 (subpatch) 0; +#X array \$0-excite 515 float 3; +#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 1.5522e-10 0.00476191 0.00952382 0.0142857 0.0142857 +0.0142857 0.0142857 0.0142857 0.0142857 0.0142857 0.0142857 0.0142857 +0.0142857 0.0142857 0.0190476 0.0238095 0.0285715 0.0285715 0.0285715 +0.0285715 0.0285715 0.0285715 0.0357143 0.0428572 0.0428572 0.0428572 +0.0428572 0.05 0.0571429 0.0571429 0.0571429 0.0571429 0.0571429 0.0571429 +0.0571429 0.0642858 0.0714286 0.0714286 0.0714286 0.0714286 0.0785715 +0.0857144 0.0904763 0.0952382 0.1 0.1 0.1 0.104762 0.109524 0.114286 +0.114286 0.114286 0.128572 0.135714 0.142857 0.142857 0.142857 0.142857 +0.15 0.157143 0.161905 0.166667 0.171429 0.178572 0.185714 0.185714 +0.185714 0.2 0.2 0.2 0.214286 0.214286 0.214286 0.214286 0.214286 0.228572 +0.228572 0.242857 0.242857 0.242857 0.257143 0.257143 0.257143 0.261905 +0.266667 0.271429 0.276191 0.280953 0.3 0.3 0.314286 0.319048 0.32381 +0.328572 0.335715 0.342858 0.347619 0.352381 0.357143 0.371429 0.4 +0.404762 0.409524 0.414286 0.414286 0.414286 0.414286 0.428572 0.442858 +0.44762 0.452381 0.457143 0.464286 0.485715 0.491305 0.496895 0.502485 +0.508075 0.513665 0.519255 0.524845 0.530435 0.536025 0.541615 0.547205 +0.552796 0.558386 0.563976 0.569566 0.575156 0.580746 0.586336 0.591926 +0.597516 0.603106 0.608696 0.614286 0.619048 0.62381 0.628572 0.635715 +0.642858 0.64762 0.652382 0.671429 0.676191 0.680953 0.685715 0.692858 +0.700001 0.704763 0.709525 0.714287 0.714287 0.714287 0.719049 0.72381 +0.728572 0.735715 0.742858 0.74762 0.752382 0.757144 0.757144 0.757144 +0.757144 0.757144 0.77143 0.776191 0.780953 0.785715 0.785715 0.800001 +0.800001 0.800001 0.800001 0.800001 0.814287 0.814287 0.814287 0.828573 +0.828573 0.828573 0.828573 0.828573 0.842858 0.84762 0.852382 0.857144 +0.857144 0.857144 0.857144 0.857144 0.87143 0.87143 0.87143 0.87143 +0.87143 0.87143 0.87143 0.87143 0.87143 0.87143 0.87143 0.876192 0.880954 +0.885716 0.885716 0.885716 0.885716 0.885716 0.885716 0.885716 0.885716 +0.885716 0.885716 0.885716 0.885716 0.885716 0.885716 0.885716 0.885716 +0.885716 0.885716 0.885716 0.885716 0.885716 0.885716 0.885716 0.885716 +0.885716 0.885716 0.885716 0.885716 0.885716 0.885716 0.885716 0.885716 +0.885716 0.885716 0.885716 0.885716 0.885716 0.885716 0.885716 0.885716 +0.885716 0.885716 0.885716 0.885716 0.885716 0.885716 0.885716 0.880954 +0.876192 0.87143 0.87143 0.87143 0.87143 0.87143 0.87143 0.864287 0.857144 +0.857144 0.857144 0.857144 0.850001 0.842858 0.842858 0.842858 0.842858 +0.842858 0.842858 0.828573 0.828573 0.828573 0.823811 0.819049 0.814287 +0.814287 0.814287 0.809525 0.804763 0.800001 0.800001 0.800001 0.795239 +0.790477 0.785715 0.785715 0.785715 0.77143 0.77143 0.77143 0.766668 +0.761906 0.757144 0.757144 0.742858 0.738096 0.733334 0.728572 0.728572 +0.728572 0.72381 0.719049 0.714287 0.709525 0.704763 0.700001 0.700001 +0.685715 0.685715 0.685715 0.671429 0.671429 0.657144 0.657144 0.657144 +0.657144 0.650001 0.642858 0.642858 0.642858 0.628572 0.62381 0.619048 +0.600001 0.592858 0.571429 0.571429 0.571429 0.557143 0.557143 0.542858 +0.538096 0.533334 0.528572 0.521429 0.514286 0.514286 0.514286 0.5 +0.5 0.5 0.5 0.492858 0.485715 0.480953 0.476191 0.471429 0.464286 0.457143 +0.452381 0.447619 0.442858 0.435715 0.428572 0.428572 0.428572 0.414286 +0.414286 0.414286 0.414286 0.407143 0.4 0.395238 0.390476 0.385715 +0.378572 0.371429 0.366667 0.361905 0.357143 0.35 0.342857 0.338095 +0.333333 0.328572 0.321429 0.314286 0.309524 0.304762 0.3 0.295238 +0.290476 0.285714 0.278571 0.257143 0.257143 0.257143 0.257143 0.257143 +0.242857 0.242857 0.242857 0.242857 0.235714 0.228571 0.228571 0.228571 +0.214286 0.214286 0.214286 0.2 0.2 0.2 0.2 0.2 0.185714 0.185714 0.171428 +0.171428 0.171428 0.171428 0.171428 0.157143 0.157143 0.157143 0.142857 +0.142857 0.142857 0.128571 0.128571 0.128571 0.123809 0.119047 0.114286 +0.114286 0.0999998 0.0999998 0.0999998 0.0857141 0.0857141 0.0857141 +0.0857141 0.0857141 0.0714284 0.0666665 0.0619046 0.0571426 0.0571426 +0.0428569 0.0428569 0.0428569 0.0428569 0.0357141 0.0285712 0.0285712 +0.0285712 0.0142855 0.0142855 0.0142855 0.0142855 0.0142855 0.0142855 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; +#X coords 0 1 514 -1 200 140 1; +#X restore 343 87 graph; +#X msg 345 260 const 0; +#X obj 345 288 s \$0-excite; +#N canvas 0 0 450 300 block 0; +#X obj 176 137 del 10; +#X msg 176 161 1; +#X obj 106 136 spigot 1; +#X obj 106 157 t a b; +#X msg 175 116 0; +#X obj 106 112 inlet; +#X obj 106 187 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 1; +#X connect 2 0 3 0; +#X connect 3 0 6 0; +#X connect 3 1 4 0; +#X connect 3 1 0 0; +#X connect 4 0 2 1; +#X connect 5 0 2 0; +#X restore 108 127 pd block; +#X msg 108 150 1 0 0 \, 512 10; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 4 0 8 0; +#X connect 6 0 7 0; +#X connect 8 0 9 0; +#X connect 9 0 0 0; +#X restore 156 139 pd play; +#X obj 82 50 inlet; +#X obj 322 166 vline~; +#X msg 322 143 \$1 5; +#X obj 155 217 *~ 0.5; +#X obj 156 386 *~ 0.5; +#X text 294 38 This isn't finished yet!; +#X obj 82 83 route float; +#X obj 82 154 s \$0-freq; +#X obj 82 106 t b a; +#X connect 0 0 10 0; +#X connect 2 0 3 0; +#X connect 3 0 7 0; +#X connect 4 0 2 0; +#X connect 5 0 0 2; +#X connect 6 0 0 3; +#X connect 7 0 16 0; +#X connect 8 0 22 0; +#X connect 9 0 23 0; +#X connect 10 0 24 0; +#X connect 11 0 13 0; +#X connect 12 0 9 1; +#X connect 14 0 10 1; +#X connect 16 0 17 0; +#X connect 17 0 11 0; +#X connect 19 0 9 0; +#X connect 20 0 26 0; +#X connect 21 0 0 1; +#X connect 22 0 21 0; +#X connect 23 0 0 0; +#X connect 24 0 1 0; +#X connect 26 0 28 0; +#X connect 26 1 19 0; +#X connect 28 0 19 0; +#X connect 28 1 27 0; diff --git a/l2ork_addons/rjlib/rj/s_looper-help.pd b/l2ork_addons/rjlib/rj/s_looper-help.pd new file mode 100644 index 000000000..f8c59fe13 --- /dev/null +++ b/l2ork_addons/rjlib/rj/s_looper-help.pd @@ -0,0 +1,72 @@ +#N canvas 84 86 1015 642 10; +#X msg 93 128 open; +#X obj 92 434 soundoutput; +#X msg 151 209 stop; +#X msg 182 255 loop \$1; +#X obj 182 235 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X msg 146 185 play 500; +#X obj 589 249 random 32; +#X obj 589 226 metro 125; +#X obj 589 203 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X floatatom 498 485 8 0 0 3 dur_in_smps - -; +#X floatatom 424 485 8 0 0 3 dur_in_ms - -; +#X symbolatom 349 485 10 0 0 3 table_name - -; +#X obj 349 435 unpack s f f f; +#X floatatom 582 485 6 0 0 3 samplerate - -; +#X obj 424 534 s \$0-duration; +#X obj 649 170 r \$0-duration; +#X obj 649 197 / 32; +#X obj 263 452 bng 15 50 50 0 empty empty bang_on_start 0 25 1 10 -262144 +-1 -1; +#X msg 133 160 play; +#X text 176 160 all from start; +#X text 217 185 play all starting 500 ms into sample; +#X text 156 50 sample player with looping and file storage.; +#X text 139 129 open a file; +#X text 241 256 loop file; +#X text 561 98 "playdiv <divs> <part> <duration in parts>" divides +the file into as many equal length parts as the <divs> number following +it specifies. Then it start playing part <part> and stops after <duration> +parts.; +#X msg 183 284 sr 22050; +#X msg 589 307 playdiv 32 \$1 1; +#X text 239 334 adjust fade-in time (default 2ms); +#X text 155 83 Args: <NAME> <soundfile to autoload>; +#X obj 729 275 hradio 15 1 0 8 empty empty empty 0 -8 0 10 -262144 +-1 -1 0; +#X msg 729 303 playdiv 16 \$1 0.5; +#X text 253 284 set samplerate of file (default 22050 Hz); +#X text 533 73 The "playdiv" message:; +#X text 461 434 sample file info; +#X msg 185 306 sr 44100; +#X obj 82 52 s_looper; +#X obj 93 389 s_looper \$0-mysample filenotfound.wav; +#X msg 186 334 fade 0; +#X connect 0 0 36 0; +#X connect 2 0 36 0; +#X connect 3 0 36 0; +#X connect 4 0 3 0; +#X connect 5 0 36 0; +#X connect 6 0 26 0; +#X connect 7 0 6 0; +#X connect 8 0 7 0; +#X connect 10 0 14 0; +#X connect 12 0 11 0; +#X connect 12 1 10 0; +#X connect 12 2 9 0; +#X connect 12 3 13 0; +#X connect 15 0 16 0; +#X connect 16 0 7 1; +#X connect 18 0 36 0; +#X connect 25 0 36 0; +#X connect 26 0 36 0; +#X connect 29 0 30 0; +#X connect 30 0 36 0; +#X connect 34 0 36 0; +#X connect 36 0 1 0; +#X connect 36 1 1 1; +#X connect 36 2 17 0; +#X connect 36 3 12 0; +#X connect 37 0 36 0; diff --git a/l2ork_addons/rjlib/rj/s_looper.pd b/l2ork_addons/rjlib/rj/s_looper.pd new file mode 100644 index 000000000..78fcc283d --- /dev/null +++ b/l2ork_addons/rjlib/rj/s_looper.pd @@ -0,0 +1,153 @@ +#N canvas 174 275 976 607 10; +#X obj 168 565 outlet~; +#X obj 208 518 outlet~; +#X obj 167 483 s_playtable2; +#X floatatom 728 435 8 0 0 3 dur_in_smps - -; +#X floatatom 654 435 8 0 0 3 dur_in_ms - -; +#X symbolatom 579 435 10 0 0 3 table_name - -; +#X obj 579 385 unpack s f f f; +#X floatatom 812 435 6 0 0 3 samplerate - -; +#X obj 547 48 inlet; +#X obj 547 80 rjdispatch \$0 open; +#X obj 547 104 rjdispatch \$0 loop; +#X obj 547 129 rjdispatch \$0 play; +#X obj 547 153 rjdispatch \$0 stop; +#X obj 579 298 r \$0-open; +#X text 327 382 sample; +#X text 296 356 gain speed; +#X obj 167 330 f 0; +#X text 204 329 start time; +#X obj 371 212 metro 10000; +#X obj 167 239 spigot; +#X obj 206 217 r \$0-sample-loaded; +#X obj 568 511 s \$0-sample-loaded; +#X msg 568 490 1; +#X obj 662 484 s \$0-duration; +#X obj 445 190 r \$0-duration; +#X obj 371 138 r \$0-loop; +#X obj 371 189 spigot; +#X obj 410 167 r \$0-sample-loaded; +#X obj 167 182 r \$0-play; +#X obj 312 475 r \$0-stop; +#X msg 312 499 stop; +#X msg 579 326 open; +#X obj 167 355 list prepend 1 1; +#X obj 167 382 list prepend \$0-sample; +#X msg 185 303 0; +#X obj 719 119 r \$0-loop; +#X obj 719 144 select 0; +#X obj 719 173 s \$0-stop; +#X obj 547 175 rjdispatch \$0 playdiv; +#X obj 185 279 r \$0-stop; +#X obj 491 478 outlet; +#N canvas 0 0 907 511 calcdivs 0; +#X obj 111 45 r \$0-playdiv; +#X obj 136 195 r \$0-duration; +#X obj 111 218 swap; +#X obj 111 246 /; +#X obj 111 291 *; +#X obj 111 355 outlet; +#X obj 111 100 spigot; +#X obj 150 78 r \$0-sample-loaded; +#X obj 111 168 unpack 0 0 0; +#X obj 174 296 *; +#X obj 111 268 t a a; +#X obj 111 320 pack 0 0; +#X obj 111 135 t a a; +#X obj 289 190 list length; +#X obj 289 218 < 3; +#X text 285 249 if list doesn't have duration (i.e. is < 3) \, then +play only one division.; +#X connect 0 0 6 0; +#X connect 1 0 2 1; +#X connect 2 0 3 0; +#X connect 2 1 3 1; +#X connect 3 0 10 0; +#X connect 4 0 11 0; +#X connect 6 0 12 0; +#X connect 7 0 6 1; +#X connect 8 0 2 0; +#X connect 8 1 4 1; +#X connect 8 2 9 1; +#X connect 9 0 11 1; +#X connect 10 0 4 0; +#X connect 10 1 9 0; +#X connect 11 0 5 0; +#X connect 12 0 8 0; +#X connect 12 1 13 0; +#X connect 13 0 14 0; +#X connect 14 0 9 1; +#X restore 268 278 pd calcdivs; +#X obj 421 478 outlet; +#X obj 167 417 t a b; +#X msg 358 502 0; +#X msg 299 162 0; +#X obj 74 229 s \$0-metro; +#X msg 74 207 0; +#X obj 357 111 r \$0-metro; +#X obj 358 524 s \$0-metro; +#X msg 301 303 0; +#X obj 301 325 s \$0-metro; +#X obj 547 199 rjdispatch \$0 sr; +#X obj 547 222 rjdispatch \$0 fade; +#X obj 652 296 r \$0-sr; +#X obj 248 423 r \$0-sr; +#X msg 248 445 sr \$1; +#X obj 314 420 r \$0-fade; +#X msg 314 443 fade \$1; +#X msg 652 318 sr \$1 \, info; +#X obj 579 356 u_samplebank2 \$0-sample \$2; +#X obj 609 49 rjloader s_looper-\$1 \$0; +#X connect 2 0 0 0; +#X connect 2 1 1 0; +#X connect 6 0 5 0; +#X connect 6 0 22 0; +#X connect 6 1 4 0; +#X connect 6 1 23 0; +#X connect 6 2 3 0; +#X connect 6 3 7 0; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 12 0 38 0; +#X connect 13 0 31 0; +#X connect 16 0 32 0; +#X connect 18 0 16 0; +#X connect 19 0 16 0; +#X connect 20 0 19 1; +#X connect 22 0 21 0; +#X connect 24 0 18 1; +#X connect 25 0 26 0; +#X connect 26 0 18 0; +#X connect 27 0 26 1; +#X connect 28 0 19 0; +#X connect 28 0 47 0; +#X connect 29 0 30 0; +#X connect 29 0 44 0; +#X connect 30 0 2 1; +#X connect 31 0 60 0; +#X connect 32 0 33 0; +#X connect 33 0 43 0; +#X connect 34 0 16 1; +#X connect 35 0 36 0; +#X connect 36 0 37 0; +#X connect 38 0 52 0; +#X connect 39 0 34 0; +#X connect 41 0 32 0; +#X connect 41 0 50 0; +#X connect 43 0 2 0; +#X connect 43 1 42 0; +#X connect 44 0 49 0; +#X connect 47 0 46 0; +#X connect 48 0 26 0; +#X connect 50 0 51 0; +#X connect 52 0 53 0; +#X connect 54 0 59 0; +#X connect 55 0 56 0; +#X connect 56 0 2 1; +#X connect 57 0 58 0; +#X connect 58 0 2 1; +#X connect 59 0 60 0; +#X connect 60 0 6 0; +#X connect 60 0 40 0; diff --git a/l2ork_addons/rjlib/rj/s_playtable-help.pd b/l2ork_addons/rjlib/rj/s_playtable-help.pd new file mode 100644 index 000000000..57894cf7c --- /dev/null +++ b/l2ork_addons/rjlib/rj/s_playtable-help.pd @@ -0,0 +1,69 @@ +#N canvas 289 87 888 636 10; +#X obj 634 443 openpanel; +#X obj 633 518 table play-samp; +#X msg 634 464 read -resize \$1 play-samp; +#X obj 634 490 soundfiler; +#X obj 634 416 bng 20 250 50 0 empty empty open-sample 0 -6 1 10 -262144 +-1 -1; +#X obj 122 554 soundoutput; +#X msg 158 209 play-samp 0.5 2; +#X text 356 235 original gain \, original pitch \, start at 500 ms +; +#X msg 171 261 play-samp 1 1 500 250; +#X msg 167 238 play-samp 1 1 500; +#X msg 178 355 bang; +#X text 220 355 repeat last instruction; +#X obj 240 534 spigot; +#X obj 295 535 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 240 562 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X msg 177 319 play-samp 0.8 -1 8000 8000; +#X text 175 295 attenuated \, reversed \, starting at 8000ms \, playing +for 8000ms; +#X text 117 111 <table name> <gain> <transposition> <start location +(ms)> <duration (ms)> <looping 0/1>; +#X text 301 180 original gain \, original pitch \, start at 0 \, play +for 8000ms; +#X text 237 514 last outlet: bang at end of duration; +#X text 355 259 original gain \, original pitch \, start at 500 ms +\, play for 250ms; +#X msg 122 158 play-samp; +#X text 96 26 s_playtable; +#X msg 271 420 sr 44100; +#X msg 196 419 sr 22050; +#X text 194 399 adjust file samplerate (Hz \, default 22050); +#X text 116 56 Low level \, but flexible table-sample player; +#X text 117 82 s_playtable is controlled through messages composed +of:; +#X text 303 203 attenuated \, transposed up an octave.Transposition +is doen by resampling; +#X msg 142 183 play-samp 1 1 0 8000; +#X text 203 158 play all with original gain and original pitch; +#X obj 122 493 s_playtable; +#X msg 220 491 stop; +#X text 266 494 stop playing; +#X msg 270 462 fade \$1; +#X floatatom 270 444 5 0 0 0 - - -; +#X text 341 464 fade in/out time (default is 2msec); +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 0 0; +#X connect 6 0 31 0; +#X connect 8 0 31 0; +#X connect 9 0 31 0; +#X connect 10 0 31 0; +#X connect 12 0 14 0; +#X connect 12 0 31 0; +#X connect 13 0 12 1; +#X connect 15 0 31 0; +#X connect 21 0 31 0; +#X connect 23 0 31 1; +#X connect 24 0 31 1; +#X connect 29 0 31 0; +#X connect 31 0 5 0; +#X connect 31 0 5 1; +#X connect 31 1 12 0; +#X connect 32 0 31 1; +#X connect 34 0 31 1; +#X connect 35 0 34 0; diff --git a/l2ork_addons/rjlib/rj/s_playtable.pd b/l2ork_addons/rjlib/rj/s_playtable.pd new file mode 100644 index 000000000..23769e8c4 --- /dev/null +++ b/l2ork_addons/rjlib/rj/s_playtable.pd @@ -0,0 +1,298 @@ +#N canvas 0 100 771 595 10; +#X obj 540 82 inlet; +#X obj 169 57 inlet; +#X obj 169 489 outlet~; +#X obj 169 384 tabread4~; +#X obj 169 303 list prepend set; +#X obj 169 329 list trim; +#X obj 75 336 vline~; +#N canvas 0 0 864 729 trigger-sample 0; +#X text 20 155 Wait for the; +#X text 18 169 cutoff to finish; +#X text 41 447 set the upper line~ to start; +#X text 40 466 at the first sample and go; +#X text 39 487 forever (until the next trigger); +#X obj 142 211 t b b; +#X obj 297 626 s \$0-phase; +#X obj 142 315 s \$0-cutoff; +#X obj 142 53 inlet; +#X obj 174 136 s \$0-cutoff; +#X text 17 118 cut the sound off; +#X obj 142 266 f; +#X obj 264 55 inlet; +#X obj 142 77 t b b; +#X text 269 35 gain; +#X obj 315 57 inlet; +#X text 314 35 transpos; +#X obj 297 454 * 1e+07; +#X obj 299 435 f 1; +#X obj 345 303 moses 0; +#X obj 486 610 s \$0-phase; +#X obj 486 457 * 1e+07; +#X obj 487 438 f 1; +#X obj 503 416 abs; +#X obj 315 78 t a a; +#X obj 299 307 < 0; +#X obj 299 331 select 0 1; +#X obj 299 285 f; +#X obj 345 273 pow -1; +#X obj 142 164 delay 2; +#X obj 429 51 inlet; +#X text 426 31 start; +#X obj 578 50 inlet; +#X obj 297 533 unpack 0 0; +#X obj 297 561 + 0; +#X obj 297 589 pack 0 0; +#X obj 429 126 * 22.05; +#X text 490 126 ms to samples; +#X floatatom 325 106 5 0 0 0 - - -; +#X text 575 30 duration; +#X obj 578 81 select 0; +#X obj 631 130 delay; +#X obj 735 45 inlet; +#X text 732 24 loops; +#X obj 686 164 outlet; +#X obj 631 104 - 2; +#X obj 686 131 delay 2; +#X obj 486 531 unpack 0 0; +#X obj 486 559 + 0; +#X obj 486 580 pack 0 0; +#X msg 578 105 stop; +#X obj 475 99 / 1000; +#X obj 475 78 r \$0-sr; +#X obj 486 478 pack 0 -2.205e+08; +#X msg 486 500 1 0 \, \$2 \$1; +#X obj 602 435 r \$0-sr; +#X obj 602 456 * -10000; +#X obj 406 435 r \$0-sr; +#X obj 406 456 * 10000; +#X obj 297 479 pack 0 2.205e+08; +#X floatatom 506 172 5 0 0 0 - - -; +#X msg 297 506 1 0 \, \$2 \$1; +#X obj 686 97 r \$0-stop; +#X obj 174 112 pack 0 2; +#X obj 243 112 r \$0-fade; +#X obj 631 222 s \$0-cutoff; +#X obj 631 198 pack 0 2; +#X obj 700 198 r \$0-fade; +#X obj 649 73 r \$0-fade; +#X connect 5 0 11 0; +#X connect 5 1 27 0; +#X connect 8 0 13 0; +#X connect 11 0 7 0; +#X connect 12 0 11 1; +#X connect 13 0 29 0; +#X connect 13 1 63 0; +#X connect 15 0 24 0; +#X connect 17 0 59 0; +#X connect 18 0 17 0; +#X connect 19 0 23 0; +#X connect 19 1 18 1; +#X connect 21 0 53 0; +#X connect 22 0 21 0; +#X connect 23 0 22 1; +#X connect 24 0 27 1; +#X connect 24 0 38 0; +#X connect 24 1 28 0; +#X connect 25 0 26 0; +#X connect 26 0 18 0; +#X connect 26 1 22 0; +#X connect 27 0 25 0; +#X connect 28 0 19 0; +#X connect 29 0 5 0; +#X connect 30 0 36 0; +#X connect 32 0 40 0; +#X connect 33 0 34 0; +#X connect 33 1 35 1; +#X connect 34 0 35 0; +#X connect 35 0 6 0; +#X connect 36 0 34 1; +#X connect 36 0 48 1; +#X connect 40 0 50 0; +#X connect 40 1 45 0; +#X connect 41 0 46 0; +#X connect 41 0 66 0; +#X connect 45 0 41 0; +#X connect 46 0 44 0; +#X connect 47 0 48 0; +#X connect 47 1 49 1; +#X connect 48 0 49 0; +#X connect 49 0 20 0; +#X connect 50 0 41 0; +#X connect 51 0 36 1; +#X connect 51 0 60 0; +#X connect 52 0 51 0; +#X connect 53 0 54 0; +#X connect 54 0 47 0; +#X connect 55 0 56 0; +#X connect 56 0 53 1; +#X connect 57 0 58 0; +#X connect 58 0 59 1; +#X connect 59 0 61 0; +#X connect 61 0 33 0; +#X connect 62 0 41 0; +#X connect 62 0 46 0; +#X connect 63 0 9 0; +#X connect 64 0 63 1; +#X connect 64 0 29 1; +#X connect 66 0 65 0; +#X connect 67 0 66 1; +#X connect 68 0 45 1; +#X connect 68 0 46 1; +#X restore 192 238 pd trigger-sample; +#X obj 186 417 r \$0-cutoff; +#X obj 169 459 *~; +#X obj 186 437 vline~; +#X obj 75 302 r \$0-phase; +#X text 162 19 IN: tablename gain transposition start(ms) duration(ms) +loop(0/1); +#X text 542 64 dispatcher (later); +#X obj 466 302 unpack 0 0; +#X obj 466 364 pack 0 0; +#X msg 466 391 set \$1 \$2; +#X msg 466 419 2.205e+08 1e+07; +#X msg 466 271 22050 1000; +#X floatatom 579 301 5 0 0 0 - - -; +#X obj 533 329 * 10000; +#X obj 466 330 * 10000; +#X obj 74 431 snapshot~; +#X obj 91 406 metro 100; +#X obj 91 385 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X floatatom 74 457 10 0 0 0 - - -; +#X obj 169 140 list; +#N canvas 234 205 750 421 defaults 0; +#X obj 158 237 select 0; +#X msg 158 260 1; +#X obj 118 47 inlet; +#X text 165 329 gain; +#X text 227 339 transpos; +#X text 322 335 start; +#X text 382 343 duration; +#X obj 158 313 outlet; +#X obj 231 237 select 0; +#X msg 231 260 1; +#X obj 231 313 outlet; +#X obj 323 311 outlet; +#X obj 385 315 outlet; +#X obj 458 315 outlet; +#X text 454 346 loops; +#X text 457 365 later; +#X obj 118 76 list split 1; +#X obj 158 115 t a b; +#X obj 158 176 unpack 1 2 3 4 5; +#X text 268 137 defaults: gain 1 \, trans 1 \, start 0 \, dur 0==all +\, loops 0; +#X msg 190 138 1 1 0 0 0; +#X connect 0 0 1 0; +#X connect 0 1 7 0; +#X connect 1 0 7 0; +#X connect 2 0 16 0; +#X connect 8 0 9 0; +#X connect 8 1 10 0; +#X connect 9 0 10 0; +#X connect 16 1 17 0; +#X connect 16 2 17 0; +#X connect 17 0 18 0; +#X connect 17 1 20 0; +#X connect 18 0 0 0; +#X connect 18 1 8 0; +#X connect 18 2 11 0; +#X connect 18 3 12 0; +#X connect 18 4 13 0; +#X connect 20 0 18 0; +#X restore 215 199 pd defaults; +#X obj 186 116 t b a; +#X obj 169 85 route bang; +#X obj 233 490 outlet; +#X text 231 509 bangs at end of duration \, if specified; +#X obj 169 167 t a a a; +#N canvas 0 0 450 300 sr 0; +#X obj 80 49 inlet; +#X obj 80 101 route sr; +#X obj 80 74 list trim; +#X obj 133 123 outlet; +#X obj 80 167 s \$0-sr; +#X connect 0 0 2 0; +#X connect 1 0 4 0; +#X connect 1 1 3 0; +#X connect 2 0 1 0; +#X restore 540 111 pd sr; +#N canvas 0 0 492 417 stop 0; +#X obj 80 49 inlet; +#X obj 80 74 list trim; +#X obj 147 131 outlet; +#X obj 80 101 route stop; +#X obj 155 271 s \$0-cutoff; +#X obj 80 128 b; +#X obj 80 290 s \$0-stop; +#X msg 80 268 stop; +#X obj 80 247 delay 2; +#X obj 151 201 r \$0-fade; +#X obj 155 249 pack 0 2; +#X connect 0 0 1 0; +#X connect 1 0 3 0; +#X connect 3 0 5 0; +#X connect 3 1 2 0; +#X connect 5 0 8 0; +#X connect 5 0 10 0; +#X connect 7 0 6 0; +#X connect 8 0 7 0; +#X connect 9 0 8 1; +#X connect 9 0 10 1; +#X connect 10 0 4 0; +#X restore 540 133 pd stop; +#X obj 26 273 r \$0-stop; +#N canvas 0 0 492 417 fade 0; +#X obj 80 49 inlet; +#X obj 80 74 list trim; +#X obj 147 131 outlet; +#X obj 80 101 route stop; +#X obj 80 187 s \$0-fade; +#X obj 80 161 max 0; +#X connect 0 0 1 0; +#X connect 1 0 3 0; +#X connect 3 0 5 0; +#X connect 3 1 2 0; +#X connect 5 0 4 0; +#X restore 540 154 pd fade; +#X connect 0 0 33 0; +#X connect 1 0 29 0; +#X connect 3 0 9 0; +#X connect 4 0 5 0; +#X connect 5 0 3 0; +#X connect 6 0 3 0; +#X connect 6 0 22 0; +#X connect 7 0 30 0; +#X connect 8 0 10 0; +#X connect 9 0 2 0; +#X connect 10 0 9 1; +#X connect 11 0 6 0; +#X connect 14 0 21 0; +#X connect 14 1 20 0; +#X connect 15 0 16 0; +#X connect 16 0 17 0; +#X connect 18 0 14 0; +#X connect 19 0 20 1; +#X connect 19 0 21 1; +#X connect 20 0 15 1; +#X connect 21 0 15 0; +#X connect 22 0 25 0; +#X connect 23 0 22 0; +#X connect 24 0 23 0; +#X connect 26 0 32 0; +#X connect 27 0 7 1; +#X connect 27 1 7 2; +#X connect 27 2 7 3; +#X connect 27 3 7 4; +#X connect 27 4 7 5; +#X connect 28 0 26 0; +#X connect 28 1 26 1; +#X connect 29 0 26 0; +#X connect 29 1 28 0; +#X connect 32 0 4 0; +#X connect 32 1 7 0; +#X connect 32 2 27 0; +#X connect 33 0 34 0; +#X connect 34 0 36 0; +#X connect 35 0 6 0; diff --git a/l2ork_addons/rjlib/rj/s_playtable2-help.pd b/l2ork_addons/rjlib/rj/s_playtable2-help.pd new file mode 100644 index 000000000..ba3d31842 --- /dev/null +++ b/l2ork_addons/rjlib/rj/s_playtable2-help.pd @@ -0,0 +1,75 @@ +#N canvas 289 87 898 692 10; +#X obj 604 377 openpanel; +#X obj 604 424 soundfiler; +#X obj 604 350 bng 20 250 50 0 empty empty open-sample 0 -6 1 10 -262144 +-1 -1; +#X obj 122 574 soundoutput; +#X msg 158 209 play-samp 0.5 2; +#X text 356 235 original gain \, original pitch \, start at 500 ms +; +#X msg 171 261 play-samp 1 1 500 250; +#X msg 167 238 play-samp 1 1 500; +#X msg 178 355 bang; +#X text 220 355 repeat last instruction; +#X obj 240 554 spigot; +#X obj 295 555 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 240 582 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X msg 177 319 play-samp 0.8 -1 8000 8000; +#X text 175 295 attenuated \, reversed \, starting at 8000ms \, playing +for 8000ms; +#X text 233 532 last outlet: bang at end of duration; +#X text 355 259 original gain \, original pitch \, start at 500 ms +\, play for 250ms; +#X msg 122 158 play-samp; +#X msg 278 420 sr 44100; +#X msg 203 419 sr 22050; +#X text 201 399 adjust file samplerate (Hz \, default 22050); +#X text 303 203 attenuated \, transposed up an octave.Transposition +is doen by resampling; +#X msg 142 183 play-samp 1 1 0 8000; +#X text 203 158 play all with original gain and original pitch; +#X msg 220 511 stop; +#X text 261 512 stop playing; +#X text 96 26 s_playtable2; +#X obj 602 537 table play-samp-1; +#X obj 602 559 table play-samp-2; +#X msg 604 398 read -resize \$1 play-samp-1 play-samp-2; +#X text 115 50 Low level \, but flexible table-sample stereo player. +Plays two tables called "basename-1" and "basename-2"; +#X text 117 111 <table base name> <gain> <transposition> <start location +(ms)> <duration (ms)> <looping 0/1>; +#X text 99 92 s_playtable2 is controlled through messages composed +of:; +#X obj 122 513 s_playtable2; +#X text 395 591 The tables to play must have the same basename with +"-1 " for left and "-2" for right channel appended.; +#X obj 397 630 u_samplebank2 \$0-stereo-sample; +#X text 617 630 does this automatically for you.; +#X text 301 180 original gain \, original pitch \, start at 0 \, play +for 8000ms; +#X msg 280 461 fade \$1; +#X floatatom 280 443 5 0 0 0 - - -; +#X text 344 452 fade in/out time (default is 2msec); +#X connect 0 0 29 0; +#X connect 2 0 0 0; +#X connect 4 0 33 0; +#X connect 6 0 33 0; +#X connect 7 0 33 0; +#X connect 8 0 33 0; +#X connect 10 0 12 0; +#X connect 10 0 33 0; +#X connect 11 0 10 1; +#X connect 13 0 33 0; +#X connect 17 0 33 0; +#X connect 18 0 33 1; +#X connect 19 0 33 1; +#X connect 22 0 33 0; +#X connect 24 0 33 1; +#X connect 29 0 1 0; +#X connect 33 0 3 0; +#X connect 33 1 3 1; +#X connect 33 2 10 0; +#X connect 38 0 33 1; +#X connect 39 0 38 0; diff --git a/l2ork_addons/rjlib/rj/s_playtable2.pd b/l2ork_addons/rjlib/rj/s_playtable2.pd new file mode 100644 index 000000000..42024ce62 --- /dev/null +++ b/l2ork_addons/rjlib/rj/s_playtable2.pd @@ -0,0 +1,39 @@ +#N canvas 178 182 795 594 10; +#X obj 540 82 inlet; +#X obj 169 57 inlet; +#X obj 236 489 outlet~; +#X text 162 19 IN: tablename gain transposition start(ms) duration(ms) +loop(0/1); +#X text 542 64 dispatcher (later); +#X obj 547 481 outlet; +#X text 468 513 bangs at end of duration \, if specified; +#X obj 366 491 outlet~; +#X obj 236 286 s_playtable; +#X obj 367 290 s_playtable; +#X obj 236 137 list split 1; +#X obj 236 229 list append; +#X obj 367 230 list append; +#X msg 236 202 \$1-1; +#X msg 367 208 \$1-2; +#X obj 169 94 route bang; +#X obj 169 223 t b b; +#X connect 0 0 9 1; +#X connect 0 0 8 1; +#X connect 1 0 15 0; +#X connect 8 0 2 0; +#X connect 8 1 5 0; +#X connect 9 0 7 0; +#X connect 10 0 14 0; +#X connect 10 0 13 0; +#X connect 10 1 11 1; +#X connect 10 1 12 1; +#X connect 10 2 11 1; +#X connect 10 2 12 1; +#X connect 11 0 8 0; +#X connect 12 0 9 0; +#X connect 13 0 11 0; +#X connect 14 0 12 0; +#X connect 15 0 16 0; +#X connect 15 1 10 0; +#X connect 16 0 8 0; +#X connect 16 1 9 0; diff --git a/l2ork_addons/rjlib/rj/s_rhodey-help.pd b/l2ork_addons/rjlib/rj/s_rhodey-help.pd new file mode 100644 index 000000000..10ead076c --- /dev/null +++ b/l2ork_addons/rjlib/rj/s_rhodey-help.pd @@ -0,0 +1,119 @@ +#N canvas 413 82 803 659 10; +#X obj 426 338 hsl 128 15 0 1 0 0 empty empty tone_(0...1) 20 7 1 10 +-262144 -1 -1 6200 1; +#X obj 179 371 makenote 100 100; +#X obj 179 394 pack 0 0; +#X obj 178 531 soundoutput; +#N canvas 145 44 577 652 random 0; +#X obj 100 99 select 1; +#X obj 100 35 inlet; +#X obj 174 203 * 200; +#X obj 174 231 t a a; +#X obj 449 409 outlet; +#X obj 100 367 random 12; +#X obj 174 144 random 4; +#X obj 174 169 + 1; +#X obj 174 268 delay; +#X obj 100 60 t a a; +#X obj 340 192 spigot 1; +#X obj 175 391 * 12; +#X obj 175 367 random 3; +#X obj 100 422 +; +#X obj 100 479 outlet; +#X obj 259 367 random 40; +#X obj 259 387 + 40; +#X obj 259 473 outlet; +#X obj 100 332 t b b b; +#X obj 100 451 + 40; +#X obj 269 39 inlet; +#X obj 449 380 - 1; +#X connect 0 0 6 0; +#X connect 1 0 9 0; +#X connect 2 0 3 0; +#X connect 3 0 8 0; +#X connect 3 0 18 0; +#X connect 3 1 21 0; +#X connect 5 0 13 0; +#X connect 6 0 7 0; +#X connect 7 0 2 0; +#X connect 8 0 10 0; +#X connect 9 0 0 0; +#X connect 9 1 10 1; +#X connect 10 0 6 0; +#X connect 11 0 13 1; +#X connect 12 0 11 0; +#X connect 13 0 19 0; +#X connect 15 0 16 0; +#X connect 16 0 17 0; +#X connect 18 0 5 0; +#X connect 18 1 12 0; +#X connect 18 2 15 0; +#X connect 19 0 14 0; +#X connect 20 0 2 1; +#X connect 21 0 4 0; +#X restore 179 335 pd random notes; +#X obj 179 313 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X floatatom 195 417 5 0 0 3 pitch - -; +#X floatatom 288 415 5 0 0 3 velocity - -; +#X floatatom 281 313 5 0 0 0 - - -; +#X text 162 40 Rhodes piano realised with a 4-operator FM synth; +#X text 168 96 Inlet 0: midi note/velocity pairs; +#X text 159 615 It's a clone of the STK Rhodey.; +#X obj 288 461 r \$0-in1; +#X obj 423 383 s \$0-in1; +#X msg 423 359 tone \$1; +#X obj 423 468 s \$0-in1; +#X floatatom 423 423 5 0 0 0 - - -; +#X obj 535 467 s \$0-in1; +#X floatatom 535 422 5 0 0 0 - - -; +#X msg 304 488 help; +#X obj 424 566 s \$0-in1; +#X floatatom 424 521 5 0 0 0 - - -; +#X msg 424 543 mod \$1; +#X msg 423 444 vib-freq \$1; +#X msg 535 444 vib-depth \$1; +#X text 230 137 tone: float from 0...1 \, default is 0.5); +#X text 230 178 vib-freq: vibrato frequency (try 11); +#X text 231 198 vib-depth: vibrato depth (try 1); +#X text 168 117 Inlet 1 accepts various methods:; +#X obj 179 488 s_rhodey mypiano; +#X text 167 65 Args: <Name>; +#X obj 538 564 s \$0-in1; +#X floatatom 538 519 5 0 127 0 - - -; +#X msg 538 541 adsr24 \$1; +#X text 231 243 adsr24: depth of the modulating operator's (2 and 4) +envelopes (0-127 \, default 127) (this is an exotic parameter...); +#X text 231 222 mod: modulation index for first operator pair (default +1); +#X obj 79 39 s_rhodey; +#X obj 592 383 s \$0-in1; +#X floatatom 592 338 5 0 0 0 - - -; +#X msg 592 360 decay \$1; +#X text 230 155 decay: decay of note in msec (default: 1500); +#X connect 0 0 14 0; +#X connect 1 0 2 0; +#X connect 1 0 6 0; +#X connect 1 1 2 1; +#X connect 1 1 7 0; +#X connect 2 0 29 0; +#X connect 4 0 1 0; +#X connect 4 1 1 1; +#X connect 4 2 1 2; +#X connect 5 0 4 0; +#X connect 8 0 4 1; +#X connect 12 0 29 1; +#X connect 14 0 13 0; +#X connect 16 0 23 0; +#X connect 18 0 24 0; +#X connect 19 0 29 1; +#X connect 21 0 22 0; +#X connect 22 0 20 0; +#X connect 23 0 15 0; +#X connect 24 0 17 0; +#X connect 29 0 3 0; +#X connect 29 0 3 1; +#X connect 32 0 33 0; +#X connect 33 0 31 0; +#X connect 38 0 39 0; +#X connect 39 0 37 0; diff --git a/l2ork_addons/rjlib/rj/s_rhodey.pd b/l2ork_addons/rjlib/rj/s_rhodey.pd new file mode 100644 index 000000000..7536d6ff5 --- /dev/null +++ b/l2ork_addons/rjlib/rj/s_rhodey.pd @@ -0,0 +1,212 @@ +#N canvas 24 28 1106 642 10; +#N canvas 424 366 478 366 pmosc 0; +#X obj 119 199 cos~; +#X obj 119 167 +~; +#X obj 120 273 outlet~; +#X obj 119 115 phasor~; +#X obj 119 86 inlet~; +#X obj 136 146 inlet~; +#X obj 160 199 inlet~; +#X obj 120 236 *~; +#X text 38 21 phase-modulation oscillator; +#X text 38 57 signal inlets: 1: freq \, 2: phase \, 3: amp; +#X connect 0 0 7 0; +#X connect 1 0 0 0; +#X connect 3 0 1 0; +#X connect 4 0 3 0; +#X connect 5 0 1 1; +#X connect 6 0 7 1; +#X connect 7 0 2 0; +#X restore 270 352 pd pmosc; +#N canvas 424 366 478 366 pmosc 0; +#X obj 119 199 cos~; +#X obj 119 167 +~; +#X obj 120 273 outlet~; +#X obj 119 115 phasor~; +#X obj 119 86 inlet~; +#X obj 136 146 inlet~; +#X obj 160 199 inlet~; +#X obj 120 236 *~; +#X text 38 21 phase-modulation oscillator; +#X text 38 57 signal inlets: 1: freq \, 2: phase \, 3: amp; +#X connect 0 0 7 0; +#X connect 1 0 0 0; +#X connect 3 0 1 0; +#X connect 4 0 3 0; +#X connect 5 0 1 1; +#X connect 6 0 7 1; +#X connect 7 0 2 0; +#X restore 245 396 pd pmosc; +#N canvas 424 366 478 366 pmosc 0; +#X obj 119 199 cos~; +#X obj 119 167 +~; +#X obj 120 273 outlet~; +#X obj 119 115 phasor~; +#X obj 119 86 inlet~; +#X obj 136 146 inlet~; +#X obj 160 199 inlet~; +#X obj 120 236 *~; +#X text 38 21 phase-modulation oscillator; +#X text 38 57 signal inlets: 1: freq \, 2: phase \, 3: amp; +#X connect 0 0 7 0; +#X connect 1 0 0 0; +#X connect 3 0 1 0; +#X connect 4 0 3 0; +#X connect 5 0 1 1; +#X connect 6 0 7 1; +#X connect 7 0 2 0; +#X restore 136 354 pd pmosc; +#N canvas 424 366 478 366 pmosc 0; +#X obj 119 199 cos~; +#X obj 119 167 +~; +#X obj 120 273 outlet~; +#X obj 119 115 phasor~; +#X obj 119 86 inlet~; +#X obj 136 146 inlet~; +#X obj 160 199 inlet~; +#X obj 120 236 *~; +#X text 38 21 phase-modulation oscillator; +#X text 38 57 signal inlets: 1: freq \, 2: phase \, 3: amp; +#X connect 0 0 7 0; +#X connect 1 0 0 0; +#X connect 3 0 1 0; +#X connect 4 0 3 0; +#X connect 5 0 1 1; +#X connect 6 0 7 1; +#X connect 7 0 2 0; +#X restore 109 399 pd pmosc; +#X obj 108 219 mtof; +#X obj 107 523 outlet~; +#X obj 397 149 * 0.535887; +#X obj 667 149 * 0.108819; +#X obj 671 281 / 127; +#X obj 397 286 / 127; +#X obj 397 127 / 127; +#X obj 397 172 t a a; +#X obj 397 308 t a a; +#X obj 671 303 t a a; +#X obj 667 169 t a a; +#X obj 667 123 / 127; +#X obj 671 253 r \$0-vel; +#X obj 667 94 r \$0-vel; +#X obj 397 258 r \$0-vel; +#X obj 397 101 r \$0-vel; +#X obj 108 81 unpack 0 0; +#X obj 175 105 s \$0-vel; +#X obj 108 57 inlet; +#X text 691 513 + --> Out; +#X text 644 527 2->1--/; +#X text 525 513 Algorithm 5 is : 4->3--; +#X text 551 471 4-op FM Rhodey piano based on algorithm 5:; +#X text 310 371 op 4; +#X text 277 413 op 3; +#X text 144 417 op 1; +#X text 169 370 op 2; +#X text 791 216 op 4; +#X text 819 324 op 3; +#X text 572 330 op 1; +#X text 573 198 op 2; +#X obj 840 31 inlet; +#X text 102 31 Midi: <pitch> <velocity>; +#X obj 667 197 c_adsr 1 1 1000 0 40; +#X obj 671 330 c_adsr 1 1 250 0 40; +#X obj 397 334 c_adsr 1 1 1500 0 40; +#X obj 397 199 c_adsr 1 1 1500 0 40; +#X obj 108 493 c_xfade f; +#X text 532 570 Clone of the STK Rhodey; +#N canvas 29 43 450 300 vib 0; +#X obj 144 64 inlet~; +#X obj 145 210 outlet~; +#X obj 144 168 +~; +#X obj 200 95 osc~ 0; +#X obj 200 64 inlet; +#X obj 281 65 inlet; +#X obj 199 123 *~ 0; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 3 0 6 0; +#X connect 4 0 3 0; +#X connect 5 0 6 1; +#X connect 6 0 2 1; +#X restore 108 278 pd vib; +#X obj 840 103 rjdispatch \$0 tone; +#X obj 840 123 rjdispatch \$0 mod; +#X obj 899 80 rjloader s_rhodey-\$1 \$0; +#X obj 190 493 pack 0 10; +#X obj 190 470 r \$0-tone; +#X obj 840 144 rjdispatch \$0 vib-freq; +#X obj 840 166 rjdispatch \$0 vib-depth; +#X obj 150 220 r \$0-vib-freq; +#X obj 162 243 r \$0-vib-depth; +#X obj 270 326 * 15; +#X obj 136 330 * 0.5; +#X obj 840 186 rjdispatch \$0 adsr24; +#X obj 561 88 r \$0-adsr24; +#X obj 561 112 / 127; +#X obj 666 222 *~ 1; +#X obj 397 221 *~ 1; +#X obj 135 376 *~ 1; +#X obj 182 329 r \$0-mod; +#X obj 275 437 loadbang; +#X msg 275 459 0.5; +#X obj 479 173 r \$0-decay; +#X obj 840 207 rjdispatch \$0 decay; +#X obj 479 301 r \$0-decay; +#X connect 0 0 1 1; +#X connect 1 0 41 1; +#X connect 2 0 60 0; +#X connect 3 0 41 0; +#X connect 4 0 43 0; +#X connect 4 0 53 0; +#X connect 4 0 54 0; +#X connect 6 0 11 0; +#X connect 7 0 14 0; +#X connect 8 0 13 0; +#X connect 9 0 12 0; +#X connect 10 0 6 0; +#X connect 11 0 40 0; +#X connect 11 1 40 1; +#X connect 12 0 39 0; +#X connect 12 1 39 1; +#X connect 13 0 38 0; +#X connect 13 1 38 1; +#X connect 14 0 37 0; +#X connect 14 1 37 1; +#X connect 15 0 7 0; +#X connect 16 0 8 0; +#X connect 17 0 15 0; +#X connect 18 0 9 0; +#X connect 19 0 10 0; +#X connect 20 0 4 0; +#X connect 20 1 21 0; +#X connect 22 0 20 0; +#X connect 35 0 44 0; +#X connect 37 0 58 0; +#X connect 38 0 1 2; +#X connect 39 0 3 2; +#X connect 40 0 59 0; +#X connect 41 0 5 0; +#X connect 43 0 3 0; +#X connect 43 0 1 0; +#X connect 44 0 45 0; +#X connect 45 0 49 0; +#X connect 47 0 41 2; +#X connect 48 0 47 0; +#X connect 49 0 50 0; +#X connect 50 0 55 0; +#X connect 51 0 43 1; +#X connect 52 0 43 2; +#X connect 53 0 0 0; +#X connect 54 0 2 0; +#X connect 55 0 65 0; +#X connect 56 0 57 0; +#X connect 57 0 58 1; +#X connect 57 0 59 1; +#X connect 58 0 0 2; +#X connect 59 0 2 2; +#X connect 60 0 3 1; +#X connect 61 0 60 1; +#X connect 62 0 63 0; +#X connect 63 0 47 0; +#X connect 64 0 40 3; +#X connect 66 0 39 3; diff --git a/l2ork_addons/rjlib/rj/sssad.pd b/l2ork_addons/rjlib/rj/sssad.pd new file mode 100644 index 000000000..0fad7e9d8 --- /dev/null +++ b/l2ork_addons/rjlib/rj/sssad.pd @@ -0,0 +1,257 @@ +#N canvas 144 48 1039 564 10; +#X obj 159 26 inlet; +#X obj 233 55 list prepend \$1; +#X obj 233 160 list trim; +#X obj 233 25 inlet; +#X obj 22 308 b; +#X obj 159 53 b; +#X obj 233 223 route \$1; +#X obj 543 358 b; +#X obj 543 250 spigot; +#X obj 669 72 loadbang; +#X obj 669 250 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 669 194 select 0; +#X obj 701 141 + 1; +#X obj 669 120 t a a; +#X obj 669 216 f 1; +#X obj 226 476 outlet; +#X obj 159 450 route bang; +#X text 243 449 filter out empty lists; +#X obj 610 474 list prepend persist \$1; +#X obj 159 421 list append; +#X text 231 110 on SSSAD we eavesdrop the communication; +#X text 692 249 <- only the first instance responds to "save"; +#X text 165 540 2007/2008 fbar; +#X text 829 95 Enhancement by Enrique Erne; +#X obj 543 425 list append; +#X obj 543 448 route bang; +#X text 627 447 filter out empty lists here \, too.; +#X obj 22 226 route set setonly; +#X obj 80 273 route \$1; +#X obj 80 251 list trim; +#X obj 608 324 route \$1; +#X obj 608 302 list trim; +#X obj 543 277 route save saveonly; +#X obj 610 498 list trim; +#N canvas 513 284 322 286 s-SSSAD 0; +#X obj 63 38 inlet; +#X obj 63 176 s SSSAD; +#X obj 123 176 s \$2-SSSAD; +#X obj 123 39 loadbang; +#N canvas 0 0 450 300 demux2 0; +#X obj 114 91 == 0; +#X obj 190 115 spigot; +#X obj 61 43 inlet; +#X obj 229 46 inlet; +#X obj 61 113 spigot 1; +#X obj 61 156 outlet; +#X obj 190 157 outlet; +#X connect 0 0 4 1; +#X connect 1 0 6 0; +#X connect 2 0 4 0; +#X connect 2 0 1 0; +#X connect 3 0 0 0; +#X connect 3 0 1 1; +#X connect 4 0 5 0; +#X restore 63 137 pd demux2; +#X obj 123 81 select 0; +#X msg 123 103 0; +#X msg 176 102 1; +#X obj 123 59 list append \$2; +#X obj 123 39 loadbang; +#X obj 123 81 select 0; +#X msg 123 103 0; +#X msg 176 102 1; +#X obj 123 59 list append \$2; +#X connect 0 0 4 0; +#X connect 3 0 8 0; +#X connect 4 0 1 0; +#X connect 4 1 2 0; +#X connect 5 0 6 0; +#X connect 5 1 7 0; +#X connect 6 0 4 1; +#X connect 7 0 4 1; +#X connect 8 0 5 0; +#X connect 9 0 13 0; +#X connect 10 0 11 0; +#X connect 10 1 12 0; +#X connect 13 0 10 0; +#X restore 233 84 pd s-SSSAD; +#N canvas 539 183 330 246 r-SSSAD 0; +#N canvas 0 0 450 300 mux2 0; +#X obj 114 121 == 0; +#X obj 190 145 spigot; +#X obj 61 43 inlet; +#X obj 229 66 inlet; +#X obj 61 143 spigot 1; +#X obj 61 186 outlet; +#X obj 190 45 inlet; +#X connect 0 0 4 1; +#X connect 1 0 5 0; +#X connect 2 0 4 0; +#X connect 3 0 0 0; +#X connect 3 0 1 1; +#X connect 4 0 5 0; +#X connect 6 0 1 0; +#X restore 63 167 pd mux2; +#X obj 63 16 r SSSAD; +#X obj 86 41 r \$2-SSSAD; +#X obj 63 201 outlet; +#X obj 109 74 loadbang; +#X obj 109 116 select 0; +#X msg 109 138 0; +#X msg 162 137 1; +#X obj 109 94 list append \$2; +#X connect 0 0 3 0; +#X connect 1 0 0 0; +#X connect 2 0 0 1; +#X connect 4 0 8 0; +#X connect 5 0 6 0; +#X connect 5 1 7 0; +#X connect 6 0 0 2; +#X connect 7 0 0 2; +#X connect 8 0 5 0; +#X restore 233 136 pd r-SSSAD; +#N canvas 539 183 330 246 r-SSSAD_ADMIN 0; +#N canvas 0 0 450 300 mux2 0; +#X obj 114 121 == 0; +#X obj 190 145 spigot; +#X obj 61 43 inlet; +#X obj 229 66 inlet; +#X obj 61 143 spigot 1; +#X obj 61 186 outlet; +#X obj 190 45 inlet; +#X connect 0 0 4 1; +#X connect 1 0 5 0; +#X connect 2 0 4 0; +#X connect 3 0 0 0; +#X connect 3 0 1 1; +#X connect 4 0 5 0; +#X connect 6 0 1 0; +#X restore 63 177 pd mux2; +#X obj 63 211 outlet; +#X obj 63 16 r SSSAD_ADMIN; +#X obj 86 41 r \$2-SSSAD_ADMIN; +#X obj 109 75 loadbang; +#X obj 109 117 select 0; +#X msg 109 139 0; +#X msg 162 138 1; +#X obj 109 95 list append \$2; +#X connect 0 0 1 0; +#X connect 2 0 0 0; +#X connect 3 0 0 1; +#X connect 4 0 8 0; +#X connect 5 0 6 0; +#X connect 5 1 7 0; +#X connect 6 0 0 2; +#X connect 7 0 0 2; +#X connect 8 0 5 0; +#X restore 543 190 pd r-SSSAD_ADMIN; +#N canvas 513 284 322 286 s-SSSAD_ADMIN 0; +#X obj 63 39 inlet; +#N canvas 0 0 450 300 demux2 0; +#X obj 114 91 == 0; +#X obj 190 115 spigot; +#X obj 61 43 inlet; +#X obj 229 46 inlet; +#X obj 61 113 spigot 1; +#X obj 61 156 outlet; +#X obj 190 157 outlet; +#X connect 0 0 4 1; +#X connect 1 0 6 0; +#X connect 2 0 4 0; +#X connect 2 0 1 0; +#X connect 3 0 0 0; +#X connect 3 0 1 1; +#X connect 4 0 5 0; +#X restore 63 137 pd demux2; +#X obj 63 206 s SSSAD_ADMIN; +#X obj 123 176 s \$2-SSSAD_ADMIN; +#X obj 123 39 loadbang; +#X obj 123 81 select 0; +#X msg 123 103 0; +#X msg 176 102 1; +#X obj 123 59 list append \$2; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 3 0; +#X connect 4 0 8 0; +#X connect 5 0 6 0; +#X connect 5 1 7 0; +#X connect 6 0 1 1; +#X connect 7 0 1 1; +#X connect 8 0 5 0; +#X restore 610 522 pd s-SSSAD_ADMIN; +#X obj 669 95 value \$1.\$2.SSSAD.req; +#X obj 701 164 value \$1.\$2.SSSAD.req; +#N canvas 539 183 330 246 r-SSSAD_ADMIN 0; +#N canvas 0 0 450 300 mux2 0; +#X obj 114 121 == 0; +#X obj 190 145 spigot; +#X obj 61 43 inlet; +#X obj 229 66 inlet; +#X obj 61 143 spigot 1; +#X obj 61 186 outlet; +#X obj 190 45 inlet; +#X connect 0 0 4 1; +#X connect 1 0 5 0; +#X connect 2 0 4 0; +#X connect 3 0 0 0; +#X connect 3 0 1 1; +#X connect 4 0 5 0; +#X connect 6 0 1 0; +#X restore 63 177 pd mux2; +#X obj 63 211 outlet; +#X obj 63 16 r SSSAD_ADMIN; +#X obj 86 41 r \$2-SSSAD_ADMIN; +#X obj 109 75 loadbang; +#X obj 109 117 select 0; +#X msg 109 139 0; +#X msg 162 138 1; +#X obj 109 95 list append \$2; +#X connect 0 0 1 0; +#X connect 2 0 0 0; +#X connect 3 0 0 1; +#X connect 4 0 8 0; +#X connect 5 0 6 0; +#X connect 5 1 7 0; +#X connect 6 0 0 2; +#X connect 7 0 0 2; +#X connect 8 0 5 0; +#X restore 22 187 pd r-SSSAD_ADMIN; +#X connect 0 0 5 0; +#X connect 1 0 34 0; +#X connect 2 0 6 0; +#X connect 3 0 1 0; +#X connect 4 0 19 0; +#X connect 5 0 19 0; +#X connect 6 0 19 1; +#X connect 6 0 24 1; +#X connect 7 0 24 0; +#X connect 8 0 32 0; +#X connect 9 0 38 0; +#X connect 11 0 14 0; +#X connect 12 0 39 0; +#X connect 13 0 11 0; +#X connect 13 1 12 0; +#X connect 14 0 8 1; +#X connect 14 0 10 0; +#X connect 16 1 15 0; +#X connect 18 0 33 0; +#X connect 19 0 16 0; +#X connect 24 0 25 0; +#X connect 25 1 18 0; +#X connect 27 0 4 0; +#X connect 27 1 29 0; +#X connect 28 0 4 0; +#X connect 29 0 28 0; +#X connect 30 0 7 0; +#X connect 31 0 30 0; +#X connect 32 0 7 0; +#X connect 32 1 31 0; +#X connect 33 0 37 0; +#X connect 35 0 2 0; +#X connect 36 0 8 0; +#X connect 38 0 13 0; +#X connect 40 0 27 0; diff --git a/l2ork_addons/rjlib/rj/u.txt b/l2ork_addons/rjlib/rj/u.txt new file mode 100644 index 000000000..8eb13487b --- /dev/null +++ b/l2ork_addons/rjlib/rj/u.txt @@ -0,0 +1,6 @@ +u_fade +u_record +u_samplebank +u_samplebank2 +u_splicetrans +u_stereo diff --git a/l2ork_addons/rjlib/rj/u_fade-help.pd b/l2ork_addons/rjlib/rj/u_fade-help.pd new file mode 100644 index 000000000..44dfbcc37 --- /dev/null +++ b/l2ork_addons/rjlib/rj/u_fade-help.pd @@ -0,0 +1,10 @@ +#N canvas 279 168 450 300 10; +#X text 14 21 Create a named fader \, useful for automatic mixing; +#X obj 63 60 osc~ 220; +#X obj 63 131 u_fade myfade 0.1; +#X obj 39 199 soundoutput; +#X msg 268 60 \; myfade 0 500; +#X msg 269 111 \; myfade 0.3 500; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 3 1; diff --git a/l2ork_addons/rjlib/rj/u_fade.pd b/l2ork_addons/rjlib/rj/u_fade.pd new file mode 100644 index 000000000..d06d8ec2d --- /dev/null +++ b/l2ork_addons/rjlib/rj/u_fade.pd @@ -0,0 +1,21 @@ +#N canvas 0 22 450 300 10; +#X obj 80 26 inlet~; +#X obj 77 230 outlet~; +#X obj 77 206 *~; +#X obj 145 143 line~; +#X obj 144 28 inlet; +#X obj 226 28 loadbang; +#X obj 188 27 r \$1; +#X obj 227 72 float \$2; +#X msg 228 118 1; +#X obj 227 95 sel 0; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 3 0 2 1; +#X connect 4 0 3 0; +#X connect 5 0 7 0; +#X connect 6 0 3 0; +#X connect 7 0 9 0; +#X connect 8 0 3 0; +#X connect 9 0 8 0; +#X connect 9 1 3 0; diff --git a/l2ork_addons/rjlib/rj/u_record-help.pd b/l2ork_addons/rjlib/rj/u_record-help.pd new file mode 100644 index 000000000..4b6065823 --- /dev/null +++ b/l2ork_addons/rjlib/rj/u_record-help.pd @@ -0,0 +1,77 @@ +#N canvas 236 121 925 699 10; +#X floatatom 265 537 8 0 0 3 dur_in_smps - -; +#X floatatom 191 537 8 0 0 3 dur_in_ms - -; +#X msg 320 304 info; +#X obj 481 526 s_playtable; +#X obj 481 568 soundoutput; +#X msg 625 494 sr 44100; +#X msg 626 471 sr 22050; +#X symbolatom 116 537 10 0 0 3 table_name - -; +#X msg 626 526 stop; +#X text 103 54 Arguments:; +#X obj 116 487 unpack s f f f; +#X floatatom 349 537 6 0 0 3 samplerate - -; +#X obj 481 474 symbol \$0-sample; +#X msg 481 452 bang; +#X text 103 122 Inlets: 1) audio signal to record; +#X msg 296 188 start; +#X msg 305 214 stop; +#X text 369 298 output list containing: <table name> <recording duration +in ms> <rec. duration in samples> <samplerate>; +#X msg 314 242 clear; +#X msg 315 269 normalize; +#X text 391 270 normalize so that largest sample value is 1; +#X text 383 632 s_playtable can be used to play the sample; +#X obj 143 351 soundinput; +#X text 289 448 <name> <maxdur>; +#X text 359 215 stop recording; +#X text 350 187 start recording. Does not clear previous recordings! +; +#X text 366 244 delete recording and set duration to 0; +#X msg 318 389 clear \, start; +#X text 419 389 You can combine messages like this.; +#X msg 319 346 fade \$1; +#X floatatom 319 329 5 0 0 0 - - -; +#X text 393 333 default behaviour is to fade in and out over 5 msec. +You can change this time with "fade x" messages; +#X obj 116 447 u_record \$0-sample 2000; +#X obj 117 261 osc~ 440; +#X obj 143 387 *~ 0; +#X obj 183 388 tgl 15 0 empty empty microphone 17 7 1 10 -262144 -1 +-1 0 1; +#X obj 156 321 tgl 15 0 empty empty sine_wave 17 7 1 10 -262144 -1 +-1 0 1; +#X obj 116 320 *~ 1; +#X obj 43 18 u_record \$0-mysample; +#X text 210 19 Record mono sounds into Pd tables.; +#X text 143 73 <table name - required!>; +#X text 333 72 <max duration in milliseconds \, optional \, default +1000>; +#X text 157 145 2) various messages \, see below; +#X connect 2 0 32 1; +#X connect 3 0 4 0; +#X connect 3 0 4 1; +#X connect 5 0 3 1; +#X connect 6 0 3 1; +#X connect 8 0 3 1; +#X connect 10 0 7 0; +#X connect 10 1 1 0; +#X connect 10 2 0 0; +#X connect 10 3 11 0; +#X connect 12 0 3 0; +#X connect 13 0 12 0; +#X connect 15 0 32 1; +#X connect 16 0 32 1; +#X connect 18 0 32 1; +#X connect 19 0 32 1; +#X connect 22 0 34 0; +#X connect 22 1 34 0; +#X connect 27 0 32 1; +#X connect 29 0 32 1; +#X connect 30 0 29 0; +#X connect 32 0 10 0; +#X connect 33 0 37 0; +#X connect 34 0 32 0; +#X connect 35 0 34 1; +#X connect 36 0 37 1; +#X connect 37 0 32 0; diff --git a/l2ork_addons/rjlib/rj/u_record.pd b/l2ork_addons/rjlib/rj/u_record.pd new file mode 100644 index 000000000..d2a9e9e84 --- /dev/null +++ b/l2ork_addons/rjlib/rj/u_record.pd @@ -0,0 +1,225 @@ +#N canvas 166 143 906 632 10; +#X obj 450 57 table \$1; +#X obj 59 263 tabwrite~ \$1; +#X text 554 60 \$2: max table length in milliseconds; +#X text 555 40 \$1: table name; +#N canvas 267 39 862 712 init 0; +#X obj 86 62 loadbang; +#X obj 86 222 f \$2; +#X obj 118 118 samplerate~; +#X obj 86 450 s \$1; +#X msg 86 424 resize \$1; +#X obj 118 147 s \$0-sr; +#X obj 115 350 s \$0-maxdur; +#X obj 86 255 select 0; +#X msg 86 275 1000; +#X msg 164 58 bang; +#X obj 86 85 t b b; +#X obj 86 316 f; +#X floatatom 39 352 5 0 0 0 - - -; +#N canvas 384 244 568 337 ms2smps 0; +#X obj 202 160 samplerate~; +#X obj 202 183 / 1000; +#X obj 202 135 loadbang; +#X obj 135 134 inlet; +#X obj 135 228 outlet; +#X msg 276 134 bang; +#X obj 135 183 * 22.05; +#X connect 0 0 1 0; +#X connect 1 0 6 1; +#X connect 2 0 0 0; +#X connect 3 0 6 0; +#X connect 5 0 0 0; +#X connect 6 0 4 0; +#X restore 86 401 pd ms2smps; +#X connect 0 0 10 0; +#X connect 1 0 7 0; +#X connect 2 0 5 0; +#X connect 4 0 3 0; +#X connect 7 0 8 0; +#X connect 7 1 11 0; +#X connect 8 0 11 0; +#X connect 9 0 10 0; +#X connect 10 0 1 0; +#X connect 10 1 2 0; +#X connect 11 0 6 0; +#X connect 11 0 12 0; +#X connect 11 0 13 0; +#X connect 13 0 4 0; +#X restore 450 80 pd init; +#X obj 219 49 inlet; +#X obj 72 233 r \$0-tw; +#X obj 219 483 outlet; +#X obj 219 336 symbol \$1; +#X obj 219 460 pack s 0 0 22050; +#X obj 328 434 r \$0-sr; +#X obj 219 78 list trim; +#X obj 449 206 timer; +#N canvas 561 97 325 355 start 0; +#X obj 77 48 inlet; +#X obj 151 97 outlet; +#X obj 77 70 route start; +#X obj 77 250 s \$0-tw; +#X msg 77 222 start; +#X obj 100 195 s \$0-start; +#X obj 123 164 s \$0-cut; +#X msg 123 143 1; +#X obj 77 115 t b b b; +#X connect 0 0 2 0; +#X connect 2 0 8 0; +#X connect 2 1 1 0; +#X connect 4 0 3 0; +#X connect 7 0 6 0; +#X connect 8 0 4 0; +#X connect 8 1 5 0; +#X connect 8 2 7 0; +#X restore 219 114 pd start; +#N canvas 0 0 464 491 stop 0; +#X obj 77 48 inlet; +#X obj 144 97 outlet; +#X obj 77 70 route stop; +#X obj 77 265 t b b; +#X obj 77 360 s \$0-tw; +#X obj 123 219 r \$0-fade; +#X obj 77 244 delay 5; +#X obj 109 163 s \$0-cut; +#X obj 77 115 t b b; +#X text 140 248 wait for fade in; +#X obj 109 295 s \$0-stop; +#X msg 77 332 stop; +#X msg 109 142 0; +#X connect 0 0 2 0; +#X connect 2 0 8 0; +#X connect 2 1 1 0; +#X connect 3 0 11 0; +#X connect 3 1 10 0; +#X connect 5 0 6 1; +#X connect 6 0 3 0; +#X connect 8 0 6 0; +#X connect 8 1 12 0; +#X connect 11 0 4 0; +#X connect 12 0 7 0; +#X restore 219 139 pd stop; +#N canvas 0 0 450 300 info 0; +#X obj 77 48 inlet; +#X obj 144 97 outlet; +#X obj 77 70 route info; +#X obj 77 158 s \$0-info; +#X obj 77 137 b; +#X connect 0 0 2 0; +#X connect 2 0 4 0; +#X connect 2 1 1 0; +#X connect 4 0 3 0; +#X restore 219 164 pd info; +#N canvas 0 0 450 300 clear 0; +#X obj 77 48 inlet; +#X obj 151 96 outlet; +#X obj 77 70 route clear; +#X obj 77 160 s \$1; +#X msg 77 131 const 0; +#X obj 137 162 s \$0-duration-ms; +#X msg 137 132 0; +#X connect 0 0 2 0; +#X connect 2 0 4 0; +#X connect 2 0 6 0; +#X connect 2 1 1 0; +#X connect 4 0 3 0; +#X connect 6 0 5 0; +#X restore 219 186 pd clear; +#N canvas 0 0 450 300 normalize 0; +#X obj 77 48 inlet; +#X obj 151 96 outlet; +#X obj 77 70 route clear; +#X obj 77 160 s \$1; +#X msg 77 131 normalize 1; +#X connect 0 0 2 0; +#X connect 2 0 4 0; +#X connect 2 1 1 0; +#X connect 4 0 3 0; +#X restore 219 207 pd normalize; +#X obj 481 179 b; +#X obj 449 180 b; +#X obj 449 131 r \$0-start; +#X obj 481 154 r \$0-stop; +#X obj 449 296 s \$0-duration-ms; +#X obj 255 362 r \$0-duration-ms; +#X floatatom 510 513 8 0 0 3 dur_in_smps - -; +#X floatatom 436 513 8 0 0 3 dur_in_ms - -; +#X symbolatom 361 513 10 0 0 3 table_name - -; +#X obj 361 463 unpack s f f f; +#X floatatom 594 513 6 0 0 3 samplerate - -; +#X obj 255 384 t a a; +#X obj 219 304 b; +#X obj 219 280 r \$0-info; +#X obj 449 255 min \$2; +#X obj 488 233 r \$0-maxdur; +#X obj 59 46 inlet~; +#X floatatom 460 277 5 0 0 0 - - -; +#X floatatom 405 233 5 0 0 0 - - -; +#N canvas 384 244 568 337 ms2smps 0; +#X obj 202 160 samplerate~; +#X obj 202 183 / 1000; +#X obj 202 135 loadbang; +#X obj 135 134 inlet; +#X obj 135 228 outlet; +#X msg 276 134 bang; +#X obj 135 183 * 22.05; +#X connect 0 0 1 0; +#X connect 1 0 6 1; +#X connect 2 0 0 0; +#X connect 3 0 6 0; +#X connect 5 0 0 0; +#X connect 6 0 4 0; +#X restore 291 408 pd ms2smps; +#X obj 59 194 *~; +#X obj 77 152 pack 0 5; +#X obj 77 95 r \$0-cut; +#N canvas 0 0 450 300 fade 0; +#X obj 77 48 inlet; +#X obj 144 98 outlet; +#X obj 77 132 s \$0-fade; +#X obj 77 70 route fade; +#X obj 77 108 f 5; +#X connect 0 0 3 0; +#X connect 3 0 4 0; +#X connect 3 1 1 0; +#X connect 4 0 2 0; +#X restore 219 230 pd fade; +#X obj 130 122 r \$0-fade; +#X obj 77 173 line~; +#X connect 5 0 11 0; +#X connect 6 0 1 0; +#X connect 8 0 9 0; +#X connect 9 0 7 0; +#X connect 10 0 9 3; +#X connect 11 0 13 0; +#X connect 12 0 32 0; +#X connect 12 0 36 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 17 0; +#X connect 17 0 41 0; +#X connect 18 0 12 1; +#X connect 19 0 12 0; +#X connect 20 0 19 0; +#X connect 21 0 18 0; +#X connect 23 0 29 0; +#X connect 27 0 26 0; +#X connect 27 1 25 0; +#X connect 27 2 24 0; +#X connect 27 3 28 0; +#X connect 29 0 9 1; +#X connect 29 1 37 0; +#X connect 30 0 8 0; +#X connect 31 0 30 0; +#X connect 32 0 22 0; +#X connect 32 0 35 0; +#X connect 33 0 32 1; +#X connect 34 0 38 0; +#X connect 37 0 9 2; +#X connect 38 0 1 0; +#X connect 39 0 43 0; +#X connect 40 0 39 0; +#X connect 42 0 39 1; +#X connect 43 0 38 1; diff --git a/l2ork_addons/rjlib/rj/u_samplebank-help.pd b/l2ork_addons/rjlib/rj/u_samplebank-help.pd new file mode 100644 index 000000000..451feb433 --- /dev/null +++ b/l2ork_addons/rjlib/rj/u_samplebank-help.pd @@ -0,0 +1,57 @@ +#N canvas 238 97 769 616 10; +#X declare -path .; +#X floatatom 255 487 8 0 0 3 dur_in_smps - -; +#X floatatom 181 487 8 0 0 3 dur_in_ms - -; +#X msg 140 282 info; +#X msg 106 213 open; +#X msg 142 335 sr 44100 \, info; +#X msg 141 360 sr 22050 \, info; +#X obj 440 475 s_playtable; +#X obj 440 517 soundoutput; +#X msg 584 443 sr 44100; +#X msg 585 420 sr 22050; +#X symbolatom 106 487 10 0 0 3 table_name - -; +#X msg 585 475 stop; +#X text 148 212 load a sample with opendialog; +#X text 308 246 load a sample by path; +#X text 262 339 Change the file samplerate \, that is used to calculate +the duration in milliseconds; +#X text 315 580 s_playtable can be used to play tables in the samplebank. +; +#X text 56 16 u_samplebank; +#X text 68 101 Arguments:; +#X msg 123 246 open file_not_found.wav; +#X text 95 43 Utility patch to load sample files into Pd tables. Also +calculates duration in milliseconds. Available in stereo as [u_samplebank2] +as well.; +#X text 202 275 output list containing: <table name> <duration in ms> +<duration in samples> <samplerate>; +#X obj 106 437 unpack s f f f; +#X floatatom 339 487 6 0 0 3 samplerate - -; +#X text 108 120 <table name - required!> <path to soundfile - optional> +; +#X obj 440 423 symbol \$0-sample; +#X obj 106 397 u_samplebank \$0-sample; +#X msg 440 401 bang; +#X obj 173 169 declare -path .; +#X text 101 145 You can add paths to search for soundfiles using "declare". +; +#X text 101 170 Just add; +#X text 289 169 to your _main.pd patch.; +#X connect 2 0 25 0; +#X connect 3 0 25 0; +#X connect 4 0 25 0; +#X connect 5 0 25 0; +#X connect 6 0 7 0; +#X connect 6 0 7 1; +#X connect 8 0 6 1; +#X connect 9 0 6 1; +#X connect 11 0 6 1; +#X connect 18 0 25 0; +#X connect 21 0 10 0; +#X connect 21 1 1 0; +#X connect 21 2 0 0; +#X connect 21 3 22 0; +#X connect 24 0 6 0; +#X connect 25 0 21 0; +#X connect 26 0 24 0; diff --git a/l2ork_addons/rjlib/rj/u_samplebank.pd b/l2ork_addons/rjlib/rj/u_samplebank.pd new file mode 100644 index 000000000..742a71965 --- /dev/null +++ b/l2ork_addons/rjlib/rj/u_samplebank.pd @@ -0,0 +1,65 @@ +#N canvas 346 149 858 647 10; +#X obj 514 93 table \$1; +#X obj 405 304 openpanel; +#X obj 405 452 soundfiler; +#X obj 314 208 bng 20 250 50 0 empty empty open-sample 0 -6 1 10 -262144 +-1 -1; +#X obj 67 54 inlet; +#X obj 67 90 list trim; +#X obj 405 371 symbol; +#X obj 534 281 list append \$2; +#X obj 534 304 select 0; +#X obj 534 257 loadbang; +#X obj 197 361 / 22.05; +#X obj 260 361 / 1000; +#X obj 260 340 r \$0-sr; +#X obj 67 167 s \$0-sr; +#X obj 197 323 t a a; +#X obj 108 491 outlet; +#X obj 472 304 list; +#X obj 405 206 b; +#X msg 405 426 read -resize \$1 \$2; +#X msg 494 363 bang; +#X obj 405 402 list append \$1; +#X obj 405 486 s \$0-samples; +#X obj 133 221 r \$0-samples; +#X obj 197 302 f; +#X obj 67 122 route sr info open; +#X obj 108 383 symbol \$1; +#X obj 405 165 route bang; +#X obj 108 463 list; +#X obj 108 251 t b a; +#X obj 108 437 pack s 0 0 22050; +#X obj 217 411 r \$0-sr; +#X connect 1 0 6 0; +#X connect 2 0 21 0; +#X connect 3 0 1 0; +#X connect 4 0 5 0; +#X connect 5 0 24 0; +#X connect 6 0 20 0; +#X connect 7 0 8 0; +#X connect 8 1 6 0; +#X connect 9 0 7 0; +#X connect 10 0 29 1; +#X connect 11 0 10 1; +#X connect 12 0 11 0; +#X connect 14 0 10 0; +#X connect 14 1 29 2; +#X connect 16 0 6 0; +#X connect 17 0 1 0; +#X connect 18 0 2 0; +#X connect 19 0 6 0; +#X connect 20 0 18 0; +#X connect 22 0 28 0; +#X connect 23 0 14 0; +#X connect 24 0 13 0; +#X connect 24 1 28 0; +#X connect 24 2 26 0; +#X connect 25 0 29 0; +#X connect 26 0 17 0; +#X connect 26 1 16 0; +#X connect 27 0 15 0; +#X connect 28 0 25 0; +#X connect 28 1 23 0; +#X connect 29 0 27 0; +#X connect 30 0 29 3; diff --git a/l2ork_addons/rjlib/rj/u_samplebank2-help.pd b/l2ork_addons/rjlib/rj/u_samplebank2-help.pd new file mode 100644 index 000000000..7c85f9db9 --- /dev/null +++ b/l2ork_addons/rjlib/rj/u_samplebank2-help.pd @@ -0,0 +1,59 @@ +#N canvas 238 97 781 672 10; +#X declare -path .; +#X floatatom 255 507 8 0 0 3 dur_in_smps - -; +#X floatatom 181 507 8 0 0 3 dur_in_ms - -; +#X msg 140 302 info; +#X msg 106 233 open; +#X msg 142 355 sr 44100 \, info; +#X msg 141 380 sr 22050 \, info; +#X obj 440 537 soundoutput; +#X msg 584 463 sr 44100; +#X msg 585 440 sr 22050; +#X symbolatom 106 547 12 0 0 3 table_base_name - -; +#X msg 585 495 stop; +#X text 148 232 load a sample with opendialog; +#X text 308 266 load a sample by path; +#X text 262 359 Change the file samplerate \, that is used to calculate +the duration in milliseconds; +#X text 68 131 Arguments:; +#X msg 123 266 open file_not_found.wav; +#X text 202 295 output list containing: <table name> <duration in ms> +<duration in samples> <samplerate>; +#X obj 106 457 unpack s f f f; +#X floatatom 339 507 6 0 0 3 samplerate - -; +#X text 108 150 <table name - required!> <path to soundfile - optional> +; +#X obj 440 443 symbol \$0-sample; +#X msg 440 421 bang; +#X text 56 16 u_samplebank2; +#X text 95 43 Utility patch to load sample stereo files into Pd tables. +Also calculates duration in milliseconds. Available in mono as [u_samplebank] +as well.; +#X obj 106 417 u_samplebank2 \$0-sample; +#X text 95 92 Left channel will be in table "ARGUMENT-1" \, right channel +is in table "ARGUMENT-2"; +#X obj 440 495 s_playtable2; +#X text 315 600 s_playtable2 can be used to play stereo samples in +the samplebank.; +#X obj 183 199 declare -path .; +#X text 111 175 You can add paths to search for soundfiles using "declare". +; +#X text 111 200 Just add; +#X text 299 199 to your _main.pd patch.; +#X connect 2 0 24 0; +#X connect 3 0 24 0; +#X connect 4 0 24 0; +#X connect 5 0 24 0; +#X connect 7 0 26 1; +#X connect 8 0 26 1; +#X connect 10 0 26 1; +#X connect 15 0 24 0; +#X connect 17 0 9 0; +#X connect 17 1 1 0; +#X connect 17 2 0 0; +#X connect 17 3 18 0; +#X connect 20 0 26 0; +#X connect 21 0 20 0; +#X connect 24 0 17 0; +#X connect 26 0 6 0; +#X connect 26 1 6 1; diff --git a/l2ork_addons/rjlib/rj/u_samplebank2.pd b/l2ork_addons/rjlib/rj/u_samplebank2.pd new file mode 100644 index 000000000..f5e863dc9 --- /dev/null +++ b/l2ork_addons/rjlib/rj/u_samplebank2.pd @@ -0,0 +1,66 @@ +#N canvas 346 149 858 647 10; +#X obj 405 304 openpanel; +#X obj 405 452 soundfiler; +#X obj 314 208 bng 20 250 50 0 empty empty open-sample 0 -6 1 10 -262144 +-1 -1; +#X obj 67 54 inlet; +#X obj 67 90 list trim; +#X obj 405 371 symbol; +#X obj 534 281 list append \$2; +#X obj 534 304 select 0; +#X obj 534 257 loadbang; +#X obj 197 361 / 22.05; +#X obj 260 361 / 1000; +#X obj 260 340 r \$0-sr; +#X obj 67 167 s \$0-sr; +#X obj 197 323 t a a; +#X obj 108 491 outlet; +#X obj 472 304 list; +#X obj 405 206 b; +#X msg 494 363 bang; +#X obj 405 402 list append \$1; +#X obj 405 486 s \$0-samples; +#X obj 133 221 r \$0-samples; +#X obj 197 302 f; +#X obj 67 122 route sr info open; +#X obj 108 383 symbol \$1; +#X obj 405 165 route bang; +#X obj 108 463 list; +#X obj 108 251 t b a; +#X obj 108 437 pack s 0 0 22050; +#X obj 217 411 r \$0-sr; +#X obj 514 93 table \$1-1; +#X obj 514 115 table \$1-2; +#X msg 405 426 read -resize \$1 \$2-1 \$2-2; +#X connect 0 0 5 0; +#X connect 1 0 19 0; +#X connect 2 0 0 0; +#X connect 3 0 4 0; +#X connect 4 0 22 0; +#X connect 5 0 18 0; +#X connect 6 0 7 0; +#X connect 7 1 5 0; +#X connect 8 0 6 0; +#X connect 9 0 27 1; +#X connect 10 0 9 1; +#X connect 11 0 10 0; +#X connect 13 0 9 0; +#X connect 13 1 27 2; +#X connect 15 0 5 0; +#X connect 16 0 0 0; +#X connect 17 0 5 0; +#X connect 18 0 31 0; +#X connect 20 0 26 0; +#X connect 21 0 13 0; +#X connect 22 0 12 0; +#X connect 22 1 26 0; +#X connect 22 2 24 0; +#X connect 23 0 27 0; +#X connect 24 0 16 0; +#X connect 24 1 15 0; +#X connect 25 0 14 0; +#X connect 26 0 23 0; +#X connect 26 1 21 0; +#X connect 27 0 25 0; +#X connect 28 0 27 3; +#X connect 31 0 1 0; diff --git a/l2ork_addons/rjlib/rj/u_splicetrans-help.pd b/l2ork_addons/rjlib/rj/u_splicetrans-help.pd new file mode 100644 index 000000000..811c74231 --- /dev/null +++ b/l2ork_addons/rjlib/rj/u_splicetrans-help.pd @@ -0,0 +1,160 @@ +#N canvas 312 169 803 592 10; +#X text 332 242 use harm. 1 \, 3 \, 5 for transition table.; +#X floatatom 60 185 5 0 0 0 - - -; +#X obj 60 206 mtof; +#X floatatom 60 227 5 0 0 0 - - -; +#X obj 205 339 tabwrite~ \$0-spliced0; +#N canvas 0 0 450 300 (subpatch) 0; +#X array \$0-spliced0 441 float 0; +#X coords 0 1 440 -1 200 140 1; +#X restore 545 35 graph; +#X msg 218 317 bang; +#X obj 59 362 *~ 1; +#X obj 100 361 *~ 0; +#X obj 123 342 tgl 15 0 empty empty aliased 17 7 1 10 -262144 -1 -1 +0 1; +#X obj 82 317 tgl 15 0 empty empty bandlim. 17 7 1 10 -262144 -1 -1 +0 1; +#X text 334 212 use harm. 1 \, 3 for transition table.; +#X text 49 18 [u_splicetrans]; +#X text 74 42 Replace jumps in a phasor~ signal by a bandlimited transition. +; +#X text 56 81 Inlets:; +#X text 79 99 in0~: phasor signal from 0-1; +#X text 78 117 in1~: frequency of phasor signal; +#X text 56 143 Outlets:; +#X text 77 159 out0~: phasor signal from 0-1 with bandlimited jump. +; +#X text 295 391 Extracting even.odd harmonics from a phasor~ with bandlimit +; +#X obj 376 467 throw~ \$0-outl; +#X obj 449 443 throw~ \$0-outr; +#X obj 145 406 catch~ \$0-outr; +#X obj 132 381 catch~ \$0-outl; +#X obj 170 317 -~ 0.5; +#N canvas 483 205 746 653 even.odd 0; +#X floatatom 45 74 5 0 0 1 frequency - -; +#X obj 101 155 wrap~; +#N canvas 0 0 450 300 (subpatch) 0; +#X array \$0-phasor-output 882 float 0; +#X coords 0 1.02 882 -1.02 200 130 1; +#X restore 504 23 graph; +#X obj 45 102 phasor~ 0; +#X obj 36 244 -~; +#X obj 98 244 +~; +#N canvas 0 0 450 300 (subpatch) 0; +#X array \$0-wrap-output 882 float 0; +#X coords 0 1.02 882 -1.02 200 130 1; +#X restore 505 158 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array \$0-sum 882 float 0; +#X coords 0 1.02 882 -1.02 200 130 1; +#X restore 506 293 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array \$0-difference 882 float 0; +#X coords 0 1.02 882 -1.02 200 130 1; +#X restore 506 433 graph; +#X msg 172 180 bang; +#X text 102 8 BUCHLA'S METHOD; +#X text 511 567 ---- 0.02 seconds ----; +#X obj 125 99 s \$0-freq; +#N canvas 0 0 450 300 s 0; +#X obj 119 107 r \$0-freq; +#X obj 31 87 inlet~; +#X obj 29 158 outlet~; +#X obj 29 130 -~ 0.5; +#X obj 30 108 u_splicetrans; +#X connect 0 0 4 1; +#X connect 1 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X restore 102 180 pd s; +#N canvas 0 0 450 300 s 0; +#X obj 119 107 r \$0-freq; +#X obj 31 87 inlet~; +#X obj 30 168 outlet~; +#X obj 30 136 -~ 0.5; +#X obj 30 109 u_splicetrans; +#X connect 0 0 4 1; +#X connect 1 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X restore 44 181 pd s; +#X obj 45 50 mtof; +#X floatatom 45 31 5 0 0 0 - - -; +#X obj 172 215 tabwrite~ \$0-phasor-output; +#X obj 172 248 tabwrite~ \$0-wrap-output; +#X obj 172 282 tabwrite~ \$0-sum; +#X obj 172 327 tabwrite~ \$0-difference; +#X obj 37 383 outlet~; +#X obj 97 383 outlet~; +#X obj 101 130 -~ 0.5; +#X text 198 99 for [u_splicetrans]; +#X floatatom 156 129 5 0 0 0 - - -; +#X obj 98 355 *~ 0; +#X obj 121 336 tgl 15 0 empty empty sum 17 7 1 10 -262144 -1 -1 0 1 +; +#X obj 60 335 tgl 15 0 empty empty diff 17 7 1 10 -262144 -1 -1 0 1 +; +#X obj 37 356 *~ 0; +#X text 27 414 [pd s] contains [u_splicetrans]. The important thing +to note here is: Always put [u_splicetrans] after any [wrap~] operations +you may be using! Otherwise [wrap] will destroy the hard-earned bandlimit +at the jumps.; +#X text 27 483 This is an example on how to use the bandlimited version +of phasor~ with u_splicetrans for constructing classical waveforms +like saw and square. It's a variation on the example patch K04.even.odd.pd +; +#X connect 0 0 3 0; +#X connect 0 0 12 0; +#X connect 1 0 13 0; +#X connect 3 0 14 0; +#X connect 3 0 23 0; +#X connect 4 0 20 0; +#X connect 4 0 29 0; +#X connect 5 0 19 0; +#X connect 5 0 26 0; +#X connect 9 0 17 0; +#X connect 9 0 18 0; +#X connect 9 0 19 0; +#X connect 9 0 20 0; +#X connect 13 0 4 1; +#X connect 13 0 5 1; +#X connect 13 0 18 0; +#X connect 14 0 5 0; +#X connect 14 0 4 0; +#X connect 14 0 17 0; +#X connect 15 0 0 0; +#X connect 16 0 15 0; +#X connect 23 0 1 0; +#X connect 25 0 23 1; +#X connect 26 0 22 0; +#X connect 27 0 26 1; +#X connect 28 0 29 1; +#X connect 29 0 21 0; +#X restore 377 419 pd even.odd; +#X obj 221 212 u_splicetrans 0; +#X obj 220 239 u_splicetrans 1; +#X obj 60 277 u_splicetrans; +#X obj 60 247 phasor~; +#X obj 58 441 soundoutput; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 28 1; +#X connect 3 0 29 0; +#X connect 6 0 4 0; +#X connect 7 0 30 0; +#X connect 7 0 30 1; +#X connect 8 0 30 0; +#X connect 8 0 30 1; +#X connect 9 0 8 1; +#X connect 10 0 7 1; +#X connect 22 0 30 1; +#X connect 23 0 30 0; +#X connect 24 0 4 0; +#X connect 25 0 20 0; +#X connect 25 1 21 0; +#X connect 28 0 7 0; +#X connect 28 0 24 0; +#X connect 29 0 8 0; +#X connect 29 0 28 0; diff --git a/l2ork_addons/rjlib/rj/u_splicetrans.pd b/l2ork_addons/rjlib/rj/u_splicetrans.pd new file mode 100644 index 000000000..1e149648b --- /dev/null +++ b/l2ork_addons/rjlib/rj/u_splicetrans.pd @@ -0,0 +1,136 @@ +#N canvas 97 150 650 593 10; +#X obj 77 396 -~; +#X obj 201 237 /~; +#X obj 218 214 clip~ 1 999999; +#X obj 93 267 *~; +#X obj 93 291 clip~ -0.5 0.5; +#X obj 93 315 *~ 1000; +#X obj 93 339 +~ 501; +#X obj 76 219 -~ 0.5; +#X obj 93 363 tabread4~ \$0-transition; +#X obj 201 186 * 0.4; +#N canvas 388 124 754 678 transition-table 0; +#X obj 428 534 cos~; +#X obj 262 534 cos~; +#X obj 214 529 cos~; +#X msg 158 598 bang; +#X text 242 138 back the phase up one sample; +#X msg 312 445 -0.0005; +#X obj 262 508 *~ 3; +#X obj 427 510 *~ 5; +#X obj 262 559 *~ 0.33333; +#X obj 427 560 *~ -0.2; +#X obj 214 557 *~ -1; +#X msg 159 425 bang; +#X obj 213 488 phasor~ 22.05; +#X obj 214 590 *~ 0.57692; +#X obj 204 259 cos~; +#X obj 156 254 cos~; +#X msg 100 323 bang; +#X msg 247 166 -0.0005; +#X obj 204 233 *~ 3; +#X obj 204 284 *~ 0.33333; +#X obj 156 282 *~ -1; +#X msg 99 137 bang; +#X obj 155 193 phasor~ 22.05; +#X obj 156 315 *~ 0.75; +#X obj 214 617 tabwrite~ \$0-transition; +#X obj 156 342 tabwrite~ \$0-transition; +#X text 292 216 twice the table length; +#X text 280 193 period is 2000 samples \,; +#X text 80 369 This one is used - first and third harmonics only.; +#X text 28 644 This alternate one puts in harmonics 1 \, 3 \, and 5 +; +#X text 537 179 ----- 1002 samples ----; +#X text 24 27 This network puts a half cycle of a band-limited square +wave into the table "array1."; +#X text 22 64 Logically the half-cycle is in samples 1 through 1000 +\; samples 0 and 1001 are provided so that the 4-point interpolation +will work everywhere.; +#X obj 543 254 table \$0-transition 1002; +#X obj 478 83 f \$1; +#X obj 478 104 select 0 1; +#X obj 478 150 s \$0-harm0; +#X obj 510 126 s \$0-harm1; +#X obj 99 115 r \$0-harm0; +#X obj 159 405 r \$0-harm1; +#X obj 478 43 r \$0-nyquist; +#X obj 478 63 b; +#X obj 155 152 r \$0-nyquist; +#X obj 213 445 r \$0-nyquist; +#X obj 155 172 / 1000; +#X obj 213 467 / 1000; +#X connect 0 0 9 0; +#X connect 1 0 8 0; +#X connect 2 0 10 0; +#X connect 3 0 24 0; +#X connect 5 0 12 1; +#X connect 6 0 1 0; +#X connect 7 0 0 0; +#X connect 8 0 13 0; +#X connect 9 0 13 0; +#X connect 10 0 13 0; +#X connect 11 0 5 0; +#X connect 11 0 3 0; +#X connect 12 0 2 0; +#X connect 12 0 6 0; +#X connect 12 0 7 0; +#X connect 13 0 24 0; +#X connect 14 0 19 0; +#X connect 15 0 20 0; +#X connect 16 0 25 0; +#X connect 17 0 22 1; +#X connect 18 0 14 0; +#X connect 19 0 23 0; +#X connect 20 0 23 0; +#X connect 21 0 17 0; +#X connect 21 0 16 0; +#X connect 22 0 15 0; +#X connect 22 0 18 0; +#X connect 23 0 25 0; +#X connect 34 0 35 0; +#X connect 35 0 36 0; +#X connect 35 1 37 0; +#X connect 38 0 21 0; +#X connect 39 0 11 0; +#X connect 40 0 41 0; +#X connect 41 0 34 0; +#X connect 42 0 44 0; +#X connect 43 0 45 0; +#X connect 44 0 22 0; +#X connect 45 0 12 0; +#X restore 347 273 pd transition-table; +#X obj 76 140 inlet~; +#X obj 76 441 outlet~; +#X obj 296 143 inlet~; +#X obj 77 418 +~ 0.5; +#X text 295 125 frequency of phasor; +#X obj 296 182 samphold~; +#X text 77 465 out: transition spliced \, bandlimited phasor from 0-1 +; +#X text 74 117 in: phasor 0-1; +#X obj 484 45 loadbang; +#X obj 484 67 samplerate~; +#X obj 484 93 * 0.5; +#X obj 484 119 s \$0-nyquist; +#X obj 201 145 r \$0-nyquist; +#X connect 0 0 14 0; +#X connect 1 0 3 1; +#X connect 2 0 1 1; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 8 0; +#X connect 7 0 3 0; +#X connect 7 0 0 0; +#X connect 8 0 0 1; +#X connect 9 0 1 0; +#X connect 11 0 7 0; +#X connect 11 0 16 1; +#X connect 13 0 16 0; +#X connect 14 0 12 0; +#X connect 16 0 2 0; +#X connect 19 0 20 0; +#X connect 20 0 21 0; +#X connect 21 0 22 0; +#X connect 23 0 9 0; diff --git a/l2ork_addons/rjlib/rj/u_stereo-help.pd b/l2ork_addons/rjlib/rj/u_stereo-help.pd new file mode 100644 index 000000000..a9bbf4811 --- /dev/null +++ b/l2ork_addons/rjlib/rj/u_stereo-help.pd @@ -0,0 +1,16 @@ +#N canvas 520 91 852 486 10; +#X text 61 41 A quick way to convert a mono effect into a stereo effect. +Works for effects with 1 audio in and 1 audio out.; +#X obj 63 170 u_stereo e_alias ali1; +#X obj 63 122 osc~ 220; +#X msg 236 141 freq \$1; +#X obj 63 246 soundoutput; +#X obj 135 121 osc~ 280; +#X floatatom 237 122 5 0 0 0 - - -; +#X text 283 123 Parameters depend on the effect used; +#X connect 1 0 4 0; +#X connect 1 1 4 1; +#X connect 2 0 1 0; +#X connect 3 0 1 2; +#X connect 5 0 1 1; +#X connect 6 0 3 0; diff --git a/l2ork_addons/rjlib/rj/u_stereo.pd b/l2ork_addons/rjlib/rj/u_stereo.pd new file mode 100644 index 000000000..f6576ee9d --- /dev/null +++ b/l2ork_addons/rjlib/rj/u_stereo.pd @@ -0,0 +1,16 @@ +#N canvas 520 91 852 486 10; +#X obj 101 107 inlet~; +#X obj 102 287 outlet~; +#X obj 297 105 inlet; +#X obj 203 288 outlet~; +#X obj 201 108 inlet~; +#X obj 102 253 \$1 \$2; +#X text 61 41 A quick way to convert a mono effect into a stereo effect. +Works for effects with 1 audio in and 1 audio out.; +#X obj 203 252 \$1 \$2; +#X connect 0 0 5 0; +#X connect 2 0 5 1; +#X connect 2 0 7 1; +#X connect 4 0 7 0; +#X connect 5 0 1 0; +#X connect 7 0 3 0; diff --git a/l2ork_addons/rjlib/rjXYZshake-help.pd b/l2ork_addons/rjlib/rjXYZshake-help.pd new file mode 100644 index 000000000..1b3095dab --- /dev/null +++ b/l2ork_addons/rjlib/rjXYZshake-help.pd @@ -0,0 +1,41 @@ +#N canvas 173 22 516 331 10; +#X obj 16 257 rjXYZshake; +#X obj 14 298 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 50 298 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 83 297 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 16 283 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 50 283 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 83 281 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X msg 18 196 sensitivity \$1; +#X obj 19 136 hradio 15 1 0 8 empty rjXYZ-sensitiv-r empty 0 -8 0 10 +-262144 -1 -1 1; +#X obj 169 136 hradio 15 1 0 8 empty rjXYZ-timeout-r empty 0 -8 0 10 +-262144 -1 -1 3; +#X msg 169 196 timeout \$1; +#X obj 169 166 * 100; +#X msg 321 154 \; rjXYZ-sensitiv-r 1 \; rjXYZ-timeout-r 3; +#X obj 320 132 loadbang; +#X text 14 12 rjXYZshake 0.1 alpha written by enrique erne. inspired +by roman haefeli's amenshake. gives 0 or 1 for each axis.; +#X text 110 287 gives 0 or 1 for each axis.; +#X text 12 55 2008.10.08 initial release \, port from TheWhiteRoom +\, eerne; +#X text 66 115 needs testing!!!; +#X connect 0 0 1 0; +#X connect 0 0 4 0; +#X connect 0 1 2 0; +#X connect 0 1 5 0; +#X connect 0 2 3 0; +#X connect 0 2 6 0; +#X connect 7 0 0 0; +#X connect 8 0 7 0; +#X connect 9 0 11 0; +#X connect 10 0 0 0; +#X connect 11 0 10 0; +#X connect 13 0 12 0; diff --git a/l2ork_addons/rjlib/rjXYZshake.pd b/l2ork_addons/rjlib/rjXYZshake.pd new file mode 100644 index 000000000..eebc53ff0 --- /dev/null +++ b/l2ork_addons/rjlib/rjXYZshake.pd @@ -0,0 +1,116 @@ +#N canvas 317 178 649 557 10; +#X obj 35 153 abs; +#X obj 35 263 sel 1; +#X obj 35 123 -; +#X obj 35 93 t a a; +#X obj 35 323 spigot 1; +#X obj 119 483 change; +#X obj 427 228 unpack f f f; +#X msg 55 353 1 0 0; +#X obj 427 388 t a; +#X obj 87 263 t a a; +#X obj 165 153 abs; +#X obj 165 263 sel 1; +#X obj 165 123 -; +#X obj 165 93 t a a; +#X obj 165 323 spigot 1; +#X obj 249 483 change; +#X obj 217 263 t a a; +#X msg 185 353 0 1 0; +#X obj 295 153 abs; +#X obj 295 263 sel 1; +#X obj 295 123 -; +#X obj 295 93 t a a; +#X obj 295 323 spigot 1; +#X obj 379 483 change; +#X obj 347 263 t a a; +#X msg 315 353 0 0 1; +#X obj 166 426 t b b; +#X msg 198 456 0; +#X msg 133 289 1; +#X text 370 51 Author: Enrique Erne; +#X text 369 31 Version: 2008-09-21; +#X obj 119 513 outlet; +#X obj 249 513 outlet; +#X obj 379 513 outlet; +#X text 80 224 sensitivity; +#X text 64 113 dif2last; +#X obj 35 393 delay 400; +#X obj 165 393 delay 400; +#X obj 295 393 delay 400; +#X text 38 413 timeout; +#X obj 35 223 > 1.5; +#X obj 165 223 > 1.5; +#X obj 295 223 > 1.5; +#X obj 35 33 r #accelerate; +#X obj 35 63 unpack f f f; +#X obj 408 124 inlet; +#X obj 408 147 route sensitivity timeout; +#X obj 389 355 t a; +#X text 369 71 Inspired by Roman Haefeli's Amenshake; +#X obj 407 166 cnv 15 180 10 empty empty empty 20 12 0 14 -258113 -66577 +0; +#X text 547 174 UNTESTED; +#X connect 0 0 40 0; +#X connect 1 0 4 0; +#X connect 2 0 0 0; +#X connect 3 0 2 1; +#X connect 3 1 2 0; +#X connect 4 0 7 0; +#X connect 4 0 36 0; +#X connect 5 0 31 0; +#X connect 6 0 9 0; +#X connect 6 1 16 0; +#X connect 6 2 24 0; +#X connect 7 0 8 0; +#X connect 8 0 6 0; +#X connect 9 0 4 1; +#X connect 9 1 5 0; +#X connect 10 0 41 0; +#X connect 11 0 14 0; +#X connect 12 0 10 0; +#X connect 13 0 12 1; +#X connect 13 1 12 0; +#X connect 14 0 17 0; +#X connect 14 0 37 0; +#X connect 15 0 32 0; +#X connect 16 0 14 1; +#X connect 16 1 15 0; +#X connect 17 0 8 0; +#X connect 18 0 42 0; +#X connect 19 0 22 0; +#X connect 20 0 18 0; +#X connect 21 0 20 1; +#X connect 21 1 20 0; +#X connect 22 0 25 0; +#X connect 22 0 38 0; +#X connect 23 0 33 0; +#X connect 24 0 22 1; +#X connect 24 1 23 0; +#X connect 25 0 8 0; +#X connect 26 0 28 0; +#X connect 26 1 27 0; +#X connect 27 0 23 0; +#X connect 27 0 15 0; +#X connect 27 0 5 0; +#X connect 28 0 4 1; +#X connect 28 0 14 1; +#X connect 28 0 22 1; +#X connect 36 0 26 0; +#X connect 37 0 26 0; +#X connect 38 0 26 0; +#X connect 40 0 1 0; +#X connect 41 0 11 0; +#X connect 42 0 19 0; +#X connect 43 0 44 0; +#X connect 44 0 3 0; +#X connect 44 1 13 0; +#X connect 44 2 21 0; +#X connect 45 0 46 0; +#X connect 46 0 42 1; +#X connect 46 0 41 1; +#X connect 46 0 40 1; +#X connect 46 1 47 0; +#X connect 47 0 36 1; +#X connect 47 0 37 1; +#X connect 47 0 38 1; diff --git a/l2ork_addons/rjlib/rj_fft.pd b/l2ork_addons/rjlib/rj_fft.pd new file mode 100644 index 000000000..337730ec3 --- /dev/null +++ b/l2ork_addons/rjlib/rj_fft.pd @@ -0,0 +1,194 @@ +#N canvas 0 22 1056 499 10; +#X obj 51 58 block~ 1024 2; +#N canvas 0 22 450 300 (subpatch) 0; +#X array \$0-hann 1024 float 1; +#A 0 0 1.88351e-05 3.76403e-05 9.41157e-05 0.000150591 0.000244677 +0.000338793 0.000470519 0.000602275 0.000771582 0.000940919 0.00114784 +0.00135475 0.00159922 0.00184369 0.00212565 0.00240761 0.00272706 0.00304651 +0.00340337 0.00376022 0.00415444 0.00454867 0.00498021 0.00541171 0.00588048 +0.00634927 0.00685519 0.00736114 0.00790417 0.00844723 0.0090273 0.00960734 +0.0102243 0.0108413 0.0114951 0.0121489 0.0128394 0.01353 0.0142572 +0.0149843 0.015748 0.0165117 0.0173118 0.0181119 0.0189483 0.0197847 +0.0206572 0.0215298 0.0224383 0.0233469 0.0242914 0.0252359 0.0262161 +0.0271963 0.0282121 0.0292279 0.0302792 0.0313304 0.032417 0.0335035 +0.0346252 0.0357469 0.0369035 0.0380602 0.0392516 0.040443 0.041669 +0.042895 0.0441555 0.0454159 0.0467106 0.0480052 0.0493339 0.0506626 +0.0520252 0.0533877 0.0547839 0.05618 0.0576096 0.0590392 0.060502 +0.0619648 0.0634606 0.0649563 0.0664849 0.0680134 0.0695744 0.0711355 +0.0727288 0.0743222 0.0759476 0.077573 0.0792302 0.0808874 0.0825762 +0.084265 0.085985 0.0877051 0.0894562 0.0912073 0.0929892 0.0947711 +0.0965835 0.0983959 0.100239 0.102081 0.103954 0.105826 0.107729 0.109631 +0.111563 0.113494 0.115455 0.117416 0.119406 0.121395 0.123413 0.125431 +0.127478 0.129524 0.131598 0.133672 0.135774 0.137876 0.140005 0.142134 +0.14429 0.146446 0.148629 0.150811 0.15302 0.155229 0.157464 0.159699 +0.161959 0.16422 0.166506 0.168792 0.171102 0.173413 0.175748 0.178084 +0.180443 0.182803 0.185186 0.18757 0.189977 0.192384 0.194814 0.197244 +0.199697 0.20215 0.204625 0.2071 0.209598 0.212095 0.214614 0.217133 +0.219674 0.222214 0.224775 0.227337 0.229919 0.2325 0.235102 0.237704 +0.240326 0.242948 0.245589 0.24823 0.25089 0.25355 0.256229 0.258907 +0.261604 0.264301 0.267015 0.26973 0.272462 0.275194 0.277942 0.280691 +0.283457 0.286222 0.289003 0.291785 0.294582 0.297379 0.300191 0.303003 +0.305831 0.308658 0.311499 0.314341 0.317196 0.320052 0.322921 0.32579 +0.328672 0.331555 0.334449 0.337344 0.340252 0.343159 0.346078 0.348997 +0.351927 0.354857 0.357798 0.36074 0.363691 0.366643 0.369605 0.372567 +0.375538 0.37851 0.38149 0.384471 0.38746 0.390449 0.393447 0.396444 +0.399449 0.402455 0.405467 0.40848 0.411499 0.414519 0.417545 0.420571 +0.423603 0.426635 0.429672 0.432709 0.435752 0.438794 0.441842 0.444889 +0.44794 0.450991 0.454046 0.457101 0.460159 0.463218 0.466279 0.46934 +0.472403 0.475466 0.478531 0.481596 0.484663 0.487729 0.490797 0.493864 +0.496932 0.5 0.503068 0.506136 0.509203 0.512271 0.515337 0.518404 +0.521469 0.524534 0.527597 0.53066 0.533721 0.536782 0.539841 0.542899 +0.545954 0.549009 0.55206 0.555111 0.558158 0.561205 0.564248 0.56729 +0.570328 0.573365 0.576397 0.579429 0.582455 0.585481 0.588501 0.59152 +0.594533 0.597545 0.600551 0.603556 0.606553 0.609551 0.61254 0.615529 +0.61851 0.62149 0.624462 0.627433 0.630395 0.633357 0.636308 0.63926 +0.642201 0.645143 0.648073 0.651003 0.653922 0.656841 0.659748 0.662656 +0.66555 0.668445 0.671328 0.67421 0.677079 0.679948 0.682804 0.685659 +0.688501 0.691342 0.694169 0.696997 0.699809 0.702621 0.705418 0.708215 +0.710997 0.713778 0.716543 0.719309 0.722057 0.724806 0.727538 0.73027 +0.732984 0.735699 0.738396 0.741093 0.743771 0.74645 0.74911 0.75177 +0.754411 0.757052 0.759674 0.762295 0.764897 0.767499 0.770081 0.772663 +0.775224 0.777786 0.780326 0.782867 0.785386 0.787905 0.790402 0.7929 +0.795375 0.79785 0.800303 0.802756 0.805186 0.807616 0.810023 0.812431 +0.814814 0.817197 0.819557 0.821916 0.824252 0.826587 0.828898 0.831209 +0.833494 0.83578 0.838041 0.840301 0.842536 0.844771 0.84698 0.849189 +0.851372 0.853554 0.85571 0.857866 0.859995 0.862124 0.864226 0.866328 +0.868402 0.870476 0.872523 0.874569 0.876587 0.878605 0.880595 0.882584 +0.884545 0.886506 0.888438 0.890369 0.892272 0.894174 0.896047 0.897919 +0.899762 0.901605 0.903417 0.905229 0.907011 0.908793 0.910544 0.912295 +0.914015 0.915736 0.917424 0.919113 0.92077 0.922428 0.924053 0.925678 +0.927272 0.928865 0.930426 0.931987 0.933516 0.935044 0.93654 0.938036 +0.939499 0.940961 0.942391 0.94382 0.945217 0.946613 0.947975 0.949338 +0.950667 0.951995 0.95329 0.954585 0.955845 0.957106 0.958332 0.959558 +0.960749 0.96194 0.963097 0.964254 0.965375 0.966497 0.967584 0.96867 +0.969721 0.970773 0.971788 0.972804 0.973784 0.974765 0.975709 0.976654 +0.977562 0.978471 0.979343 0.980216 0.981052 0.981889 0.982689 0.983489 +0.984252 0.985016 0.985743 0.98647 0.987161 0.987852 0.988505 0.989159 +0.989776 0.990393 0.990973 0.991553 0.992096 0.992639 0.993145 0.993651 +0.99412 0.994589 0.99502 0.995452 0.995846 0.99624 0.996597 0.996954 +0.997273 0.997593 0.997874 0.998156 0.998401 0.998645 0.998852 0.999059 +0.999229 0.999398 0.99953 0.999661 0.999755 0.999849 0.999906 0.999962 +0.999981 1 0.999981 0.999962 0.999906 0.999849 0.999755 0.999661 0.999529 +0.999398 0.999228 0.999059 0.998852 0.998645 0.998401 0.998156 0.997874 +0.997592 0.997273 0.996953 0.996596 0.996239 0.995845 0.995451 0.995019 +0.994588 0.994119 0.99365 0.993144 0.992638 0.992095 0.991552 0.990972 +0.990392 0.989775 0.989158 0.988504 0.987851 0.98716 0.986469 0.985742 +0.985015 0.984251 0.983488 0.982687 0.981887 0.981051 0.980215 0.979342 +0.978469 0.977561 0.976652 0.975708 0.974763 0.973783 0.972803 0.971787 +0.970771 0.96972 0.968669 0.967582 0.966495 0.965374 0.964252 0.963095 +0.961939 0.960747 0.959556 0.95833 0.957104 0.955843 0.954583 0.953288 +0.951993 0.950665 0.949336 0.947973 0.946611 0.945215 0.943818 0.942389 +0.940959 0.939496 0.938034 0.936538 0.935042 0.933514 0.931985 0.930424 +0.928863 0.927269 0.925676 0.924051 0.922425 0.920768 0.919111 0.917422 +0.915733 0.914013 0.912293 0.910542 0.908791 0.907009 0.905227 0.903414 +0.901602 0.899759 0.897917 0.896044 0.894171 0.892269 0.890367 0.888435 +0.886503 0.884542 0.882582 0.880592 0.878602 0.876584 0.874566 0.87252 +0.870473 0.868399 0.866325 0.864223 0.862121 0.859992 0.857863 0.855707 +0.853551 0.851368 0.849186 0.846977 0.844768 0.842533 0.840298 0.838037 +0.835777 0.833491 0.831205 0.828895 0.826584 0.824249 0.821913 0.819554 +0.817194 0.814811 0.812427 0.81002 0.807613 0.805183 0.802753 0.8003 +0.797847 0.795372 0.792896 0.790399 0.787901 0.785382 0.782863 0.780323 +0.777782 0.775221 0.77266 0.770078 0.767496 0.764894 0.762292 0.75967 +0.757048 0.754407 0.751766 0.749106 0.746446 0.743767 0.741089 0.738392 +0.735695 0.732981 0.730266 0.727534 0.724802 0.722054 0.719305 0.71654 +0.713774 0.710993 0.708211 0.705414 0.702617 0.699805 0.696993 0.694165 +0.691338 0.688497 0.685655 0.6828 0.679944 0.677075 0.674206 0.671324 +0.668441 0.665546 0.662652 0.659744 0.656837 0.653918 0.650999 0.648069 +0.645139 0.642197 0.639256 0.636304 0.633353 0.630391 0.627429 0.624458 +0.621486 0.618506 0.615525 0.612536 0.609547 0.606549 0.603552 0.600546 +0.597541 0.594529 0.591516 0.588496 0.585477 0.582451 0.579425 0.576393 +0.573361 0.570324 0.567286 0.564244 0.561201 0.558154 0.555107 0.552056 +0.549004 0.545949 0.542894 0.539836 0.536778 0.533717 0.530656 0.527593 +0.52453 0.521464 0.518399 0.515333 0.512266 0.509199 0.506131 0.503064 +0.499996 0.496928 0.49386 0.490792 0.487725 0.484659 0.481592 0.478527 +0.475462 0.472399 0.469335 0.466274 0.463213 0.460155 0.457097 0.454042 +0.450987 0.447936 0.444884 0.441837 0.43879 0.435748 0.432705 0.429668 +0.42663 0.423598 0.420566 0.417541 0.414515 0.411495 0.408476 0.405463 +0.40245 0.399445 0.39644 0.393442 0.390445 0.387456 0.384466 0.381486 +0.378505 0.375534 0.372563 0.369601 0.366639 0.363687 0.360736 0.357794 +0.354853 0.351923 0.348993 0.346074 0.343155 0.340247 0.33734 0.334445 +0.331551 0.328668 0.325786 0.322917 0.320048 0.317192 0.314337 0.311495 +0.308654 0.305827 0.302999 0.300187 0.297375 0.294578 0.291781 0.288999 +0.286218 0.283453 0.280687 0.277939 0.27519 0.272458 0.269726 0.267012 +0.264297 0.2616 0.258904 0.256225 0.253547 0.250886 0.248226 0.245585 +0.242944 0.240323 0.237701 0.235099 0.232497 0.229915 0.227333 0.224772 +0.222211 0.21967 0.21713 0.214611 0.212092 0.209594 0.207097 0.204622 +0.202146 0.199693 0.19724 0.19481 0.19238 0.189973 0.187566 0.185183 +0.182799 0.18044 0.17808 0.175745 0.17341 0.171099 0.168788 0.166502 +0.164217 0.161956 0.159696 0.157461 0.155226 0.153017 0.150808 0.148625 +0.146443 0.144287 0.142131 0.140002 0.137873 0.135771 0.133669 0.131595 +0.129521 0.127474 0.125428 0.12341 0.121392 0.119402 0.117413 0.115452 +0.113491 0.11156 0.109628 0.107726 0.105823 0.103951 0.102078 0.100236 +0.0983929 0.0965805 0.0947681 0.0929862 0.0912043 0.0894533 0.0877022 +0.0859821 0.084262 0.0825733 0.0808845 0.0792274 0.0775702 0.0759448 +0.0743194 0.0727261 0.0711327 0.0695717 0.0680107 0.0664822 0.0649537 +0.0634579 0.0619622 0.0604994 0.0590366 0.0576071 0.0561775 0.0547814 +0.0533852 0.0520227 0.0506602 0.0493315 0.0480028 0.0467082 0.0454136 +0.0441532 0.0428927 0.0416667 0.0404407 0.0392494 0.038058 0.0369014 +0.0357448 0.0346231 0.0335014 0.0324149 0.0313284 0.0302772 0.0292259 +0.0282102 0.0271944 0.0262142 0.025234 0.0242896 0.0233451 0.0224366 +0.0215281 0.0206555 0.019783 0.0189467 0.0181103 0.0173103 0.0165102 +0.0157465 0.0149829 0.0142557 0.0135286 0.0128381 0.0121476 0.0114938 +0.01084 0.0102231 0.00960612 0.00902611 0.0084461 0.0079031 0.0073601 +0.00685418 0.00634828 0.00587955; +#A 1000 0.00541082 0.00497931 0.00454783 0.00415364 0.00375944 0.00340262 +0.0030458 0.00272641 0.00240701 0.00212508 0.00184312 0.00159872 0.00135428 +0.00114739 0.000940531 0.000771224 0.000601947 0.000470251 0.000338554 +0.000244498 0.000150412 9.39965e-05 3.75509e-05 1.87755e-05; +#X coords 0 1 1023 0 200 120 1; +#X restore 257 137 graph; +#X msg 174 141 0; +#X obj 59 195 osc~; +#X obj 59 147 samplerate~; +#X obj 59 218 *~ -0.5; +#X obj 59 241 +~ 0.5; +#X obj 51 266 tabwrite~ \$0-hann; +#X obj 51 124 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 330 104 Hann window; +#X text 49 99 recalculate Hann; +#X text 84 114 window table; +#X text 107 193 comment; +#X obj 59 171 / 512; +#X obj 558 145 *~; +#X obj 557 80 inlet~; +#X obj 558 199 rfft~; +#X obj 579 121 tabreceive~ \$0-hann; +#X obj 557 287 *~; +#X obj 599 287 *~; +#X obj 558 337 sqrt~; +#X text 768 112 tabreceive~ outputs array contents \,; +#X text 768 130 constantly \, every block. Here it's; +#X text 766 150 used to get the Hann window to; +#X text 768 168 multiply by the input.; +#X text 619 80 The inlet~ automatically re-blocks to the new block +size.; +#X obj 558 313 +~; +#X text 637 289 Take the magnitude by squaring real and imaginary part +\, adding and taking square root.; +#X text 625 196 forward real FFT. Like "fft~" \, but only one inlet +(for the real part) and only the first half of the output signals are +used. (The others are determined by symmetry: they're complex conjugates +of the first half \, in reverse order.) This takes 1/2 the CPU time +of "fft".; +#X obj 556 372 s~ fft; +#X connect 2 0 3 1; +#X connect 3 0 5 0; +#X connect 4 0 13 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 8 0 4 0; +#X connect 8 0 2 0; +#X connect 8 0 7 0; +#X connect 13 0 3 0; +#X connect 14 0 16 0; +#X connect 15 0 14 0; +#X connect 16 0 18 0; +#X connect 16 0 18 1; +#X connect 16 1 19 0; +#X connect 16 1 19 1; +#X connect 17 0 14 1; +#X connect 18 0 26 0; +#X connect 19 0 26 1; +#X connect 20 0 29 0; +#X connect 26 0 20 0; diff --git a/l2ork_addons/rjlib/rjdispatch-help.pd b/l2ork_addons/rjlib/rjdispatch-help.pd new file mode 100644 index 000000000..a96aa5103 --- /dev/null +++ b/l2ork_addons/rjlib/rjdispatch-help.pd @@ -0,0 +1,67 @@ +#N canvas 212 72 973 689 10; +#X obj 121 172 inlet; +#X floatatom 175 194 5 0 0 0 - - -; +#X floatatom 383 334 5 0 0 0 - - -; +#X floatatom 382 525 5 0 0 0 - - -; +#X obj 382 504 r \$0-float; +#X floatatom 272 193 5 0 0 0 - - -; +#X floatatom 525 195 5 0 0 0 - - -; +#X floatatom 382 624 5 0 0 0 - - -; +#X floatatom 322 194 5 0 0 0 - - -; +#X obj 383 383 t a b; +#X obj 383 407 list prepend set; +#X obj 383 429 list trim; +#X msg 383 452 a b c d 93; +#X obj 382 603 r \$0-prep; +#X obj 525 217 list prepend prep; +#X msg 175 215 attack \$1; +#X obj 121 312 rjdispatch \$0 attack; +#X obj 383 313 r \$0-attack; +#X obj 383 360 r \$0-alist; +#X obj 322 216 list prepend alist a b c d; +#X text 84 23 [rjdispatch]; +#X text 123 45 Wrapper around [route] that automatically sends incoming +messages to a receiver called "\$1-\$2" \, if they start with \$2. +; +#X text 125 94 Non-matching messages get passed on to the outlet.; +#X text 124 114 Useful for dispatching of inlet-messages if you create +chains of [rjdispatch] objects like below:; +#X text 274 312 sends to this:; +#X text 271 358 sends to this:; +#X text 268 502 sends to this:; +#X text 268 603 sends to this:; +#X msg 476 271 help; +#X obj 121 503 rjdispatch \$0 float; +#X obj 121 600 rjdispatch \$0 prep; +#X obj 121 359 rjdispatch \$0 alist; +#X text 473 252 special method "help" to print all active rjdispatch +targets; +#X obj 121 630 rjdispatch \$0 bang; +#X obj 258 630 r \$0-bang; +#X msg 135 215 bang; +#X obj 258 658 print BANG; +#X obj 671 527 rjdispatch \$0 symbol; +#X text 643 508 This does not work \, don't use it:; +#X connect 0 0 16 0; +#X connect 1 0 15 0; +#X connect 4 0 3 0; +#X connect 5 0 16 0; +#X connect 6 0 14 0; +#X connect 8 0 19 0; +#X connect 9 0 10 0; +#X connect 9 1 10 0; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 13 0 7 0; +#X connect 14 0 16 0; +#X connect 15 0 16 0; +#X connect 16 0 31 0; +#X connect 17 0 2 0; +#X connect 18 0 9 0; +#X connect 19 0 16 0; +#X connect 28 0 16 0; +#X connect 29 0 30 0; +#X connect 30 0 33 0; +#X connect 31 0 29 0; +#X connect 34 0 36 0; +#X connect 35 0 16 0; diff --git a/l2ork_addons/rjlib/rjdispatch.pd b/l2ork_addons/rjlib/rjdispatch.pd new file mode 100644 index 000000000..9f159ede4 --- /dev/null +++ b/l2ork_addons/rjlib/rjdispatch.pd @@ -0,0 +1,28 @@ +#N canvas 303 323 759 261 10; +#X obj 131 28 inlet; +#X obj 182 185 outlet; +#X obj 131 122 route \$2; +#X obj 131 155 s \$1-\$2; +#X obj 131 98 list trim; +#X obj 273 121 select help; +#X obj 273 158 list append \$2; +#X obj 273 182 list trim; +#X obj 273 205 print dispatcher; +#X obj 273 94 route symbol; +#X obj 273 70 list; +#X obj 470 104 sssad \$2 \$1; +#X obj 470 131 s \$1-\$2; +#X obj 544 73 r \$1-\$2; +#X text 447 73 state saves:; +#X connect 0 0 4 0; +#X connect 0 0 10 0; +#X connect 2 0 3 0; +#X connect 2 1 1 0; +#X connect 4 0 2 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 9 0 5 0; +#X connect 10 0 9 0; +#X connect 11 0 12 0; +#X connect 13 0 11 1; diff --git a/l2ork_addons/rjlib/rjloader-help.pd b/l2ork_addons/rjlib/rjloader-help.pd new file mode 100644 index 000000000..7db9bbab0 --- /dev/null +++ b/l2ork_addons/rjlib/rjloader-help.pd @@ -0,0 +1,3 @@ +#N canvas 341 323 756 361 10; +#X text 134 100 Please see help for rjsave-ex:; +#X obj 148 130 rjsave-ex rjload; diff --git a/l2ork_addons/rjlib/rjloader.pd b/l2ork_addons/rjlib/rjloader.pd new file mode 100644 index 000000000..e2b06ca70 --- /dev/null +++ b/l2ork_addons/rjlib/rjloader.pd @@ -0,0 +1,26 @@ +#N canvas 0 0 797 492 10; +#X obj 151 86 route persist; +#X obj 151 117 list prepend \$1; +#X obj 150 196 list trim; +#X obj 150 222 route \$1; +#X msg 150 328 setonly \$1; +#X obj 150 248 t a a; +#X obj 150 306 list; +#X obj 150 174 r RJ_SCENE_LOAD; +#X obj 151 144 s RJ_SCENE; +#X obj 305 98 r RJ_SCENE_SAVE; +#X obj 151 54 r \$2-SSSAD_ADMIN; +#X obj 150 352 s \$2-SSSAD_ADMIN; +#X obj 182 270 s \$2-SSSAD; +#X obj 305 137 s \$2-SSSAD_ADMIN; +#X connect 0 0 1 0; +#X connect 1 0 8 0; +#X connect 2 0 3 0; +#X connect 3 0 5 0; +#X connect 4 0 11 0; +#X connect 5 0 6 0; +#X connect 5 1 12 0; +#X connect 6 0 4 0; +#X connect 7 0 2 0; +#X connect 9 0 13 0; +#X connect 10 0 0 0; diff --git a/l2ork_addons/rjlib/rjsave-ex-help.pd b/l2ork_addons/rjlib/rjsave-ex-help.pd new file mode 100644 index 000000000..70c1d7bb9 --- /dev/null +++ b/l2ork_addons/rjlib/rjsave-ex-help.pd @@ -0,0 +1,49 @@ +#N canvas 216 47 756 660 10; +#X obj 71 94 rjsave-ex one; +#X text 76 59 Tag your abstractions with a unique \$1; +#X obj 79 275 s RJ_SCENE_LOAD; +#X obj 78 372 s RJ_SCENE_SAVE; +#X obj 77 448 r RJ_SCENE; +#X text 73 424 receive messages for saving on RJ_SCENE; +#X msg 78 346 save; +#X msg 77 511; +#X floatatom 379 61 5 0 0 1 inlet-controls - -; +#X msg 379 81 a \$1; +#X msg 186 449 clear; +#X obj 77 595 s RJ_SCENE_LOAD; +#N canvas 338 167 594 416 write2message 0; +#X obj 149 77 inlet; +#X obj 327 138 inlet; +#X obj 149 235 outlet; +#X msg 327 178 set; +#X obj 182 185 list trim; +#X obj 182 161 list prepend add2; +#X msg 149 133 addcomma; +#X obj 149 101 t b a; +#X connect 0 0 7 0; +#X connect 1 0 3 0; +#X connect 3 0 2 0; +#X connect 4 0 2 0; +#X connect 5 0 4 0; +#X connect 6 0 2 0; +#X connect 7 0 6 0; +#X connect 7 1 5 0; +#X restore 77 478 pd write2message; +#X msg 79 249 rjsave-ex-one a 30 \, rjsave-ex-two b 40; +#X text 88 570 restoring possible from here as well:; +#X obj 177 94 rjsave-ex two; +#X obj 379 109 rjsave-ex three; +#X text 35 16 State saving in three steps. Check inside of [rjsave-ex]! +; +#X text 76 218 send messages to RJ_SCENE_LOAD to remote-control settings +; +#X text 77 320 Send "save" to RJ_SCENE_SAVE to initialize global saving. +; +#X connect 4 0 12 0; +#X connect 6 0 3 0; +#X connect 7 0 11 0; +#X connect 8 0 9 0; +#X connect 9 0 16 0; +#X connect 10 0 12 1; +#X connect 12 0 7 0; +#X connect 13 0 2 0; diff --git a/l2ork_addons/rjlib/rjsave-ex.pd b/l2ork_addons/rjlib/rjsave-ex.pd new file mode 100644 index 000000000..78147b372 --- /dev/null +++ b/l2ork_addons/rjlib/rjsave-ex.pd @@ -0,0 +1,19 @@ +#N canvas 260 172 882 355 10; +#X obj 62 127 rjdispatch \$0 a; +#X obj 62 148 rjdispatch \$0 b; +#X obj 62 99 inlet; +#X obj 412 118 hsl 64 15 0 127 0 0 \$0-a \$0-a a 20 8 1 10 -262144 +-1 -1 1488 1; +#X obj 412 139 hsl 64 15 0 127 0 0 \$0-b \$0-b b 20 8 1 10 -262144 +-1 -1 0 1; +#X text 36 63 1) add dispatchers for all your variables.; +#X text 35 16 State saving in three steps; +#X text 395 63 2) optionally add controls for \$0-a \, \$0-b sender/receiver +pairs; +#X obj 169 301 rjloader rjsave-ex-\$1 \$0; +#X text 169 256 Here we also added the abstraction name to make nameclashes +even less likely.; +#X text 149 233 3) add rjloader with \$1 \$0.; +#X connect 0 0 1 0; +#X connect 2 0 0 0; +#X coords 0 -1 1 1 85 60 1 400 100; diff --git a/l2ork_addons/rjlib/soundinput.pd b/l2ork_addons/rjlib/soundinput.pd new file mode 100644 index 000000000..6009b0b38 --- /dev/null +++ b/l2ork_addons/rjlib/soundinput.pd @@ -0,0 +1,55 @@ +#N canvas 149 217 611 463 10; +#X obj 58 114 readsf~ 2; +#X obj 154 172 adc~; +#X obj 146 335 *~ 1; +#X obj 59 334 *~ 0; +#X obj 102 334 *~ 0; +#X obj 111 307 == 0; +#X obj 57 44 inlet; +#X msg 58 90 open \$1 \, 1; +#X obj 58 68 symbol; +#X obj 189 336 *~ 1; +#X obj 59 411 *~; +#X obj 125 411 *~; +#X obj 59 436 outlet~; +#X obj 125 436 outlet~; +#X obj 306 240 line~; +#X obj 305 172 r #transport; +#X obj 306 193 route play; +#X msg 306 216 \$1 10; +#X obj 108 43 r input_soundfile; +#X msg 176 111 0; +#X obj 221 113 inlet; +#X obj 222 157 float; +#X obj 272 43 r input_live; +#X msg 273 111 1; +#X connect 0 0 3 0; +#X connect 0 1 4 0; +#X connect 0 2 8 0; +#X connect 1 0 2 0; +#X connect 1 1 9 0; +#X connect 2 0 10 0; +#X connect 3 0 10 0; +#X connect 4 0 11 0; +#X connect 5 0 4 1; +#X connect 5 0 3 1; +#X connect 6 0 8 0; +#X connect 7 0 0 0; +#X connect 8 0 7 0; +#X connect 9 0 11 0; +#X connect 10 0 12 0; +#X connect 11 0 13 0; +#X connect 14 0 11 1; +#X connect 14 0 10 1; +#X connect 15 0 16 0; +#X connect 16 0 17 0; +#X connect 17 0 14 0; +#X connect 18 0 8 0; +#X connect 18 0 19 0; +#X connect 19 0 21 0; +#X connect 20 0 21 0; +#X connect 21 0 5 0; +#X connect 21 0 2 1; +#X connect 21 0 9 1; +#X connect 22 0 23 0; +#X connect 23 0 21 0; diff --git a/l2ork_addons/rjlib/soundoutput.pd b/l2ork_addons/rjlib/soundoutput.pd new file mode 100644 index 000000000..770103ece --- /dev/null +++ b/l2ork_addons/rjlib/soundoutput.pd @@ -0,0 +1,63 @@ +#N canvas 231 115 678 641 10; +#X obj 92 536 dac~; +#X obj 451 185 r #transport; +#X obj 509 317 sel 1; +#X obj 189 505 *~; +#X obj 91 504 *~; +#X obj 226 472 line~; +#X obj 509 370 float 0.5; +#X msg 509 393 \$1 300; +#X obj 509 350 del 200; +#X msg 226 395 0 20; +#X obj 297 331 catch~ \$0-dummy; +#X obj 241 310 throw~ \$0-dummy; +#X obj 353 310 throw~ \$0-dummy; +#X msg 241 282 set rec1; +#X msg 353 280 set rec2; +#X obj 296 411 pack 0 20; +#X obj 114 121 hsl 50 15 0 1 0 0 \$0-vol \$0-vol volume 5 8 1 10 -4034 +-1 -1 0 1; +#X obj 296 389 r \$0-vol; +#X obj 538 93 r \$0-vol; +#X msg 538 116 \; pd dsp 1; +#X obj 92 148 inlet~; +#X obj 187 149 inlet~; +#X obj 92 201 clip~ -1 1; +#X obj 188 202 clip~ -1 1; +#X obj 92 176 hip~ 3; +#X obj 187 176 hip~ 3; +#X text 241 178 fight DC; +#X text 268 203 clip it like an iPhod; +#X obj 451 208 route record play; +#X obj 593 301 r #volume; +#X obj 593 322 route set; +#X connect 1 0 28 0; +#X connect 2 0 8 0; +#X connect 2 1 9 0; +#X connect 3 0 0 1; +#X connect 4 0 0 0; +#X connect 5 0 3 1; +#X connect 5 0 4 1; +#X connect 6 0 7 0; +#X connect 7 0 5 0; +#X connect 8 0 6 0; +#X connect 9 0 5 0; +#X connect 13 0 11 0; +#X connect 14 0 12 0; +#X connect 15 0 5 0; +#X connect 17 0 15 0; +#X connect 18 0 19 0; +#X connect 20 0 24 0; +#X connect 21 0 25 0; +#X connect 22 0 4 0; +#X connect 22 0 11 0; +#X connect 23 0 3 0; +#X connect 23 0 12 0; +#X connect 24 0 22 0; +#X connect 25 0 23 0; +#X connect 28 0 14 0; +#X connect 28 0 13 0; +#X connect 28 1 2 0; +#X connect 29 0 30 0; +#X connect 30 0 6 0; +#X coords 0 -1 1 1 85 40 1 100 100; diff --git a/l2ork_addons/rjlib/src/makefile b/l2ork_addons/rjlib/src/makefile new file mode 100644 index 000000000..c2bc3c1f9 --- /dev/null +++ b/l2ork_addons/rjlib/src/makefile @@ -0,0 +1,53 @@ +current: + echo make pd_linux, l_i386, l_ia64 or pd_darwin + +clean: ; rm -f *.pd_linux *.pd_darwin *.pd_win *.o + +SOURCES = $(shell ls *.c) +INCLUDES = -I../ -I../../extralibs/local/include + +# ----------------------- LINUX i386 ----------------------- + +pd_linux: $(SOURCES:.c=.pd_linux) +l_i386: $(SOURCES:.c=.l_i386) +l_ia64: $(SOURCES:.c=.l_ia64) + +.SUFFIXES: .pd_linux .l_i386 .l_ia64 + +LINUXCFLAGS = -DPD -O2 -funroll-loops -fomit-frame-pointer -fPIC \ + -Wall -W -Wshadow -Wstrict-prototypes -Werror \ + -Wno-unused -Wno-parentheses -Wno-switch + + +.c.pd_linux: + cc $(LINUXCFLAGS) $(INCLUDES) -o $*.o -c $*.c + ld -export_dynamic -shared -o ../$*.pd_linux $*.o -lc -lm + strip --strip-unneeded ../$*.pd_linux + rm $*.o + +.c.l_i386: + cc $(LINUXCFLAGS) $(INCLUDES) -o $*.o -c $*.c + ld -export_dynamic -shared -o ../$*.l_i386 $*.o -lc -lm + strip --strip-unneeded ../$*.l_i386 + rm $*.o + +.c.l_ia64: + cc $(LINUXCFLAGS) $(INCLUDES) -o $*.o -c $*.c + ld -export_dynamic -shared -o ../$*.l_ia64 $*.o -lc -lm + strip --strip-unneeded ../$*.l_ia64 + rm $*.o + +# ----------------------- Mac OSX ----------------------- + +pd_darwin: $(SOURCES:.c=.pd_darwin) + +.SUFFIXES: .pd_darwin + +DARWINCFLAGS = -DPD -O2 -Wall -W -Wshadow -Wstrict-prototypes \ + -Wno-unused -Wno-parentheses -Wno-switch + +.c.pd_darwin: + cc $(DARWINCFLAGS) $(INCLUDES) -o $*.o -c $*.c + cc -bundle -undefined suppress -flat_namespace -o ../$*.pd_darwin $*.o + rm -f $*.o + diff --git a/l2ork_addons/rjlib/src/makefile_mingw b/l2ork_addons/rjlib/src/makefile_mingw new file mode 100644 index 000000000..ceb075b3f --- /dev/null +++ b/l2ork_addons/rjlib/src/makefile_mingw @@ -0,0 +1,36 @@ +current: all + +.SUFFIXES: .dll + +PDPATH = "c:/pd_41_4" + +INCLUDE = -I. -I$(PDPATH)/src + +LDFLAGS = --export-dynamic -shared + +#select either the DBG and OPT compiler flags below: + +CFLAGS = -DPD -DNT -W -Wno-unused -mms-bitfields\ + -Wno-parentheses -Wno-switch -O6 -funroll-loops -fomit-frame-pointer + +SYSTEM = $(shell uname -m) + +# the sources: + +SRC = rj_accum.c rj_centroid~.c rj_zcr~.c rj_senergy~.c rj_barkflux_accum~.c + +OBJ = $(SRC:.c=.dll) + + +# ------------------ targets ------------------------------------ + + +clean: + rm -f *.a *.def *.o *.dll + +all: $(OBJ) + +.c.dll: + gcc $(CFLAGS) $(INCLUDE) -c -o $*.o $*.c + g++ $(LDFLAGS) -o ../$*.dll $*.o $(PDPATH)/bin/pd.dll -lc + strip --strip-unneeded $*.dll diff --git a/l2ork_addons/rjlib/src/rj_accum-help.pd b/l2ork_addons/rjlib/src/rj_accum-help.pd new file mode 100644 index 000000000..d1e3c708e --- /dev/null +++ b/l2ork_addons/rjlib/src/rj_accum-help.pd @@ -0,0 +1,218 @@ +#N canvas 354 121 450 300 10; +#X obj 184 52 adc~; +#N canvas 90 78 1350 776 myFFTanalysis 1; +#X obj 51 58 block~ 1024 2; +#N canvas 0 22 450 300 (subpatch) 0; +#X array \$0-hann 1024 float 1; +#A 0 0 1.88351e-05 3.76403e-05 9.41157e-05 0.000150591 0.000244677 +0.000338793 0.000470519 0.000602275 0.000771582 0.000940919 0.00114784 +0.00135475 0.00159922 0.00184369 0.00212565 0.00240761 0.00272706 0.00304651 +0.00340337 0.00376022 0.00415444 0.00454867 0.00498021 0.00541171 0.00588048 +0.00634927 0.00685519 0.00736114 0.00790417 0.00844723 0.0090273 0.00960734 +0.0102243 0.0108413 0.0114951 0.0121489 0.0128394 0.01353 0.0142572 +0.0149843 0.015748 0.0165117 0.0173118 0.0181119 0.0189483 0.0197847 +0.0206572 0.0215298 0.0224383 0.0233469 0.0242914 0.0252359 0.0262161 +0.0271963 0.0282121 0.0292279 0.0302792 0.0313304 0.032417 0.0335035 +0.0346252 0.0357469 0.0369035 0.0380602 0.0392516 0.040443 0.041669 +0.042895 0.0441555 0.0454159 0.0467106 0.0480052 0.0493339 0.0506626 +0.0520252 0.0533877 0.0547839 0.05618 0.0576096 0.0590392 0.060502 +0.0619648 0.0634606 0.0649563 0.0664849 0.0680134 0.0695744 0.0711355 +0.0727288 0.0743222 0.0759476 0.077573 0.0792302 0.0808874 0.0825762 +0.084265 0.085985 0.0877051 0.0894562 0.0912073 0.0929892 0.0947711 +0.0965835 0.0983959 0.100239 0.102081 0.103954 0.105826 0.107729 0.109631 +0.111563 0.113494 0.115455 0.117416 0.119406 0.121395 0.123413 0.125431 +0.127478 0.129524 0.131598 0.133672 0.135774 0.137876 0.140005 0.142134 +0.14429 0.146446 0.148629 0.150811 0.15302 0.155229 0.157464 0.159699 +0.161959 0.16422 0.166506 0.168792 0.171102 0.173413 0.175748 0.178084 +0.180443 0.182803 0.185186 0.18757 0.189977 0.192384 0.194814 0.197244 +0.199697 0.20215 0.204625 0.2071 0.209598 0.212095 0.214614 0.217133 +0.219674 0.222214 0.224775 0.227337 0.229919 0.2325 0.235102 0.237704 +0.240326 0.242948 0.245589 0.24823 0.25089 0.25355 0.256229 0.258907 +0.261604 0.264301 0.267015 0.26973 0.272462 0.275194 0.277942 0.280691 +0.283457 0.286222 0.289003 0.291785 0.294582 0.297379 0.300191 0.303003 +0.305831 0.308658 0.311499 0.314341 0.317196 0.320052 0.322921 0.32579 +0.328672 0.331555 0.334449 0.337344 0.340252 0.343159 0.346078 0.348997 +0.351927 0.354857 0.357798 0.36074 0.363691 0.366643 0.369605 0.372567 +0.375538 0.37851 0.38149 0.384471 0.38746 0.390449 0.393447 0.396444 +0.399449 0.402455 0.405467 0.40848 0.411499 0.414519 0.417545 0.420571 +0.423603 0.426635 0.429672 0.432709 0.435752 0.438794 0.441842 0.444889 +0.44794 0.450991 0.454046 0.457101 0.460159 0.463218 0.466279 0.46934 +0.472403 0.475466 0.478531 0.481596 0.484663 0.487729 0.490797 0.493864 +0.496932 0.5 0.503068 0.506136 0.509203 0.512271 0.515337 0.518404 +0.521469 0.524534 0.527597 0.53066 0.533721 0.536782 0.539841 0.542899 +0.545954 0.549009 0.55206 0.555111 0.558158 0.561205 0.564248 0.56729 +0.570328 0.573365 0.576397 0.579429 0.582455 0.585481 0.588501 0.59152 +0.594533 0.597545 0.600551 0.603556 0.606553 0.609551 0.61254 0.615529 +0.61851 0.62149 0.624462 0.627433 0.630395 0.633357 0.636308 0.63926 +0.642201 0.645143 0.648073 0.651003 0.653922 0.656841 0.659748 0.662656 +0.66555 0.668445 0.671328 0.67421 0.677079 0.679948 0.682804 0.685659 +0.688501 0.691342 0.694169 0.696997 0.699809 0.702621 0.705418 0.708215 +0.710997 0.713778 0.716543 0.719309 0.722057 0.724806 0.727538 0.73027 +0.732984 0.735699 0.738396 0.741093 0.743771 0.74645 0.74911 0.75177 +0.754411 0.757052 0.759674 0.762295 0.764897 0.767499 0.770081 0.772663 +0.775224 0.777786 0.780326 0.782867 0.785386 0.787905 0.790402 0.7929 +0.795375 0.79785 0.800303 0.802756 0.805186 0.807616 0.810023 0.812431 +0.814814 0.817197 0.819557 0.821916 0.824252 0.826587 0.828898 0.831209 +0.833494 0.83578 0.838041 0.840301 0.842536 0.844771 0.84698 0.849189 +0.851372 0.853554 0.85571 0.857866 0.859995 0.862124 0.864226 0.866328 +0.868402 0.870476 0.872523 0.874569 0.876587 0.878605 0.880595 0.882584 +0.884545 0.886506 0.888438 0.890369 0.892272 0.894174 0.896047 0.897919 +0.899762 0.901605 0.903417 0.905229 0.907011 0.908793 0.910544 0.912295 +0.914015 0.915736 0.917424 0.919113 0.92077 0.922428 0.924053 0.925678 +0.927272 0.928865 0.930426 0.931987 0.933516 0.935044 0.93654 0.938036 +0.939499 0.940961 0.942391 0.94382 0.945217 0.946613 0.947975 0.949338 +0.950667 0.951995 0.95329 0.954585 0.955845 0.957106 0.958332 0.959558 +0.960749 0.96194 0.963097 0.964254 0.965375 0.966497 0.967584 0.96867 +0.969721 0.970773 0.971788 0.972804 0.973784 0.974765 0.975709 0.976654 +0.977562 0.978471 0.979343 0.980216 0.981052 0.981889 0.982689 0.983489 +0.984252 0.985016 0.985743 0.98647 0.987161 0.987852 0.988505 0.989159 +0.989776 0.990393 0.990973 0.991553 0.992096 0.992639 0.993145 0.993651 +0.99412 0.994589 0.99502 0.995452 0.995846 0.99624 0.996597 0.996954 +0.997273 0.997593 0.997874 0.998156 0.998401 0.998645 0.998852 0.999059 +0.999229 0.999398 0.99953 0.999661 0.999755 0.999849 0.999906 0.999962 +0.999981 1 0.999981 0.999962 0.999906 0.999849 0.999755 0.999661 0.999529 +0.999398 0.999228 0.999059 0.998852 0.998645 0.998401 0.998156 0.997874 +0.997592 0.997273 0.996953 0.996596 0.996239 0.995845 0.995451 0.995019 +0.994588 0.994119 0.99365 0.993144 0.992638 0.992095 0.991552 0.990972 +0.990392 0.989775 0.989158 0.988504 0.987851 0.98716 0.986469 0.985742 +0.985015 0.984251 0.983488 0.982687 0.981887 0.981051 0.980215 0.979342 +0.978469 0.977561 0.976652 0.975708 0.974763 0.973783 0.972803 0.971787 +0.970771 0.96972 0.968669 0.967582 0.966495 0.965374 0.964252 0.963095 +0.961939 0.960747 0.959556 0.95833 0.957104 0.955843 0.954583 0.953288 +0.951993 0.950665 0.949336 0.947973 0.946611 0.945215 0.943818 0.942389 +0.940959 0.939496 0.938034 0.936538 0.935042 0.933514 0.931985 0.930424 +0.928863 0.927269 0.925676 0.924051 0.922425 0.920768 0.919111 0.917422 +0.915733 0.914013 0.912293 0.910542 0.908791 0.907009 0.905227 0.903414 +0.901602 0.899759 0.897917 0.896044 0.894171 0.892269 0.890367 0.888435 +0.886503 0.884542 0.882582 0.880592 0.878602 0.876584 0.874566 0.87252 +0.870473 0.868399 0.866325 0.864223 0.862121 0.859992 0.857863 0.855707 +0.853551 0.851368 0.849186 0.846977 0.844768 0.842533 0.840298 0.838037 +0.835777 0.833491 0.831205 0.828895 0.826584 0.824249 0.821913 0.819554 +0.817194 0.814811 0.812427 0.81002 0.807613 0.805183 0.802753 0.8003 +0.797847 0.795372 0.792896 0.790399 0.787901 0.785382 0.782863 0.780323 +0.777782 0.775221 0.77266 0.770078 0.767496 0.764894 0.762292 0.75967 +0.757048 0.754407 0.751766 0.749106 0.746446 0.743767 0.741089 0.738392 +0.735695 0.732981 0.730266 0.727534 0.724802 0.722054 0.719305 0.71654 +0.713774 0.710993 0.708211 0.705414 0.702617 0.699805 0.696993 0.694165 +0.691338 0.688497 0.685655 0.6828 0.679944 0.677075 0.674206 0.671324 +0.668441 0.665546 0.662652 0.659744 0.656837 0.653918 0.650999 0.648069 +0.645139 0.642197 0.639256 0.636304 0.633353 0.630391 0.627429 0.624458 +0.621486 0.618506 0.615525 0.612536 0.609547 0.606549 0.603552 0.600546 +0.597541 0.594529 0.591516 0.588496 0.585477 0.582451 0.579425 0.576393 +0.573361 0.570324 0.567286 0.564244 0.561201 0.558154 0.555107 0.552056 +0.549004 0.545949 0.542894 0.539836 0.536778 0.533717 0.530656 0.527593 +0.52453 0.521464 0.518399 0.515333 0.512266 0.509199 0.506131 0.503064 +0.499996 0.496928 0.49386 0.490792 0.487725 0.484659 0.481592 0.478527 +0.475462 0.472399 0.469335 0.466274 0.463213 0.460155 0.457097 0.454042 +0.450987 0.447936 0.444884 0.441837 0.43879 0.435748 0.432705 0.429668 +0.42663 0.423598 0.420566 0.417541 0.414515 0.411495 0.408476 0.405463 +0.40245 0.399445 0.39644 0.393442 0.390445 0.387456 0.384466 0.381486 +0.378505 0.375534 0.372563 0.369601 0.366639 0.363687 0.360736 0.357794 +0.354853 0.351923 0.348993 0.346074 0.343155 0.340247 0.33734 0.334445 +0.331551 0.328668 0.325786 0.322917 0.320048 0.317192 0.314337 0.311495 +0.308654 0.305827 0.302999 0.300187 0.297375 0.294578 0.291781 0.288999 +0.286218 0.283453 0.280687 0.277939 0.27519 0.272458 0.269726 0.267012 +0.264297 0.2616 0.258904 0.256225 0.253547 0.250886 0.248226 0.245585 +0.242944 0.240323 0.237701 0.235099 0.232497 0.229915 0.227333 0.224772 +0.222211 0.21967 0.21713 0.214611 0.212092 0.209594 0.207097 0.204622 +0.202146 0.199693 0.19724 0.19481 0.19238 0.189973 0.187566 0.185183 +0.182799 0.18044 0.17808 0.175745 0.17341 0.171099 0.168788 0.166502 +0.164217 0.161956 0.159696 0.157461 0.155226 0.153017 0.150808 0.148625 +0.146443 0.144287 0.142131 0.140002 0.137873 0.135771 0.133669 0.131595 +0.129521 0.127474 0.125428 0.12341 0.121392 0.119402 0.117413 0.115452 +0.113491 0.11156 0.109628 0.107726 0.105823 0.103951 0.102078 0.100236 +0.0983929 0.0965805 0.0947681 0.0929862 0.0912043 0.0894533 0.0877022 +0.0859821 0.084262 0.0825733 0.0808845 0.0792274 0.0775702 0.0759448 +0.0743194 0.0727261 0.0711327 0.0695717 0.0680107 0.0664822 0.0649537 +0.0634579 0.0619622 0.0604994 0.0590366 0.0576071 0.0561775 0.0547814 +0.0533852 0.0520227 0.0506602 0.0493315 0.0480028 0.0467082 0.0454136 +0.0441532 0.0428927 0.0416667 0.0404407 0.0392494 0.038058 0.0369014 +0.0357448 0.0346231 0.0335014 0.0324149 0.0313284 0.0302772 0.0292259 +0.0282102 0.0271944 0.0262142 0.025234 0.0242896 0.0233451 0.0224366 +0.0215281 0.0206555 0.019783 0.0189467 0.0181103 0.0173103 0.0165102 +0.0157465 0.0149829 0.0142557 0.0135286 0.0128381 0.0121476 0.0114938 +0.01084 0.0102231 0.00960612 0.00902611 0.0084461 0.0079031 0.0073601 +0.00685418 0.00634828 0.00587955; +#A 1000 0.00541082 0.00497931 0.00454783 0.00415364 0.00375944 0.00340262 +0.0030458 0.00272641 0.00240701 0.00212508 0.00184312 0.00159872 0.00135428 +0.00114739 0.000940531 0.000771224 0.000601947 0.000470251 0.000338554 +0.000244498 0.000150412 9.39965e-05 3.75509e-05 1.87755e-05; +#X coords 0 1 1023 0 200 120 1; +#X restore 257 137 graph; +#X msg 174 141 0; +#X obj 59 195 osc~; +#X obj 59 147 samplerate~; +#X obj 59 218 *~ -0.5; +#X obj 59 241 +~ 0.5; +#X obj 51 266 tabwrite~ \$0-hann; +#X obj 51 124 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 330 104 Hann window; +#X text 49 99 recalculate Hann; +#X text 84 114 window table; +#X text 107 193 comment; +#X obj 59 171 / 512; +#X obj 558 145 *~; +#X obj 557 80 inlet~; +#X obj 558 199 rfft~; +#X obj 579 121 tabreceive~ \$0-hann; +#X obj 557 287 *~; +#X obj 599 287 *~; +#X obj 558 337 sqrt~; +#X text 768 112 tabreceive~ outputs array contents \,; +#X text 768 130 constantly \, every block. Here it's; +#X text 766 150 used to get the Hann window to; +#X text 768 168 multiply by the input.; +#X text 619 80 The inlet~ automatically re-blocks to the new block +size.; +#X obj 558 313 +~; +#X text 637 289 Take the magnitude by squaring real and imaginary part +\, adding and taking square root.; +#X text 625 196 forward real FFT. Like "fft~" \, but only one inlet +(for the real part) and only the first half of the output signals are +used. (The others are determined by symmetry: they're complex conjugates +of the first half \, in reverse order.) This takes 1/2 the CPU time +of "fft".; +#X obj 55 382 table phase 513; +#X obj 54 409 table magnitude 513; +#X obj 558 536 hsl 128 15 -1 1 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X msg 663 424 st 2; +#X msg 726 428 lt 20; +#X text 652 393 compute the center of gravity of the magnitude spectrum +; +#X text 653 490 accum takes only 1d float messsages output is relative +change of short time average compared to long tim average; +#X obj 559 460 rj_accum 512; +#X text 777 426 change short time and long time durations here \, default +is: st 5 s \, lt 30 s; +#X obj 559 396 rj_centroid~; +#X obj 814 354 loadbang; +#X connect 2 0 3 1; +#X connect 3 0 5 0; +#X connect 4 0 13 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 8 0 4 0; +#X connect 8 0 2 0; +#X connect 8 0 7 0; +#X connect 13 0 3 0; +#X connect 14 0 16 0; +#X connect 15 0 14 0; +#X connect 16 0 18 0; +#X connect 16 0 18 1; +#X connect 16 1 19 0; +#X connect 16 1 19 1; +#X connect 17 0 14 1; +#X connect 18 0 26 0; +#X connect 19 0 26 1; +#X connect 20 0 38 0; +#X connect 26 0 20 0; +#X connect 32 0 36 0; +#X connect 33 0 36 0; +#X connect 36 0 31 0; +#X connect 38 0 36 0; +#X connect 39 0 32 0; +#X connect 39 0 33 0; +#X restore 190 114 pd myFFTanalysis; +#X connect 0 0 1 0; diff --git a/l2ork_addons/rjlib/src/rj_accum.c b/l2ork_addons/rjlib/src/rj_accum.c new file mode 100644 index 000000000..3acb44dfa --- /dev/null +++ b/l2ork_addons/rjlib/src/rj_accum.c @@ -0,0 +1,195 @@ +/* code for the "rj_accum" pd class. +ver 0.2 +Amaury Hazan +Damian Stewart +*/ + +#include "m_pd.h" +#include <stdlib.h> +#include <string.h> + +#define DEF_BLOCKSIZE 512 + +typedef struct rj_accum +{ + t_object x_obj; + + // configuration values + float blocksize; + float samplerate; + + //short-time buffer, size,counter and desired duration (in s) + float * st_buffer; + int st_buffersize; + int st_buffercnt; + float st_duration; + float st_mean; + float st_total; + int st_idx; + + //long-time buffer, size, counter and desired duration (in s) + float * lt_buffer; + int lt_buffersize; + int lt_buffercnt; + float lt_duration; + float lt_mean; + float lt_total; + int lt_idx; + + float rel_change; + + t_outlet* relative_change; /* m: place for outlet */ + +} t_rj_accum; + +void rj_accum_float(t_rj_accum *x, t_floatarg f) +{ + if (x->st_buffercnt< x->st_buffersize-1) x->st_buffercnt++; + // calculate new total: subtract old, add new + x->st_total -= x->st_buffer[x->st_idx]; + x->st_total += f; + x->st_buffer[x->st_idx] = f; + // increment index + x->st_idx = ( x->st_idx + 1 ) % x->st_buffersize; + + //x->st_mean=x->st_mean*st_before_weight + f*st_after_weight; + x->st_mean = x->st_total / x->st_buffercnt; + + if (x->lt_buffercnt< x->lt_buffersize-1) x->lt_buffercnt++; + // calculate new total: subtract old, add new + x->lt_total -= x->lt_buffer[x->lt_idx]; + x->lt_total += f; + x->lt_buffer[x->lt_idx] = f; + // increment index + x->lt_idx = ( x->lt_idx + 1 ) % x->lt_buffersize; + //x->lt_mean=x->lt_mean*lt_before_weight + f*lt_after_weight; + x->lt_mean = x->lt_total / x->lt_buffercnt; + + if (x->lt_mean==0) x->rel_change=0; + else x->rel_change=(x->st_mean-x->lt_mean)/x->lt_mean; + + outlet_float(x->relative_change, x->rel_change); +} + +t_class *rj_accum_class; + +void rj_accum_set_st(t_rj_accum *x, t_floatarg g) +{ + post("short term duration fixed to %f", g); + x->st_duration=g; + // determining st buffer size + x->st_buffersize= (int) ((x->st_duration*x->samplerate)/x->blocksize); + x->st_buffercnt=0; + free( x->st_buffer ); + x->st_buffer = malloc( x->st_buffersize*sizeof(float) ); + memset( x->st_buffer, 0, x->st_buffersize*sizeof(float) ); + x->st_total = 0; + x->st_idx = 0; + post("short term number of frames %d", x->st_buffersize); + +} + +void rj_accum_set_lt(t_rj_accum *x, t_floatarg g) +{ + post("long term duration fixed to %f", g); + x->lt_duration=g; + // determining st buffer size + x->lt_buffersize= (int) ((x->lt_duration*x->samplerate)/x->blocksize); + x->lt_buffercnt=0; + free( x->lt_buffer ); + x->lt_buffer = malloc( x->lt_buffersize*sizeof(float) ); + memset( x->lt_buffer, 0, x->lt_buffersize*sizeof(float) ); + x->lt_total = 0; + x->lt_idx = 0; + post("long term number of frames %d", x->lt_buffersize); +} + +void *rj_accum_new(t_symbol *selector, int argcount, t_atom *argvec) +{ + t_rj_accum *x = (t_rj_accum *)pd_new(rj_accum_class); + x->relative_change=outlet_new(&x->x_obj, &s_float); + + post("new %s", selector->s_name); + + // param passing + if (argcount==1){ + x->st_duration=5.f; + x->lt_duration=30.f; + x->blocksize=argvec[0].a_w.w_float; + x->samplerate=sys_getsr(); + } + else if (argcount==0){ + x->st_duration=5.f; + x->lt_duration=30.f; + x->blocksize=DEF_BLOCKSIZE; + x->samplerate=sys_getsr(); + } + else{ + post("usage: rj_accum [hopsize]"); + post(" where hopsize is processing hop size (default 512)"); + + post("you provided %d arguments",argcount); + + x->st_duration=5.f; + x->lt_duration=30.f; + x->blocksize=DEF_BLOCKSIZE; + x->samplerate=sys_getsr(); + } + + post("std %f", x->st_duration); + post("ltd %f", x->lt_duration); + post("hopsize %f", x->blocksize); + post("samplerate %f", x->samplerate); + + // buffers allocation + int cnt; + + // detrmining st buffer size + x->st_buffersize= (int) ((x->st_duration*x->samplerate)/x->blocksize); + x->st_buffercnt=0; + + // detrmining lt buffer size + x->lt_buffersize= (int) ((x->lt_duration*x->samplerate)/x->blocksize); + x->lt_buffercnt=0; + + // initializing buffers + x->st_buffer = (float*)malloc( x->st_buffersize*sizeof(float) ); + x->lt_buffer = (float*)malloc( x->lt_buffersize*sizeof(float) ); + memset( x->st_buffer, 0, x->st_buffersize*sizeof(float) ); + memset( x->lt_buffer, 0, x->lt_buffersize*sizeof(float) ); + + // initilaizing means + x->st_mean=0.f; + x->lt_mean=0.f; + + // initializing totals and indexes + x->st_total = 0.f; + x->st_idx = 0; + x->lt_total = 0.f; + x->lt_idx = 0; + + x->rel_change=0.f; + + return (void *)x; +} + +static void rj_accumulator_free(t_rj_accum *x) +{ + free( x->st_buffer ); + free( x->lt_buffer ); +} + +void rj_accum_setup(void) +{ + + /* We specify "A_GIMME" as creation argument for both the creation + routine and the method (callback) for the "conf" message. */ + rj_accum_class = class_new(gensym("rj_accum"), (t_newmethod)rj_accum_new, + 0, sizeof(t_rj_accum), 0, A_GIMME, 0); + + class_addfloat(rj_accum_class, rj_accum_float); + class_addmethod(rj_accum_class, (t_method)rj_accum_set_st, gensym("st"), A_FLOAT, 0); + class_addmethod(rj_accum_class, (t_method)rj_accum_set_lt, gensym("lt"), A_FLOAT, 0); + post("rj_accum version 0.2"); +} + diff --git a/l2ork_addons/rjlib/src/rj_barkflux_accum~-help.pd b/l2ork_addons/rjlib/src/rj_barkflux_accum~-help.pd new file mode 100644 index 000000000..7bab99abf --- /dev/null +++ b/l2ork_addons/rjlib/src/rj_barkflux_accum~-help.pd @@ -0,0 +1,214 @@ +#N canvas 354 121 450 300 10; +#X obj 184 52 adc~; +#N canvas 90 124 1350 776 myFFTanalysis 1; +#X obj 51 58 block~ 1024 2; +#N canvas 0 22 450 300 (subpatch) 0; +#X array \$0-hann 1024 float 1; +#A 0 0 1.88351e-05 3.76403e-05 9.41157e-05 0.000150591 0.000244677 +0.000338793 0.000470519 0.000602275 0.000771582 0.000940919 0.00114784 +0.00135475 0.00159922 0.00184369 0.00212565 0.00240761 0.00272706 0.00304651 +0.00340337 0.00376022 0.00415444 0.00454867 0.00498021 0.00541171 0.00588048 +0.00634927 0.00685519 0.00736114 0.00790417 0.00844723 0.0090273 0.00960734 +0.0102243 0.0108413 0.0114951 0.0121489 0.0128394 0.01353 0.0142572 +0.0149843 0.015748 0.0165117 0.0173118 0.0181119 0.0189483 0.0197847 +0.0206572 0.0215298 0.0224383 0.0233469 0.0242914 0.0252359 0.0262161 +0.0271963 0.0282121 0.0292279 0.0302792 0.0313304 0.032417 0.0335035 +0.0346252 0.0357469 0.0369035 0.0380602 0.0392516 0.040443 0.041669 +0.042895 0.0441555 0.0454159 0.0467106 0.0480052 0.0493339 0.0506626 +0.0520252 0.0533877 0.0547839 0.05618 0.0576096 0.0590392 0.060502 +0.0619648 0.0634606 0.0649563 0.0664849 0.0680134 0.0695744 0.0711355 +0.0727288 0.0743222 0.0759476 0.077573 0.0792302 0.0808874 0.0825762 +0.084265 0.085985 0.0877051 0.0894562 0.0912073 0.0929892 0.0947711 +0.0965835 0.0983959 0.100239 0.102081 0.103954 0.105826 0.107729 0.109631 +0.111563 0.113494 0.115455 0.117416 0.119406 0.121395 0.123413 0.125431 +0.127478 0.129524 0.131598 0.133672 0.135774 0.137876 0.140005 0.142134 +0.14429 0.146446 0.148629 0.150811 0.15302 0.155229 0.157464 0.159699 +0.161959 0.16422 0.166506 0.168792 0.171102 0.173413 0.175748 0.178084 +0.180443 0.182803 0.185186 0.18757 0.189977 0.192384 0.194814 0.197244 +0.199697 0.20215 0.204625 0.2071 0.209598 0.212095 0.214614 0.217133 +0.219674 0.222214 0.224775 0.227337 0.229919 0.2325 0.235102 0.237704 +0.240326 0.242948 0.245589 0.24823 0.25089 0.25355 0.256229 0.258907 +0.261604 0.264301 0.267015 0.26973 0.272462 0.275194 0.277942 0.280691 +0.283457 0.286222 0.289003 0.291785 0.294582 0.297379 0.300191 0.303003 +0.305831 0.308658 0.311499 0.314341 0.317196 0.320052 0.322921 0.32579 +0.328672 0.331555 0.334449 0.337344 0.340252 0.343159 0.346078 0.348997 +0.351927 0.354857 0.357798 0.36074 0.363691 0.366643 0.369605 0.372567 +0.375538 0.37851 0.38149 0.384471 0.38746 0.390449 0.393447 0.396444 +0.399449 0.402455 0.405467 0.40848 0.411499 0.414519 0.417545 0.420571 +0.423603 0.426635 0.429672 0.432709 0.435752 0.438794 0.441842 0.444889 +0.44794 0.450991 0.454046 0.457101 0.460159 0.463218 0.466279 0.46934 +0.472403 0.475466 0.478531 0.481596 0.484663 0.487729 0.490797 0.493864 +0.496932 0.5 0.503068 0.506136 0.509203 0.512271 0.515337 0.518404 +0.521469 0.524534 0.527597 0.53066 0.533721 0.536782 0.539841 0.542899 +0.545954 0.549009 0.55206 0.555111 0.558158 0.561205 0.564248 0.56729 +0.570328 0.573365 0.576397 0.579429 0.582455 0.585481 0.588501 0.59152 +0.594533 0.597545 0.600551 0.603556 0.606553 0.609551 0.61254 0.615529 +0.61851 0.62149 0.624462 0.627433 0.630395 0.633357 0.636308 0.63926 +0.642201 0.645143 0.648073 0.651003 0.653922 0.656841 0.659748 0.662656 +0.66555 0.668445 0.671328 0.67421 0.677079 0.679948 0.682804 0.685659 +0.688501 0.691342 0.694169 0.696997 0.699809 0.702621 0.705418 0.708215 +0.710997 0.713778 0.716543 0.719309 0.722057 0.724806 0.727538 0.73027 +0.732984 0.735699 0.738396 0.741093 0.743771 0.74645 0.74911 0.75177 +0.754411 0.757052 0.759674 0.762295 0.764897 0.767499 0.770081 0.772663 +0.775224 0.777786 0.780326 0.782867 0.785386 0.787905 0.790402 0.7929 +0.795375 0.79785 0.800303 0.802756 0.805186 0.807616 0.810023 0.812431 +0.814814 0.817197 0.819557 0.821916 0.824252 0.826587 0.828898 0.831209 +0.833494 0.83578 0.838041 0.840301 0.842536 0.844771 0.84698 0.849189 +0.851372 0.853554 0.85571 0.857866 0.859995 0.862124 0.864226 0.866328 +0.868402 0.870476 0.872523 0.874569 0.876587 0.878605 0.880595 0.882584 +0.884545 0.886506 0.888438 0.890369 0.892272 0.894174 0.896047 0.897919 +0.899762 0.901605 0.903417 0.905229 0.907011 0.908793 0.910544 0.912295 +0.914015 0.915736 0.917424 0.919113 0.92077 0.922428 0.924053 0.925678 +0.927272 0.928865 0.930426 0.931987 0.933516 0.935044 0.93654 0.938036 +0.939499 0.940961 0.942391 0.94382 0.945217 0.946613 0.947975 0.949338 +0.950667 0.951995 0.95329 0.954585 0.955845 0.957106 0.958332 0.959558 +0.960749 0.96194 0.963097 0.964254 0.965375 0.966497 0.967584 0.96867 +0.969721 0.970773 0.971788 0.972804 0.973784 0.974765 0.975709 0.976654 +0.977562 0.978471 0.979343 0.980216 0.981052 0.981889 0.982689 0.983489 +0.984252 0.985016 0.985743 0.98647 0.987161 0.987852 0.988505 0.989159 +0.989776 0.990393 0.990973 0.991553 0.992096 0.992639 0.993145 0.993651 +0.99412 0.994589 0.99502 0.995452 0.995846 0.99624 0.996597 0.996954 +0.997273 0.997593 0.997874 0.998156 0.998401 0.998645 0.998852 0.999059 +0.999229 0.999398 0.99953 0.999661 0.999755 0.999849 0.999906 0.999962 +0.999981 1 0.999981 0.999962 0.999906 0.999849 0.999755 0.999661 0.999529 +0.999398 0.999228 0.999059 0.998852 0.998645 0.998401 0.998156 0.997874 +0.997592 0.997273 0.996953 0.996596 0.996239 0.995845 0.995451 0.995019 +0.994588 0.994119 0.99365 0.993144 0.992638 0.992095 0.991552 0.990972 +0.990392 0.989775 0.989158 0.988504 0.987851 0.98716 0.986469 0.985742 +0.985015 0.984251 0.983488 0.982687 0.981887 0.981051 0.980215 0.979342 +0.978469 0.977561 0.976652 0.975708 0.974763 0.973783 0.972803 0.971787 +0.970771 0.96972 0.968669 0.967582 0.966495 0.965374 0.964252 0.963095 +0.961939 0.960747 0.959556 0.95833 0.957104 0.955843 0.954583 0.953288 +0.951993 0.950665 0.949336 0.947973 0.946611 0.945215 0.943818 0.942389 +0.940959 0.939496 0.938034 0.936538 0.935042 0.933514 0.931985 0.930424 +0.928863 0.927269 0.925676 0.924051 0.922425 0.920768 0.919111 0.917422 +0.915733 0.914013 0.912293 0.910542 0.908791 0.907009 0.905227 0.903414 +0.901602 0.899759 0.897917 0.896044 0.894171 0.892269 0.890367 0.888435 +0.886503 0.884542 0.882582 0.880592 0.878602 0.876584 0.874566 0.87252 +0.870473 0.868399 0.866325 0.864223 0.862121 0.859992 0.857863 0.855707 +0.853551 0.851368 0.849186 0.846977 0.844768 0.842533 0.840298 0.838037 +0.835777 0.833491 0.831205 0.828895 0.826584 0.824249 0.821913 0.819554 +0.817194 0.814811 0.812427 0.81002 0.807613 0.805183 0.802753 0.8003 +0.797847 0.795372 0.792896 0.790399 0.787901 0.785382 0.782863 0.780323 +0.777782 0.775221 0.77266 0.770078 0.767496 0.764894 0.762292 0.75967 +0.757048 0.754407 0.751766 0.749106 0.746446 0.743767 0.741089 0.738392 +0.735695 0.732981 0.730266 0.727534 0.724802 0.722054 0.719305 0.71654 +0.713774 0.710993 0.708211 0.705414 0.702617 0.699805 0.696993 0.694165 +0.691338 0.688497 0.685655 0.6828 0.679944 0.677075 0.674206 0.671324 +0.668441 0.665546 0.662652 0.659744 0.656837 0.653918 0.650999 0.648069 +0.645139 0.642197 0.639256 0.636304 0.633353 0.630391 0.627429 0.624458 +0.621486 0.618506 0.615525 0.612536 0.609547 0.606549 0.603552 0.600546 +0.597541 0.594529 0.591516 0.588496 0.585477 0.582451 0.579425 0.576393 +0.573361 0.570324 0.567286 0.564244 0.561201 0.558154 0.555107 0.552056 +0.549004 0.545949 0.542894 0.539836 0.536778 0.533717 0.530656 0.527593 +0.52453 0.521464 0.518399 0.515333 0.512266 0.509199 0.506131 0.503064 +0.499996 0.496928 0.49386 0.490792 0.487725 0.484659 0.481592 0.478527 +0.475462 0.472399 0.469335 0.466274 0.463213 0.460155 0.457097 0.454042 +0.450987 0.447936 0.444884 0.441837 0.43879 0.435748 0.432705 0.429668 +0.42663 0.423598 0.420566 0.417541 0.414515 0.411495 0.408476 0.405463 +0.40245 0.399445 0.39644 0.393442 0.390445 0.387456 0.384466 0.381486 +0.378505 0.375534 0.372563 0.369601 0.366639 0.363687 0.360736 0.357794 +0.354853 0.351923 0.348993 0.346074 0.343155 0.340247 0.33734 0.334445 +0.331551 0.328668 0.325786 0.322917 0.320048 0.317192 0.314337 0.311495 +0.308654 0.305827 0.302999 0.300187 0.297375 0.294578 0.291781 0.288999 +0.286218 0.283453 0.280687 0.277939 0.27519 0.272458 0.269726 0.267012 +0.264297 0.2616 0.258904 0.256225 0.253547 0.250886 0.248226 0.245585 +0.242944 0.240323 0.237701 0.235099 0.232497 0.229915 0.227333 0.224772 +0.222211 0.21967 0.21713 0.214611 0.212092 0.209594 0.207097 0.204622 +0.202146 0.199693 0.19724 0.19481 0.19238 0.189973 0.187566 0.185183 +0.182799 0.18044 0.17808 0.175745 0.17341 0.171099 0.168788 0.166502 +0.164217 0.161956 0.159696 0.157461 0.155226 0.153017 0.150808 0.148625 +0.146443 0.144287 0.142131 0.140002 0.137873 0.135771 0.133669 0.131595 +0.129521 0.127474 0.125428 0.12341 0.121392 0.119402 0.117413 0.115452 +0.113491 0.11156 0.109628 0.107726 0.105823 0.103951 0.102078 0.100236 +0.0983929 0.0965805 0.0947681 0.0929862 0.0912043 0.0894533 0.0877022 +0.0859821 0.084262 0.0825733 0.0808845 0.0792274 0.0775702 0.0759448 +0.0743194 0.0727261 0.0711327 0.0695717 0.0680107 0.0664822 0.0649537 +0.0634579 0.0619622 0.0604994 0.0590366 0.0576071 0.0561775 0.0547814 +0.0533852 0.0520227 0.0506602 0.0493315 0.0480028 0.0467082 0.0454136 +0.0441532 0.0428927 0.0416667 0.0404407 0.0392494 0.038058 0.0369014 +0.0357448 0.0346231 0.0335014 0.0324149 0.0313284 0.0302772 0.0292259 +0.0282102 0.0271944 0.0262142 0.025234 0.0242896 0.0233451 0.0224366 +0.0215281 0.0206555 0.019783 0.0189467 0.0181103 0.0173103 0.0165102 +0.0157465 0.0149829 0.0142557 0.0135286 0.0128381 0.0121476 0.0114938 +0.01084 0.0102231 0.00960612 0.00902611 0.0084461 0.0079031 0.0073601 +0.00685418 0.00634828 0.00587955; +#A 1000 0.00541082 0.00497931 0.00454783 0.00415364 0.00375944 0.00340262 +0.0030458 0.00272641 0.00240701 0.00212508 0.00184312 0.00159872 0.00135428 +0.00114739 0.000940531 0.000771224 0.000601947 0.000470251 0.000338554 +0.000244498 0.000150412 9.39965e-05 3.75509e-05 1.87755e-05; +#X coords 0 1 1023 0 200 120 1; +#X restore 257 137 graph; +#X msg 174 141 0; +#X obj 59 195 osc~; +#X obj 59 147 samplerate~; +#X obj 59 218 *~ -0.5; +#X obj 59 241 +~ 0.5; +#X obj 51 266 tabwrite~ \$0-hann; +#X obj 51 124 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 330 104 Hann window; +#X text 49 99 recalculate Hann; +#X text 84 114 window table; +#X text 107 193 comment; +#X obj 59 171 / 512; +#X obj 558 145 *~; +#X obj 557 80 inlet~; +#X obj 558 199 rfft~; +#X obj 579 121 tabreceive~ \$0-hann; +#X obj 557 287 *~; +#X obj 599 287 *~; +#X obj 558 337 sqrt~; +#X text 768 112 tabreceive~ outputs array contents \,; +#X text 768 130 constantly \, every block. Here it's; +#X text 766 150 used to get the Hann window to; +#X text 768 168 multiply by the input.; +#X text 619 80 The inlet~ automatically re-blocks to the new block +size.; +#X obj 558 313 +~; +#X text 637 289 Take the magnitude by squaring real and imaginary part +\, adding and taking square root.; +#X text 625 196 forward real FFT. Like "fft~" \, but only one inlet +(for the real part) and only the first half of the output signals are +used. (The others are determined by symmetry: they're complex conjugates +of the first half \, in reverse order.) This takes 1/2 the CPU time +of "fft".; +#X obj 55 382 table phase 513; +#X obj 54 409 table magnitude 513; +#X obj 555 516 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X msg 708 468 st 10; +#X msg 708 490 lt 45; +#X text 760 467 duration of short time window; +#X text 759 490 duration of long term window; +#X text 700 379 change detector: computes the spectral difference between +short term spectrum (13 bark bands) and long term spectrum; +#X obj 555 388 rj_barkflux_accum~; +#X obj 729 423 loadbang; +#X connect 2 0 3 1; +#X connect 3 0 5 0; +#X connect 4 0 13 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 8 0 4 0; +#X connect 8 0 2 0; +#X connect 8 0 7 0; +#X connect 13 0 3 0; +#X connect 14 0 16 0; +#X connect 15 0 14 0; +#X connect 16 0 18 0; +#X connect 16 0 18 1; +#X connect 16 1 19 0; +#X connect 16 1 19 1; +#X connect 17 0 14 1; +#X connect 18 0 26 0; +#X connect 19 0 26 1; +#X connect 20 0 37 0; +#X connect 26 0 20 0; +#X connect 32 0 37 0; +#X connect 33 0 37 0; +#X connect 37 0 31 0; +#X connect 38 0 32 0; +#X connect 38 0 33 0; +#X restore 190 114 pd myFFTanalysis; +#X connect 0 0 1 0; diff --git a/l2ork_addons/rjlib/src/rj_barkflux_accum~.c b/l2ork_addons/rjlib/src/rj_barkflux_accum~.c new file mode 100644 index 000000000..90c5bd99e --- /dev/null +++ b/l2ork_addons/rjlib/src/rj_barkflux_accum~.c @@ -0,0 +1,372 @@ +#include "m_pd.h" +#include <math.h> +#include <stdlib.h> + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#define NFILTERS 12 +#define LF 40.f +#define HF 8000.f +#define WINSIZE 513 + +/* ----------------------- frequency domain conversion utilities -----------------------*/ + +// Bark <-> Hz conversion functions +// // See: Traunmüller (1990) "Analytical expressions for the tonotopic sensory scale" J. Acoust. Soc. Am. 88: 97-100. +float freq2bark(float freq){ + return (26.81f / (1.f + 1960.f / freq ) - 0.53f); +} + +float bark2freq(float z){ + return (1960.f / (26.81f / (z + 0.53f) - 1.f)); +} + +// Mel <-> Hz conversion functions +// // See: Stevens, Volkman and Newman in 1937 (J. Acoust. Soc. Am 8(3) 185--190) +float freq2mel(float freq){ + return (1127.01048f * log (1.f+(freq/700.f))); +} + +float mel2freq(float m){ + return (700.f*(exp(m/1127.01048f)-1)); +} + +// FFTBin <-> Hz conversion functions + +int freq2bin(int windowSize,int sampleRate, float freq){ + return (int) ceil((windowSize*2*freq)/(float)sampleRate); +} + +float bin2freq(int windowSize,int sampleRate, int bin){ + return ((float) (bin*sampleRate))/(2.f*(float) windowSize); +} + + +/* ------------------------ Filter objects ------------------------ */ + +typedef struct { + float lf; + float hf; + float gain; +} RectSpecFilter; + +typedef RectSpecFilter * RectSpecFilter_ptr; + +float getCf(RectSpecFilter m) { + return (m.hf+m.lf)*.5f; +} + +float getEnergy(RectSpecFilter m ,float * input, int winSize, int sampleRate) { + int lf_index=freq2bin(winSize, sampleRate, m.lf); + int hf_index=freq2bin(winSize, sampleRate, m.hf); + float res=0.; + int i; + for (i=lf_index; i<=hf_index; i++) { + res+=input[i]*input[i]; + } + return res; +} + +/* ------------------------ Filterbank ---------------------------- */ +typedef struct { + int winSize; + int nFilters; + int sampleRate; + float lowF; + float highF; + RectSpecFilter_ptr bankFilters; + // bank energies + float * bankEn; +} Filterbank; + +typedef Filterbank * Filterbank_ptr; + + +Filterbank_ptr allocFilterbank(int nFilters) { + + Filterbank_ptr fb=malloc(sizeof(Filterbank)); + fb->bankFilters=malloc(nFilters*sizeof(RectSpecFilter)); + fb->bankEn=malloc(nFilters*sizeof(float)); + + return fb; +} + + +void deleteFilterbank(Filterbank_ptr fb) { + + free(fb->bankFilters); + free(fb->bankEn); + free(fb); +} + +void initFilterbank(Filterbank_ptr m, int nFilters, int winSize, int sampleRate, float lowF, float highF) { + + m->lowF=lowF; + m->highF=highF; + m->sampleRate=sampleRate; + m->nFilters=nFilters; + m->winSize=winSize; + + float zBeg, zEnd, zBw; + zBeg=freq2bark(lowF); + zEnd=freq2bark(highF); + zBw=(zEnd-zBeg)/(float) nFilters; + + // linear separation on the bark scale + int i; + for (i=0; i<nFilters; i++) { + + float lf=bark2freq(zBeg+zBw*((float) i)); + float hf=bark2freq(zBeg+zBw*((float) i + 1.f)); + float gain=1.f; + + // set filters lf, hf, gain + m->bankFilters[i].lf=lf; + m->bankFilters[i].hf=hf; + m->bankFilters[i].gain=lf; + } +}; + +void computeFilterEnergies(Filterbank_ptr m, float * input){ + int i; + for (i=0; i< m->nFilters; i++){ + m->bankEn[i]=getEnergy(m->bankFilters[i],input, m->winSize, m->sampleRate) /((float) m->winSize); + } +}; + +/* ------------------------ rj_barkflux_accum~ for pd----------------------------- */ + +/* tilde object to take absolute value. */ + +static t_class *rj_barkflux_accum_class; + +typedef struct _rj_barkflux_accum +{ + t_object x_obj; /* obligatory header */ + t_float x_f; /* place to hold inlet's value if it's set by message */ + Filterbank_ptr fb; /* fb: place to hold the filterbank structure */ + + // configuration values + float blocksize; + float samplerate; + + // short term signal variables + // frame counter + int st_buffercnt; + // desired duration of short trem description + float st_duration; + // number of frames needed to describe st signal + int st_buffersize; + // short term bark spectrum + float * st_spectrum; + float * st_spectrum_norm; + + // long term signal variables + // frame counter + int lt_buffercnt; + // desired duration of short trem description + float lt_duration; + // number of frames needed to describe st signal + int lt_buffersize; + // short term bark spectrum + float * lt_spectrum; + float * lt_spectrum_norm; + + // error mode + // 0=rms + // 1-kl divergence + int error_mode; + + t_outlet* rj_barkflux_accum; /* m: place for outlet */ + +} t_rj_barkflux_accum; + + /* this is the actual performance routine which acts on the samples. + It's called with a single pointer "w" which is our location in the + DSP call list. We return a new "w" which will point to the next item + after us. Meanwhile, w[0] is just a pointer to dsp-perform itself + (no use to us), w[1] and w[2] are the input and output vector locations, + and w[3] is the number of points to calculate. */ + +static t_int *rj_barkflux_accum_perform(t_int *w) +{ + + t_rj_barkflux_accum *x = (t_rj_barkflux_accum *)(w[1]); + t_float *in = (t_float *)(w[2]); + + int size=(int)(w[3]); + int ifilter; + float tmp_err, err=0.f; + float st_sum=0.f, lt_sum=0.f; + + if (size>=WINSIZE){ + + // compute filterbank energies + computeFilterEnergies(x->fb, in); + // compute accumulation parameters - short term + if (x->st_buffercnt< x->st_buffersize-1) x->st_buffercnt++; + float st_before_weight= (float) x->st_buffercnt / ((float) x->st_buffercnt +1.f); + float st_after_weight= 1.f / ((float) x->st_buffercnt +1.f); + // compute accumulation parameters - long term + if (x->lt_buffercnt< x->lt_buffersize-1) x->lt_buffercnt++; + float lt_before_weight= (float) x->lt_buffercnt / ((float) x->lt_buffercnt +1.f); + float lt_after_weight= 1.f / ((float) x->lt_buffercnt +1.f); + // actualize average st and lt spectral distribution + for (ifilter=0; ifilter<x->fb->nFilters; ifilter++) + { + x->st_spectrum[ifilter]=x->st_spectrum[ifilter]*st_before_weight + x->fb->bankEn[ifilter]*st_after_weight; + x->lt_spectrum[ifilter]=x->lt_spectrum[ifilter]*lt_before_weight + x->fb->bankEn[ifilter]*lt_after_weight; + st_sum+=x->st_spectrum[ifilter]; + lt_sum+=x->lt_spectrum[ifilter]; + + if(x->error_mode==0) + { + tmp_err=x->st_spectrum[ifilter]-x->lt_spectrum[ifilter]; + err+=tmp_err*tmp_err; + } + } + + if(x->error_mode==1) + { + // getting normalized st and lt + for (ifilter=0; ifilter<x->fb->nFilters; ifilter++) + { + x->st_spectrum_norm[ifilter]=x->st_spectrum[ifilter]; + x->lt_spectrum_norm[ifilter]=x->lt_spectrum[ifilter]; + } + + //computing kl + for (ifilter=0; ifilter<x->fb->nFilters; ifilter++) + { + err+=x->st_spectrum_norm[ifilter]*log(x->st_spectrum_norm[ifilter]/x->lt_spectrum_norm[ifilter]); + } + } + + outlet_float(x->rj_barkflux_accum, err); + } + + else post("rj_barkflux_accum: input buffer too small. expected spectrum size is %d, so block size should be",WINSIZE,(WINSIZE-1)*2); + + return (w+4); +} + + /* called to start DSP. Here we call Pd back to add our perform + routine to a linear callback list which Pd in turn calls to grind + out the samples. */ +static void rj_barkflux_accum_dsp(t_rj_barkflux_accum *x, t_signal **sp) +{ + dsp_add(rj_barkflux_accum_perform, 3, x, sp[0]->s_vec, sp[0]->s_n); +} + +void accum_set_st(t_rj_barkflux_accum *x, t_floatarg g) +{ + post("short term duration fixed to %f", g); + x->st_duration=g; + // determining st buffer size + x->st_buffersize= (int) ((x->st_duration*x->samplerate)/x->blocksize); + x->st_buffercnt=0; + post("short term number of frames %d", x->st_buffersize); +} + +void accum_set_lt(t_rj_barkflux_accum *x, t_floatarg g) +{ + post("long term duration fixed to %f", g); + x->lt_duration=g; + // determining st buffer size + x->lt_buffersize= (int) ((x->lt_duration*x->samplerate)/x->blocksize); + x->lt_buffercnt=0; + post("long term number of frames %d", x->lt_buffersize); + +} + +static void *rj_barkflux_accum_new(void) +{ + int ifilter; + + t_rj_barkflux_accum *x = (t_rj_barkflux_accum *)pd_new(rj_barkflux_accum_class); + x->rj_barkflux_accum=outlet_new(&x->x_obj, &s_float); + x->x_f = 0; + + inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("st"), gensym("float")); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("lt"), gensym("float")); + + x->st_duration=5; + x->lt_duration=30; + x->blocksize=1024; + x->samplerate=sys_getsr(); + + // determining st buffer size + x->st_buffersize= (int) ((x->st_duration*x->samplerate)/x->blocksize); + x->st_buffercnt=0; + + // determining lt buffer size + x->lt_buffersize= (int) ((x->lt_duration*x->samplerate)/x->blocksize); + x->lt_buffercnt=0; + + // filterbank alloc and init + x->fb=allocFilterbank(NFILTERS); + initFilterbank(x->fb, NFILTERS, WINSIZE, sys_getsr(), LF, HF); + + // buffers for st and lt spectrum + x->st_spectrum=malloc(NFILTERS*sizeof(float)); + x->lt_spectrum=malloc(NFILTERS*sizeof(float)); + for (ifilter=0; ifilter<NFILTERS; ifilter++) + { + x->st_spectrum[ifilter]=0; + x->lt_spectrum[ifilter]=0; + } + x->st_spectrum_norm=malloc(NFILTERS*sizeof(float)); + x->lt_spectrum_norm=malloc(NFILTERS*sizeof(float)); + + // error mode + // 0: rms + // 1: kl divergence + x->error_mode=0; + + post("rj_barkflux_accum: init ok"); + + return (x); +} + + +static void rj_barkflux_accum_free(t_rj_barkflux_accum *x) { + + deleteFilterbank(x->fb); + free(x->st_spectrum); + free(x->lt_spectrum); + free(x->st_spectrum_norm); + free(x->lt_spectrum_norm); +} + + + /* this routine, which must have exactly this name (with the "~" replaced + by "_tilde) is called when the code is first loaded, and tells Pd how + to build the "class". */ +void rj_barkflux_accum_tilde_setup(void) +{ + rj_barkflux_accum_class = class_new(gensym("rj_barkflux_accum~"), (t_newmethod)rj_barkflux_accum_new, (t_method)rj_barkflux_accum_free, + sizeof(t_rj_barkflux_accum), 0, A_DEFFLOAT, 0); + + // gimme init format ... for later + //rj_barkflux_accum_class = class_new(gensym("rj_barkflux_accum~"), (t_newmethod)rj_barkflux_accum_new, (t_method)rj_barkflux_accum_free, + // sizeof(t_rj_barkflux_accum), 0, A_GIMME, 0); + + /* this is magic to declare that the leftmost, "main" inlet + takes signals; other signal inlets are done differently... */ + + CLASS_MAINSIGNALIN(rj_barkflux_accum_class, t_rj_barkflux_accum, x_f); + /* here we tell Pd about the "dsp" method, which is called back + when DSP is turned on. */ + + class_addmethod(rj_barkflux_accum_class, (t_method)rj_barkflux_accum_dsp, gensym("dsp"), 0); + + class_addmethod(rj_barkflux_accum_class, (t_method)accum_set_st, gensym("st"), A_FLOAT, 0); + class_addmethod(rj_barkflux_accum_class, (t_method)accum_set_lt, gensym("lt"), A_FLOAT, 0); + + + post("rj_barkflux_accum version 0.1"); +} + diff --git a/l2ork_addons/rjlib/src/rj_centroid~-help.pd b/l2ork_addons/rjlib/src/rj_centroid~-help.pd new file mode 100644 index 000000000..a7b93e62f --- /dev/null +++ b/l2ork_addons/rjlib/src/rj_centroid~-help.pd @@ -0,0 +1,207 @@ +#N canvas 354 121 450 300 10; +#X obj 184 52 adc~; +#N canvas 90 124 1350 776 myFFTanalysis 1; +#X obj 51 58 block~ 1024 2; +#N canvas 0 22 450 300 (subpatch) 0; +#X array \$0-hann 1024 float 1; +#A 0 0 1.88351e-05 3.76403e-05 9.41157e-05 0.000150591 0.000244677 +0.000338793 0.000470519 0.000602275 0.000771582 0.000940919 0.00114784 +0.00135475 0.00159922 0.00184369 0.00212565 0.00240761 0.00272706 0.00304651 +0.00340337 0.00376022 0.00415444 0.00454867 0.00498021 0.00541171 0.00588048 +0.00634927 0.00685519 0.00736114 0.00790417 0.00844723 0.0090273 0.00960734 +0.0102243 0.0108413 0.0114951 0.0121489 0.0128394 0.01353 0.0142572 +0.0149843 0.015748 0.0165117 0.0173118 0.0181119 0.0189483 0.0197847 +0.0206572 0.0215298 0.0224383 0.0233469 0.0242914 0.0252359 0.0262161 +0.0271963 0.0282121 0.0292279 0.0302792 0.0313304 0.032417 0.0335035 +0.0346252 0.0357469 0.0369035 0.0380602 0.0392516 0.040443 0.041669 +0.042895 0.0441555 0.0454159 0.0467106 0.0480052 0.0493339 0.0506626 +0.0520252 0.0533877 0.0547839 0.05618 0.0576096 0.0590392 0.060502 +0.0619648 0.0634606 0.0649563 0.0664849 0.0680134 0.0695744 0.0711355 +0.0727288 0.0743222 0.0759476 0.077573 0.0792302 0.0808874 0.0825762 +0.084265 0.085985 0.0877051 0.0894562 0.0912073 0.0929892 0.0947711 +0.0965835 0.0983959 0.100239 0.102081 0.103954 0.105826 0.107729 0.109631 +0.111563 0.113494 0.115455 0.117416 0.119406 0.121395 0.123413 0.125431 +0.127478 0.129524 0.131598 0.133672 0.135774 0.137876 0.140005 0.142134 +0.14429 0.146446 0.148629 0.150811 0.15302 0.155229 0.157464 0.159699 +0.161959 0.16422 0.166506 0.168792 0.171102 0.173413 0.175748 0.178084 +0.180443 0.182803 0.185186 0.18757 0.189977 0.192384 0.194814 0.197244 +0.199697 0.20215 0.204625 0.2071 0.209598 0.212095 0.214614 0.217133 +0.219674 0.222214 0.224775 0.227337 0.229919 0.2325 0.235102 0.237704 +0.240326 0.242948 0.245589 0.24823 0.25089 0.25355 0.256229 0.258907 +0.261604 0.264301 0.267015 0.26973 0.272462 0.275194 0.277942 0.280691 +0.283457 0.286222 0.289003 0.291785 0.294582 0.297379 0.300191 0.303003 +0.305831 0.308658 0.311499 0.314341 0.317196 0.320052 0.322921 0.32579 +0.328672 0.331555 0.334449 0.337344 0.340252 0.343159 0.346078 0.348997 +0.351927 0.354857 0.357798 0.36074 0.363691 0.366643 0.369605 0.372567 +0.375538 0.37851 0.38149 0.384471 0.38746 0.390449 0.393447 0.396444 +0.399449 0.402455 0.405467 0.40848 0.411499 0.414519 0.417545 0.420571 +0.423603 0.426635 0.429672 0.432709 0.435752 0.438794 0.441842 0.444889 +0.44794 0.450991 0.454046 0.457101 0.460159 0.463218 0.466279 0.46934 +0.472403 0.475466 0.478531 0.481596 0.484663 0.487729 0.490797 0.493864 +0.496932 0.5 0.503068 0.506136 0.509203 0.512271 0.515337 0.518404 +0.521469 0.524534 0.527597 0.53066 0.533721 0.536782 0.539841 0.542899 +0.545954 0.549009 0.55206 0.555111 0.558158 0.561205 0.564248 0.56729 +0.570328 0.573365 0.576397 0.579429 0.582455 0.585481 0.588501 0.59152 +0.594533 0.597545 0.600551 0.603556 0.606553 0.609551 0.61254 0.615529 +0.61851 0.62149 0.624462 0.627433 0.630395 0.633357 0.636308 0.63926 +0.642201 0.645143 0.648073 0.651003 0.653922 0.656841 0.659748 0.662656 +0.66555 0.668445 0.671328 0.67421 0.677079 0.679948 0.682804 0.685659 +0.688501 0.691342 0.694169 0.696997 0.699809 0.702621 0.705418 0.708215 +0.710997 0.713778 0.716543 0.719309 0.722057 0.724806 0.727538 0.73027 +0.732984 0.735699 0.738396 0.741093 0.743771 0.74645 0.74911 0.75177 +0.754411 0.757052 0.759674 0.762295 0.764897 0.767499 0.770081 0.772663 +0.775224 0.777786 0.780326 0.782867 0.785386 0.787905 0.790402 0.7929 +0.795375 0.79785 0.800303 0.802756 0.805186 0.807616 0.810023 0.812431 +0.814814 0.817197 0.819557 0.821916 0.824252 0.826587 0.828898 0.831209 +0.833494 0.83578 0.838041 0.840301 0.842536 0.844771 0.84698 0.849189 +0.851372 0.853554 0.85571 0.857866 0.859995 0.862124 0.864226 0.866328 +0.868402 0.870476 0.872523 0.874569 0.876587 0.878605 0.880595 0.882584 +0.884545 0.886506 0.888438 0.890369 0.892272 0.894174 0.896047 0.897919 +0.899762 0.901605 0.903417 0.905229 0.907011 0.908793 0.910544 0.912295 +0.914015 0.915736 0.917424 0.919113 0.92077 0.922428 0.924053 0.925678 +0.927272 0.928865 0.930426 0.931987 0.933516 0.935044 0.93654 0.938036 +0.939499 0.940961 0.942391 0.94382 0.945217 0.946613 0.947975 0.949338 +0.950667 0.951995 0.95329 0.954585 0.955845 0.957106 0.958332 0.959558 +0.960749 0.96194 0.963097 0.964254 0.965375 0.966497 0.967584 0.96867 +0.969721 0.970773 0.971788 0.972804 0.973784 0.974765 0.975709 0.976654 +0.977562 0.978471 0.979343 0.980216 0.981052 0.981889 0.982689 0.983489 +0.984252 0.985016 0.985743 0.98647 0.987161 0.987852 0.988505 0.989159 +0.989776 0.990393 0.990973 0.991553 0.992096 0.992639 0.993145 0.993651 +0.99412 0.994589 0.99502 0.995452 0.995846 0.99624 0.996597 0.996954 +0.997273 0.997593 0.997874 0.998156 0.998401 0.998645 0.998852 0.999059 +0.999229 0.999398 0.99953 0.999661 0.999755 0.999849 0.999906 0.999962 +0.999981 1 0.999981 0.999962 0.999906 0.999849 0.999755 0.999661 0.999529 +0.999398 0.999228 0.999059 0.998852 0.998645 0.998401 0.998156 0.997874 +0.997592 0.997273 0.996953 0.996596 0.996239 0.995845 0.995451 0.995019 +0.994588 0.994119 0.99365 0.993144 0.992638 0.992095 0.991552 0.990972 +0.990392 0.989775 0.989158 0.988504 0.987851 0.98716 0.986469 0.985742 +0.985015 0.984251 0.983488 0.982687 0.981887 0.981051 0.980215 0.979342 +0.978469 0.977561 0.976652 0.975708 0.974763 0.973783 0.972803 0.971787 +0.970771 0.96972 0.968669 0.967582 0.966495 0.965374 0.964252 0.963095 +0.961939 0.960747 0.959556 0.95833 0.957104 0.955843 0.954583 0.953288 +0.951993 0.950665 0.949336 0.947973 0.946611 0.945215 0.943818 0.942389 +0.940959 0.939496 0.938034 0.936538 0.935042 0.933514 0.931985 0.930424 +0.928863 0.927269 0.925676 0.924051 0.922425 0.920768 0.919111 0.917422 +0.915733 0.914013 0.912293 0.910542 0.908791 0.907009 0.905227 0.903414 +0.901602 0.899759 0.897917 0.896044 0.894171 0.892269 0.890367 0.888435 +0.886503 0.884542 0.882582 0.880592 0.878602 0.876584 0.874566 0.87252 +0.870473 0.868399 0.866325 0.864223 0.862121 0.859992 0.857863 0.855707 +0.853551 0.851368 0.849186 0.846977 0.844768 0.842533 0.840298 0.838037 +0.835777 0.833491 0.831205 0.828895 0.826584 0.824249 0.821913 0.819554 +0.817194 0.814811 0.812427 0.81002 0.807613 0.805183 0.802753 0.8003 +0.797847 0.795372 0.792896 0.790399 0.787901 0.785382 0.782863 0.780323 +0.777782 0.775221 0.77266 0.770078 0.767496 0.764894 0.762292 0.75967 +0.757048 0.754407 0.751766 0.749106 0.746446 0.743767 0.741089 0.738392 +0.735695 0.732981 0.730266 0.727534 0.724802 0.722054 0.719305 0.71654 +0.713774 0.710993 0.708211 0.705414 0.702617 0.699805 0.696993 0.694165 +0.691338 0.688497 0.685655 0.6828 0.679944 0.677075 0.674206 0.671324 +0.668441 0.665546 0.662652 0.659744 0.656837 0.653918 0.650999 0.648069 +0.645139 0.642197 0.639256 0.636304 0.633353 0.630391 0.627429 0.624458 +0.621486 0.618506 0.615525 0.612536 0.609547 0.606549 0.603552 0.600546 +0.597541 0.594529 0.591516 0.588496 0.585477 0.582451 0.579425 0.576393 +0.573361 0.570324 0.567286 0.564244 0.561201 0.558154 0.555107 0.552056 +0.549004 0.545949 0.542894 0.539836 0.536778 0.533717 0.530656 0.527593 +0.52453 0.521464 0.518399 0.515333 0.512266 0.509199 0.506131 0.503064 +0.499996 0.496928 0.49386 0.490792 0.487725 0.484659 0.481592 0.478527 +0.475462 0.472399 0.469335 0.466274 0.463213 0.460155 0.457097 0.454042 +0.450987 0.447936 0.444884 0.441837 0.43879 0.435748 0.432705 0.429668 +0.42663 0.423598 0.420566 0.417541 0.414515 0.411495 0.408476 0.405463 +0.40245 0.399445 0.39644 0.393442 0.390445 0.387456 0.384466 0.381486 +0.378505 0.375534 0.372563 0.369601 0.366639 0.363687 0.360736 0.357794 +0.354853 0.351923 0.348993 0.346074 0.343155 0.340247 0.33734 0.334445 +0.331551 0.328668 0.325786 0.322917 0.320048 0.317192 0.314337 0.311495 +0.308654 0.305827 0.302999 0.300187 0.297375 0.294578 0.291781 0.288999 +0.286218 0.283453 0.280687 0.277939 0.27519 0.272458 0.269726 0.267012 +0.264297 0.2616 0.258904 0.256225 0.253547 0.250886 0.248226 0.245585 +0.242944 0.240323 0.237701 0.235099 0.232497 0.229915 0.227333 0.224772 +0.222211 0.21967 0.21713 0.214611 0.212092 0.209594 0.207097 0.204622 +0.202146 0.199693 0.19724 0.19481 0.19238 0.189973 0.187566 0.185183 +0.182799 0.18044 0.17808 0.175745 0.17341 0.171099 0.168788 0.166502 +0.164217 0.161956 0.159696 0.157461 0.155226 0.153017 0.150808 0.148625 +0.146443 0.144287 0.142131 0.140002 0.137873 0.135771 0.133669 0.131595 +0.129521 0.127474 0.125428 0.12341 0.121392 0.119402 0.117413 0.115452 +0.113491 0.11156 0.109628 0.107726 0.105823 0.103951 0.102078 0.100236 +0.0983929 0.0965805 0.0947681 0.0929862 0.0912043 0.0894533 0.0877022 +0.0859821 0.084262 0.0825733 0.0808845 0.0792274 0.0775702 0.0759448 +0.0743194 0.0727261 0.0711327 0.0695717 0.0680107 0.0664822 0.0649537 +0.0634579 0.0619622 0.0604994 0.0590366 0.0576071 0.0561775 0.0547814 +0.0533852 0.0520227 0.0506602 0.0493315 0.0480028 0.0467082 0.0454136 +0.0441532 0.0428927 0.0416667 0.0404407 0.0392494 0.038058 0.0369014 +0.0357448 0.0346231 0.0335014 0.0324149 0.0313284 0.0302772 0.0292259 +0.0282102 0.0271944 0.0262142 0.025234 0.0242896 0.0233451 0.0224366 +0.0215281 0.0206555 0.019783 0.0189467 0.0181103 0.0173103 0.0165102 +0.0157465 0.0149829 0.0142557 0.0135286 0.0128381 0.0121476 0.0114938 +0.01084 0.0102231 0.00960612 0.00902611 0.0084461 0.0079031 0.0073601 +0.00685418 0.00634828 0.00587955; +#A 1000 0.00541082 0.00497931 0.00454783 0.00415364 0.00375944 0.00340262 +0.0030458 0.00272641 0.00240701 0.00212508 0.00184312 0.00159872 0.00135428 +0.00114739 0.000940531 0.000771224 0.000601947 0.000470251 0.000338554 +0.000244498 0.000150412 9.39965e-05 3.75509e-05 1.87755e-05; +#X coords 0 1 1023 0 200 120 1; +#X restore 257 137 graph; +#X msg 174 141 0; +#X obj 59 195 osc~; +#X obj 59 147 samplerate~; +#X obj 59 218 *~ -0.5; +#X obj 59 241 +~ 0.5; +#X obj 51 266 tabwrite~ \$0-hann; +#X obj 51 124 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 330 104 Hann window; +#X text 49 99 recalculate Hann; +#X text 84 114 window table; +#X text 107 193 comment; +#X obj 59 171 / 512; +#X obj 558 145 *~; +#X obj 557 80 inlet~; +#X obj 558 199 rfft~; +#X obj 579 121 tabreceive~ \$0-hann; +#X obj 557 287 *~; +#X obj 599 287 *~; +#X obj 558 337 sqrt~; +#X text 768 112 tabreceive~ outputs array contents \,; +#X text 768 130 constantly \, every block. Here it's; +#X text 766 150 used to get the Hann window to; +#X text 768 168 multiply by the input.; +#X text 619 80 The inlet~ automatically re-blocks to the new block +size.; +#X obj 558 313 +~; +#X text 637 289 Take the magnitude by squaring real and imaginary part +\, adding and taking square root.; +#X text 625 196 forward real FFT. Like "fft~" \, but only one inlet +(for the real part) and only the first half of the output signals are +used. (The others are determined by symmetry: they're complex conjugates +of the first half \, in reverse order.) This takes 1/2 the CPU time +of "fft".; +#X obj 55 382 table phase 513; +#X obj 54 409 table magnitude 513; +#X obj 575 465 vsl 15 128 0 20000 0 0 empty empty empty 0 -9 0 10 -262144 +-1 -1 0 1; +#X text 603 459 20Khz; +#X text 601 584 0Hz; +#X text 646 500 compute the center of gravity of the magnitude spectrum +; +#X obj 559 396 rj_centroid~; +#X connect 2 0 3 1; +#X connect 3 0 5 0; +#X connect 4 0 13 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 8 0 4 0; +#X connect 8 0 2 0; +#X connect 8 0 7 0; +#X connect 13 0 3 0; +#X connect 14 0 16 0; +#X connect 15 0 14 0; +#X connect 16 0 18 0; +#X connect 16 0 18 1; +#X connect 16 1 19 0; +#X connect 16 1 19 1; +#X connect 17 0 14 1; +#X connect 18 0 26 0; +#X connect 19 0 26 1; +#X connect 20 0 35 0; +#X connect 26 0 20 0; +#X connect 35 0 31 0; +#X restore 190 114 pd myFFTanalysis; +#X connect 0 0 1 0; diff --git a/l2ork_addons/rjlib/src/rj_centroid~.c b/l2ork_addons/rjlib/src/rj_centroid~.c new file mode 100644 index 000000000..893a6aee5 --- /dev/null +++ b/l2ork_addons/rjlib/src/rj_centroid~.c @@ -0,0 +1,98 @@ +#include "m_pd.h" +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +// size of the magnitude spectrum to analyze +#define WINSIZE 513 + +/* ------------------------ rj_centroid~ for pd----------------------------- */ + +/* tilde object to take absolute value. */ + +static t_class *rj_centroid_class; + +typedef struct _rj_centroid +{ + t_object x_obj; /* obligatory header */ + t_float x_f; + t_outlet* rj_centroid; /* m: place for outlet */ + +} t_rj_centroid; + + /* this is the actual performance routine which acts on the samples. + It's called with a single pointer "w" which is our location in the + DSP call list. We return a new "w" which will point to the next item + after us. Meanwhile, w[0] is just a pointer to dsp-perform itself + (no use to us), w[1] and w[2] are the input and output vector locations, + and w[3] is the number of points to calculate. */ + +static t_int *rj_centroid_perform(t_int *w) +{ + + t_rj_centroid *x = (t_rj_centroid *)(w[1]); + t_float *in = (t_float *)(w[2]); + + //int size=(int)(w[3]); + int size=WINSIZE; + + int j; + float sum = 0., sc = 0.; + for ( j = 0; j < size; j++ ) { + sum += in[j]; + } + if (sum == 0.) { + outlet_float(x->rj_centroid,0.f); + } + else { + for ( j = 0; j < size; j++ ) { + sc += (float)j * in[j]; + } + + outlet_float(x->rj_centroid, sc / sum * sys_getsr() / (float)(size)); + } + + return (w+4); +} + + /* called to start DSP. Here we call Pd back to add our perform + routine to a linear callback list which Pd in turn calls to grind + out the samples. */ +static void rj_centroid_dsp(t_rj_centroid *x, t_signal **sp) +{ + dsp_add(rj_centroid_perform, 3, x, sp[0]->s_vec, sp[0]->s_n); +} + +static void *rj_centroid_new(void) +{ + t_rj_centroid *x = (t_rj_centroid *)pd_new(rj_centroid_class); + x->rj_centroid=outlet_new(&x->x_obj, &s_float); + x->x_f = 0; + + return (x); +} + +static void rj_centroid_free(t_rj_centroid *x) { + +} + + + /* this routine, which must have exactly this name (with the "~" replaced + by "_tilde) is called when the code is first loaded, and tells Pd how + to build the "class". */ +void rj_centroid_tilde_setup(void) +{ + rj_centroid_class = class_new(gensym("rj_centroid~"), (t_newmethod)rj_centroid_new, (t_method)rj_centroid_free, + sizeof(t_rj_centroid), 0, A_DEFFLOAT, 0); + + /* this is magic to declare that the leftmost, "main" inlet + takes signals; other signal inlets are done differently... */ + + CLASS_MAINSIGNALIN(rj_centroid_class, t_rj_centroid, x_f); + /* here we tell Pd about the "dsp" method, which is called back + when DSP is turned on. */ + + class_addmethod(rj_centroid_class, (t_method)rj_centroid_dsp, gensym("dsp"), 0); + post("rj_centroid version 0.1"); +} diff --git a/l2ork_addons/rjlib/src/rj_senergy~-help.pd b/l2ork_addons/rjlib/src/rj_senergy~-help.pd new file mode 100644 index 000000000..b9a330d73 --- /dev/null +++ b/l2ork_addons/rjlib/src/rj_senergy~-help.pd @@ -0,0 +1,207 @@ +#N canvas 354 121 450 300 10; +#X obj 184 52 adc~; +#N canvas 90 124 1350 776 myFFTanalysis 1; +#X obj 51 58 block~ 1024 2; +#N canvas 0 22 450 300 (subpatch) 0; +#X array \$0-hann 1024 float 1; +#A 0 0 1.88351e-05 3.76403e-05 9.41157e-05 0.000150591 0.000244677 +0.000338793 0.000470519 0.000602275 0.000771582 0.000940919 0.00114784 +0.00135475 0.00159922 0.00184369 0.00212565 0.00240761 0.00272706 0.00304651 +0.00340337 0.00376022 0.00415444 0.00454867 0.00498021 0.00541171 0.00588048 +0.00634927 0.00685519 0.00736114 0.00790417 0.00844723 0.0090273 0.00960734 +0.0102243 0.0108413 0.0114951 0.0121489 0.0128394 0.01353 0.0142572 +0.0149843 0.015748 0.0165117 0.0173118 0.0181119 0.0189483 0.0197847 +0.0206572 0.0215298 0.0224383 0.0233469 0.0242914 0.0252359 0.0262161 +0.0271963 0.0282121 0.0292279 0.0302792 0.0313304 0.032417 0.0335035 +0.0346252 0.0357469 0.0369035 0.0380602 0.0392516 0.040443 0.041669 +0.042895 0.0441555 0.0454159 0.0467106 0.0480052 0.0493339 0.0506626 +0.0520252 0.0533877 0.0547839 0.05618 0.0576096 0.0590392 0.060502 +0.0619648 0.0634606 0.0649563 0.0664849 0.0680134 0.0695744 0.0711355 +0.0727288 0.0743222 0.0759476 0.077573 0.0792302 0.0808874 0.0825762 +0.084265 0.085985 0.0877051 0.0894562 0.0912073 0.0929892 0.0947711 +0.0965835 0.0983959 0.100239 0.102081 0.103954 0.105826 0.107729 0.109631 +0.111563 0.113494 0.115455 0.117416 0.119406 0.121395 0.123413 0.125431 +0.127478 0.129524 0.131598 0.133672 0.135774 0.137876 0.140005 0.142134 +0.14429 0.146446 0.148629 0.150811 0.15302 0.155229 0.157464 0.159699 +0.161959 0.16422 0.166506 0.168792 0.171102 0.173413 0.175748 0.178084 +0.180443 0.182803 0.185186 0.18757 0.189977 0.192384 0.194814 0.197244 +0.199697 0.20215 0.204625 0.2071 0.209598 0.212095 0.214614 0.217133 +0.219674 0.222214 0.224775 0.227337 0.229919 0.2325 0.235102 0.237704 +0.240326 0.242948 0.245589 0.24823 0.25089 0.25355 0.256229 0.258907 +0.261604 0.264301 0.267015 0.26973 0.272462 0.275194 0.277942 0.280691 +0.283457 0.286222 0.289003 0.291785 0.294582 0.297379 0.300191 0.303003 +0.305831 0.308658 0.311499 0.314341 0.317196 0.320052 0.322921 0.32579 +0.328672 0.331555 0.334449 0.337344 0.340252 0.343159 0.346078 0.348997 +0.351927 0.354857 0.357798 0.36074 0.363691 0.366643 0.369605 0.372567 +0.375538 0.37851 0.38149 0.384471 0.38746 0.390449 0.393447 0.396444 +0.399449 0.402455 0.405467 0.40848 0.411499 0.414519 0.417545 0.420571 +0.423603 0.426635 0.429672 0.432709 0.435752 0.438794 0.441842 0.444889 +0.44794 0.450991 0.454046 0.457101 0.460159 0.463218 0.466279 0.46934 +0.472403 0.475466 0.478531 0.481596 0.484663 0.487729 0.490797 0.493864 +0.496932 0.5 0.503068 0.506136 0.509203 0.512271 0.515337 0.518404 +0.521469 0.524534 0.527597 0.53066 0.533721 0.536782 0.539841 0.542899 +0.545954 0.549009 0.55206 0.555111 0.558158 0.561205 0.564248 0.56729 +0.570328 0.573365 0.576397 0.579429 0.582455 0.585481 0.588501 0.59152 +0.594533 0.597545 0.600551 0.603556 0.606553 0.609551 0.61254 0.615529 +0.61851 0.62149 0.624462 0.627433 0.630395 0.633357 0.636308 0.63926 +0.642201 0.645143 0.648073 0.651003 0.653922 0.656841 0.659748 0.662656 +0.66555 0.668445 0.671328 0.67421 0.677079 0.679948 0.682804 0.685659 +0.688501 0.691342 0.694169 0.696997 0.699809 0.702621 0.705418 0.708215 +0.710997 0.713778 0.716543 0.719309 0.722057 0.724806 0.727538 0.73027 +0.732984 0.735699 0.738396 0.741093 0.743771 0.74645 0.74911 0.75177 +0.754411 0.757052 0.759674 0.762295 0.764897 0.767499 0.770081 0.772663 +0.775224 0.777786 0.780326 0.782867 0.785386 0.787905 0.790402 0.7929 +0.795375 0.79785 0.800303 0.802756 0.805186 0.807616 0.810023 0.812431 +0.814814 0.817197 0.819557 0.821916 0.824252 0.826587 0.828898 0.831209 +0.833494 0.83578 0.838041 0.840301 0.842536 0.844771 0.84698 0.849189 +0.851372 0.853554 0.85571 0.857866 0.859995 0.862124 0.864226 0.866328 +0.868402 0.870476 0.872523 0.874569 0.876587 0.878605 0.880595 0.882584 +0.884545 0.886506 0.888438 0.890369 0.892272 0.894174 0.896047 0.897919 +0.899762 0.901605 0.903417 0.905229 0.907011 0.908793 0.910544 0.912295 +0.914015 0.915736 0.917424 0.919113 0.92077 0.922428 0.924053 0.925678 +0.927272 0.928865 0.930426 0.931987 0.933516 0.935044 0.93654 0.938036 +0.939499 0.940961 0.942391 0.94382 0.945217 0.946613 0.947975 0.949338 +0.950667 0.951995 0.95329 0.954585 0.955845 0.957106 0.958332 0.959558 +0.960749 0.96194 0.963097 0.964254 0.965375 0.966497 0.967584 0.96867 +0.969721 0.970773 0.971788 0.972804 0.973784 0.974765 0.975709 0.976654 +0.977562 0.978471 0.979343 0.980216 0.981052 0.981889 0.982689 0.983489 +0.984252 0.985016 0.985743 0.98647 0.987161 0.987852 0.988505 0.989159 +0.989776 0.990393 0.990973 0.991553 0.992096 0.992639 0.993145 0.993651 +0.99412 0.994589 0.99502 0.995452 0.995846 0.99624 0.996597 0.996954 +0.997273 0.997593 0.997874 0.998156 0.998401 0.998645 0.998852 0.999059 +0.999229 0.999398 0.99953 0.999661 0.999755 0.999849 0.999906 0.999962 +0.999981 1 0.999981 0.999962 0.999906 0.999849 0.999755 0.999661 0.999529 +0.999398 0.999228 0.999059 0.998852 0.998645 0.998401 0.998156 0.997874 +0.997592 0.997273 0.996953 0.996596 0.996239 0.995845 0.995451 0.995019 +0.994588 0.994119 0.99365 0.993144 0.992638 0.992095 0.991552 0.990972 +0.990392 0.989775 0.989158 0.988504 0.987851 0.98716 0.986469 0.985742 +0.985015 0.984251 0.983488 0.982687 0.981887 0.981051 0.980215 0.979342 +0.978469 0.977561 0.976652 0.975708 0.974763 0.973783 0.972803 0.971787 +0.970771 0.96972 0.968669 0.967582 0.966495 0.965374 0.964252 0.963095 +0.961939 0.960747 0.959556 0.95833 0.957104 0.955843 0.954583 0.953288 +0.951993 0.950665 0.949336 0.947973 0.946611 0.945215 0.943818 0.942389 +0.940959 0.939496 0.938034 0.936538 0.935042 0.933514 0.931985 0.930424 +0.928863 0.927269 0.925676 0.924051 0.922425 0.920768 0.919111 0.917422 +0.915733 0.914013 0.912293 0.910542 0.908791 0.907009 0.905227 0.903414 +0.901602 0.899759 0.897917 0.896044 0.894171 0.892269 0.890367 0.888435 +0.886503 0.884542 0.882582 0.880592 0.878602 0.876584 0.874566 0.87252 +0.870473 0.868399 0.866325 0.864223 0.862121 0.859992 0.857863 0.855707 +0.853551 0.851368 0.849186 0.846977 0.844768 0.842533 0.840298 0.838037 +0.835777 0.833491 0.831205 0.828895 0.826584 0.824249 0.821913 0.819554 +0.817194 0.814811 0.812427 0.81002 0.807613 0.805183 0.802753 0.8003 +0.797847 0.795372 0.792896 0.790399 0.787901 0.785382 0.782863 0.780323 +0.777782 0.775221 0.77266 0.770078 0.767496 0.764894 0.762292 0.75967 +0.757048 0.754407 0.751766 0.749106 0.746446 0.743767 0.741089 0.738392 +0.735695 0.732981 0.730266 0.727534 0.724802 0.722054 0.719305 0.71654 +0.713774 0.710993 0.708211 0.705414 0.702617 0.699805 0.696993 0.694165 +0.691338 0.688497 0.685655 0.6828 0.679944 0.677075 0.674206 0.671324 +0.668441 0.665546 0.662652 0.659744 0.656837 0.653918 0.650999 0.648069 +0.645139 0.642197 0.639256 0.636304 0.633353 0.630391 0.627429 0.624458 +0.621486 0.618506 0.615525 0.612536 0.609547 0.606549 0.603552 0.600546 +0.597541 0.594529 0.591516 0.588496 0.585477 0.582451 0.579425 0.576393 +0.573361 0.570324 0.567286 0.564244 0.561201 0.558154 0.555107 0.552056 +0.549004 0.545949 0.542894 0.539836 0.536778 0.533717 0.530656 0.527593 +0.52453 0.521464 0.518399 0.515333 0.512266 0.509199 0.506131 0.503064 +0.499996 0.496928 0.49386 0.490792 0.487725 0.484659 0.481592 0.478527 +0.475462 0.472399 0.469335 0.466274 0.463213 0.460155 0.457097 0.454042 +0.450987 0.447936 0.444884 0.441837 0.43879 0.435748 0.432705 0.429668 +0.42663 0.423598 0.420566 0.417541 0.414515 0.411495 0.408476 0.405463 +0.40245 0.399445 0.39644 0.393442 0.390445 0.387456 0.384466 0.381486 +0.378505 0.375534 0.372563 0.369601 0.366639 0.363687 0.360736 0.357794 +0.354853 0.351923 0.348993 0.346074 0.343155 0.340247 0.33734 0.334445 +0.331551 0.328668 0.325786 0.322917 0.320048 0.317192 0.314337 0.311495 +0.308654 0.305827 0.302999 0.300187 0.297375 0.294578 0.291781 0.288999 +0.286218 0.283453 0.280687 0.277939 0.27519 0.272458 0.269726 0.267012 +0.264297 0.2616 0.258904 0.256225 0.253547 0.250886 0.248226 0.245585 +0.242944 0.240323 0.237701 0.235099 0.232497 0.229915 0.227333 0.224772 +0.222211 0.21967 0.21713 0.214611 0.212092 0.209594 0.207097 0.204622 +0.202146 0.199693 0.19724 0.19481 0.19238 0.189973 0.187566 0.185183 +0.182799 0.18044 0.17808 0.175745 0.17341 0.171099 0.168788 0.166502 +0.164217 0.161956 0.159696 0.157461 0.155226 0.153017 0.150808 0.148625 +0.146443 0.144287 0.142131 0.140002 0.137873 0.135771 0.133669 0.131595 +0.129521 0.127474 0.125428 0.12341 0.121392 0.119402 0.117413 0.115452 +0.113491 0.11156 0.109628 0.107726 0.105823 0.103951 0.102078 0.100236 +0.0983929 0.0965805 0.0947681 0.0929862 0.0912043 0.0894533 0.0877022 +0.0859821 0.084262 0.0825733 0.0808845 0.0792274 0.0775702 0.0759448 +0.0743194 0.0727261 0.0711327 0.0695717 0.0680107 0.0664822 0.0649537 +0.0634579 0.0619622 0.0604994 0.0590366 0.0576071 0.0561775 0.0547814 +0.0533852 0.0520227 0.0506602 0.0493315 0.0480028 0.0467082 0.0454136 +0.0441532 0.0428927 0.0416667 0.0404407 0.0392494 0.038058 0.0369014 +0.0357448 0.0346231 0.0335014 0.0324149 0.0313284 0.0302772 0.0292259 +0.0282102 0.0271944 0.0262142 0.025234 0.0242896 0.0233451 0.0224366 +0.0215281 0.0206555 0.019783 0.0189467 0.0181103 0.0173103 0.0165102 +0.0157465 0.0149829 0.0142557 0.0135286 0.0128381 0.0121476 0.0114938 +0.01084 0.0102231 0.00960612 0.00902611 0.0084461 0.0079031 0.0073601 +0.00685418 0.00634828 0.00587955; +#A 1000 0.00541082 0.00497931 0.00454783 0.00415364 0.00375944 0.00340262 +0.0030458 0.00272641 0.00240701 0.00212508 0.00184312 0.00159872 0.00135428 +0.00114739 0.000940531 0.000771224 0.000601947 0.000470251 0.000338554 +0.000244498 0.000150412 9.39965e-05 3.75509e-05 1.87755e-05; +#X coords 0 1 1023 0 200 120 1; +#X restore 257 137 graph; +#X msg 174 141 0; +#X obj 59 195 osc~; +#X obj 59 147 samplerate~; +#X obj 59 218 *~ -0.5; +#X obj 59 241 +~ 0.5; +#X obj 51 266 tabwrite~ \$0-hann; +#X obj 51 124 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 330 104 Hann window; +#X text 49 99 recalculate Hann; +#X text 84 114 window table; +#X text 107 193 comment; +#X obj 59 171 / 512; +#X obj 558 145 *~; +#X obj 557 80 inlet~; +#X obj 558 199 rfft~; +#X obj 579 121 tabreceive~ \$0-hann; +#X obj 557 287 *~; +#X obj 599 287 *~; +#X obj 558 337 sqrt~; +#X text 768 112 tabreceive~ outputs array contents \,; +#X text 768 130 constantly \, every block. Here it's; +#X text 766 150 used to get the Hann window to; +#X text 768 168 multiply by the input.; +#X text 619 80 The inlet~ automatically re-blocks to the new block +size.; +#X obj 558 313 +~; +#X text 637 289 Take the magnitude by squaring real and imaginary part +\, adding and taking square root.; +#X text 625 196 forward real FFT. Like "fft~" \, but only one inlet +(for the real part) and only the first half of the output signals are +used. (The others are determined by symmetry: they're complex conjugates +of the first half \, in reverse order.) This takes 1/2 the CPU time +of "fft".; +#X obj 55 382 table phase 513; +#X obj 54 409 table magnitude 513; +#X obj 575 465 vsl 15 128 0 0.1 0 0 empty empty empty 0 -9 0 10 -262144 +-1 -1 1604 1; +#X text 601 584 0; +#X text 602 459 0.1; +#X obj 559 396 rj_senergy~; +#X text 646 500 compute the overall energy of the magnitude spectrum +; +#X connect 2 0 3 1; +#X connect 3 0 5 0; +#X connect 4 0 13 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 8 0 4 0; +#X connect 8 0 2 0; +#X connect 8 0 7 0; +#X connect 13 0 3 0; +#X connect 14 0 16 0; +#X connect 15 0 14 0; +#X connect 16 0 18 0; +#X connect 16 0 18 1; +#X connect 16 1 19 0; +#X connect 16 1 19 1; +#X connect 17 0 14 1; +#X connect 18 0 26 0; +#X connect 19 0 26 1; +#X connect 20 0 34 0; +#X connect 26 0 20 0; +#X connect 34 0 31 0; +#X restore 190 114 pd myFFTanalysis; +#X connect 0 0 1 0; diff --git a/l2ork_addons/rjlib/src/rj_senergy~.c b/l2ork_addons/rjlib/src/rj_senergy~.c new file mode 100644 index 000000000..2fa99f6b3 --- /dev/null +++ b/l2ork_addons/rjlib/src/rj_senergy~.c @@ -0,0 +1,90 @@ +#include "m_pd.h" +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +// size of the magnitude spectrum to analyze +#define WINSIZE 513 + +/* ------------------------ rj_senergy~ for pd----------------------------- */ + +/* tilde object to take absolute value. */ + +static t_class *rj_senergy_class; + +typedef struct _rj_senergy +{ + t_object x_obj; /* obligatory header */ + t_float x_f; + t_outlet* rj_senergy; /* m: place for outlet */ + +} t_rj_senergy; + + /* this is the actual performance routine which acts on the samples. + It's called with a single pointer "w" which is our location in the + DSP call list. We return a new "w" which will point to the next item + after us. Meanwhile, w[0] is just a pointer to dsp-perform itself + (no use to us), w[1] and w[2] are the input and output vector locations, + and w[3] is the number of points to calculate. */ + +static t_int *rj_senergy_perform(t_int *w) +{ + + t_rj_senergy *x = (t_rj_senergy *)(w[1]); + t_float *in = (t_float *)(w[2]); + + //int size=(int)(w[3]); + int size=WINSIZE; + + int j; + float sum = 0.f; + for ( j = 0; j < size; j++ ) { + sum += in[j]*in[j]; + } + + outlet_float(x->rj_senergy, sum / (float)(size)); + + + return (w+4); +} + + /* called to start DSP. Here we call Pd back to add our perform + routine to a linear callback list which Pd in turn calls to grind + out the samples. */ +static void rj_senergy_dsp(t_rj_senergy *x, t_signal **sp) +{ + dsp_add(rj_senergy_perform, 3, x, sp[0]->s_vec, sp[0]->s_n); +} + +static void *rj_senergy_new(void) +{ + t_rj_senergy *x = (t_rj_senergy *)pd_new(rj_senergy_class); + x->rj_senergy=outlet_new(&x->x_obj, &s_float); + x->x_f = 0; + + return (x); +} + +static void rj_senergy_free(t_rj_senergy *x) { + +} + + /* this routine, which must have exactly this name (with the "~" replaced + by "_tilde) is called when the code is first loaded, and tells Pd how + to build the "class". */ +void rj_senergy_tilde_setup(void) +{ + rj_senergy_class = class_new(gensym("rj_senergy~"), (t_newmethod)rj_senergy_new, (t_method)rj_senergy_free, + sizeof(t_rj_senergy), 0, A_DEFFLOAT, 0); + + /* this is magic to declare that the leftmost, "main" inlet + takes signals; other signal inlets are done differently... */ + + CLASS_MAINSIGNALIN(rj_senergy_class, t_rj_senergy, x_f); + /* here we tell Pd about the "dsp" method, which is called back + when DSP is turned on. */ + + class_addmethod(rj_senergy_class, (t_method)rj_senergy_dsp, gensym("dsp"), 0); + post("rj_senergy version 0.1"); +} diff --git a/l2ork_addons/rjlib/src/rj_zcr~-help.pd b/l2ork_addons/rjlib/src/rj_zcr~-help.pd new file mode 100644 index 000000000..71456e870 --- /dev/null +++ b/l2ork_addons/rjlib/src/rj_zcr~-help.pd @@ -0,0 +1,9 @@ +#N canvas 0 22 602 347 10; +#X obj 231 92 adc~; +#X obj 211 199 hsl 128 15 0 0.5 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 670 1; +#X text 282 147 zero-crossing rate: a cheap analog to the spectral +centroid in temporal domain; +#X obj 231 139 rj_zcr~; +#X connect 0 0 3 0; +#X connect 3 0 1 0; diff --git a/l2ork_addons/rjlib/src/rj_zcr~.c b/l2ork_addons/rjlib/src/rj_zcr~.c new file mode 100644 index 000000000..d12d332e8 --- /dev/null +++ b/l2ork_addons/rjlib/src/rj_zcr~.c @@ -0,0 +1,109 @@ +#include <stdlib.h> +#include "m_pd.h" +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#define WINDOWSIZE 1024 + +/* ------------------------ rj_zcr~ for pd----------------------------- */ + +/* tilde object to take absolute value. */ + +static t_class *rj_zcr_class; + +typedef struct _rj_zcr +{ + t_object x_obj; /* obligatory header */ + t_float x_f; + t_outlet* rj_zcr; /* m: place for outlet */ + + float * buffer; + int buffercnt; + +} t_rj_zcr; + + /* this is the actual performance routine which acts on the samples. + It's called with a single pointer "w" which is our location in the + DSP call list. We return a new "w" which will point to the next item + after us. Meanwhile, w[0] is just a pointer to dsp-perform itself + (no use to us), w[1] and w[2] are the input and output vector locations, + and w[3] is the number of points to calculate. */ + +static t_int *rj_zcr_perform(t_int *w) +{ + + t_rj_zcr *x = (t_rj_zcr *)(w[1]); + + t_float *in = (t_float *)(w[2]); + + t_float rate=1.f; + + int size=(int)(w[3]); + + int ibuf; + for (ibuf=0; ibuf<size; ibuf++) { + x->buffer[x->buffercnt++]=in[ibuf]; + if(x->buffercnt==WINDOWSIZE-1) { + + int ncross=0; + int i; + for (i=0; i<WINDOWSIZE-1; i++) { + if(in[i]*in[i+1]<0) ncross++; + } + rate=(float) ncross/(float) WINDOWSIZE; + + // copy rate + outlet_float(x->rj_zcr, rate); + + x->buffercnt=0; + } + } + + return (w+4); +} + + /* called to start DSP. Here we call Pd back to add our perform + routine to a linear callback list which Pd in turn calls to grind + out the samples. */ +static void rj_zcr_dsp(t_rj_zcr *x, t_signal **sp) +{ + dsp_add(rj_zcr_perform, 3, x, sp[0]->s_vec, sp[0]->s_n); +} + +static void *rj_zcr_new(void) +{ + t_rj_zcr *x = (t_rj_zcr *)pd_new(rj_zcr_class); + x->rj_zcr=outlet_new(&x->x_obj, &s_float); + x->x_f = 0; + + x->buffer=malloc(WINDOWSIZE*sizeof(float)); + x->buffercnt=0; + + return (x); +} + +static void rj_zcr_free(t_rj_zcr *x) { + free(x->buffer); +} + + + /* this routine, which must have exactly this name (with the "~" replaced + by "_tilde) is called when the code is first loaded, and tells Pd how + to build the "class". */ +void rj_zcr_tilde_setup(void) +{ + rj_zcr_class = class_new(gensym("rj_zcr~"), (t_newmethod)rj_zcr_new, (t_method)rj_zcr_free, + sizeof(t_rj_zcr), 0, A_DEFFLOAT, 0); + + /* this is magic to declare that the leftmost, "main" inlet + takes signals; other signal inlets are done differently... */ + + CLASS_MAINSIGNALIN(rj_zcr_class, t_rj_zcr, x_f); + /* here we tell Pd about the "dsp" method, which is called back + when DSP is turned on. */ + + class_addmethod(rj_zcr_class, (t_method)rj_zcr_dsp, gensym("dsp"), 0); + post("rj_zcr version 0.1"); +} diff --git a/l2ork_addons/rjlib/sssad.pd b/l2ork_addons/rjlib/sssad.pd new file mode 100644 index 000000000..0fad7e9d8 --- /dev/null +++ b/l2ork_addons/rjlib/sssad.pd @@ -0,0 +1,257 @@ +#N canvas 144 48 1039 564 10; +#X obj 159 26 inlet; +#X obj 233 55 list prepend \$1; +#X obj 233 160 list trim; +#X obj 233 25 inlet; +#X obj 22 308 b; +#X obj 159 53 b; +#X obj 233 223 route \$1; +#X obj 543 358 b; +#X obj 543 250 spigot; +#X obj 669 72 loadbang; +#X obj 669 250 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 669 194 select 0; +#X obj 701 141 + 1; +#X obj 669 120 t a a; +#X obj 669 216 f 1; +#X obj 226 476 outlet; +#X obj 159 450 route bang; +#X text 243 449 filter out empty lists; +#X obj 610 474 list prepend persist \$1; +#X obj 159 421 list append; +#X text 231 110 on SSSAD we eavesdrop the communication; +#X text 692 249 <- only the first instance responds to "save"; +#X text 165 540 2007/2008 fbar; +#X text 829 95 Enhancement by Enrique Erne; +#X obj 543 425 list append; +#X obj 543 448 route bang; +#X text 627 447 filter out empty lists here \, too.; +#X obj 22 226 route set setonly; +#X obj 80 273 route \$1; +#X obj 80 251 list trim; +#X obj 608 324 route \$1; +#X obj 608 302 list trim; +#X obj 543 277 route save saveonly; +#X obj 610 498 list trim; +#N canvas 513 284 322 286 s-SSSAD 0; +#X obj 63 38 inlet; +#X obj 63 176 s SSSAD; +#X obj 123 176 s \$2-SSSAD; +#X obj 123 39 loadbang; +#N canvas 0 0 450 300 demux2 0; +#X obj 114 91 == 0; +#X obj 190 115 spigot; +#X obj 61 43 inlet; +#X obj 229 46 inlet; +#X obj 61 113 spigot 1; +#X obj 61 156 outlet; +#X obj 190 157 outlet; +#X connect 0 0 4 1; +#X connect 1 0 6 0; +#X connect 2 0 4 0; +#X connect 2 0 1 0; +#X connect 3 0 0 0; +#X connect 3 0 1 1; +#X connect 4 0 5 0; +#X restore 63 137 pd demux2; +#X obj 123 81 select 0; +#X msg 123 103 0; +#X msg 176 102 1; +#X obj 123 59 list append \$2; +#X obj 123 39 loadbang; +#X obj 123 81 select 0; +#X msg 123 103 0; +#X msg 176 102 1; +#X obj 123 59 list append \$2; +#X connect 0 0 4 0; +#X connect 3 0 8 0; +#X connect 4 0 1 0; +#X connect 4 1 2 0; +#X connect 5 0 6 0; +#X connect 5 1 7 0; +#X connect 6 0 4 1; +#X connect 7 0 4 1; +#X connect 8 0 5 0; +#X connect 9 0 13 0; +#X connect 10 0 11 0; +#X connect 10 1 12 0; +#X connect 13 0 10 0; +#X restore 233 84 pd s-SSSAD; +#N canvas 539 183 330 246 r-SSSAD 0; +#N canvas 0 0 450 300 mux2 0; +#X obj 114 121 == 0; +#X obj 190 145 spigot; +#X obj 61 43 inlet; +#X obj 229 66 inlet; +#X obj 61 143 spigot 1; +#X obj 61 186 outlet; +#X obj 190 45 inlet; +#X connect 0 0 4 1; +#X connect 1 0 5 0; +#X connect 2 0 4 0; +#X connect 3 0 0 0; +#X connect 3 0 1 1; +#X connect 4 0 5 0; +#X connect 6 0 1 0; +#X restore 63 167 pd mux2; +#X obj 63 16 r SSSAD; +#X obj 86 41 r \$2-SSSAD; +#X obj 63 201 outlet; +#X obj 109 74 loadbang; +#X obj 109 116 select 0; +#X msg 109 138 0; +#X msg 162 137 1; +#X obj 109 94 list append \$2; +#X connect 0 0 3 0; +#X connect 1 0 0 0; +#X connect 2 0 0 1; +#X connect 4 0 8 0; +#X connect 5 0 6 0; +#X connect 5 1 7 0; +#X connect 6 0 0 2; +#X connect 7 0 0 2; +#X connect 8 0 5 0; +#X restore 233 136 pd r-SSSAD; +#N canvas 539 183 330 246 r-SSSAD_ADMIN 0; +#N canvas 0 0 450 300 mux2 0; +#X obj 114 121 == 0; +#X obj 190 145 spigot; +#X obj 61 43 inlet; +#X obj 229 66 inlet; +#X obj 61 143 spigot 1; +#X obj 61 186 outlet; +#X obj 190 45 inlet; +#X connect 0 0 4 1; +#X connect 1 0 5 0; +#X connect 2 0 4 0; +#X connect 3 0 0 0; +#X connect 3 0 1 1; +#X connect 4 0 5 0; +#X connect 6 0 1 0; +#X restore 63 177 pd mux2; +#X obj 63 211 outlet; +#X obj 63 16 r SSSAD_ADMIN; +#X obj 86 41 r \$2-SSSAD_ADMIN; +#X obj 109 75 loadbang; +#X obj 109 117 select 0; +#X msg 109 139 0; +#X msg 162 138 1; +#X obj 109 95 list append \$2; +#X connect 0 0 1 0; +#X connect 2 0 0 0; +#X connect 3 0 0 1; +#X connect 4 0 8 0; +#X connect 5 0 6 0; +#X connect 5 1 7 0; +#X connect 6 0 0 2; +#X connect 7 0 0 2; +#X connect 8 0 5 0; +#X restore 543 190 pd r-SSSAD_ADMIN; +#N canvas 513 284 322 286 s-SSSAD_ADMIN 0; +#X obj 63 39 inlet; +#N canvas 0 0 450 300 demux2 0; +#X obj 114 91 == 0; +#X obj 190 115 spigot; +#X obj 61 43 inlet; +#X obj 229 46 inlet; +#X obj 61 113 spigot 1; +#X obj 61 156 outlet; +#X obj 190 157 outlet; +#X connect 0 0 4 1; +#X connect 1 0 6 0; +#X connect 2 0 4 0; +#X connect 2 0 1 0; +#X connect 3 0 0 0; +#X connect 3 0 1 1; +#X connect 4 0 5 0; +#X restore 63 137 pd demux2; +#X obj 63 206 s SSSAD_ADMIN; +#X obj 123 176 s \$2-SSSAD_ADMIN; +#X obj 123 39 loadbang; +#X obj 123 81 select 0; +#X msg 123 103 0; +#X msg 176 102 1; +#X obj 123 59 list append \$2; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 3 0; +#X connect 4 0 8 0; +#X connect 5 0 6 0; +#X connect 5 1 7 0; +#X connect 6 0 1 1; +#X connect 7 0 1 1; +#X connect 8 0 5 0; +#X restore 610 522 pd s-SSSAD_ADMIN; +#X obj 669 95 value \$1.\$2.SSSAD.req; +#X obj 701 164 value \$1.\$2.SSSAD.req; +#N canvas 539 183 330 246 r-SSSAD_ADMIN 0; +#N canvas 0 0 450 300 mux2 0; +#X obj 114 121 == 0; +#X obj 190 145 spigot; +#X obj 61 43 inlet; +#X obj 229 66 inlet; +#X obj 61 143 spigot 1; +#X obj 61 186 outlet; +#X obj 190 45 inlet; +#X connect 0 0 4 1; +#X connect 1 0 5 0; +#X connect 2 0 4 0; +#X connect 3 0 0 0; +#X connect 3 0 1 1; +#X connect 4 0 5 0; +#X connect 6 0 1 0; +#X restore 63 177 pd mux2; +#X obj 63 211 outlet; +#X obj 63 16 r SSSAD_ADMIN; +#X obj 86 41 r \$2-SSSAD_ADMIN; +#X obj 109 75 loadbang; +#X obj 109 117 select 0; +#X msg 109 139 0; +#X msg 162 138 1; +#X obj 109 95 list append \$2; +#X connect 0 0 1 0; +#X connect 2 0 0 0; +#X connect 3 0 0 1; +#X connect 4 0 8 0; +#X connect 5 0 6 0; +#X connect 5 1 7 0; +#X connect 6 0 0 2; +#X connect 7 0 0 2; +#X connect 8 0 5 0; +#X restore 22 187 pd r-SSSAD_ADMIN; +#X connect 0 0 5 0; +#X connect 1 0 34 0; +#X connect 2 0 6 0; +#X connect 3 0 1 0; +#X connect 4 0 19 0; +#X connect 5 0 19 0; +#X connect 6 0 19 1; +#X connect 6 0 24 1; +#X connect 7 0 24 0; +#X connect 8 0 32 0; +#X connect 9 0 38 0; +#X connect 11 0 14 0; +#X connect 12 0 39 0; +#X connect 13 0 11 0; +#X connect 13 1 12 0; +#X connect 14 0 8 1; +#X connect 14 0 10 0; +#X connect 16 1 15 0; +#X connect 18 0 33 0; +#X connect 19 0 16 0; +#X connect 24 0 25 0; +#X connect 25 1 18 0; +#X connect 27 0 4 0; +#X connect 27 1 29 0; +#X connect 28 0 4 0; +#X connect 29 0 28 0; +#X connect 30 0 7 0; +#X connect 31 0 30 0; +#X connect 32 0 7 0; +#X connect 32 1 31 0; +#X connect 33 0 37 0; +#X connect 35 0 2 0; +#X connect 36 0 8 0; +#X connect 38 0 13 0; +#X connect 40 0 27 0; diff --git a/l2ork_addons/rjlib/touch.pd b/l2ork_addons/rjlib/touch.pd new file mode 100644 index 000000000..764037283 --- /dev/null +++ b/l2ork_addons/rjlib/touch.pd @@ -0,0 +1,253 @@ +#N canvas 638 283 203 198 10; +#N canvas 565 184 118 133 tap 0; +#X obj 16 16 r #touch; +#X obj 16 37 route down; +#X obj 16 81 s touch; +#X msg 16 59 tap \$1; +#X connect 0 0 1 0; +#X connect 1 0 3 0; +#X connect 3 0 2 0; +#X restore 17 14 pd tap; +#N canvas 226 304 213 331 speed 0; +#X obj 114 30 r #touch; +#X obj 114 52 list; +#X obj 8 58 t b b; +#X obj 8 36 metro 40; +#N canvas 335 294 251 502 speed_1 0; +#X msg 43 55 \$2 \$1 \$3 \$4; +#X obj 43 76 route 1; +#X obj 43 158 unpack f f; +#X obj 43 194 t f f b; +#X obj 61 220 f; +#X obj 43 243 -; +#X obj 110 194 t f f b; +#X obj 128 220 f; +#X obj 110 243 -; +#X obj 146 145 unpack f f; +#X obj 43 98 route up xy down; +#X obj 43 278 pack f f; +#X obj 43 322 unpack f f; +#X obj 43 345 t f f; +#X obj 43 369 *; +#X obj 110 344 t f f; +#X obj 110 368 *; +#X obj 43 393 +; +#X obj 43 416 pow 0.5; +#N canvas 541 449 106 125 lop 0; +#X obj 6 13 inlet; +#X obj 6 82 outlet; +#X obj 6 35 * 0.3; +#X obj 6 59 +; +#X obj 35 58 * 0.7; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 1 0; +#X connect 4 0 3 1; +#X restore 43 439 pd lop; +#X obj 43 12 inlet; +#X obj 86 12 inlet; +#X obj 43 484 outlet; +#X obj 43 34 list append 0 0 0 0; +#X obj 43 460 change; +#X obj 57 301 s \$0.delta.1; +#X connect 0 0 1 0; +#X connect 1 0 10 0; +#X connect 2 0 3 0; +#X connect 2 1 6 0; +#X connect 3 0 5 0; +#X connect 3 1 4 1; +#X connect 3 2 4 0; +#X connect 4 0 5 1; +#X connect 5 0 11 0; +#X connect 6 0 8 0; +#X connect 6 1 7 1; +#X connect 6 2 7 0; +#X connect 7 0 8 1; +#X connect 8 0 11 1; +#X connect 9 0 4 1; +#X connect 9 1 7 1; +#X connect 10 0 2 0; +#X connect 10 1 2 0; +#X connect 10 2 9 0; +#X connect 11 0 12 0; +#X connect 11 0 25 0; +#X connect 12 0 13 0; +#X connect 12 1 15 0; +#X connect 13 0 14 0; +#X connect 13 1 14 1; +#X connect 14 0 17 0; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 16 0 17 1; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 24 0; +#X connect 20 0 23 0; +#X connect 21 0 23 1; +#X connect 23 0 0 0; +#X connect 24 0 22 0; +#X restore 8 159 pd speed_1; +#N canvas 312 276 236 526 speed_2 0; +#X msg 43 55 \$2 \$1 \$3 \$4; +#X obj 43 76 route 1; +#X obj 43 158 unpack f f; +#X obj 43 194 t f f b; +#X obj 61 220 f; +#X obj 43 243 -; +#X obj 110 194 t f f b; +#X obj 128 220 f; +#X obj 110 243 -; +#X obj 146 145 unpack f f; +#X obj 43 98 route up xy down; +#X obj 43 278 pack f f; +#X obj 43 327 unpack f f; +#X obj 43 350 t f f; +#X obj 43 374 *; +#X obj 110 349 t f f; +#X obj 110 373 *; +#X obj 43 398 +; +#X obj 43 421 pow 0.5; +#N canvas 541 449 106 125 lop 0; +#X obj 6 13 inlet; +#X obj 6 82 outlet; +#X obj 6 35 * 0.3; +#X obj 6 59 +; +#X obj 35 58 * 0.7; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 1 0; +#X connect 4 0 3 1; +#X restore 43 444 pd lop; +#X obj 43 12 inlet; +#X obj 86 12 inlet; +#X obj 43 489 outlet; +#X obj 43 34 list append 0 0 0 0; +#X obj 43 465 change; +#X obj 54 305 s \$0.delta.2; +#X connect 0 0 1 0; +#X connect 1 0 10 0; +#X connect 2 0 3 0; +#X connect 2 1 6 0; +#X connect 3 0 5 0; +#X connect 3 1 4 1; +#X connect 3 2 4 0; +#X connect 4 0 5 1; +#X connect 5 0 11 0; +#X connect 6 0 8 0; +#X connect 6 1 7 1; +#X connect 6 2 7 0; +#X connect 7 0 8 1; +#X connect 8 0 11 1; +#X connect 9 0 4 1; +#X connect 9 1 7 1; +#X connect 10 0 2 0; +#X connect 10 1 2 0; +#X connect 10 2 9 0; +#X connect 11 0 12 0; +#X connect 11 0 25 0; +#X connect 12 0 13 0; +#X connect 12 1 15 0; +#X connect 13 0 14 0; +#X connect 13 1 14 1; +#X connect 14 0 17 0; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 16 0 17 1; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 24 0; +#X connect 20 0 23 0; +#X connect 21 0 23 1; +#X connect 23 0 0 0; +#X connect 24 0 22 0; +#X restore 90 160 pd speed_2; +#X msg 8 191 speed 1 \$1; +#X msg 90 191 speed 2 \$1; +#X obj 8 231 s touch; +#X obj 8 13 loadbang; +#X connect 0 0 1 0; +#X connect 1 0 4 1; +#X connect 1 0 5 1; +#X connect 2 0 4 0; +#X connect 2 1 5 0; +#X connect 3 0 2 0; +#X connect 4 0 6 0; +#X connect 5 0 7 0; +#X connect 6 0 8 0; +#X connect 7 0 8 0; +#X connect 9 0 3 0; +#X restore 16 37 pd speed; +#N canvas 129 241 258 271 updown 0; +#X obj 16 13 r #touch; +#X obj 16 41 list; +#X msg 16 63 \$2 \$1; +#X obj 16 86 route 1 2; +#X obj 16 120 route down up; +#X msg 16 181 updown 1 \$1; +#X msg 16 149 1; +#X msg 60 150 0; +#X obj 116 121 route down up; +#X msg 116 150 1; +#X msg 160 151 0; +#X msg 116 182 updown 2 \$1; +#X obj 16 224 s touch; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 1 8 0; +#X connect 4 0 6 0; +#X connect 4 1 7 0; +#X connect 5 0 12 0; +#X connect 6 0 5 0; +#X connect 7 0 5 0; +#X connect 8 0 9 0; +#X connect 8 1 10 0; +#X connect 9 0 11 0; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X restore 16 59 pd updown; +#N canvas 553 103 273 244 direction 0; +#X obj 144 26 r \$0.delta.2; +#X obj 21 24 r \$0.delta.1; +#X obj 21 68 atan2; +#X msg 21 49 \$2 \$1; +#X obj 21 90 t f f b; +#X obj 43 113 f; +#X obj 21 158 * 0.5; +#X obj 21 138 +; +#X msg 21 182 direction 1 \$1; +#X obj 21 204 s touch; +#X obj 144 70 atan2; +#X msg 144 51 \$2 \$1; +#X obj 144 92 t f f b; +#X obj 166 115 f; +#X obj 144 160 * 0.5; +#X obj 144 140 +; +#X obj 144 206 s touch; +#X msg 144 184 direction 2 \$1; +#X connect 0 0 11 0; +#X connect 1 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 7 0; +#X connect 4 1 5 1; +#X connect 4 2 5 0; +#X connect 5 0 7 1; +#X connect 6 0 8 0; +#X connect 7 0 6 0; +#X connect 8 0 9 0; +#X connect 10 0 12 0; +#X connect 11 0 10 0; +#X connect 12 0 15 0; +#X connect 12 1 13 1; +#X connect 12 2 13 0; +#X connect 13 0 15 1; +#X connect 14 0 17 0; +#X connect 15 0 14 0; +#X connect 17 0 16 0; +#X restore 16 82 pd direction; +#X text 14 173 Author: Roman Haefeli; +#X text 13 154 Version: 2008-07-14; diff --git a/l2ork_addons/tar_em_up.sh b/l2ork_addons/tar_em_up.sh index 4e6f94db6..6920814a9 100755 --- a/l2ork_addons/tar_em_up.sh +++ b/l2ork_addons/tar_em_up.sh @@ -302,6 +302,8 @@ cp ../../pd/src/g_all_guis.h ../../externals/build/include cp -f array* ../../../packages/linux_make/build$inst_dir/lib/pd-l2ork/extra # return to l2ork_addons folder cd ../../ + # copy rjlib into the extra folder + cp -rf rjlib ../../packages/linux_make/build$inst_dir/lib/pd-l2ork/extra # install raspberry pi externals (if applicable) #if [ $rpi -eq 1 ] #then diff --git a/packages/linux_make/default.settings b/packages/linux_make/default.settings index a8389ab54..322a1a8f4 100644 --- a/packages/linux_make/default.settings +++ b/packages/linux_make/default.settings @@ -68,4 +68,5 @@ path30: /usr/lib/pd-l2ork/extra/ext13 path31: /usr/lib/pd-l2ork/extra/ggee path32: /usr/lib/pd-l2ork/extra/ekext path33: /usr/lib/pd-l2ork/extra/flext -npath: 33 +path34: /usr/lib/pd-l2ork/extra/rjlib +npath: 34 -- GitLab