diff -Nru puredata-0.52.1+ds0/configure.ac puredata-0.52.2+ds0/configure.ac --- puredata-0.52.1+ds0/configure.ac 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/configure.ac 2022-03-27 22:30:03.000000000 +0000 @@ -2,7 +2,7 @@ ##### Prelude ##### AC_PREREQ(2.59) -AC_INIT([pd], [0.52.0]) +AC_INIT([pd], [0.52.2]) AC_CONFIG_SRCDIR(src/m_pd.c) AC_CONFIG_AUX_DIR([m4/config]) AC_CONFIG_MACRO_DIR([m4/generated]) @@ -11,7 +11,7 @@ ######################################## -#### ohoh. automake<<1.16 do not like $(top_srcdir) in _SOURCES. +#### ohoh. automake<<1.16 does not like $(top_srcdir) in _SOURCES. AS_IF([test "x${am__api_version}" = "x1.15" ], [ enable_dependency_tracking=no AC_MSG_WARN([legacy automake detected: disabled dependency-tracking! @@ -47,6 +47,11 @@ DEBUG_CFLAGS="-O0" RELEASE_CFLAGS="-ffast-math -funroll-loops -fomit-frame-pointer -O3" +# common flags applied to all pd binaries +PD_CPPFLAGS="" +PD_CFLAGS="" +PD_LDFLAGS="" + ######################################### ##### OS Detection ##### @@ -69,8 +74,8 @@ # a set of search paths are used on macOS in s_inter.c wish="default search paths" - # required for dlopen & weak linking for older OSX version support - CFLAGS="-mmacosx-version-min=10.6 $CFLAGS" + # required for dlopen & weak linking for older macOS version support + macos_version_min=10.6 ],[ platform=iOS locales=no @@ -80,19 +85,19 @@ # homebrew paths AS_IF([test -e /usr/local],[ AM_CPPFLAGS="-I/usr/local/include $INCLUDES" - LDFLAGS="-L/usr/local/lib $LDFLAGS" + PD_LDFLAGS="-L/usr/local/lib $PD_LDFLAGS" ]) # fink paths AS_IF([test -e /sw],[ AM_CPPFLAGS="-I/sw/include $INCLUDES" - LDFLAGS="-L/sw/lib $LDFLAGS" + PD_LDFLAGS="-L/sw/lib $PD_LDFLAGS" ]) # macports paths AS_IF([test -e /opt/local],[ AM_CPPFLAGS="-I/opt/local/include $INCLUDES" - LDFLAGS="-L/opt/local/lib $LDFLAGS" + PD_LDFLAGS="-L/opt/local/lib $PD_LDFLAGS" ]) EXTERNAL_LDFLAGS="-bundle -undefined dynamic_lookup" @@ -276,13 +281,21 @@ [AS_HELP_STRING([--enable-debug], [use debugging support])], [debug=$enableval], [debug=no]) AS_IF([test x$debug = xyes],[ - CFLAGS="$CFLAGS $DEBUG_CFLAGS" + PD_CFLAGS="$DEBUG_CFLAGS $PD_CFLAGS" ],[ - CFLAGS="$CFLAGS $RELEASE_CFLAGS" + PD_CFLAGS="$RELEASE_CFLAGS $PD_CFLAGS" + PD_CPPFLAGS="-DNDEBUG $PD_CPPFLAGS" +]) + +##### macOS version min ##### +AS_IF([test "x$macos_version_min" != "x"],[ + PD_CFLAGS="-mmacosx-version-min=$macos_version_min $PD_CFLAGS" ]) ######################################### ##### Configure Options ##### + +##### libpd ##### AC_ARG_ENABLE([libpd], [AS_HELP_STRING([--enable-libpd], [additionally build libpd])]) AC_ARG_ENABLE([libpd-utils], @@ -304,8 +317,8 @@ PD_CHECK_UNIVERSAL(ARCH, [universal=yes], [universal=no]) AM_CONDITIONAL(UNIVERSAL, test x$universal = xyes) AS_IF([test x$universal = xyes],[ - CFLAGS="$ARCH_CFLAGS $CFLAGS" - LDFLAGS="$ARCH_LDFLAGS $LDFLAGS" + PD_CFLAGS="$ARCH_CFLAGS $PD_CFLAGS" + PD_LDFLAGS="$ARCH_LDFLAGS $PD_LDFLAGS" ]) ##### Gettext ##### @@ -538,17 +551,22 @@ ##### libpd ##### AS_IF([test "x${enable_libpd}" = "xyes"],[ - libpd="yes" - libpd_="" - AS_IF([test "x${enable_libpd_instance}" = "xyes"],[ libpd_="${libpd_}+multi "]) - AS_IF([test "x${enable_libpd_utils}" = "xyes"],[ libpd_="${libpd_}+utils "]) - AS_IF([test "x${enable_libpd_extra}" = "xyes"],[ libpd_="${libpd_}+extra "]) - AS_IF([test "x${enable_libpd_setlocale}" = "xno"],[ libpd_="${libpd_}-setlocale "]) - AS_IF([test "x${libpd_}" != "x"],[ libpd="${libpd} ( ${libpd_})"]) + libpd="yes" + libpd_="" + AS_IF([test "x${enable_libpd_instance}" = "xyes"],[ libpd_="${libpd_}+multi "]) + AS_IF([test "x${enable_libpd_utils}" = "xyes"],[ libpd_="${libpd_}+utils "]) + AS_IF([test "x${enable_libpd_extra}" = "xyes"],[ libpd_="${libpd_}+extra "]) + AS_IF([test "x${enable_libpd_setlocale}" = "xno"],[ libpd_="${libpd_}-setlocale "]) + AS_IF([test "x${libpd_}" != "x"],[ libpd="${libpd} ( ${libpd_})"]) ],[ - libpd="no" + libpd="no" ]) +# pass common flags via @PD_*@ AM variables for use in Makefiles +AC_SUBST(PD_CPPFLAGS) +AC_SUBST(PD_CFLAGS) +AC_SUBST(PD_LDFLAGS) + ######################################### ##### Output files ##### @@ -596,9 +614,9 @@ Installation prefix: $prefix Compiler: $CC - CPPFLAGS: $CPPFLAGS - CFLAGS: $CFLAGS - LDFLAGS: $LDFLAGS + CPPFLAGS: $PD_CPPFLAGS $CPPFLAGS + CFLAGS: $PD_CFLAGS $CFLAGS + LDFLAGS: $PD_LDFLAGS $LDFLAGS INCLUDES: $AM_CPPFLAGS LIBS: $LIBS diff -Nru puredata-0.52.1+ds0/debian/changelog puredata-0.52.2+ds0/debian/changelog --- puredata-0.52.1+ds0/debian/changelog 2022-02-08 10:13:41.000000000 +0000 +++ puredata-0.52.2+ds0/debian/changelog 2022-03-28 07:18:53.000000000 +0000 @@ -1,3 +1,17 @@ +puredata (0.52.2+ds0-1) unstable; urgency=medium + + * New upstream version 0.52.2+ds0 + - Refresh pd2puredata patch + - Drop patches applied upstream + - Refresh remaining patches + * d/watch + - Automatically use '+ds' as repackaging suffix + * d/copyright + - Update d/copyright + - Regenerate d/copyright_hints + + -- IOhannes m zmölnig (Debian/GNU) Mon, 28 Mar 2022 09:18:53 +0200 + puredata (0.52.1+ds0-1) unstable; urgency=medium * Exclude pre-built binaries for macOS and MSW diff -Nru puredata-0.52.1+ds0/debian/copyright puredata-0.52.2+ds0/debian/copyright --- puredata-0.52.1+ds0/debian/copyright 2022-02-08 10:13:41.000000000 +0000 +++ puredata-0.52.2+ds0/debian/copyright 2022-03-28 07:18:53.000000000 +0000 @@ -49,11 +49,16 @@ 2013-2021 the libpd team License: BSD-3-clause -Files: doc/5.reference/bng-help.pd +Files: doc/5.reference/all_guis.pd + doc/5.reference/bng-help.pd + doc/5.reference/cnv-help.pd + doc/5.reference/hdl-help.pd + doc/5.reference/hradio-help.pd doc/5.reference/hslider-help.pd - doc/5.reference/my_canvas-help.pd - doc/5.reference/numbox2-help.pd + doc/5.reference/nbx-help.pd doc/5.reference/toggle-help.pd + doc/5.reference/vdl-help.pd + doc/5.reference/vradio-help.pd doc/5.reference/vslider-help.pd doc/5.reference/vu-help.pd Copyright: 1996-2016 Miller Puckette diff -Nru puredata-0.52.1+ds0/debian/copyright_hints puredata-0.52.2+ds0/debian/copyright_hints --- puredata-0.52.1+ds0/debian/copyright_hints 2022-02-08 10:13:41.000000000 +0000 +++ puredata-0.52.2+ds0/debian/copyright_hints 2022-03-28 07:18:53.000000000 +0000 @@ -218,6 +218,9 @@ ./doc/5.reference/bag-help.pd ./doc/5.reference/bang-help.pd ./doc/5.reference/bang~-help.pd + ./doc/5.reference/binops-help.pd + ./doc/5.reference/binops-other-help.pd + ./doc/5.reference/binops-tilde-help.pd ./doc/5.reference/biquad~-help.pd ./doc/5.reference/block~-help.pd ./doc/5.reference/bp~-help.pd @@ -227,6 +230,7 @@ ./doc/5.reference/clip~-help.pd ./doc/5.reference/clone-abstraction.pd ./doc/5.reference/clone-help.pd + ./doc/5.reference/cnv-help.pd ./doc/5.reference/cos~-help.pd ./doc/5.reference/cpole~-help.pd ./doc/5.reference/cputime-help.pd @@ -246,16 +250,15 @@ ./doc/5.reference/file-help.pd ./doc/5.reference/float-help.pd ./doc/5.reference/framp~-help.pd - ./doc/5.reference/fudiformat-help.pd - ./doc/5.reference/fudiparse-help.pd - ./doc/5.reference/gatom-help.pd + ./doc/5.reference/fudi-format-parse-help.pd ./doc/5.reference/get-help.pd ./doc/5.reference/getsize-help.pd + ./doc/5.reference/gui-boxes-help.pd ./doc/5.reference/help-intro.pd ./doc/5.reference/hip~-help.pd ./doc/5.reference/inlet-outlet-help.pd ./doc/5.reference/int-help.pd - ./doc/5.reference/key-help.pd + ./doc/5.reference/key-input-help.pd ./doc/5.reference/line-help.pd ./doc/5.reference/line~-help.pd ./doc/5.reference/list-help.pd @@ -269,17 +272,13 @@ ./doc/5.reference/metro-help.pd ./doc/5.reference/midi-help.pd ./doc/5.reference/moses-help.pd - ./doc/5.reference/my_canvas-help.pd ./doc/5.reference/namecanvas-help.pd ./doc/5.reference/netreceive-help.pd ./doc/5.reference/netsend-help.pd ./doc/5.reference/noise~-help.pd ./doc/5.reference/openpanel-help.pd - ./doc/5.reference/operators-help.pd - ./doc/5.reference/oscformat-help.pd - ./doc/5.reference/oscparse-help.pd + ./doc/5.reference/osc-format-parse-help.pd ./doc/5.reference/osc~-help.pd - ./doc/5.reference/otherbinops-help.pd ./doc/5.reference/pack-help.pd ./doc/5.reference/pd-messages.pd ./doc/5.reference/pdcontrol-abs.pd @@ -310,11 +309,10 @@ ./doc/5.reference/scalar-object-help.pd ./doc/5.reference/select-help.pd ./doc/5.reference/send-receive-help.pd - ./doc/5.reference/send~-help.pd + ./doc/5.reference/send-receive-tilde-help.pd ./doc/5.reference/set-help.pd ./doc/5.reference/setsize-help.pd ./doc/5.reference/setsize.txt - ./doc/5.reference/sigbinops-help.pd ./doc/5.reference/sig~-help.pd ./doc/5.reference/slop~-help.pd ./doc/5.reference/snapshot~-help.pd @@ -341,7 +339,7 @@ ./doc/5.reference/textfile-help.pd ./doc/5.reference/textfile.txt ./doc/5.reference/threshold~-help.pd - ./doc/5.reference/throw~-help.pd + ./doc/5.reference/throw~-catch~-help.pd ./doc/5.reference/timer-help.pd ./doc/5.reference/trace-help.pd ./doc/5.reference/trigger-help.pd @@ -384,7 +382,6 @@ ./doc/7.stuff/synth/preset3.txt ./doc/7.stuff/synth/preset4.txt ./doc/7.stuff/synth/synthvoice.pd - ./doc/7.stuff/synth/test-gadsr.pd ./doc/7.stuff/tools/latency.pd ./doc/7.stuff/tools/load-meter.pd ./doc/7.stuff/tools/miditester.pd @@ -474,6 +471,7 @@ ./mac/patches/tk8.6.10_keyfix.patch ./mac/patches/tk8.6.10_scrollbars.patch ./mac/patches/tk8.6.10_zombiewindows.patch + ./mac/patches/tk8.6.12_NSBitmapFormatAlphaFirst.patch ./mac/stuff/Info.plist ./mac/stuff/pd.entitlements ./mac/tcltk-wish.sh @@ -772,17 +770,17 @@ License: UNKNOWN FIXME -Files: ./doc/5.reference/bng-help.pd +Files: ./doc/5.reference/all_guis.pd + ./doc/5.reference/bng-help.pd ./doc/5.reference/hdl-help.pd ./doc/5.reference/hradio-help.pd ./doc/5.reference/hslider-help.pd - ./doc/5.reference/numbox2-help.pd + ./doc/5.reference/nbx-help.pd ./doc/5.reference/toggle-help.pd ./doc/5.reference/vdl-help.pd ./doc/5.reference/vradio-help.pd ./doc/5.reference/vslider-help.pd ./doc/5.reference/vu-help.pd - ./doc/5.reference/x_all_guis.pd Copyright: musil@iem.kug.ac.at; License: UNKNOWN FIXME diff -Nru puredata-0.52.1+ds0/debian/patches/debian_etc-gui-plugins.patch puredata-0.52.2+ds0/debian/patches/debian_etc-gui-plugins.patch --- puredata-0.52.1+ds0/debian/patches/debian_etc-gui-plugins.patch 2022-02-08 10:13:41.000000000 +0000 +++ puredata-0.52.2+ds0/debian/patches/debian_etc-gui-plugins.patch 2022-03-28 07:18:53.000000000 +0000 @@ -14,7 +14,7 @@ --- puredata.orig/tcl/pd-gui.tcl +++ puredata/tcl/pd-gui.tcl -@@ -786,7 +786,7 @@ +@@ -787,7 +787,7 @@ } # load other installed plugins diff -Nru puredata-0.52.1+ds0/debian/patches/debian_helpbrowser_puredata-doc.patch puredata-0.52.2+ds0/debian/patches/debian_helpbrowser_puredata-doc.patch --- puredata-0.52.1+ds0/debian/patches/debian_helpbrowser_puredata-doc.patch 2022-02-08 10:13:41.000000000 +0000 +++ puredata-0.52.2+ds0/debian/patches/debian_helpbrowser_puredata-doc.patch 2022-03-28 07:18:53.000000000 +0000 @@ -13,13 +13,13 @@ --- puredata.orig/tcl/pd_menucommands.tcl +++ puredata/tcl/pd_menucommands.tcl -@@ -228,10 +228,22 @@ +@@ -228,10 +228,23 @@ } } +proc ::pd_menucommands::check_puredatadoc {file} { + if { [string compare "absolute" [file pathtype $file]] != 0 } {return true} -+ if {[file exists $file]} { ++ if { [file exists $file] } { + return true + } { + tk_messageBox -type ok -message "Unable to find '$file'.\nMaybe you need to install the 'puredata-doc' package" @@ -31,13 +31,13 @@ # parse the textfile for the About Pd page proc ::pd_menucommands::menu_aboutpd {} { set versionstring "Pd $::PD_MAJOR_VERSION.$::PD_MINOR_VERSION.$::PD_BUGFIX_VERSION$::PD_TEST_VERSION" -- set filename "$::sys_libdir/doc/1.manual/1.introduction.txt" + set filename "$::sys_libdir/doc/1.manual/1.introduction.txt" + set filename "/usr/share/puredata-gui/1.introduction.txt" + if {![check_puredatadoc $filename]} return - if {[winfo exists .aboutpd]} { - wm deiconify .aboutpd - raise .aboutpd -@@ -280,6 +292,7 @@ + if {![file exists $filename]} { + ::pdwindow::error [format [_ "ignoring '%s': doesn't exist"] $filename] + ::pdwindow::error "\n" +@@ -291,6 +304,7 @@ # open HTML docs from the menu using the OS-default HTML viewer proc ::pd_menucommands::menu_openfile {filename} { diff -Nru puredata-0.52.1+ds0/debian/patches/debian_pd2puredata.patch puredata-0.52.2+ds0/debian/patches/debian_pd2puredata.patch --- puredata-0.52.1+ds0/debian/patches/debian_pd2puredata.patch 2022-02-08 10:13:41.000000000 +0000 +++ puredata-0.52.2+ds0/debian/patches/debian_pd2puredata.patch 2022-03-28 07:18:53.000000000 +0000 @@ -20,8 +20,8 @@ ##### Prelude ##### AC_PREREQ(2.59) --AC_INIT([pd], [0.52.0]) -+AC_INIT([puredata], [0.52.0]) +-AC_INIT([pd], [0.52.2]) ++AC_INIT([puredata], [0.52.2]) AC_CONFIG_SRCDIR(src/m_pd.c) AC_CONFIG_AUX_DIR([m4/config]) AC_CONFIG_MACRO_DIR([m4/generated]) diff -Nru puredata-0.52.1+ds0/debian/patches/debian_remove_timestamp-macros.patch puredata-0.52.2+ds0/debian/patches/debian_remove_timestamp-macros.patch --- puredata-0.52.1+ds0/debian/patches/debian_remove_timestamp-macros.patch 2022-02-08 10:13:41.000000000 +0000 +++ puredata-0.52.2+ds0/debian/patches/debian_remove_timestamp-macros.patch 2022-03-28 07:18:53.000000000 +0000 @@ -15,16 +15,16 @@ --- puredata.orig/src/Makefile.am +++ puredata/src/Makefile.am -@@ -7,6 +7,10 @@ - bin_SCRIPTS = - noinst_SCRIPTS = +@@ -11,6 +11,10 @@ + AM_CFLAGS = @PD_CFLAGS@ + AM_LDFLAGS = @PD_LDFLAGS@ +## set timestamp for reproducible builds +PD_TIMESTAMP_STRING="compiled for Debian ($(DEB_VERSION)) on $(BUILD_DATE)" +AM_CPPFLAGS += -DPD_TIMESTAMP_STRING='$(PD_TIMESTAMP_STRING)' + - pd_CFLAGS = -DPD -DINSTALL_PREFIX=\"$(prefix)\" -DPD_INTERNAL - pd_LDFLAGS = + pd_CFLAGS = -DPD -DPD_INTERNAL -DINSTALL_PREFIX=\"$(prefix)\" @PD_CFLAGS@ + pd_LDFLAGS = @PD_LDFLAGS@ pd_LDADD = --- puredata.orig/src/s_main.c +++ puredata/src/s_main.c diff -Nru puredata-0.52.1+ds0/debian/patches/series puredata-0.52.2+ds0/debian/patches/series --- puredata-0.52.1+ds0/debian/patches/series 2022-02-08 10:13:41.000000000 +0000 +++ puredata-0.52.2+ds0/debian/patches/series 2022-03-28 07:18:53.000000000 +0000 @@ -1,11 +1,3 @@ -upstream_freemutex.patch -upstream_fix-broken-nosleep-option.patch -upstream_fix_gui_lockups.patch -upstream_no-docsdir-from-cmdline.patch -upstream_apply-jack-samplerate.patch -upstream_fix-insert-cursor.patch -upstream_fix-liststore-crash.patch -upstream_fix-filejoin-crash.patch debian_pd2puredata.patch debian_usrlibpd_path.patch debian_fixmanpage.patch diff -Nru puredata-0.52.1+ds0/debian/patches/upstream_apply-jack-samplerate.patch puredata-0.52.2+ds0/debian/patches/upstream_apply-jack-samplerate.patch --- puredata-0.52.1+ds0/debian/patches/upstream_apply-jack-samplerate.patch 2022-02-08 10:13:41.000000000 +0000 +++ puredata-0.52.2+ds0/debian/patches/upstream_apply-jack-samplerate.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -From: =?utf-8?q?IOhannes_m_zm=C3=B6lnig?= -Date: Wed, 1 Dec 2021 16:02:53 +0100 -Subject: Propagate changed samplerate from JACK, by restarting the DSP - -if JACK dynamically changes the samplerate, we need to update. -we do this by restarting the DSP (but only if DSP is currently ON -and the srate actually changed) - - -Applied-Upstream: 80384f7610e553a1afeeae92a2805fd671c94ee0 -Origin: Upstream -Last-Update: 2022-02-18 - ---- - src/s_audio_jack.c | 3 +++ - 1 file changed, 3 insertions(+) - ---- puredata.orig/src/s_audio_jack.c -+++ puredata/src/s_audio_jack.c -@@ -160,7 +160,10 @@ - static int - jack_srate (jack_nframes_t srate, void *arg) - { -+ const t_float oldrate = STUFF->st_dacsr; - STUFF->st_dacsr = srate; -+ if (oldrate != STUFF->st_dacsr) -+ canvas_update_dsp(); - return 0; - } - diff -Nru puredata-0.52.1+ds0/debian/patches/upstream_fix-broken-nosleep-option.patch puredata-0.52.2+ds0/debian/patches/upstream_fix-broken-nosleep-option.patch --- puredata-0.52.1+ds0/debian/patches/upstream_fix-broken-nosleep-option.patch 2022-02-08 10:13:41.000000000 +0000 +++ puredata-0.52.2+ds0/debian/patches/upstream_fix-broken-nosleep-option.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,43 +0,0 @@ -From: Christof Ressi -Date: Fri, 7 Jan 2022 17:15:39 +0100 -Subject: fix broken "-nosleep" option - -Applied-Upstream: 11cba59022a72a370ec01eb5b9eb57cf9ebf80b4 -Origin: Upstream -Last-Update: 2022-02-18 - ---- - src/m_sched.c | 3 ++- - src/s_inter.c | 2 -- - 2 files changed, 2 insertions(+), 3 deletions(-) - ---- puredata.orig/src/m_sched.c -+++ puredata/src/m_sched.c -@@ -23,6 +23,7 @@ - #define SYS_QUIT_QUIT 1 - #define SYS_QUIT_RESTART 2 - static int sys_quit; -+extern int sys_nosleep; - - int sys_usecsincelastsleep(void); - int sys_sleepgrain; -@@ -372,7 +373,7 @@ - else timeforward = sys_send_dacs(); - sys_addhist(3); - /* test for idle; if so, do graphics updates. */ -- if (timeforward != SENDDACS_YES && !sched_idletask()) -+ if (timeforward != SENDDACS_YES && !sched_idletask() && !sys_nosleep) - { - /* if even that had nothing to do, sleep. */ - sys_addhist(4); ---- puredata.orig/src/s_inter.c -+++ puredata/src/s_inter.c -@@ -193,8 +193,6 @@ - #endif - } - --extern int sys_nosleep; -- - /* sleep (but cancel the sleeping if any file descriptors are - ready - in that case, dispatch any resulting Pd messages and return. Called - with sys_lock() set. We will temporarily release the lock if we actually diff -Nru puredata-0.52.1+ds0/debian/patches/upstream_fix-filejoin-crash.patch puredata-0.52.2+ds0/debian/patches/upstream_fix-filejoin-crash.patch --- puredata-0.52.1+ds0/debian/patches/upstream_fix-filejoin-crash.patch 2022-02-08 10:13:41.000000000 +0000 +++ puredata-0.52.2+ds0/debian/patches/upstream_fix-filejoin-crash.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,62 +0,0 @@ -From: =?utf-8?q?IOhannes_m_zm=C3=B6lnig?= -Date: Tue, 8 Feb 2022 09:13:44 +0100 -Subject: Fix out-of-memory access in [file join] - -strlen() excludes the terminating NULL-byte, so we need to take care -of that manually. - -also, do_pathnormalize iterates until NULL-byte, -so there's no use in adding another one. - -Closes: https://github.com/pure-data/pure-data/issues/1572 - - -Applied-Upstream: c2407e60bd8b15006331faf2471054863b051c35 -Origin: Upstream -Last-Update: 2022-02-18 ---- - src/x_file.c | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - ---- puredata.orig/src/x_file.c -+++ puredata/src/x_file.c -@@ -171,8 +171,6 @@ - rp--; - } - } -- -- *wp++=0; - return to; - } - -@@ -1270,7 +1268,7 @@ - - static void file_join_list(t_file_handle*x, t_symbol*s, int argc, t_atom*argv) { - /* luckily for us, the path-separator in Pd is always '/' */ -- size_t bufsize = 0; -+ size_t bufsize = 1; - char*buffer = getbytes(bufsize); - (void)s; - while(argc--) { -@@ -1280,16 +1278,18 @@ - size_t alen; - atom_string(argv++, abuf, MAXPDSTRING); - alen = strlen(abuf); -- if(!alen || '/' == abuf[alen-1]) -+ if(!alen) continue; -+ if('/' == abuf[alen-1]) - needsep = 0; - newsize = bufsize + alen + needsep; - if (!(newbuffer = resizebytes(buffer, bufsize, newsize))) break; - buffer = newbuffer; -- strcpy(buffer+bufsize, abuf); -+ strcpy(buffer+bufsize-1, abuf); - if(needsep) -- buffer[newsize-1]='/'; -+ buffer[newsize-2]='/'; - bufsize = newsize; - } -+ buffer[bufsize-1] = 0; - outlet_symbol(x->x_dataout, gensym(do_pathnormalize(buffer, buffer))); - freebytes(buffer, bufsize); - } diff -Nru puredata-0.52.1+ds0/debian/patches/upstream_fix_gui_lockups.patch puredata-0.52.2+ds0/debian/patches/upstream_fix_gui_lockups.patch --- puredata-0.52.1+ds0/debian/patches/upstream_fix_gui_lockups.patch 2022-02-08 10:13:41.000000000 +0000 +++ puredata-0.52.2+ds0/debian/patches/upstream_fix_gui_lockups.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -From: Christof Ressi -Date: Fri, 7 Jan 2022 18:59:07 +0100 -Subject: always call sys_pollgui() after sched_tick() - -otherwise the GUI will lock up if we can't keep up with the audio callback! - -Applied-Upstream: d01830d03e09afffe41874520cc56147f722c1e5 -Origin: Upstream -Last-Update: 2022-02-18 - ---- - src/m_sched.c | 7 +++---- - 1 file changed, 3 insertions(+), 4 deletions(-) - ---- puredata.orig/src/m_sched.c -+++ puredata/src/m_sched.c -@@ -334,8 +334,6 @@ - sys_initmidiqueue(); - while (!sys_quit) /* outer loop runs once per tick */ - { -- int timeforward; -- - sys_addhist(0); - sched_tick(); - sys_addhist(1); -@@ -350,12 +348,13 @@ - sched_referencelogicaltime = pd_this->pd_systime; - continue; - } -+ sys_pollgui(); - sys_pollmidiqueue(); - sys_addhist(2); - while (!sys_quit) /* inner loop runs until it can transfer audio */ - { -- int sentdacs; /* YES if audio was transferred, NO if not, -- or SLEPT if yes but time elapsed during xfer */ -+ int timeforward; /* SENDDACS_YES if audio was transferred, SENDDACS_NO if not, -+ or SENDDACS_SLEPT if yes but time elapsed during xfer */ - sys_unlock(); - if (sched_useaudio == SCHED_AUDIO_NONE) - { diff -Nru puredata-0.52.1+ds0/debian/patches/upstream_fix-insert-cursor.patch puredata-0.52.2+ds0/debian/patches/upstream_fix-insert-cursor.patch --- puredata-0.52.1+ds0/debian/patches/upstream_fix-insert-cursor.patch 2022-02-08 10:13:41.000000000 +0000 +++ puredata-0.52.2+ds0/debian/patches/upstream_fix-insert-cursor.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -From: =?utf-8?q?IOhannes_m_zm=C3=B6lnig?= -Date: Wed, 12 Jan 2022 14:55:39 +0100 -Subject: Make sure the canvas has focus so it displays the insert cursor - -Closes: https://github.com/pure-data/pure-data/issues/1252 -Closes: https://github.com/pure-data/pure-data/issues/1395 - -Applied-Upstream: 1fc7661df86945a6068ca7e6333a434aa44ed708 -Origin: Upstream -Last-Update: 2022-02-18 - ---- - src/g_rtext.c | 1 + - 1 file changed, 1 insertion(+) - ---- puredata.orig/src/g_rtext.c -+++ puredata/src/g_rtext.c -@@ -464,6 +464,7 @@ - sys_vgui(".x%lx.c select clear\n", canvas); - sys_vgui(".x%lx.c icursor %s %d\n", canvas, x->x_tag, - u8_charnum(x->x_buf, selstart_b)); -+ sys_vgui("focus .x%lx.c\n", canvas); - sys_vgui(".x%lx.c focus %s\n", canvas, x->x_tag); - } - } diff -Nru puredata-0.52.1+ds0/debian/patches/upstream_fix-liststore-crash.patch puredata-0.52.2+ds0/debian/patches/upstream_fix-liststore-crash.patch --- puredata-0.52.1+ds0/debian/patches/upstream_fix-liststore-crash.patch 2022-02-08 10:13:41.000000000 +0000 +++ puredata-0.52.2+ds0/debian/patches/upstream_fix-liststore-crash.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,29 +0,0 @@ -From: Christof Ressi -Date: Tue, 25 Jan 2022 00:54:19 +0100 -Subject: list store: fix crash with out of range onset + negative count - -Applied-Upstream: ffb9cf35556a4acfb169daa432252cafab499e40 -Origin: Upstream -Last-Update: 2022-02-18 - ---- - src/x_list.c | 7 +++++++ - 1 file changed, 7 insertions(+) - ---- puredata.orig/src/x_list.c -+++ puredata/src/x_list.c -@@ -555,7 +555,14 @@ - if (!outc) - outc = 1; /* default */ - else if (outc < 0) -+ { - outc = x->x_alist.l_n - onset; /* till the end of the list */ -+ if (outc <= 0) /* onset out of range */ -+ { -+ outlet_bang(x->x_out2); -+ return; -+ } -+ } - if (onset < 0 || (onset + outc > x->x_alist.l_n)) - { - outlet_bang(x->x_out2); diff -Nru puredata-0.52.1+ds0/debian/patches/upstream_freemutex.patch puredata-0.52.2+ds0/debian/patches/upstream_freemutex.patch --- puredata-0.52.1+ds0/debian/patches/upstream_freemutex.patch 2022-02-08 10:13:41.000000000 +0000 +++ puredata-0.52.2+ds0/debian/patches/upstream_freemutex.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ -From: Christof Ressi -Date: Wed, 22 Dec 2021 14:06:51 +0100 -Subject: s_inter_free: don't forgot to destroy the mutex! - -Applied-Upstream: 913bda75466b2979702a628b4c5e10c4c3694dfb -Origin: Upstream -Last-Update: 2022-02-18 - ---- - src/s_inter.c | 3 +++ - 1 file changed, 3 insertions(+) - ---- puredata.orig/src/s_inter.c -+++ puredata/src/s_inter.c -@@ -1647,6 +1647,9 @@ - inter->i_fdpoll = 0; - inter->i_nfdpoll = 0; - } -+#if PDTHREADS -+ pthread_mutex_destroy(&INTER->i_mutex); -+#endif - freebytes(inter, sizeof(*inter)); - } - diff -Nru puredata-0.52.1+ds0/debian/patches/upstream_no-docsdir-from-cmdline.patch puredata-0.52.2+ds0/debian/patches/upstream_no-docsdir-from-cmdline.patch --- puredata-0.52.1+ds0/debian/patches/upstream_no-docsdir-from-cmdline.patch 2022-02-08 10:13:41.000000000 +0000 +++ puredata-0.52.2+ds0/debian/patches/upstream_no-docsdir-from-cmdline.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -From: =?utf-8?q?IOhannes_m_zm=C3=B6lnig?= -Date: Wed, 12 Jan 2022 13:39:31 +0100 -Subject: Only load docsdir plugin if Pd is started via the GUI - -as reported in https://lists.puredata.info/pipermail/pd-dev/2022-01/022936.html - - -Applied-Upstream: 92f3c68d0f76c29da817cb33945fdc0eae26408d -Origin: Upstream -Last-Update: 2022-02-18 - ---- - tcl/pd-gui.tcl | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - ---- puredata.orig/tcl/pd-gui.tcl -+++ puredata/tcl/pd-gui.tcl -@@ -779,7 +779,11 @@ - proc load_startup_plugins {} { - # load built-in plugins - load_plugin_script [file join $::sys_guidir pd_deken.tcl] -- load_plugin_script [file join $::sys_guidir pd_docsdir.tcl] -+ if { $::port > 0 && $::host ne "" } { } else { -+ # only run the docsdir plugin if Pd is started via the GUI -+ # (to prevent a dialog from popping up on systems without keyboard/mouse) -+ load_plugin_script [file join $::sys_guidir pd_docsdir.tcl] -+ } - - # load other installed plugins - foreach pathdir [concat $::sys_temppath $::sys_searchpath $::sys_staticpath] { diff -Nru puredata-0.52.1+ds0/debian/watch puredata-0.52.2+ds0/debian/watch --- puredata-0.52.1+ds0/debian/watch 2022-02-08 10:13:41.000000000 +0000 +++ puredata-0.52.2+ds0/debian/watch 2022-03-28 07:18:53.000000000 +0000 @@ -5,6 +5,6 @@ # http://msp.ucsd.edu/Software/pd-@ANY_VERSION@.src.tar.gz opts=uversionmangle=s/-/./;s/test/~/;s/-really/+really/,\ - repacksuffix=~ds0,\ + repacksuffix=+ds0,\ dversionmangle=auto \ https://github.com/pure-data/pure-data/tags .*/v?(\d\S*)\.tar\.gz diff -Nru puredata-0.52.1+ds0/doc/1.manual/x2.htm puredata-0.52.2+ds0/doc/1.manual/x2.htm --- puredata-0.52.1+ds0/doc/1.manual/x2.htm 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/1.manual/x2.htm 2022-03-27 22:30:03.000000000 +0000 @@ -47,7 +47,7 @@

2.1.1. the main window, canvases, and printout

When Pd is running, you'll see a main "Pd" window, and possibly one or more -"canvases" or "patches". The main Pd window looks like this: +"canvases" or "patches". The main Pd window looks like this:

pd window @@ -1106,16 +1106,16 @@

2.9.1. Traversal

Pd objects are provided to traverse lists and arrays, and to address -elements of data structures for getting and setting. Here is a patch showing +elements of data structures for getting and setting. Here is a patch showing how these facilities could be used, for example, to sequence the graphical score shown above:

traversal example patch

Pd has no built-in sequencer, nor even any notion that "x" values should be -used as a time axis. (However, a "sort" function is provided, which reorders +used as a time axis. (However, a "sort" function is provided, which reorders a list from left to right, on the assumption that users might often want to use Pd -data collections as x-ordered sequences.) Recording sequences of events into +data collections as x-ordered sequences.) Recording sequences of events into lists, and/or playing the lists back as sequences, are functionalities that the user is expected to supply on top of Pd's offerings, which, it is hoped, would allow those functionalities within a much larger range of possibilities, to @@ -1123,13 +1123,12 @@ reactive improvisation, and perhaps much more.

Traversal of data is made possible by adding a new type of atom, "pointer", -to the two previously defined types that make up messages, to wit, numbers and -symbols. Unlike numbers and symbols, pointers have no printed form and thus -can't be uttered in message boxes. Traversal objects such as "pointer" and -"get" (among several others) can generate or use pointers. The pointer data +to the two previously defined types that make up messages (numbers and symbols). +Unlike numbers and symbols, pointers have no printed form and thus can't be +uttered in message boxes. Traversal objects such as "pointer" and "get" +(among several others) can generate or use pointers. The pointer data type is also integrated into pipe-fitting objects such as "pack", -"unpack", -and "route". +"unpack", and "route".

In the patch shown above, the topmost "pointer" object holds a pointer to the next object to "play" (by sending it to one of the "voice" diff -Nru puredata-0.52.1+ds0/doc/1.manual/x3.htm puredata-0.52.2+ds0/doc/1.manual/x3.htm --- puredata-0.52.1+ds0/doc/1.manual/x3.htm 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/1.manual/x3.htm 2022-03-27 22:30:03.000000000 +0000 @@ -506,7 +506,7 @@

Command line arguments

Pd may be run as a "command line" program from your "terminal emulator," -"shell," or "MSDOS prompt." In Windows, if Pd is started using a "shortcut" +"shell," or "MS-DOS prompt." In Windows, if Pd is started using a "shortcut" it is also run from a command line which you can edit using the "properties" dialog for the shortcut. In any operating system, Pd can be called from a script (called a batch file on Windows or a shell script diff -Nru puredata-0.52.1+ds0/doc/1.manual/x4.htm puredata-0.52.2+ds0/doc/1.manual/x4.htm --- puredata-0.52.1+ds0/doc/1.manual/x4.htm 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/1.manual/x4.htm 2022-03-27 22:30:03.000000000 +0000 @@ -491,7 +491,7 @@

Now, what’s the need or advantage of this over using [declare] or adding the folder to the -user added paths? This can be an option that some people may preferr for the simple fact that +user added paths? This can be an option that some people may prefer for the simple fact that it's just clearer from which library folder we're loading the external. But there are some rare cases where this is the only way to guarantee you have loaded the correct external, which is a problem when you have too many libraries in your system and using more than one that has an external @@ -550,14 +550,14 @@ on the development of an object's binary and decide to change it, you have to exit and re-enter Pd to get the change to take. -

Let us just make the distiction that external abstractions work quite differently! As they +

Let us just make the distinction that external abstractions work quite differently! As they get updated any time they’re updated and reloaded!

4.4.1. Overriding objects (externals and native):

-

We've seen that Pd loads and sticks to an external. But this can get overriden. -We've actually seen that already. For instace, you create [xfade~] from ELSE, then +

We've seen that Pd loads and sticks to an external. But this can get overridden. +We've actually seen that already. For instance, you create [xfade~] from ELSE, then you load ceammc's binary that also has an [xfade~] object. Now Pd only knows about [xfade~] from ceammc! It's been also noted how cyclone and zexy have objects with the same name. If you first load cyclone's binary and zexy's later, zexy's objects @@ -567,7 +567,7 @@ objects with externals! Say you have an external called [phasor~]. It it's a single binary, you can force Pd to find it with slash declarations. Otherwise, if it's a binary pack, you can load as any other library and if it has objects with the -same name as vanilla's internals, they get overriden! But Pd still keeps a copy of +same name as vanilla's internals, they get overridden! But Pd still keeps a copy of the old one and renames it by appending "_aliased", so you can still load the old "phasor~", for instance, as [phasor~_aliased]. You probably don't want to mess overriding internals, but it makes sense if you provide new versions with more features but fully @@ -593,7 +593,7 @@ is also respeccted, from top to bottom.

Fifth and last, it searches the "standard paths", which includes the 'extra' library -provided by the Pd Vanilla disribution. Note you can use [declare -stdpath ./] to force +provided by the Pd Vanilla distribution. Note you can use [declare -stdpath ./] to force priority to search this folder!

diff -Nru puredata-0.52.1+ds0/doc/1.manual/x5.htm puredata-0.52.2+ds0/doc/1.manual/x5.htm --- puredata-0.52.1+ds0/doc/1.manual/x5.htm 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/1.manual/x5.htm 2022-03-27 22:30:03.000000000 +0000 @@ -30,7 +30,25 @@

5.1. release notes

-

------------------ 0.52-0 ------------------------------ +

------------------ 0.52-2 ------------------------------ + +

Many small bug fixes, and a few larger ones: under jack, Pd's delay adjusted +upward to the jack blocksize if needed (to prevent a hang). + +

Many documentation fixes and improvements by Alexandre Porres + +

Reverted behavior when selecting and dragging a single text box, so that +it now activates the text as traditional until 0.51. Sometimes one behavior is +wanted, sometines the other, so there should be an easy-to-understand way for +users to control this. At the moment you can rectangle-select an object to +displace it without selecting the text, which is perhaps adequate, perhaps not. + +

added an indirect way to open Pd's gui on one machine and the real-time +program on another without using X windows (so that it can be easily done on +MacOS and Windows). Requires ssh expertise - see commit c0e320f2142. (This +was already included in pd-0.51-1 but not documented). + +

------------------ 0.52-0 and 0.52-1 ------------------------------

The Macintosh compiled version is now compiled at IEM (as part of the continuous-integration setup available at git.iem.at/pd/pure-data/pipelines). @@ -39,8 +57,9 @@

New "list" box, like number and symbol but allows lists in addition to single atoms. You can scroll up and down on any of the numbers in a list as -if it were a number box. You can also double-click on (number, symbol, list) -to activate a "real" editor you can copy/paste from/to. +if it were a number box. All boxes (number, symbol, list) can now set different +sizes and you can also double-click on them to activate a "real" editor you can +copy/paste from/to.

A new "trace" object allows you to get backward and forward traces of message passing. @@ -69,9 +88,7 @@

Improved window positioning. -

New methods for "list store" and added features to "array" - -

New method for garrays to set colors, line width, visiblity, display style +

New method for garrays to set colors, line width, visibility, display style and disable mouse editing (documented in 2.control.examples/16.more.arrays.pd). Also added more flags to the "plot" object that plots arrays in data structures (by Christof Ressi). @@ -79,8 +96,10 @@

"set", "send", "delete" and "insert" methods added to "list store" object, and new features added to "get" method (by Christof Ressi). -

The [output~] abstraction, widely used in Pd's documentation is now part of -'extra' - plus many documentation updates/improvements (by Alexandre Porres). +

The output~ abstraction, widely used in Pd's documentation is now part of +'extra' - plus several documentation updates/improvements to the help files and +chapter 4 of the manual (by Alexandre Porres). Also, other updates to the manual +by Lucas Cordiviola.

As usual, numerous bug fixes. diff -Nru puredata-0.52.1+ds0/doc/1.manual/x6.htm puredata-0.52.2+ds0/doc/1.manual/x6.htm --- puredata-0.52.1+ds0/doc/1.manual/x6.htm 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/1.manual/x6.htm 2022-03-27 22:30:03.000000000 +0000 @@ -292,12 +292,12 @@

# 64 bit
 pacman -S mingw-w64-x86_64-toolchain mingw-w64-x86_64-clang \
-          make pkgconfig autoconf automake libtool \
+          make autoconf automake libtool \
           mingw-w64-x86_64-gettext
 
 # 32 bit
 pacman -S mingw-w64-i686-toolchain mingw-w64-i686-clang \
-          make pkgconfig autoconf automake libtool \
+          make autoconf automake libtool \
           mingw-w64-i686-gettext

Install git if you want to clone the Pd sources from Github, etc:

diff -Nru puredata-0.52.1+ds0/doc/2.control.examples/16.more.arrays.pd puredata-0.52.2+ds0/doc/2.control.examples/16.more.arrays.pd --- puredata-0.52.1+ds0/doc/2.control.examples/16.more.arrays.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/2.control.examples/16.more.arrays.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,4 +1,4 @@ -#N canvas 593 88 880 716 12; +#N canvas 343 23 880 675 12; #N canvas 0 50 450 250 (subpatch) 0; #X array array97 5 float 1; #A 0 0.486666 0.126666 0.566675 0.0333376 0.5; @@ -23,12 +23,6 @@ #X floatatom 538 493 5 1 10 0 - - - 0; #X floatatom 712 496 5 0 0 0 - - - 0; #X msg 712 522 \; array98 color \$1; -#X text 487 214 You can put more than one array in a single "graph" -(which is Pd's name for the bounding rectangle \, and is a synonym -for "canvas".) Arrays' sizes need not match the bounds of the containing -graph. But if you resize an array \, and if it is the only array contained -in a graph \, then the graph automaticallly resets its bounds to match. -, f 51; #X text 25 342 Adding x and y labels: give a point to put a tick \, the interval between ticks \, and the number of ticks overall per large tick.; @@ -99,14 +93,20 @@ #X text 515 589 set display style; #X msg 683 645 \; array97 edit \$1 \; array98 edit \$1; #X text 61 671 last updated for version 0.52.; +#X text 487 214 You can put more than one array in a single "graph" +(which is Pd's name for the bounding rectangle \, and is a synonym +for "canvas".) Arrays' sizes need not match the bounds of the containing +graph. But if you resize an array \, and if it is the only array contained +in a graph \, then the graph automatically resets its bounds to match. +, f 51; #X connect 5 0 6 0; -#X connect 7 0 38 0; -#X connect 9 0 28 0; +#X connect 7 0 37 0; +#X connect 9 0 27 0; #X connect 11 0 10 0; #X connect 12 0 13 0; +#X connect 15 0 12 0; #X connect 16 0 12 0; #X connect 17 0 12 0; -#X connect 18 0 12 0; -#X connect 28 0 8 0; -#X connect 41 0 47 0; -#X connect 42 0 47 0; +#X connect 27 0 8 0; +#X connect 40 0 46 0; +#X connect 41 0 46 0; diff -Nru puredata-0.52.1+ds0/doc/3.audio.examples/B15.tabread4~-onset.pd puredata-0.52.2+ds0/doc/3.audio.examples/B15.tabread4~-onset.pd --- puredata-0.52.1+ds0/doc/3.audio.examples/B15.tabread4~-onset.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/3.audio.examples/B15.tabread4~-onset.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,7 +1,6 @@ -#N canvas 433 61 580 690 12; +#N canvas 433 61 664 634 12; #X declare -stdpath ./; -#X text 354 646 updated for Pd version 0.42; -#X text 39 45 Pd is usually compiled to work on 32-bit audio samples. +#X text 34 51 Pd is usually compiled to work on 32-bit audio samples. These do not \, in general \, have enough precision for use as indices into an array of more than about 32K samples. This is because the mantissa of a 32-bit floating point number has only 24 bits \, out of which @@ -9,60 +8,59 @@ into the array \, so there would remain 8 or fewer bits to supply the fraction. In the most extreme situation possible \, the sample could contain a Nyquist frequency sinusoid and the output would then have -only about 8 bits of accuracy!, f 64; -#X text 39 184 You can use the "onset" inlet to tabread4~ to get good +only about 8 bits of accuracy!, f 85; +#X text 34 161 You can use the "onset" inlet to tabread4~ to get good accuracy reading longer arrays. The tabread4~ object adds the index and the "main" (signal) inlet in 64-bit precision. So if \, for example \, the onset inlet could specify an integer exactly up to about 8 million (190 seconds at 44100 Hz) \, and the signal inlet could act as a displacement. -, f 64; +, f 85; #X text 56 11 USING ONSETS INTO TABREAD4~ TO IMPROVE ACCURACY; -#X obj 40 582 output~; -#X obj 385 489 samplerate~; -#X obj 385 513 / 2; -#X obj 374 417 loadbang; -#X obj 374 564 tabwrite~ \$0-tab; -#X obj 40 548 tabread4~ \$0-tab; -#X obj 385 537 osc~; -#X obj 171 548 tabread4~ \$0-tab; -#X obj 171 582 output~; -#X obj 374 461 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X obj 40 512 output~; +#X obj 387 428 samplerate~; +#X obj 387 452 / 2; +#X obj 374 505 tabwrite~ \$0-tab; +#X obj 40 478 tabread4~ \$0-tab; +#X obj 387 476 osc~; +#X obj 171 478 tabread4~ \$0-tab; +#X obj 171 512 output~; +#X obj 374 341 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X msg 398 443 \; pd dsp 1; -#X obj 40 465 *~ 10000; -#X obj 40 518 +~; -#X floatatom 280 467 6 0 0 0 - - - 0; -#X msg 280 437 1; -#X obj 373 592 table \$0-tab 200000; -#X obj 40 436 phasor~ 0.02; -#X msg 225 437 150001; -#X text 39 280 At left below an onset (1 or 150000 samples) is added +#X obj 40 395 *~ 10000; +#X obj 40 448 +~; +#X floatatom 280 397 6 0 0 0 - - - 0; +#X msg 280 367 1; +#X obj 375 545 table \$0-tab 200000; +#X obj 40 366 phasor~ 0.02; +#X msg 225 367 150001; +#X text 34 240 At left below an onset (1 or 150000 samples) is added to the index of a table lookup. If you select the onset of 150001 \, you should hear the truncation error. (The table contains a Nyquist signal and the "correct" output should be a 100 Hz. tone.) At right \, the onset is presented in the separate onset inlet. The worst-case -truncation error drops by about 30 dB., f 64; -#X text 56 642 BAD; -#X text 188 639 GOOD; -#X text 226 416 ONSET INTO TABLE; -#X text 374 396 This loads the table:; +truncation error drops by about 30 dB., f 85; +#X text 56 572 BAD; +#X text 188 569 GOOD; +#X text 226 346 ONSET INTO TABLE; #X obj 423 12 declare -stdpath ./; -#X connect 5 0 6 0; -#X connect 6 0 10 0; -#X connect 7 0 13 0; -#X connect 7 0 14 0; -#X connect 9 0 4 0; -#X connect 9 0 4 1; -#X connect 10 0 8 0; -#X connect 11 0 12 0; -#X connect 11 0 12 1; -#X connect 13 0 5 0; -#X connect 13 0 8 0; -#X connect 15 0 16 0; -#X connect 15 0 11 0; -#X connect 16 0 9 0; -#X connect 17 0 11 1; -#X connect 17 0 16 1; -#X connect 18 0 17 0; -#X connect 20 0 15 0; -#X connect 21 0 17 0; +#X text 402 341 First \, generate the table:; +#X msg 398 379 \; pd dsp 1 \, fast-forward 4500; +#X text 404 597 updated for Pd version 0.52; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 7 0 3 0; +#X connect 7 0 3 1; +#X connect 8 0 6 0; +#X connect 9 0 10 0; +#X connect 9 0 10 1; +#X connect 11 0 4 0; +#X connect 11 0 6 0; +#X connect 11 0 25 0; +#X connect 12 0 13 0; +#X connect 12 0 9 0; +#X connect 13 0 7 0; +#X connect 14 0 9 1; +#X connect 14 0 13 1; +#X connect 15 0 14 0; +#X connect 17 0 12 0; +#X connect 18 0 14 0; diff -Nru puredata-0.52.1+ds0/doc/3.audio.examples/F12.paf.pd puredata-0.52.2+ds0/doc/3.audio.examples/F12.paf.pd --- puredata-0.52.1+ds0/doc/3.audio.examples/F12.paf.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/3.audio.examples/F12.paf.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,28 +1,28 @@ -#N canvas 493 23 690 811 12; +#N canvas 493 23 690 723 12; #X declare -stdpath ./; -#X obj 45 501 cos~; -#X obj 45 448 *~; -#X obj 88 511 cos~; -#X obj 141 450 wrap~; -#X obj 105 453 -~; -#X obj 88 488 +~; -#X obj 88 549 -~; -#X obj 123 585 *~; -#X obj 105 615 +~; -#X obj 105 423 samphold~; -#X floatatom 143 286 4 0 500 0 - - - 0; -#X obj 143 309 / 10; -#X obj 143 357 line~; -#X obj 143 334 pack 0 50; -#X obj 45 354 phasor~; -#X floatatom 45 333 4 0 0 0 - - - 0; -#X text 28 311 fundamental; -#X text 264 386 index; -#X text 264 403 (percent); -#X floatatom 267 426 4 0 500 0 - - - 0; -#X obj 267 472 line~; -#X obj 201 472 *~; -#X obj 267 449 pack 0 50; +#X obj 45 484 cos~; +#X obj 45 431 *~; +#X obj 88 494 cos~; +#X obj 141 433 wrap~; +#X obj 105 436 -~; +#X obj 88 471 +~; +#X obj 88 532 -~; +#X obj 123 568 *~; +#X obj 105 598 +~; +#X obj 105 406 samphold~; +#X floatatom 143 270 4 0 500 0 - - - 0; +#X obj 143 293 / 10; +#X obj 143 340 line~; +#X obj 143 317 pack 0 50; +#X obj 45 337 phasor~; +#X floatatom 45 314 4 0 0 0 - - - 0; +#X text 28 292 fundamental; +#X text 264 369 index; +#X text 264 386 (percent); +#X floatatom 267 409 4 0 500 0 - - - 0; +#X obj 267 455 line~; +#X obj 201 455 *~; +#X obj 267 432 pack 0 50; #N canvas 0 0 450 300 (subpatch) 0; #X array bell-curve 200 float 1; #A 0 1.12535e-07 1.54727e-07 2.12059e-07 2.89706e-07 3.94519e-07 5.35535e-07 @@ -83,12 +83,12 @@ #X connect 9 0 5 1; #X connect 10 0 8 0; #X restore 490 481 pd make-table; -#X obj 201 449 cos~; -#X obj 201 426 -~ 0.25; -#X obj 201 495 +~ 100; -#X obj 201 518 tabread4~ bell-curve; -#X obj 105 654 *~; -#X text 233 543 waveshaper; +#X obj 201 432 cos~; +#X obj 201 409 -~ 0.25; +#X obj 201 478 +~ 100; +#X obj 201 501 tabread4~ bell-curve; +#X obj 105 637 *~; +#X text 233 526 waveshaper; #X text 448 749 updated for Pd version 0.37; #X text 421 688 0; #X text 612 687 200; @@ -99,34 +99,31 @@ #X text 390 432 0; #X text 447 436 -- frequency --; #X text 616 433 2700; -#X obj 82 735 output~; -#X obj 105 698 hip~; -#X obj 182 638 bng 18 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#X obj 82 718 output~; +#X obj 105 681 hip~; +#X obj 182 621 bng 18 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 #000000; -#X obj 202 663 tgl 18 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#X obj 202 646 tgl 18 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 #000000 0 1; #X text 34 42 Instead of using the two cosines as FM carrier oscillators \, we can use them as ring modulators for a natural or synthetic tone. Here we use waveshaping - to wit \, a sinusoid looking up a Gaussian bell curve. This has the nice properties that the partials are always positive cosines in phase \, and the spectrum spreads out smoothly -as the index changes., f 78; +as the index changes., f 85; #X text 63 12 PAF: TWO-COSINE RING MODULATOR FOR WAVESHAPER; -#X text 34 214 Then with ~* we do the ring modulation and we're done. -This is the PAF (phase-aligned formant) synthesis algorithm (patented -1993 by IRCAM)., f 70; -#X obj 201 400 *~ 0.5; +#X obj 201 383 *~ 0.5; #X text 34 120 For phase coherency \, the waveshaper and the cosine pair are driven from the same phasor~ object. Since the waveshaping is done using a symmetric curve \, its output is at double the frequency of the input. So for each cycle of the phasor we compute a half-cycle of the sine function (by multiplying by 0.5 and subtracting 0.25 before the cosine lookup). We center the cosine output for lookup in a 200-point -table containing a bell curve., f 78; -#X text 181 287 center frequency (tenths of fundamental), f 23; -#X text 46 639 ring mod step =>, f 10; -#X text 203 637 <= graph once; -#X text 223 664 <= repeatedly; +table containing a bell curve., f 85; +#X text 181 271 center frequency (tenths of fundamental), f 23; +#X text 46 622 ring mod step =>, f 10; +#X text 203 620 <= graph once; +#X text 223 647 <= repeatedly; #N canvas 828 136 534 605 fft 0; #X obj 95 134 inlet~; #X obj 209 404 inlet; @@ -183,8 +180,11 @@ #X connect 25 0 26 1; #X connect 26 0 2 0; #X connect 28 0 24 1; -#X restore 163 689 pd fft; -#X obj 509 13 declare -stdpath ./; +#X restore 163 672 pd fft; +#X obj 506 261 declare -stdpath ./; +#X text 34 214 Then with *~ we do the ring modulation and we're done. +This is the PAF (phase-aligned formant) synthesis algorithm (patented +1993 by IRCAM)., f 85; #X connect 0 0 6 1; #X connect 0 0 8 0; #X connect 1 0 5 0; @@ -206,7 +206,7 @@ #X connect 14 0 9 1; #X connect 14 0 5 1; #X connect 14 0 1 0; -#X connect 14 0 45 0; +#X connect 14 0 44 0; #X connect 15 0 14 0; #X connect 19 0 22 0; #X connect 20 0 21 1; @@ -217,9 +217,9 @@ #X connect 27 0 28 0; #X connect 28 0 29 1; #X connect 29 0 39 0; -#X connect 29 0 51 0; +#X connect 29 0 50 0; #X connect 39 0 38 0; #X connect 39 0 38 1; -#X connect 40 0 51 1; -#X connect 41 0 51 2; -#X connect 45 0 26 0; +#X connect 40 0 50 1; +#X connect 41 0 50 2; +#X connect 44 0 26 0; diff -Nru puredata-0.52.1+ds0/doc/4.data.structures/07.sequencer.pd puredata-0.52.2+ds0/doc/4.data.structures/07.sequencer.pd --- puredata-0.52.1+ds0/doc/4.data.structures/07.sequencer.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/4.data.structures/07.sequencer.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,7 +1,8 @@ -#N struct template-toplevel float x float y float z float q array bazoo -template-element; -#N struct template-element float x float y float w; -#N canvas 469 40 552 712 12; +#N struct template-toplevel float x float y float voiceno array pitch +template-pitch array amp template-amp; +#N struct template-pitch float x float y float w; +#N struct template-amp float x float y float w; +#N canvas 295 32 556 659 12; #X declare -stdpath ./; #N canvas 565 104 469 174 template-toplevel 0; #X obj 30 97 plot pitch voiceno 3 10 0; @@ -9,36 +10,37 @@ #X obj 29 32 struct template-toplevel float x float y float voiceno array pitch template-pitch array amp template-amp; #X obj 29 72 filledpolygon 9 9 0 0 -2 0 2 5 2 5 -2; -#X restore 181 423 pd template-toplevel; +#X restore 171 380 pd template-toplevel; #N canvas 164 144 383 111 template-amp 0; #X obj 15 41 struct template-amp float x float y float w; -#X restore 181 447 pd template-amp; +#X restore 171 404 pd template-amp; #N canvas 42 221 414 98 template-pitch 0; #X obj 21 29 struct template-pitch float x float y float w; -#X restore 181 471 pd template-pitch; +#X restore 171 428 pd template-pitch; #N canvas 347 73 539 692 synthesis 0; #X msg 126 275 next; #X msg 109 217 traverse pd-data \, next; #X obj 109 305 pointer template-toplevel; #X obj 109 328 t p p; #X obj 109 351 get template-toplevel voiceno; -#X obj 109 24 inlet; -#X obj 109 53 route start stop; -#X msg 163 79 \; reset bang; +#X obj 109 380 pack 0 p; +#X obj 109 29 inlet; +#X obj 109 58 route start stop; +#X msg 162 79 \; reset bang; #X obj 299 55 r reset; -#X obj 155 146 s reset; +#X obj 154 140 s reset; #X obj 126 249 r next-evt; #X obj 109 409 route 0 9 90 900 99 909 990; #X obj 56 447 voice; #X obj 56 621 outlet~; #X msg 299 83 \; reset-stop stop \; time-of-last-evt 0 \; pd-data sort ; -#X obj 378 368 s delay-multiplier; -#X obj 357 285 t b f, f 6; -#X msg 357 312 1000; -#X obj 378 337 /; -#X obj 357 259 r tempo; -#X obj 109 121 t b b b; +#X obj 373 386 s delay-multiplier; +#X obj 376 311 t b f; +#X msg 373 338 1000; +#X obj 390 362 /; +#X obj 376 285 r tempo; +#X obj 109 115 t b b b; #X msg 132 171 \; pd-data sort; #X obj 56 470 voice; #X obj 56 493 voice; @@ -46,85 +48,103 @@ #X obj 56 540 voice; #X obj 56 563 voice; #X obj 56 586 voice; -#X obj 109 380 pack f p; #X connect 0 0 2 0; #X connect 1 0 2 0; #X connect 2 0 3 0; #X connect 3 0 4 0; -#X connect 3 1 28 1; -#X connect 4 0 28 0; -#X connect 5 0 6 0; -#X connect 6 0 20 0; -#X connect 6 1 7 0; -#X connect 8 0 14 0; -#X connect 10 0 0 0; -#X connect 11 0 12 1; -#X connect 11 1 22 1; -#X connect 11 2 23 1; -#X connect 11 3 24 1; -#X connect 11 4 25 1; -#X connect 11 5 26 1; -#X connect 11 6 27 1; -#X connect 12 0 22 0; -#X connect 16 0 17 0; -#X connect 16 1 18 1; +#X connect 3 1 5 1; +#X connect 4 0 5 0; +#X connect 5 0 12 0; +#X connect 6 0 7 0; +#X connect 7 0 21 0; +#X connect 7 1 8 0; +#X connect 9 0 15 0; +#X connect 11 0 0 0; +#X connect 12 0 13 1; +#X connect 12 1 23 1; +#X connect 12 2 24 1; +#X connect 12 3 25 1; +#X connect 12 4 26 1; +#X connect 12 5 27 1; +#X connect 12 6 28 1; +#X connect 13 0 23 0; #X connect 17 0 18 0; -#X connect 18 0 15 0; +#X connect 17 1 19 1; +#X connect 18 0 19 0; #X connect 19 0 16 0; -#X connect 20 0 1 0; -#X connect 20 1 21 0; -#X connect 20 2 9 0; -#X connect 22 0 23 0; +#X connect 20 0 17 0; +#X connect 21 0 1 0; +#X connect 21 1 22 0; +#X connect 21 2 10 0; #X connect 23 0 24 0; #X connect 24 0 25 0; #X connect 25 0 26 0; #X connect 26 0 27 0; -#X connect 27 0 13 0; -#X connect 28 0 11 0; -#X restore 156 577 pd synthesis; -#X floatatom 376 523 4 0 0 0 - - - 0; -#X msg 105 540 start; -#X msg 156 540 stop; -#N canvas 1041 67 445 511 data 1; -#X scalar template-toplevel 22 86 0 0 \; 0 0 0 \; \;; -#X scalar template-toplevel 33 80 0 0 \; 0 0 0 \; \;; -#X scalar template-toplevel 57 43.25 0 0 \; 0 0 0 \; \;; -#X scalar template-toplevel 83 80 0 0 \; 0 0 0 \; \;; -#X scalar template-toplevel 161 105 0 0 \; 0 0 0 \; \;; -#X scalar template-toplevel 338 63.5 0 0 \; 0 0 0 \; \;; -#X coords 0 127.75 1 127.5 0 0 0; -#X restore 181 399 pd data; -#X obj 376 550 s tempo; -#X text 49 54 This patch shows an example of how to use data collections +#X connect 27 0 28 0; +#X connect 28 0 14 0; +#X restore 199 535 pd synthesis; +#X floatatom 385 464 0 0 0 0 - - - 0; +#X msg 148 498 start; +#X msg 199 498 stop; +#N canvas 869 73 415 496 data 1; +#X scalar template-toplevel 22 86 900 \; 0 0 12 \; 10 0 12 \; \; 0 +0 0 \; 10 0 2.5 \; 11 0 0 \; \;; +#X scalar template-toplevel 33 80 990 \; 0 0 12 \; 10 0 12 \; \; 0 +0 2.5 \; 10 0 2.5 \; 11 0 0 \; \;; +#X scalar template-toplevel 57 43.25 90 \; 0 65 12 \; 100 10 0 \; 100 +10 12 \; 230 50 0 \; 230 10 3 \; 240 60 0 \; 240 25 10 \; 250 60 0 +\; 250 37 10 \; 260 65 0.5 \; 285 65 0.5 \; \; 1 0 2 \; 103 0 1 \; +195 0 2 \; 220 0 0.75 \; 225 0 1.25 \; 248 0 2.5 \; 251 0 2.25 \; 255 +0 0 \; 256 0 1.5 \; 260 0 0 \; 261 0 2 \; 265 0 0 \; 266 0 2.5 \; 270 +0 0 \; 271 0 3 \; 275 0 0 \; \;; +#X scalar template-toplevel 83 80 900 \; 0 5 0.25 \; 60 5 0.25 \; \; +0 0 0 \; 28 -0.25 3.5 \; 58 -0.25 0 \; \;; +#X scalar template-toplevel 161 105 900 \; 0 0 12 \; 70 -20 12 \; \; +0 0 0 \; 10 0 2.5 \; 20 0 0 \; 30 0 0 \; 40 0 2.5 \; 50 0 0 \; 60 0 +2.5 \; 70 0 0 \; \;; +#X scalar template-toplevel 338 63.5 909 \; 0 0 12 \; 50 0 12 \; \; +0 0 4 \; 10 0 2.5 \; 50 0 0 \; \;; +#X coords 0 124 1 123.75 0 0 0; +#X restore 171 356 pd data; +#N canvas 330 267 400 206 stuff 0; +#X msg 31 53 \; pd-data read score.txt; +#X obj 242 21 loadbang; +#X msg 242 48 \; tempo 60; +#X msg 232 115 \; pd-data sort; +#X msg 31 111 \; pd-data write score.txt; +#X connect 1 0 2 0; +#X restore 171 451 pd stuff; +#X obj 385 417 r tempo; +#X msg 385 440 set \$1; +#X obj 385 488 s tempo; +#X text 39 11 This patch shows an example of how to use data collections as musical sequences (with apologies to Yuasa and Stockhausen). Here the black traces show dynamics and the colored ones show pitch. The fatness of the pitch traces give bandwidth. Any of the three can change over the life of the event., f 61; -#X text 48 136 To hear the result \, turn the volume up to 70 or so +#X text 38 93 To hear the result \, turn the volume up to 70 or so (higher if it's not loud enough the first time) and hit "start". You can set the tempo lower if that helps you follow the "score" the first couple of times., f 61; -#X obj 156 615 output~; -#X text 48 297 This confuses Tk's scroll bars \, by the way \, and +#X obj 199 573 output~; +#X text 330 608 Updated for Pd version 0.39; +#X text 38 254 This confuses Tk's scroll bars \, by the way \, and when you resize the window the image still sticks to the top and not the bottom of the window as it should. When you resize a canvas with y having positive units (growing upward) \, just hit 'save' and Pd will check the scrolling and correct if necessary., f 61; -#X text 48 202 Note the screen units in the "data" window (open it +#X text 38 159 Note the screen units in the "data" window (open it and get "properties" to see them.) Normally \, there are -1 y units per pixel - that is \, adding 1 to y moves down one pixel. This is the "natural" y unit for most drawing programs. In the data window \, each pixel is 0.25 units \, meaning that adding one to a 'y' value moves it up four pixels., f 61; -#X text 409 523 <= tempo; -#X msg 376 497 60; -#X obj 376 473 loadbang; -#X obj 331 16 declare -stdpath ./; -#X text 323 636 Updated for Pd version 0.52; -#X connect 3 0 11 0; -#X connect 3 0 11 1; -#X connect 4 0 8 0; +#X obj 354 368 declare -stdpath ./; +#X text 418 464 <-- tempo; +#X connect 3 0 14 0; +#X connect 3 0 14 1; +#X connect 4 0 11 0; #X connect 5 0 3 0; #X connect 6 0 3 0; -#X connect 15 0 4 0; -#X connect 16 0 15 0; +#X connect 9 0 10 0; +#X connect 10 0 4 0; diff -Nru puredata-0.52.1+ds0/doc/4.data.structures/12.beat-patterns.pd puredata-0.52.2+ds0/doc/4.data.structures/12.beat-patterns.pd --- puredata-0.52.1+ds0/doc/4.data.structures/12.beat-patterns.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/4.data.structures/12.beat-patterns.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,5 +1,5 @@ #N struct rect float x float y float w float h; -#N canvas 427 129 397 213 12; +#N canvas 302 129 397 213 12; #N canvas 457 224 653 284 rect 0; #X obj 211 156 pointer; #X msg 211 125 traverse pd-test \, bang; @@ -18,7 +18,7 @@ #X connect 8 0 9 0; #X connect 9 0 7 0; #X restore 115 121 pd rect; -#N canvas 861 61 649 658 output 1; +#N canvas 716 48 649 658 output 1; #X scalar rect 57 179 2 10 \;; #X scalar rect 82 179 1 10 \;; #X scalar rect 107 179 1 10 \;; @@ -362,43 +362,43 @@ #X msg 632 94 traverse \$1 \, bang; #X msg 52 34 \; pd-output clear; #X msg 180 34 \; start pd-output; -#X obj 57 170 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 208 170 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 362 171 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; +#X obj 57 170 bng 15 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#000000; +#X obj 208 170 bng 15 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#000000; +#X obj 362 171 bng 15 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#000000; #X obj 208 128 r add-pts1; -#X obj 52 278 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 187 279 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 323 280 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; +#X obj 52 278 bng 15 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#000000; +#X obj 187 279 bng 15 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#000000; +#X obj 323 280 bng 15 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#000000; #X obj 187 230 r add-pts1; #X obj 57 190 beat-maker 3 2 600; #X obj 208 189 beat-maker 5 2 570; #X obj 362 190 beat-maker 7 2 540; -#X obj 463 279 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 602 277 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 56 363 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 191 364 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 328 365 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; +#X obj 463 279 bng 15 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#000000; +#X obj 602 277 bng 15 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#000000; +#X obj 56 363 bng 15 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#000000; +#X obj 191 364 bng 15 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#000000; +#X obj 328 365 bng 15 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#000000; #X obj 191 335 r add-pts1; -#X obj 52 495 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 197 495 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 334 495 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; +#X obj 52 495 bng 15 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#000000; +#X obj 197 495 bng 15 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#000000; +#X obj 334 495 bng 15 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#000000; #X obj 197 447 r add-pts1; -#X obj 472 495 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; +#X obj 472 495 bng 15 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#000000; #X obj 53 301 beat-maker 2 3 480; #X obj 323 301 beat-maker 5 3 420; #X obj 463 301 beat-maker 7 3 390; diff -Nru puredata-0.52.1+ds0/doc/4.data.structures/13.sliderule.pd puredata-0.52.2+ds0/doc/4.data.structures/13.sliderule.pd --- puredata-0.52.1+ds0/doc/4.data.structures/13.sliderule.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/4.data.structures/13.sliderule.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,7 +1,7 @@ #N struct label float x float y float n; #N struct line float x float y float w; -#N canvas 414 144 474 307 12; -#N canvas 969 60 508 854 data 1; +#N canvas 357 144 474 307 12; +#N canvas 851 32 508 723 data 1; #X scalar label 130 91.4064 36 \;; #X scalar label 30 123.999 43 \;; #X scalar label 150 129.826 44 \;; @@ -170,7 +170,7 @@ #X scalar line 170 642.254 30 \;; #X scalar line 170 679.255 30 \;; #X scalar line 50 718.456 150 \;; -#X coords 0 854 1 853 0 0 0; +#X coords 0 723 1 722 0 0 0; #X restore 72 191 pd data; #N canvas 232 164 317 120 line 0; #X obj 30 62 drawpolygon 0 1 0 0 w 0; diff -Nru puredata-0.52.1+ds0/doc/4.data.structures/14.partialtracer.pd puredata-0.52.2+ds0/doc/4.data.structures/14.partialtracer.pd --- puredata-0.52.1+ds0/doc/4.data.structures/14.partialtracer.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/4.data.structures/14.partialtracer.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,39 +1,25 @@ #N struct trace-template float x float y float voiceno array bazoo point-template; #N struct point-template float y float amp; -#N canvas 260 44 977 786 12; -#X floatatom 797 96 0 0 100 0 - - - 0; -#N canvas 516 98 253 173 (subpatch) 0; -#X obj 101 107 outlet; -#X msg 101 76 set \$1; -#X obj 101 42 r osc-amp; -#X connect 1 0 0 0; -#X connect 2 0 1 0; -#X restore 797 70 pd; -#X obj 797 124 s osc-amp; -#X obj 151 561 pack 0 100; -#X obj 152 587 line~; -#X obj 151 536 dbtorms; -#X obj 152 647 *~; -#X floatatom 810 277 0 0 0 0 - - - 0; -#X msg 718 294 0; -#X floatatom 847 298 0 0 0 0 - - - 0; -#X floatatom 667 96 0 0 110 0 - - - 0; -#N canvas 516 98 254 149 (subpatch) 0; -#X obj 87 92 outlet; -#X msg 87 65 set \$1; -#X obj 87 38 r grain-amp; -#X connect 1 0 0 0; -#X connect 2 0 1 0; -#X restore 667 69 pd; +#N canvas 397 24 954 715 12; +#X floatatom 797 86 0 0 100 0 - - - 0; +#X obj 797 114 s osc-amp; +#X obj 151 521 pack 0 100; +#X obj 152 547 line~; +#X obj 151 496 dbtorms; +#X obj 152 607 *~; +#X floatatom 810 257 0 0 0 0 - - - 0; +#X msg 718 274 0; +#X floatatom 847 278 0 0 0 0 - - - 0; +#X floatatom 667 86 0 0 110 0 - - - 0; #N canvas 395 221 527 185 peak-template 0; #X obj 65 83 filledpolygon 3 3 3 0 0 0 amp 0 0; #X obj 58 41 struct peak-template float x float y float amp float ampreal float ampimag float used; -#X restore 318 671 pd peak-template; +#X restore 318 635 pd peak-template; #N canvas 463 50 600 416 peak-list 0; -#X restore 318 493 pd peak-list; -#N canvas 901 178 800 609 trace-list 1; +#X restore 318 457 pd peak-list; +#N canvas 72 99 800 609 trace-list 1; #X scalar trace-template 0 0 0 \; 89.9298 68.3809 \; 90.3198 71.2117 \; 90.5672 72.5406 \; 90.9439 71.017 \; 91.0854 63.4825 \; \;; #X scalar trace-template 0 0 1 \; 95.2703 60.7475 \; 95.1422 45.7243 @@ -1405,7 +1391,7 @@ #X scalar trace-template 415 0 23 \; 111.899 38.8658 \; \;; #X scalar trace-template 415 0 24 \; 93.1614 34.1349 \; \;; #X coords 0 152.25 1 152 0 0 0; -#X restore 318 472 pd trace-list; +#X restore 318 436 pd trace-list; #N canvas 375 90 563 188 trace-template 0; #X text 65 101 This template describes a pitch/amplitude trace. The array "bazoo" holds the actual points. In this template \, y is always @@ -1414,7 +1400,7 @@ #X obj 84 26 struct trace-template float x float y float voiceno array bazoo point-template; #X obj 88 68 plot bazoo 0 1 0 0 5; -#X restore 318 692 pd trace-template; +#X restore 318 656 pd trace-template; #N canvas 311 238 528 190 point-template 0; #X text 64 65 This template describes a single point on a pitch trace (cf. trace-template w describes the trace itself.); @@ -1422,11 +1408,11 @@ 4 * pitch. You also get an "amp" field in dB \, which you can't see as a plot (yet).; #X obj 149 23 struct point-template float y float amp; -#X restore 318 713 pd point-template; -#X obj 28 441 pack 0 100; -#X obj 28 466 line~; -#X obj 28 418 dbtorms; -#X floatatom 565 96 0 0 110 0 - - - 0; +#X restore 318 677 pd point-template; +#X obj 28 401 pack 0 100; +#X obj 28 426 line~; +#X obj 28 378 dbtorms; +#X floatatom 565 86 0 0 110 0 - - - 0; #N canvas 193 52 731 459 output 0; #X obj 268 118 t b f; #X obj 259 142 +; @@ -1485,21 +1471,14 @@ #X connect 21 1 3 0; #X connect 22 0 3 1; #X connect 22 0 0 0; -#X restore 843 96 pd output; -#N canvas 516 98 256 189 (subpatch) 0; -#X obj 99 119 outlet; -#X msg 99 88 set \$1; -#X obj 99 55 r loop-amp; -#X connect 1 0 0 0; -#X connect 2 0 1 0; -#X restore 565 68 pd; -#X obj 28 528 *~; -#X obj 29 688 hip~ 5; -#X obj 29 726 dac~; -#X obj 696 602 adc~; -#X obj 565 124 s loop-amp; -#X msg 843 66 mute; -#X text 54 143 click here first; +#X restore 863 86 pd output; +#X obj 28 488 *~; +#X obj 29 638 hip~ 5; +#X obj 29 676 dac~; +#X obj 696 582 adc~; +#X obj 565 114 s loop-amp; +#X msg 863 56 mute; +#X text 54 133 click here first; #N canvas 357 94 1118 667 make-trace 0; #X obj 721 154 pointer; #X obj 721 491 setsize trace-template bazoo; @@ -1638,20 +1617,20 @@ #X connect 41 0 15 0; #X connect 42 0 4 0; #X connect 44 0 36 0; -#X restore 318 639 pd make-trace; -#X floatatom 94 260 0 0 0 0 location location-set location 0; -#X obj 129 449 r loop-amp; -#X obj 757 332 f; -#X obj 797 332 +; -#X msg 716 365 0; -#X msg 757 277 1; -#X msg 757 413 \; location \$1 \; snapshot bang; -#X floatatom 757 356 0 0 0 0 - - - 0; -#X obj 687 244 t b b; -#X obj 847 274 r incr; -#X obj 28 392 r grain-amp; -#X obj 151 511 r osc-amp; -#X obj 170 617 catch~ osc-sum; +#X restore 318 603 pd make-trace; +#X floatatom 94 250 0 0 0 0 location location-set location 0; +#X obj 129 409 r loop-amp; +#X obj 757 312 f; +#X obj 797 312 +; +#X msg 716 345 0; +#X msg 757 257 1; +#X msg 757 393 \; location \$1 \; snapshot bang; +#X floatatom 757 336 0 0 0 0 - - - 0; +#X obj 687 234 t b b; +#X obj 847 254 r incr; +#X obj 28 352 r grain-amp; +#X obj 151 471 r osc-amp; +#X obj 170 577 catch~ osc-sum; #N canvas 481 122 749 645 osc-bank 0; #X msg 151 126 0; #X obj 475 444 pointer; @@ -1858,8 +1837,8 @@ #X connect 41 0 27 0; #X connect 42 0 24 0; #X connect 42 1 1 1; -#X restore 318 594 pd osc-bank; -#X obj 667 124 s grain-amp; +#X restore 318 558 pd osc-bank; +#X obj 667 114 s grain-amp; #N canvas 599 58 832 361 save-list 0; #X floatatom 760 301 0 0 0 0 - - - 0; #X floatatom 689 301 0 0 0 0 - - - 0; @@ -1907,14 +1886,14 @@ #X connect 21 2 7 0; #X connect 21 3 15 3; #X connect 21 4 15 4; -#X restore 318 617 pd save-list; -#X msg 159 389 \; start-resynth bang; -#X msg 321 389 \; step-resynth bang; -#X msg 481 389 \; osc-stop bang; -#X text 792 147 resynth; -#X text 663 147 analyzed grains; -#X text 564 147 original; -#X text 632 181 ... and here third to analyze; +#X restore 318 581 pd save-list; +#X msg 159 349 \; start-resynth bang; +#X msg 321 369 \; step-resynth bang; +#X msg 481 369 \; osc-stop bang; +#X text 792 137 resynth; +#X text 663 137 analyzed grains; +#X text 564 137 original; +#X text 632 171 ... and here third to analyze; #N canvas 189 52 524 498 test-signal 0; #X obj 196 314 tabread4~ sample; #X obj 196 289 line~; @@ -1961,7 +1940,7 @@ #X connect 20 0 16 0; #X connect 20 1 11 0; #X connect 20 1 2 1; -#X restore 129 477 pd test-signal; +#X restore 129 437 pd test-signal; #N canvas 916 312 753 332 insample 0; #N canvas 0 50 450 300 (subpatch) 0; #X array sample 62079 float 0; @@ -2011,10 +1990,10 @@ #X connect 17 0 19 0; #X connect 18 0 7 0; #X connect 22 0 23 0; -#X restore 318 514 pd insample; -#X obj 683 630 tabwrite~ sample; -#X text 172 24 SINUSOID TRACKING; -#X obj 321 340 tgl 15 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#X restore 318 478 pd insample; +#X obj 683 610 tabwrite~ sample; +#X text 172 14 SINUSOID TRACKING; +#X obj 321 320 tgl 15 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 #000000 0 1; #N canvas 143 192 727 433 sigmund 0; #X obj 222 244 spigot; @@ -2085,15 +2064,15 @@ #X connect 28 0 29 0; #X connect 29 0 27 0; #X connect 30 0 28 0; -#X restore 318 572 pd sigmund; -#X obj 757 383 moses 1350; -#X text 174 280 to resynthesize \, "start" once and "step" ad lib. +#X restore 318 536 pd sigmund; +#X obj 757 363 moses 1350; +#X text 174 252 to resynthesize \, "start" once and "step" ad lib. To stop \, stop stepping and hit osc-stop. Note resynth amplitude control -above.; -#X msg 45 167 \; pd dsp 1 \; window-size 2048 \; sample-rate 44100 +above., f 64; +#X msg 45 157 \; pd dsp 1 \; window-size 2048 \; sample-rate 44100 \; incr 10; -#X obj 757 303 metro 50; -#X obj 321 360 metro 10; +#X obj 757 283 metro 50; +#X obj 321 340 metro 10; #N canvas 465 106 743 403 misc 0; #X floatatom 51 190 0 0 0 0 - - - 0; #X obj 51 216 s loud; @@ -2150,19 +2129,19 @@ #X connect 24 0 26 0; #X connect 25 0 24 0; #X connect 27 0 28 0; -#X restore 318 535 pd misc; -#X floatatom 432 330 0 0 0 0 osc-speed osc-speed-set osc-speed 0; -#X floatatom 95 285 0 1 50 0 nvoice nvoice-set nvoice 0; -#X obj 395 360 r osc-speed; -#X text 44 317 analysis; -#X text 46 332 parameters; -#X text 33 48 This patch derives sinusoidal "tracks" from a sampled +#X restore 318 499 pd misc; +#X floatatom 432 310 0 0 0 0 osc-speed osc-speed-set osc-speed 0; +#X floatatom 95 275 0 1 50 0 nvoice nvoice-set nvoice 0; +#X obj 395 340 r osc-speed; +#X text 44 307 analysis; +#X text 46 322 parameters; +#X text 33 38 This patch derives sinusoidal "tracks" from a sampled sound using sigmund~ and the data structure facilities. The number of tracks may range from 1 to 50 You can edit the tracks (but note that the resynthesizer is limited to 50-voice polyphony.); -#X obj 687 209 bng 25 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X obj 687 199 bng 25 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X msg 629 413 \; location 0 \; clear-all bang; +#X msg 629 393 \; location 0 \; clear-all bang; #N canvas 204 89 750 450 grain 0; #X floatatom 244 224 0 0 0 0 - - - 0; #X obj 479 141 r sample-rate; @@ -2219,70 +2198,91 @@ #X connect 24 0 20 1; #X connect 25 0 26 0; #X connect 26 0 24 0; -#X restore 46 496 pd grain; -#X floatatom 844 356 5 0 0 0 - - - 0; -#X obj 683 533 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X restore 46 456 pd grain; +#X floatatom 844 336 5 0 0 0 - - - 0; +#X obj 683 513 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X text 703 532 live 3" sample; -#X msg 698 561 \; resize-sample 3000; -#X obj 539 578 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X text 703 512 live 3" sample; +#X msg 698 541 \; resize-sample 3000; +#X obj 539 558 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 539 598 openpanel; -#X obj 539 623 s read-sample; -#X text 532 540 browse for soundfile, f 10; -#X text 602 39 AMPLITUDES \, dB \, 100-based; -#X text 230 130 Then read a sample (or record below right); -#X msg 224 152 \; read-sample ../sound/voice.wav 44100; -#X msg 224 192 \; read-sample ../sound/voice2.wav 44100; -#X msg 224 232 \; read-sample ../sound/bell.aiff 44100; -#X obj 844 331 r sample-msec; -#X connect 0 0 2 0; +#X obj 539 578 openpanel; +#X obj 539 603 s read-sample; +#X text 532 520 browse for soundfile, f 10; +#X text 602 29 AMPLITUDES \, dB \, 100-based; +#X text 230 110 Then read a sample (or record below right); +#X msg 224 132 \; read-sample ../sound/voice.wav 44100; +#X msg 224 170 \; read-sample ../sound/voice2.wav 44100; +#X msg 224 207 \; read-sample ../sound/bell.aiff 44100; +#X obj 844 311 r sample-msec; +#N canvas 516 98 256 189 set 0; +#X obj 99 119 outlet; +#X msg 99 88 set \$1; +#X obj 99 55 r loop-amp; #X connect 1 0 0 0; -#X connect 3 0 4 0; -#X connect 4 0 6 0; -#X connect 5 0 3 0; -#X connect 6 0 24 0; -#X connect 7 0 63 1; -#X connect 8 0 33 1; -#X connect 9 0 34 1; -#X connect 10 0 45 0; -#X connect 11 0 10 0; -#X connect 17 0 18 0; -#X connect 18 0 23 0; -#X connect 19 0 17 0; -#X connect 20 0 27 0; -#X connect 22 0 20 0; -#X connect 23 0 24 0; -#X connect 24 0 25 0; -#X connect 24 0 25 1; -#X connect 26 0 56 0; -#X connect 28 0 21 0; -#X connect 32 0 54 0; -#X connect 33 0 34 0; -#X connect 33 0 38 0; -#X connect 34 0 33 1; -#X connect 35 0 63 0; -#X connect 36 0 63 0; -#X connect 38 0 60 0; -#X connect 39 0 36 0; -#X connect 39 1 8 0; -#X connect 39 1 73 0; -#X connect 40 0 9 0; -#X connect 41 0 19 0; -#X connect 42 0 5 0; -#X connect 43 0 6 1; -#X connect 54 0 24 0; -#X connect 58 0 64 0; -#X connect 60 0 37 0; -#X connect 60 1 35 0; -#X connect 63 0 33 0; -#X connect 64 0 48 0; -#X connect 68 0 64 1; -#X connect 72 0 39 0; -#X connect 74 0 23 1; -#X connect 75 0 60 1; -#X connect 76 0 56 0; -#X connect 76 0 78 0; -#X connect 79 0 80 0; -#X connect 80 0 81 0; -#X connect 88 0 75 0; +#X connect 2 0 1 0; +#X restore 565 58 pd set; +#N canvas 516 98 254 149 set 0; +#X obj 87 92 outlet; +#X msg 87 65 set \$1; +#X obj 87 38 r grain-amp; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X restore 667 59 pd set; +#N canvas 516 98 253 173 set 0; +#X obj 101 107 outlet; +#X msg 101 76 set \$1; +#X obj 101 42 r osc-amp; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X restore 797 60 pd set; +#X connect 0 0 1 0; +#X connect 2 0 3 0; +#X connect 3 0 5 0; +#X connect 4 0 2 0; +#X connect 5 0 21 0; +#X connect 6 0 60 1; +#X connect 7 0 30 1; +#X connect 8 0 31 1; +#X connect 9 0 42 0; +#X connect 15 0 16 0; +#X connect 16 0 20 0; +#X connect 17 0 15 0; +#X connect 18 0 24 0; +#X connect 20 0 21 0; +#X connect 21 0 22 0; +#X connect 21 0 22 1; +#X connect 23 0 53 0; +#X connect 25 0 19 0; +#X connect 29 0 51 0; +#X connect 30 0 31 0; +#X connect 30 0 35 0; +#X connect 31 0 30 1; +#X connect 32 0 60 0; +#X connect 33 0 60 0; +#X connect 35 0 57 0; +#X connect 36 0 33 0; +#X connect 36 1 7 0; +#X connect 36 1 70 0; +#X connect 37 0 8 0; +#X connect 38 0 17 0; +#X connect 39 0 4 0; +#X connect 40 0 5 1; +#X connect 51 0 21 0; +#X connect 55 0 61 0; +#X connect 57 0 34 0; +#X connect 57 1 32 0; +#X connect 60 0 30 0; +#X connect 61 0 45 0; +#X connect 65 0 61 1; +#X connect 69 0 36 0; +#X connect 71 0 20 1; +#X connect 72 0 57 1; +#X connect 73 0 53 0; +#X connect 73 0 75 0; +#X connect 76 0 77 0; +#X connect 77 0 78 0; +#X connect 85 0 72 0; +#X connect 86 0 18 0; +#X connect 87 0 9 0; +#X connect 88 0 0 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/abs~-help.pd puredata-0.52.2+ds0/doc/5.reference/abs~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/abs~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/abs~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,27 +1,47 @@ -#N canvas 642 81 520 354 12; -#X obj 150 207 metro 100; -#X obj 150 235 snapshot~; -#X floatatom 98 125 5 0 0 0 - - - 0; -#X floatatom 150 261 7 0 0 0 - - - 0; -#X text 215 315 updated for Pd version 0.42.; -#X obj 98 180 abs~; -#X obj 51 18 abs~; -#X text 63 68 Passes nonnegative values unchanged \, but replaces negative -ones with their (positive) inverses., f 49; -#X obj 110 316 abs; -#X text 38 316 see also:; -#X text 90 17 - absolute value for signals; -#X obj 141 316 expr~; -#X obj 150 180 loadbang; -#X obj 251 182 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#N canvas 621 82 496 347 12; +#X obj 264 201 metro 100; +#X obj 264 229 snapshot~; +#X floatatom 212 119 5 0 0 0 - - - 0; +#X floatatom 264 255 7 0 0 0 - - - 0; +#X obj 212 174 abs~; +#X obj 264 174 loadbang; +#X obj 68 172 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X msg 251 208 \; pd dsp \$1; -#X obj 98 150 sig~ -10; -#X text 274 181 DSP on/off; +#X msg 68 201 \; pd dsp \$1; +#X obj 212 144 sig~ -10; +#X text 91 171 DSP on/off; +#X text 268 315 updated for Pd version 0.42.; +#X obj 24 18 abs~; +#X obj 103 316 abs; +#X text 31 316 see also:; +#X text 63 17 - absolute value for signals; +#X obj 134 316 expr~; +#X text 403 17 <= click; +#N canvas 783 198 488 203 reference 0; +#X obj 8 52 cnv 5 450 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 103 cnv 2 450 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 140 cnv 2 450 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 177 cnv 5 450 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 28 20 abs~; +#X text 70 19 - absolute value for signals; +#X text 138 113 signal - signal with absolute values.; +#X text 137 70 signal - signal input., f 37; +#X text 146 151 NONE, f 36; +#X restore 309 18 pd reference; +#X obj 8 52 cnv 1 480 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 8 303 cnv 1 480 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 55 65 The abs~ object passes nonnegative values unchanged \, +but replaces negative ones with their (positive) inverses., f 52; #X connect 0 0 1 0; #X connect 1 0 3 0; -#X connect 2 0 15 0; -#X connect 5 0 1 0; -#X connect 12 0 0 0; -#X connect 13 0 14 0; -#X connect 15 0 5 0; +#X connect 2 0 8 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 7 0; +#X connect 8 0 4 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/acoustics~-help.pd puredata-0.52.2+ds0/doc/5.reference/acoustics~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/acoustics~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/acoustics~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,98 +1,123 @@ -#N canvas 521 55 691 573 12; -#X obj 545 384 loadbang; -#X text 43 511 see also:; -#X obj 121 496 mtof; -#X text 432 531 updated for Pd version 0.33; -#X text 54 400 Boundary conditions are handled "reasonably". 100 db +#N canvas 521 55 687 545 12; +#X obj 545 371 loadbang; +#X text 54 387 Boundary conditions are handled "reasonably". 100 db is assigned an RMS of 1 \, and dbtorms~ and dbtopow~ output true zero for 0 dB and less., f 64; -#X text 53 306 These objects convert MIDI pitch to frequency and back +#X text 53 293 These objects convert MIDI pitch to frequency and back \, and dB to and from RMS and power. They take audio signals as input and output (and work sample by sample.) Since they call library math functions \, they may be much more expensive than other workaday tilde objects such as *~ and osc~ \, depending on your hardware and math library., f 64; -#X obj 152 175 mtof~; -#X obj 152 238 snapshot~; -#X obj 60 238 snapshot~; -#X floatatom 60 112 6 0 0 0 - - - 0; -#X obj 60 175 ftom~; -#X obj 251 238 snapshot~; -#X obj 251 175 dbtorms~; -#X obj 60 143 sig~; -#X obj 152 143 sig~; -#X obj 251 143 sig~; -#X obj 456 238 snapshot~; -#X obj 353 238 snapshot~; -#X obj 555 238 snapshot~; -#X floatatom 555 266 9 0 0 0 - - - 0; -#X obj 353 141 sig~; -#X obj 456 141 sig~; -#X obj 555 141 sig~; -#X obj 353 175 rmstodb~; -#X obj 456 175 dbtopow~; -#X obj 555 175 powtodb~; -#X obj 565 211 r metro; -#X floatatom 152 266 9 0 0 0 - - - 0; -#X floatatom 60 266 9 0 0 0 - - - 0; -#X floatatom 251 266 9 0 0 0 - - - 0; -#X floatatom 456 266 9 0 0 0 - - - 0; -#X floatatom 353 266 9 0 0 0 - - - 0; -#X obj 466 211 r metro; -#X obj 362 211 r metro; -#X obj 261 211 r metro; -#X obj 162 211 r metro; -#X obj 71 211 r metro; -#X text 208 21 - acoustic conversions for audio signals, f 41; -#X obj 92 24 mtof~; -#X obj 47 24 ftom~; -#X obj 136 24 dbtorms~; -#X obj 47 49 rmstodb~; -#X obj 114 49 dbtopow~; -#X obj 178 49 powtodb~; -#X text 159 495 (etc.) - acoustic conversions for control data; -#X obj 545 413 metro 100; -#X obj 545 439 s metro; -#X msg 543 339 \; pd dsp \$1; -#X obj 543 313 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X obj 152 162 mtof~; +#X obj 152 225 snapshot~; +#X obj 60 225 snapshot~; +#X floatatom 60 99 6 0 0 0 - - - 0; +#X obj 60 162 ftom~; +#X obj 251 225 snapshot~; +#X obj 251 162 dbtorms~; +#X obj 60 130 sig~; +#X obj 152 130 sig~; +#X obj 251 130 sig~; +#X obj 456 225 snapshot~; +#X obj 353 225 snapshot~; +#X obj 555 225 snapshot~; +#X floatatom 555 253 9 0 0 0 - - - 0; +#X obj 353 128 sig~; +#X obj 456 128 sig~; +#X obj 555 128 sig~; +#X obj 353 162 rmstodb~; +#X obj 456 162 dbtopow~; +#X obj 555 162 powtodb~; +#X obj 565 198 r metro; +#X floatatom 152 253 9 0 0 0 - - - 0; +#X floatatom 60 253 9 0 0 0 - - - 0; +#X floatatom 251 253 9 0 0 0 - - - 0; +#X floatatom 456 253 9 0 0 0 - - - 0; +#X floatatom 353 253 9 0 0 0 - - - 0; +#X obj 466 198 r metro; +#X obj 362 198 r metro; +#X obj 261 198 r metro; +#X obj 162 198 r metro; +#X obj 71 198 r metro; +#X obj 545 400 metro 100; +#X obj 545 426 s metro; +#X msg 543 326 \; pd dsp \$1; +#X obj 543 300 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X floatatom 152 112 6 0 0 0 - - - 0; -#X floatatom 251 111 6 0 0 0 - - - 0; -#X floatatom 353 110 6 0 0 0 - - - 0; -#X floatatom 456 110 6 0 0 0 - - - 0; -#X floatatom 555 110 6 0 0 0 - - - 0; -#X obj 121 524 expr~; -#X text 561 312 DSP on/off; -#X connect 0 0 45 0; -#X connect 6 0 7 0; -#X connect 7 0 27 0; -#X connect 8 0 28 0; -#X connect 9 0 13 0; -#X connect 10 0 8 0; -#X connect 11 0 29 0; -#X connect 12 0 11 0; -#X connect 13 0 10 0; -#X connect 14 0 6 0; -#X connect 15 0 12 0; -#X connect 16 0 30 0; -#X connect 17 0 31 0; -#X connect 18 0 19 0; -#X connect 20 0 23 0; -#X connect 21 0 24 0; -#X connect 22 0 25 0; -#X connect 23 0 17 0; -#X connect 24 0 16 0; -#X connect 25 0 18 0; -#X connect 26 0 18 0; -#X connect 32 0 16 0; -#X connect 33 0 17 0; -#X connect 34 0 11 0; -#X connect 35 0 7 0; -#X connect 36 0 8 0; -#X connect 45 0 46 0; -#X connect 48 0 47 0; -#X connect 49 0 14 0; -#X connect 50 0 15 0; -#X connect 51 0 20 0; -#X connect 52 0 21 0; -#X connect 53 0 22 0; +#X floatatom 152 99 6 0 0 0 - - - 0; +#X floatatom 251 98 6 0 0 0 - - - 0; +#X floatatom 353 97 6 0 0 0 - - - 0; +#X floatatom 456 97 6 0 0 0 - - - 0; +#X floatatom 555 97 6 0 0 0 - - - 0; +#X text 561 299 DSP on/off; +#X text 15 497 see also:; +#X obj 93 482 mtof; +#X text 462 508 updated for Pd version 0.33; +#X text 208 14 - acoustic conversions for audio signals, f 41; +#X obj 92 17 mtof~; +#X obj 47 17 ftom~; +#X obj 136 17 dbtorms~; +#X obj 47 42 rmstodb~; +#X obj 114 42 dbtopow~; +#X obj 178 42 powtodb~; +#X text 131 481 (etc.) - acoustic conversions for control data; +#X obj 93 510 expr~; +#N canvas 789 179 577 210 reference 0; +#X obj 8 57 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 105 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 142 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 179 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 168 153 NONE, f 50; +#X text 353 18 - acoustic conversions; +#X obj 36 19 mtof; +#X obj 77 19 ftom; +#X obj 116 19 dbtorms; +#X obj 176 19 rmstodb; +#X obj 234 19 dbtopow; +#X obj 295 19 powtodb; +#X text 158 73 signl - incoming value to be converted., f 52; +#X text 158 115 signal - converted value, f 52; +#X restore 569 43 pd reference; +#X obj 6 74 cnv 1 670 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 506 43 click =>; +#X obj 6 464 cnv 1 670 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X connect 0 0 34 0; +#X connect 3 0 4 0; +#X connect 4 0 24 0; +#X connect 5 0 25 0; +#X connect 6 0 10 0; +#X connect 7 0 5 0; +#X connect 8 0 26 0; +#X connect 9 0 8 0; +#X connect 10 0 7 0; +#X connect 11 0 3 0; +#X connect 12 0 9 0; +#X connect 13 0 27 0; +#X connect 14 0 28 0; +#X connect 15 0 16 0; +#X connect 17 0 20 0; +#X connect 18 0 21 0; +#X connect 19 0 22 0; +#X connect 20 0 14 0; +#X connect 21 0 13 0; +#X connect 22 0 15 0; +#X connect 23 0 15 0; +#X connect 29 0 13 0; +#X connect 30 0 14 0; +#X connect 31 0 8 0; +#X connect 32 0 4 0; +#X connect 33 0 5 0; +#X connect 34 0 35 0; +#X connect 37 0 36 0; +#X connect 38 0 11 0; +#X connect 39 0 12 0; +#X connect 40 0 17 0; +#X connect 41 0 18 0; +#X connect 42 0 19 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/acoustics-help.pd puredata-0.52.2+ds0/doc/5.reference/acoustics-help.pd --- puredata-0.52.1+ds0/doc/5.reference/acoustics-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/acoustics-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,54 +1,79 @@ -#N canvas 652 59 560 590 12; -#X obj 115 425 ftom; -#X obj 39 18 mtof; -#X obj 115 357 mtof; -#X floatatom 115 390 9 0 0 0 - - - 0; -#X obj 80 18 ftom; -#X obj 119 18 dbtorms; -#X obj 38 44 rmstodb; -#X obj 96 44 dbtopow; -#X obj 157 44 powtodb; -#X obj 230 357 dbtorms; -#X obj 230 425 rmstodb; -#X obj 354 357 dbtopow; -#X obj 354 425 powtodb; -#X text 43 271 Finally \, dbtopow and powtodb convert decibels to and +#N canvas 652 59 539 575 12; +#X obj 110 414 ftom; +#X obj 110 346 mtof; +#X floatatom 110 379 9 0 0 0 - - - 0; +#X obj 225 346 dbtorms; +#X obj 225 414 rmstodb; +#X obj 349 346 dbtopow; +#X obj 349 414 powtodb; +#X text 38 260 Finally \, dbtopow and powtodb convert decibels to and from power units \, equal to the square of the "RMS" amplitude., f 66; -#X text 301 556 updated for Pd version 0.40.; -#X text 43 187 The dbtorms and rmstodb objects convert from decibels +#X text 38 176 The dbtorms and rmstodb objects convert from decibels to linear ("RMS") amplitude \, so that 100 dB corresponds to an "RMS" of 1 Zero amplitude (strictly speaking \, minus infinity dB) is clipped to zero dB \, and zero dB \, which should correspond to 0.0001 in "RMS" \, is instead rounded down to zero., f 66; -#X text 183 18 - acoustic conversions; -#X floatatom 230 390 9 0 0 0 - - - 0; -#X floatatom 354 390 9 0 0 0 - - - 0; -#X text 40 526 see also:; -#X obj 117 513 mtof~; -#X text 164 512 (etc.) - acoustic conversions for audio signals; -#X text 43 96 The mtof object transposes a midi value into a frequency +#X floatatom 225 379 9 0 0 0 - - - 0; +#X floatatom 349 379 9 0 0 0 - - - 0; +#X text 38 85 The mtof object transposes a midi value into a frequency in Hertz \, so that "69" goes to "440". You can specify microtonal pitches as in "69.5" \, which is a quarter tone (or 50 cents) higher than 69 (so 0.01 = 1 cent). Ftom does the reverse. A frequency of zero Hertz is given a MIDI value of -1500 (strictly speaking \, it is negative infinity.), f 66; -#X obj 118 540 expr; -#X floatatom 115 326 6 0 0 0 - - - 0; -#X floatatom 230 326 6 0 0 0 - - - 0; -#X floatatom 354 326 6 0 0 0 - - - 0; -#X floatatom 115 459 6 0 0 0 - - - 0; -#X floatatom 230 459 6 0 0 0 - - - 0; -#X floatatom 354 459 6 0 0 0 - - - 0; -#X connect 0 0 27 0; -#X connect 2 0 3 0; -#X connect 3 0 0 0; -#X connect 9 0 17 0; -#X connect 10 0 28 0; -#X connect 11 0 18 0; -#X connect 12 0 29 0; -#X connect 17 0 10 0; -#X connect 18 0 12 0; -#X connect 24 0 2 0; -#X connect 25 0 9 0; -#X connect 26 0 11 0; +#X floatatom 110 315 6 0 0 0 - - - 0; +#X floatatom 225 315 6 0 0 0 - - - 0; +#X floatatom 349 315 6 0 0 0 - - - 0; +#X floatatom 110 448 6 0 0 0 - - - 0; +#X floatatom 225 448 6 0 0 0 - - - 0; +#X floatatom 349 448 6 0 0 0 - - - 0; +#X obj 34 14 mtof; +#X obj 75 14 ftom; +#X obj 114 14 dbtorms; +#X obj 33 40 rmstodb; +#X obj 91 40 dbtopow; +#X obj 152 40 powtodb; +#X text 326 524 updated for Pd version 0.40.; +#X text 178 14 - acoustic conversions; +#X text 15 513 see also:; +#X obj 92 500 mtof~; +#X text 139 499 (etc.) - acoustic conversions for audio signals; +#X obj 93 527 expr; +#N canvas 789 179 577 210 reference 0; +#X obj 8 57 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 105 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 142 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 179 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 148 153 NONE, f 52; +#X text 353 18 - acoustic conversions; +#X obj 36 19 mtof; +#X obj 77 19 ftom; +#X obj 116 19 dbtorms; +#X obj 176 19 rmstodb; +#X obj 234 19 dbtopow; +#X obj 295 19 powtodb; +#X text 138 73 float - incoming value to be converted., f 52; +#X text 138 115 float - converted value, f 52; +#X restore 418 40 pd reference; +#X obj 10 71 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 10 485 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 355 39 click =>; +#X connect 0 0 15 0; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X connect 3 0 9 0; +#X connect 4 0 16 0; +#X connect 5 0 10 0; +#X connect 6 0 17 0; +#X connect 9 0 4 0; +#X connect 10 0 6 0; +#X connect 12 0 1 0; +#X connect 13 0 3 0; +#X connect 14 0 5 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/adc~_dac~-help.pd puredata-0.52.2+ds0/doc/5.reference/adc~_dac~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/adc~_dac~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/adc~_dac~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,6 +1,4 @@ -#N canvas 683 111 503 510 12; -#X obj 34 6 adc~; -#X obj 35 29 dac~; +#N canvas 626 40 503 510 12; #X obj 71 155 adc~ 5; #X text 121 155 (input from channel 5 only); #X obj 69 179 dac~ 1 2 5 23; @@ -10,11 +8,8 @@ channel or channels. This requires Pd to restart DSP and so should only be done at setup time \, not while audio is being computed., f 45; -#X text 287 474 updated for Pd version 0.47; #X msg 83 308 set 5; #X obj 29 344 adc~ 1; -#X text 73 5 - Audio Input from sound card; -#X text 76 30 - Audio Output to sound card; #X text 28 70 Adc~ and dac~ provide real-time audio input and output for Pd \, respectively \, whether analog or digital. By default they are stereo (with channel numbers 1 \, 2) but you can specify different @@ -26,5 +21,52 @@ #X text 55 391 If more than one dac~ outputs to the same channel \, the signals are added. - resets the channel(s).; +#X text 119 171 1) list - set input channels (default: 1 2).; +#X text 150 136 signal - signal input from sound card.; +#X text 122 67 set - resets the channel(s).; +#X text 123 460 1) list - set output channels (default: 1 2).; +#X restore 318 19 pd reference; +#X obj 14 58 cnv 1 480 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 14 461 cnv 1 480 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 73 5 - Audio Input from sound card; +#X text 76 30 - Audio Output to sound card; +#X connect 6 0 4 0; +#X connect 6 0 7 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/all_guis.pd puredata-0.52.2+ds0/doc/5.reference/all_guis.pd --- puredata-0.52.1+ds0/doc/5.reference/all_guis.pd 1970-01-01 00:00:00.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/all_guis.pd 2022-03-27 22:30:03.000000000 +0000 @@ -0,0 +1,51 @@ +#N canvas 554 47 529 629 12; +#X obj 313 181 bng 18 250 50 0 empty empty empty -8 -12 0 12 #fcfcfc +#000000 #0400fc; +#X obj 313 214 tgl 18 1.04858e+06 empty empty empty -6 -11 0 12 #fcfcfc +#000000 #0400fc 0 1; +#X obj 166 111 vsl 18 128 0 127 0 1.04858e+06 empty empty empty -7 +-13 0 12 #fcfcfc #000000 #0400fc 0 1; +#X obj 306 144 hsl 128 18 0 127 0 0 empty empty empty 2 -12 0 12 #fcfcfc +#000000 #0400fc 0 1; +#X obj 302 95 hradio 18 1 0 8 empty empty empty 4 -12 0 12 #fcfcfc +#000000 #0400fc 0; +#X obj 75 100 vu 15 160 \$6 empty -4 -16 0 12 #202020 #000000 1 0; +#X obj 55 299 cnv 60 100 60 empty empty empty 2 -12 0 12 #dcdcdc #0400fc +1.04858e+06; +#X obj 235 109 vradio 18 1 0 8 empty empty empty -17 -11 0 12 #fcfcfc +#000000 #0400fc 0; +#X obj 198 307 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 1 -13 0 +12 #fcfcfc #000000 #0400fc 0 256; +#X text 337 180 Bang Button; +#X text 338 213 Toggle Button; +#X text 314 289 (c) musil@iem.kug.ac.at; +#X text 350 305 IEM KUG \, Graz \, Austria \, 2002, f 14; +#X text 196 281 Number Box; +#X text 57 278 Canvas; +#X symbolatom 80 500 10 0 0 0 - - - 0; +#X floatatom 36 500 5 0 0 0 - - - 0; +#X text 63 73 VU Meter; +#X text 149 71 Vertical; +#X text 155 86 Slider; +#X text 219 69 Vertical; +#X text 225 84 Radio; +#X text 300 71 Horizontal Radio; +#X text 301 123 Horizontal Slider; +#N canvas 0 22 450 278 (subpatch) 0; +#X array array 100 float 2; +#X coords 0 1 100 -1 200 140 1 0 0; +#X restore 290 414 graph; +#X text 10 370 ---------------------------------------------------------------------- +, f 70; +#X listbox 36 528 20 0 0 0 - - - 0; +#X text 159 498 atom boxes; +#X text 185 528 list box; +#X msg 403 577 message; +#X text 45 572 The message box is also considered a GUI object since +you can click on it and interact with it., f 47; +#X text 19 424 The boxes below are 'proper native' GUIs not part of +"IEM GUIs". See also the array to the right as another GUI element. +, f 36; +#X text 93 19 All IEM GUIs (objects from the "iemguis" external library +\, natively included in Pd version 0.34):, f 49; +#X text 20 397 Original native GUIs:; diff -Nru puredata-0.52.1+ds0/doc/5.reference/append-help.pd puredata-0.52.2+ds0/doc/5.reference/append-help.pd --- puredata-0.52.1+ds0/doc/5.reference/append-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/append-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,58 +1,95 @@ -#N canvas 661 42 591 677 12; -#X text 46 600 see also:; +#N canvas 675 33 565 593 12; #N canvas 595 399 475 139 help-append-template1 0; #X obj 101 72 filledpolygon z z 0 0 0 20 0 20 30 0 30; #X obj 67 24 struct help-append-template1 float x float y float z; -#X restore 352 537 pd help-append-template1; -#X obj 68 627 get; -#X obj 100 627 set; -#X obj 197 601 getsize; -#X obj 264 601 setsize; -#X obj 264 627 element; -#X obj 133 627 scalar; -#N canvas 1325 127 300 206 help-append-data 1; -#X restore 352 515 pd help-append-data; -#X obj 286 271 pointer; -#X obj 52 22 append; -#X msg 286 247 traverse pd-help-append-data \, bang; -#X obj 51 311 append help-append-template1 x y z; -#X floatatom 55 253 5 0 0 0 - - - 0; -#X msg 351 322 \; pd-help-append-data clear; -#X text 66 68 "append" maintains a pointer to a scalar \, or else an +#X restore 366 421 pd help-append-template1; +#N canvas 347 216 300 206 help-append-data 1; +#X restore 401 444 pd help-append-data; +#X obj 262 257 pointer; +#X msg 262 233 traverse pd-help-append-data \, bang; +#X obj 27 297 append help-append-template1 x y z; +#X floatatom 27 239 5 0 0 0 - - - 0; +#X msg 341 298 \; pd-help-append-data clear; +#X text 34 54 "append" maintains a pointer to a scalar \, or else an empty pointer to the head of a list. You may set the pointer using the leftmost inlet. The creation arguments specify the template of a new scalar to append \, and the names of the fields (there should be at least one) you will wish to initialize. To append an object \, send a number to the leftmost inlet. "Append"'s pointer is updated to point to the new scalar \, and the new pointer is also output., -f 66; -#X obj 133 601 pointer; -#X text 285 226 go to (and output) "head" of the list; -#X obj 197 627 struct; -#X text 346 617 updated for Pd version 0.47; -#X obj 176 499 pointer; -#X msg 176 475 traverse pd-help-append-data \, bang; -#X floatatom 98 445 5 0 0 0 - - - 0; -#X msg 175 450 set help-append-template1 x; -#X text 67 178 To insert to the beginning of a list \, you can append -to the "head" of the list., f 66; -#X obj 98 502 append; -#X text 170 429 click on these messages first:; -#X text 146 247 click this first =>; -#X text 426 299 click to clear:; -#X obj 351 298 loadbang; -#X text 106 21 - add an item to a Data Structure list; -#X obj 55 280 trigger f f; -#X text 76 379 If there is no more than one field \, you can use a -"set" message to set the template and field:; -#X connect 9 0 12 3; -#X connect 11 0 9 0; -#X connect 13 0 31 0; -#X connect 20 0 25 1; -#X connect 21 0 20 0; -#X connect 22 0 25 0; -#X connect 23 0 25 0; -#X connect 29 0 14 0; -#X connect 31 0 12 0; -#X connect 31 1 12 1; -#X connect 31 1 12 2; +f 70; +#X text 261 212 go to (and output) "head" of the list; +#X obj 124 475 pointer; +#X msg 124 451 traverse pd-help-append-data \, bang; +#X floatatom 46 421 5 0 0 0 - - - 0; +#X msg 123 426 set help-append-template1 x; +#X text 34 161 To insert to the beginning of a list \, you can append +to the "head" of the list., f 70; +#X obj 46 478 append; +#X text 118 405 click on these messages first:; +#X text 122 233 click this first =>; +#X text 416 275 click to clear:; +#X obj 341 274 loadbang; +#X obj 27 266 trigger f f; +#X text 21 530 see also:; +#X obj 31 557 get; +#X obj 63 557 set; +#X obj 160 531 getsize; +#X obj 223 531 setsize; +#X obj 223 557 element; +#X obj 96 557 scalar; +#X obj 44 11 append; +#X obj 96 531 pointer; +#X obj 160 557 struct; +#X text 349 544 updated for Pd version 0.47; +#X text 475 10 <= click; +#N canvas 722 149 572 323 reference 0; +#X obj 8 46 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 7 79 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 8 191 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 227 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 297 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 124 cnv 1 550 1 empty empty 'n': 8 12 0 13 #7c7c7c #000000 +0; +#X obj 34 16 append; +#X text 89 15 - add an item to a Data Structure list.; +#X text 56 86 set -; +#X text 217 86 if none or just one field is given \, you can use 'set' +to set struct name and field., f 43; +#X obj 7 155 cnv 1 550 1 empty empty rightmost: 8 12 0 13 #7c7c7c #000000 +0; +#X text 127 130 float - set field value and append new Data Structure. +; +#X text 121 256 2) list -; +#X text 81 55 (arguments set 'n' fields and creates an inlet for each) +; +#X text 113 163 pointer - a pointer to the Data Structure to add.; +#X text 113 199 pointer - a pointer to added Data Structure.; +#X text 108 236 1) symbol - set template name., f 62; +#X text 192 256 set field names and create an inlet for each (one inlet +is created by default)., f 45; +#X restore 381 10 pd reference; +#X obj 7 42 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 10 519 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 98 10 - add an item to a Data Structure list; +#X text 51 354 If there are no fields or just one specified as as argument +\, you can use a "set" message to set both the template and field. +, f 64; +#X connect 2 0 4 3; +#X connect 3 0 2 0; +#X connect 5 0 19 0; +#X connect 9 0 14 1; +#X connect 10 0 9 0; +#X connect 11 0 14 0; +#X connect 12 0 14 0; +#X connect 18 0 6 0; +#X connect 19 0 4 0; +#X connect 19 1 4 1; +#X connect 19 1 4 2; diff -Nru puredata-0.52.1+ds0/doc/5.reference/array-object-help.pd puredata-0.52.2+ds0/doc/5.reference/array-object-help.pd --- puredata-0.52.1+ds0/doc/5.reference/array-object-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/array-object-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -3,61 +3,96 @@ #N struct array-help-struct2 float x float y array z element-struct2 ; #N struct element-struct2 float x float y float w; -#N struct template1 float x float y float z float q; -#N canvas 721 62 609 607 12; -#X obj 417 506 list; -#X text 442 161 (click for details:), f 11; -#N canvas 623 34 752 765 define 0; -#X text 360 547 creation arguments:; -#X text 390 618 optional name; -#X text 251 174 read from a file; -#X text 271 199 write to a file; -#X text 56 30 "array define" maintains an array and can name it so +#N canvas 463 23 586 516 12; +#X text 420 153 (click for details:), f 11; +#N canvas 561 26 758 712 define 0; +#X text 340 522 creation arguments:; +#X text 370 593 optional name; +#X text 231 149 read from a file; +#X text 251 174 write to a file; +#X text 55 68 "array define" maintains an array and can name it so that other objects can find it (and later should have some alternative -\, anonymous way to be found)., f 71; -#X text 389 635 optional size (100 by default); -#X msg 53 143 const 0; -#X text 111 143 set to a constant (0 \, for instance); -#X msg 61 174 read array-object-help.txt; -#X msg 73 199 write array-object-help.txt; -#X obj 66 539 array define array-help-1; -#X msg 80 230 resize 100; -#X text 99 260 ... other messages are also forwarded to the array like +\, anonymous way to be found)., f 80; +#X text 369 610 optional size (100 by default); +#X msg 33 118 const 0; +#X text 91 118 set to a constant (0 \, for instance); +#X msg 41 149 read array-object-help.txt; +#X msg 53 174 write array-object-help.txt; +#X obj 46 514 array define array-help-1; +#X msg 60 205 resize 100; +#X text 79 235 ... other messages are also forwarded to the array like those above - xticks \, etc \, and also lists to set values.; -#X obj 165 420 r array-help-send; -#X floatatom 165 468 5 0 0 0 - - - 0; -#X obj 375 415 r array-help-send; -#X floatatom 375 489 5 0 0 0 - - - 0; -#X text 81 513 click to open or edit array:; -#X obj 165 444 getsize float-array z; -#X obj 375 464 array size -s float-array z; -#X text 160 369 The pointer will be to a structure float-array and +#X obj 145 395 r array-help-send; +#X floatatom 145 443 5 0 0 0 - - - 0; +#X obj 355 390 r array-help-send; +#X floatatom 355 464 5 0 0 0 - - - 0; +#X text 61 488 click to open or edit array:; +#X obj 145 419 getsize float-array z; +#X obj 355 439 array size -s float-array z; +#X text 140 344 The pointer will be to a structure float-array and the array itself will be the field named 'z' \, so that you can access it as shown in these examples:; -#X obj 77 571 array define -k array-help-2 10; -#A 0 -0.320006 -0.0133338 -0.340006 0 0.973333 0 -0.300005 0 0.966667 -0; -#X msg 95 340 send array-help-send; -#X text 388 565 optional -k flag to keep contents; -#X obj 78 602 array define -yrange -4 4 array-help-3 10; -#X obj 78 633 array define -pix 800 400 array-help-4 16; -#X text 389 582 optional "-yrange low high" to set the yrange; -#X text 389 600 optional "-pix x y" to set the plot size; -#X obj 89 310 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X obj 57 546 array define -k array-help-2 10; +#A 0 -0.320006 0 0 0 0 0 0 0 0 0; +#X msg 75 315 send array-help-send; +#X text 368 540 optional -k flag to keep contents; +#X obj 58 577 array define -yrange -4 4 array-help-3 10; +#X obj 58 608 array define -pix 800 400 array-help-4 16; +#X text 369 557 optional "-yrange low high" to set the yrange; +#X text 369 575 optional "-pix x y" to set the plot size; +#X obj 69 285 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X text 112 307 bang to output a pointer to the scalar containing the +#X text 92 282 bang to output a pointer to the scalar containing the array; -#X obj 66 670 getsize float-array z; -#X floatatom 66 694 5 0 0 0 - - - 0; -#X text 251 340 send pointer to a named receive object; -#X text 246 84 If created without any arguments \, the array object -defaults to 'array define', f 43; -#X obj 195 92 array; -#X obj 375 439 trigger bang pointer; -#X text 308 664 note: if "-k" is given but no size is specified \, +#X obj 46 645 getsize float-array z; +#X floatatom 46 669 5 0 0 0 - - - 0; +#X text 231 315 send pointer to a named receive object; +#X text 488 145 If created without any arguments \, the array object +defaults to 'array define', f 28; +#X obj 437 153 array; +#X obj 355 414 trigger bang pointer; +#X text 288 639 note: if "-k" is given but no size is specified \, the size is restored to whatever it may have been changed to using "resize" messages \, but if there is a size argument given the restored array has the originally specified size.; +#X text 643 17 <= click; +#N canvas 778 172 578 386 reference 0; +#X obj 9 49 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 161 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 201 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 358 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 35 15 array define; +#X text 132 14 - create an array.; +#X text 94 60 bang - output a pointer to the scalar containing the +array., f 64; +#X text 31 81 send - send pointer to a named receive object +, f 73; +#X text 122 169 pointer - a pointer to the scalar containing the array. +; +#X text 87 234 -k: saves/keeps the contents of the array with the patch. +; +#X text 87 252 -yrange : set minimum and maximum plot +range.; +#X text 87 271 -pix : set x and y graph size.; +#X text 25 105 other messages - [array define] send other messages +that arrays understand like: 'const' \, 'resize' \, etc. For reference +\, see 2.control.examples "15.array" and "16.more.arrays"., f 74; +#X obj 9 227 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 298 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 +0; +#X text 103 308 1) symbol - array name (default: internal numbered +'table#')., f 62; +#X text 110 330 2) float - size and also xrange (default: 100).; +#X restore 540 18 pd reference; +#X obj 14 51 cnv 1 725 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 37 18 array define; +#X text 138 18 - create \, store \, and/or edit an array.; #X connect 6 0 10 0; #X connect 8 0 10 0; #X connect 9 0 10 0; @@ -72,49 +107,43 @@ #X connect 30 0 31 0; #X connect 35 0 19 0; #X connect 35 1 19 1; -#X restore 443 202 pd define; -#X obj 378 506 text; -#X obj 59 226 array size; -#N canvas 0 50 600 400 (subpatch) 0; -#N canvas 0 50 450 250 (subpatch) 0; -#X coords 0 1 99 -1 500 300 1; -#X restore 50 50 graph; -#X restore 41 23 array; -#X text 162 200 - create \, store \, and/or edit one; -#X text 162 227 - get or change size; -#X text 163 251 - sum all or a range of elements; -#N canvas 652 121 567 804 array-and-data-structures 0; -#X obj 212 257 pointer; -#N canvas 715 383 468 210 array-help-struct 0; +#X restore 421 194 pd define; +#X obj 37 218 array size; +#X text 151 194 - create \, store \, and/or edit one; +#X text 151 218 - get or change size; +#X text 151 242 - sum all or a range of elements; +#N canvas 561 23 672 696 array-and-data-structures 0; +#X obj 220 212 pointer; +#N canvas 814 134 468 210 array-help-struct 0; #X obj 36 88 filledpolygon 0 0 0 0 0 0 10 20 10 20 0 0 0; #X obj 36 61 struct array-help-struct float x float y array z float ; #X obj 40 119 plot z 500 2 25 5 5; -#X restore 239 148 pd array-help-struct; -#N canvas 1298 175 450 300 array-help-data 0; +#X restore 430 123 pd array-help-struct; +#N canvas 916 175 353 251 array-help-data 0; #X scalar array-help-struct 84 93 \; 0 \; 0 \; -1 \; -6 \; -9 \; -10 \; -5 \; -2 \; 5 \; -7 \; -41 \; -47 \; -45 \; -34 \; -17 \; 8 \; 5 \; 2 \; -2 \; -11 \; -16 \; -26 \; -43 \; 16 \; 24 \; 26 \; 21 \; 20 \; 19 \; 17 \; 16 \; 16 \; 16 \; 16 \; 12 \; \;; -#X text 63 211 We have one datum... right-click for properties to see +#X text 65 167 We have one datum... right-click for properties to see contents., f 32; -#X restore 239 124 pd array-help-data; -#X msg 212 200 traverse pd-array-help-data \, next, f 19; -#X obj 82 141 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X restore 430 99 pd array-help-data; +#X msg 220 168 traverse pd-array-help-data \, next, f 28; +#X obj 90 166 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 82 286 array sum -s array-help-struct z, f 19; -#X floatatom 82 327 5 0 0 0 - - - 0; -#X text 59 14 The array objects can also reference arrays within structures +#X obj 90 241 array sum -s array-help-struct z, f 19; +#X floatatom 90 282 5 0 0 0 - - - 0; +#X text 29 14 The array objects can also reference arrays within structures via pointers. The "-s" flag takes two arguments \, specifying the data structure and the field within it that will contain the array. By default the array should be a simple floating point array (use the template "float" for the array elements) but you can override that using "-f" -as shown further down., f 67; -#X obj 310 583 pointer; -#X obj 96 503 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +as shown further down., f 81; +#X obj 311 512 pointer; +#X obj 97 462 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X floatatom 96 651 5 0 0 0 - - - 0; -#N canvas 850 364 447 373 array-help-struct2 0; +#X floatatom 97 580 5 0 0 0 - - - 0; +#N canvas 848 269 447 373 array-help-struct2 0; #X obj 237 232 pointer; #X msg 37 200 20 20; #X obj 40 92 filledpolygon 0 0 0 0 0 0 10 20 10 20 0 0 0; @@ -126,176 +155,362 @@ #X connect 0 0 5 2; #X connect 1 0 5 0; #X connect 4 0 0 0; -#X restore 205 461 pd array-help-struct2; -#N canvas 1258 396 477 318 array-help-data2 0; +#X restore 286 406 pd array-help-struct2; +#N canvas 818 190 399 321 array-help-data2 0; #X scalar array-help-struct2 80 30 \; -54 200 10 \; 138 -10 3 \; -32 26 0 \; 109 141 8 \; 267 26 3 \; \;; #X text 31 267 A structure whose array has (x \, y \, w) triples - right-click to see contents., f 40; -#X restore 205 439 pd array-help-data2; -#X msg 310 526 traverse pd-array-help-data2 \, next, f 20; +#X restore 300 384 pd array-help-data2; +#X msg 311 471 traverse pd-array-help-data2 \, next, f 25; #N canvas 830 245 407 149 element-struct2 0; #X obj 39 58 struct element-struct2 float x float y float w; -#X restore 205 484 pd element-struct2; -#X obj 96 610 array sum -s array-help-struct2 z -f element-struct2 +#X restore 306 429 pd element-struct2; +#X obj 97 539 array sum -s array-help-struct2 z -f element-struct2 w, f 31; -#X text 145 651 sum of all the 'w' values in the array; -#X text 229 289 when "-s" is given this inlet takes a pointer in place +#X text 146 580 sum of all the 'w' values in the array; +#X text 237 244 when "-s" is given this inlet takes a pointer in place of a name., f 35; -#X text 388 148 <= the structure; -#X obj 82 169 trigger bang bang; -#X text 361 461 <= main structure; -#X text 339 484 <= element structure; -#X obj 96 535 trigger bang bang; -#X text 374 124 <= click for the array; -#X text 345 439 <= click for the array; -#X text 36 360 Using an additional '-f' flag we can specify which field +#X text 441 406 <= main structure; +#X text 441 429 <= element structure; +#X obj 97 494 trigger bang bang; +#X text 441 384 <= click for the array; +#X text 16 321 Using an additional '-f' flag we can specify which field in the array we're referring to. In this example the array has (x \, y \, w) triples (in [struct element-struct2]) and we're asking for the "w" field using the "-f" flag and its two arguments (struct name -and field name)., f 71; -#X obj 153 757 ../4.data.structures/01.scalars; -#X text 53 698 To know more about Data Structures \, how to handle +and field name)., f 85; +#X obj 90 194 t b b; +#X text 267 100 click for the array =>; +#X text 309 124 the structure =>; +#X text 135 282 sum of all the 'z' values in the array; +#X text 37 627 To know more about Data Structures \, how to handle pointers and see examples \, please refer to the 4.Data.Structure section -of the Pd's tutorials. Starting with the first example below., f 66 -; +of the Pd's tutorials., f 50; +#X obj 410 627 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#N canvas 491 316 412 249 open 0; +#X obj 58 49 inlet; +#X obj 58 105 pdcontrol; +#X msg 58 78 dir; +#X msg 58 132 \; pd open 01.scalars.pd \$1/../4.data.structures; +#X connect 0 0 2 0; +#X connect 1 0 3 0; +#X connect 2 0 1 0; +#X restore 410 657 pd open; +#X text 468 625 open first examle of the 4.Data.Structure section. +, f 20; +#X text 432 626 <---; #X connect 0 0 5 2; #X connect 3 0 0 0; -#X connect 4 0 19 0; +#X connect 4 0 23 0; #X connect 5 0 6 0; #X connect 8 0 15 2; -#X connect 9 0 22 0; +#X connect 9 0 20 0; #X connect 13 0 8 0; #X connect 15 0 10 0; -#X connect 19 0 5 0; -#X connect 19 1 3 0; -#X connect 22 0 15 0; -#X connect 22 1 13 0; -#X restore 56 446 pd array-and-data-structures; -#N canvas 574 174 602 302 size 0; -#X floatatom 59 94 5 1 100 0 - - - 0; -#X obj 42 217 print; -#X text 258 30 "array size" outputs the size (if sent a bang) or sets -the size (if sent a number)., f 43; -#X obj 42 188 array size array-help-2; -#X obj 44 69 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X connect 20 0 15 0; +#X connect 20 1 13 0; +#X connect 23 0 5 0; +#X connect 23 1 3 0; +#X connect 28 0 29 0; +#X restore 341 423 pd array-and-data-structures; +#N canvas 640 168 530 337 size 0; +#X floatatom 53 146 5 1 100 0 - - - 0; +#X obj 36 267 print; +#X text 31 64 "array size" outputs the size (if sent a bang) or sets +the size (if sent a number)., f 64; +#X obj 38 116 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X text 251 199 creations arguments: either array name or "-s" and -optional "-f" flags to refer to an array in a data structure, f 41 +#X text 221 213 creations arguments: either array name or "-s" and +optional "-f" flags to refer to an array in a data structure, f 40 ; -#X msg 211 157 symbol array-help-2; -#X text 358 136 inlet to set name or pointer; -#X text 104 93 number to set size; -#X text 68 68 bang outputs size; -#X msg 200 128 symbol array-help-1; -#X connect 0 0 3 0; -#X connect 3 0 1 0; -#X connect 4 0 3 0; -#X connect 6 0 3 1; -#X connect 10 0 3 1; -#X restore 443 226 pd size; -#X obj 59 202 array define; -#X text 53 422 accessing arrays inside data structures:; -#X text 88 23 - accessing arrays; -#X text 47 60 In Pd an array may be part of a "garray" (a graphical +#X msg 205 179 symbol array-help-2; +#X text 344 143 inlet to set name or pointer, f 15; +#X text 98 145 number to set size, f 9; +#X text 62 115 bang outputs size; +#X msg 194 150 symbol array-help-1; +#X obj 5 49 cnv 1 515 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 440 16 <= click; +#N canvas 539 49 574 396 reference 0; +#X obj 9 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 85 cnv 1 550 1 empty empty 1st: 8 12 0 13 #000000 #000000 +0; +#X obj 9 204 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 370 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 38 17 array size; +#X text 125 16 - output or set array size; +#X text 124 92 bang - output the array size., f 45; +#X obj 7 144 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 118 117 float - set the array size., f 46; +#X text 112 153 symbol - set array name., f 46; +#X text 124 211 float - array size.; +#X text 106 173 pointer - pointer to the array if -s flag is used. +; +#X text 70 287 -s : struct name and field name of +main structure., f 69; +#X text 70 305 -f : struct name and field name of +element structure., f 69; +#X obj 9 250 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 276 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 328 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 +0; +#X text 107 337 1) symbol - array name if no flags are given (default: +none)., f 61; +#X restore 346 17 pd reference; +#X obj 27 17 array size; +#X text 114 16 - get or change size; +#X floatatom 36 238 5 1 100 0 - - - 0; +#X obj 36 210 array size array-help-2; +#X text 117 284 (array-help-2 is defined in the "define" subwindow). +; +#X connect 0 0 16 0; +#X connect 3 0 16 0; +#X connect 5 0 16 1; +#X connect 9 0 16 1; +#X connect 15 0 1 0; +#X connect 16 0 15 0; +#X restore 421 218 pd size; +#X obj 37 194 array define; +#X text 50 423 accessing arrays inside data structures:; +#X text 34 56 In Pd an array may be part of a "garray" (a graphical array of numbers) or appear as a slot in a data structure (in which case the elements may be arbitrary data \, not necessarily just numbers). The "array" object can define an array (so far just of numbers but maybe later arbitrary data structures) or access an array defined elsewhere to get or change its size \, set or read its elements \, and so on. , f 72; -#X text 62 173 The first argument sets its function:; -#X obj 59 250 array sum; -#X obj 59 322 array quantile; -#N canvas 560 199 665 358 sum 0; -#X floatatom 75 106 5 0 10 0 - - - 0; -#X obj 66 81 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X text 40 165 The first argument sets its function:; +#X obj 37 242 array sum; +#X obj 37 314 array quantile; +#N canvas 560 199 646 397 sum 0; +#X floatatom 81 153 5 0 10 0 - - - 0; +#X obj 63 123 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X floatatom 66 239 5 0 0 0 - - - 0; -#X floatatom 106 133 5 -1 10 0 - - - 0; -#X text 82 24 "array sum" outputs the sum of all or a selected range -of elements of the array.; -#X obj 66 194 array sum array-help-2, f 12; -#X text 184 233 - optional number to initialize onset - default 0; -#X text 184 252 - optional number to initialize number of points - +#X floatatom 63 301 5 0 0 0 - - - 0; +#X floatatom 103 185 5 -1 10 0 - - - 0; +#X text 38 69 "array sum" outputs the sum of all or a selected range +of elements of the array., f 66; +#X obj 63 256 array sum array-help-2, f 12; +#X text 181 295 - optional number to initialize onset - default 0; +#X text 181 314 - optional number to initialize number of points - default -1, f 61; -#X text 92 79 bang to output sum; -#X text 185 197 creation arguments: either array name or "-s" and optional +#X text 89 123 bang to output sum; +#X text 182 259 creation arguments: either array name or "-s" and optional "-f" flags to refer to an array in a data structure; -#X text 125 102 onset (first index to sum from) \, zero for start of +#X text 123 154 onset (first index to sum from) \, zero for start of array; -#X text 154 128 number of points or -1 for end of array; -#X text 66 299 (array-help-2 is defined in the "define" subwindow). +#X text 145 185 number of points or -1 for end of array; +#X text 104 359 (array-help-2 is defined in the "define" subwindow). ; -#X msg 147 160 symbol array-help-2; -#X text 291 159 set name or pointer; +#X msg 144 222 symbol array-help-2; +#X text 288 221 set name or pointer; +#X text 558 17 <= click; +#N canvas 733 117 575 458 reference 0; +#X obj 9 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 85 cnv 1 550 1 empty empty 1st: 8 12 0 13 #000000 #000000 +0; +#X obj 9 226 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 429 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 171 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 112 176 symbol - set array name., f 46; +#X text 124 235 float - array size.; +#X text 106 196 pointer - pointer to the array if -s flag is used. +; +#X text 68 307 -s : struct name and field name of +main structure., f 67; +#X text 68 325 -f : struct name and field name of +element structure., f 69; +#X obj 38 17 array sum; +#X text 125 16 - output the sum of the array or a range selecion.; +#X text 124 90 bang - output sum., f 49; +#X text 117 110 float - onset (index to sum from \, 0 is the start). +; +#X obj 7 133 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 65 144 float - number or points to sum from onset (-1 is the +end of array)., f 68; +#X obj 9 272 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 300 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 352 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 +0; +#X text 77 361 1) symbol - array name if no flags are given (default: +none)., f 61; +#X text 84 381 2) float - initial onset (default: 0).; +#X text 84 401 3) float - initial number of points (default: -1 \, +end of array)., f 64; +#X restore 464 17 pd reference; +#X obj 11 53 cnv 1 625 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 105 18 - sum all or a range of elements; +#X obj 31 17 array sum; #X connect 0 0 5 0; #X connect 1 0 5 0; #X connect 3 0 5 1; #X connect 5 0 2 0; #X connect 13 0 5 2; -#X restore 443 250 pd sum; -#X obj 59 274 array get; -#N canvas 614 233 680 390 get 0; -#X floatatom 75 90 5 0 10 0 - - - 0; -#X obj 60 65 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X restore 421 242 pd sum; +#X obj 37 266 array get; +#N canvas 614 191 645 403 get 0; +#X floatatom 67 141 5 0 10 0 - - - 0; +#X obj 48 106 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X floatatom 101 122 5 -1 10 0 - - - 0; -#X obj 61 201 array get array-help-2, f 12; -#X text 69 10 "array get" outputs all or a selected range of elements -of the array as a list., f 55; -#X text 162 218 - optional number to initialize onset - default 0, +#X floatatom 89 174 5 -1 10 0 - - - 0; +#X obj 49 253 array get array-help-2, f 12; +#X text 74 57 "array get" outputs all or a selected range of elements +of the array as a list., f 63; +#X text 150 270 - optional number to initialize onset - default 0, f 61; -#X text 162 235 - optional number to initialize number of points - +#X text 150 287 - optional number to initialize number of points - default -1, f 61; -#X text 162 187 creation arguments: either array name or "-s" and optional +#X text 150 239 creation arguments: either array name or "-s" and optional "-f" flags to refer to an array in a data structure, f 61; -#X text 143 122 number of points or -1 for end of array; -#X text 82 65 bang for output; -#X text 237 307 (array-help-2 is defined in the "define" subwindow). -; -#X msg 142 151 symbol array-help-2; -#X text 287 150 set name or pointer; -#X text 121 89 onset (first index to output) \, zero for start of array +#X text 131 174 number of points or -1 for end of array; +#X text 70 106 bang for output; +#X text 184 359 (array-help-2 is defined in the "define" subwindow). ; -#X listbox 61 272 70 0 0 0 - - - 0; -#X obj 61 309 print array-get; +#X msg 130 203 symbol array-help-2; +#X text 275 202 set name or pointer; +#X text 109 141 onset (first index to output) \, zero for start of +array; +#X listbox 49 324 70 0 0 0 - - - 0; +#X obj 49 361 print array-get; +#X text 551 14 <= click; +#N canvas 722 105 568 482 reference 0; +#X obj 9 45 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 78 cnv 1 550 1 empty empty 1st: 8 12 0 13 #000000 #000000 +0; +#X obj 9 256 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 455 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 196 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 112 205 symbol - set array name., f 46; +#X text 106 225 pointer - pointer to the array if -s flag is used. +; +#X text 69 332 -s : struct name and field name of +main structure., f 67; +#X text 69 350 -f : struct name and field name of +element structure., f 69; +#X obj 7 145 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 38 13 array get; +#X text 116 12 - output all items of the array or a range selecion. +; +#X text 124 85 bang - output the elements of the array., f 49; +#X text 118 110 float - onset (index to output from \, 0 is the start). +; +#X text 50 164 float - number or points to output from onset (-1 is +the end of array)., f 71; +#X obj 9 299 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 327 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 379 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 +0; +#X text 86 390 1) symbol - array name if no flags are given (default: +none)., f 61; +#X text 93 410 2) float - initial onset (default: 0).; +#X text 93 430 3) float - initial number of points (default: -1 \, +end of array)., f 64; +#X text 124 265 list - array's elements.; +#X restore 457 15 pd reference; +#X obj 9 43 cnv 1 625 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 32 13 array get; +#X text 106 13 - get contents as a list; #X connect 0 0 3 0; #X connect 1 0 3 0; #X connect 2 0 3 1; #X connect 3 0 14 0; #X connect 11 0 3 2; #X connect 14 0 15 0; -#X restore 443 274 pd get; -#X obj 59 298 array set; -#N canvas 590 258 631 349 set 0; -#X obj 74 198 array set array-help-2, f 12; -#X msg 74 102 0.1 0.2 0.3 0.4 0.3 0.2 0.1; -#X text 49 16 "array set" sets values of an array from an incoming -list \, starting from a specified onset (0 by default). The size of -the array is not changed -- values that would be written past the end -of the array are dropped., f 67; -#X floatatom 114 138 5 0 0 0 - - - 0; -#X text 154 136 onset (first index to write to); -#X text 184 240 - optional number to initialize onset - default 0; -#X text 188 203 creation arguments: either array name or "-s" and optional +#X restore 421 266 pd get; +#X obj 37 290 array set; +#N canvas 582 234 597 354 set 0; +#X obj 46 225 array set array-help-2, f 12; +#X msg 46 129 0.1 0.2 0.3 0.4 0.3 0.2 0.1; +#X floatatom 86 163 5 0 0 0 - - - 0; +#X text 129 163 onset (first index to write to); +#X text 156 267 - optional number to initialize onset - default 0; +#X text 160 230 creation arguments: either array name or "-s" and optional "-f" flags to refer to an array in a data structure; -#X text 273 103 list of values to write to array; -#X text 68 295 (array-help-2 is defined in the "define" subwindow). +#X text 245 130 list of values to write to array; +#X text 110 309 (array-help-2 is defined in the "define" subwindow). +; +#X msg 127 192 symbol array-help-2; +#X text 273 191 set name or pointer; +#X text 504 16 <= click; +#N canvas 701 101 579 437 reference 0; +#X obj 9 55 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 88 cnv 1 550 1 empty empty 1st: 8 12 0 13 #000000 #000000 +0; +#X obj 9 229 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 408 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 170 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 112 178 symbol - set array name., f 46; +#X text 106 198 pointer - pointer to the array if -s flag is used. ; -#X msg 155 165 symbol array-help-2; -#X text 301 164 set name or pointer; +#X text 69 305 -s : struct name and field name of +main structure., f 67; +#X text 69 323 -f : struct name and field name of +element structure., f 69; +#X obj 7 130 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 124 238 list - array elements.; +#X obj 38 20 array set; +#X text 116 19 - set all items of the array or a range selecion.; +#X text 118 99 list - list of values to write to array; +#X text 117 140 float - onset (index to set from \, 0 is the start). +, f 51; +#X obj 9 271 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 299 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 349 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 +0; +#X text 94 361 1) symbol - array name if no flags are given (default: +none)., f 61; +#X text 101 381 2) float - initial onset (default: 0).; +#X restore 410 17 pd reference; +#X obj 7 47 cnv 1 575 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 25 17 array set; +#X text 103 16 - set contents from a list; +#X text 21 62 "array set" sets values of an array from an incoming +list \, starting from a specified onset (0 by default). The size of +the array is not changed - values that would be written past the end +of the array are dropped., f 77; #X connect 1 0 0 0; -#X connect 3 0 0 1; -#X connect 9 0 0 2; -#X restore 443 298 pd set; -#X text 163 275 - get contents as a list; -#X text 163 299 - set contents from a list; -#X text 181 323 - get a quantile; -#X obj 59 346 array random; -#N canvas 566 90 735 643 quantile+random 0; -#X floatatom 73 178 5 0 100 0 - - - 0; -#X obj 42 255 array quantile array-help-5, f 14; +#X connect 2 0 0 1; +#X connect 8 0 0 2; +#X restore 421 290 pd set; +#X text 150 266 - get contents as a list; +#X text 150 290 - set contents from a list; +#X text 150 314 - get a quantile; +#X obj 37 338 array random; +#N canvas 539 30 699 671 quantile+random 0; +#X floatatom 64 243 5 0 100 0 - - - 0; +#X obj 33 340 array quantile array-help-5, f 14; #N canvas 0 50 450 250 (subpatch) 0; #X array array-help-5 100 float 1; #A 0 0 0 0 0 0 0 0 0 0 0 0 0.00715053 0.00715053 0.0285789 0.0500072 @@ -308,67 +523,152 @@ 0.349997 0.335712 0.321426 0.278569 0.192856 0.149999 0.135714 0.114285 0.0999998 0.0714298 0.0642871 0.0571443 0.0285732 0 0 0 0 0; #X coords 0 1 99 0 200 140 1 0 0; -#X restore 40 376 graph; -#X floatatom 105 202 5 -1 100 0 - - - 0; -#X msg 57 534 \; array-help-5 const 0; -#X floatatom 42 127 5 -1 100 0 - - - 0; -#X obj 42 148 / 100; -#X floatatom 42 299 5 0 100 0 - - - 0; -#X floatatom 305 599 5 0 100 0 - - - 0; -#X obj 305 555 array random array-help-5, f 13; -#X obj 305 427 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc -#000000 #000000; -#X floatatom 318 476 5 0 0 0 - - - 0; -#X floatatom 349 502 5 0 0 0 - - - 0; -#X text 278 350 "array random" makes a pseudo-random number from 0 -to 1 and outputs its quantile (which will therefore have probabilities -proportional to the table's values.); -#X text 329 422 bang to generate a random value; -#X msg 312 448 seed 56; -#X text 380 448 set random seed; -#X text 158 294 - optional number to initialize onset - default 0, +#X restore 444 183 graph; +#X floatatom 96 278 5 -1 100 0 - - - 0; +#X floatatom 33 192 5 -1 100 0 - - - 0; +#X obj 33 217 / 100; +#X floatatom 33 384 5 0 100 0 - - - 0; +#X floatatom 80 635 5 0 100 0 - - - 0; +#X obj 80 591 array random array-help-5, f 13; +#X obj 80 443 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000; +#X floatatom 115 501 5 0 0 0 - - - 0; +#X floatatom 124 534 5 0 0 0 - - - 0; +#X text 103 443 bang to generate a random value; +#X msg 97 474 seed 56; +#X text 165 474 set random seed; +#X text 149 379 - optional number to initialize onset - default 0, f 61; -#X text 157 313 - optional number to initialize number of points - +#X text 148 398 - optional number to initialize number of points - default -1, f 61; -#X text 423 569 same creation arguments; -#X text 165 261 creation arguments: either array name or "-s" and optional +#X text 198 605 same creation arguments; +#X text 156 346 creation arguments: either array name or "-s" and optional "-f" flags to refer to an array in a data structure, f 60; -#X text 117 177 onset (first index to sum from) \, zero for start of -array; -#X text 147 203 number of points or -1 for end of array; -#X text 363 473 onset; -#X text 391 501 number of points; -#X text 87 126 quantile (between 0 and 1); -#X msg 137 230 symbol array-help-2; -#X text 282 229 set name or pointer; -#X msg 393 529 symbol array-help-2; -#X text 535 528 set name or pointer; -#X text 46 16 "array quantile" outputs the specified quantile by interpreting -the array as a histogram. The output will always be in the range 0 -to array size - 1 The 0.5 quantile is also known as the median. This -generalizes the "array random" function allowing you to use the same -source of randomness on several arrays \, for example. Negative numbers -in the array are silently replaced by zero. Quantiles outside the range -0-1 output the x values at the two extremes of the array (0 and 99 -here)., f 90; +#X text 106 236 onset (first index to sum from) \, zero for start of +array, f 32; +#X text 138 279 number of points or -1 for end of array; +#X text 159 501 onset; +#X text 166 533 number of points; +#X text 78 191 quantile (between 0 and 1); +#X msg 128 315 symbol array-help-2; +#X text 273 313 set name or pointer; +#X msg 168 565 symbol array-help-2; +#X text 310 564 set name or pointer; +#X text 599 33 <= click; +#N canvas 188 138 1156 393 reference 0; +#X obj 10 42 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 10 192 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 358 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 149 cnv 1 550 1 empty empty 4th: 8 12 0 13 #7c7c7c #000000 +0; +#X text 126 152 symbol - set array name., f 49; +#X text 119 170 pointer - pointer to the array if -s flag is used. +; +#X text 69 260 -s : struct name and field name of +main structure., f 69; +#X text 69 278 -f : struct name and field name of +element structure., f 69; +#X obj 8 122 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 26 16 array quantile; +#X text 144 15 - outputs the specified quantile.; +#X obj 9 96 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 133 99 float - array onset (o is the end of array).; +#X text 133 127 float - number or points (-1 is the end of array). +, f 51; +#X text 133 198 float - random index value from the array.; +#X obj 9 70 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 588 37 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 588 203 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 587 366 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 704 160 symbol - set array name., f 49; +#X text 697 178 pointer - pointer to the array if -s flag is used. +; +#X text 647 270 -s : struct name and field name of +main structure., f 69; +#X text 647 288 -f : struct name and field name of +element structure., f 69; +#X obj 586 157 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 701 10 - outputs the specified quantile.; +#X obj 587 131 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 711 209 float - random index value from the array.; +#X obj 587 65 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 604 11 array random; +#X text 711 108 float - sets onset.; +#X text 662 90 seed - sets random seed.; +#X text 718 72 bang - bang to generate a random value.; +#X text 711 134 float - set number of points (-1 is the end of the +array).; +#X obj 9 232 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 255 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 299 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 588 242 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X obj 588 267 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 588 309 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 +0; +#X text 86 303 1) symbol - array name if no flags are given (default: +none)., f 62; +#X text 93 320 2) float - initial onset (default: 0)., f 61; +#X text 93 337 3) float - initial number of points (default: -1 \, +end of array)., f 64; +#X text 644 312 1) symbol - array name if no flags are given (default: +none)., f 62; +#X text 651 329 2) float - initial onset (default: 0)., f 61; +#X text 651 346 3) float - initial number of points (default: -1 \, +end of array)., f 64; +#X text 133 73 float - quantile (between 0 and 1).; +#X restore 505 33 pd reference; +#X obj 12 64 cnv 1 675 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 36 13 array quantile; +#X text 148 13 - get a quantile; +#X obj 36 38 array random; +#X text 148 38 - array as probabilities; +#X text 122 636 index; +#X text 37 80 "array quantile" outputs the specified quantile by interpreting +the array as a histogram. The output will always be in the range from +0 to "array size - 1". The 0.5 quantile is also known as the median. +This generalizes the "array random" function allowing you to use the +same source of randomness on several arrays \, for example. Negative +numbers in the array are silently replaced by zero. Quantiles outside +the range 0-1 output the x values at the two extremes of the array +(0 and 99 here)., f 89; +#X text 360 460 "array random" makes a pseudo-random number from 0 +to 1 and outputs its quantile (which will therefore have probabilities +proportional to the table's values.), f 36; #X connect 0 0 1 1; -#X connect 1 0 7 0; +#X connect 1 0 6 0; #X connect 3 0 1 2; -#X connect 5 0 6 0; -#X connect 6 0 1 0; +#X connect 4 0 5 0; +#X connect 5 0 1 0; +#X connect 8 0 7 0; #X connect 9 0 8 0; -#X connect 10 0 9 0; -#X connect 11 0 9 0; -#X connect 12 0 9 1; -#X connect 15 0 9 0; -#X connect 26 0 1 3; -#X connect 28 0 9 2; -#X restore 443 322 pd quantile+random; -#X text 164 346 - random - array as probabilities; -#X obj 59 369 array max; -#N canvas 578 146 666 568 min+max 0; +#X connect 10 0 8 0; +#X connect 11 0 8 1; +#X connect 13 0 8 0; +#X connect 24 0 1 3; +#X connect 26 0 8 2; +#X restore 421 327 pd quantile+random; +#X obj 37 361 array max; +#N canvas 579 106 640 567 min+max 0; #N canvas 0 50 450 250 (subpatch) 0; -#X array array-help-6 100 float 3; +#X array array-help-6 100 float 1; #A 0 0.335714 0.37857 0.421427 0.442855 0.478569 0.521426 0.535711 0.55714 0.585711 0.599997 0.614282 0.63571 0.649996 0.664282 0.671424 0.699995 0.699995 0.714281 0.721424 0.707138 0.699995 0.692853 0.68571 @@ -383,41 +683,94 @@ 0.442855 0.457141 0.460712 0.464284 0.471426 0.478569 0.485712 0.499998 0.50714 0.514283 0.521426 0.528569; #X coords 0 1 99 0 200 140 1 0 0; -#X restore 317 380 graph; -#X floatatom 69 283 7 0 100 0 - - - 0; -#X obj 69 124 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X restore 351 402 graph; +#X floatatom 54 322 7 0 100 0 - - - 0; +#X obj 54 153 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X floatatom 82 147 5 0 0 0 - - - 0; -#X floatatom 113 180 5 0 0 0 - - - 0; -#X text 211 272 - optional number to initialize onset - default 0; -#X text 210 291 - optional number to initialize number of points - +#X floatatom 73 184 5 0 0 0 - - - 0; +#X floatatom 98 219 5 0 0 0 - - - 0; +#X text 192 311 - optional number to initialize onset - default 0; +#X text 191 330 - optional number to initialize number of points - default -1, f 61; -#X text 205 237 creation arguments: either array name or "-s" and optional +#X text 186 276 creation arguments: either array name or "-s" and optional "-f" flags to refer to an array in a data structure; -#X text 122 146 onset; -#X text 155 179 number of points; -#X msg 157 210 symbol array-help-2; -#X text 305 211 set name or pointer; -#X obj 69 238 array max array-help-6, f 13; -#X floatatom 157 283 5 0 100 0 - - - 0; -#X text 91 121 bang to find maximum; -#X text 81 18 "array max" and "array min" find the maximum and minimum +#X text 113 183 onset; +#X text 140 218 number of points; +#X msg 142 249 symbol array-help-2; +#X text 284 249 set name or pointer; +#X obj 54 277 array max array-help-6, f 13; +#X floatatom 142 322 5 0 100 0 - - - 0; +#X text 76 152 bang to find maximum; +#X text 41 77 "array max" and "array min" find the maximum and minimum values in the array \, respectively. The first outlet is the value and the second is the index (the x location where the value was found). The search may be restricted to a sub-domain of the array by specifying -the "onset" and "number of points"., f 65; -#X floatatom 75 499 7 0 100 0 - - - 0; -#X obj 75 360 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 -#000000; -#X floatatom 88 383 5 0 0 0 - - - 0; -#X floatatom 119 416 5 0 0 0 - - - 0; -#X text 133 380 onset; -#X floatatom 163 499 5 0 100 0 - - - 0; -#X text 97 357 bang to find minimum; -#X text 168 414 number of points; -#X obj 75 454 array min array-help-6, f 13; -#X text 68 306 value; -#X text 152 307 index; +the "onset" and "number of points"., f 77; +#X floatatom 110 531 7 0 100 0 - - - 0; +#X obj 110 392 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#X floatatom 123 415 5 0 0 0 - - - 0; +#X floatatom 154 448 5 0 0 0 - - - 0; +#X text 168 412 onset; +#X floatatom 198 531 5 0 100 0 - - - 0; +#X text 132 389 bang to find minimum; +#X text 203 446 number of points; +#X obj 110 486 array min array-help-6, f 13; +#X text 53 345 value; +#X text 137 346 index; +#X text 533 27 <= click; +#N canvas 637 123 579 454 reference 0; +#X obj 9 43 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 71 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 205 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 426 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 153 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 112 159 symbol - set array name., f 46; +#X text 106 179 pointer - pointer to the array if -s flag is used. +; +#X text 68 318 -s : struct name and field name of +main structure., f 67; +#X text 68 336 -f : struct name and field name of +element structure., f 69; +#X obj 7 119 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 117 95 float - onset (index to output from \, 0 is the start). +; +#X text 50 128 float - number or points to output from onset (-1 is +the end of array)., f 71; +#X obj 28 13 array min; +#X text 186 12 - output minimum and maximum values of an array; +#X obj 108 13 array max; +#X obj 8 228 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 7 253 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 122 231 float - minimum or maximum value; +#X text 124 77 bang - to find min or maximum., f 52; +#X text 122 256 float - index of found value; +#X obj 9 291 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 314 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 361 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 +0; +#X text 79 366 1) symbol - array name if no flags are given (default: +none)., f 62; +#X text 86 384 2) float - initial onset (default: 0)., f 61; +#X text 86 402 3) float - initial number of points (default: -1 \, +end of array)., f 64; +#X restore 439 27 pd reference; +#X obj 7 62 cnv 1 625 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 36 12 array max; +#X obj 36 35 array min; +#X text 113 36 - min - find lowest value; +#X text 112 12 - max - find highest value; #X connect 2 0 12 0; #X connect 3 0 12 0; #X connect 4 0 12 1; @@ -429,12 +782,60 @@ #X connect 19 0 24 1; #X connect 24 0 16 0; #X connect 24 1 21 0; -#X restore 443 381 pd min+max; -#X obj 59 392 array min; -#X text 163 393 - min - find lowest value; -#X text 162 374 - max - find highest value; -#X text 359 551 updated for Pd version 0.52; -#X obj 50 535 ../2.control.examples/15.array; -#X obj 50 558 ../2.control.examples/16.more.arrays; -#X text 44 493 see also the "array" examples from section 2 (click -below to open them) and these objects:, f 45; +#X restore 421 372 pd min+max; +#X obj 37 384 array min; +#X obj 178 472 list; +#X obj 84 472 text; +#X obj 124 472 scalar; +#X text 367 471 updated for Pd version 0.52; +#X obj 4 41 cnv 1 575 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 74 12 - define \, access and manipulate arrays; +#X text 501 12 <= click; +#N canvas 787 173 579 214 reference 0; +#X obj 7 143 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 73 18 - define \, access and manipulate arrays; +#X obj 8 75 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X text 96 85 symbol -; +#X obj 7 54 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 160 86 sets the function of [array] \, possible values: define +\, size \, sum \, get \, set \, quantile \, random \, max and min. +The default value is 'define'., f 54; +#X obj 26 18 array; +#X text 119 162 Open specific references in each subpatch detailing +each function on parent patch., f 41; +#X restore 407 11 pd reference; +#X obj 29 11 array; +#X obj 4 456 cnv 1 575 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 150 338 - array as probabilities; +#X text 150 361 - find highest value; +#X text 150 384 - find lowest value; +#X text 11 471 see also:; +#N canvas 643 412 384 186 array-examples 0; +#N canvas 491 316 457 285 open 0; +#X obj 120 23 inlet; +#X obj 173 121 pdcontrol; +#X msg 173 94 dir; +#X obj 120 181 pack s s; +#X obj 173 64 loadbang; +#X msg 120 212 \; pd open \$1 \$2; +#X obj 173 151 makefilename %s/../2.control.examples; +#X connect 0 0 3 0; +#X connect 1 0 6 0; +#X connect 2 0 1 0; +#X connect 3 0 5 0; +#X connect 4 0 2 0; +#X connect 6 0 3 1; +#X restore 52 131 pd open; +#X msg 52 76 15.array.pd; +#X msg 62 102 16.more.arrays.pd; +#X text 144 77 <-- click to open examples.; +#X text 47 22 See also and the "array" examples from the section 2 +of Pd's tutorial:, f 39; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X restore 225 472 pd array-examples; diff -Nru puredata-0.52.1+ds0/doc/5.reference/bag-help.pd puredata-0.52.2+ds0/doc/5.reference/bag-help.pd --- puredata-0.52.1+ds0/doc/5.reference/bag-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/bag-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,37 +1,68 @@ -#N canvas 770 110 527 451 12; -#X text 33 410 see also:; -#X obj 142 410 makenote; -#X msg 68 234 60 64; -#X msg 117 234 60 0; -#X msg 161 234 62 64; -#X msg 209 234 62 0; -#X text 236 352 Output is in the printout window.; -#X msg 224 284 clear; -#X obj 56 21 bag; -#X msg 217 259 flush; -#X obj 102 410 poly; -#X text 298 407 updated for Pd version 0.33; -#X text 269 284 <= start over; -#X text 261 259 <= output them; -#X text 247 234 <= add or delete elements; -#X text 89 20 - Collection of numbers; -#X text 35 153 The collection may have many copies of the same value. +#N canvas 536 31 509 442 12; +#X msg 66 236 60 64; +#X msg 115 236 60 0; +#X msg 159 236 62 64; +#X msg 207 236 62 0; +#X text 234 354 Output is in the printout window.; +#X msg 222 286 clear; +#X msg 215 261 flush; +#X text 267 286 <= start over; +#X text 259 261 <= output them; +#X text 245 236 <= add or delete elements; +#X text 33 155 The collection may have many copies of the same value. You can output the collection (and empty it) with a "flush" message \, or just empty it with "clear." You can use this to mimic a sustain pedal \, for example., f 63; -#X obj 161 351 print bag; -#X obj 161 321 bag; -#X text 35 61 The bag object adds a value to or removes it from a collection +#X obj 159 353 print bag; +#X obj 159 323 bag; +#X text 33 63 The bag object adds a value to or removes it from a collection of numbers depending on the flag. The left inlet takes the value and the right inlet takes the flag. If the flag is true (nonzero) \, the value is added to the collection and removed otherwise. The example here takes a list input \, which gets spread at inlets (as is common in Pd)., f 63; -#X obj 209 410 stripnote; -#X connect 2 0 18 0; -#X connect 3 0 18 0; -#X connect 4 0 18 0; -#X connect 5 0 18 0; -#X connect 7 0 18 0; -#X connect 9 0 18 0; -#X connect 18 0 17 0; +#X text 15 408 see also:; +#X obj 128 409 makenote; +#X obj 24 16 bag; +#X obj 84 409 poly; +#X text 287 408 updated for Pd version 0.33; +#N canvas 666 144 576 286 reference 0; +#X obj 8 42 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 75 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 8 188 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 225 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 259 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 149 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 106 84 float -; +#X obj 28 12 bag; +#X text 60 11 - collection of numbers; +#X text 106 104 flush -; +#X text 106 123 clear -; +#X text 108 160 float - flag: true (nonzero) or false (zero)., f 57 +; +#X text 107 198 float - the stored values on flush message., f 49 +; +#X text 126 232 NONE; +#X text 163 123 clear stored values from the bag (no output).; +#X text 163 104 output stored values and clear the bag.; +#X text 163 84 value to store or delete depending on the flag.; +#X restore 330 16 pd reference; +#X text 428 15 <= click; +#X obj 9 49 cnv 1 490 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 9 394 cnv 1 490 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 57 15 - Collection of numbers; +#X connect 0 0 12 0; +#X connect 1 0 12 0; +#X connect 2 0 12 0; +#X connect 3 0 12 0; +#X connect 5 0 12 0; +#X connect 6 0 12 0; +#X connect 12 0 11 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/bang~-help.pd puredata-0.52.2+ds0/doc/5.reference/bang~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/bang~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/bang~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,29 +1,50 @@ -#N canvas 662 142 552 393 12; -#X obj 152 251 bang~; -#X obj 152 284 print; -#X obj 32 18 bang~; -#X obj 424 183 loadbang; -#X obj 410 155 delay 100; -#X text 78 17 - output bang after each DSP cycle; -#X text 243 341 updated for Pd version 0.33; -#X msg 393 240 \; pd dsp \$1; -#X msg 410 210 0; -#X msg 391 116 1; -#X text 42 63 Bang~ outputs a bang after each DSP block cycle (at the +#N canvas 527 82 535 373 12; +#X obj 145 249 bang~; +#X obj 145 282 print; +#X obj 417 181 loadbang; +#X obj 403 153 delay 100; +#X msg 386 238 \; pd dsp \$1; +#X msg 403 208 0; +#X msg 384 114 1; +#X text 35 61 Bang~ outputs a bang after each DSP block cycle (at the same logical time as the DSP cycle.) This is primarily useful for sampling the outputs of analysis algorithms., f 61; -#X text 73 340 see also:; -#X obj 149 341 block~; -#X text 422 114 <= click to test, f 8; -#X text 253 237 Bang~ only outputs when DSP is on., f 18; -#X text 43 118 By default \, a block size is 64 samples \, at a 44100 +#X text 415 112 <= click to test, f 8; +#X text 246 235 Bang~ only outputs when DSP is on., f 18; +#X text 36 116 By default \, a block size is 64 samples \, at a 44100 sample rate \, this about 1.45 ms. You can change the sample rate in audio settings and the block size with the block~ or switch~ object. Note that the minimum block size bang~ can handle is 64!, f 46; -#X text 81 224 inlet is inactive, f 8; +#X text 74 222 inlet is inactive, f 8; +#X obj 25 14 bang~; +#X text 71 13 - output bang after each DSP cycle; +#X text 320 336 updated for Pd version 0.33; +#X obj 8 45 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 17 335 see also:; +#X obj 93 336 block~; +#N canvas 716 204 583 194 reference 0; +#X obj 18 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 18 88 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 18 125 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X obj 17 162 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 141 135 NONE; +#X text 137 98 bang - at every DSP block cycle when DSP is on., f +49; +#X obj 51 17 bang~; +#X text 100 16 - output bang after each DSP cycle; +#X text 139 64 NONE (there's one actually \, but it's inactive); +#X restore 355 14 pd reference; +#X text 453 14 <= click; +#X obj 8 322 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 0 0 1 0; -#X connect 3 0 8 0; -#X connect 4 0 8 0; -#X connect 8 0 7 0; -#X connect 9 0 4 0; -#X connect 9 0 7 0; +#X connect 2 0 5 0; +#X connect 3 0 5 0; +#X connect 5 0 4 0; +#X connect 6 0 3 0; +#X connect 6 0 4 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/bang-help.pd puredata-0.52.2+ds0/doc/5.reference/bang-help.pd --- puredata-0.52.1+ds0/doc/5.reference/bang-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/bang-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,28 +1,48 @@ -#N canvas 771 173 466 381 12; -#X obj 85 276 print; -#X obj 63 11 bang; -#X msg 97 175 walk the cat; -#X msg 85 143 45; -#X obj 85 216 bang; -#X text 253 332 updated for Pd version 0.27; -#X text 109 10 - send "bang" message; -#X obj 64 40 b; -#X text 108 41 - abreviation; -#X obj 98 247 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#N canvas 574 97 408 344 12; +#X obj 64 263 print; +#X msg 76 162 walk the cat; +#X msg 64 130 45; +#X obj 64 203 bang; +#X obj 77 234 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X text 34 85 The [bang] object outputs a "bang" message for whatever -message it receives., f 56; -#X msg 273 236 bang; -#X obj 335 237 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X text 53 77 The [bang] object outputs a "bang" message for whatever +message it receives., f 42; +#X msg 240 222 bang; +#X obj 302 223 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X text 241 159 this is more efficient than using a message box and +#X text 208 145 this is more efficient than using a message box and the bang GUI below:, f 22; -#X text 19 333 see also:; -#X obj 86 333 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X obj 25 10 bang; +#X text 188 310 updated for Pd version 0.27; +#X text 62 9 - send "bang" message; +#X obj 25 34 b; +#X text 62 35 - abbreviation; +#X obj 2 63 cnv 1 400 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 2 296 cnv 1 400 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 331 35 <= click; +#N canvas 717 212 571 201 reference 0; +#X obj 8 47 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 95 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 7 171 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 25 16 bang; +#X text 99 16 - send "bang" message; +#X obj 65 16 b; +#X text 146 105 bang - a bang message, f 49; +#X text 117 63 anything - any message outputs a bang, f 53; +#X obj 8 132 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X text 147 143 NONE, f 52; +#X restore 237 35 pd reference; +#X text 8 309 see also:; +#X obj 83 311 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 110 333 loadbang; -#X obj 176 333 trigger; -#X connect 2 0 4 0; +#X msg 108 309; +#X connect 1 0 3 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; #X connect 3 0 4 0; -#X connect 4 0 0 0; -#X connect 4 0 9 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/binops-help.pd puredata-0.52.2+ds0/doc/5.reference/binops-help.pd --- puredata-0.52.1+ds0/doc/5.reference/binops-help.pd 1970-01-01 00:00:00.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/binops-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -0,0 +1,118 @@ +#N canvas 551 56 593 461 12; +#X obj 26 8 +; +#X text 9 390 see also:; +#X obj 87 351 +~; +#X text 363 177 You can supply a creation argument to initialize the +right inlet:, f 25; +#X obj 430 266 min 20; +#X obj 61 8 -; +#X obj 95 8 *; +#X obj 95 32 /; +#X obj 26 32 max; +#X obj 61 32 min; +#X text 130 18 - binary arithmetic operators; +#X text 348 424 last updated for Pd version 0.47; +#X obj 87 377 div; +#X obj 121 377 >; +#X obj 156 377 &&; +#X floatatom 138 296 5 0 0 0 - - - 0; +#X floatatom 181 296 8 0 0 0 - - - 0; +#X floatatom 298 296 5 0 0 0 - - - 0; +#X floatatom 253 176 5 0 0 0 - - - 0; +#X obj 253 203 t b f; +#X text 64 147 set left and right inputs here; +#X floatatom 254 296 5 0 0 0 - - - 0; +#X obj 54 266 +; +#X obj 96 266 -; +#X obj 138 266 *; +#X obj 181 266 /; +#X obj 254 266 max; +#X obj 298 266 min; +#X floatatom 53 176 5 0 0 0 - - - 0; +#X text 187 377 (etc) - other binary operators; +#X obj 87 426 expr; +#X text 128 426 - evaluation expressions, f 25; +#X obj 87 401 sin; +#X text 153 402 (etc) - math functions; +#X obj 121 401 log; +#X obj 376 266 + 3; +#X obj 496 266 * 3; +#X floatatom 96 296 5 0 0 0 - - - 0; +#X floatatom 54 296 5 0 0 0 - - - 0; +#X floatatom 430 296 5 0 0 0 - - - 0; +#X floatatom 376 296 5 0 0 0 - - - 0; +#X floatatom 496 296 5 0 0 0 - - - 0; +#X floatatom 430 235 5 0 0 0 - - - 0; +#X floatatom 496 235 5 0 0 0 - - - 0; +#X floatatom 376 235 5 0 0 0 - - - 0; +#X text 47 77 The arithmetic binary operators perform the 4 arithmetic +functions (+ \, etc) or output the minimum or maximum of two numbers +(min \, max). All of these objects take a bang message to evaluate +the operation with the previously set values., f 68; +#X text 123 351 (etc) - binary signal operators; +#N canvas 716 166 571 292 reference 0; +#X obj 25 18 +; +#X obj 60 18 -; +#X obj 94 18 *; +#X obj 129 18 /; +#X obj 163 18 max; +#X obj 196 18 min; +#X text 230 17 - binary arithmetic operators; +#X obj 8 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 87 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 8 183 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 224 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 263 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 142 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 127 94 bang - output the operation on the previously set values. +; +#X text 120 113 float - value to the left side of operation and output. +, f 58; +#X text 121 152 float - value to the right side of operation., f 58 +; +#X text 122 193 float - the result of the operation., f 58; +#X text 103 235 1) float - initialize value of right inlet (default +0)., f 58; +#X restore 483 35 pd reference; +#X text 416 35 click =>; +#X obj 6 61 cnv 1 580 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 6 336 cnv 1 580 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X connect 4 0 39 0; +#X connect 18 0 19 0; +#X connect 19 0 22 0; +#X connect 19 0 27 0; +#X connect 19 0 26 0; +#X connect 19 0 25 0; +#X connect 19 0 24 0; +#X connect 19 0 23 0; +#X connect 19 1 22 1; +#X connect 19 1 23 1; +#X connect 19 1 24 1; +#X connect 19 1 25 1; +#X connect 19 1 26 1; +#X connect 19 1 27 1; +#X connect 22 0 38 0; +#X connect 23 0 37 0; +#X connect 24 0 15 0; +#X connect 25 0 16 0; +#X connect 26 0 21 0; +#X connect 27 0 17 0; +#X connect 28 0 22 0; +#X connect 28 0 23 0; +#X connect 28 0 24 0; +#X connect 28 0 25 0; +#X connect 28 0 26 0; +#X connect 28 0 27 0; +#X connect 35 0 40 0; +#X connect 36 0 41 0; +#X connect 42 0 4 0; +#X connect 43 0 36 0; +#X connect 44 0 35 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/binops-other-help.pd puredata-0.52.2+ds0/doc/5.reference/binops-other-help.pd --- puredata-0.52.1+ds0/doc/5.reference/binops-other-help.pd 1970-01-01 00:00:00.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/binops-other-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -0,0 +1,209 @@ +#N canvas 598 23 634 707 12; +#X floatatom 121 517 4 0 0 0 - - - 0; +#X obj 198 489 <; +#X obj 166 130 &&; +#X obj 207 129 ||; +#X obj 366 489 &; +#X obj 404 489 |; +#X obj 121 489 >; +#X obj 161 489 >=; +#X obj 273 489 ==; +#X obj 235 489 <=; +#X floatatom 366 394 5 0 0 0 - - - 0; +#X obj 366 424 t b f; +#X floatatom 486 517 7 0 0 0 - - - 0; +#X obj 486 489 <<; +#X obj 444 489 >>; +#X obj 312 489 !=; +#X obj 22 10 >; +#X obj 50 10 >=; +#X obj 106 10 <=; +#X obj 78 10 <; +#X obj 135 10 ==; +#X obj 163 10 !=; +#X obj 416 575 == 0; +#X obj 469 575 < 5; +#X obj 191 10 div; +#X obj 191 34 mod; +#X floatatom 91 239 4 0 0 0 - - - 0; +#X floatatom 49 238 4 0 0 0 - - - 0; +#X floatatom 91 150 4 0 0 0 - - - 0; +#X obj 49 210 div; +#X obj 91 177 t b f; +#X obj 91 211 mod; +#X obj 95 648 +; +#X text 18 659 see also:; +#X floatatom 121 394 5 0 0 0 - - - 0; +#X obj 22 34 &&; +#X obj 50 34 ||; +#X obj 78 34 &; +#X obj 106 34 |; +#X obj 134 34 <<; +#X obj 163 34 >>; +#X floatatom 49 150 4 0 0 0 - - - 0; +#X obj 514 575 div 3; +#X obj 95 675 expr; +#X text 136 676 - evaluation expressions, f 25; +#X obj 396 648 sin; +#X text 432 649 (etc) - math functions; +#X text 130 647 (etc) - binary arithmetic operators; +#X obj 166 75 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 207 96 t b f; +#X obj 207 75 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 166 155 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 207 155 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000 0 1; +#X text 260 110 || ('or) outputs 1 if either one is nonzero., f 47 +; +#X text 241 137 note these expect integer input \, so 0.5 or -0.5 are +truncated to '0' and not considered 'nonzero'.; +#X text 45 558 All of these objects can have a creation argument to +initialize the right inlet. They also all take a bang message to evaluate +the operation with the previously set values., f 49; +#X text 260 77 && ('and') outputs 1 if both inputs are nonzero and +0 otherwise., f 47; +#X text 141 184 div and mod do integer division \, where div outputs +the integer quotient and mod outputs the remainder (modulus). In addition +the "%" operator (provided for back compatibility) is like "mod" but +acts differently for negative inputs (and might act variously depending +on CPU design)., f 62; +#X obj 401 248 %; +#X text 431 249 - deprecated; +#X text 31 278 The bitwise operators "&" and "|" perform "and" and +"or" on each bit of the inputs considered as binary numbers. the ">>" +and "<<" objects perform left and right signed bit shifts. These also +expect integer input and truncate float values., f 82; +#X text 31 328 Relational operators ('>' greater than \, '==' equals +\, '!=' not equals etc.) output 1 or 0 depending on whether the relation +is true or false. Unlike the previous ones \, these can deal with float +input., f 82; +#X floatatom 198 517 4 0 0 0 - - - 0; +#X floatatom 161 517 4 0 0 0 - - - 0; +#X floatatom 273 517 4 0 0 0 - - - 0; +#X floatatom 235 517 4 0 0 0 - - - 0; +#X floatatom 404 517 4 0 0 0 - - - 0; +#X floatatom 366 517 4 0 0 0 - - - 0; +#X floatatom 444 517 4 0 0 0 - - - 0; +#X floatatom 312 517 4 0 0 0 - - - 0; +#X floatatom 416 549 4 0 0 0 - - - 0; +#X floatatom 469 549 4 0 0 0 - - - 0; +#X floatatom 514 549 4 0 0 0 - - - 0; +#X floatatom 416 602 4 0 0 0 - - - 0; +#X floatatom 469 602 4 0 0 0 - - - 0; +#X floatatom 514 602 4 0 0 0 - - - 0; +#X text 220 22 - other binary operators; +#N canvas 720 222 578 305 reference 0; +#X obj 8 69 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 199 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 239 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 278 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 153 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 129 108 bang - output the operation on the previously set values. +; +#X text 122 127 float - value to the left side of operation and output. +, f 58; +#X text 123 162 float - value to the right side of operation., f 58 +; +#X text 124 209 float - the result of the operation., f 58; +#X obj 23 15 >; +#X obj 51 15 >=; +#X obj 107 15 <=; +#X obj 79 15 <; +#X obj 136 15 ==; +#X obj 164 15 !=; +#X obj 192 15 div; +#X obj 192 39 mod; +#X obj 23 39 &&; +#X obj 51 39 ||; +#X obj 79 39 &; +#X obj 107 39 |; +#X obj 135 39 <<; +#X obj 164 39 >>; +#X text 221 27 - other binary operators; +#X obj 8 103 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 103 249 1) float - initialize value of right inlet (default +0)., f 58; +#X restore 510 31 pd reference; +#X text 443 31 click =>; +#X text 42 392 left input; +#X text 407 392 right input; +#X obj 6 63 cnv 1 620 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 6 634 cnv 1 620 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 14 73 Logical operators ->; +#X text 411 673 updated for Pd version 0.47; +#X connect 1 0 62 0; +#X connect 2 0 51 0; +#X connect 3 0 52 0; +#X connect 4 0 67 0; +#X connect 5 0 66 0; +#X connect 6 0 0 0; +#X connect 7 0 63 0; +#X connect 8 0 64 0; +#X connect 9 0 65 0; +#X connect 10 0 11 0; +#X connect 11 0 6 0; +#X connect 11 0 15 0; +#X connect 11 0 14 0; +#X connect 11 0 13 0; +#X connect 11 0 9 0; +#X connect 11 0 8 0; +#X connect 11 0 7 0; +#X connect 11 0 5 0; +#X connect 11 0 4 0; +#X connect 11 0 1 0; +#X connect 11 1 4 1; +#X connect 11 1 5 1; +#X connect 11 1 13 1; +#X connect 11 1 14 1; +#X connect 11 1 6 1; +#X connect 11 1 7 1; +#X connect 11 1 8 1; +#X connect 11 1 15 1; +#X connect 11 1 9 1; +#X connect 11 1 1 1; +#X connect 13 0 12 0; +#X connect 14 0 68 0; +#X connect 15 0 69 0; +#X connect 22 0 73 0; +#X connect 23 0 74 0; +#X connect 28 0 30 0; +#X connect 29 0 27 0; +#X connect 30 0 31 0; +#X connect 30 0 29 0; +#X connect 30 1 31 1; +#X connect 30 1 29 1; +#X connect 31 0 26 0; +#X connect 34 0 4 0; +#X connect 34 0 5 0; +#X connect 34 0 13 0; +#X connect 34 0 14 0; +#X connect 34 0 6 0; +#X connect 34 0 7 0; +#X connect 34 0 8 0; +#X connect 34 0 9 0; +#X connect 34 0 1 0; +#X connect 34 0 15 0; +#X connect 41 0 29 0; +#X connect 41 0 31 0; +#X connect 42 0 75 0; +#X connect 48 0 2 0; +#X connect 48 0 3 0; +#X connect 49 0 2 0; +#X connect 49 0 3 0; +#X connect 49 1 3 1; +#X connect 49 1 2 1; +#X connect 50 0 49 0; +#X connect 70 0 22 0; +#X connect 71 0 23 0; +#X connect 72 0 42 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/binops-tilde-help.pd puredata-0.52.2+ds0/doc/5.reference/binops-tilde-help.pd --- puredata-0.52.1+ds0/doc/5.reference/binops-tilde-help.pd 1970-01-01 00:00:00.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/binops-tilde-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -0,0 +1,126 @@ +#N canvas 461 39 830 619 12; +#X obj 30 164 +~; +#X obj 167 164 -~; +#X obj 294 164 *~; +#X obj 429 164 /~; +#X obj 27 18 +~; +#X obj 62 18 -~; +#X obj 95 18 *~; +#X obj 129 18 /~; +#N canvas 0 22 450 278 (subpatch) 0; +#X array array1 100 float 0; +#X coords 0 2 100 -2 350 200 1 0 0; +#X restore 58 289 graph; +#X obj 429 236 tabwrite~ array1; +#X obj 30 236 tabwrite~ array1; +#X obj 167 236 tabwrite~ array1; +#X obj 294 236 tabwrite~ array1; +#X obj 294 68 osc~ 440; +#X obj 162 18 max~; +#X obj 204 18 min~; +#X text 594 575 modified for Pd version 0.27; +#X obj 688 236 tabwrite~ array1; +#X obj 563 236 tabwrite~ array1; +#X obj 563 164 max~; +#X obj 688 164 min~; +#X obj 636 431 +~ 5; +#X text 24 557 see also:; +#X obj 100 531 +; +#X floatatom 661 405 5 0 0 0 - - - 0; +#X text 498 305 These objects combine two signals as above \, or \, +if you give a numeric argument \, the right inlet only takes floats +(no signals) and the argument initializes the right inlet value:, +f 36; +#X obj 447 68 sig~ 2; +#X obj 48 68 sig~ 1; +#X obj 588 68 sig~ 0.5; +#X obj 49 204 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000; +#X obj 189 204 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#X obj 315 204 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#X obj 445 204 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#X obj 585 204 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#X obj 705 204 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#X text 41 283 2; +#X text 34 477 -2; +#X text 40 380 0; +#X text 131 531 (etc.) - control arithmetic operators; +#X obj 100 556 cos~; +#X obj 138 556 wrap~; +#X obj 181 556 abs~; +#X obj 218 556 sqrt~; +#X obj 263 556 exp~; +#X obj 300 556 log~; +#X obj 338 556 pow~; +#X obj 100 584 expr~; +#X text 148 584 - evaluate expressions on audio signals; +#X text 376 556 - audio math objects; +#X obj 474 409 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000 0 1; +#X msg 474 439 \; pd dsp \$1; +#X text 252 17 - binary operators on audio signals; +#N canvas 590 203 575 283 reference 0; +#X obj 8 49 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 84 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 8 162 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 203 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 256 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 121 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 22 18 +~; +#X obj 57 18 -~; +#X obj 90 18 *~; +#X obj 124 18 /~; +#X obj 157 18 max~; +#X obj 199 18 min~; +#X text 247 17 - binary operators on audio signals; +#X text 115 92 signal - value to the left side of operation and output. +; +#X text 73 131 float/signal - value to the right side of operation. +, f 62; +#X text 117 172 signal - the result of the operation., f 58; +#X text 179 214 initialize value of right inlet and makes it only take +floats instead of signals (default 0)., f 49; +#X text 103 214 1) float -; +#X restore 720 17 pd reference; +#X text 653 17 click =>; +#X obj 10 48 cnv 1 810 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 10 518 cnv 1 810 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X connect 0 0 10 0; +#X connect 1 0 11 0; +#X connect 2 0 12 0; +#X connect 3 0 9 0; +#X connect 13 0 0 0; +#X connect 13 0 1 0; +#X connect 13 0 3 0; +#X connect 13 0 2 0; +#X connect 13 0 19 0; +#X connect 13 0 20 0; +#X connect 19 0 18 0; +#X connect 20 0 17 0; +#X connect 24 0 21 1; +#X connect 26 0 3 1; +#X connect 26 0 2 1; +#X connect 27 0 1 1; +#X connect 27 0 0 1; +#X connect 28 0 19 1; +#X connect 28 0 20 1; +#X connect 29 0 10 0; +#X connect 30 0 11 0; +#X connect 31 0 12 0; +#X connect 32 0 9 0; +#X connect 33 0 18 0; +#X connect 34 0 17 0; +#X connect 49 0 50 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/biquad~-help.pd puredata-0.52.2+ds0/doc/5.reference/biquad~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/biquad~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/biquad~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,58 +1,85 @@ -#N canvas 759 122 578 569 12; -#X obj 33 18 biquad~; -#X obj 161 334 env~; -#X floatatom 161 365 6 0 0 0 - - - 0; -#X floatatom 62 203 5 0 0 0 - - - 0; -#X obj 62 334 env~; -#X floatatom 62 365 6 0 0 0 - - - 0; -#X text 87 395 Compare the value of the straight signal on the left +#N canvas 564 29 565 554 12; +#X obj 152 327 env~; +#X floatatom 152 358 6 0 0 0 - - - 0; +#X floatatom 53 196 5 0 0 0 - - - 0; +#X obj 53 327 env~; +#X floatatom 53 358 6 0 0 0 - - - 0; +#X text 78 388 Compare the value of the straight signal on the left with the value of the filtered signal on the right.; -#X obj 161 304 biquad~ 1.41407 -0.9998 1 -1.41421 1; -#X msg 161 200 1.41407 -0.9998 1 -1.41421 1; -#X text 47 88 y(n) = ff1 * w(n) + ff2 * w(n-1) + ff3 * w(n-2); -#X text 47 105 w(n) = x(n) + fb1 * w(n-1) + fb2 * w(n-2); -#X msg 195 266 clear; -#X obj 62 249 osc~ 5512.5; -#X text 236 330 this biquad~ is a notch filter for; -#X text 232 347 fn = Pi/4 (= SR/8 = 5512.5Hz @44.1k); -#X msg 450 181 \; pd dsp \$1; -#X obj 450 156 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X obj 152 297 biquad~ 1.41407 -0.9998 1 -1.41421 1; +#X msg 152 193 1.41407 -0.9998 1 -1.41421 1; +#X text 41 81 y(n) = ff1 * w(n) + ff2 * w(n-1) + ff3 * w(n-2); +#X text 41 98 w(n) = x(n) + fb1 * w(n-1) + fb2 * w(n-2); +#X msg 186 259 clear; +#X obj 53 242 osc~ 5512.5; +#X text 227 323 this biquad~ is a notch filter for; +#X text 223 340 fn = Pi/4 (= SR/8 = 5512.5Hz @44.1k); +#X msg 429 160 \; pd dsp \$1; +#X obj 429 135 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 473 155 DSP on/off; -#X text 95 17 - a 2nd order (2-pole / 2-zero) filter; -#X text 46 65 Biquad~ calculates the following difference equation: +#X text 452 134 DSP on/off; +#X text 40 58 Biquad~ calculates the following difference equation: ; -#X text 349 495 updated for Pd version 0.30.; -#X text 57 462 see also:; -#X obj 188 487 rzero~; -#X obj 131 510 cpole~; -#X obj 131 487 rpole~; -#X obj 245 487 rzero_rev~; -#X obj 188 510 czero~; -#X obj 245 510 czero_rev~; -#X obj 131 537 lop~; -#X obj 172 537 hip~; -#X obj 214 537 bp~; -#X obj 251 537 vcf~; -#X obj 296 537 bob~; -#X text 23 498 raw filters =>; -#X text 337 537 <= user-friendly filters; -#X obj 131 462 fexpr~; -#X obj 186 462 slop~, f 7; -#X text 45 132 The filter's coefficients syntax (set via arguments -or list input) is: fb1 fb2 ff1 ff2 ff3, f 54; -#X text 268 227 set internal state (previous input samples), f 24 +#X text 39 125 The filter's coefficients syntax (set via arguments +or list input) is: fb1 fb2 ff1 ff2 ff3, f 51; +#X text 259 220 set internal state (previous input samples), f 24 ; -#X msg 180 235 set 0.5 0.4; -#X text 243 266 or clear memory (same as 'set 0 0').; -#X text 158 178 list sets filter's parameters; -#X connect 1 0 2 0; -#X connect 3 0 12 0; -#X connect 4 0 5 0; -#X connect 7 0 1 0; -#X connect 8 0 7 0; -#X connect 11 0 7 0; -#X connect 12 0 4 0; -#X connect 12 0 7 0; -#X connect 16 0 15 0; -#X connect 39 0 7 0; +#X msg 171 228 set 0.5 0.4; +#X text 234 259 or clear memory (same as 'set 0 0').; +#X text 149 171 list sets filter's parameters; +#X obj 21 14 biquad~; +#X text 83 13 - a 2nd order (2-pole / 2-zero) filter; +#X text 348 521 updated for Pd version 0.30.; +#X obj 5 45 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 732 181 586 254 reference 0; +#X obj 18 48 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 18 148 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 18 185 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X obj 17 229 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 39 16 biquad~; +#X text 101 15 - a 2nd order (2-pole / 2-zero) filter; +#X text 121 60 signal - input signal to be filtered., f 59; +#X text 135 79 list - input signal to be filtered (fb1 fb2 ff1 ff2 +ff3).; +#X text 129 117 clear - clear filter's memory buffer., f 58; +#X text 123 158 signal - the filtered signal output.; +#X text 38 98 set - set last two input samples., +f 71; +#X text 112 198 1) list - initializes the 5 coefficients (fb1 fb2 ff1 +ff2 ff3)., f 63; +#X restore 387 13 pd reference; +#X text 485 13 <= click; +#X obj 6 435 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 48 451 see also:; +#X obj 179 500 rzero~; +#X obj 122 523 cpole~; +#X obj 122 500 rpole~; +#X obj 236 500 rzero_rev~; +#X obj 179 523 czero~; +#X obj 236 523 czero_rev~; +#X obj 122 450 lop~; +#X obj 163 450 hip~; +#X obj 205 450 bp~; +#X obj 240 450 vcf~; +#X obj 280 450 bob~; +#X text 14 511 raw filters =>; +#X text 321 450 <= user-friendly filters; +#X obj 122 475 fexpr~; +#X obj 177 475 slop~, f 7; +#X text 236 475 <= not friendly; +#X connect 0 0 1 0; +#X connect 2 0 11 0; +#X connect 3 0 4 0; +#X connect 6 0 0 0; +#X connect 7 0 6 0; +#X connect 10 0 6 0; +#X connect 11 0 3 0; +#X connect 11 0 6 0; +#X connect 15 0 14 0; +#X connect 20 0 6 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/block~-help.pd puredata-0.52.2+ds0/doc/5.reference/block~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/block~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/block~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,64 +1,64 @@ -#N canvas 811 24 545 714 12; -#X text 39 270 You may have at most one block~/switch~ object in any +#N canvas 576 23 531 684 12; +#X text 34 248 You may have at most one block~/switch~ object in any window., f 67; -#X text 20 623 see also:; -#X obj 140 675 fft~; -#X text 39 389 Pd's default block size is 64 samples. The inlet~ and +#X text 15 597 see also:; +#X obj 135 649 fft~; +#X text 34 367 Pd's default block size is 64 samples. The inlet~ and outlet~ objects reblock signals to adjust for differences between parent and subpatch \, but only power-of-two adjustments are possible. So for "normal" audio computations \, all blocks should also be power-of-two in size. HOWEVER \, if you have no inlet~ or outlet~ you may specify any other block size. This is intended for later use in video processing. , f 67; -#X text 323 675 updated for Pd version 0.43; -#N canvas 253 216 518 298 block-interactions 0; -#X text 32 61 Dac~ and adc~ don't work correctly if reblocked \, nor +#X text 318 649 updated for Pd version 0.43; +#N canvas 424 281 492 272 block-interactions 0; +#X text 32 49 Dac~ and adc~ don't work correctly if reblocked \, nor if a parent window is reblocked \, even if the window containing the dac~ or adc~ is reblocked back to the default block size and sample rate.; -#X text 33 209 Patches using send~/receive~ or throw~/catch~ to intercommunicate +#X text 32 196 Patches using send~/receive~ or throw~/catch~ to intercommunicate must have the same blocking -- and if their parents are blocked bigger than they are \, there might be weirdness.; -#X text 31 128 If using send~ or delwrite~ from a switched-off patch +#X text 32 116 If using send~ or delwrite~ from a switched-off patch \, the output of corresponding receive~ and delread~ objects in other \, running patches will cycle old input (and sound like garbage). Throw~ -may be switched with impunity \, but not catch~.; +may be switched with impunity \, but not catch~., f 60; #X text 32 11 INTERACTIONS BETWEEN BLOCK~/SWITCH~ AND OTHER OBJECTS IN PD; -#X restore 154 572 pd block-interactions; -#X text 313 572 <= BUG! block~/switch~ and dac~/adc~ are incompatible +#X restore 149 540 pd block-interactions; +#X text 308 540 <= BUG! block~/switch~ and dac~/adc~ are incompatible , f 27; -#N canvas 741 59 566 565 switch-example 0; -#X obj 114 417 bang~; -#X obj 114 443 t b b; -#X obj 114 469 timer; -#X floatatom 114 498 8 0 0 0 - - - 0; -#X obj 65 188 tgl 17 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 #000000 +#N canvas 741 59 537 534 switch-example 0; +#X obj 109 380 bang~; +#X obj 109 406 t b b; +#X obj 109 432 timer; +#X floatatom 109 461 8 0 0 0 - - - 0; +#X obj 42 169 tgl 17 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 #000000 0 1; -#X msg 77 218 set 4096 1 1; -#X msg 92 266 set 4096 2 1; -#X msg 85 242 set 8192 1 1; -#X msg 99 289 set 4096 1 0.5; -#X msg 106 312 set 4096 1 2; -#X obj 114 526 bng 15 50 10 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#X msg 54 199 set 4096 1 1; +#X msg 69 247 set 4096 2 1; +#X msg 62 223 set 8192 1 1; +#X msg 76 270 set 4096 1 0.5; +#X msg 83 293 set 4096 1 2; +#X obj 109 489 bng 17 50 10 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 #000000; -#X text 209 366 (args are blocksize \, overlap \, up/downsampling) +#X text 186 347 (args are blocksize \, overlap \, up/downsampling) ; -#X text 178 499 <= measured time (msec) between blocks; -#X text 85 186 <= switch this subpatch on and off; -#X text 172 217 <= block size 4096 \, no overlap \, no resampling; -#X text 180 242 <= bigger block size; -#X text 187 265 <= double overlap; -#X text 207 289 <= downsampled by factor of 2; -#X text 198 312 <= upsampled by factor of 2; -#X text 188 351 <= creation arguments (if any) initialize blocking +#X text 173 462 <= measured time (msec) between blocks; +#X text 62 167 <= switch this subpatch on and off; +#X text 149 198 <= block size 4096 \, no overlap \, no resampling; +#X text 157 223 <= bigger block size; +#X text 164 246 <= double overlap; +#X text 184 270 <= downsampled by factor of 2; +#X text 175 293 <= upsampled by factor of 2; +#X text 165 332 <= creation arguments (if any) initialize blocking ; -#X obj 65 351 switch~ 4096 1 1; -#X text 58 34 DSP in this subwindow is turned on and off by the switch~ +#X obj 42 332 switch~ 4096 1 1; +#X text 35 15 DSP in this subwindow is turned on and off by the switch~ object. Any subwindows of this window can also be switched off here. If a patch and a superpatch both have switches \, both must be "on" for DSP to run in the patch., f 59; -#X text 57 102 switch~ takes optional arguments the same as block~. +#X text 34 83 switch~ takes optional arguments the same as block~. If you supply arguments to switch \, the patch will be switched AND reblocked.; #X connect 0 0 1 0; @@ -72,55 +72,85 @@ #X connect 7 0 20 0; #X connect 8 0 20 0; #X connect 9 0 20 0; -#X restore 155 521 pd switch-example; -#N canvas 551 180 581 315 switch-bang 0; -#X text 32 11 You can use the switch~ object to single-step dsp in +#X restore 150 489 pd switch-example; +#N canvas 551 180 567 287 switch-bang 0; +#X text 50 15 You can use the switch~ object to single-step dsp in a subpatch. This might be useful for block operations that don't want to be synced to the sample clock: loading a window function in a table -\, or copying one table to another:; -#X obj 162 192 noise~; -#X obj 59 143 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +\, or copying one table to another:, f 65; +#X obj 139 183 noise~; +#X obj 36 140 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; #N canvas 0 22 450 300 (subpatch) 0; #X array noise 256 float 0; #X coords 0 1 255 -1 256 140 1 0 0; -#X restore 300 116 graph; -#X obj 59 227 switch~ 256; -#X text 61 93 Note: DSP needs to be on; -#X text 85 133 click to randomize the table at right, f 20; -#X obj 162 224 tabwrite~ noise; +#X restore 277 116 graph; +#X obj 36 227 switch~ 256; +#X text 38 93 Note: DSP needs to be on; +#X text 62 133 click to randomize the table at right, f 20; +#X obj 139 224 tabwrite~ noise; #X connect 1 0 7 0; #X connect 2 0 4 0; #X connect 2 0 7 0; -#X restore 154 546 pd switch-bang; -#X text 282 521 <= click and open example; -#X obj 90 90 block~ 64 1 1; -#X text 90 117 args: block size \, overlap \, up-downsampling; -#X obj 94 623 ../3.audio.examples/G04.control.blocksize; -#X obj 94 645 ../3.audio.examples/J07.oversampling; -#X obj 51 521 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X restore 149 514 pd switch-bang; +#X text 277 489 <= click and open example; +#X obj 85 68 block~ 64 1 1; +#X text 85 95 args: block size \, overlap \, up-downsampling; +#X obj 87 597 ../3.audio.examples/G04.control.blocksize; +#X obj 87 619 ../3.audio.examples/J07.oversampling; +#X obj 46 489 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 26 27 [block~] and [switch~] -; -#X text 209 20 set block size and on/off control for DSP, f 23; -#X msg 51 554 \; pd dsp \$1; -#X text 72 518 <= DSP on/off, f 6; -#X obj 183 675 bang~; -#X text 19 675 and the objects:; -#X text 264 546 <= 'bang' lets you single-step DSP; -#X text 39 144 The block~ and switch~ objects set the block size \, +#X msg 46 522 \; pd dsp \$1; +#X text 67 486 <= DSP on/off, f 6; +#X obj 178 649 bang~; +#X text 14 649 and the objects:; +#X text 259 514 <= 'bang' lets you single-step DSP; +#X text 34 122 The block~ and switch~ objects set the block size \, overlap \, and up/down-sampling ratio for the patch window. (The overlap and resampling ratio are relative to the super-patch.), f 67; -#X text 39 193 Switch~ \, in addition \, allows you to switch DSP on +#X text 34 171 Switch~ \, in addition \, allows you to switch DSP on and off for the DSP on the patch window. All subwindows are also switched. (If a subwindow of a switched window is also switched \, both switches must be on for the subwindow's audio DSP to run. Pd's global DSP must also be on.), f 67; -#X text 39 338 Switch~ also takes a "bang" message that causes one +#X text 34 316 Switch~ also takes a "bang" message that causes one block of DSP to be computed if it's switched off. This is useful for pre-computing waveforms \, window functions or also for video processing. , f 67; -#X text 193 90 block~ with window's default values; -#X text 39 290 A switch~ or block~ object without arguments does not +#X text 188 68 block~ with window's default values; +#X text 34 268 A switch~ or block~ object without arguments does not reblock audio computation - in other words \, block size and sample rate are as in the parent patch., f 67; -#X connect 14 0 17 0; +#X obj 5 50 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 717 115 572 307 reference 0; +#X obj 9 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 170 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 207 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 282 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 26 20 switch~; +#X text 86 20 and [block~]; +#X text 183 19 - set block size and on/off control for DSP; +#X text 100 67 float -; +#X text 159 67 in the case of [switch~] \, nonzero turns DSP on \, +zero turns DSP off., f 53; +#X text 129 179 NONE; +#X text 107 101 bang -; +#X text 159 101 in the case of [switch~] \, when turned off \, computes +just one DSP cycle., f 53; +#X text 68 136 set - set argument values (size \, overlap \, +up/downsampling)., f 66; +#X text 136 217 1) float - set block size (default 64).; +#X text 135 237 2) float - set overlap for FFT (default 1).; +#X text 135 257 3) float - up/down-sampling factor (default 1).; +#X restore 369 17 pd reference; +#X text 5 16 [block~] and [switch~] -; +#X text 188 9 set block size and on/off control for DSP, f 22; +#X obj 5 583 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 462 18 <= click; +#X connect 14 0 15 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/bng-help.pd puredata-0.52.2+ds0/doc/5.reference/bng-help.pd --- puredata-0.52.1+ds0/doc/5.reference/bng-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/bng-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,7 +1,7 @@ -#N canvas 754 116 530 506 12; -#X msg 187 149 bang; -#X floatatom 139 150 5 0 0 0 - - - 0; -#X symbolatom 242 190 7 0 0 0 - - - 0; +#N canvas 561 38 519 496 12; +#X msg 181 149 bang; +#X floatatom 133 150 5 0 0 0 - - - 0; +#X symbolatom 236 190 7 0 0 0 - - - 0; #N canvas 846 101 364 357 example-once 0; #X obj 123 84 bng 50 250 50 0 empty empty Once 58 24 0 13 #dcdcdc #c4fcfc #980000; @@ -19,15 +19,14 @@ #X connect 6 0 1 0; #X connect 6 1 7 0; #X connect 7 0 4 1; -#X restore 384 249 pd example-once; -#X text 311 374 (c) musil@iem.kug.ac.at; -#X text 347 390 IEM KUG \, Graz \, Austria \, 2002, f 14; -#X msg 202 190 foo; -#X text 231 142 received messages activate the bang, f 17; -#X text 68 250 Click to bang => Right click for properties., f 16 +#X restore 378 249 pd example-once; +#X text 305 374 (c) musil@iem.kug.ac.at; +#X text 341 390 IEM KUG \, Graz \, Austria \, 2002, f 14; +#X msg 196 190 foo; +#X text 225 142 received messages activate the bang, f 17; +#X text 62 250 Click to bang => Right click for properties., f 16 ; -#X text 10 462 see also:; -#X obj 85 461 x_all_guis; +#X text 16 455 see also:; #N canvas 564 216 614 464 position 0; #X floatatom 142 146 4 0 1000 0 - - - 0; #X obj 191 173 t b f; @@ -69,7 +68,7 @@ #X connect 14 0 18 0; #X connect 17 0 18 0; #X connect 19 0 3 0; -#X restore 412 221 pd position; +#X restore 406 221 pd position; #N canvas 453 113 357 405 properties 0; #N canvas 795 55 631 565 colors 0; #X floatatom 71 244 3 0 29 0 - - - 0; @@ -532,7 +531,7 @@ #000000 #000000; #X text 446 97 Feedback protection: iemguis can have the same name for both the send and receive symbols. This works without 'stack overflow' -erros because they have feedback protection. See example below.; +errors because they have feedback protection. See example below.; #X connect 0 0 9 0; #X connect 1 0 4 0; #X connect 3 0 4 0; @@ -560,29 +559,69 @@ #X text 46 23 All the parameters from the properties window can be set via messages as well. See examples and more details on each parameter in the subpatches below:, f 39; -#X restore 398 193 pd properties; -#X obj 187 240 bng 50 250 50 0 empty empty Big-Bang 58 24 0 13 #dcdcdc +#X restore 392 193 pd properties; +#X obj 181 240 bng 50 250 50 0 empty empty Big-Bang 58 24 0 13 #dcdcdc #fc0400 #0400fc; -#X obj 42 12 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 -#000000; -#X text 30 53 The bang button is a GUI (Graphical User Interface) object +#X text 24 53 The bang button is a GUI (Graphical User Interface) object that sends a bang message when activated via clicks or messages sent to its inlet. Insert it from the Put menu (named as "Bang") or its shortcut. Alternatively \, create it by typing "bng" into an object box. Right click for properties (to set size \, colors \, labels \, etc)., f 67; -#X text 68 12 - [bng]: Bang button; -#X text 71 375 This object is part of the "iemguis" library \, natively +#X text 65 375 This object is part of the "iemguis" library \, natively included in Pd version 0.34., f 28; -#X text 305 460 updated for Pd version 0.51; -#X obj 187 337 print Big-Bang; -#X obj 167 461 bang; -#X obj 207 461 trigger; -#X msg 214 303 bang; -#X text 254 303 <= similar to a bang message; -#X connect 0 0 13 0; -#X connect 1 0 13 0; -#X connect 2 0 13 0; -#X connect 6 0 13 0; -#X connect 13 0 19 0; -#X connect 22 0 19 0; +#X text 299 455 updated for Pd version 0.51; +#X obj 181 337 print Big-Bang; +#X obj 159 456 bang; +#X obj 199 456 trigger; +#X msg 208 303 bang; +#X text 248 303 <= similar to a bang message; +#X obj 91 456 all_guis; +#X obj 36 12 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000; +#X text 62 12 - [bng]: Bang button; +#X obj 6 42 cnv 1 500 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 769 165 584 381 reference 0; +#X obj 17 44 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 17 285 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 17 322 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X obj 17 355 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 51 12 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000; +#X text 77 12 - [bng]: Bang button; +#X text 119 291 bang -; +#X text 171 291 when activated via clicks or when receiving messages. +; +#X text 124 329 NONE; +#X text 87 55 size - set size in pixels., f 56; +#X text 59 74 flashtime - set minimum and maximum flash time +in ms.; +#X text 87 93 init - non zero sets to init mode., f 56; +#X text 72 149 label - set label., f 67; +#X text 59 130 receive - set receive symbol name., f 60; +#X text 80 112 send - set send symbol name., f 57; +#X text 51 168 label_font -; +#X text 191 168 set label type <0: DejaVu Sans Mono \, 1: Helvetica +\, 2: Times> and font size., f 50; +#X text 58 200 label_pos - set label's x/y position., f 71 +; +#X text 86 220 color -; +#X text 191 219 set colors of background \, front and label. Symbols +for hexadecimal values or floats for presets., f 52; +#X text 72 251 other messages - float \, bang \, anything \, whatever +\, activates the bang., f 69; +#X restore 389 11 pd reference; +#X obj 6 442 cnv 1 500 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 321 11 click =>; +#X connect 0 0 12 0; +#X connect 1 0 12 0; +#X connect 2 0 12 0; +#X connect 6 0 12 0; +#X connect 12 0 16 0; +#X connect 19 0 16 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/bp~-help.pd puredata-0.52.2+ds0/doc/5.reference/bp~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/bp~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/bp~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,45 +1,75 @@ -#N canvas 849 57 504 570 12; +#N canvas 588 53 480 548 12; #X declare -stdpath ./; -#X obj 38 14 bp~; -#X floatatom 147 228 7 0 0 0 - - - 0; -#X msg 114 201 clear; -#X text 44 101 The left inlet is the incoming audio signal \, the middle +#X floatatom 139 208 7 0 0 0 - - - 0; +#X msg 106 181 clear; +#X text 35 91 The left inlet is the incoming audio signal \, the middle control input sets center frequency and the right input sets "Q"., f 58; -#X floatatom 181 255 5 1 50 0 - - - 0; -#X text 43 63 bp~ passes a sinusoid at the center frequency at unit +#X floatatom 173 235 5 1 50 0 - - - 0; +#X text 35 53 bp~ passes a sinusoid at the center frequency at unit gain (approximately). Other frequencies are attenuated.; -#X obj 99 505 vcf~; -#X text 278 503 updated for Pd version 0.46; -#X text 35 413 NOTE: the maximum center frequency is sample rate divided +#X text 25 393 NOTE: the maximum center frequency is sample rate divided by 6.28 \, or about 12kHz at the "usual" rates - for a more general and stable (but slightly more CPU-expensive) filter \, try vcf~.; -#X text 204 228 <= center frequency; -#X text 161 200 <= reinitialize internal state; -#X text 202 280 Arguments initialize center frequency and Q, f 22 +#X text 196 208 <= center frequency; +#X text 153 180 <= reinitialize internal state; +#X text 194 260 Arguments initialize center frequency and Q, f 22 ; -#X obj 56 334 output~; -#X obj 46 216 noise~; -#X obj 141 505 bob~; -#X obj 181 505 lop~; -#X obj 221 505 hip~; -#X obj 308 157 declare -stdpath ./; -#X text 71 14 - 2-pole bandpass filter; -#X obj 41 534 biquad~; -#X obj 100 533 slop~, f 7; -#X obj 159 533 cpole~, f 7; -#X obj 221 533 fexpr~; -#X text 228 255 <= Q (controls bandwidth); -#X obj 114 288 bp~ 500 10; -#X text 132 332 Listen to how the white noise input is filtered. The +#X obj 48 314 output~; +#X obj 38 196 noise~; +#X obj 284 141 declare -stdpath ./; +#X text 220 235 <= Q (controls bandwidth); +#X obj 106 268 bp~ 500 10; +#X text 124 312 Listen to how the white noise input is filtered. The higher the Q \, the more attenuation we have for frequencies besides the center frequency \, so the less wide the frequency band is., f 48; -#X text 27 504 see also:; -#X text 277 533 - unfriendly filters; -#X connect 1 0 24 1; -#X connect 2 0 24 0; -#X connect 4 0 24 2; -#X connect 13 0 24 0; -#X connect 24 0 12 0; -#X connect 24 0 12 1; +#X obj 20 9 bp~; +#X text 16 483 see also:; +#X obj 88 484 vcf~; +#X text 270 488 updated for Pd version 0.46; +#X obj 130 484 bob~; +#X obj 170 484 lop~; +#X obj 210 484 hip~; +#X obj 5 42 cnv 1 470 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 694 141 574 303 reference 0; +#X obj 29 16 bp~; +#X text 61 15 - 2-pole bandpass filter; +#X obj 8 49 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 79 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 8 185 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 222 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 278 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 122 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 118 83 signal - input signal to be filtered., f 56; +#X text 125 100 clear - clear filter's memory., f 55; +#X text 119 195 signal - the filtered signal output., f 49; +#X obj 8 151 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 126 127 float - center frequency in Hz., f 49; +#X text 126 156 float - Q (controls bandwidth)., f 49; +#X text 126 232 1) float - initial center frequency in Hz (default +0).; +#X text 126 250 2) float - initial Q (default 0).; +#X restore 294 9 pd reference; +#X text 392 9 <= click; +#X text 53 9 - 2-pole bandpass filter; +#X obj 30 513 biquad~; +#X obj 89 512 slop~, f 7; +#X obj 148 512 cpole~, f 7; +#X obj 210 512 fexpr~; +#X obj 2 471 cnv 1 470 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X connect 0 0 13 1; +#X connect 1 0 13 0; +#X connect 3 0 13 2; +#X connect 10 0 13 0; +#X connect 13 0 9 0; +#X connect 13 0 9 1; diff -Nru puredata-0.52.1+ds0/doc/5.reference/canvas-help.pd puredata-0.52.2+ds0/doc/5.reference/canvas-help.pd --- puredata-0.52.1+ds0/doc/5.reference/canvas-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/canvas-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,23 +1,25 @@ -#N canvas 623 98 1069 664 12; -#X obj 572 194 table; -#X obj 529 530 table help-tab1 25; +#N canvas 299 40 1035 644 12; +#X obj 558 180 table; +#X obj 526 552 table help-tab1 25; #N canvas 1 51 450 300 (subpatch) 0; -#X restore 112 28 pd; -#X text 142 27 - subpatch; -#X obj 747 610 array; +#X restore 61 24 pd; +#X text 91 23 - subpatch; +#X obj 766 609 array; #N canvas 307 173 430 250 foo 0; -#X obj 175 41 inlet; -#X obj 178 171 outlet; -#X text 95 89 this is the subpatch window. Use "inlet" and "outlet" -objects to create inlets/outlets on the parent., f 34; -#X restore 162 325 pd foo; -#X text 793 602 (newer and better replacement for "table")., f 26 +#X obj 141 41 inlet; +#X obj 144 171 outlet; +#X obj 221 41 inlet~; +#X obj 224 171 outlet~; +#X text 57 88 this is the subpatch window. Use "inlet" and "outlet" +objects to create inlets/outlets on the parent window., f 44; +#X restore 141 325 pd foo; +#X text 812 603 (newer and better replacement for "table")., f 26 ; -#X text 671 530 <= optional creation args: name \, size; +#X text 668 552 <= optional creation args: name \, size; #N canvas 0 22 450 278 (subpatch) 0; #X coords 0 1 100 -1 200 140 1; -#X restore 110 59 graph; -#X text 320 64 - graph (subpatch with graph on parent), f 21; +#X restore 61 60 graph; +#X text 271 65 - graph (subpatch with graph on parent), f 21; #N canvas 0 22 450 278 (subpatch) 0; #X array array1 100 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 @@ -25,26 +27,15 @@ 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; #X coords 0 1 100 -1 200 140 1; -#X restore 570 37 graph; -#X text 477 266 The put menu allows you to create an array \, which +#X restore 558 24 graph; +#X text 495 236 The put menu allows you to create an array \, which needs a graph to be displayed. At creation \, you can specify if you want the array to be included in a new graph or in a graph previously -created., f 69; -#X text 782 46 - graphical array of numbers (a graph with an array) -, f 21; -#X text 618 195 - subpatch with graphical array; -#X text 37 271 By typing "pd" into an object box \, you create a subpatch. -An optional argument sets the subpatch name, f 53; -#X text 219 326 <= click to open; -#X text 47 617 updated for Pd version 0.52; -#X text 83 523 "Table" builds a subpatch with a graphical array inside. -The creation arguments specify the name and an optional size in points. -In this case \, the data (and other properties) of the array aren't -saved with the patch.; -#X obj 704 419 ../2.control.examples/15.array; -#X obj 703 447 ../2.control.examples/16.more.arrays; -#X text 34 230 ------------------------------------------------------------------------------------------------------------------------------------------- -, f 139; +created., f 67; +#X text 770 33 - graphical array of numbers (a graph with an array) +, f 28; +#X text 198 326 <= click to open; +#X text 426 607 updated for Pd version 0.52; #N canvas 681 242 263 185 (subpatch) 0; #X obj 137 59 bng 30 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; @@ -55,11 +46,7 @@ #X connect 1 0 2 0; #X connect 3 0 1 0; #X coords 0 1 100 -1 130 50 1 50 50; -#X restore 255 452 graph; -#X text 35 377 With the put menu \, you can create a 'graph' \, which -is a subpatch set to "graph on parent". A graph in Pd is a rectangular -subregion of the window in which you can display GUIs and store numeric -arrays. Below we have a graph displaying GUI objects., f 54; +#X restore 230 460 graph; #N canvas 0 22 450 278 (subpatch) 0; #X array array2 100 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 @@ -67,12 +54,149 @@ 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; #X coords 0 1 100 -1 200 140 1; -#X restore 484 339 graph; -#X text 700 346 For details on how to work with arrays \, click and +#X restore 476 328 graph; +#X text 698 316 For details on how to work with arrays \, click and open the files below from the '2.control' examples., f 39; -#X text 928 417 <= click; -#X text 967 449 <= click; -#X text 83 471 right click to open =>; -#X text 544 609 see also:; -#X obj 618 610 inlet; -#X obj 664 610 namecanvas; +#X text 58 479 right click to open =>; +#X text 22 609 see also:; +#X obj 96 609 inlet; +#X obj 142 609 namecanvas; +#X text 506 498 "Table" builds a subpatch with an array inside. Not +that the array contents (and other properties) aren't saved with the +patch., f 66; +#X text 15 526 You can send messages to the canvas of a subpatch by +sending them to the subpatch's name \, which is useful for Dynamic +Patching. Alernatively \, you can also use the namecanvas object., +f 63; +#X text 22 232 A 'canvas' is a patch window. This help file concerns +subwindows or subpatches and their canvases. By typing "pd" into an +object box \, you create a subpatch. An optional argument sets the +subpatch name. Click to open and right click on it to access its canvas +properties., f 55; +#X text 25 365 With the put menu \, you can create a 'graph' \, which +is a subpatch with the canvas properties set to "graph on parent". +This creates a rectangular subregion of the canvas's window in which +you can display GUIs and store numeric arrays. Below we have a graph +displaying GUI objects.; +#X text 690 608 see also:; +#X obj 223 609 pd-messages; +#X obj 7 215 cnv 1 1020 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 6 590 cnv 1 1020 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 380 151 <= click; +#N canvas 333 270 612 194 reference 0; +#X obj 8 105 cnv 2 590 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 54 cnv 5 590 5 empty empty INLETS/OUTLETS: 8 18 0 13 #202020 +#000000 0; +#N canvas 131 166 450 300 (subpatch) 0; +#X restore 26 18 pd; +#X text 73 18 - subpatch / graph; +#X text 174 116 sets the subpatch name that you can use to send messages +to (see 'dynamic patching' in 'pd-messages' file., f 56; +#X obj 7 160 cnv 5 590 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 168 71 - depends on inlet/outlet objects; +#X text 90 116 1) symbol -; +#X restore 286 151 pd reference; +#X text 889 104 <= click; +#N canvas 631 72 735 570 reference 0; +#X obj 14 122 cnv 2 700 2 empty empty METHODS: 8 12 0 13 #202020 #000000 +0; +#N canvas 0 22 450 278 (subpatch) 0; +#X array array3 10 float 3; +#A 0 0 0 0 0 0 0 0 0 0 0; +#X coords 0 1 10 -1 90 35 1 0 0; +#X restore 56 26 graph; +#X text 156 36 - graphical array (messages received via array name) +; +#X obj 13 541 cnv 5 700 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 161 130 list - sets values into array \, fisty element is starting +index (from 0)., f 74; +#X text 98 147 const - optional float sets a constant value +to all indexes (default 0)., f 83; +#X text 91 164 resize - resizes the array., f 84; +#X text 91 185 sinesum -; +#X text 210 181 first element sets array size \, remaining elements +set amplitude of sine components., f 67; +#X text 77 218 cosinesum -; +#X text 210 212 first element sets array size \, remaining elements +set amplitude of cosine components., f 67; +#X text 154 243 print - prints array information (name \, type \, size) +on the terminal window., f 75; +#X text 98 291 read - load contents from a text file with +the symbol name., f 83; +#X text 91 309 write - save contents to a text file with the +symbol name., f 84; +#X text 84 327 rename - renames the array to a new name defined +by the given symbol., f 85; +#X text 98 345 bounds - sets rectangle bounds (xmin \, ymax +\, xmax \, ymin)., f 83; +#X text 112 446 vis - zero hides array \, non zero shows it. +, f 81; +#X text 98 463 width - sets array's width (default 1)., f +83; +#X text 98 480 color - sets array color in the same format +as Data Structures., f 83; +#X text 105 515 edit - non zero allows editing with the mouse +\, zero prevents it., f 82; +#X text 98 497 style - sets display style (0-point \, 1-polygon +\, 2-bezier)., f 83; +#X text 70 260 normalize -; +#X text 210 260 normalizes to maximum absolute amplitude set by optional +float (default 1)., f 67; +#X text 98 363 xticks -; +#X text 210 362 sets a point to put a tick \, the interval between +ticks \, and the number of ticks overall per large tick., f 67; +#X text 98 394 yticks - same as above for the 'y' axis., f +83; +#X text 91 412 xlabels - first element is a label offset \, +remaining are the values to label., f 84; +#X text 91 429 ylabels - first element is a label offset \, +remaining are the values to label., f 84; +#X obj 13 76 cnv 5 700 5 empty empty INLETS/OUTLETS: 8 18 0 13 #202020 +#000000 0; +#X text 164 90 NONE (input is via send names).; +#X restore 795 104 pd reference; +#X text 604 179 - subpatch with array; +#X text 891 179 <= click; +#N canvas 786 245 483 218 reference 0; +#X obj 36 18 table; +#X text 93 18 - subpatch with array; +#X obj 8 131 cnv 2 460 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 50 cnv 5 460 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 7 193 cnv 5 460 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 116 142 1) symbol -; +#X obj 7 88 cnv 2 460 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X text 153 62 NONE; +#X text 153 102 NONE; +#X text 123 162 2) float -; +#X text 202 142 sets array name (default internal).; +#X text 202 162 sets array size (default 100).; +#X restore 797 180 pd reference; +#N canvas 491 316 457 285 open 0; +#X obj 120 23 inlet; +#X obj 173 121 pdcontrol; +#X msg 173 94 dir; +#X obj 120 181 pack s s; +#X obj 173 64 loadbang; +#X msg 120 212 \; pd open \$1 \$2; +#X obj 173 151 makefilename %s/../2.control.examples; +#X connect 0 0 3 0; +#X connect 1 0 6 0; +#X connect 2 0 1 0; +#X connect 3 0 5 0; +#X connect 4 0 2 0; +#X connect 6 0 3 1; +#X restore 710 436 pd open; +#X msg 710 381 15.array.pd; +#X msg 720 407 16.more.arrays.pd; +#X text 802 382 <- click to open examples.; +#X connect 38 0 37 0; +#X connect 39 0 37 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/change-help.pd puredata-0.52.2+ds0/doc/5.reference/change-help.pd --- puredata-0.52.1+ds0/doc/5.reference/change-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/change-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,23 +1,52 @@ -#N canvas 688 116 481 344 12; -#X msg 64 117 bang; -#X floatatom 64 259 5 0 0 0 - - - 0; -#X text 235 285 updated for Pd version 0.27; -#X text 152 233 creation argument initializes first value; -#X obj 57 15 change; -#X text 27 54 The change object outputs its input only when it changes. +#N canvas 641 53 509 382 12; +#X msg 68 107 bang; +#X floatatom 68 279 5 0 0 0 - - - 0; +#X text 284 351 updated for Pd version 0.27; +#X text 154 253 creation argument initializes first value; +#X obj 25 15 change; +#X text 35 58 The change object outputs its input only when it changes. You can "set" the current value \, or bang to force output.; -#X obj 64 233 change 6.5; -#X msg 96 204 set \$1; -#X text 138 177 set the value; -#X text 109 116 output current value; -#X text 117 147 if different from current value \, output and set; -#X obj 64 286 print; -#X text 114 16 - eliminate redundancy in a number stream; -#X floatatom 96 177 5 0 0 0 - - - 0; -#X floatatom 76 147 5 0 0 0 - - - 0; +#X obj 68 253 change 6.5; +#X msg 100 224 set \$1; +#X text 142 197 set the value; +#X text 113 106 output current value; +#X text 121 167 if different from current value \, output and set; +#X obj 68 306 print; +#X floatatom 100 197 5 0 0 0 - - - 0; +#X floatatom 80 167 5 0 0 0 - - - 0; +#N canvas 689 147 577 227 reference 0; +#X obj 10 42 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 10 121 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 10 158 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 9 195 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 148 55 float -; +#X obj 30 12 change; +#X text 84 13 - filter repeated numbers; +#X text 155 74 bang -; +#X text 205 74 output current value., f 46; +#X text 106 93 set -; +#X text 205 93 set the value., f 46; +#X text 148 131 float - unrepeated value., f 54; +#X text 205 55 input value (repeated numbers are filtered).; +#X text 128 169 1) float - initial value (default 0)., f 54; +#X restore 322 16 pd reference; +#X text 420 17 <= click; +#X obj 8 49 cnv 1 490 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 80 139 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000; +#X text 102 138 <= resending the same number doesn't output; +#X obj 8 340 cnv 1 490 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 82 16 - eliminate repeated numbers; #X connect 0 0 6 0; #X connect 1 0 11 0; #X connect 6 0 1 0; #X connect 7 0 6 0; -#X connect 13 0 7 0; -#X connect 14 0 6 0; +#X connect 12 0 7 0; +#X connect 13 0 6 0; +#X connect 17 0 13 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/clip~-help.pd puredata-0.52.2+ds0/doc/5.reference/clip~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/clip~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/clip~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,36 +1,68 @@ -#N canvas 743 48 565 509 12; -#X obj 63 192 clip~ -0.5 0.5; -#X obj 63 122 osc~ 1000; +#N canvas 581 52 518 396 12; +#X obj 36 168 clip~ -0.5 0.5; +#X obj 36 72 osc~ 1000; #N canvas 0 22 450 278 (subpatch) 0; #X array clip 100 float 0; #X coords 0 1 100 -1 200 100 1 0 0; -#X restore 297 282 graph; -#X obj 85 331 metro 500; -#X obj 62 19 clip~; -#X text 108 18 - restrict a signal to lie between two limits; -#X text 195 161 inlets to reset clip range; -#X floatatom 110 161 4 0 0 0 - - - 0; -#X floatatom 158 162 4 0 0 0 - - - 0; -#X text 175 191 creation arguments initialize clip range; -#X text 85 57 The clip~ object passes its signal input to its output -\, clipping it to lie between two limits., f 52; -#X text 306 444 updated for Pd version 0.33; -#X text 176 364 <= graph the output, f 10; -#X text 51 444 see also:; -#X obj 208 433 clip; -#X obj 169 433 max~; -#X obj 129 433 min~; -#X obj 130 460 expr~; -#X obj 63 368 tabwrite~ clip; -#X msg 97 258 \; pd dsp \$1; -#X obj 85 306 loadbang; -#X obj 97 233 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X restore 289 224 graph; +#X obj 58 257 metro 500; +#X obj 12 16 clip~; +#X text 171 137 inlets to reset clip range; +#X floatatom 83 137 5 -1 1 0 - - - 0; +#X text 148 167 creation arguments initialize clip range; +#X text 133 61 The clip~ object passes its signal input to its output +\, clipping it to lie between two limits., f 47; +#X text 298 362 updated for Pd version 0.33; +#X text 16 362 see also:; +#X obj 168 363 clip; +#X obj 129 363 max~; +#X obj 89 363 min~; +#X obj 207 363 expr~; +#X msg 157 243 \; pd dsp \$1; +#X obj 58 232 loadbang; +#X obj 157 218 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 117 232 DSP on/off; -#X connect 0 0 18 0; +#X text 178 217 DSP on/off; +#N canvas 650 153 568 290 reference 0; +#X obj 8 48 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 79 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 8 166 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 203 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 108 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 8 137 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 133 112 float - set lower limit., f 49; +#X text 133 140 float - set upper limit., f 49; +#X obj 31 16 clip~; +#X text 78 16 - restrict a signal between two limits.; +#X text 125 84 signal - signal value to clip., f 50; +#X text 125 176 signal - the clipped signal., f 49; +#X obj 7 260 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 113 213 1) float - initial lower limit (default 0)., f 49 +; +#X text 113 232 2) float - initial upper limit (default 0)., f 49 +; +#X restore 350 14 pd reference; +#X text 441 13 <= click; +#X obj 4 47 cnv 1 505 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 56 15 - restrict a signal between two limits; +#X obj 36 294 tabwrite~ clip; +#X floatatom 131 138 5 -1 1 0 - - - 0; +#X text 80 114 lower; +#X text 130 114 upper; +#X obj 4 350 cnv 1 505 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X connect 0 0 23 0; #X connect 1 0 0 0; -#X connect 3 0 18 0; -#X connect 7 0 0 1; -#X connect 8 0 0 2; -#X connect 20 0 3 0; -#X connect 21 0 19 0; +#X connect 3 0 23 0; +#X connect 6 0 0 1; +#X connect 16 0 3 0; +#X connect 17 0 15 0; +#X connect 24 0 0 2; diff -Nru puredata-0.52.1+ds0/doc/5.reference/clip-help.pd puredata-0.52.2+ds0/doc/5.reference/clip-help.pd --- puredata-0.52.1+ds0/doc/5.reference/clip-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/clip-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,25 +1,64 @@ -#N canvas 709 131 498 351 12; -#X floatatom 117 141 4 0 0 0 - - - 0; -#X floatatom 151 168 4 0 0 0 - - - 0; -#X obj 42 19 clip; -#X text 88 18 - bound a number between two limits; -#X floatatom 84 229 4 0 0 0 - - - 0; -#X obj 84 199 clip 20 50; -#X text 151 140 lower limit; -#X text 190 168 upper limit; -#X text 182 196 optional creation arguments initialize lower and upper +#N canvas 644 102 514 352 12; +#X floatatom 172 139 4 0 0 0 - - - 0; +#X floatatom 206 166 4 0 0 0 - - - 0; +#X obj 21 16 clip; +#X floatatom 139 229 4 0 0 0 - - - 0; +#X obj 139 199 clip 20 50; +#X text 206 138 lower limit; +#X text 245 166 upper limit; +#X text 223 193 optional creation arguments initialize lower and upper limits, f 34; -#X floatatom 84 115 4 0 0 0 - - - 0; -#X text 119 114 incoming number to clip; -#X text 257 288 updated for Pd version 0.47; -#X text 27 301 see also:; -#X obj 105 288 min; -#X obj 140 288 max; -#X obj 175 288 clip~; -#X text 31 53 The clip object passes its signal input to its output +#X floatatom 139 113 4 0 0 0 - - - 0; +#X text 174 112 incoming number to clip; +#X text 283 310 updated for Pd version 0.47; +#X text 27 309 see also:; +#X obj 98 309 min; +#X obj 131 309 max; +#X obj 164 309 clip~; +#X text 48 62 The clip object passes its signal input to its output \, clipping it to lie between two limits.; -#X obj 106 314 expr; -#X connect 0 0 5 1; -#X connect 1 0 5 2; -#X connect 5 0 4 0; -#X connect 9 0 5 0; +#X obj 211 309 expr; +#N canvas 655 200 573 318 reference 0; +#X obj 8 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 84 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 8 196 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 233 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 291 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 130 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 21 16 clip; +#X text 58 16 - bound a number between two limits.; +#X text 113 206 float - the clipped value., f 49; +#X text 111 135 float - set lower limit., f 49; +#X text 111 167 float - set upper limit., f 49; +#X text 111 89 float - number to clip., f 61; +#X text 118 107 bang - re clip last incoming number between the two +limits.; +#X text 113 244 1) float - initial lower limit (default 0)., f 49 +; +#X text 113 263 2) float - initial upper limit (default 0)., f 49 +; +#X obj 8 159 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 +0; +#X restore 337 15 pd reference; +#X text 428 15 <= click; +#X obj 11 49 cnv 1 490 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 11 290 cnv 1 490 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 58 16 - bound a number between two limits.; +#X obj 108 152 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#X obj 139 256 print clip; +#X text 50 150 re clip; +#X connect 0 0 4 1; +#X connect 1 0 4 2; +#X connect 3 0 23 0; +#X connect 4 0 3 0; +#X connect 8 0 4 0; +#X connect 22 0 4 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/clone-abstraction.pd puredata-0.52.2+ds0/doc/5.reference/clone-abstraction.pd --- puredata-0.52.1+ds0/doc/5.reference/clone-abstraction.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/clone-abstraction.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,25 +1,25 @@ -#N canvas 737 330 454 393 12; -#X obj 116 66 inlet; -#X obj 116 168 osc~; -#X obj 116 251 outlet~; -#X obj 116 190 *~; -#X obj 250 194 *~; -#X obj 250 222 *~; -#X obj 250 166 line~; -#X obj 250 117 del 10; -#X obj 116 93 t f b, f 8; -#X obj 116 125 mtof; -#X obj 250 141 pack 0 4000; -#X obj 169 128 pack 1 10; -#X obj 289 297 float \$1; -#X obj 289 275 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#N canvas 592 110 402 392 12; +#X obj 92 67 inlet; +#X obj 92 162 osc~; +#X obj 92 252 outlet~; +#X obj 92 191 *~; +#X obj 226 195 *~; +#X obj 226 223 *~; +#X obj 226 167 line~; +#X obj 226 118 del 10; +#X obj 92 94 t f b, f 8; +#X obj 92 126 mtof; +#X obj 226 142 pack 0 4000; +#X obj 145 129 pack 1 10; +#X obj 265 297 float \$1; +#X obj 265 274 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 289 349 print; -#X text 82 306 You can access the instance number within the patch: +#X obj 265 350 print; +#X text 58 307 You can access the instance number within the patch: , f 27; -#X text 35 15 This is the abstraction for the clone help patch. It +#X text 23 16 This is the abstraction for the clone help patch. It plays tones at pitches sent to its inlet., f 49; -#X floatatom 289 322 5 0 0 0 - - - 0; +#X floatatom 265 323 5 0 0 0 - - - 0; #X connect 0 0 8 0; #X connect 1 0 3 0; #X connect 3 0 2 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/clone-help.pd puredata-0.52.2+ds0/doc/5.reference/clone-help.pd --- puredata-0.52.1+ds0/doc/5.reference/clone-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/clone-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,82 +1,136 @@ -#N canvas 678 110 763 809 12; +#N canvas 470 23 753 703 12; #X declare -stdpath ./; -#X floatatom 189 308 5 36 144 0 - - - 0; -#X obj 189 330 t b f; -#X obj 189 354 f; -#X obj 189 378 + 1; -#X obj 189 402 mod 16; -#X msg 287 393 next \$1; -#X floatatom 287 371 5 36 144 0 - - - 0; -#X floatatom 297 428 5 36 144 0 - - - 0; -#X msg 297 450 this \$1; -#X floatatom 306 477 5 36 144 0 - - - 0; -#X msg 306 499 set \$1; -#X msg 110 377 vis 5 1; -#X msg 47 376 vis 5 0; -#X floatatom 315 526 5 36 144 0 - - - 0; -#X msg 315 548 all \$1; -#X text 535 728 updated for Pd version 0.47; -#X text 384 585 creation arguments:; -#X text 55 590 click to open ->; -#X text 43 612 (first copy only); -#X text 57 333 open or close copy number 5:, f 14; -#X text 239 312 A list beginning with a number dispatches the rest -of the list as a message, f 41; -#X text 352 372 "next" forwards a message to the next instance (incrementing +#X floatatom 181 253 5 36 110 0 - - - 0; +#X obj 181 277 t b f, f 9; +#X obj 181 302 f; +#X obj 181 327 mod 16; +#X msg 269 331 next \$1; +#X msg 277 380 this \$1; +#X msg 288 430 set \$1; +#X msg 102 303 vis 5 1; +#X msg 39 303 vis 5 0; +#X msg 297 478 all \$1; +#X text 531 676 updated for Pd version 0.47; +#X text 376 512 creation arguments:; +#X text 49 260 open or close copy number 5:, f 14; +#X text 332 305 "next" forwards a message to the next instance (incrementing and repeating circularly)., f 31; -#X text 363 424 "this" forwards a message to the previous instance -sent to by "this" or "next", f 30; -#X text 366 481 "set" sets the "next"/"this" counter, f 29; -#X text 372 530 "all" broadcasts a message to all instances, f 26 -; -#X text 88 164 clone's inlets and outlets correspond to those of the -contained patch \, and may be signal and/or control inlets and outlets. -(In this example there's one control inlet and one signal outlet). -You can click on the clone~ object to see the first of the created -instances., f 83; -#X text 88 233 Signal inlets are copied to all the instances. Control -inlets forward messages as shown below. Signal outlets output the sum -of all instances' outputs \, and control outlets forward messages with -the number of the instance prepended to them., f 83; -#X text 387 609 optional "-s #" to set starting voice number \; optional +#X text 340 364 "this" forwards a message to the previous instance +sent to by "this" or "next", f 43; +#X text 348 423 "set" sets the "next"/"this" counter, f 38; +#X text 354 466 "all" broadcasts a message to all instances; +#X text 379 532 optional "-s #" to set starting voice number \; optional -x to avoid setting \$1 to voice number \; filename \; number of copies \; optional arguments to copies; -#X text 88 57 clone creates any number of copies of a desired abstraction +#X text 56 620 note: for backward compatibility \, you can also invoke +this as "clone 16 clone-abstraction" (for instance) \, swapping the +abstraction name and the number of voices., f 90; +#X obj 181 550 output~; +#X obj 30 9 clone; +#X obj 181 350 pack f f; +#X listbox 181 378 8 0 0 0 - - - 0; +#X obj 70 565 declare -stdpath ./, f 11; +#X obj 6 40 cnv 1 740 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 6 666 cnv 1 740 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 210 302 + 1; +#N canvas 746 101 576 485 reference 0; +#X obj 8 43 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 76 cnv 1 550 1 empty empty 'n': 8 12 0 13 #9f9f9f #000000 +0; +#X obj 8 243 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 461 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 28 13 clone; +#X obj 8 321 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 346 cnv 1 550 1 empty empty flags: 8 12 0 13 #7c7c7c #000000 +0; +#X text 104 84 list -; +#X text 55 136 next -; +#X text 55 167 this -; +#X text 62 199 set - sets the "next"/"this" counter., f 67 +; +#X text 88 248 (depends on the abstraction); +#X text 40 370 "-s " - sets starting voice number (default 0). +, f 70; +#X text 96 353 "-x" - avoids including a first argument setting voice +number., f 62; +#X text 113 399 1) symbol - abstraction name., f 49; +#X text 113 417 2) float - number of copies., f 49; +#X obj 7 394 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 +0; +#X text 113 435 3) list - optional arguments to the abstraction., +f 49; +#X text 153 85 first number sets the copy number and the rest of the +list is sent to that instance's inlet., f 54; +#X text 153 135 forwards a message to the next instance's inlet (incrementing +and repeating circularly)., f 54; +#X text 153 167 forwards a message to the previous instance's inlet +sent to by "this" or "next"., f 54; +#X text 62 217 all - sends a message to all instances' inlet. +, f 67; +#X text 79 52 (number and type depends on the abstraction); +#X text 71 291 signal outlets - output the sum of all instances' outputs. +; +#X text 90 116 signal -; +#X text 153 117 for signal inlets \, audio is sent to all copies., +f 54; +#X text 64 273 control outlets - output the message with a prepended +copy number., f 67; +#X text 75 13 - make multiple copies of an abstraction.; +#X obj 8 268 cnv 1 550 1 empty empty 'n': 8 12 0 13 #9f9f9f #000000 +0; +#X restore 566 9 pd reference; +#X text 659 9 <= click; +#X text 229 241 A list beginning with a number dispatches the rest +of the list as a message to a copy of the abstraction defined by the +first number., f 68; +#X floatatom 269 309 5 36 110 0 - - - 0; +#X floatatom 277 358 5 36 110 0 - - - 0; +#X floatatom 288 408 5 0 15 0 - - - 0; +#X floatatom 297 456 5 36 110 0 - - - 0; +#X text 49 513 click to open --> (first copy only), f 17; +#X text 40 49 clone creates any number of copies of a desired abstraction (a patch loaded as an object in another patch). Within each copy \, "\$1" is set to the instance number. (These count from 0 unless overridden by the "-s" option in the creation arguments. You can avoid this behavior -using the "-x" option.), f 83; -#X text 88 123 You can pass additional arguments to the copies that -appear as \$2 and onward (or \$1 and onward with "-x" option)., f -83; -#X obj 189 589 clone clone-abstraction 16; -#X text 56 713 note: for backward compatibility \, you can also invoke -this as "clone 16 clone-abstraction" (for instance) \, swapping the -abstraction name and the number of voices., f 58; -#X obj 189 632 output~; -#X obj 141 19 clone; -#X text 189 18 - make multiple copies of a patch; -#X obj 189 426 pack f f; -#X listbox 189 458 7 0 0 0 - - - 0; -#X obj 548 17 declare -stdpath ./; +using the "-x" option.) You can pass additional arguments to the copies +that appear as \$2 and onward (or \$1 and onward with "-x" option). +, f 95; +#X text 40 125 clone's inlets and outlets correspond to those of the +contained patch \, and may be signal and/or control inlets and outlets. +(In this example there's one control inlet and one signal outlet). +You can click on the clone object to see the first of the created instances. +, f 95; +#X text 40 173 Control inlets forward messages as shown below. Signal +inlets can get non float messages with the 'fwd' argument in the same +way \, but signals are sent to all the instances. Signal outlets output +the sum of all instances' outputs \, and control outlets forward messages +with the number of the instance prepended to them., f 95; +#X obj 181 512 clone clone-abstraction 16; +#X text 78 10 - make multiple copies of an abstraction.; #X connect 0 0 1 0; #X connect 1 0 2 0; -#X connect 1 1 35 1; +#X connect 1 1 21 1; #X connect 2 0 3 0; -#X connect 3 0 4 0; -#X connect 4 0 2 1; -#X connect 4 0 35 0; -#X connect 5 0 30 0; -#X connect 6 0 5 0; -#X connect 7 0 8 0; -#X connect 8 0 30 0; -#X connect 9 0 10 0; -#X connect 10 0 30 0; -#X connect 11 0 30 0; -#X connect 12 0 30 0; -#X connect 13 0 14 0; -#X connect 14 0 30 0; -#X connect 30 0 32 0; -#X connect 30 0 32 1; -#X connect 35 0 36 0; -#X connect 36 0 30 0; +#X connect 3 0 21 0; +#X connect 3 0 26 0; +#X connect 4 0 38 0; +#X connect 5 0 38 0; +#X connect 6 0 38 0; +#X connect 7 0 38 0; +#X connect 8 0 38 0; +#X connect 9 0 38 0; +#X connect 21 0 22 0; +#X connect 22 0 38 0; +#X connect 26 0 2 1; +#X connect 30 0 4 0; +#X connect 31 0 5 0; +#X connect 32 0 6 0; +#X connect 33 0 9 0; +#X connect 38 0 19 0; +#X connect 38 0 19 1; diff -Nru puredata-0.52.1+ds0/doc/5.reference/cnv-help.pd puredata-0.52.2+ds0/doc/5.reference/cnv-help.pd --- puredata-0.52.1+ds0/doc/5.reference/cnv-help.pd 1970-01-01 00:00:00.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/cnv-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -0,0 +1,697 @@ +#N canvas 641 38 547 457 12; +#X obj 142 227 cnv 40 150 102 empty empty Canvas 20 50 0 30 #a06888 +#fcfcfc 0; +#X obj 19 8 cnv 15 100 60 empty empty empty 20 12 0 14 #e0e0e0 #404040 +0; +#N canvas 424 168 359 352 properties 0; +#N canvas 815 23 654 646 colors 0; +#X floatatom 82 251 3 0 29 0 - - - 0; +#X floatatom 187 256 3 0 29 0 - - - 0; +#X text 180 231 label; +#X obj 187 282 t b f; +#X msg 82 350 color \$1 \$2 \$3; +#X text 191 350 presets; +#X symbolatom 485 347 9 0 0 0 - - - 0; +#N canvas 1126 148 390 482 label 0; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; +#X obj 109 225 t b f; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; +#X obj 80 341 pack s s s; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; +#X obj 81 250 t b f; +#X obj 147 257 makefilename %02x; +#X obj 113 284 makefilename %02x; +#X obj 74 311 makefilename %02x; +#X text 66 56 label; +#X obj 80 406 outlet; +#X msg 80 370 symbol #\$1\$2\$3; +#X obj 161 185 loadbang; +#X msg 161 217 0; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 6 0; +#X connect 2 0 5 0; +#X connect 3 0 11 0; +#X connect 4 0 8 0; +#X connect 5 0 4 0; +#X connect 5 1 7 0; +#X connect 6 0 3 2; +#X connect 7 0 3 1; +#X connect 8 0 3 0; +#X connect 11 0 10 0; +#X connect 12 0 13 0; +#X connect 13 0 6 0; +#X connect 13 0 7 0; +#X coords 0 -1 1 1 80 170 2 50 50; +#X restore 485 165 pd label; +#X symbolatom 345 346 9 0 0 0 - - - 0; +#N canvas 968 124 390 482 label 0; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; +#X obj 109 225 t b f; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; +#X obj 81 250 t b f; +#X obj 221 257 makefilename %02x; +#X obj 141 284 makefilename %02x; +#X obj 61 321 makefilename %02x; +#X obj 61 416 outlet; +#X text 52 56 background; +#X msg 61 380 symbol #\$1\$2\$3; +#X obj 176 59 loadbang; +#X obj 176 176 route set; +#X obj 61 351 pack symbol symbol symbol; +#X obj 277 71 cnv 15 100 60 empty empty empty 20 12 0 14 #e0e0e0 #404040 +0; +#X msg 176 91 set 225; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 5 0; +#X connect 2 0 4 0; +#X connect 3 0 7 0; +#X connect 4 0 3 0; +#X connect 4 1 6 0; +#X connect 5 0 13 2; +#X connect 6 0 13 1; +#X connect 7 0 13 0; +#X connect 10 0 8 0; +#X connect 11 0 15 0; +#X connect 12 0 5 0; +#X connect 12 0 6 0; +#X connect 13 0 10 0; +#X connect 15 0 3 0; +#X connect 15 0 2 0; +#X connect 15 0 0 0; +#X connect 15 0 12 0; +#X coords 0 -1 1 1 80 170 2 50 50; +#X restore 345 165 pd label; +#X obj 485 377 t b s; +#X obj 267 231 loadbang; +#X obj 345 415 pack symbol symbol symbol; +#X msg 345 444 color \$1 \$2 \$3; +#X text 72 231 background; +#X text 454 445 RGB in hexadecimal; +#X text 356 140 Set RGB values in the sliders; +#X text 71 164 Open subpatches for the conversion from RGB to hexadecimal +============>, f 38; +#X obj 193 540 cnv 15 200 60 empty \$0-colors Label 35 30 0 40 #e1e1e1 +#000000 0; +#X obj 345 481 send \$0-colors; +#X msg 267 270 list #e1e1e1 #000000 #000000, f 7; +#X obj 82 313 pack 1 22 22, f 20; +#N canvas 755 128 818 419 old-behaviour 0; +#X floatatom 395 117 3 0 29 0 - - - 0; +#X floatatom 500 122 3 0 29 0 - - - 0; +#X text 493 97 label; +#X obj 500 158 t b f; +#X msg 395 226 color \$1 \$2 \$3; +#X text 393 97 background; +#X obj 496 320 cnv 15 200 60 empty \$0-old-behaviour Label 35 30 0 +40 #e0e0e0 #000000 0; +#X obj 395 266 send \$0-old-behaviour; +#X floatatom 600 116 3 0 29 0 - - - 0; +#X floatatom 705 121 3 0 29 0 - - - 0; +#X text 698 96 label; +#X obj 705 157 t b f; +#X text 590 96 background; +#X obj 600 265 send \$0-old-behaviour; +#X obj 600 188 pack 1 22, f 20; +#X msg 600 225 color \$1 \$2; +#X text 48 302 Old "compatible" behavior, f 16; +#X text 215 306 New "correct" behavior; +#X msg 37 339 \; pd compatibility 0.46; +#X msg 219 339 \; pd compatibility 0.47; +#X text 22 110 Since Pd version 0.47 \, you cannot use the color message +with only 2 values \, as the 2nd value just gets ignored. You need +to have 3 values where the third sets the label color., f 46; +#X text 22 168 You can use the "pd compatibility" message to get the +old behavior back., f 46; +#X text 22 201 Note that this is valid for all ways of using the color +message (including the new way of using hexadecimal notation introduced +in Pd 0.47) \, but in this example we're just using the "presets" option +for convenience., f 46; +#X text 410 29 When the compatibility is set to 0.47 or higher \, the +example below to the right doesn't work to set the label color., f +48; +#X text 22 37 Until Pd version 0.46 \, you could have a color message +with only two values \, where the second value would set the label +color. You could also have 3 values \, where the 2nd value was ignored +and the 3rd value would set the color., f 46; +#X text 692 226 <= Pd 0.46 way; +#X obj 408 147 loadbang; +#X obj 395 189 pack 10 0 22, f 20; +#X connect 0 0 27 0; +#X connect 1 0 3 0; +#X connect 3 0 27 0; +#X connect 3 1 27 2; +#X connect 4 0 7 0; +#X connect 8 0 14 0; +#X connect 9 0 11 0; +#X connect 11 0 14 0; +#X connect 11 1 14 1; +#X connect 14 0 15 0; +#X connect 15 0 13 0; +#X connect 26 0 27 0; +#X connect 27 0 4 0; +#X restore 467 590 pd old-behaviour; +#X text 435 523 COMPATIBILITY NOTE: The behavior changed in Pd 0.47! +Check details and how to get it back:, f 23; +#N canvas 720 84 576 472 old_way 0; +#N canvas 1004 177 402 495 label 0; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; +#X text 66 56 label; +#X obj 59 361 expr -($f1 * 65536 + $f2 * 256 + $f3 + 1); +#X obj 311 319 t b f; +#X obj 169 319 t b f; +#X obj 59 413 outlet; +#X connect 0 0 5 0; +#X connect 1 0 6 0; +#X connect 2 0 4 0; +#X connect 4 0 7 0; +#X connect 5 0 4 0; +#X connect 5 1 4 2; +#X connect 6 0 4 0; +#X connect 6 1 4 1; +#X coords 0 -1 1 1 80 170 2 50 50; +#X restore 335 137 pd label; +#X text 228 112 Set RGB values in the sliders; +#N canvas 828 139 516 513 label 0; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; +#X obj 61 361 expr -($f1 * 65536 + $f2 * 256 + $f3 + 1); +#X obj 313 269 t b f; +#X obj 171 269 t b f; +#X obj 61 413 outlet; +#X text 52 56 background; +#X obj 180 83 loadbang; +#X msg 202 134 set 225; +#X msg 181 195 225 225 225; +#X connect 0 0 4 0; +#X connect 1 0 5 0; +#X connect 2 0 3 0; +#X connect 3 0 6 0; +#X connect 4 0 3 0; +#X connect 4 1 3 2; +#X connect 5 0 3 0; +#X connect 5 1 3 1; +#X connect 8 0 9 0; +#X connect 8 0 10 0; +#X connect 9 0 0 0; +#X connect 9 0 1 0; +#X connect 9 0 2 0; +#X connect 10 0 3 0; +#X coords 0 -1 1 1 80 170 2 50 50; +#X restore 243 137 pd label; +#X text 91 166 Open subpatches for the conversion ====>, f 20; +#X msg 282 374 color -1.48034e+07 -1 -1; +#N canvas 574 194 328 335 pack 0; +#X obj 73 47 inlet; +#X obj 206 47 inlet; +#X msg 73 152 color \$1 \$2 \$3; +#X obj 206 85 t b f; +#X obj 73 123 pack float -1 -1, f 24; +#X obj 73 187 list prepend set; +#X obj 73 213 list trim; +#X obj 73 246 t b a; +#X obj 73 283 outlet; +#X connect 0 0 4 0; +#X connect 1 0 3 0; +#X connect 2 0 5 0; +#X connect 3 0 4 0; +#X connect 3 1 4 2; +#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 7 1 8 0; +#X restore 282 338 pd pack; +#X f 8; +#X obj 46 355 cnv 15 200 60 empty \$0-colors-old-way Label 35 30 0 +40 #e1e1e1 #000000 0; +#X obj 282 410 send \$0-colors-old-way; +#X text 93 22 The RGB color scheme can also be encoded \, for backwards +compatibility \, as negative inetegers. For "R" (red) \, "G" (green) +& "B" (blue) values from 0 to 255 \, the conversion formula is \; float += -(R * 65536 + G * 256 + B + 1)., f 47; +#X connect 0 0 5 1; +#X connect 2 0 5 0; +#X connect 4 0 7 0; +#X connect 5 0 4 0; +#X restore 64 542 pd old_way; +#X text 29 481 open subpatch below for the old way of encoding RGB +values., f 20; +#X text 30 463 See also:; +#X text 58 18 The 'color' message takes a list of three values \, but +only the first and the third are valid and set \, respectively \, background +and label colors (as there's no "front" color \, the 2nd value is ignored). +, f 76; +#X text 58 65 Integers from 0 to 29 represent the 30 preset colors +found in the properties window \, values above are wrapped. Negative +integers were used to encode RGB values (and that still works for backwards +compatibility). But since Pd 0.47-0 \, you can set colors with hexadecimal +RGB symbol values \, which are followed by "#"., f 76; +#X connect 0 0 21 0; +#X connect 1 0 3 0; +#X connect 3 0 21 0; +#X connect 3 1 21 2; +#X connect 4 0 19 0; +#X connect 6 0 10 0; +#X connect 7 0 6 0; +#X connect 8 0 12 0; +#X connect 9 0 8 0; +#X connect 10 0 12 0; +#X connect 10 1 12 2; +#X connect 11 0 20 0; +#X connect 12 0 13 0; +#X connect 13 0 19 0; +#X connect 20 0 12 0; +#X connect 21 0 4 0; +#X coords 0 0 1 1 85 60 0; +#X restore 182 216 pd colors; +#N canvas 925 42 425 489 size 0; +#X floatatom 158 241 3 18 100 0 - - - 0; +#X text 185 241 size; +#X msg 158 278 size \$1; +#X obj 158 361 cnv 18 18 18 empty \$0-size empty 20 12 0 14 #fc0400 +#404040 0; +#X obj 158 315 send \$0-size; +#X text 25 18 The size message sets the object's size (not to be confused +with the size of the visible rectangle). This is the actual object's +area \, which is the selectable square area that gets highlighted with +a light blue outline when you select it (as usual with any other object +in Pd)., f 52; +#X text 25 104 Below \, the visible rectangular size is a square of +18 pixels. Increase the size of the object and note that the object's +size is also visible if it is larger than the visible rectangle. The +benefit from having a small object size is that canvases are usually +used in the background of something else and this prevents you from +right clicking on it when you want to interact with an object in front. +, f 52; +#X connect 0 0 2 0; +#X connect 2 0 4 0; +#X restore 196 104 pd size; +#N canvas 904 23 566 528 label 0; +#X msg 88 275 label \$1; +#X floatatom 239 168 4 0 3 0 - - - 0; +#X obj 281 195 t b f; +#X floatatom 281 168 5 5 50 0 - - - 0; +#X msg 239 265 label_font \$1 \$2; +#X text 201 167 type; +#X text 325 166 size; +#X obj 239 105 vradio 15 1 0 3 empty empty empty 0 -8 0 10 #fcfcfc +#000000 #000000 0; +#X text 260 104 DejaVu Sans Mono; +#X text 260 120 Helvetica; +#X text 260 135 Times; +#X msg 100 243 symbol empty; +#X floatatom 393 184 4 -100 250 0 - - - 0; +#X obj 435 211 t b f; +#X floatatom 435 184 5 -150 150 0 - - - 0; +#X msg 393 281 label_pos \$1 \$2; +#X text 375 183 x; +#X text 479 182 y; +#X text 388 160 label offset:; +#X msg 68 178 symbol label; +#X msg 88 207 symbol my\ label; +#X text 78 29 The 'label' message sets the label symbol \, setting +it to "empty" clears it. The 'label_font' message sets font type and +size and 'label_pos' sets the x/y coordinates., f 64; +#X obj 155 407 cnv 15 300 100 empty \$0-label label 17 20 2 25 #e0e0e0 +#404040 0; +#X obj 239 360 send \$0-label; +#X obj 393 239 pack 17 20, f 11; +#X obj 239 224 pack 0 25, f 11; +#X connect 0 0 23 0; +#X connect 1 0 25 0; +#X connect 2 0 25 0; +#X connect 2 1 25 1; +#X connect 3 0 2 0; +#X connect 4 0 23 0; +#X connect 7 0 1 0; +#X connect 11 0 0 0; +#X connect 12 0 24 0; +#X connect 13 0 24 0; +#X connect 13 1 24 1; +#X connect 14 0 13 0; +#X connect 15 0 23 0; +#X connect 19 0 0 0; +#X connect 20 0 0 0; +#X connect 24 0 15 0; +#X connect 25 0 4 0; +#X restore 189 188 pd label; +#N canvas 740 42 487 614 send-receive 0; +#X msg 97 203 receive empty; +#X text 65 28 The object can have a send and receive symbol. Since +it has no inlet or outlet \, this is the only way it can receive and +send messages., f 50; +#X obj 169 433 cnv 15 100 60 empty \$0-cnv_rcv1 empty 20 12 0 14 #e0e0e0 +#404040 0; +#X msg 81 172 receive \\\$0-cnv_rcv2; +#X msg 268 203 receive empty; +#X msg 251 172 receive \\\$0-cnv_rcv1; +#X msg 122 347 receive empty; +#X obj 87 384 s \$0-cnv_rcv1; +#X obj 80 241 send \$0-cnv_rcv1; +#X obj 251 241 send \$0-cnv_rcv2; +#X msg 88 285 send \\\$0-cnv_snd2; +#X msg 103 318 send \\\$0-cnv_snd1; +#X msg 287 348 receive empty; +#X msg 253 286 send \\\$0-cnv_snd2; +#X msg 268 319 send \\\$0-cnv_snd1; +#X obj 252 385 s \$0-cnv_rcv2; +#X text 65 74 The 'send' and 'receive' messages take a symbol to set +\, respectively \, the send and receive symbol. If you set these to +"empty" \, the symbols are cleared (and can only be inserted back in +the properties window)., f 50; +#X text 41 511 Note you need to escape dollar signs with bacslashes +to set something like "\$0-x". But the bacslash is not needed if you +set it directly via the properties window. Also note that like other +iemguis \, we have feedback protection in the case both send and receive +symbols are the same - though it is not that pertinent in this case. +, f 59; +#X connect 0 0 8 0; +#X connect 3 0 8 0; +#X connect 4 0 9 0; +#X connect 5 0 9 0; +#X connect 6 0 7 0; +#X connect 10 0 7 0; +#X connect 11 0 7 0; +#X connect 12 0 15 0; +#X connect 13 0 15 0; +#X connect 14 0 15 0; +#X restore 140 160 pd send-receive; +#N canvas 936 145 464 331 loading-args 0; +#X text 58 115 For instance \, below \, we have \$0 used in the label +field \, which gets expanded to the patch ID number. Using something +like "\$1" is useful if you're using the object in an abstraction \, +then you can load a value passed as an argument into a parameter., +f 49; +#X obj 158 231 cnv 15 150 60 empty empty \$0-label 20 18 0 14 #e0e0e0 +#404040 0; +#X text 58 26 Note that all the parameters that you can set by inserting +a number or symbol into a field in the properties window can also load +dollar sign arguments (\$0 \, \$1 \, \$2 \, and so on). Namely \, these +parameters are: size \, visible size \, send/receive symbols \, label +\, label offset and font size., f 49; +#X restore 152 291 pd loading-args; +#X text 64 261 Loading arguments in properties:; +#N canvas 910 74 447 428 visible-rectangle 0; +#X obj 153 283 cnv 15 100 60 empty \$0-vis_size empty 20 12 0 14 #b8b8b8 +#404040 0; +#X obj 156 164 pack 100 60; +#X obj 198 136 t b f; +#X floatatom 198 111 4 18 100 0 - - - 0; +#X floatatom 156 111 4 18 100 0 - - - 0; +#X obj 156 223 send \$0-vis_size; +#X msg 156 194 vis_size \$1 \$2; +#X text 78 110 horizontal; +#X text 233 110 vertical; +#X text 47 27 The 'vis_size' message sets the visible rectangle size. +It takes two values that set \, respectively \, horizontal and vertical +sizes in pixels., f 49; +#X connect 1 0 6 0; +#X connect 2 0 1 0; +#X connect 2 1 1 1; +#X connect 3 0 2 0; +#X connect 4 0 1 0; +#X connect 6 0 5 0; +#X restore 105 132 pd visible-rectangle; +#X text 46 23 All the parameters from the properties window can be +set via messages as well. See examples and more details on each parameter +in the subpatches below:, f 39; +#X restore 392 227 pd properties; +#X text 284 349 (c) musil@iem.kug.ac.at; +#X text 320 365 IEM KUG \, Graz \, Austria \, 2002, f 14; +#X text 10 425 see also:; +#X text 64 350 This object is part of the "iemguis" library \, natively +included in Pd version 0.34., f 28; +#X text 337 425 updated for Pd version 0.51; +#N canvas 360 93 481 370 example-room 1; +#X obj 335 217 tgl 15 1 empty empty empty 20 8 0 10 #fcfcfc #000000 +#000000 1 1; +#X msg 335 267 \; to_K get_pos; +#X obj 335 192 loadbang; +#N canvas 899 89 382 383 room 0; +#X obj 1 1 cnv 40 380 380 empty empty empty 150 140 2 17 #606060 #14e814 +0; +#X obj 2 2 cnv 378 1 1 empty empty empty 115 160 2 17 #fc0400 #14e814 +0; +#X obj 13 14 cnv 25 25 25 from_K1 to_K K1 4 13 0 14 #e8b484 #900000 +0; +#X obj 330 333 cnv 25 25 25 from_K2 to_K K2 4 13 2 14 #94dcd4 #004450 +0; +#X restore 182 179 pd room; +#X text 120 180 click =>; +#X obj 335 240 metro 5; +#X floatatom 70 310 4 0 0 0 - - - 0; +#X floatatom 123 310 4 0 0 0 - - - 0; +#X text 56 310 x; +#X text 154 309 y; +#X obj 70 278 unpack, f 8; +#N canvas 103 309 451 443 from_K1 0; +#X obj 124 136 t f f; +#X obj 110 201 ||; +#X obj 64 137 t f f; +#X obj 110 232 sel 1; +#X obj 155 288 list; +#X obj 64 73 trigger list list; +#X obj 64 107 unpack; +#X obj 128 170 !=; +#X obj 68 171 !=; +#X obj 155 371 outlet; +#X obj 64 43 receive from_K1; +#X text 212 274 The list is output only if either of the values has +changed, f 23; +#X obj 175 334 print K1; +#X connect 0 0 7 1; +#X connect 0 1 7 0; +#X connect 1 0 3 0; +#X connect 2 0 8 1; +#X connect 2 1 8 0; +#X connect 3 0 4 0; +#X connect 4 0 9 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 5 1 4 1; +#X connect 6 0 2 0; +#X connect 6 1 0 0; +#X connect 7 0 1 1; +#X connect 8 0 1 0; +#X connect 10 0 5 0; +#X restore 70 246 pd from_K1; +#X floatatom 210 310 4 0 0 0 - - - 0; +#X floatatom 263 310 4 0 0 0 - - - 0; +#X text 196 309 x; +#X text 294 309 y; +#X obj 210 278 unpack, f 8; +#X text 46 24 In this example \, we drag canvases in a subpatch and +get their position at a rate from a metro object (below to the right). +The values are then received below to the left., f 52; +#X text 45 86 Open the subpatch below ([pd room]) and move the "K1" +and "K2" canvases. Note that the subpatch needs to be in edit mode +so the objects can be selected and dragged. Hence \, click to open +it and then get into the edit mode to move them., f 52; +#N canvas 317 55 455 465 from_K2 0; +#X obj 124 136 t f f; +#X obj 110 201 ||; +#X obj 64 137 t f f; +#X obj 110 232 sel 1; +#X obj 155 288 list; +#X obj 64 73 trigger list list; +#X obj 64 107 unpack; +#X obj 128 170 !=; +#X obj 68 171 !=; +#X obj 155 381 outlet; +#X text 212 274 The list is output only if either of the values has +changed, f 23; +#X obj 64 43 receive from_K2; +#X obj 180 336 print K2; +#X connect 0 0 7 1; +#X connect 0 1 7 0; +#X connect 1 0 3 0; +#X connect 2 0 8 1; +#X connect 2 1 8 0; +#X connect 3 0 4 0; +#X connect 4 0 9 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 5 1 4 1; +#X connect 6 0 2 0; +#X connect 6 1 0 0; +#X connect 7 0 1 1; +#X connect 8 0 1 0; +#X connect 11 0 5 0; +#X restore 210 246 pd from_K2; +#X connect 0 0 5 0; +#X connect 2 0 0 0; +#X connect 5 0 1 0; +#X connect 10 0 6 0; +#X connect 10 1 7 0; +#X connect 11 0 10 0; +#X connect 16 0 12 0; +#X connect 16 1 13 0; +#X connect 19 0 16 0; +#X restore 378 283 pd example-room; +#N canvas 665 62 632 612 position 0; +#X floatatom 200 146 4 0 1000 0 - - - 0; +#X obj 249 173 t b f; +#X floatatom 249 146 5 0 500 0 - - - 0; +#X msg 200 233 pos \$1 \$2; +#X text 121 146 x-position; +#X text 293 145 y-position; +#X msg 327 236 delta 1 0; +#X text 400 235 increase x by 1; +#X msg 334 258 delta -1 0; +#X text 416 257 decrease x by 1; +#X msg 349 286 delta 0 1; +#X msg 353 308 delta 0 -1; +#X text 426 285 increase y by 1; +#X text 437 310 decrease y by 1; +#X msg 364 337 delta 1 1; +#X text 439 338 increase both by 1; +#X text 455 359 decrease both by -1; +#X msg 369 359 delta -1 -1; +#X text 318 24 The 'delta' message changes the position of the object +by a difference amount. It takes a list of x/y delta in pixels., f +40; +#X text 27 75 The 'pos' message takes a list of x/y coordinates in +pixels and sets the objects's position., f 36; +#X obj 265 450 cnv 50 50 50 \$0-get_pos \$0-position empty 20 12 0 +14 #7c78ac #404040 0; +#X obj 309 401 send \$0-position; +#X msg 308 197 get_pos; +#X obj 64 304 receive \$0-get_pos; +#X floatatom 64 366 4 0 1000 0 - - - 0; +#X floatatom 187 366 5 0 500 0 - - - 0; +#X text 43 387 x-position; +#X text 168 385 y-position; +#X obj 64 334 unpack float float; +#X text 27 16 You can also set and change the position of the object +in the patch. Moreover \, you can get the object's position., f 36 +; +#X text 318 83 The 'get_pos' message makes the object send its position. +, f 40; +#X text 369 196 <= get position; +#X text 64 280 receive position:; +#X obj 200 201 pack 265 450; +#X text 88 234 set position =>; +#X connect 0 0 33 0; +#X connect 1 0 33 0; +#X connect 1 1 33 1; +#X connect 2 0 1 0; +#X connect 3 0 21 0; +#X connect 6 0 21 0; +#X connect 8 0 21 0; +#X connect 10 0 21 0; +#X connect 11 0 21 0; +#X connect 14 0 21 0; +#X connect 17 0 21 0; +#X connect 22 0 21 0; +#X connect 23 0 28 0; +#X connect 28 0 24 0; +#X connect 28 1 25 0; +#X connect 33 0 3 0; +#X restore 406 255 pd position; +#X text 22 233 Right click ===> for properties., f 16; +#X text 10 159 Right click for properties (to set size \, colors \, +labels \, etc). Note you need to right click on the selectable area +(on the top left corner). When the object is selected \, this area +is highlighted as light blue., f 71; +#N canvas 781 30 461 491 display-example 0; +#X obj 120 259 send \$0-display; +#X floatatom 120 165 5 1 50 0 - - - 0; +#X msg 120 230 label \$1; +#X obj 79 307 nbx 15 30 1 100 0 0 \$0-file empty empty 0 -8 0 10 #fcfcfc +#000000 #000000 0 256; +#X obj 79 307 cnv 1 148 30 empty \$0-display file\ 050.wav 9 15 0 16 +#000000 #fc6460 0; +#X text 236 316 <= also click and drag; +#X text 166 164 <= click and drag; +#X obj 120 201 makefilename file\ %03d.wav; +#X text 60 368 We also have another trick here \, which is hiding a +number box behind the canvas. This way you end up interacting with +it and so you can also click and drag on the canvas to change its display +symbol. Note that this number box sends value to the atom box above +via an internal send symbol., f 48; +#X obj 120 137 receive \$0-file; +#X text 64 27 Here we're using a canvas to display a symbol by using +it to set the label., f 43; +#X text 64 64 The file name is set with a [makefilename] object below +and you can click and drag on the number box to set the file name. +, f 43; +#X connect 1 0 7 0; +#X connect 2 0 0 0; +#X connect 7 0 2 0; +#X connect 9 0 1 0; +#X restore 357 311 pd display-example; +#X text 10 98 Insert it from the Put menu (named as "Canvas") or its +shortcut. Alternatively \, create it by typing "my_canvas" or "cnv" +into an object box. This object has no inlet or outlet \, so it can +only communicate via send and receive symbols set via the properties +window., f 71; +#X obj 84 426 all_guis; +#X obj 2 416 cnv 1 535 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 137 41 cnv 1 400 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 126 12 - [cnv]/[my_canvas]: GUI Canvas; +#N canvas 578 113 658 414 reference 0; +#X obj 8 52 cnv 5 640 5 empty empty INLETS/OUTLETS: 8 18 0 13 #202020 +#000000 0; +#X obj 11 96 cnv 2 630 2 empty empty METHODS: 8 12 0 13 #202020 #000000 +0; +#X text 136 107 size - sets the size of selectable square. +, f 70; +#X text 59 126 vis_size - sets canvas' horizontal/vertical +size., f 81; +#X text 122 145 label - sets label symbol., f 72; +#X text 45 164 label_font -; +#X text 52 196 label_pos -; +#X text 241 196 sets label position., f 55; +#X obj 8 385 cnv 5 640 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 129 246 send - sets send symbol., f 71; +#X text 101 265 recceive - sets receive symbol., f 75; +#X text 136 214 color -; +#X text 241 214 first element sets background color and third sets +font color (either floats or symbols in hexadecimal format).; +#X text 241 164 sets font type <0: DejaVu Sans Mono \, 1: Helvetica +\, 2: Times> and font size., f 50; +#X text 94 284 pos - sets position in the patch canvas. +, f 76; +#X obj 37 16 cnv 15 100 20 empty empty empty 20 12 0 14 #e0e0e0 #404040 +0; +#X text 80 302 delta -; +#X text 241 302 changes the position by a x/y delta in pixels., f +55; +#X text 171 320 get_pos - gets objects' position (sent to a receive +name)., f 65; +#X text 159 66 NONE (input/output is via send/receive names).; +#X text 148 17 - GUI Canvas.; +#X obj 11 349 cnv 2 630 2 empty empty OUTPUT: 8 12 0 13 #202020 #000000 +0; +#X text 192 358 list - position when receiving a 'get_pos' +message.; +#X restore 372 10 pd reference; +#X text 463 10 <= click; +#X obj 6 81 cnv 1 130 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 136 41 cnv 1 1 41 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 150 50 The canvas object is a simple GUI (Graphical User Interface) +used as a background and/or to display a symbol. It can also send its +position when queried., f 51; diff -Nru puredata-0.52.1+ds0/doc/5.reference/cos~-help.pd puredata-0.52.2+ds0/doc/5.reference/cos~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/cos~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/cos~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,36 +1,58 @@ -#N canvas 614 59 575 445 12; -#X obj 88 19 cos~; -#X obj 121 219 cos~; -#X obj 215 293 snapshot~; -#X obj 121 175 sig~; -#X floatatom 215 319 10 0 0 0 - - - 0; -#X obj 121 144 * 0.01; -#X floatatom 121 117 5 0 0 0 - - - 0; -#X text 175 144 Divide by 100; -#X text 157 175 convert to audio; -#X text 53 350 see also:; -#X obj 56 376 osc~; -#X obj 100 376 tabread4~; -#X text 50 58 The cos~ object outputs the cosine of two pi times its +#N canvas 614 59 515 406 12; +#X obj 23 12 cos~; +#X obj 200 284 snapshot~; +#X obj 123 165 sig~; +#X floatatom 200 310 10 0 0 0 - - - 0; +#X obj 123 134 * 0.01; +#X floatatom 123 107 5 0 0 0 - - - 0; +#X text 177 134 Divide by 100; +#X text 159 165 convert to audio; +#X text 14 368 see also:; +#X obj 87 369 osc~; +#X obj 126 369 tabread4~; +#X text 35 49 The cos~ object outputs the cosine of two pi times its signal input. So -1 \, 0 \, 1 and 2 give 1 out \, 0.5 gives -1 \, and so on., f 61; -#X text 290 374 updated for Pd version 0.41; -#X text 135 20 - cosine waveshaper; -#X text 166 118 <= Scroll to set input value; -#X text 294 320 <= output of the cos~ object; -#X obj 177 376 cos; -#X obj 210 376 expr~; -#X obj 215 258 metro 500; -#X msg 305 250 \; pd dsp \$1; -#X obj 215 212 loadbang; -#X text 323 224 DSP on/off; -#X obj 305 225 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X text 303 366 updated for Pd version 0.41; +#X text 64 11 - cosine waveshaper; +#X text 168 108 <= Scroll to set input value; +#X text 279 311 <= output of the cos~ object; +#X obj 200 369 cos; +#X obj 231 369 expr~; +#X obj 200 249 metro 500; +#X msg 303 233 \; pd dsp \$1; +#X obj 200 209 loadbang; +#X text 328 207 DSP on/off; +#X obj 303 208 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X connect 1 0 2 0; -#X connect 2 0 4 0; -#X connect 3 0 1 0; -#X connect 5 0 3 0; -#X connect 6 0 5 0; -#X connect 19 0 2 0; -#X connect 21 0 19 0; -#X connect 23 0 20 0; +#X obj 7 43 cnv 1 500 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 683 179 572 208 reference 0; +#X obj 10 44 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 10 96 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 10 146 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 10 183 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 28 15 cos~; +#X text 75 14 - cosine waveshaper; +#X text 88 64 signal - input from 0-1 (wraps into 0-1 if outside this +range)., f 63; +#X text 88 113 signal - input from 0-1 (wraps into 0-1 if outside this +range)., f 63; +#X text 118 156 1) float - sets input value; +#X restore 396 12 pd reference; +#X obj 7 353 cnv 1 500 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 328 11 click =>; +#X obj 123 209 cos~; +#X connect 1 0 3 0; +#X connect 2 0 27 0; +#X connect 4 0 2 0; +#X connect 5 0 4 0; +#X connect 18 0 1 0; +#X connect 20 0 18 0; +#X connect 22 0 19 0; +#X connect 27 0 1 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/cpole~-help.pd puredata-0.52.2+ds0/doc/5.reference/cpole~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/cpole~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/cpole~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,25 +1,20 @@ -#N canvas 751 57 554 672 12; +#N canvas 459 40 530 666 12; #X declare -stdpath ./; -#X obj 68 127 osc~ 100; -#X msg 77 154 clear; -#X text 27 407 The transfer function is H(Z) = 1/(1 - aZ^-1).; -#X obj 59 10 cpole~; -#X obj 99 210 sig~; -#X obj 131 233 sig~; -#X obj 163 257 sig~; -#X obj 68 282 cpole~ 0.9 0.4; -#X text 215 299 coefficient (real and imaginary part); -#X text 24 316 The action of cpole~ is:; -#X text 26 358 where y[n] is the output \, x[n] the input \, and a[n] +#X obj 58 127 osc~ 100; +#X msg 67 154 clear; +#X text 17 407 The transfer function is H(Z) = 1/(1 - aZ^-1).; +#X obj 19 10 cpole~; +#X obj 89 210 sig~; +#X obj 121 233 sig~; +#X obj 153 257 sig~; +#X obj 58 282 cpole~ 0.9 0.4; +#X text 205 299 coefficient (real and imaginary part); +#X text 14 316 The action of cpole~ is:; +#X text 16 358 where y[n] is the output \, x[n] the input \, and a[n] the filter coefficient (all complex numbers). The filter is unstable if/when |a[n]|>1.; -#X text 33 47 Cpole~ filters a complex audio signal (first two inlets) -via a one-pole filter \, whose coefficients are controlled by creation -arguments or by another complex audio signal (remaining two inlets). -, f 63; -#X msg 89 181 set 0.6 0.8; -#X text 58 338 y[n] = x[n] + a[n] * y[n-1]; -#X text 121 10 - complex one-pole (recursive) filter \, raw; +#X msg 79 181 set 0.6 0.8; +#X text 48 338 y[n] = x[n] + a[n] * y[n-1]; #N canvas 796 231 441 392 test 0; #X obj 90 85 osc~; #X floatatom 90 52 5 0 0 0 - - - 0; @@ -79,29 +74,29 @@ #X connect 22 0 10 2; #X connect 23 0 10 3; #X connect 24 0 25 0; -#X restore 410 558 pd test; -#X obj 96 603 lop~; -#X text 17 604 see also:; -#X obj 169 535 rzero~; -#X obj 109 558 cpole~; -#X obj 109 535 rpole~; -#X obj 229 535 rzero_rev~; -#X obj 169 558 czero~; -#X obj 229 558 czero_rev~; -#X text 308 535 real; -#X text 307 557 complex; -#X text 106 516 1-pole; -#X text 166 516 1-zero; -#X text 233 500 1-zero \, reversed, f 8; -#X text 15 540 summary of raw filters:, f 12; -#X obj 137 603 hip~; -#X obj 178 603 bp~; -#X obj 213 603 vcf~; -#X text 294 603 - user-friendly filters; -#X obj 254 603 bob~; -#X obj 381 475 bng 15 250 50 0 empty empty empty 17 7 0 10 #dcdcdc +#X restore 410 555 pd test; +#X obj 81 603 lop~; +#X text 8 602 see also:; +#X obj 179 535 rzero~; +#X obj 119 558 cpole~; +#X obj 119 535 rpole~; +#X obj 239 535 rzero_rev~; +#X obj 179 558 czero~; +#X obj 239 558 czero_rev~; +#X text 318 535 real; +#X text 317 557 complex; +#X text 116 516 1-pole; +#X text 176 516 1-zero; +#X text 243 500 1-zero \, reversed, f 8; +#X text 25 540 summary of raw filters:, f 12; +#X obj 122 603 hip~; +#X obj 163 603 bp~; +#X obj 198 603 vcf~; +#X text 279 603 - user-friendly filters; +#X obj 239 603 bob~; +#X obj 371 475 bng 17 250 50 0 empty empty empty 17 7 0 10 #ffffff #000000 #000000; -#X text 25 429 Pd also provides a suite of user-friendly filters. This +#X text 15 429 Pd also provides a suite of user-friendly filters. This and other raw filters are provided for situations which the user-friendly ones can't handle. See Chapter 8 of http://msp.ucsd.edu/techniques.htm for an introduction to the necessary theory (click) =>, f 69; @@ -112,23 +107,74 @@ ; #X connect 0 0 2 0; #X connect 2 0 1 0; -#X restore 381 509 pd Read-More; -#X obj 19 636 biquad~; -#X text 194 636 - not so friendly; -#X obj 80 635 fexpr~; -#X obj 135 635 slop~, f 7; -#X text 351 636 updated for Pd version 0.43; -#X text 136 128 <= signal to filter (real part); -#X text 126 153 <= clear internal state to zero; -#X text 178 181 <= set internal state (real&imaginary parts); -#X text 145 211 <= signal to filter (imaginary part); -#X text 177 235 <= filter coefficient (real part); -#X text 208 259 <= filter coefficient (imaginary part); -#X text 193 283 <= creation arguments initialize filter; +#X restore 371 509 pd Read-More; +#X obj 11 632 biquad~; +#X text 186 632 - not so friendly; +#X obj 72 631 fexpr~; +#X obj 127 631 slop~, f 7; +#X text 328 631 updated for Pd version 0.43; +#X text 126 128 <= signal to filter (real part); +#X text 116 153 <= clear internal state to zero; +#X text 135 211 <= signal to filter (imaginary part); +#X text 167 235 <= filter coefficient (real part); +#X text 198 259 <= filter coefficient (imaginary part); +#X text 183 283 <= creation arguments initialize filter; +#X text 71 10 - complex one-pole filter; +#X text 23 47 Cpole~ filters a complex audio signal (first two inlets) +via a raw one-pole (recursive) filter \, whose coefficients are controlled +by creation arguments or by another complex audio signal (remaining +two inlets)., f 67; +#X text 168 181 <= set internal state (real & imaginary parts); +#X obj 4 38 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 4 592 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 723 131 572 406 reference 0; +#X obj 8 42 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 7 73 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 8 238 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 380 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 327 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X text 117 80 signal -; +#X obj 29 14 cpole~; +#X text 81 14 - complex one-pole filter; +#X obj 7 141 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 7 174 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 7 205 cnv 1 550 1 empty empty 4th: 8 12 0 13 #9f9f9f #000000 +0; +#X text 180 80 signal to filter (real part)., f 49; +#X text 117 148 signal -; +#X text 180 148 signal to filter (imaginary part)., f 49; +#X text 117 180 signal -; +#X text 117 213 signal -; +#X text 180 213 filter coefficient (imaginary part)., f 49; +#X text 180 180 filter coefficient (real part)., f 49; +#X text 124 118 clear -; +#X text 180 98 set internal state (real and imaginary part)., f 49 +; +#X text 180 118 clear internal state to zero (same as "set 0 0").; +#X text 71 352 1) list - real and imaginary part of coefficient (default +0 0)., f 63; +#X text 117 300 signal - filtered signal \, imaginary part.; +#X text 117 269 signal - filtered signal \, real part.; +#X text 33 98 set -; +#X obj 8 263 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 7 293 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X restore 355 9 pd reference; +#X text 449 9 <= click; #X connect 0 0 7 0; #X connect 1 0 7 0; #X connect 4 0 7 1; #X connect 5 0 7 2; #X connect 6 0 7 3; -#X connect 12 0 7 0; -#X connect 35 0 37 0; +#X connect 11 0 7 0; +#X connect 33 0 35 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/cputime-help.pd puredata-0.52.2+ds0/doc/5.reference/cputime-help.pd --- puredata-0.52.1+ds0/doc/5.reference/cputime-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/cputime-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,21 +1,46 @@ -#N canvas 784 149 400 360 12; -#X msg 83 164 bang; -#X msg 37 125 bang; -#X floatatom 37 246 7 0 0 0 - - - 0; -#X text 98 246 Output is in milliseconds; -#X obj 37 215 cputime; -#X text 24 53 The cputime object measures elapsed CPU time \, as measured +#N canvas 550 25 460 315 12; +#X msg 151 165 bang; +#X msg 105 126 bang; +#X floatatom 105 237 7 0 0 0 - - - 0; +#X text 166 237 Output is in milliseconds; +#X obj 105 206 cputime; +#X text 20 57 The cputime object measures elapsed CPU time \, as measured by your operating system. This appears to work on NT \, IRIX \, and -Linux \, but not on W98., f 48; -#X obj 64 18 cputime; -#X text 125 19 - measure CPU usage; -#X text 178 313 updated for Pd version 0.33; -#X text 32 291 see also:; -#X obj 37 316 realtime; -#X obj 109 316 timer; -#X text 130 155 output elapsed time. You can click multiple times since +Linux \, but not on W98., f 59; +#X obj 19 12 cputime; +#X text 80 13 - measure CPU usage; +#X text 252 284 updated for Pd version 0.33; +#X text 16 285 see also:; +#X obj 92 284 realtime; +#X obj 164 284 timer; +#X text 198 156 output elapsed time. You can click multiple times since it was last reset., f 25; -#X text 77 123 reset (set elapsed time to zero); +#X text 145 124 reset (set elapsed time to zero); +#X obj 5 42 cnv 1 450 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 776 85 479 247 reference 0; +#X obj 12 46 cnv 5 450 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 12 139 cnv 2 450 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 12 178 cnv 2 450 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X obj 41 14 cputime; +#X text 102 15 - measure CPU usage; +#X text 151 187 NONE; +#X text 111 80 bang - reset (set elapsed time to zero)., f 43; +#X text 111 110 bang - output elapsed time., f 43; +#X obj 12 212 cnv 5 450 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 12 104 cnv 1 450 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 12 77 cnv 1 450 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 127 148 1) float - elapsed time in msec.; +#X restore 345 13 pd reference; +#X text 277 12 click =>; +#X obj 5 269 cnv 1 450 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 0 0 4 1; #X connect 1 0 4 0; #X connect 4 0 2 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/czero~-help.pd puredata-0.52.2+ds0/doc/5.reference/czero~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/czero~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/czero~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,7 +1,7 @@ -#N canvas 579 34 536 697 12; +#N canvas 534 32 531 676 12; #X declare -stdpath ./; -#X obj 47 130 osc~ 100; -#X msg 65 157 clear; +#X obj 42 125 osc~ 100; +#X msg 60 152 clear; #N canvas 471 254 550 387 test 0; #X obj 127 283 env~ 16384; #X floatatom 127 307 5 0 0 0 - - - 0; @@ -66,54 +66,47 @@ #X connect 24 0 25 1; #X connect 25 0 17 0; #X connect 26 0 17 1; -#X restore 401 571 pd test; -#X obj 96 212 sig~; -#X obj 128 236 sig~; -#X obj 160 260 sig~; -#X text 207 302 coefficient (real and imaginary part); -#X msg 75 183 set 0.6 0.8; -#X obj 57 12 czero~; -#X text 117 12 complex one-zero (non-recursive) filter \, raw; -#X text 22 46 Czero~ filters a complex audio signal (first two inlets) -via a one-zero filter \, whose coefficients are controlled by creation -arguments or by another complex audio signal (remaining two inlets). -, f 62; -#X text 30 325 The action of czero~ is:; -#X text 89 346 y[n] = x[n] - a[n] * x[n-1]; -#X text 36 374 where y[n] is the output \, x[n] the input \, and a[n] +#X restore 396 562 pd test; +#X obj 91 207 sig~; +#X obj 123 231 sig~; +#X obj 155 255 sig~; +#X text 202 297 coefficient (real and imaginary part); +#X msg 70 178 set 0.6 0.8; +#X obj 28 11 czero~; +#X text 25 320 The action of czero~ is:; +#X text 84 341 y[n] = x[n] - a[n] * x[n-1]; +#X text 31 369 where y[n] is the output \, x[n] the input \, and a[n] the filter coefficient (all complex numbers). The filter is always stable., f 63; -#X text 37 422 The transfer function is H(Z) = 1 - aZ^-1.; -#X obj 65 284 czero~ 0.9 0.4; -#X text 113 130 <= signal to filter (real part); -#X text 110 157 <= clear internal state to zero; -#X text 162 183 <= set internal state (real&imaginary parts); -#X text 135 211 <= signal to filter (imaginary part); -#X text 170 235 <= filter coefficient (real part); -#X text 179 286 <= creation arguments initialize filter; -#X text 200 260 <= filter coefficient (imaginary part); -#X obj 96 622 lop~; -#X text 17 623 see also:; -#X obj 179 555 rzero~; -#X obj 119 578 cpole~; -#X obj 119 555 rpole~; -#X obj 239 555 rzero_rev~; -#X obj 179 578 czero~; -#X obj 239 578 czero_rev~; -#X text 318 555 real; -#X text 317 577 complex; -#X text 116 536 1-pole; -#X text 176 536 1-zero; -#X text 243 520 1-zero \, reversed, f 8; -#X text 25 560 summary of raw filters:, f 12; -#X obj 137 622 hip~; -#X obj 178 622 bp~; -#X obj 213 622 vcf~; -#X text 294 622 - user-friendly filters; -#X obj 254 622 bob~; -#X obj 381 495 bng 15 250 50 0 empty empty empty 17 7 0 10 #dcdcdc +#X text 32 415 The transfer function is H(Z) = 1 - aZ^-1.; +#X obj 60 279 czero~ 0.9 0.4; +#X text 108 125 <= signal to filter (real part); +#X text 130 206 <= signal to filter (imaginary part); +#X text 165 230 <= filter coefficient (real part); +#X text 174 281 <= creation arguments initialize filter; +#X text 195 255 <= filter coefficient (imaginary part); +#X obj 91 613 lop~; +#X text 12 614 see also:; +#X obj 174 546 rzero~; +#X obj 114 569 cpole~; +#X obj 114 546 rpole~; +#X obj 234 546 rzero_rev~; +#X obj 174 569 czero~; +#X obj 234 569 czero_rev~; +#X text 313 546 real; +#X text 312 568 complex; +#X text 111 527 1-pole; +#X text 171 527 1-zero; +#X text 238 511 1-zero \, reversed, f 8; +#X text 20 551 summary of raw filters:, f 12; +#X obj 132 613 hip~; +#X obj 173 613 bp~; +#X obj 208 613 vcf~; +#X text 289 613 - user-friendly filters; +#X obj 249 613 bob~; +#X obj 376 487 bng 17 250 50 0 empty empty empty 17 7 0 10 #ffffff #000000 #000000; -#X text 24 448 Pd also provides a suite of user-friendly filters. This +#X text 19 440 Pd also provides a suite of user-friendly filters. This and other raw filters are provided for situations which the user-friendly ones can't handle. See Chapter 8 of http://msp.ucsd.edu/techniques.htm for an introduction to the necessary theory (click) =>, f 69; @@ -124,16 +117,69 @@ ; #X connect 0 0 2 0; #X connect 2 0 1 0; -#X restore 381 528 pd Read-More; -#X obj 19 653 biquad~; -#X text 194 653 - not so friendly; -#X obj 80 652 fexpr~; -#X obj 135 652 slop~, f 7; -#X text 335 656 updated for Pd version 0.38; -#X connect 0 0 15 0; -#X connect 1 0 15 0; -#X connect 3 0 15 1; -#X connect 4 0 15 2; -#X connect 5 0 15 3; -#X connect 7 0 15 0; -#X connect 42 0 44 0; +#X restore 376 520 pd Read-More; +#X obj 14 644 biquad~; +#X text 187 645 - not so friendly; +#X obj 75 644 fexpr~; +#X obj 130 644 slop~, f 7; +#X text 326 644 updated for Pd version 0.38; +#X obj 6 38 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 6 601 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 699 138 571 409 reference 0; +#X obj 8 45 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 245 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 382 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 326 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X text 117 81 signal -; +#X text 180 81 signal to filter (real part)., f 49; +#X text 117 149 signal -; +#X text 180 149 signal to filter (imaginary part)., f 49; +#X text 117 182 signal -; +#X text 117 212 signal -; +#X text 180 212 filter coefficient (imaginary part)., f 49; +#X text 180 182 filter coefficient (real part)., f 49; +#X text 124 119 clear -; +#X text 180 99 set internal state (real and imaginary part)., f 49 +; +#X text 180 119 clear internal state to zero (same as "set 0 0").; +#X text 71 353 1) list - real and imaginary part of coefficient (default +0 0)., f 64; +#X text 117 301 signal - filtered signal \, imaginary part.; +#X text 117 275 signal - filtered signal \, real part.; +#X text 33 99 set -; +#X obj 31 14 czero~; +#X text 91 14 complex one-zero filter; +#X obj 7 74 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 7 142 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 7 175 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 7 206 cnv 1 550 1 empty empty 4th: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 7 269 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 7 297 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X restore 357 11 pd reference; +#X text 451 11 <= click; +#X text 88 11 complex one-zero filter; +#X text 23 48 Czero~ filters a complex audio signal (first two inlets) +via a raw one-zero (non-recursive) filter \, whose coefficients are +controlled by creation arguments or by another complex audio signal +(remaining two inlets)., f 66; +#X text 105 152 <= clear internal state (last samples) to zero; +#X text 157 178 <= set internal state (real & imaginary parts); +#X connect 0 0 13 0; +#X connect 1 0 13 0; +#X connect 3 0 13 1; +#X connect 4 0 13 2; +#X connect 5 0 13 3; +#X connect 7 0 13 0; +#X connect 38 0 40 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/czero_rev~-help.pd puredata-0.52.2+ds0/doc/5.reference/czero_rev~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/czero_rev~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/czero_rev~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,7 +1,7 @@ -#N canvas 702 61 559 690 12; +#N canvas 621 32 532 680 12; #X declare -stdpath ./; -#X obj 104 126 osc~ 100; -#X msg 122 153 clear; +#X obj 61 128 osc~ 100; +#X msg 79 155 clear; #N canvas 534 144 522 578 test 0; #X obj 189 431 env~ 16384; #X floatatom 189 455 5 0 0 0 - - - 0; @@ -79,61 +79,50 @@ #X connect 29 0 3 0; #X connect 29 0 8 0; #X connect 30 0 29 0; -#X restore 422 571 pd test; -#X obj 153 208 sig~; -#X obj 185 232 sig~; -#X obj 217 255 sig~; -#X text 262 294 coefficient (real and imaginary part); -#X msg 133 179 set 0.6 0.8; -#X text 66 374 where y[n] is the output \, x[n] the input \, and a[n] +#X restore 413 571 pd test; +#X obj 110 210 sig~; +#X obj 142 234 sig~; +#X obj 174 257 sig~; +#X text 219 296 coefficient (real and imaginary part); +#X msg 90 181 set 0.6 0.8; +#X text 57 374 where y[n] is the output \, x[n] the input \, and a[n] the filter coefficient (all complex numbers). The filter is always stable., f 64; -#X obj 122 280 czero~ 0.9 0.4; -#X obj 33 14 czero_rev~; -#X text 36 44 Czero_rev~ filters a complex audio signal (first two -inlets) via a one-zero filter \, whose coefficients are controlled -by creation arguments or by another complex audio signal (remaining -two inlets). The impulse response is that of "rzero" reversed in time. -, f 64; -#X text 103 347 y[n] = - a[n] * x[n] + x[n-1]; -#X text 66 414 The transfer function is H(Z) = -a + Z^-1.; -#X text 123 13 - complex one-zero (non-recursive) "reverse" filter -\, raw; -#X text 198 207 <= signal to filter (imaginary part); -#X text 230 232 <= filter coefficient (real part); -#X text 260 255 <= filter coefficient (imaginary part); -#X text 240 280 <= creation arguments initialize filter; -#X text 168 127 <= signal to filter (real part); -#X text 166 152 <= clear internal state to zero; -#X text 219 180 <= set internal state (real&imaginary parts); -#X text 50 324 The action of czero_rev~ is:; -#X obj 96 622 lop~; -#X text 17 623 see also:; -#X obj 179 555 rzero~; -#X obj 119 578 cpole~; -#X obj 119 555 rpole~; -#X obj 239 555 rzero_rev~; -#X obj 179 578 czero~; -#X obj 239 578 czero_rev~; -#X text 318 555 real; -#X text 317 577 complex; -#X text 116 536 1-pole; -#X text 176 536 1-zero; -#X text 243 520 1-zero \, reversed, f 8; -#X text 25 560 summary of raw filters:, f 12; -#X obj 137 622 hip~; -#X obj 178 622 bp~; -#X obj 213 622 vcf~; -#X text 294 622 - user-friendly filters; -#X obj 254 622 bob~; -#X obj 381 495 bng 15 250 50 0 empty empty empty 17 7 0 10 #dcdcdc -#000000 #000000; -#X text 24 448 Pd also provides a suite of user-friendly filters. This +#X obj 79 282 czero~ 0.9 0.4; +#X obj 16 12 czero_rev~; +#X text 94 347 y[n] = - a[n] * x[n] + x[n-1]; +#X text 57 414 The transfer function is H(Z) = -a + Z^-1.; +#X text 155 209 <= signal to filter (imaginary part); +#X text 187 234 <= filter coefficient (real part); +#X text 217 257 <= filter coefficient (imaginary part); +#X text 197 282 <= creation arguments initialize filter; +#X text 125 129 <= signal to filter (real part); +#X text 41 324 The action of czero_rev~ is:; +#X obj 87 622 lop~; +#X text 8 623 see also:; +#X obj 170 555 rzero~; +#X obj 110 578 cpole~; +#X obj 110 555 rpole~; +#X obj 230 555 rzero_rev~; +#X obj 170 578 czero~; +#X obj 230 578 czero_rev~; +#X text 309 555 real; +#X text 308 577 complex; +#X text 107 536 1-pole; +#X text 167 536 1-zero; +#X text 234 520 1-zero \, reversed, f 8; +#X text 16 560 summary of raw filters:, f 12; +#X obj 128 622 hip~; +#X obj 169 622 bp~; +#X obj 204 622 vcf~; +#X text 285 622 - user-friendly filters; +#X obj 245 622 bob~; +#X text 15 448 Pd also provides a suite of user-friendly filters. This and other raw filters are provided for situations which the user-friendly ones can't handle. See Chapter 8 of http://msp.ucsd.edu/techniques.htm for an introduction to the necessary theory (click) =>, f 69; -#X obj 19 653 biquad~; -#X text 194 653 - not so friendly; +#X obj 10 653 biquad~; +#X text 184 652 - not so friendly; #N canvas 798 148 456 264 Read-More 0; #X obj 11 59 inlet; #X obj 11 190 pdcontrol; @@ -141,14 +130,70 @@ ; #X connect 0 0 2 0; #X connect 2 0 1 0; -#X restore 381 528 pd Read-More; -#X obj 80 652 fexpr~; -#X obj 135 652 slop~, f 7; -#X text 351 652 updated for Pd version 0.38; +#X restore 372 528 pd Read-More; +#X obj 71 652 fexpr~; +#X obj 126 652 slop~, f 7; +#X text 329 652 updated for Pd version 0.38; +#X obj 5 38 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 5 612 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 782 118 569 409 reference 0; +#X obj 25 12 czero_rev~; +#X text 105 11 - complex one-zero "reverse" filter; +#X obj 8 45 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 245 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 382 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 326 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X text 117 81 signal -; +#X text 180 81 signal to filter (real part)., f 49; +#X text 117 149 signal -; +#X text 180 149 signal to filter (imaginary part)., f 49; +#X text 117 182 signal -; +#X text 117 212 signal -; +#X text 180 212 filter coefficient (imaginary part)., f 49; +#X text 180 182 filter coefficient (real part)., f 49; +#X text 124 119 clear -; +#X text 180 99 set internal state (real and imaginary part)., f 49 +; +#X text 180 119 clear internal state to zero (same as "set 0 0").; +#X text 71 353 1) list - real and imaginary part of coefficient (default +0 0)., f 64; +#X text 117 301 signal - filtered signal \, imaginary part.; +#X text 117 275 signal - filtered signal \, real part.; +#X text 33 99 set -; +#X obj 7 74 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 7 142 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 7 175 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 7 206 cnv 1 550 1 empty empty 4th: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 7 269 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 7 297 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X restore 366 11 pd reference; +#X text 460 11 <= click; +#X text 96 11 - complex one-zero "reverse" filter; +#X text 27 44 Czero_rev~ filters a complex audio signal (first two +inlets) via a raw one-zero (non-reccursive) filter \, whose coefficients +are controlled by creation arguments or by another complex audio signal +(remaining two inlets). The impulse response is that of "rzero" reversed +in time., f 64; +#X text 123 154 <= clear internal state (last samples) to zero; +#X text 176 182 <= set internal state (real &i maginary parts); +#X obj 372 495 bng 17 250 50 0 empty empty empty 17 7 0 10 #ffffff +#000000 #000000; #X connect 0 0 9 0; #X connect 1 0 9 0; #X connect 3 0 9 1; #X connect 4 0 9 2; #X connect 5 0 9 3; #X connect 7 0 9 0; -#X connect 42 0 46 0; +#X connect 53 0 41 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/declare-help.pd puredata-0.52.2+ds0/doc/5.reference/declare-help.pd --- puredata-0.52.1+ds0/doc/5.reference/declare-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/declare-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,53 +1,54 @@ -#N canvas 514 170 1087 588 12; +#N canvas 199 25 1063 590 12; #X declare; -#X obj 53 14 declare; -#X text 120 15 - set environment for loading patch; -#X text 30 283 -lib; -#X text 30 300 -stdlib; -#X text 30 247 -path; -#X text 30 264 -stdpath; -#X text 574 495 BUG: The name "-stdpath" is confusing \, as it has +#X declare; +#X obj 23 10 declare; +#X text 90 9 - set environment for loading patch; +#X text 20 271 -lib; +#X text 20 288 -stdlib; +#X text 20 235 -path; +#X text 20 252 -stdpath; +#X text 536 501 BUG: The name "-stdpath" is confusing \, as it has a quite different effect from "-stdpath" on the pd command line., -f 66; -#X text 559 394 WARNING: as of version 0.47 \, "declare -path" and +f 73; +#X text 531 399 WARNING: as of version 0.47 \, "declare -path" and "declare -stdpath" inside abstractions take effect only within those abstractions. If Pd's compatibility version is set to 0.46 or earlier the old (buggy) behavior takes effect., f 47; -#X text 118 247 add to search path \, relative to the patch or user -paths; -#X text 118 283 load a library \, relative to the patch or user paths -; -#X text 29 372 For instance \, if you put abstractions and/or other +#X text 108 237 add to search path \, relative to the patch or user +paths, f 56; +#X text 108 273 load a library \, relative to the patch or user paths +, f 56; +#X text 17 354 For instance \, if you put abstractions and/or other supporting files in a subdirectory "more" \, you can put an object "declare -path more" to make sure Pd sees them when the patch is loaded. Or \, if you have files installed in the directory extra/stillmore (in the Pd installation) you can get it using "declare -stdpath stillmore". -, f 68; -#X text 118 265 add to search path \, relative to Pd (the 'extra' folder) -; -#X text 118 300 load a library \, relative to Pd (the 'extra' folder) -; -#X text 863 542 updated for Pd version 0.52; -#X text 546 97 It is a current best practice to just use [declare] +, f 69; +#X text 108 255 add to search path \, relative to Pd (the 'extra' folder) +, f 56; +#X text 108 290 load a library \, relative to Pd (the 'extra' folder) +, f 56; +#X text 854 562 updated for Pd version 0.52; +#X text 524 115 It is a current best practice to just use [declare] instead of permanently adding paths to the user search paths or libs to startup. With [declare] you can better manage and avoid conflicts with externals from different libraries that have the same name by using it to call the right library you want., f 74; -#X obj 700 311 bng 18 250 50 0 empty empty empty 17 7 0 10 #ffffff +#X obj 646 322 bng 18 250 50 0 empty empty empty 17 7 0 10 #ffffff #000000 #000000; -#X text 730 309 <= click to open Pd's manual \, chapter 4, f 21; -#X text 29 333 (For any of these you may use a full pathname such as +#X text 676 320 <= click to open Pd's manual \, chapter 4; +#X text 17 317 (For any of these you may use a full pathname such as "/tmp/dir" or \, in Windows \, "C:/garbage" instead of a relative path). -, f 68; -#X text 29 452 Paths declared with '-path' will have top search priority. +, f 69; +#X text 17 436 Paths declared with '-path' will have top search priority. Next priority is the relative path \, then user added search paths (set in "Preferences => Path") and finally the standard path (a.k.a the 'extra' folder). As of version 0.49 \, "declare -path" and "declare -lib" will fall back the other search paths if the relative path to the patch does not exist. To avoid checking further \, use an explicit relative path by prepending "./" or "../" to the path or lib name. -, f 68; -#X text 546 30 Since the 'extra' folder is the last in the search priority +, f 69; +#X text 524 52 Since the 'extra' folder is the last in the search priority \, other paths are searched before. You can use [declare -stdpath ./] to ensure that 'extra' has search priority. Note that the order you specify '-path' flags also specify the search priority., f 74; @@ -63,13 +64,13 @@ #X connect 2 0 4 0; #X connect 3 0 2 0; #X connect 4 0 1 0; -#X restore 700 353 pd open-manual; -#X msg 907 442 \; pd compatibility \$1; -#X msg 907 381 0.46; -#X text 947 383 earlier (buggy); -#X msg 917 410 0.47; -#X text 955 411 new (correct); -#X text 27 44 Compiled external libraries come either as a single binary +#X restore 646 350 pd open-manual; +#X msg 879 452 \; pd compatibility \$1; +#X msg 879 391 0.46; +#X text 922 393 earlier (buggy); +#X msg 892 420 0.47; +#X text 930 421 new (correct); +#X text 17 51 Compiled external libraries come either as a single binary pack (the "classic" library format) or as a set of separate binaries and/or abstractions. A single binary pack is what we refer to as a 'library' and needs to be pre loaded - whereas external libraries that @@ -77,19 +78,45 @@ its directory to the search path. Adding a directory to the path is also needed if you want to load things like audio and text files that are in it., f 69; -#X text 27 170 A declare object adds one or more directories to the +#X text 17 168 A declare object adds one or more directories to the search path and/or pre-loads one or more libraries ("externals") to Pd in preparation for opening the patch from a file. The usage is "declare [-flag value] [-flag value] ..." where the flag can be:, f 69; -#X text 546 172 However \, note that when you load a library (with +#X text 524 190 However \, note that when you load a library (with 'declare -lib' or via startup) \, all of its objects get pre loaded and prevail \, so using 'declare -path' cannot enforce loading priority. -Hence \, you may neeed to adopt slash declarations as in [library/objectname]. +Hence \, you may need to adopt slash declarations as in [library/objectname]. Also Note that while '-path' will only add search paths for the patch that owns the [declare] object \, once a library is loaded \, it stays with Pd and will be able to be loaded in other patches without [declare]. For more details on this and how external loading works in Pd \, please refer to the chapter 4 of Pd's manual., f 74; +#X obj 4 39 cnv 1 1055 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 676 214 618 221 reference 0; +#X obj 8 42 cnv 5 600 5 empty empty INLETS/OUTLETS: 8 18 0 13 #202020 +#000000 0; +#X obj 7 195 cnv 5 600 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 80 cnv 2 600 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 105 cnv 1 600 1 empty empty flags: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 24 14 declare; +#X text 91 14 - set environment for loading patch.; +#X text 156 53 NONE; +#X text 75 113 -path - add to search path \, relative to the +patch or user paths., f 73; +#X text 54 132 -stdpath - add to search path \, relative to +Pd (the 'extra' folder)., f 76; +#X text 82 150 -lib - load a library \, relative to the patch +or user paths., f 72; +#X text 61 168 -stdlib - load a library \, relative to Pd +(the 'extra' folder)., f 75; +#X restore 881 9 pd reference; +#X text 974 9 <= click; +#X obj 4 551 cnv 1 1055 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 15 0 20 0; #X connect 22 0 21 0; #X connect 24 0 21 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/delay-help.pd puredata-0.52.2+ds0/doc/5.reference/delay-help.pd --- puredata-0.52.1+ds0/doc/5.reference/delay-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/delay-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,80 +1,116 @@ -#N canvas 703 23 672 864 12; -#X obj 76 19 delay; -#X obj 536 19 del; -#X text 428 18 Also known as:; -#X floatatom 197 545 5 0 0 0 - - - 0; -#X msg 56 346 stop; -#X text 38 823 see also:; -#X obj 162 823 timer; -#X obj 114 823 metro; -#X obj 81 614 bng 20 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 -#000000; -#X obj 32 322 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#N canvas 478 23 706 702 12; +#X obj 24 11 delay; +#X obj 25 36 del; +#X floatatom 233 462 5 0 0 0 - - - 0; +#X msg 92 271 stop; +#X text 14 672 see also:; +#X obj 138 672 timer; +#X obj 90 672 metro; +#X obj 117 520 bng 20 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#X obj 68 270 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X text 431 822 updated for Pd version 0.45; -#X obj 81 585 delay 1000 1 msec; -#X text 214 604 - delay time (float); -#X text 215 622 - tempo (float) and time unit (symbol) as in "tempo" +#X text 491 672 updated for Pd version 0.45; +#X obj 117 491 delay 1000 1 msec; +#X text 251 508 - tempo (float) and time unit (symbol) as in "tempo" message; -#X obj 110 746 delay 1 60 permin; -#X obj 332 724 delay 1 1 sec; -#X obj 502 724 delay 1 44100 samp; -#X obj 502 748 delay 44100 1 samp; -#X text 211 585 <= optional creation arguments:; -#X msg 126 400 tempo 0.5 msec; -#X floatatom 81 400 5 0 0 0 - - - 0; -#X msg 81 373 1000; -#X text 237 392 set unit to 1/2 millisecond so that '1000' gives a +#X obj 194 591 delay 1 60 permin; +#X obj 346 569 delay 1 1 sec; +#X obj 516 569 delay 1 44100 samp; +#X obj 516 593 delay 44100 1 samp; +#X msg 162 325 tempo 0.5 msec; +#X floatatom 117 325 5 0 0 0 - - - 0; +#X msg 117 298 1000; +#X text 273 317 set unit to 1/2 millisecond so that '1000' gives a delay of 500 msec (1/2 second)., f 42; -#X msg 139 434 tempo 2 permillisecond; -#X text 290 464 same as 1 msec \, so '1000' is a second.; -#X text 304 433 this is the same as above.; -#X text 36 269 These symbols can also be preceeded by "per" (as in +#X msg 175 359 tempo 2 permillisecond; +#X text 326 389 same as 1 msec \, so '1000' is a second.; +#X text 340 358 this is the same as above.; +#X text 261 203 These symbols can also be preceded by "per" (as in "permin" \, "permsec" \, etc.) In this case \, 60 permin means 1/60 -min (hence \, the same as 'BPM')., f 78; -#X obj 110 718 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc -#000000 #000000; -#X obj 110 777 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc -#000000 #000000; -#X text 27 662 A more traditionally musical way to specify a one-second -delay would be "delay 1" with "tempo 60 permin" as below., f 35; -#X text 55 202 - millisecond (msec for short) \; - seconds (sec) \; -- minutes (min) \; - samples (samp) - depends on the sample rate the -patch is running, f 67; -#X obj 332 748 delay 2 2 persec; -#X text 30 56 The delay object sends a bang to its outlet after a delay -time specified by the right inlet or its first creation argument. You -can send a bang to start and schedule the delay or you can also send -it a float that specifies the time delay and starts it. If the delay -is running and scheduled to output \, sending a bang or a float cancels -the previous setting and reschedules the output., f 85; -#X obj 332 771 delay 0.0166667 1 min; -#X text 55 321 start; -#X text 96 345 cancel the delay; -#X text 120 373 set delay time and start; -#X msg 152 464 tempo 0.001 second; -#X text 238 543 <= set delay time but don't start (doesn't affect; -#X text 259 559 if the delay is in progress)., f 46; -#X obj 209 823 text sequence; -#X text 121 18 - send a bang message after a time delay; -#X text 30 135 Delay times are in units of 1 millisecond by default -\, but you can change this with the second and third argument or with -a "tempo" message (as in [timer] \, [metro] and [text sequence]) \, -which set a different tempo number and a time unit symbol. Possible -symbols are:, f 85; -#X text 170 494 Note that if the tempo is changed while the delay is +min (hence \, the same as 'BPM')., f 50; +#X obj 346 593 delay 2 2 persec; +#X obj 346 616 delay 0.0166667 1 min; +#X text 23 271 start; +#X text 132 270 cancel the delay; +#X text 156 297 set delay time and start; +#X msg 188 389 tempo 0.001 second; +#X obj 185 672 text sequence; +#X text 69 10 - send a bang message after a time delay; +#X text 206 414 Note that if the tempo is changed while the delay is in progress \, the change takes effect to the remaining fraction of the delay., f 65; -#X text 344 664 other possible ways to get a one second delay (but -the rightmost ones are sample-rate dependent):, f 32; -#X connect 3 0 11 1; -#X connect 4 0 11 0; -#X connect 9 0 11 0; -#X connect 11 0 8 0; -#X connect 14 0 28 0; -#X connect 19 0 11 0; -#X connect 20 0 11 0; -#X connect 21 0 20 0; -#X connect 23 0 11 0; -#X connect 27 0 14 0; -#X connect 37 0 11 0; +#X obj 8 62 cnv 1 690 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 727 125 573 320 reference 0; +#X obj 9 42 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 9 185 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 221 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 295 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 140 76 float -; +#X text 147 94 bang -; +#X obj 28 12 delay; +#X text 73 11 - send a bang message after a time delay; +#X text 147 112 stop -; +#X text 197 112 stop the delay., f 46; +#X obj 8 72 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 8 154 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X text 140 160 float -; +#X text 197 76 set delay time and start the delay., f 46; +#X text 197 94 start the delay., f 46; +#X text 28 130 tempo -; +#X text 197 130 set tempo value (float) and time unit symbol., f 46 +; +#X text 146 193 bang - bang at a delayed time., f 54; +#X text 197 160 set delay time for the next tempo., f 46; +#X text 130 229 1) float - initial delay time (default 0)., f 54; +#X text 130 248 2) float - tempo value (default 1)., f 54; +#X text 123 268 3) symbol - time unit (default 'msec')., f 55; +#X restore 533 34 pd reference; +#X text 631 35 <= click; +#X text 33 563 A more traditionally musical way to set a one-second +delay is "delay 1" with "tempo 60 permin"., f 21; +#X text 351 541 other ways to get a one second delay; +#X text 535 615 (sample-rate dependent), f 12; +#X text 247 491 <= creation arguments: - delay time (float); +#X text 276 460 set delay time (only takes effect at the next tempo). +; +#X text 20 135 Delay times are in units of 1 millisecond by default +\, but you can change this with the second and third argument or with +a "tempo" message (as in [timer] \, [metro] and [text sequence]) \, +which set a tempo value and a time unit symbol. Possible symbols are: +, f 94; +#X obj 290 672 pipe; +#X text 20 75 The delay object outputs a bang after a given delay time +(via argument or right inlet). A bang starts the delay. A float specifies +the time delay and starts it. If the delay is running and scheduled +to output \, sending a bang or a float cancels the previous setting +and reschedules the output., f 94; +#X text 93 184 - millisecond (msec for short) \; - seconds (sec) \; +- minutes (min) \; - samples (samp), f 32; +#X text 401 252 'samp' depends on the sample rate the patch is running +, f 28; +#X obj 8 657 cnv 1 690 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 59 36 <-- also known as; +#X obj 194 563 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#X obj 194 619 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#X connect 2 0 10 1; +#X connect 3 0 10 0; +#X connect 8 0 10 0; +#X connect 10 0 7 0; +#X connect 12 0 49 0; +#X connect 16 0 10 0; +#X connect 17 0 10 0; +#X connect 18 0 17 0; +#X connect 20 0 10 0; +#X connect 29 0 10 0; +#X connect 48 0 12 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/delay-tilde-objects-help.pd puredata-0.52.2+ds0/doc/5.reference/delay-tilde-objects-help.pd --- puredata-0.52.1+ds0/doc/5.reference/delay-tilde-objects-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/delay-tilde-objects-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,70 +1,127 @@ -#N canvas 578 67 954 520 12; +#N canvas 348 50 951 558 12; #X declare -stdpath ./; -#X floatatom 603 166 5 0 1000 0 - - - 0; -#X text 741 247 creation argument: name of delay line, f 18; -#X obj 42 65 delread4~; -#X obj 699 307 vd~; -#X obj 603 254 delread4~ \$0-delay; -#X obj 71 295 delwrite~ \$0-delay 1000; -#X obj 603 222 line~; -#X obj 71 230 osc~ 440; -#X obj 603 301 output~; -#X obj 603 194 pack f 1000; -#X obj 407 21 declare -stdpath ./; -#X msg 102 262 clear; -#X text 147 262 set all samples of delay line to zero.; -#X text 245 293 1st argument: name of delay line, f 42; -#X obj 41 15 delwrite~; -#X text 113 15 - writes a signal in a delay line; -#X obj 48 40 delread~; -#X text 113 40 - read a signal from a delay line; -#X text 245 390 1st argument: name of delay line, f 33; -#X text 245 410 2nd argument: (initial) delay time in ms; -#X obj 80 441 output~; -#X text 588 100 The delay time is always at least one sample and at +#X text 750 224 creation argument: name of delay line, f 18; +#X obj 44 65 delread4~; +#X obj 703 284 vd~; +#X obj 612 231 delread4~ \$0-delay; +#X obj 69 306 delwrite~ \$0-delay 1000; +#X obj 612 199 line~; +#X obj 69 245 osc~ 440; +#X obj 612 278 output~; +#X obj 612 171 pack f 1000; +#X obj 396 226 declare -stdpath ./; +#X msg 89 274 clear; +#X text 134 274 set all samples of delay line to zero.; +#X text 243 304 1st argument: name of delay line, f 42; +#X obj 43 15 delwrite~; +#X text 115 15 - writes a signal in a delay line; +#X obj 50 40 delread~; +#X text 115 40 - read a signal from a delay line; +#X text 250 397 1st argument: name of delay line, f 33; +#X text 250 417 2nd argument: (initial) delay time in ms; +#X obj 85 443 output~; +#X text 597 77 The delay time is always at least one sample and at most the length of the delay line (specified by a corresponding delwrite~). , f 46; -#X obj 630 477 ../3.audio.examples/G05.execution.order; -#X text 575 387 In case the delwrite~ runs later in the DSP loop than +#X obj 627 436 ../3.audio.examples/G05.execution.order; +#X text 579 346 In case the delwrite~ runs later in the DSP loop than the delread~ or delread4~ objects \, the delay is constrained below by one vector length (usually 64 samples.) Open the file below as an example on how to control this to obtain very short delays., f 50 ; -#X text 135 359 input (delay time in ms); -#X msg 80 341 500; -#X msg 94 369 10; -#X obj 80 400 delread~ \$0-delay 100; -#X text 355 482 updated for Pd version 0.52; -#X text 21 108 Delread~ and delread4~ objects read from delay allocated -in a delwrite~ object with the same name. Note that in this help file -we're using delay names with "\$0" (the patch ID number used to force -locality in Pd). You can use more than one delread~ and/or delread4~ -objects for the same delwrite~ object. If the specified delay time -in delread~/delread4~ is longer than the size of the delay line or -less than zero it is clipped to the length of the delay line., f 75 -; -#X text 245 310 2nd argument: length of delay line in msec (the maximum +#X text 123 376 input (delay time in ms); +#X msg 49 376 500; +#X text 732 527 updated for Pd version 0.52; +#X text 243 321 2nd argument: length of delay line in msec (the maximum delay time in read objects), f 42; -#X text 117 64 - read from a delay line with 4-point interpolation +#X text 119 64 - read from a delay line with 4-point interpolation (for variable delay times), f 40; -#X text 588 22 Delread4~ implements a 4-point interpolating delay tap. +#X text 597 12 Delread4~ implements a 4-point interpolating delay tap. The delay in milliseconds of the tap is specified by an incoming signal for variable delay times., f 46; -#X text 647 221 signal input (variable delay time in ms); -#X text 732 306 - old name of delread4~ ('vd' for 'variable delay') +#X text 656 198 signal input (variable delay time in ms); +#X text 736 283 - old name of delread4~ ('vd' for 'variable delay') , f 27; -#X obj 485 71 vd~; -#X text 408 71 => a.k.a.:; -#X obj 289 482 fexpr~; -#X text 215 482 see also:; -#X connect 0 0 9 0; -#X connect 4 0 8 0; -#X connect 4 0 8 1; +#X obj 491 70 vd~; +#X obj 96 528 fexpr~; +#X text 22 528 see also:; +#X text 598 471 See also other examples in the "G" section to learn +how to implement dealys with feedback., f 46; +#X obj 9 514 cnv 1 935 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 7 102 cnv 1 570 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 488 21 <= click; +#N canvas 733 91 574 497 reference 0; +#X obj 8 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 111 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 145 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 211 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 161 120 NONE, f 45; +#X text 117 153 symbol -; +#X obj 43 22 delwrite~; +#X text 106 66 signal -; +#X text 173 66 signal input into the delay time., f 44; +#X text 113 84 clear -; +#X text 173 84 clear the delay time., f 44; +#X text 185 153 delay line name., f 47; +#X text 124 171 float -; +#X text 185 171 length of delay line in msec (the maximum delay time +in read objects)., f 47; +#X obj 8 307 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 375 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 414 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 471 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 107 424 symbol -; +#X text 175 424 delay line name., f 29; +#X text 114 443 float -; +#X obj 43 275 delread~; +#X text 113 322 float -; +#X obj 113 275 delread4~; +#X text 117 22 - write in a delay line.; +#X text 192 275 - read from a delay line.; +#X text 107 384 signal -; +#X text 173 322 delay time in ms (for [delread~])., f 44; +#X text 106 342 signal -; +#X text 173 342 delay time in ms (for [delread4~])., f 44; +#X text 173 384 delayed signal., f 44; +#X text 175 443 initial delay time in ms for [delread~] (default 0). +; +#X restore 394 21 pd reference; +#X floatatom 69 218 5 0 0 0 - - - 0; +#X text 15 112 Delread~ and delread4~ objects read from a delay line +allocated in a delwrite~ object with the same name. Note that in this +help file we're using delay names with "\$0" (the patch ID number used +to force locality in Pd). You can use more than one delread~ and/or +delread4~ objects for the same delwrite~ object. If the specified delay +time in delread~/delread4~ is longer than the size of the delay line +or less than zero it is clipped to the length of the delay line., +f 78; +#X obj 85 407 delread~ \$0-delay 500; +#X msg 85 376 1000; +#X msg 612 144 500; +#X msg 648 144 1000; +#X obj 576 3 cnv 1 1 100 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 406 70 --> a.k.a.:; +#X connect 3 0 7 0; +#X connect 3 0 7 1; +#X connect 5 0 3 0; #X connect 6 0 4 0; -#X connect 7 0 5 0; -#X connect 9 0 6 0; -#X connect 11 0 5 0; -#X connect 25 0 27 0; -#X connect 26 0 27 0; -#X connect 27 0 20 0; -#X connect 27 0 20 1; +#X connect 8 0 5 0; +#X connect 10 0 4 0; +#X connect 24 0 41 0; +#X connect 39 0 6 0; +#X connect 41 0 19 0; +#X connect 41 0 19 1; +#X connect 42 0 41 0; +#X connect 43 0 8 0; +#X connect 44 0 8 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/draw-shapes-help.pd puredata-0.52.2+ds0/doc/5.reference/draw-shapes-help.pd --- puredata-0.52.1+ds0/doc/5.reference/draw-shapes-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/draw-shapes-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,14 +1,14 @@ #N struct help-drawpolygon-template float x float y float cat float dog float weasel; -#N canvas 720 91 537 188 12; -#X text 20 123 see also:; -#X obj 145 145 plot; +#N canvas 625 77 589 227 12; +#X text 20 186 see also:; +#X obj 218 187 plot; #X obj 21 10 drawpolygon; -#X obj 21 33 drawcurve; +#X obj 21 34 drawcurve; #X obj 126 11 filledpolygon; -#X obj 127 33 filledcurve; -#N canvas 689 205 995 511 help-drawpolygon-template 0; -#X obj 589 303 struct help-drawpolygon-template float x float y float +#X obj 127 34 filledcurve; +#N canvas 371 88 995 511 help-drawpolygon-template 0; +#X obj 574 312 struct help-drawpolygon-template float x float y float cat float dog float weasel, f 48; #X text 37 32 Optional flags:; #X text 34 7 [drawpolygon] and [drawcurve] take these creation arguments: @@ -16,10 +16,10 @@ #X text 39 446 You can change the name of the object to [drawcurve] and see how it now draws over the 3 points using a bezier curve., f 63; -#X text 541 228 You can change the name of the object to [filledcurve] +#X text 526 237 You can change the name of the object to [filledcurve] and see how it now draws a closed shape over the given points using a bezier curve., f 59; -#X text 550 355 This [struct] object defines the fields for this template. +#X text 535 364 This [struct] object defines the fields for this template. We have 2 of them in the "data" window and you can see their fields' values by right-clicking on the object and selecting "properties". The fields x and y automatically govern the placement of the object @@ -28,13 +28,9 @@ ; #X msg 53 304 1; #X msg 86 304 0; -#X msg 558 31 1; -#X msg 591 31 0; -#X text 622 32 <= visibilty; -#X text 39 383 The example above has a line color of black (0) \, 5 -pixels thick and 3 pair or coordinates draw an open triangle whith -the heigh set by "weasel" (this also makes height settable via click -and dragging \, unless flags disable this)., f 63; +#X msg 543 40 1; +#X msg 576 40 0; +#X text 607 41 <= visibility; #X text 40 178 Arguments (numbers or field names like "weasel" below). ; #X text 41 51 - "-n" to make invisible initially or "-v [field name]" @@ -50,27 +46,79 @@ to draw a line).; #X text 142 324 (if no "-v [field name]" flag was given); #X obj 86 350 drawpolygon 0 5 0 0 25 weasel 50 0; -#X obj 591 60 filledpolygon 900 dog 3 15 0 25 cat 35 0; -#X text 548 95 [filledpolygon] and [filledcurve] take the same inlet +#X obj 576 69 filledpolygon 900 dog 3 15 0 25 cat 35 0; +#X text 533 104 [filledpolygon] and [filledcurve] take the same inlet input. As for the arguments \, they take an extra first argument to specify interior color. Here we have \; - an interior color of red (900) \; - the outline color controlled by the "dog" field \; - an outline width of 3 \; - the three pair of coordinates that now describe a closed and filled triangle of altitude "cat".; -#X connect 7 0 17 0; -#X connect 8 0 17 0; -#X connect 9 0 18 0; -#X connect 10 0 18 0; -#X restore 273 77 pd help-drawpolygon-template; -#N canvas 349 149 282 207 help-drawpolygon-data 1; +#X text 39 383 The example above has the line color 0 (black) that +is 5 pixels thick and 3 pairs of coordinates to draw an opened triangle +with the height set by "weasel" (this also makes the height settable +via click and dragging \, unless flags disable this)., f 63; +#X connect 7 0 16 0; +#X connect 8 0 16 0; +#X connect 9 0 17 0; +#X connect 10 0 17 0; +#X restore 321 94 pd help-drawpolygon-template; +#N canvas 342 90 282 207 help-drawpolygon-data 1; #X scalar help-drawpolygon-template 52 28 30 9 70 \;; #X scalar help-drawpolygon-template 155 102 -30 90 50 \;; #X coords 0 207 1 206 0 0 0; -#X restore 273 103 pd help-drawpolygon-data; -#X obj 21 145 struct; -#X text 316 145 updated for Pd version 0.51.; -#X text 230 22 - draw shapes for data structures; -#X text 212 77 open =>; -#X obj 185 145 set; -#X obj 222 145 text; -#X obj 76 145 drawtext; +#X restore 321 120 pd help-drawpolygon-data; +#X obj 95 187 struct; +#X text 370 188 updated for Pd version 0.51.; +#X text 232 13 - draw shapes for data structures, f 17; +#X text 260 94 open =>; +#X obj 258 187 set; +#X obj 293 187 text; +#X obj 150 187 drawtext; +#X obj 8 67 cnv 1 570 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 714 72 569 433 reference 0; +#X obj 6 60 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 6 106 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 6 144 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 5 410 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 117 77 float -; +#X obj 22 10 drawpolygon; +#X obj 22 33 drawcurve; +#X obj 111 10 filledpolygon; +#X obj 111 33 filledcurve; +#X text 216 20 - draw shapes for data structures; +#X text 143 116 NONE, f 51; +#X text 174 77 sets visibility (1: visible \, 0: invisible)., f 46 +; +#X obj 6 168 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 6 299 cnv 1 550 1 empty empty args: 8 12 0 13 #9f9f9f #000000 +0; +#X text 80 192 "-v" : assigns a field to make it visible/invisible. +, f 63; +#X text 80 210 "-xr": disable mouse actions when in "run" mode., f +63; +#X text 80 174 "-n": makes it invisible initially., f 63; +#X text 80 228 "-xe": disable mouse actions when in "edit" mode., +f 63; +#X text 80 246 "-x": set both "-xr" and "-xe" \, disabling all mouse +actions., f 63; +#X text 182 310 line color \, filled shapes have an extra first interior +color. (default 0 \, 0)., f 48; +#X text 97 311 1) float* -; +#X text 98 342 2) float* - line width (default 1)., f 60; +#X text 145 383 * all of the above can also be field names.; +#X text 112 361 3 list* - (x \, y) pairs giving coordinates of each +vertice.; +#X text 80 264 "-xv":; +#X text 128 264 disable dragging vertices when in "run" mode (keeps +reporting mouse clicks)., f 56; +#X restore 407 22 pd reference; +#X text 505 23 <= click; +#X obj 8 173 cnv 1 570 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 40 95 Use these to draw polygon and curved shapes., f 26; diff -Nru puredata-0.52.1+ds0/doc/5.reference/drawtext-help.pd puredata-0.52.2+ds0/doc/5.reference/drawtext-help.pd --- puredata-0.52.1+ds0/doc/5.reference/drawtext-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/drawtext-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,13 +1,13 @@ #N struct help-draw-data float x float y float cat float dog symbol weasel text boom; -#N canvas 667 149 561 209 12; -#X text 43 126 see also:; -#X obj 46 18 drawnumber; -#X obj 196 156 plot; -#X obj 105 156 drawpolygon; -#X obj 50 156 struct; -#X obj 46 45 drawsymbol; -#X obj 46 73 drawtext; +#N canvas 655 119 585 256 12; +#X text 19 217 see also:; +#X obj 37 12 drawnumber; +#X obj 228 216 plot; +#X obj 142 216 drawpolygon; +#X obj 91 216 struct; +#X obj 37 36 drawsymbol; +#X obj 37 59 drawtext; #N canvas 872 42 533 657 help-draw-template 0; #X obj 42 489 drawsymbol weasel 0 -30 0 weasel=; #X obj 298 489 drawtext boom 0 -45 0 boom=; @@ -46,15 +46,56 @@ properties., f 69; #X connect 9 0 4 0; #X connect 10 0 4 0; -#X restore 329 89 pd help-draw-template; +#X restore 399 125 pd help-draw-template; #N canvas 179 120 455 265 help-draw-data 1; #X scalar help-draw-data 63 134 628 651 hello \; a 1 b 2 c 3 \\\; \; ; -#X scalar help-draw-data 255 95 612 34 wolrd \; 1 a 2 b 3 c \\\; \; +#X scalar help-draw-data 255 95 612 34 world \; 1 a 2 b 3 c \\\; \; ; -#X restore 329 116 pd help-draw-data; -#X text 313 155 updated for Pd version 0.50.; -#X obj 239 156 set; -#X text 134 28 <== all these objects are aliases of the same class -\, used to draw either numbers \, symbols or texts fields., f 53; -#X text 221 89 explanation =>; +#X restore 399 152 pd help-draw-data; +#X text 353 218 updated for Pd version 0.50.; +#X obj 266 216 set; +#X text 291 125 explanation =>; +#X obj 8 91 cnv 1 570 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 395 121 571 346 reference 0; +#X obj 6 60 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 6 103 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 6 137 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 5 321 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 112 75 float -; +#X obj 23 9 drawpolygon; +#X obj 23 32 drawcurve; +#X obj 118 10 filledpolygon; +#X obj 118 32 filledcurve; +#X text 220 20 - draw shapes for data structures; +#X text 143 113 NONE, f 54; +#X text 169 75 sets visibility (1: visible \, 0: invisible)., f 46 +; +#X obj 6 165 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 6 213 cnv 1 550 1 empty empty args: 8 12 0 13 #9f9f9f #000000 +0; +#X text 97 189 "-v" : assigns a field to make it visible/invisible. +, f 63; +#X text 97 171 "-n": makes it invisible initially., f 63; +#X text 102 219 1) symbol -; +#X text 185 218 field name to draw., f 46; +#X text 101 272 4) symbol - optional label., f 58; +#X text 101 236 2) list* - (x \, y) coordinates pair (default 0 0). +, f 58; +#X text 101 254 3) float* - color (default 0)., f 58; +#X text 131 294 * position and color can also be field names.; +#X restore 397 33 pd reference; +#X text 495 34 <= click; +#X text 125 23 - draw numbers \, symbols or texts for Data Structures. +, f 26; +#X text 25 106 All these objects are actually aliases of the same class. +There's no difference in them. Use them to draw either numbers \, symbols +or texts fields., f 34; +#X obj 8 199 cnv 1 570 1 empty empty empty 8 12 0 13 #000000 #000000 +0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/element-help.pd puredata-0.52.2+ds0/doc/5.reference/element-help.pd --- puredata-0.52.1+ds0/doc/5.reference/element-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/element-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,59 +1,88 @@ #N struct help-element-template float x float y array array1 help-element-array1-template ; #N struct help-element-array1-template float y; -#N canvas 548 49 644 543 12; -#X text 39 479 see also:; +#N canvas 622 48 646 530 12; +#X text 21 494 see also:; #N canvas 970 300 501 251 help-element-template 0; #X obj 50 110 plot array1 500 1 10 15 20; #X obj 50 154 filledpolygon 509 509 0 -10 -10 10 -10 10 10 -10 10; #X obj 50 52 struct help-element-template float x float y array array1 help-element-array1-template, f 44; -#X restore 417 412 pd help-element-template; -#N canvas 209 156 292 163 help-element-data 1; +#X restore 425 416 pd help-element-template; +#N canvas 267 157 292 163 help-element-data 1; #X scalar help-element-template 35 24 \; 20 \; 10 \; 26 \; 10 \; 32 \; 10 \; 43 \; -2 \; 33 \; \;; -#X restore 445 386 pd help-element-data; +#X restore 453 390 pd help-element-data; #N canvas 931 474 373 142 help-element-array1-template 0; #X obj 30 71 filledpolygon 0 0 0 -5 0 0 5 5 0 0 -5; #X obj 32 27 struct help-element-array1-template float y; -#X restore 368 436 pd help-element-array1-template; -#X obj 86 16 element; -#X obj 108 503 pointer; -#X obj 169 503 getsize; -#X obj 228 503 setsize; -#X obj 316 292 pointer; -#X msg 316 268 traverse pd-help-element-data \, next; -#X floatatom 46 256 5 -5 15 0 - - - 0; -#X obj 46 349 element help-element-template array1, f 39; -#X obj 46 398 get help-element-array1-template y; -#X floatatom 46 429 5 0 0 0 - - - 0; -#X text 330 321 pointer inlet; -#X text 87 255 index; -#X text 89 430 here we just get the value of y.; -#X text 48 139 Indices range from 0 to the number of elements minus +#X restore 376 440 pd help-element-array1-template; +#X obj 26 17 element; +#X obj 148 494 pointer; +#X obj 207 494 getsize; +#X obj 266 494 setsize; +#X obj 324 296 pointer; +#X msg 324 272 traverse pd-help-element-data \, next; +#X floatatom 54 266 5 -5 15 0 - - - 0; +#X obj 54 402 get help-element-array1-template y; +#X floatatom 54 433 5 0 0 0 - - - 0; +#X text 338 325 pointer inlet; +#X text 95 265 index; +#X text 97 434 here we just get the value of y.; +#X text 56 145 Indices range from 0 to the number of elements minus one \; indices out of range are quietly replaced by the nearest endpoint. , f 66; -#X text 315 246 click here first; -#X obj 51 503 struct; -#X text 404 500 updated for Pd version 0.47; -#X msg 56 313 set help-element-template array1; -#X text 79 291 set template and field name; -#X text 48 182 If you don't know the template name you may specify +#X text 323 250 click here first; +#X obj 95 494 struct; +#X text 426 496 updated for Pd version 0.47; +#X msg 64 317 set help-element-template array1; +#X text 87 295 set template and field name; +#X text 56 188 If you don't know the template name you may specify "-" \, in which case the object will figure out the template name itself \, at some possible cost in efficiency and clarity., f 75; -#X text 148 15 - get pointer to an element of an array; -#X text 49 57 "element" takes a pointer at right and an index number +#X text 88 16 - get pointer to an element of an array, f 40; +#X text 57 63 "element" takes a pointer at right and an index number at left. It looks up a field from the pointer \, which should be an array \, and outputs the element of the array specified by the index number. There are no pointers to arrays themselves \, just to individual elements. The template and field name are specified as creation arguments. , f 75; -#X obj 292 503 plot; -#X text 51 372 outlet is pointer to a single element; -#X text 335 348 arguments: template name \, field name; -#X connect 8 0 11 1; +#X obj 326 494 plot; +#X text 59 376 outlet is pointer to a single element; +#X text 343 352 arguments: template name \, field name; +#X obj 8 45 cnv 1 630 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 757 196 576 275 reference 0; +#X obj 9 42 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 9 162 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 198 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 248 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 150 82 float -; +#X obj 30 13 element; +#X text 92 12 - get pointer to an element of an array, f 40; +#X text 179 206 1) symbol - template name.; +#X text 179 225 2) symbol - field name., f 26; +#X text 45 101 set - set template and field name. +, f 69; +#X text 206 82 set element index and output pointer., f 46; +#X text 136 171 pointer - pointer to element in an array.; +#X obj 9 74 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 128 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X text 136 135 pointer - pointer to an array.; +#X restore 467 17 pd reference; +#X text 565 18 <= click; +#X obj 8 480 cnv 1 630 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 54 353 element help-element-template array1, f 39; +#X connect 8 0 32 1; #X connect 9 0 8 0; -#X connect 10 0 11 0; +#X connect 10 0 32 0; #X connect 11 0 12 0; -#X connect 12 0 13 0; -#X connect 21 0 11 0; +#X connect 20 0 32 0; +#X connect 32 0 11 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/env~-help.pd puredata-0.52.2+ds0/doc/5.reference/env~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/env~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/env~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,44 +1,66 @@ -#N canvas 761 28 613 623 12; -#X floatatom 57 388 8 0 0 0 - - - 0; -#X obj 74 14 env~; -#X text 120 16 - envelope follower; -#X obj 57 243 osc~ 400; -#X obj 57 292 *~; -#X floatatom 142 231 5 0 100 0 - - - 0; -#X obj 142 269 dbtorms; -#X text 33 49 The env~ object takes a signal and outputs its RMS amplitude +#N canvas 593 27 546 593 12; +#X floatatom 47 347 8 0 0 0 - - - 0; +#X obj 18 11 env~; +#X text 58 12 - envelope follower; +#X obj 47 211 osc~ 400; +#X obj 47 268 *~; +#X floatatom 132 199 5 0 100 0 - - - 0; +#X obj 132 237 dbtorms; +#X text 30 56 The env~ object takes a signal and outputs its RMS amplitude in dB (with 1 normalized to 100 dB.) Output is bounded below by zero. -; -#X text 373 553 updated for Pd version 0.40.; -#X obj 57 332 env~ 16384 8192; -#X text 186 315 creation arguments:; -#X text 184 331 1 window size in samples (1024 default); -#X text 184 349 2 period in samples per analysis (window/2 default) -; -#X text 33 105 The analysis is "Hanning" (raised cosine) windowed. -; -#X text 33 128 The optional creation arguments are the analysis window +, f 67; +#X text 318 563 updated for Pd version 0.40.; +#X obj 47 303 env~ 16384 8192; +#X text 164 279 creation arguments:; +#X text 30 92 The analysis is "Hanning" (raised cosine) windowed., +f 67; +#X text 30 114 The optional creation arguments are the analysis window size in samples \, and the period (the number of samples between analyses). The latter should normally be a multiple of the DSP block size \, although -this isn't enforced.; -#X text 186 227 <= set peak-to-peak amplitude here in dB., f 21; -#X text 124 388 <= the output is RMS amplitude which (for a sinusoid) +this isn't enforced., f 67; +#X text 176 195 <= set peak-to-peak amplitude here in dB., f 21; +#X text 114 347 <= the output is RMS amplitude which (for a sinusoid) is about 3 dB below peak-to-peak amplitude., f 53; -#X msg 368 252 \; pd dsp \$1; -#X obj 368 229 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X msg 369 208 \; pd dsp \$1; +#X obj 369 185 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 395 227 DSP on/off; -#X obj 58 474 vu 15 120 empty empty -1 -8 0 10 #404040 #000000 1 0 +#X text 396 183 DSP on/off; +#X obj 48 415 vu 15 120 empty empty -1 -8 0 10 #404040 #000000 1 0 +; +#X obj 47 382 - 100; +#X text 105 427 <= see also [vu]; +#X obj 5 42 cnv 1 535 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 782 192 516 228 reference 0; +#X obj 11 47 cnv 5 480 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 11 93 cnv 2 480 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 10 200 cnv 5 480 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 11 131 cnv 2 480 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X text 140 62 signal -; +#X obj 28 16 env~; +#X text 71 17 - envelope follower; +#X text 203 62 signal to be analyzed., f 27; +#X text 147 103 float - RMS envelope in dB., f 35; +#X text 109 141 1) float - window size in samples (default 1024).; +#X text 109 160 2) float -; +#X text 186 159 period in samples per analysis (default halft the window +size)., f 38; +#X restore 369 11 pd reference; +#X text 463 11 <= click; +#X text 162 295 - window size in samples (1024 default); +#X text 162 313 - period in samples per analysis (window/2 default) ; -#X obj 57 441 - 100; -#X text 115 486 <= see also [vu]; -#X text 122 558 and also see also:; -#X obj 257 558 slop~, f 8; -#X connect 0 0 21 0; +#X obj 5 552 cnv 1 535 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X connect 0 0 19 0; #X connect 3 0 4 0; #X connect 4 0 9 0; #X connect 5 0 6 0; #X connect 6 0 4 1; #X connect 9 0 0 0; -#X connect 18 0 17 0; -#X connect 21 0 20 0; +#X connect 16 0 15 0; +#X connect 19 0 18 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/exp~-help.pd puredata-0.52.2+ds0/doc/5.reference/exp~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/exp~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/exp~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,26 +1,46 @@ -#N canvas 703 105 428 437 12; -#X obj 68 165 sig~; -#X obj 135 182 loadbang; -#X obj 135 214 metro 100; -#X obj 135 245 snapshot~; -#X floatatom 68 137 5 0 0 0 - - - 0; -#X floatatom 135 270 10 0 0 0 - - - 0; -#X obj 84 33 exp~; -#X text 123 33 - exponential function; -#X text 50 336 See also:; -#X obj 208 336 pow~; -#X obj 68 192 exp~; -#X text 169 384 updated for Pd version 0.47.; -#X obj 128 336 exp; -#X obj 250 336 log~; -#X obj 162 336 sqrt~; -#X obj 292 335 expr~; -#X obj 232 195 tgl 18 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#N canvas 656 55 442 355 12; +#X obj 67 144 sig~; +#X obj 134 161 loadbang; +#X obj 134 193 metro 100; +#X obj 134 224 snapshot~; +#X floatatom 67 116 6 0 0 0 - - - 0; +#X floatatom 134 249 10 0 0 0 - - - 0; +#X obj 17 12 exp~; +#X text 56 12 - exponential function; +#X text 13 298 See also:; +#X obj 43 324 pow~; +#X obj 67 171 exp~; +#X text 224 307 updated for Pd version 0.47.; +#X obj 91 298 exp; +#X obj 85 324 log~; +#X obj 125 298 sqrt~; +#X obj 127 323 expr~; +#X obj 257 157 tgl 18 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X msg 232 223 \; pd dsp \$1; -#X text 255 194 DSP on/off; -#X text 52 74 Exp~ raises the Euler number 'e' (about 2.718) \, to +#X msg 257 185 \; pd dsp \$1; +#X text 280 156 DSP on/off; +#X text 48 64 Exp~ raises the Euler number 'e' (about 2.718) \, to the power of the input signal., f 43; +#N canvas 722 152 435 194 reference 0; +#X obj 9 49 cnv 5 410 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 94 cnv 2 410 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 131 cnv 2 410 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 166 cnv 5 410 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 25 16 exp~; +#X text 64 16 - exponential function; +#X text 127 140 NONE, f 36; +#X text 117 64 signal - input value to exp function.; +#X text 117 104 signal - output of exp function.; +#X restore 268 13 pd reference; +#X text 365 13 <= click; +#X obj 5 44 cnv 1 430 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 5 287 cnv 1 430 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 0 0 10 0; #X connect 1 0 2 0; #X connect 2 0 3 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/expr-help.pd puredata-0.52.2+ds0/doc/5.reference/expr-help.pd --- puredata-0.52.1+ds0/doc/5.reference/expr-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/expr-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,9 +1,6 @@ -#N canvas 609 48 691 747 12; +#N canvas 423 23 745 688 12; #X declare -stdpath ./; -#X obj 100 43 expr; -#X obj 93 68 expr~; -#X obj 87 106 fexpr~; -#N canvas 644 54 810 635 Arrays 0; +#N canvas 556 54 810 635 Arrays 0; #N canvas 0 50 450 300 (subpatch) 0; #X array array100 10 float 0; #X coords 0 10 9 0 220 130 1 0 0; @@ -47,10 +44,10 @@ #X connect 10 0 9 0; #X connect 18 0 3 1; #X connect 19 0 6 0; -#X restore 454 515 pd Arrays; -#X text 67 517 Basic examples:; -#X text 378 538 Further details:, f 8; -#N canvas 441 139 950 501 Dealing_with_"\$0" 0; +#X restore 475 497 pd Arrays; +#X text 88 499 Basic examples:; +#X text 399 520 Further details:, f 8; +#N canvas 416 139 950 501 Dealing_with_"\$0" 0; #X obj 624 154 expr $s2[$f1]; #X obj 712 123 symbol \$0-x; #X floatatom 624 128 5 0 99 0 - - - 0; @@ -128,11 +125,11 @@ #X connect 14 0 12 0; #X connect 14 0 13 0; #X connect 15 0 11 0; -#X restore 454 542 pd Dealing_with_"\$0"; -#X text 47 624 see also:; -#X obj 46 703 block~; -#X obj 100 703 value; -#N canvas 834 236 489 525 All_functions 0; +#X restore 475 524 pd Dealing_with_"\$0"; +#X text 18 609 see also:; +#X obj 92 660 block~; +#X obj 146 660 value; +#N canvas 421 110 489 525 All_functions 0; #N canvas 497 97 374 326 Arithmetic-operators 0; #X obj 57 90 expr $f1 + 4; #X floatatom 57 63 5 0 0 0 - - - 0; @@ -424,48 +421,62 @@ #X connect 35 0 10 0; #X connect 35 1 18 0; #X restore 165 364 pd Power-functions; -#N canvas 411 157 648 422 Trigonometric-functions 0; -#X floatatom 34 34 5 0 0 0 - - - 0; -#X floatatom 34 93 5 0 0 0 - - - 0; -#X floatatom 34 125 5 0 0 0 - - - 0; -#X floatatom 34 182 5 0 0 0 - - - 0; -#X floatatom 33 213 5 0 0 0 - - - 0; -#X floatatom 33 270 5 0 0 0 - - - 0; -#X obj 34 62 expr sin($f1); -#X obj 34 153 expr cos($f1); -#X obj 33 241 expr tan($f1); -#X floatatom 194 34 5 0 0 0 - - - 0; -#X floatatom 194 93 5 0 0 0 - - - 0; -#X floatatom 194 125 5 0 0 0 - - - 0; -#X floatatom 194 182 5 0 0 0 - - - 0; -#X obj 194 62 expr asin($f1); -#X obj 194 153 expr acos($f1); -#X text 83 32 sine; -#X text 85 125 cosine; -#X text 84 213 tangent; -#X floatatom 195 209 5 0 0 0 - - - 0; -#X floatatom 195 266 5 0 0 0 - - - 0; -#X text 261 32 arc sine; -#X text 256 125 arc cosine; -#X text 256 209 arc tangent; -#X floatatom 387 33 5 0 0 0 - - - 0; -#X floatatom 387 92 5 0 0 0 - - - 0; -#X floatatom 387 124 5 0 0 0 - - - 0; -#X floatatom 387 181 5 0 0 0 - - - 0; -#X floatatom 388 208 5 0 0 0 - - - 0; -#X floatatom 388 265 5 0 0 0 - - - 0; -#X text 511 46 inverse hyperbolic sine, f 10; -#X obj 387 61 expr asinh($f1); -#X obj 387 152 expr acosh($f1); -#X obj 388 236 expr atanh($f1); -#X text 512 137 inverse hyperbolic cosine, f 10; -#X text 513 225 inverse hyperbolic tangent, f 10; -#X floatatom 154 319 5 0 0 0 - - - 0; -#X floatatom 154 376 5 0 0 0 - - - 0; -#X obj 154 347 expr atan2($f1 \, $f2); -#X floatatom 291 319 5 0 0 0 - - - 0; -#X text 316 347 arc tangent of 2 variables; -#X obj 195 237 expr atan($f1); +#N canvas 411 157 849 422 Trigonometric-functions 0; +#X floatatom 34 54 5 0 0 0 - - - 0; +#X floatatom 34 113 5 0 0 0 - - - 0; +#X floatatom 34 145 5 0 0 0 - - - 0; +#X floatatom 34 202 5 0 0 0 - - - 0; +#X floatatom 33 233 5 0 0 0 - - - 0; +#X floatatom 33 290 5 0 0 0 - - - 0; +#X obj 34 82 expr sin($f1); +#X obj 34 173 expr cos($f1); +#X obj 33 261 expr tan($f1); +#X floatatom 194 54 5 0 0 0 - - - 0; +#X floatatom 194 113 5 0 0 0 - - - 0; +#X floatatom 194 145 5 0 0 0 - - - 0; +#X floatatom 194 202 5 0 0 0 - - - 0; +#X obj 194 82 expr asin($f1); +#X obj 194 173 expr acos($f1); +#X text 83 52 sine; +#X text 85 145 cosine; +#X text 84 233 tangent; +#X floatatom 195 229 5 0 0 0 - - - 0; +#X floatatom 195 286 5 0 0 0 - - - 0; +#X text 261 52 arc sine; +#X text 256 145 arc cosine; +#X text 256 229 arc tangent; +#X floatatom 387 53 5 0 0 0 - - - 0; +#X floatatom 387 112 5 0 0 0 - - - 0; +#X floatatom 387 144 5 0 0 0 - - - 0; +#X floatatom 387 201 5 0 0 0 - - - 0; +#X floatatom 388 228 5 0 0 0 - - - 0; +#X floatatom 388 285 5 0 0 0 - - - 0; +#X floatatom 264 329 5 0 0 0 - - - 0; +#X floatatom 264 386 5 0 0 0 - - - 0; +#X obj 264 357 expr atan2($f1 \, $f2); +#X floatatom 401 329 5 0 0 0 - - - 0; +#X text 426 357 arc tangent of 2 variables; +#X obj 195 257 expr atan($f1); +#X floatatom 617 53 5 0 0 0 - - - 0; +#X floatatom 617 112 5 0 0 0 - - - 0; +#X floatatom 617 144 5 0 0 0 - - - 0; +#X floatatom 617 201 5 0 0 0 - - - 0; +#X floatatom 618 228 5 0 0 0 - - - 0; +#X floatatom 618 285 5 0 0 0 - - - 0; +#X text 741 66 inverse hyperbolic sine, f 10; +#X obj 617 81 expr asinh($f1); +#X obj 617 172 expr acosh($f1); +#X obj 618 256 expr atanh($f1); +#X text 742 157 inverse hyperbolic cosine, f 10; +#X text 743 245 inverse hyperbolic tangent, f 10; +#X obj 387 81 expr sinh($f1); +#X obj 387 172 expr cosh($f1); +#X obj 388 256 expr tanh($f1); +#X text 503 255 hyperbolic tangent, f 10; +#X text 502 167 hyperbolic cosine, f 10; +#X text 501 76 hyperbolic sine, f 10; +#X text 112 12 All trigonometric functions expect the input in radians +(except the arc or inverse ones)., f 89; #X connect 0 0 6 0; #X connect 2 0 7 0; #X connect 4 0 8 0; @@ -476,17 +487,23 @@ #X connect 11 0 14 0; #X connect 13 0 10 0; #X connect 14 0 12 0; -#X connect 18 0 40 0; -#X connect 23 0 30 0; -#X connect 25 0 31 0; -#X connect 27 0 32 0; -#X connect 30 0 24 0; -#X connect 31 0 26 0; -#X connect 32 0 28 0; -#X connect 35 0 37 0; -#X connect 37 0 36 0; -#X connect 38 0 37 1; -#X connect 40 0 19 0; +#X connect 18 0 34 0; +#X connect 23 0 47 0; +#X connect 25 0 48 0; +#X connect 27 0 49 0; +#X connect 29 0 31 0; +#X connect 31 0 30 0; +#X connect 32 0 31 1; +#X connect 34 0 19 0; +#X connect 35 0 42 0; +#X connect 37 0 43 0; +#X connect 39 0 44 0; +#X connect 42 0 36 0; +#X connect 43 0 38 0; +#X connect 44 0 40 0; +#X connect 47 0 24 0; +#X connect 48 0 26 0; +#X connect 49 0 28 0; #X restore 165 397 pd Trigonometric-functions; #N canvas 332 23 592 281 Store-function 0; #X text 40 26 The store function is defined with "=" \, and it can @@ -571,11 +588,11 @@ #X text 680 399 absolute value; #X obj 601 225 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X msg 322 391 7; +#X msg 322 384 7; #X obj 601 251 expr log(-1); #X text 100 264 round floats to integers, f 12; #X floatatom 452 495 5 0 0 0 - - - 0; -#X msg 289 391 -7; +#X msg 289 384 -7; #X text 458 440 (integer); #X text 458 454 (float); #X obj 322 440 expr $f1 % 4 \; fmod($f1 \, 4.1) \; remainder($f1 \, @@ -623,7 +640,7 @@ #X connect 64 1 42 0; #X connect 64 2 60 0; #X restore 164 462 pd Other-functions; -#N canvas 962 216 564 371 Acousticts 0; +#N canvas 802 216 564 371 Acousticts 0; #X floatatom 70 109 0 0 0 0 - - - 0; #X floatatom 70 164 0 0 0 0 - - - 0; #X floatatom 70 213 0 0 0 0 - - - 0; @@ -647,7 +664,7 @@ #X obj 377 140 expr dbtopow($f1); #X obj 377 192 expr powtodb($f1); #X text 63 77 MTDI x Hertz; -#X text 79 33 Accoustic conversions; +#X text 79 33 Acoustic conversions; #X text 238 81 dB x RMS; #X text 396 82 dB x Power; #X connect 0 0 3 0; @@ -663,8 +680,8 @@ #X connect 20 0 9 0; #X connect 21 0 10 0; #X restore 164 430 pd Acousticts; -#X restore 454 568 pd All_functions \; and operators; -#N canvas 472 62 968 659 [expr] 0; +#X restore 475 549 pd All_functions \; and operators; +#N canvas 398 62 968 659 [expr] 0; #X obj 206 123 expr 1; #X floatatom 206 153 4 0 0 0 - - - 0; #X msg 206 95 bang; @@ -706,12 +723,6 @@ #X obj 707 521 expr float(8) / 3 \; (8.) / 3 \; 8./3; #X floatatom 830 583 0 0 0 0 - - - 0; #X text 542 551 also becomes a float =>; -#X text 507 390 Pd turns "8.0" into "8" and [expr] will see it as an -integer. One way to deal with this is with the "float" function to -convert an integer to a float. A possible workaround is to have just -a decimal point and the number inside parenthesis. Pd sees this as -a symbol and doesn't remove the dot and [expr] will see it as a float. -Other hacks lke that are possible \, see below:, f 61; #X obj 307 123 expr 2 + 3.2; #X text 496 180 NOTE About integers and integer variable types:; #X text 30 31 Here are some basic examples of the [expr] object. This @@ -733,16 +744,22 @@ expressions (up to 100). If so \, an outlet is created for each expression and they're evaluated from right to left (or bottom to up) order:, f 30; +#X text 507 390 Pd turns "8.0" into "8" and [expr] will see it as an +integer. One way to deal with this is with the "float" function to +convert an integer to a float. A possible workaround is to have just +a decimal point and the number inside parenthesis. Pd sees this as +a symbol and doesn't remove the dot and [expr] will see it as a float. +Other hacks like that are possible \, see below:, f 61; #X connect 0 0 1 0; #X connect 2 0 0 0; -#X connect 3 0 36 0; +#X connect 3 0 35 0; #X connect 6 0 14 0; #X connect 9 0 8 0; #X connect 11 0 9 0; #X connect 12 0 32 0; #X connect 14 0 7 0; #X connect 14 1 15 0; -#X connect 16 0 43 0; +#X connect 16 0 42 0; #X connect 17 0 20 0; #X connect 18 0 20 0; #X connect 19 0 20 0; @@ -754,16 +771,16 @@ #X connect 32 0 10 0; #X connect 32 1 13 0; #X connect 32 2 33 0; -#X connect 36 0 4 0; +#X connect 35 0 4 0; +#X connect 38 0 21 0; +#X connect 38 1 21 1; #X connect 39 0 21 0; -#X connect 39 1 21 1; -#X connect 40 0 21 0; -#X connect 41 0 39 0; -#X connect 43 0 17 0; -#X connect 43 1 18 0; -#X connect 43 2 19 0; -#X restore 205 518 pd [expr] Examples; -#N canvas 574 54 875 695 [expr~] 0; +#X connect 40 0 38 0; +#X connect 42 0 17 0; +#X connect 42 1 18 0; +#X connect 42 2 19 0; +#X restore 226 500 pd [expr] Examples; +#N canvas 491 51 875 695 [expr~] 0; #X floatatom 80 361 0 0 0 0 - - - 0; #X obj 80 468 dac~; #X text 125 361 frequency; @@ -845,63 +862,63 @@ #X connect 32 0 14 0; #X connect 35 0 23 0; #X connect 38 0 37 0; -#X restore 198 546 pd [expr~] Examples; -#N canvas 355 23 1149 786 [fexpr~] 0; -#X text 69 444 - $x1: same as $x1[0] \, $x2: same as $x2[0] (and so +#X restore 219 528 pd [expr~] Examples; +#N canvas 240 37 1094 690 [fexpr~] 0; +#X text 90 365 - $x1: same as $x1[0] \, $x2: same as $x2[0] (and so on)., f 60; -#X text 69 425 - $x: same as $x1[0]., f 60; -#X text 69 463 - $y: same as $y1[-1]., f 60; -#X text 69 483 - $y1: same as $y1[-1] \, $y2: same as $y2[-1] (and +#X text 90 347 - $x: same as $x1[0]., f 60; +#X text 90 383 - $y: same as $y1[-1]., f 60; +#X text 90 401 - $y1: same as $y1[-1] \, $y2: same as $y2[-1] (and so on)., f 60; -#X msg 752 220 start; -#X msg 700 220 stop; -#X obj 700 190 loadbang; -#X msg 821 217 set 4000; -#X obj 808 183 sig~ 0.001; -#X obj 808 285 fexpr~ $x1[0] + $y1[-1]; -#X msg 835 251 clear y1; -#X text 902 251 clears output buffer; -#X obj 808 323 snapshot~; -#X obj 672 275 metro 100; -#X obj 672 253 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X msg 670 165 start; +#X msg 618 165 stop; +#X obj 618 135 loadbang; +#X msg 739 162 set 4000; +#X obj 726 128 sig~ 0.001; +#X obj 726 230 fexpr~ $x1[0] + $y1[-1]; +#X msg 753 196 clear y1; +#X text 820 196 clears output buffer; +#X obj 726 268 snapshot~; +#X obj 590 220 metro 100; +#X obj 590 198 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X floatatom 808 348 0 0 0 0 - - - 0; -#X text 888 182 increment value; -#X text 886 216 set last output value ($y1[-1]); -#X text 62 692 - clear: clears all the previous input and output buffers +#X floatatom 726 293 8 0 0 0 - - - 0; +#X text 806 127 increment value; +#X text 804 161 set last output value ($y1[-1]); +#X text 83 605 - clear: clears all the previous input and output buffers , f 60; -#X text 62 653 - clear x#: clears the previous values of the #th input +#X text 83 569 - clear x#: clears the previous values of the #th input , f 60; -#X text 62 672 - clear y#: clears the previous values of the #th output +#X text 83 587 - clear y#: clears the previous values of the #th output , f 60; -#X text 62 573 - set y# : sets the as many supplied values of +#X text 83 490 - set y# : sets the as many supplied values of the #th output (e.g. "set y3 1 2" sets $y3[-1] = 1 and $y3[-2] = 2). ; -#X floatatom 908 571 0 0 0 0 - - - 0; -#X msg 709 537 start; -#X msg 663 537 stop; -#X obj 663 504 loadbang; -#X msg 869 533 0; -#X obj 764 607 fexpr~ $x1 + $x1[$f2]; -#X msg 764 479 1102.5; -#X floatatom 764 537 0 0 0 0 - - - 0; -#X text 619 383 Simple FIR filter:, f 58; -#X msg 948 533 -20; -#X msg 908 533 -10; -#X text 846 487 change values to filter the frequencies, f 23; -#X text 62 607 - set : sets the first past values of each output +#X floatatom 841 517 5 0 0 0 - - - 0; +#X msg 642 483 start; +#X msg 596 483 stop; +#X obj 596 450 loadbang; +#X msg 802 479 0; +#X obj 697 553 fexpr~ $x1 + $x1[$f2]; +#X msg 697 425 1102.5; +#X floatatom 697 483 0 0 0 0 - - - 0; +#X text 556 342 Simple FIR filter:, f 58; +#X msg 881 479 -20; +#X msg 841 479 -10; +#X text 779 433 change values to filter the frequencies, f 23; +#X text 83 523 - set : sets the first past values of each output (e.g. "set 0.1 2.2 0.4" sets y1[-1] = 0.1 \, y2[-1] = 2.2 \, and y3[-1] = 0.4).; -#X text 62 540 - set x# : sets as many supplied values of the +#X text 83 458 - set x# : sets as many supplied values of the #th input (e.g. "set x2 1 2" sets $x2[0] = 1 and $x2[-1] = 2)., f 60; -#X text 619 140 Simple accumulator example:; -#X text 28 511 [fexpr~] responds to the following methods:, f 63; -#X text 103 247 - $y#[n]: output sample of outlet # indexed by 'n' +#X text 561 85 Simple accumulator example:; +#X text 49 433 [fexpr~] responds to the following methods:, f 63; +#X text 113 162 - $y#[n]: output sample of outlet # indexed by 'n' ; -#X text 103 228 - $x#[n]: input sample of inlet # indexed by 'n', +#X text 113 143 - $x#[n]: input sample of inlet # indexed by 'n', f 50; -#X text 986 665 more examples:; +#X text 919 578 more examples:; #N canvas 286 64 900 597 Difference 0; #X obj 194 193 v pr; #X obj 341 193 v r; @@ -991,7 +1008,7 @@ #X connect 32 2 35 0; #X connect 38 0 32 0; #X connect 41 0 32 0; -#X restore 865 719 pd Difference equations (Lorenz); +#X restore 798 632 pd Difference equations (Lorenz); #N canvas 695 185 503 409 Fractional 0; #X msg 130 190 start; #X msg 78 189 stop; @@ -1021,39 +1038,38 @@ #X connect 7 0 9 0; #X connect 9 0 12 0; #X connect 9 0 12 1; -#X restore 907 691 pd Fractional sample index; -#X text 675 405 -10 offset filters audio at frequency of 2205 Hz -20 +#X restore 840 604 pd Fractional sample index; +#X text 612 364 -10 offset filters audio at frequency of 2205 Hz -20 offset filters audio at frequency of 1102.5 Hz, f 50; -#X msg 781 506 2205; -#X obj 764 568 osc~ 2205; -#X text 33 98 NOTE: - [fexpr~] operates on sample level data for things -like filter design and can be very cpu intensive!, f 76; -#X obj 233 285 fexpr~ $x1[0] + $y1[-1]; -#X text 164 286 example:; -#X text 33 329 'n' goes from 0 to -(vector size -1). The vector (or +#X msg 714 452 2205; +#X obj 697 514 osc~ 2205; +#X text 24 26 NOTE: - [fexpr~] operates on sample level data for things +like filter design and can be very cpu intensive!, f 69; +#X obj 250 202 fexpr~ $x1[0] + $y1[-1]; +#X text 181 203 example:; +#X text 23 248 'n' goes from 0 to -(vector size -1). The vector (or 'block') size is defined by the [block~] or [switch~] objects. As such \, $x#[0] specifies the current sample input \, and $y#[-1] the last -sample output (which is the minimum 'n' value \, for $y#)., f 76; -#X text 31 403 There are shorthands as follows:; -#X text 62 711 - stop: stops the computation of [fexpr~], f 60; -#X text 62 731 - start: starts the computation of [fexpr~], f 60; -#X text 618 62 As noted \, [fexpr~] can be CPU expensive! By default +sample output (which is the minimum 'n' value \, for $y#)., f 71; +#X text 52 325 There are shorthands as follows:; +#X text 83 623 - stop: stops the computation of [fexpr~], f 60; +#X text 83 641 - start: starts the computation of [fexpr~], f 60; +#X text 558 18 As noted \, [fexpr~] can be CPU expensive! By default \, [fexpr~] is on when it is loaded \, but you can save CPU and control when it is on or off with the 'start' and 'stop' messages. Below \, -you need to click 'start' to get it running., f 70; -#X msg 343 51 \; pd dsp \$1; -#X obj 343 26 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +you need to click 'start' to get it running., f 73; +#X msg 917 258 \; pd dsp \$1; +#X obj 917 233 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 117 30 make sure to turn on the audio for the [fexpr~] examples -===>, f 30; -#X obj 706 666 output~; -#X obj 961 12 declare -stdpath ./; -#X text 33 138 Besides '$f#' \, '$i#' and '$s#' \, [fexpr~] takes '$x#' +#X obj 639 612 output~; +#X obj 924 519 declare -stdpath ./; +#X text 23 63 Besides '$f#' \, '$i#' and '$s#' \, [fexpr~] takes '$x#' and '$y#' variables (and no '$v#' variables from [expr~]). Note that the first inlet of [fexpr~] needs to be of type '$x1' (cannot be '$f1' \, '$i1' or '$s1'). You can still send floats to this left inlet as floats sent to audio inlets are promoted to signals. The '$x#' and -'$y#' types are:, f 76; +'$y#' types are:, f 71; +#X text 938 233 <= make DSP is on, f 18; #X connect 4 0 9 0; #X connect 5 0 9 0; #X connect 6 0 5 0; @@ -1070,8 +1086,8 @@ #X connect 24 0 27 0; #X connect 25 0 24 0; #X connect 26 0 22 0; -#X connect 27 0 57 0; -#X connect 27 0 57 1; +#X connect 27 0 56 0; +#X connect 27 0 56 1; #X connect 28 0 29 0; #X connect 29 0 45 0; #X connect 31 0 22 0; @@ -1079,13 +1095,13 @@ #X connect 44 0 29 0; #X connect 45 0 27 0; #X connect 55 0 54 0; -#X restore 191 574 pd [fexpr~] Examples; -#X obj 46 650 +; -#X obj 268 675 +~; -#X obj 46 675 >; -#X text 81 541 (click on the subpatches to open them), f 13; -#X obj 148 703 random; -#N canvas 601 203 872 635 [value] 0; +#X restore 212 555 pd [fexpr~] Examples; +#X obj 92 608 +; +#X obj 304 633 +~; +#X obj 92 633 >; +#X text 102 522 (click on the subpatches to open them), f 13; +#X obj 194 660 random; +#N canvas 411 74 872 635 [value] 0; #X floatatom 596 202 5 0 0 0 - - - 0; #X obj 596 137 until; #X msg 719 138 0; @@ -1168,55 +1184,61 @@ #X connect 31 1 32 0; #X connect 33 0 32 0; #X connect 34 0 31 0; -#X restore 529 515 pd [value]; -#X text 71 15 Expression evaluation family of objects By Shahrokh Yadegari -- Version 0.57, f 75; -#X text 137 106 - evaluation of audio signal expressions; -#X text 137 68 - evaluation of audio signal expressions; -#X text 137 43 - evaluation of control data expressions; -#X text 151 86 on a vector by vector basis, f 38; -#X text 151 123 on a sample by sample basis, f 38; -#X obj 84 266 expr $f1 + $s3[$i2]; -#X symbolatom 214 240 7 0 0 0 - - - 0; -#X floatatom 149 239 3 0 0 0 - - - 0; -#X floatatom 84 240 4 0 0 0 - - - 0; -#X obj 257 339 sig~ 1; -#X text 317 338 <= 1st inlet is an audio signal vector/block; -#X obj 53 462 fexpr~ $x1[0] + $y1[-1]; -#X text 41 305 [expr~] has an exclusive input variable defined as '$v#' +#X restore 550 497 pd [value]; +#X obj 105 258 expr $f1 + $s3[$i2]; +#X symbolatom 235 232 7 0 0 0 - - - 0; +#X floatatom 170 231 3 0 0 0 - - - 0; +#X floatatom 105 232 4 0 0 0 - - - 0; +#X obj 278 329 sig~ 1; +#X text 338 328 <= 1st inlet is an audio signal vector/block; +#X obj 74 451 fexpr~ $x1[0] + $y1[-1]; +#X text 62 297 [expr~] has an exclusive input variable defined as '$v#' - which stands for an audio signal 'vector' (or block)., f 85; -#X text 28 403 [fexpr~] has exclusive variable types defined as: '$x#[n]' +#X text 49 395 [fexpr~] has exclusive variable types defined as: '$x#[n]' (an input audio sample from inlet # indexed by 'n') and '$y#[n]' (an output audio sample from outlet # indexed by 'n')., f 91; -#X text 286 232 First inlet is a float input that adds to an array +#X text 307 224 First inlet is a float input that adds to an array value whose index is defined by an integer input from the second inlet and the third inlet takes a symbol for the array name., f 50; -#X obj 202 703 array; -#X obj 257 365 expr~ $v1 + $f2; -#X floatatom 380 365 5 0 0 0 - - - 0; -#X text 235 454 for '$x#' \, 'n' has to satisfy: 0 => n > -vector size +#X obj 248 660 array; +#X obj 278 355 expr~ $v1 + $f2; +#X floatatom 401 355 5 0 0 0 - - - 0; +#X text 256 443 for '$x#' \, 'n' has to satisfy: 0 => n > -vector size ; -#X text 235 471 for '$y#' \, 'n' has to satisfy: -1 => n > -vector +#X text 256 460 for '$y#' \, 'n' has to satisfy: -1 => n > -vector size; -#X obj 268 650 sin; -#X text 77 649 - arithmetic operators; -#X text 77 674 - other binary operators; -#X text 297 649 - math functions; -#X text 297 674 - audio operators; -#X obj 249 703 cos~; -#X obj 287 703 wrap~; -#X obj 370 703 abs~; -#X obj 446 703 sqrt~; -#X obj 332 703 exp~; -#X obj 408 703 log~; -#X obj 492 703 pow~; -#X text 30 155 These objects have several built in operators and functions +#X obj 304 608 sin; +#X text 123 607 - arithmetic operators; +#X text 123 632 - other binary operators; +#X text 333 607 - math functions; +#X text 333 632 - audio operators; +#X obj 295 660 cos~; +#X obj 333 660 wrap~; +#X obj 416 660 abs~; +#X obj 492 660 sqrt~; +#X obj 378 660 exp~; +#X obj 454 660 log~; +#X obj 538 660 pow~; +#X text 51 147 These objects have several built in operators and functions and the syntax is quite similar to how expressions are written in C. They receive input variables via the inlets and understand the variable types: '$f#' (floats) \, '$i#' (integers) and '$s#' (symbols \, used to represent array names) - '#' is the inlet number (up to 100) as below:, f 88; -#X obj 481 64 bng 15 250 50 0 empty empty empty 17 7 0 10 #dcdcdc #000000 +#X text 513 616 updated for Pd version 0.51-3; +#X obj 70 33 expr; +#X obj 63 58 expr~; +#X obj 57 96 fexpr~; +#X text 26 3 Expression evaluation family of objects By Shahrokh Yadegari +- Version 0.57, f 75; +#X text 107 96 - evaluation of audio signal expressions; +#X text 107 58 - evaluation of audio signal expressions; +#X text 107 33 - evaluation of control data expressions; +#X text 121 76 on a vector by vector basis, f 38; +#X text 121 113 on a sample by sample basis, f 38; +#X obj 7 137 cnv 1 730 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 451 57 bng 17 250 50 0 empty empty empty 17 7 0 10 #ffffff #000000 #000000; #N canvas 798 148 456 264 reference 0; #X obj 101 59 inlet; @@ -1230,13 +1252,64 @@ #X connect 2 0 4 0; #X connect 3 0 2 0; #X connect 4 0 1 0; -#X restore 481 98 pd reference; -#X text 501 62 <=; -#X text 520 55 Open HTTML reference, f 10; -#X text 447 656 updated for Pd version 0.51-3; -#X connect 27 0 26 2; -#X connect 28 0 26 1; -#X connect 29 0 26 0; -#X connect 30 0 37 0; -#X connect 38 0 37 1; -#X connect 54 0 55 0; +#X restore 451 91 pd reference; +#X text 471 55 <= Open HTTML reference; +#X obj 8 595 cnv 1 730 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 655 90 <= click; +#N canvas 705 69 575 516 reference 0; +#X obj 8 40 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 255 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 344 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 493 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 175 cnv 1 550 1 empty empty 'n': 8 12 0 13 #7c7c7c #000000 +0; +#X obj 21 7 expr; +#X text 81 49 (arguments set 'n' number of inlets and type); +#X text 99 180 float - if inlet type is '$f#' or '$i#'., f 43; +#X text 92 198 symbol - if inlet type is '$s#' or '$i#'., f 44; +#X obj 7 288 cnv 1 550 1 empty empty 'n': 8 12 0 13 #7c7c7c #000000 +0; +#X text 83 261 (number of expressions define 'n' numbers of outlets) +; +#X text 19 371 1) list -; +#X obj 61 7 expr~; +#X obj 109 7 fexpr~; +#X text 99 295 float - (for [expr] only) expression result., f 58 +; +#X text 92 314 signal - (for [expr~] and [fexpr~] only) expression +result.; +#X text 163 8 - expression evaluation family of objects.; +#X text 92 216 signal -; +#X text 155 216 if inlet type is '$v#' ([expr~]) or '$x#' ([fexpr~]) +\, leftmost inlet is always signal in [expr~]/[fexpr~].; +#X obj 7 75 cnv 1 550 1 empty empty leftmost: 8 12 0 13 #7c7c7c #000000 +0; +#X text 31 136 clear -; +#X text 101 80 bang - in [expr]: evaluate expression., f 64; +#X text 59 98 set - in [fexpr~]: set values for previous input/output +values., f 70; +#X text 59 116 stop/start - in [fexpr~]: stop/start computation., +f 70; +#X text 150 136 in [fexpr~]: clear input/output memory \, optional +symbol specifies a specific input (such as x1) or output (y1)., f +57; +#X text 90 371 expression including operators \, functions \, inlet +types \, float and symbols )for array names and variables). See html +reference and examples for all operators and function. Smicolons create +more expressions (and outlets). Inlet type is has the format '$t#' +where 't' is type (f \, i \, s \, v and x) and # is the number \, the +'x' type for fexpr~ also has a sample number in brackets and there's +also a 'y' variable for output samples with previous samples in brackets +as well (default: output zeros)., f 65; +#X restore 561 91 pd reference; +#X connect 18 0 17 2; +#X connect 19 0 17 1; +#X connect 20 0 17 0; +#X connect 21 0 28 0; +#X connect 29 0 28 1; +#X connect 56 0 57 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/fft~-help.pd puredata-0.52.2+ds0/doc/5.reference/fft~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/fft~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/fft~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,52 +1,121 @@ -#N canvas 906 23 771 458 12; -#X floatatom 33 179 7 0 0 0 - - - 0; -#X obj 33 126 * 44100; -#X floatatom 33 96 4 0 0 0 - - - 0; -#X obj 33 244 osc~; -#X obj 75 16 fft~; -#X obj 125 17 ifft~; -#X text 185 15 - forward and inverse complex FFT; -#X obj 75 42 rfft~; -#X obj 125 43 rifft~; -#X text 185 41 - forward and inverse real FFT; -#X obj 33 269 rfft~; -#X text 513 412 updated for Pd version 0.33; -#X obj 30 317 rifft~; -#X obj 112 325 print~ real; -#X obj 125 300 print~ imaginary; -#X obj 30 411 print~ resynthesized; -#X msg 44 378 bang; -#X msg 112 263 bang; -#X text 326 320 There is no normalization \, so that an FFT followed +#N canvas 542 29 711 489 12; +#X floatatom 27 176 7 0 0 0 - - - 0; +#X obj 27 123 * 44100; +#X floatatom 27 93 4 0 0 0 - - - 0; +#X obj 27 241 osc~; +#X obj 21 33 fft~; +#X obj 71 34 ifft~; +#X text 131 32 - forward and inverse complex FFT; +#X obj 21 9 rfft~; +#X obj 71 10 rifft~; +#X text 131 8 - forward and inverse real FFT; +#X obj 27 266 rfft~; +#X text 495 457 updated for Pd version 0.33; +#X obj 24 314 rifft~; +#X obj 106 322 print~ real; +#X obj 119 297 print~ imaginary; +#X obj 24 408 print~ resynthesized; +#X msg 38 375 bang; +#X msg 106 260 bang; +#X text 300 324 There is no normalization \, so that an FFT followed by an IFFT has a gain of N., f 54; -#X text 326 231 The real FFT outputs N/2+1 real parts and N/2-1 imaginary +#X text 300 235 The real FFT outputs N/2+1 real parts and N/2-1 imaginary parts. The other outputs are zero. At DC and at the Nyquist there is no imaginary part \, but the second through Nth output is as a real and imaginary pair \, which can be thought of as the cosine and sin component strengths., f 54; -#X text 124 211 <= bash phase; -#X text 83 378 <= print resynthesis; -#X text 80 350 <= renormalize; -#X text 154 264 <= print analysis; -#X obj 460 195 block~ 128; -#X obj 33 154 / 128; -#X obj 30 350 /~ 128; -#X text 326 98 The FFT objects do Fourier analyses and resyntheses +#X text 118 208 <= bash phase; +#X text 77 375 <= print resynthesis; +#X text 74 347 <= renormalize; +#X text 148 261 <= print analysis; +#X obj 434 199 block~ 128; +#X obj 27 151 / 128; +#X obj 24 347 /~ 128; +#X text 300 102 The FFT objects do Fourier analyses and resyntheses of incoming real or complex signals. Complex signals are handled as pairs of signals (real and imaginary part.) The analysis size is one block. You can use the block~ or switch~ objects to control block size (128 in this example)., f 54; -#X text 326 356 See the FFT examples (section "I" of audio examples) +#X text 300 360 See the FFT examples (section "I" of audio examples) to see how to use these in practice., f 54; -#X text 385 194 see also:; -#X text 75 88 frequency in bins, f 9; -#X text 90 168 frequency in Hz, f 9; -#X msg 188 146 \; pd dsp \$1; -#X obj 188 122 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X text 359 198 see also:; +#X text 69 85 frequency in bins, f 9; +#X text 84 165 frequency in Hz, f 9; +#X msg 182 143 \; pd dsp \$1; +#X obj 182 119 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 209 122 DSP on/off; -#X msg 91 210 0.25; -#X msg 58 210 0; +#X text 203 119 DSP on/off; +#X msg 85 207 0.25; +#X msg 52 207 0; +#X obj 5 64 cnv 1 700 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 421 78 926 454 reference 0; +#X obj 9 39 cnv 5 430 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 72 cnv 2 430 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 154 cnv 2 430 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 23 11 rfft~; +#X text 72 10 - forward real FFT; +#X text 179 163 NONE; +#X obj 9 95 cnv 1 430 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 124 cnv 1 430 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 352 cnv 2 430 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X text 179 404 NONE; +#X obj 22 235 rifft~; +#X text 78 234 - inverse real FFT; +#X text 76 49 signal - time domain real signal to transform.; +#X text 76 368 signal - time domain real signal to transform.; +#X obj 483 79 fft~; +#X obj 533 80 ifft~; +#X text 583 78 - forward and inverse complex FFT; +#X text 638 300 NONE; +#X text 528 144 signal - real part of signal to transform.; +#X text 528 174 signal - imaginary part of signal to transform.; +#X text 528 235 signal - real part of transformed signal.; +#X text 528 263 signal - imaginary part of transformed signal.; +#X text 58 298 signal - real part of frequency domain signal.; +#X text 58 326 signal - imaginary part of frequency domain signal. +; +#X obj 8 182 cnv 5 430 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 9 262 cnv 5 430 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 427 cnv 5 430 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 468 108 cnv 5 430 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 467 323 cnv 5 430 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 469 203 cnv 2 430 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 396 cnv 2 430 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 468 292 cnv 2 430 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X text 61 101 signal - real part of frequency domain signal.; +#X text 61 129 signal - imaginary part of frequency domain signal. +; +#X obj 9 291 cnv 1 430 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 320 cnv 1 430 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 469 138 cnv 1 430 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 469 167 cnv 1 430 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 468 228 cnv 1 430 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 468 257 cnv 1 430 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X restore 506 26 pd reference; +#X text 604 27 <= click; +#X obj 5 444 cnv 1 700 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 0 0 3 0; #X connect 1 0 25 0; #X connect 2 0 1 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/file-help.pd puredata-0.52.2+ds0/doc/5.reference/file-help.pd --- puredata-0.52.1+ds0/doc/5.reference/file-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/file-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,173 +1,211 @@ -#N canvas 996 71 622 679 12; -#X text 459 59 details:; -#X text 457 42 click for; -#N canvas 590 54 953 951 handle 0; -#X text 197 20 Handle - operate on file handles; -#X obj 73 550 file handle; -#X text 78 58 reading files; -#X text 78 68 =============; -#X msg 68 177 open /tmp/test.c r; -#X msg 135 513 close; -#X msg 87 244 1024; -#X text 123 246 read (up to) 1024 bytes; -#X obj 73 595 print data; -#X msg 98 288 seek 3; -#X text 155 290 seek to the 3rd byte; -#X text 237 437 seek to the next byte; -#X msg 80 215 1; -#X text 117 214 read the next byte; -#X msg 50 145 open \$1; -#X msg 50 95 bang; -#X obj 50 120 openpanel; -#X obj 435 547 file handle; -#X text 443 75 =============; -#X msg 522 506 close; -#X msg 471 307 seek 3; -#X text 525 307 seek to the 3rd byte; -#X msg 415 102 bang; -#X text 443 65 writing files; -#X obj 415 127 savepanel; -#X msg 415 152 open \$1 w; -#X msg 430 184 open /tmp/test.c a; -#X msg 442 214 open /tmp/test.c c; -#X msg 456 267 104 101 108 108 111 32 119 111 114 108 100 13 10; -#X text 206 179 explicit Read-mode; -#X text 507 152 open file in Write mode; -#X text 574 183 open file for writing (Append mode); -#X text 585 213 open file for writing (Create (or trunCate) mode); -#X text 501 244 write some bytes; -#X text 570 506 close the file; -#X text 179 512 close the file; -#X text 162 786 using out-of-range numbers of symbols leads to undefined -behaviour., f 68; -#X text 162 750 note: the data you read from or write to a file are -lists of bytes \, which appear in Pd as lists of numbers from 0 to -255, f 68; -#X obj 171 821 file; -#X text 222 822 is the short form for; -#X obj 391 821 file handle; -#X obj 179 649 print INFO; -#X text 156 594 list of bytes read; -#X text 591 562 if opening the file or writing to it fails \, the file -is closed and a bang is sent to the 2nd outlet., f 46; -#X text 278 622 if the file cannot be opened \, a bang is sent to the -2nd outlet., f 63; -#X text 279 642 when the end of the file is reached or a read error -occurred \, the file is closed and a bang is sent too.; -#X text 280 681 when seeking \, the position from the start of the -file (or -1 on error) is output here., f 70; -#N canvas 19 51 868 498 arguments 0; -#X obj 146 145 file handle -q; -#X text 274 145 less verbose (quiet); -#X obj 146 175 file handle -v; -#X text 274 175 more verbose (loud); -#X obj 146 315 file handle -m 0o600; -#X text 410 320 file creation mode (user/group/other permissions) in +#N canvas 563 23 564 676 12; +#X text 439 70 details:; +#X text 437 53 click for; +#N canvas 215 30 1052 653 handle 0; +#X obj 113 481 file handle; +#X msg 108 160 open /tmp/test.c r; +#X msg 182 441 close; +#X msg 127 219 1024; +#X text 163 221 read (up to) 1024 bytes; +#X obj 113 534 print data, f 5; +#X msg 138 253 seek 3; +#X text 195 255 seek to the 3rd byte; +#X text 277 376 seek to the next byte; +#X msg 120 190 1; +#X text 157 189 read the next byte; +#X msg 34 186 open \$1; +#X msg 34 136 bang; +#X obj 34 161 openpanel; +#X obj 535 481 file handle; +#X msg 624 443 close; +#X msg 571 286 seek 3; +#X text 625 286 seek to the 3rd byte; +#X msg 456 154 bang; +#X obj 456 179 savepanel; +#X msg 456 204 open \$1 w; +#X msg 530 178 open /tmp/test.c a; +#X msg 542 208 open /tmp/test.c c; +#X msg 556 242 104 101 108 108 111 32 119 111 114 108 100 13 10, f +26; +#X text 246 162 explicit Read-mode; +#X text 674 177 open file for writing (Append mode); +#X text 683 201 open file for writing (Create (or trunCate) mode), +f 27; +#X text 747 249 write some bytes; +#X obj 341 21 file; +#X obj 219 554 print INFO; +#X text 57 526 list of bytes read, f 7; +#X text 691 496 if opening the file or writing to it fails \, the file +is closed and a bang is sent to the 2nd outlet., f 44; +#X text 320 592 when seeking \, the position from the start of the +file (or -1 on error) is output here., f 44; +#N canvas 453 93 754 409 arguments 0; +#X obj 136 82 file handle -q; +#X text 264 82 less verbose (quiet); +#X obj 136 112 file handle -v; +#X text 264 112 more verbose (loud); +#X obj 96 233 file handle -m 0o600; +#X text 296 228 file creation mode (user/group/other permissions) in octal.; -#X msg 563 149 verbose \$1; -#X obj 563 174 file; -#X obj 563 127 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X msg 563 96 verbose \$1; +#X obj 563 121 file; +#X obj 563 74 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 106 70 error reporting on the Pd-console; -#X text 239 111 via flags:; -#X text 524 100 via a message:; -#X text 117 249 restricted permissions of created files:; -#X text 154 380 via a message:; -#X obj 146 430 file; -#X text 409 420 the creation mode only affects files that are created +#X text 138 31 error reporting on the Pd-console; +#X text 43 98 via flags:; +#X text 451 98 via a message:; +#X text 67 167 restricted permissions of created files:; +#X text 104 298 via a message:; +#X obj 96 348 file; +#X text 295 328 the creation mode only affects files that are created after the mode has been set.; -#X msg 146 405 creationmode 0o600; -#X text 408 358 the actual permissions of the created file also takes +#X msg 96 323 creationmode 0o600; +#X text 294 266 the actual permissions of the created file also takes the umask into account. this might be ignored by the underlying filesystem. ; -#X text 149 281 via creation flags:; +#X text 99 199 via creation flags:; #X connect 6 0 7 0; #X connect 8 0 6 0; #X connect 16 0 14 0; -#X restore 170 878 pd arguments; -#X msg 510 467 creationmode 0o600; -#X msg 107 325 seek 3 start; -#X text 206 320 seek to the 3rd byte from the "start", f 21; -#X msg 115 367 seek 0 end; -#X msg 125 401 seek -1 end; -#X msg 129 439 seek 1 current; -#X msg 136 474 seek -1 relative; -#X text 261 463 seek to the previous byte ("relative" is an alias for +#X restore 374 499 pd arguments; +#X msg 610 409 creationmode 0o600; +#X msg 147 286 seek 3 start; +#X text 245 279 seek to the 3rd byte from the "start", f 21; +#X msg 155 318 seek 0 end; +#X msg 162 348 seek -1 end; +#X msg 169 378 seek 1 current; +#X msg 176 410 seek -1 relative; +#X text 301 399 seek to the previous byte ("relative" is an alias for "current"), f 22; -#X text 194 366 seek to the end-of-file; -#X text 211 399 seek to the last byte; -#X msg 491 384 seek 10 end; -#X text 577 382 seek beyond the end of file; -#X msg 481 347 seek 10 start; -#X text 584 348 seek to the 10th byte; -#X msg 509 423 seek 10 current; -#X obj 509 571 print INFO; -#X text 649 462 restrict permissions of the to-be-created file, f +#X text 234 317 seek to the end-of-file; +#X text 248 347 seek to the last byte; +#X msg 591 344 seek 10 end; +#X text 677 342 seek beyond the end of file; +#X msg 581 316 seek 10 start; +#X text 684 317 seek to the 10th byte; +#X msg 599 375 seek 10 current; +#X obj 609 505 print INFO; +#X text 748 403 restrict permissions of the to-be-created file, f 24; -#X text 445 879 the 2nd inlet of the 'file handle' object is documented -in the 'file define' subpatch.; -#X obj 147 622 t a a; -#X obj 147 677 route bang seek; -#X obj 147 702 bng 20 250 50 0 empty empty close -35 10 0 10 #fcfcfc +#X obj 187 527 t a a; +#X obj 187 588 route bang seek; +#X obj 187 613 bng 20 250 50 0 empty empty close -35 10 0 10 #fcfcfc #000000 #000000; -#X floatatom 198 702 5 0 0 1 pos - - 0; -#X text 628 419 seek to the 10th byte from the current position, f +#X floatatom 238 613 5 0 0 1 pos - - 0; +#X text 718 371 seek to the 10th byte from the current position, f 27; -#X connect 1 0 8 0; -#X connect 1 1 66 0; -#X connect 4 0 1 0; -#X connect 5 0 1 0; -#X connect 6 0 1 0; -#X connect 9 0 1 0; -#X connect 12 0 1 0; -#X connect 14 0 1 0; -#X connect 15 0 16 0; +#X obj 38 21 file handle; +#X text 931 20 <= click; +#N canvas 692 43 571 468 reference 0; +#X obj 7 44 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 7 231 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 6 440 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 24 13 file handle; +#X text 116 12 - operate on file handles.; +#X obj 7 198 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 7 74 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 94 78 open - open a file., f 37; +#X text 150 96 float - read number of bytes.; +#X text 108 114 seek - seek file., f 35; +#X text 150 132 close - close file., f 29; +#X text 144 203 symbol - change the associated file-handle.; +#X text 80 150 verbose - set verbosity on or off.; +#X obj 7 286 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 7 257 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 158 262 list - data bytes.; +#X text 108 289 bang -; +#X text 158 289 if file can't be opened \, end of the file is reached +or a read error occurred., f 51; +#X text 53 323 seek - seek output., f 66; +#X text 45 170 creationmode - restrict permissions of the to-be-created +file., f 70; +#X text 83 378 -q: set quiet verbosity., f 63; +#X text 83 396 -v: set loud verbosity., f 63; +#X text 83 414 -m: file creation mode (user/group/other permissions) +in octal., f 63; +#X obj 7 350 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 376 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X restore 828 21 pd reference; +#X obj 11 51 cnv 1 1025 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 130 20 - operate on file handles.; +#X text 304 548 if the file cannot be opened \, a bang is sent to the +2nd outlet. when the end of the file is reached or a read error occurred +\, the file is closed and a bang is sent too., f 85; +#X text 228 435 close file, f 5; +#X text 500 152 <-- open file in Write mode; +#X text 672 438 close file, f 5; +#X text 384 20 - short form for file handle.; +#X text 48 64 The data you read from or write to a file are lists of +bytes \, which appear in Pd as lists of numbers from 0 to 255 (using +out-of-range numbers of symbols leads to undefined behaviour.) The +2nd inlet of the 'file handle' object is documented in the 'file define' +subpatch., f 136; +#X text 110 118 reading files =============, f 13; +#X text 466 118 writing files =============, f 13; +#X connect 0 0 5 0; +#X connect 0 1 51 0; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 0 0; +#X connect 6 0 0 0; +#X connect 9 0 0 0; +#X connect 11 0 0 0; +#X connect 12 0 13 0; +#X connect 13 0 11 0; +#X connect 14 1 49 0; +#X connect 15 0 14 0; #X connect 16 0 14 0; -#X connect 17 1 63 0; -#X connect 19 0 17 0; -#X connect 20 0 17 0; -#X connect 22 0 24 0; -#X connect 24 0 25 0; -#X connect 25 0 17 0; -#X connect 26 0 17 0; -#X connect 27 0 17 0; -#X connect 28 0 17 0; -#X connect 48 0 17 0; -#X connect 49 0 1 0; -#X connect 51 0 1 0; -#X connect 52 0 1 0; -#X connect 53 0 1 0; -#X connect 54 0 1 0; -#X connect 58 0 17 0; -#X connect 60 0 17 0; -#X connect 62 0 17 0; -#X connect 66 0 67 0; -#X connect 66 1 41 0; -#X connect 67 0 68 0; -#X connect 67 1 69 0; -#X restore 460 86 pd handle; -#N canvas 721 203 715 630 glob 0; -#X obj 80 400 file glob; -#X obj 80 465 print DATA; -#X obj 140 427 print ERROR; -#X msg 101 175 symbol ~/*.*; -#X msg 164 353 symbol; -#X msg 83 129 symbol .*; -#X text 88 29 Glob - find pathnames matching a pattern; -#X text 220 353 no match (files with an empty filename...); -#X msg 131 241 symbol %WinDir%/*.exe; -#X text 290 240 executable files in the Windows-directory; -#X msg 58 88 symbol *; -#X text 170 122 all files/directories starting with a dot (except for +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 20 0 14 0; +#X connect 21 0 14 0; +#X connect 22 0 14 0; +#X connect 23 0 14 0; +#X connect 34 0 14 0; +#X connect 35 0 0 0; +#X connect 37 0 0 0; +#X connect 38 0 0 0; +#X connect 39 0 0 0; +#X connect 40 0 0 0; +#X connect 44 0 14 0; +#X connect 46 0 14 0; +#X connect 48 0 14 0; +#X connect 51 0 52 0; +#X connect 51 1 29 0; +#X connect 52 0 53 0; +#X connect 52 1 54 0; +#X restore 440 97 pd handle; +#N canvas 680 67 617 565 glob 0; +#X obj 50 378 file glob; +#X obj 50 443 print DATA; +#X obj 110 405 print ERROR; +#X msg 71 153 symbol ~/*.*; +#X msg 134 331 symbol; +#X msg 53 107 symbol .*; +#X text 190 331 no match (files with an empty filename...); +#X msg 101 219 symbol %WinDir%/*.exe; +#X text 260 218 executable files in the Windows-directory; +#X msg 28 66 symbol *; +#X text 140 100 all files/directories starting with a dot (except for the special directories '.' and '..'), f 50; -#X msg 155 319 symbol .; -#X msg 114 211 symbol /tmp/*.pd; -#X text 241 212 all Pd-files in /tmp/; -#X text 225 319 the '.' directory (not very useful); -#X text 202 176 all files/directories with a dot in your homedir; -#X msg 148 281 symbol ../*/; -#X text 248 281 all directories in the parent directory; -#N canvas 820 264 790 450 recursive 0; +#X msg 125 297 symbol .; +#X msg 84 189 symbol /tmp/*.pd; +#X text 211 190 all Pd-files in /tmp/; +#X text 195 297 the '.' directory (not very useful); +#X text 172 154 all files/directories with a dot in your homedir; +#X msg 118 259 symbol ../*/; +#X text 218 259 all directories in the parent directory; +#N canvas 576 264 790 450 recursive 0; #X obj 112 223 file glob; #X msg 112 91 bang; #X obj 112 116 openpanel 1; @@ -212,10 +250,10 @@ #X connect 17 1 18 0; #X connect 18 0 21 0; #X connect 21 0 11 0; -#X restore 202 580 pd recursive globbing; -#X text 232 422 if no files are found or an error is encountered \, +#X restore 174 525 pd recursive globbing; +#X text 202 400 if no files are found or an error is encountered \, a bang is sent to the 2nd outlet, f 49; -#X text 189 485 matching files and directories are sent as lists of +#X text 149 450 matching files and directories are sent as lists of (including the search directory) and a identifier that indicates if the path is a file (0) or a directory (1).; #N canvas 480 231 738 232 arguments 0; @@ -232,8 +270,8 @@ #X obj 146 175 file glob -v; #X connect 2 0 7 0; #X connect 3 0 2 0; -#X restore 104 580 pd arguments; -#N canvas 778 272 914 441 cross-platform 0; +#X restore 76 525 pd arguments; +#N canvas 452 272 914 441 cross-platform 0; #X text 50 334 - files/dirs starting with a "." only match if the matching pattern explicitly contains the leading dot.; #X msg 496 343 symbol *; @@ -272,45 +310,75 @@ #X text 58 85 the following rules should help you to write patches that use platform independent globbing., f 107; #X text 32 29 cross-platform notes on globbing:; -#X restore 363 580 pd cross-platform pattern matching; -#X text 93 560 more:; -#X text 129 82 all files/directories in this directory (that don't -start with a dot), f 39; +#X restore 335 525 pd cross-platform pattern matching; +#X text 26 525 more:; +#X text 99 60 all files/directories in this directory (that don't start +with a dot), f 39; +#X obj 11 47 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 118 16 - find pathnames matching a pattern; +#X obj 40 17 file glob; +#X text 533 16 <= click; +#N canvas 599 129 578 333 reference 0; +#X text 118 16 - find pathnames matching a pattern; +#X obj 40 17 file glob; +#X obj 9 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 111 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 303 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 9 187 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 137 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 155 260 -q: set quiet verbosity., f 49; +#X text 155 278 -v: set loud verbosity., f 49; +#X text 54 86 verbose - set verbosity on or off.; +#X text 117 65 symbol - pattern to be found.; +#X text 119 142 list -; +#X text 167 143 found files/directories as a path symbol and type (file +<0> or directory <1>)., f 49; +#X text 132 194 bang - if nothing is found or an error occurs.; +#X obj 7 226 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 252 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X restore 430 17 pd reference; #X connect 0 0 1 0; #X connect 0 1 2 0; #X connect 3 0 0 0; #X connect 4 0 0 0; #X connect 5 0 0 0; -#X connect 8 0 0 0; -#X connect 10 0 0 0; +#X connect 7 0 0 0; +#X connect 9 0 0 0; +#X connect 11 0 0 0; #X connect 12 0 0 0; -#X connect 13 0 0 0; -#X connect 17 0 0 0; -#X restore 460 216 pd glob; -#X obj 39 583 file; -#X text 76 584 - short for "file handle"; -#X obj 28 86 file handle; -#X obj 28 256 file stat; -#X text 166 85 - read/write binary files; -#X text 166 187 - find a file in Pd's search-path; -#X text 166 217 - list files in directories; -#X obj 28 216 file glob; -#X obj 28 186 file which; -#N canvas 730 134 565 531 which 0; -#X text 65 44 Which - locate a file; -#X obj 60 212 file which; -#X symbolatom 60 326 0 0 0 0 - - - 0; -#X obj 60 352 print found; -#X obj 127 265 print not!found; -#X msg 70 182 symbol nada; -#X msg 60 146 symbol hilbert~.pd; -#X text 42 388 notes:; -#X text 64 415 - currently this only works for files \, not for directories! +#X connect 16 0 0 0; +#X restore 440 227 pd glob; +#X obj 38 594 file; +#X text 75 595 - short for "file handle"; +#X obj 27 97 file handle; +#X obj 27 267 file stat; +#X text 156 96 - read/write binary files; +#X text 156 198 - find a file in Pd's search-path; +#X text 156 228 - list files in directories; +#X obj 27 227 file glob; +#X obj 27 197 file which; +#N canvas 660 134 623 461 which 0; +#X obj 35 187 file which; +#X symbolatom 35 301 79 0 0 0 - - - 0; +#X obj 35 327 print found; +#X obj 102 240 print not!found; +#X msg 45 157 symbol nada; +#X msg 35 121 symbol hilbert~.pd; +#X text 67 363 notes:; +#X text 126 364 - currently this only works for files \, not for directories! ; -#X text 64 436 - currently only the first match is returned; -#X text 210 149 a file that ships with Pd; -#X text 211 182 probably does not exist in Pd's search path; -#N canvas 742 410 738 232 arguments 0; +#X text 126 385 - currently only the first match is returned; +#X text 178 123 a file that ships with Pd; +#X text 139 156 probably does not exist in Pd's search path; +#N canvas 628 410 738 232 arguments 0; #X text 274 145 less verbose (quiet); #X text 274 175 more verbose (loud); #X msg 563 149 verbose \$1; @@ -324,114 +392,178 @@ #X obj 563 174 file which; #X connect 2 0 9 0; #X connect 3 0 2 0; -#X restore 65 473 pd arguments; -#X symbolatom 127 238 0 0 0 0 - - - 0; -#X text 61 76 tries to locate the file in using Pd's search-paths and -returns the resolved path.; -#X obj 60 298 unpack s f; -#X floatatom 152 299 2 0 0 1 directory? - - 0; -#X connect 1 0 15 0; -#X connect 1 1 13 0; -#X connect 2 0 3 0; -#X connect 5 0 1 0; -#X connect 6 0 1 0; -#X connect 13 0 4 0; -#X connect 15 0 2 0; -#X connect 15 1 16 0; -#X restore 460 186 pd which; -#X obj 28 146 file mkdir; -#X text 167 147 - create a directory; -#N canvas 764 165 545 618 mkdir 0; -#X text 113 33 Mkdir - create directories; -#X obj 72 409 file mkdir; -#X symbolatom 72 486 0 0 0 0 - - - 0; -#X obj 72 520 print mkdir; -#X obj 139 454 print ERR:mkdir; -#X msg 72 169 bang; -#X msg 92 229 bang; -#X msg 92 279 symbol \$1/subdir/another/sub/directory; -#X msg 113 321 symbol .; -#X obj 139 434 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc -#000000 #000000; -#X text 64 81 this ensures that a given directory exists by creating -it.; -#X text 63 99 parent directories are created as needed.; -#X text 63 119 it is not an error \, if the requested directory already +#X restore 194 422 pd arguments; +#X symbolatom 102 213 47 0 0 0 - - - 0; +#X obj 35 273 unpack s f; +#X floatatom 127 274 3 0 0 1 - - - 0; +#X obj 11 47 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 137 14 - locate a file; +#X text 29 65 [file which] tries to locate the file in using Pd's search-paths +and returns the resolved path., f 69; +#X obj 50 15 file which; +#X text 521 14 <= click; +#N canvas 778 127 581 317 reference 0; +#X obj 9 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 111 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 286 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 9 167 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 137 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 155 240 -q: set quiet verbosity., f 49; +#X text 155 258 -v: set loud verbosity., f 49; +#X obj 31 22 file which; +#X text 114 22 - locate a file; +#X text 127 65 symbol - file to locate using Pd's search-paths.; +#X text 132 174 float - when there's an error creating the directory. +; +#X text 64 86 verbose - set verbosity on or off., f 57; +#X text 125 142 list - symbol path of located file and directory flag. +; +#X obj 7 208 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 234 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X restore 418 15 pd reference; +#X text 157 273 directory?; +#X connect 0 0 13 0; +#X connect 0 1 12 0; +#X connect 1 0 2 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 12 0 3 0; +#X connect 13 0 1 0; +#X connect 13 1 14 0; +#X restore 440 197 pd which; +#X obj 27 157 file mkdir; +#X text 157 158 - create a directory; +#N canvas 531 60 514 592 mkdir 0; +#X obj 32 391 file mkdir; +#X symbolatom 32 468 64 0 0 0 - - - 0; +#X obj 32 502 print mkdir; +#X obj 99 439 print ERR:mkdir; +#X msg 32 151 bang; +#X msg 52 211 bang; +#X msg 52 261 symbol \$1/subdir/another/sub/directory; +#X msg 73 303 symbol .; +#X obj 99 416 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000; +#X text 23 81 parent directories are created as needed.; +#X text 23 101 it is not an error \, if the requested directory already exists (and is a directory).; -#X text 178 171 create a new directory; -#X text 187 233 create a deep directory; -#X text 194 323 (re)create an existing directory; -#X text 164 431 on error \, a bang is sent to the 2nd outlet; -#X text 166 515 on success \, the name of the created directory is +#X text 138 153 create a new directory; +#X text 147 215 create a deep directory; +#X text 154 305 (re)create an existing directory; +#X text 121 415 on error \, a bang is sent to the 2nd outlet; +#X text 126 497 on success \, the name of the created directory is sent to the 1st outlet, f 36; -#N canvas 817 398 868 498 arguments 0; -#X text 274 145 less verbose (quiet); -#X text 274 175 more verbose (loud); -#X msg 563 149 verbose \$1; -#X obj 563 127 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#N canvas 596 129 736 450 arguments 0; +#X text 209 100 less verbose (quiet); +#X text 209 130 more verbose (loud); +#X msg 498 104 verbose \$1; +#X obj 498 82 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 106 70 error reporting on the Pd-console; -#X text 239 111 via flags:; -#X text 524 100 via a message:; -#X text 154 380 via a message:; -#X text 149 281 via creation flags:; -#X text 117 249 restricted permissions of created directories:; -#X text 410 320 directory creation mode (user/group/other permissions) +#X text 41 25 error reporting on the Pd-console; +#X text 174 66 via flags:; +#X text 459 55 via a message:; +#X text 89 335 via a message:; +#X text 84 236 via creation flags:; +#X text 52 204 restricted permissions of created directories:; +#X text 279 266 directory creation mode (user/group/other permissions) in octal.; -#X msg 146 405 creationmode 0o700; -#X text 408 358 the actual permissions of the created directory also +#X msg 81 360 creationmode 0o700; +#X text 277 304 the actual permissions of the created directory also takes the umask into account. this might be ignored by the underlying filesystem.; -#X text 409 420 the creation mode only affects directories that are +#X text 278 366 the creation mode only affects directories that are created after the mode has been set.; -#X obj 146 430 file mkdir; -#X obj 146 315 file mkdir -m 0o700; -#X obj 146 175 file mkdir -v; -#X obj 146 145 file mkdir -q; -#X obj 563 174 file mkdir; +#X obj 81 385 file mkdir; +#X obj 81 270 file mkdir -m 0o700; +#X obj 81 130 file mkdir -v; +#X obj 81 100 file mkdir -q; +#X obj 498 129 file mkdir; #X connect 2 0 18 0; #X connect 3 0 2 0; #X connect 11 0 14 0; -#X restore 118 573 pd arguments; -#X msg 117 369 creationmode 0o700; -#X obj 92 254 savepanel 1; -#X obj 72 194 savepanel 1; +#X restore 185 551 pd arguments; +#X msg 77 351 creationmode 0o700; +#X obj 52 236 savepanel 1; +#X obj 32 176 savepanel 1; +#X obj 27 16 file mkdir; +#X text 110 16 - create directories; +#X text 24 63 This ensures that a given directory exists by creating +it.; +#X obj 6 47 cnv 1 500 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 427 14 <= click; +#N canvas 778 127 575 333 reference 0; +#X obj 9 44 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 118 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 303 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 28 15 file mkdir; +#X text 111 15 - create directories; +#X text 125 57 symbol - directory to be created., f 56; +#X text 27 75 creationmode - restrict permissions of the created +directory., f 70; +#X obj 9 174 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 144 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 125 149 symbol - created directory on success., f 56; +#X text 139 181 bang - when there's an error creating the directory. +; +#X text 85 244 -q: set quiet verbosity., f 63; +#X text 85 261 -v: set loud verbosity., f 63; +#X text 85 278 -m: file creation mode (user/group/other permissions) +in octal., f 63; +#X text 62 94 verbose - set verbosity on or off., f 65; +#X obj 7 212 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 238 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X restore 324 15 pd reference; +#X connect 0 0 1 0; +#X connect 0 1 8 0; #X connect 1 0 2 0; -#X connect 1 1 9 0; -#X connect 2 0 3 0; -#X connect 5 0 21 0; -#X connect 6 0 20 0; -#X connect 7 0 1 0; -#X connect 8 0 1 0; -#X connect 9 0 4 0; -#X connect 19 0 1 0; -#X connect 20 0 7 0; -#X connect 21 0 1 0; -#X restore 460 146 pd mkdir; -#X obj 28 426 file delete; -#X text 167 427 - delete files and directories; -#N canvas 796 168 639 710 delete 0; -#X text 94 31 Delete - remove files and directories; +#X connect 4 0 19 0; +#X connect 5 0 18 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 3 0; +#X connect 17 0 0 0; +#X connect 18 0 6 0; +#X connect 19 0 0 0; +#X restore 440 157 pd mkdir; +#X obj 27 437 file delete; +#X text 157 438 - delete files and directories; +#N canvas 521 23 666 648 delete 0; #X obj 85 216 file delete; #X obj 159 243 print ERR:delete; #X obj 85 273 print deleted; -#X text 51 73 NOTE: deleting destroys data. there is no confirmation -dialog or anything of that kind.; +#X text 51 84 NOTE: deleting destroys data. there is no confirmation +dialog or anything of that kind., f 74; #X msg 85 155 symbol nada; -#X text 196 158 file or directory to be deleted; -#X text 60 381 recursive deletion; -#X obj 95 570 file delete; -#X msg 95 489 recursive nada; -#X obj 169 597 print ERR:recursive-delete; -#X obj 95 655 print recursively-deleted; -#X text 208 490 remove the nada/ directory with all its content.; +#X text 173 157 file or directory to be deleted; +#X text 60 331 recursive deletion; +#X obj 95 520 file delete; +#X msg 95 439 recursive nada; +#X obj 169 547 print ERR:recursive-delete; +#X obj 95 605 print recursively-deleted; +#X text 208 440 remove the nada/ directory with all its content.; #X text 283 239 on error \, a bang is sent to the 2nd outlet; #X text 197 275 on success \, the deleted path is sent to the 1st outlet ; -#X text 225 572 on error \, a bang is sent to the 2nd outlet; -#X text 118 631 on success \, the deleted path is sent to the 1st outlet +#X text 225 522 on error \, a bang is sent to the 2nd outlet; +#X text 118 581 on success \, the deleted path is sent to the 1st outlet ; -#X text 212 514 if nada is a file (rather than a directory) \, it will +#X text 212 464 if nada is a file (rather than a directory) \, it will be deleted just so.; #N canvas 956 363 738 232 arguments 0; #X text 274 145 less verbose (quiet); @@ -448,25 +580,52 @@ #X connect 2 0 9 0; #X connect 3 0 2 0; #X restore 505 314 pd arguments; -#X text 60 396 ------------------; -#X text 82 415 if you are sure that you want to remove an entire directory +#X text 60 346 ------------------; +#X text 82 365 if you are sure that you want to remove an entire directory tree with all the files and subdirectories \, you can also remove it *recursively* using the "recursive" message.; -#X connect 1 0 3 0; -#X connect 1 1 2 0; -#X connect 5 0 1 0; -#X connect 8 0 11 0; -#X connect 8 1 10 0; -#X connect 9 0 8 0; -#X restore 460 426 pd delete; -#N canvas 751 166 727 414 copy 0; -#X text 52 29 Copy - copy a file around; -#X obj 73 290 file copy, f 12; -#X msg 73 166 list source destination; -#X text 258 165 copies the file 'source' to the new file 'destination' +#X obj 11 47 cnv 1 650 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 580 14 <= click; +#N canvas 599 129 573 316 reference 0; +#X obj 9 48 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 107 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 282 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 9 163 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 133 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 54 82 verbose - set verbosity on or off.; +#X text 132 170 bang - if an error occurs.; +#X text 117 61 symbol - file or directory to be deleted.; +#X text 120 138 symbol - the deleted path on success.; +#X obj 28 16 file delete; +#X text 124 16 - remove files and directories.; +#X text 155 236 -q: set quiet verbosity., f 49; +#X text 155 254 -v: set loud verbosity., f 49; +#X obj 7 203 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 229 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X restore 477 15 pd reference; +#X obj 36 15 file delete; +#X text 132 15 - remove files and directories.; +#X connect 0 0 2 0; +#X connect 0 1 1 0; +#X connect 4 0 0 0; +#X connect 7 0 10 0; +#X connect 7 1 9 0; +#X connect 8 0 7 0; +#X restore 440 437 pd delete; +#N canvas 495 139 674 330 copy 0; +#X msg 48 115 list source destination; +#X text 233 114 copies the file 'source' to the new file 'destination' ; -#X obj 73 335 print copy; -#X obj 154 336 print ERR:copy; +#X obj 48 284 print copy; +#X obj 129 285 print ERR:copy; #N canvas 648 181 502 408 arguments 0; #X msg 136 143 verbose \$1; #X obj 136 122 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 @@ -481,74 +640,104 @@ #X text 206 324 less verbose (quiet); #X connect 0 0 2 0; #X connect 1 0 0 0; -#X restore 97 244 pd arguments; -#X text 50 79 [file copy] duplicates the content of a file to a destination -; -#X text 290 220 'destination' can be a file or a directory.; -#X text 290 200 'source' must be a file.; -#X text 292 253 the destination directory must exist and be writable. +#X restore 72 193 pd arguments; +#X text 245 169 'destination' can be a file or a directory.; +#X text 245 149 'source' must be a file.; +#X text 247 202 the destination directory must exist and be writable. ; -#X connect 1 0 4 0; -#X connect 1 1 5 0; -#X connect 2 0 1 0; -#X connect 6 0 1 0; -#X restore 460 366 pd copy; -#X obj 28 366 file copy; -#X text 167 367 - copy files; -#X obj 28 396 file move; -#X text 167 397 - move files; -#X obj 28 466 file split; -#X obj 28 491 file join; -#X obj 28 516 file splitext; -#X obj 28 541 file splitname; -#X text 167 497 - filename operations; -#X obj 35 15 file; -#X text 82 16 - low-level file operations; -#X text 29 57 The file object's first argument sets its function:; -#X obj 28 281 file isfile; -#X obj 28 306 file isdirectory; -#X obj 28 331 file size; -#N canvas 737 166 810 629 info 0; -#X obj 42 352 file isfile, f 15; -#X floatatom 42 377 5 0 0 0 - - - 0; -#X msg 159 168 bang; -#X floatatom 544 380 5 0 0 0 - - - 0; -#X obj 544 355 file isdirectory; -#X text 200 167 select a file; -#X msg 199 197 bang; -#X text 250 196 select a directory; -#X msg 268 225 symbol .; -#X text 342 224 some directory; -#X msg 268 255 symbol nada; -#X obj 653 400 print ERR:isDir; -#X obj 653 380 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X obj 11 47 cnv 1 650 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 580 14 <= click; +#N canvas 599 129 573 331 reference 0; +#X obj 9 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 111 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 286 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 9 167 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 137 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 155 242 -q: set quiet verbosity., f 49; +#X text 155 260 -v: set loud verbosity., f 49; +#X text 84 86 verbose - set verbosity on or off.; +#X text 132 174 bang - if an error occurs.; +#X text 147 65 list - source and destination.; +#X text 120 142 list -; +#X text 167 143 source and destination on success., f 39; +#X text 112 15 - copy a file around.; +#X obj 36 15 file copy; +#X obj 7 207 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 233 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X restore 477 15 pd reference; +#X text 112 15 - copy a file around.; +#X obj 36 15 file copy; +#X obj 48 239 file copy, f 12; +#X msg 63 153 list \$1 porra; +#X text 64 68 [file copy] duplicates the content of a file to a destination. +, f 64; +#X connect 0 0 13 0; +#X connect 4 0 13 0; +#X connect 13 0 2 0; +#X connect 13 1 3 0; +#X connect 14 0 13 0; +#X restore 440 377 pd copy; +#X obj 27 377 file copy; +#X text 157 378 - copy files; +#X obj 27 407 file move; +#X text 157 408 - move files; +#X obj 27 477 file split; +#X obj 27 502 file join; +#X obj 27 527 file splitext; +#X obj 27 552 file splitname; +#X text 157 508 - filename operations; +#X obj 31 12 file; +#X text 78 11 - low-level file operations; +#X text 28 68 The file object's first argument sets its function:; +#X obj 27 292 file isfile; +#X obj 27 317 file isdirectory; +#X obj 27 342 file size; +#N canvas 478 65 815 507 info 0; +#X obj 36 300 file isfile, f 15; +#X floatatom 36 325 5 0 0 0 - - - 0; +#X msg 189 116 bang; +#X floatatom 538 328 5 0 0 0 - - - 0; +#X obj 538 303 file isdirectory; +#X text 230 115 select a file; +#X msg 229 145 bang; +#X text 280 144 select a directory; +#X msg 298 173 symbol .; +#X text 372 172 some directory; +#X msg 298 203 symbol nada; +#X obj 647 348 print ERR:isDir; +#X obj 647 328 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 544 404 print isDir; -#X obj 42 401 print isFile; -#X text 271 394 sends a bang to the 2nd outlet \, if the path could +#X obj 538 352 print isDir; +#X obj 36 349 print isFile; +#X text 265 342 sends a bang to the 2nd outlet \, if the path could not be read, f 32; -#X text 358 257 probably not there; -#X floatatom 54 495 5 0 0 0 - - - 0; -#X obj 54 470 file size, f 13; -#X obj 54 519 print size; -#X text 222 488 on error \, a bang is sent to the 2nd outlet; -#X obj 144 381 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X text 388 205 probably not there; +#X floatatom 48 443 5 0 0 0 - - - 0; +#X obj 48 418 file size, f 13; +#X obj 48 467 print size; +#X text 216 436 on error \, a bang is sent to the 2nd outlet; +#X obj 138 329 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 144 401 print ERR:isFile; -#X obj 142 499 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X obj 138 349 print ERR:isFile; +#X obj 136 447 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 142 519 print ERR:size; -#X text 220 455 gets the size of a file (in bytes) \, as reported by +#X obj 136 467 print ERR:size; +#X text 214 403 gets the size of a file (in bytes) \, as reported by the filesystem. for directories \, this will return '0'.; -#X obj 79 62 file isfile; -#X obj 79 92 file isdirectory; -#X obj 79 122 file size; -#X text 204 63 check if path is an existing regular file; -#X text 204 93 check if path is an existing directory; -#X text 208 124 get size of a file; -#X obj 42 326 r \$0-info-path; -#X obj 54 443 r \$0-info-path; -#X obj 544 330 r \$0-info-path; +#X obj 80 17 file isfile; +#X obj 45 40 file isdirectory; +#X obj 94 63 file size; +#X obj 36 274 r \$0-info-path; +#X obj 48 391 r \$0-info-path; +#X obj 538 278 r \$0-info-path; #N canvas 143 98 738 232 arguments 0; #X text 274 145 less verbose (quiet); #X text 274 175 more verbose (loud); @@ -563,8 +752,8 @@ #X obj 563 174 file isdirectory; #X connect 2 0 9 0; #X connect 3 0 2 0; -#X restore 99 576 pd arguments; -#X symbolatom 159 286 0 0 0 0 - - - 0; +#X restore 544 142 pd arguments; +#X symbolatom 189 234 0 0 0 0 - - - 0; #N canvas 578 479 645 307 info-path 0; #X obj 44 107 openpanel; #X obj 167 116 openpanel 1; @@ -586,105 +775,130 @@ #X connect 6 0 0 0; #X connect 8 0 1 0; #X connect 10 0 2 0; -#X restore 159 251 pd info-path; -#X text 105 19 Info - get metainformation about a file/directory; +#X restore 189 199 pd info-path; +#X obj 189 271 s \$0-info-path; +#X obj 7 95 cnv 1 800 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 716 59 <= click; +#N canvas 599 129 572 356 reference 0; +#X obj 9 94 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 153 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 323 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 9 212 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 179 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 155 279 -q: set quiet verbosity., f 49; +#X text 155 297 -v: set loud verbosity., f 49; +#X text 54 128 verbose - set verbosity on or off.; +#X text 132 219 bang - if an error occurs.; +#X obj 58 16 file isfile; +#X obj 23 39 file isdirectory; +#X obj 72 62 file size; +#X text 145 62 - get size of a file; +#X text 145 40 - check if path is an existing directory; +#X text 145 17 - check if path is an existing regular file; +#X text 117 107 symbol -file or directory name.; +#X text 110 186 float -; +#X text 167 185 true <1> of false <0>., f 39; +#X obj 7 247 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 273 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X restore 613 60 pd reference; +#X text 167 63 - get size of a file; +#X text 167 41 - check if path is an existing directory; +#X text 167 18 - check if path is an existing regular file; #X connect 0 0 1 0; #X connect 0 1 21 0; #X connect 1 0 14 0; -#X connect 2 0 37 0; +#X connect 2 0 34 0; #X connect 3 0 13 0; #X connect 4 0 3 0; #X connect 4 1 12 0; -#X connect 6 0 37 1; -#X connect 8 0 37 2; -#X connect 10 0 37 2; +#X connect 6 0 34 1; +#X connect 8 0 34 2; +#X connect 10 0 34 2; #X connect 12 0 11 0; #X connect 17 0 19 0; #X connect 18 0 17 0; #X connect 18 1 23 0; #X connect 21 0 22 0; #X connect 23 0 24 0; -#X connect 32 0 0 0; -#X connect 33 0 18 0; -#X connect 34 0 4 0; -#X connect 37 0 36 0; -#X restore 460 309 pd info; -#N canvas 725 61 852 940 stat 0; -#X msg 187 74 bang; -#X text 228 73 select a file; -#X msg 227 101 bang; -#X text 272 100 select a directory; -#X msg 268 139 symbol .; -#X text 342 138 some directory; -#X msg 299 169 symbol nada; -#X text 389 171 probably not there; -#X obj 200 303 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X connect 29 0 0 0; +#X connect 30 0 18 0; +#X connect 31 0 4 0; +#X connect 33 0 35 0; +#X connect 34 0 33 0; +#X restore 440 320 pd info; +#N canvas 499 34 827 708 stat 0; +#X msg 80 64 bang; +#X text 27 59 select a file, f 6; +#X msg 120 65 bang; +#X text 160 64 select a directory; +#X msg 161 94 symbol .; +#X text 233 93 some directory; +#X msg 192 122 symbol nada; +#X text 282 124 probably not there; +#X obj 185 181 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 200 323 print ERR:stat; -#X obj 71 301 t a a; -#X obj 103 325 print stat; -#X obj 121 448 tgl 15 0 empty empty r 17 7 0 10 #fcfcfc #000000 #000000 +#X obj 185 201 print ERR:stat; +#X obj 80 209 t a a; +#X obj 112 233 print stat; +#X obj 130 347 tgl 15 0 empty empty r 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X obj 190 448 tgl 15 0 empty empty w 17 7 0 10 #fcfcfc #000000 #000000 +#X obj 199 347 tgl 15 0 empty empty w 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X obj 259 448 tgl 15 0 empty empty x 17 7 0 10 #fcfcfc #000000 #000000 +#X obj 268 347 tgl 15 0 empty empty x 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X obj 147 539 route type; -#X obj 147 564 symbol; -#X obj 120 509 tgl 15 0 empty empty F 17 7 0 10 #fcfcfc #000000 #000000 +#X obj 156 433 route type; +#X obj 156 458 symbol; +#X obj 129 404 tgl 15 0 empty empty F 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X obj 198 509 tgl 15 0 empty empty D 17 7 0 10 #fcfcfc #000000 #000000 +#X obj 207 404 tgl 15 0 empty empty D 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X obj 276 509 tgl 15 0 empty empty L 17 7 0 10 #fcfcfc #000000 #000000 +#X obj 285 404 tgl 15 0 empty empty L 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X obj 120 482 route isfile isdirectory issymlink; -#X symbolatom 147 590 0 0 0 0 - - - 0; -#X obj 328 448 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X obj 129 377 route isfile isdirectory issymlink; +#X symbolatom 156 484 10 0 0 0 - - - 0; +#X obj 337 347 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X floatatom 123 716 5 0 0 0 - - - 0; -#X floatatom 170 716 5 0 0 0 - - - 0; -#X floatatom 250 641 5 0 0 0 - - - 0; -#X obj 71 756 route mtime atime, f 53; -#X msg 71 791 symbol \$1-\$2-\$3T\$4:\$5:\$6; -#X symbolatom 71 816 0 0 0 3 modified - - 0; -#X msg 255 782 symbol \$1-\$2-\$3T\$4:\$5:\$6; -#X symbolatom 255 807 0 0 0 3 accessed - - 0; -#X obj 71 421 t a a; -#X obj 71 651 t a a; -#X obj 71 482 t a a; -#X obj 71 551 t a a; -#X obj 71 691 t a a; -#X floatatom 126 386 5 0 0 0 - - - 0; -#X obj 71 361 t a a; -#X text 311 323 on error \, a bang is sent to the 2nd outlet; -#X obj 126 361 route size; -#X obj 121 421 route readable writable executable owned; -#X obj 250 618 route permissions; -#X obj 250 665 makefilename %o; -#X symbolatom 250 690 10 0 0 0 - - - 0; -#X text 379 655 numeric permissions (the more common form is the octal +#X floatatom 152 590 5 0 0 0 - - - 0; +#X floatatom 199 590 5 0 0 0 - - - 0; +#X floatatom 339 516 5 0 0 0 - - - 0; +#X obj 80 622 route mtime atime, f 62; +#X msg 80 648 symbol \$1-\$2-\$3T\$4:\$5:\$6; +#X symbolatom 80 673 19 0 0 0 modified - - 0; +#X msg 295 648 symbol \$1-\$2-\$3T\$4:\$5:\$6; +#X symbolatom 295 673 18 0 0 0 accessed - - 0; +#X obj 80 320 t a a; +#X obj 80 526 t a a; +#X obj 80 377 t a a; +#X obj 80 445 t a a; +#X obj 80 566 t a a; +#X floatatom 135 291 5 0 0 0 - - - 0; +#X obj 80 266 t a a; +#X text 296 187 on error \, a bang is sent to the 2nd outlet, f 22 +; +#X obj 135 266 route size; +#X obj 130 320 route readable writable executable owned; +#X obj 339 493 route permissions; +#X obj 339 540 makefilename %o; +#X symbolatom 339 565 10 0 0 0 - - - 0; +#X text 461 532 numeric permissions (the more common form is the octal representation), f 37; -#X text 375 471 boolean values whether the path is a file/directory/symlink +#X text 384 366 boolean values whether the path is a file/directory/symlink ; -#X text 214 718 numeric user-id & group-id of the file; -#X text 460 756 last modification resp. access time, f 19; -#X text 220 359 file size (for regular files/symlinks \, 0 for directories +#X text 243 592 numeric user-id & group-id of the file; +#X text 528 617 last modification resp. access time, f 19; +#X text 229 264 file size (for regular files/symlinks \, 0 for directories \, -1 otherwise), f 38; -#X text 216 563 symbolic description of the path type (after resolving +#X text 209 458 symbolic description of the path type (after resolving any symlinks), f 68; -#N canvas 816 222 450 300 arguments 0; -#X msg 68 137 verbose \$1; -#X obj 68 116 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 -#000000 0 1; -#X text 52 23 error reporting; -#X text 61 83 switch on/off error messages on the Pd-console; -#X text 56 208 or use the "-v" resp "-q" flag; -#X obj 62 252 file stat -v; -#X obj 68 162 outlet; -#X connect 0 0 6 0; -#X connect 1 0 0 0; -#X restore 71 179 pd arguments; -#N canvas 983 328 423 294 openpanel 0; +#N canvas 871 315 423 294 openpanel 0; #X obj 74 97 openpanel; #X obj 167 97 openpanel 1; #X obj 271 195 symbol .; @@ -701,12 +915,9 @@ #X connect 4 0 2 0; #X connect 6 0 1 0; #X connect 8 0 0 0; -#X restore 187 195 pd openpanel; -#X text 68 24 Stat - get metainformation about a file/directory; -#X obj 66 257 cnv 15 80 30 empty empty empty 20 12 0 14 #e0e0e0 #404040 -0; -#X obj 71 262 file stat; -#N canvas 840 685 738 232 arguments 0; +#X restore 80 121 pd openpanel; +#X obj 80 180 file stat; +#N canvas 565 317 738 232 arguments 0; #X text 274 145 less verbose (quiet); #X text 274 175 more verbose (loud); #X msg 563 149 verbose \$1; @@ -720,21 +931,51 @@ #X obj 563 174 file stat; #X connect 2 0 9 0; #X connect 3 0 2 0; -#X restore 169 879 pd arguments; -#X text 240 250 [file stat] queries the filesystem about the given -path \, and outputs the collected data as a number of routable messages. -, f 42; -#X text 376 489 (the symlink flag is additional: e.g. \, if the path +#X restore 613 153 pd arguments; +#X text 445 70 [file stat] queries the filesystem about the given path +\, and outputs the collected data as a number of routable messages. +, f 46; +#X text 385 384 (the symlink flag is additional: e.g. \, if the path is a symlink to a directory \, both isdirectory and issymlink will be true); -#X symbolatom 187 220 0 0 0 0 - - - 0; -#X text 416 419 whether the file is readable/writable/executable/owned +#X symbolatom 80 150 66 0 0 0 - - - 0; +#X text 425 318 whether the file is readable/writable/executable/owned by the user (might be '-1' if undeterminable), f 54; -#X obj 123 689 route uid gidd; -#X connect 0 0 51 0; -#X connect 2 0 51 1; -#X connect 4 0 51 2; -#X connect 6 0 51 2; +#X obj 152 563 route uid gidd; +#X text 112 15 - get metainformation about a file/directory; +#X obj 36 15 file stat; +#X obj 11 47 cnv 1 800 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 715 14 <= click; +#N canvas 599 129 574 320 reference 0; +#X text 106 15 - get metainformation about a file/directory; +#X obj 30 15 file stat; +#X obj 10 50 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 10 109 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 294 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 10 175 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 10 135 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 156 249 -q: set quiet verbosity., f 49; +#X text 156 267 -v: set loud verbosity., f 49; +#X text 55 84 verbose - set verbosity on or off.; +#X text 90 140 anything -; +#X text 168 141 several messages for metainformation., f 39; +#X text 133 182 bang - if an error occurs.; +#X obj 8 210 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 236 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X text 118 63 symbol - file or directory name.; +#X restore 612 15 pd reference; +#X connect 0 0 50 0; +#X connect 2 0 50 1; +#X connect 4 0 50 2; +#X connect 6 0 50 2; #X connect 8 0 9 0; #X connect 10 0 37 0; #X connect 10 1 11 0; @@ -757,7 +998,7 @@ #X connect 34 0 32 0; #X connect 34 1 15 0; #X connect 35 0 26 0; -#X connect 35 1 60 0; +#X connect 35 1 57 0; #X connect 37 0 31 0; #X connect 37 1 39 0; #X connect 39 0 36 0; @@ -767,16 +1008,15 @@ #X connect 40 3 22 0; #X connect 41 0 25 0; #X connect 42 0 43 0; -#X connect 50 0 54 0; -#X connect 51 0 58 0; -#X connect 54 0 10 0; -#X connect 54 1 8 0; -#X connect 58 0 54 0; -#X connect 60 0 23 0; -#X connect 60 1 24 0; -#X restore 460 280 pd stat; -#N canvas 751 166 737 423 move 0; -#X msg 103 148 list source destination; +#X connect 50 0 55 0; +#X connect 51 0 10 0; +#X connect 51 1 8 0; +#X connect 55 0 51 0; +#X connect 57 0 23 0; +#X connect 57 1 24 0; +#X restore 440 291 pd stat; +#N canvas 549 160 676 359 move 0; +#X msg 53 110 list source destination; #N canvas 305 121 542 353 arguments 0; #X msg 136 143 verbose \$1; #X obj 136 122 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 @@ -791,43 +1031,68 @@ #X obj 90 322 file move -q; #X connect 0 0 2 0; #X connect 1 0 0 0; -#X restore 127 228 pd arguments; -#X text 320 202 'destination' can be a file or a directory.; -#X text 320 182 'source' must be a file.; -#X text 322 235 the destination directory must exist and be writable. +#X restore 77 190 pd arguments; +#X text 270 164 'destination' can be a file or a directory.; +#X text 270 144 'source' must be a file.; +#X text 272 197 the destination directory must exist and be writable. ; -#X text 52 29 Move - move a file to a new destination; -#X text 50 79 [file move] moves (renames) files; -#X text 291 147 renames the file 'source' to the new file 'destination' +#X text 70 68 [file move] moves (renames) files; +#X text 241 109 renames the file 'source' to the new file 'destination' ; -#X obj 103 272 file move, f 12; -#X obj 103 297 print move; -#X obj 184 298 print ERR:move; -#X text 51 347 NOTE: moving a file removes the original file.; -#X connect 0 0 8 0; -#X connect 1 0 8 0; -#X connect 8 0 9 0; -#X connect 8 1 10 0; -#X restore 460 396 pd move; -#X text 38 633 see also:; -#X obj 123 632 text; -#X obj 165 632 array; -#X obj 214 632 list; -#X text 167 297 - get information on existing files; -#N canvas 1058 104 808 664 split+join 0; -#N canvas 1016 396 547 369 path 0; +#X obj 53 234 file move, f 12; +#X obj 53 259 print move; +#X obj 134 260 print ERR:move; +#X text 55 313 NOTE: moving a file removes the original file.; +#X obj 11 47 cnv 1 650 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 580 14 <= click; +#N canvas 599 129 573 331 reference 0; +#X obj 9 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 111 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 286 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 9 167 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 137 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 155 240 -q: set quiet verbosity., f 49; +#X text 155 258 -v: set loud verbosity., f 49; +#X text 54 86 verbose - set verbosity on or off.; +#X text 132 174 bang - if an error occurs.; +#X text 117 65 list - source and destination.; +#X text 120 142 list -; +#X text 167 143 source and destination on success., f 39; +#X obj 36 15 file move; +#X text 112 15 - move a file to a new destination.; +#X obj 7 207 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 233 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X restore 477 15 pd reference; +#X obj 36 15 file move; +#X text 112 15 - move a file to a new destination.; +#X connect 0 0 7 0; +#X connect 1 0 7 0; +#X connect 7 0 8 0; +#X connect 7 1 9 0; +#X restore 440 407 pd move; +#X text 22 644 see also:; +#X obj 97 643 text; +#X obj 139 643 array; +#X obj 188 643 list; +#X text 157 308 - get information on existing files; +#N canvas 451 65 791 637 split+join 0; +#N canvas 140 311 547 369 path 0; #X obj 103 233 symbol; -#X symbolatom 148 165 10 0 0 0 - - - 0; #X obj 260 292 print PATH; #X obj 103 291 outlet; #X obj 56 115 openpanel; #X obj 139 115 openpanel 1; -#X obj 139 88 t b; #X msg 139 141 symbol \$1/; -#X obj 56 87 t b; -#X obj 270 178 t b; #X obj 56 58 route file directory dir random; -#N canvas 1218 241 513 304 random 0; +#N canvas 853 241 513 304 random 0; #X obj 71 39 inlet; #X obj 71 225 outlet; #X obj 71 77 t b; @@ -849,123 +1114,137 @@ #X obj 237 259 t s s b; #X obj 360 292 print -n; #X msg 360 266 -------------------; -#X obj 237 234 r \$0-name-split+join-in; -#X obj 237 323 s \$0-name-split+join; #X obj 56 25 inlet; -#X connect 0 0 3 0; -#X connect 1 0 0 0; -#X connect 4 0 0 0; -#X connect 5 0 7 0; -#X connect 6 0 5 0; +#X obj 237 234 r \$0-split+join-in; +#X obj 237 323 s \$0-split+join; +#X obj 56 87 b; +#X obj 139 88 b; +#X obj 270 178 b; +#X connect 0 0 2 0; +#X connect 3 0 0 0; +#X connect 4 0 5 0; +#X connect 5 0 0 0; +#X connect 6 0 14 0; +#X connect 6 1 15 0; +#X connect 6 2 15 0; +#X connect 6 3 7 0; +#X connect 6 4 16 0; #X connect 7 0 0 0; -#X connect 8 0 4 0; -#X connect 9 0 0 0; -#X connect 10 0 8 0; -#X connect 10 1 6 0; -#X connect 10 2 6 0; -#X connect 10 3 11 0; -#X connect 10 4 9 0; -#X connect 11 0 0 0; -#X connect 12 0 16 0; -#X connect 12 1 2 0; -#X connect 12 2 14 0; -#X connect 14 0 13 0; -#X connect 15 0 12 0; -#X connect 17 0 10 0; -#X restore 214 142 pd path; -#X text 387 368 if the input ends with a / \, a '/' will be sent to +#X connect 8 0 13 0; +#X connect 8 1 1 0; +#X connect 8 2 10 0; +#X connect 10 0 9 0; +#X connect 11 0 6 0; +#X connect 12 0 8 0; +#X connect 14 0 3 0; +#X connect 15 0 4 0; +#X connect 16 0 0 0; +#X restore 173 143 pd path; +#X text 346 293 if the input ends with a / \, a '/' will be sent to the 2nd outlet. otherwise \, the 2nd outlet will fire a bang.; -#X obj 78 448 cnv 15 84 30 empty empty empty 20 12 0 14 #e0e0e0 #404040 +#X obj 126 262 file split; +#X obj 168 419 file join; +#X obj 168 513 print join; +#X symbolatom 173 170 0 0 0 0 - - \$0-split+join-in 0; +#X msg 173 65 file; +#X msg 183 92 directory; +#X text 46 168 or type your own:; +#X symbolatom 168 461 0 0 0 0 - - - 0; +#X msg 193 117 random string; +#X text 271 415 'join' a list of path components to a full path \, +using '/' as the path separator., f 42; +#X text 184 488 duplicate path separator will be removed.; +#X text 345 278 duplicate path separator will be removed.; +#X text 89 547 NOTE: 'file split' will always output (lists of) symbols +\, even if the component looks like a number. on one hand this makes +it harder to [route] \, but on the other hand this will keep zero-padded +numbers intact (think "2020/01/01/0042.wav")., f 91; +#X obj 8 47 cnv 1 775 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 684 14 <= click; +#N canvas 574 89 571 484 reference 0; +#X obj 9 45 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 0; -#X obj 79 289 cnv 15 84 30 empty empty empty 20 12 0 14 #e0e0e0 #404040 +#X obj 9 85 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 210 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 9 141 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 111 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 176 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 34 12 file split; +#X text 120 13 - 'split' path into components; +#X text 117 58 symbol - file or directory name to split.; +#X text 150 116 list - list of split components.; +#X text 101 148 symbol/bang - '/' if inputs ends with '/' or bang otherwise. +; +#X obj 9 295 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 0; -#X obj 82 294 file split; -#X obj 117 380 print split:components; -#X obj 181 353 print split:trailingslash; -#X obj 82 453 file join; -#X obj 149 324 t a a; -#X obj 82 337 t a a; -#X obj 82 407 list append; -#X obj 82 521 print join; -#X symbolatom 214 167 0 0 0 0 - - \$0-name-split+join-in 0; -#X msg 214 64 file; -#X msg 224 91 directory; -#X text 87 167 or type your own:; -#X text 144 66 select a; -#X symbolatom 82 496 0 0 0 0 - - - 0; -#X text 168 296 'split' path into components; -#X msg 234 116 random string; -#X text 183 447 'join' a list of path components to a full path \, -using '/' as the path separator.; -#X text 167 522 duplicate path separator will be removed.; -#X text 386 291 a list of path components (symbols) is sent to the +#X obj 9 335 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 460 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 9 391 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 361 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 426 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 34 262 file join; +#X text 110 263 - 'join' a list of components using '/' as the separator. +; +#X text 143 308 list - list of components to join.; +#X text 164 366 symbol - joined path or file.; +#X text 162 184 NONE; +#X text 222 434 NONE; +#X text 194 400 Inactive Outlet!; +#X restore 581 15 pd reference; +#X text 189 15 - filename operations; +#X obj 33 15 file split; +#X obj 116 15 file join; +#X text 67 307 trailing slash ->; +#X text 27 348 components ->; +#X obj 168 379 list; +#X text 210 260 <-- 'split' path into components, f 16; +#X text 96 65 select a:; +#X text 242 419 <--; +#X text 89 595 Conversely \, the 'file join' object accepts both symbols +and numbers., f 91; +#X obj 126 230 r \$0-split+join; +#X text 345 216 A list of path components (symbols) is sent to the 1st outlet. if the input started with a / \, the first path component will be a symbol '/'. otherwise no slashes will appear in the path components.; -#X text 386 353 duplicate path separator will be removed.; -#X text 101 211 these objects perform common string operations on filenames. +#X text 344 96 These objects perform common string operations on filenames. no checks are performed verifying the validity/existence of any path-component. -, f 71; -#X text 93 608 conversely \, the 'file join' object accepts both symbols -and numbers, f 91; -#X text 93 556 NOTE: 'file split' will always output (lists of) symbols -\, even if the component looks like a number. on one hand this makes -it harder to [route] \, but on the other hand this will keep zero-padded -numbers intact (think "2020/01/01/0042.wav")., f 91; -#X obj 82 266 r \$0-name-split+join; -#X text 86 19 Split/Join - filename operations; -#X connect 0 0 12 0; -#X connect 4 0 9 0; -#X connect 4 1 8 0; -#X connect 7 0 17 0; -#X connect 8 0 10 1; -#X connect 8 1 6 0; -#X connect 9 0 10 0; -#X connect 9 1 5 0; -#X connect 10 0 7 0; -#X connect 13 0 0 0; -#X connect 14 0 0 0; -#X connect 17 0 11 0; -#X connect 19 0 0 0; -#X connect 27 0 4 0; -#X restore 460 496 pd split+join; -#N canvas 755 231 806 660 base+ext 0; -#X obj 67 449 cnv 15 120 30 empty empty empty 20 12 0 14 #e0e0e0 #404040 -0; -#X obj 70 453 file splitext; -#X obj 70 514 print splitext:root+ext; -#X obj 158 484 print splitext:no!ext; -#X obj 67 304 cnv 15 120 30 empty empty empty 20 12 0 14 #e0e0e0 #404040 -0; -#X obj 70 309 file splitname; -#X obj 165 341 print splitname:file; -#X obj 70 370 print splitname:dir+file; -#X text 336 273 'splitname' separates the directory component from +, f 47; +#X listbox 193 310 4 0 0 0 - - - 0; +#X listbox 126 349 0 0 0 0 - - - 0; +#X connect 0 0 5 0; +#X connect 2 0 32 0; +#X connect 2 1 31 0; +#X connect 3 0 9 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 9 0 4 0; +#X connect 10 0 0 0; +#X connect 23 0 3 0; +#X connect 28 0 2 0; +#X connect 31 0 23 1; +#X connect 32 0 23 0; +#X restore 440 507 pd split+join; +#N canvas 395 48 794 632 base+ext 0; +#X text 400 198 'splitname' separates the directory component from the file component of the path \, and outputs a list with both on the -1st outlet.; -#X text 338 322 if no directory component can be found \, the path -is sent to the 2nd outlet; -#X text 339 357 a trailing slash is removed; -#X text 333 436 'splitname' separates the directory+file component -from the extension of the given path \, and outputs a list with both -on the 1st outlet.; -#X text 335 485 if no extension is found \, the path is sent to the -2nd outlet; -#X text 337 510 an extension is a non-empty string after the last '.' -in the filename-component of the path; -#X text 338 375 the filename is the non-empty string after the last -path-separator; -#X text 82 567 NOTE: the 'file split*' objects will always output (lists +1st outlet., f 45; +#X text 79 564 NOTE: the 'file split*' objects will always output (lists of) symbols \, even if the component looks like a number. on one hand this makes it harder to [route] \, but on the other hand this will keep zero-padded numbers intact (think "2020/01/01/0042.wav")., f 92; -#X obj 70 422 r \$0-name-base+ext; -#X obj 70 278 r \$0-name-base+ext; -#X text 56 212 these objects perform common string operations on filenames. -no checks are performed verifying the validity/existence of any path-component. -, f 73; -#X text 96 24 Base/Ext - more filename operations; #N canvas 375 327 547 369 path 0; #X obj 103 233 symbol; #X symbolatom 148 165 10 0 0 0 - - - 0; @@ -973,17 +1252,12 @@ #X obj 103 291 outlet; #X obj 56 115 openpanel; #X obj 139 115 openpanel 1; -#X obj 139 88 t b; #X msg 139 141 symbol \$1/; -#X obj 56 87 t b; -#X obj 270 178 t b; #X obj 56 58 route file directory dir random; #X obj 237 259 t s s b; #X obj 360 292 print -n; #X msg 360 266 -------------------; #X obj 56 25 inlet; -#X obj 237 323 s \$0-name-base+ext; -#X obj 237 234 r \$0-name-base+ext-in; #N canvas 667 322 513 304 random 0; #X obj 71 39 inlet; #X obj 71 225 outlet; @@ -1003,73 +1277,197 @@ #X connect 6 0 4 0; #X connect 7 0 1 0; #X restore 254 155 pd random; +#X obj 237 323 s \$0-base+ext; +#X obj 237 234 r \$0-base+ext-in; +#X obj 56 87 b; +#X obj 139 88 b; +#X obj 270 178 b; #X connect 0 0 3 0; #X connect 1 0 0 0; #X connect 4 0 0 0; -#X connect 5 0 7 0; -#X connect 6 0 5 0; -#X connect 7 0 0 0; -#X connect 8 0 4 0; -#X connect 9 0 0 0; -#X connect 10 0 8 0; -#X connect 10 1 6 0; -#X connect 10 2 6 0; -#X connect 10 3 17 0; -#X connect 10 4 9 0; -#X connect 11 0 15 0; -#X connect 11 1 2 0; -#X connect 11 2 13 0; -#X connect 13 0 12 0; -#X connect 14 0 10 0; -#X connect 16 0 11 0; +#X connect 5 0 6 0; +#X connect 6 0 0 0; +#X connect 7 0 15 0; +#X connect 7 1 16 0; +#X connect 7 2 16 0; +#X connect 7 3 12 0; +#X connect 7 4 17 0; +#X connect 8 0 13 0; +#X connect 8 1 2 0; +#X connect 8 2 10 0; +#X connect 10 0 9 0; +#X connect 11 0 7 0; +#X connect 12 0 0 0; +#X connect 14 0 8 0; +#X connect 15 0 4 0; +#X connect 16 0 5 0; #X connect 17 0 0 0; -#X restore 216 146 pd path; -#X symbolatom 216 171 0 0 0 0 - - \$0-name-split+join-in 0; -#X msg 216 68 file; -#X msg 226 95 directory; -#X text 89 171 or type your own:; -#X text 146 70 select a; -#X msg 236 120 random string; -#X connect 1 0 2 0; -#X connect 1 1 3 0; -#X connect 5 0 7 0; -#X connect 5 1 6 0; -#X connect 16 0 1 0; -#X connect 17 0 5 0; -#X connect 20 0 21 0; -#X connect 22 0 20 0; -#X connect 23 0 20 0; -#X connect 26 0 20 0; -#X restore 460 526 pd base+ext; -#X text 405 642 updated for Pd version 0.52; -#X obj 28 116 file define \$0.f; -#X text 166 115 - shared file handles; -#N canvas 544 89 605 703 define 0; -#X text 146 24 Define - share file handles; -#X obj 107 253 file define \$0.foo; -#X text 257 253 declare a file-handle with a given name.; -#X msg 106 363 open /tmp/test.txt; -#X obj 106 425 file handle \$0.foo; -#X msg 129 393 close; -#X msg 96 523 8; -#X text 128 522 read some bytes; -#X msg 219 560 bang; -#X text 68 328 here we open/close the file that is associated with +#X restore 167 148 pd path; +#X symbolatom 167 173 0 0 0 0 - - \$0-base+ext-in 0; +#X msg 167 70 file; +#X msg 177 97 directory; +#X text 40 173 or type your own:; +#X text 97 72 select a; +#X msg 187 122 random string; +#X obj 8 47 cnv 1 775 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 684 14 <= click; +#N canvas 724 152 573 467 reference 0; +#X obj 9 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 91 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 211 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 9 147 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 117 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 177 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 20 19 file splitname; +#X text 135 19 - separates directory an file components.; +#X text 117 65 symbol - file name.; +#X text 120 122 list - the separated directory and file components. +; +#X text 108 154 symbol - file component if no directory component is +found.; +#X obj 9 282 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 321 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 441 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 9 377 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 347 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 407 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X text 117 295 symbol - file name.; +#X text 120 352 list - the separated directory and file components. +; +#X obj 19 252 file splitext; +#X text 126 252 - separates directory+file and extension.; +#X text 108 384 symbol - path if no extension is found.; +#X text 162 185 NONE; +#X text 162 415 NONE; +#X restore 581 15 pd reference; +#X text 259 15 - more filename operations.; +#X obj 33 15 file splitname; +#X obj 146 15 file splitext; +#X text 407 384 'splitext' separates the directory+file component from +the extension of the given path \, and outputs a list with both on +the 1st outlet., f 45; +#X text 326 91 These objects perform common string operations on filenames. +no checks are performed verifying the validity/existence of any path-component. +, f 49; +#X text 400 247 If no directory component can be found \, the path +is sent to the 2nd outlet., f 45; +#X text 400 281 A trailing slash is removed., f 45; +#X text 400 302 The filename is the non-empty string after the last +path-separator, f 45; +#X text 407 448 If no extension is found \, the path is sent to the +2nd outlet., f 45; +#X text 407 487 An extension is a non-empty string after the last '.' +in the filename-component of the path., f 45; +#X obj 67 440 file splitext; +#X listbox 179 424 0 0 0 0 - - - 0; +#X listbox 67 494 0 0 0 0 - - - 0; +#X obj 179 453 print splitext no extension; +#X obj 67 521 print splitext root+ext; +#X obj 67 409 r \$0-base+ext; +#X obj 63 256 file splitname; +#X obj 63 225 r \$0-base+ext; +#X listbox 179 246 0 0 0 0 - - - 0; +#X listbox 63 309 0 0 0 0 - - - 0; +#X obj 63 337 print splitname dir+file; +#X obj 179 271 print splitname file; +#X connect 2 0 3 0; +#X connect 4 0 2 0; +#X connect 5 0 2 0; +#X connect 8 0 2 0; +#X connect 22 0 24 0; +#X connect 22 1 23 0; +#X connect 23 0 25 0; +#X connect 24 0 26 0; +#X connect 27 0 22 0; +#X connect 28 0 31 0; +#X connect 28 1 30 0; +#X connect 29 0 28 0; +#X connect 30 0 33 0; +#X connect 31 0 32 0; +#X restore 440 537 pd base+ext; +#X text 349 643 updated for Pd version 0.52; +#X obj 27 127 file define \$0.f; +#X text 156 126 - shared file handles; +#N canvas 565 43 617 557 define 0; +#X obj 63 177 file define \$0.foo; +#X text 213 177 declare a file-handle with a given name.; +#X msg 80 263 open /tmp/test.txt; +#X obj 80 325 file handle \$0.foo; +#X msg 103 293 close; +#X msg 102 404 8; +#X text 134 403 read some bytes; +#X msg 225 441 bang; +#X text 42 228 here we open/close the file that is associated with '\$0.foo'; -#X text 75 496 here we read the file that is opened elsewhere.; -#X obj 96 618 file handle \$0.foo; -#X obj 219 585 symbol \$0.bar; -#X text 263 559 you can change the associated file-handle; -#X text 53 83 Sometimes it is easier to access the same file-handle +#X text 81 377 here we read the file that is opened elsewhere.; +#X obj 102 499 file handle \$0.foo; +#X obj 225 467 symbol \$0.bar; +#X text 269 440 you can change the associated file-handle; +#X text 17 66 Sometimes it is easier to access the same file-handle from different parts of the patch (e.g. when reading and parsing a file) \, rather than going backwards and forwards with a single 'file -handle' object.; -#X text 54 156 In this case \, you can use the 'file define' object +handle' object., f 77; +#X text 17 122 In this case \, you can use the 'file define' object to provide a file handle that can then be accessed by multiple 'file -handle' objects.; -#X connect 3 0 4 0; -#X connect 5 0 4 0; -#X connect 6 0 11 0; -#X connect 8 0 12 0; -#X connect 12 0 11 1; -#X restore 460 116 pd define; +handle' objects., f 77; +#X obj 28 19 file define x; +#X text 134 19 - share file handles.; +#X obj 7 52 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 526 17 <= click; +#N canvas 599 129 578 200 reference 0; +#X obj 9 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 9 93 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 131 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 8 170 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 136 20 - share file handles.; +#X obj 30 20 file define z; +#X text 164 103 NONE; +#X text 164 65 NONE; +#X text 143 140 1 symbol - declared file-handle name.; +#X restore 423 18 pd reference; +#X connect 2 0 3 0; +#X connect 4 0 3 0; +#X connect 5 0 10 0; +#X connect 7 0 11 0; +#X connect 11 0 10 1; +#X restore 440 127 pd define; +#X obj 10 44 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 473 11 <= click; +#N canvas 765 68 566 232 reference 0; +#X obj 7 163 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 75 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X text 96 85 symbol -; +#X obj 7 54 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 147 183 Open specific references in each subpatch detailing +each function on parent patch., f 41; +#X obj 26 18 file; +#X text 73 18 - low-level file operations; +#X text 160 86 sets the function of [file] \, possible values: handle +\, define \, mkdir \, which \, glob \, stat \, isfile \, isdirectory +\, size \, copy \, move \, delete \, split \, join \, splitext and +splitname. The default value is 'define'., f 54; +#X restore 379 12 pd reference; +#X obj 9 632 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 +0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/float-help.pd puredata-0.52.2+ds0/doc/5.reference/float-help.pd --- puredata-0.52.1+ds0/doc/5.reference/float-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/float-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,36 +1,30 @@ -#N canvas 765 108 617 572 12; -#X msg 50 168 bang; -#X obj 72 408 float 6.5; -#X floatatom 72 438 6 0 0 0 - - - 0; -#X floatatom 73 196 6 0 0 0 - - - 0; -#X floatatom 132 378 6 0 0 0 - - - 0; -#X text 44 102 The float object stores a number \, initialized by its +#N canvas 506 23 614 546 12; +#X msg 50 156 bang; +#X obj 72 396 float 6.5; +#X floatatom 72 426 6 0 0 0 - - - 0; +#X floatatom 73 184 6 0 0 0 - - - 0; +#X floatatom 132 366 6 0 0 0 - - - 0; +#X text 44 90 The float object stores a number \, initialized by its creation argument \, which may be reset using its inlet and output by sending it the "bang" message. Sending a number sets a new value and outputs it., f 71; -#X text 178 379 sets the value; -#X text 150 409 creation argument initializes the value; -#X floatatom 463 216 5 0 0 0 - - - 0; -#X text 92 167 output the value; -#X text 123 195 set and output the value; -#X obj 463 192 r float-help; -#X msg 95 254 send float-help; -#X obj 106 311 makefilename %f; -#X msg 106 287 42.23; -#X text 225 302 symbols that look like floats are converted., f 23 +#X text 178 367 sets the value; +#X text 150 397 creation argument initializes the value; +#X floatatom 463 204 5 0 0 0 - - - 0; +#X text 92 155 output the value; +#X text 123 183 set and output the value; +#X obj 463 180 r float-help; +#X msg 95 242 send float-help; +#X obj 106 299 makefilename %f; +#X msg 106 275 42.23; +#X text 225 290 symbols that look like floats are converted., f 23 ; -#X symbolatom 106 337 10 0 0 0 - - - 0; -#X text 183 337 <= type a number on a symbol box; -#X text 346 524 updated for Pd version 0.48; -#X text 36 526 see also:; -#X obj 193 527 value; -#X obj 239 527 send; -#X floatatom 464 289 5 0 0 0 - - - 0; -#X obj 464 265 v float-help; -#X obj 464 245 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X symbolatom 106 325 10 0 0 0 - - - 0; +#X text 183 325 <= type a number on a symbol box; +#X floatatom 464 277 5 0 0 0 - - - 0; +#X obj 464 253 v float-help; +#X obj 464 233 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 110 527 int; -#X obj 141 527 symbol; #N canvas 995 162 565 399 Dealing_with_"\$0" 0; #X text 36 33 '\$0' - the patch ID number used to force locality in Pd - is widely used in send and receive names \, speacially in abstractions @@ -45,7 +39,7 @@ #X obj 288 192 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; #X floatatom 288 256 5 0 0 0 - - - 0; -#X floatatom 390 221 5 0 0 0 - #0-x - 0; +#X floatatom 390 221 5 0 0 0 - \$0-x - 0; #X msg 44 254 send \$1; #X obj 44 200 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; @@ -65,23 +59,65 @@ #X connect 11 0 12 0; #X connect 12 0 10 0; #X connect 13 0 1 0; -#X restore 383 466 pd Dealing_with_"\$0"; -#X floatatom 464 321 5 0 0 0 - float-help - 0; -#X text 510 321 <= right click for properties, f 10; -#X text 213 248 send to a named object such as a GUI \, a receive or +#X restore 383 454 pd Dealing_with_"\$0"; +#X floatatom 464 309 5 0 0 0 - float-help - 0; +#X text 510 309 <= right click for properties, f 10; +#X text 213 236 send to a named object such as a GUI \, a receive or value objects =>, f 34; -#X text 196 453 open subpatch to see how to deal with '\$0' ======> +#X text 196 441 open subpatch to see how to deal with '\$0' ======> , f 25; -#X obj 64 17 float; -#X text 106 16 - store a (floating point) number; -#X obj 64 45 f; -#X text 96 46 - abbreviation; -#X msg 85 223 10.5 12.9 A; -#X obj 72 468 print float; -#X text 171 223 list gets truncated to the first item; +#X msg 85 211 10.5 12.9 A; +#X obj 72 456 print float; +#X text 171 211 list gets truncated to the first item; +#X obj 11 70 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 28 12 float; +#X text 70 11 - store a (floating point) number; +#X obj 28 40 f; +#X text 60 41 - abbreviation; +#N canvas 730 175 579 381 reference 0; +#X text 34 196 send -; +#X obj 8 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 275 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 312 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 349 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 34 18 float; +#X obj 7 238 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 143 285 float - the stored value., f 49; +#X text 143 250 float - store the value (no output)., f 49; +#X text 147 196 send the stored value to a [receive] or [value] object +that has the same name as the symbol (no output)., f 55; +#X text 91 110 float - store and output the value., f 63; +#X text 98 91 bang - output the stored value., f 62; +#X text 76 17 - store a (floating point) number.; +#X text 84 165 symbol -; +#X text 98 130 list -; +#X text 147 130 considers the first element if it's a float \, stores +and outputs it.; +#X text 147 164 symbols that look like a float are converted \, stored +and output., f 55; +#X obj 7 84 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 143 323 1) float - initially stored value (default 0)., f +49; +#X restore 437 35 pd reference; +#X text 531 35 <= click; +#X text 393 511 updated for Pd version 0.48; +#X text 17 511 see also:; +#X obj 174 512 value; +#X obj 220 512 send; +#X obj 91 512 int; +#X obj 122 512 symbol; +#X obj 4 496 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 0 0 1 0; #X connect 1 0 2 0; -#X connect 2 0 37 0; +#X connect 2 0 27 0; #X connect 3 0 1 0; #X connect 4 0 1 1; #X connect 11 0 8 0; @@ -89,6 +125,6 @@ #X connect 13 0 16 0; #X connect 14 0 13 0; #X connect 16 0 1 0; -#X connect 23 0 22 0; -#X connect 24 0 23 0; -#X connect 36 0 1 0; +#X connect 19 0 18 0; +#X connect 20 0 19 0; +#X connect 26 0 1 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/framp~-help.pd puredata-0.52.2+ds0/doc/5.reference/framp~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/framp~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/framp~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,39 +1,69 @@ -#N canvas 710 127 750 388 12; -#X text 84 173 frequency; -#X floatatom 30 180 7 0 0 0 - - - 0; -#X floatatom 30 72 4 0 63 0 - - - 0; -#X text 84 190 in Hz.; -#X obj 30 243 rfft~; -#X obj 30 155 / 64; -#X msg 180 185 \; pd dsp 1; -#X obj 49 21 framp~; -#X text 112 20 - estimate frequency and amplitude of FFT components +#N canvas 487 41 685 403 12; +#X text 84 166 frequency; +#X floatatom 30 173 7 0 0 0 - - - 0; +#X floatatom 30 65 5 0 63 0 - - - 0; +#X text 84 183 in Hz.; +#X obj 30 236 rfft~; +#X obj 30 148 / 64; +#X msg 178 168 \; pd dsp 1; +#X obj 29 14 framp~; +#X text 82 13 - estimate frequency and amplitude of FFT components ; -#X obj 28 277 framp~; -#X obj 103 336 print~ frequency; -#X obj 118 311 print~ amplitude; -#X obj 30 211 osc~; -#X text 304 104 Framp~ takes as input a rectangular-windowed FFT and +#X obj 28 270 framp~; +#X obj 103 329 print~ frequency; +#X obj 118 304 print~ amplitude; +#X obj 30 204 osc~; +#X text 304 87 Framp~ takes as input a rectangular-windowed FFT and outputs \, for each FFT channel \, the estimated amplitude and frequency of any component feeding that channel. A sinusoidal component should appear in four components (or three in the special case of a sinusoid exactly tuned to a bin.) Frequency output is in bins \, i.e. \, units -of SR/N.; -#X text 80 70 frequency in bins (< 63); -#X obj 30 97 t f b; -#X obj 62 128 samplerate~; -#X obj 30 127 *; -#X text 491 330 updated for Pd version 0.47; -#X text 304 216 The estimation is done according to the hop-1 trick +of SR/N., f 50; +#X text 75 65 frequency in bins (< 63); +#X obj 30 90 t f b; +#X obj 62 121 samplerate~; +#X obj 30 120 *; +#X text 465 369 updated for Pd version 0.47; +#X text 304 198 The estimation is done according to the hop-1 trick described in Puckette&Brown \, Accuracy of Frequency Estimates Using the Phase Vocoder \, using a Hann window. A more sophisticated version -of this technique is used in the sigmund~ object.; -#X obj 103 263 bng 20 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +of this technique is used in the sigmund~ object., f 50; +#X obj 103 256 bng 20 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X text 129 264 <= print analysis; -#X obj 180 161 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X text 129 257 <= print analysis; +#X obj 178 144 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 203 160 DSP on/off; +#X text 201 143 DSP on/off; +#X obj 11 48 cnv 1 667 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 791 141 463 297 reference 0; +#X text 190 246 NONE; +#X obj 20 51 cnv 5 430 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 19 270 cnv 5 430 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 21 146 cnv 2 430 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 18 81 cnv 1 430 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 19 169 cnv 1 430 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 18 112 cnv 1 430 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 19 200 cnv 1 430 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 20 238 cnv 2 430 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X obj 33 17 framp~; +#X text 100 87 signal - real part of FFT.; +#X text 100 117 signal - imaginary part of FFT.; +#X text 100 176 signal - estimated frequency of bin.; +#X text 100 207 signal - estimated amplitude of bin.; +#X text 86 16 - estimate frequency and amplitude of FFT.; +#X restore 499 13 pd reference; +#X text 597 14 <= click; +#X obj 11 360 cnv 1 667 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 1 0 12 0; #X connect 2 0 15 0; #X connect 4 0 9 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/fudiformat-help.pd puredata-0.52.2+ds0/doc/5.reference/fudiformat-help.pd --- puredata-0.52.1+ds0/doc/5.reference/fudiformat-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/fudiformat-help.pd 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ -#N canvas 655 30 621 579 12; -#X msg 95 219 1 2 3; -#X obj 79 371 fudiparse; -#X obj 99 332 print packet; -#X msg 261 395 disconnect; -#X obj 241 423 netsend -u -b; -#X msg 250 367 connect localhost 5000; -#X obj 241 317 list prepend send; -#X obj 241 342 list trim; -#X obj 89 407 print reassembled; -#X text 339 394 don't send; -#X text 416 366 send as UDP; -#X text 69 532 see also:; -#X obj 142 533 fudiparse; -#X obj 79 272 fudiformat; -#X msg 79 180 foo 4 5 weasel 6 7 rat; -#X text 85 137 FUDI messages with numbers and symbols., f 20; -#X obj 424 268 fudiformat -u; -#X obj 215 533 oscformat; -#X text 281 162 The '-u' creation argument switches to "UDP" mode \, -omitting the packet separator. This saves some two bytes \, but only -works when sending single FUDI messages over UDP. It doesn't work with -TCP/IP (however \, you can use the default format even with UDP transport). -, f 42; -#X text 356 532 updated for Pd version 0.48.0; -#X text 53 53 FUDI stands for "Fast Universal Digital Interface" and -is a networking protocol used by Pd. The fudiformat object makes FUDI -messages suitable for sending over the network via netsend (in UDP -mode). Incoming messages are output as FUDI messages \, byte by byte. -, f 74; -#X obj 64 19 fudiformat; -#X text 149 18 - convert lists to FUDI packets; -#X obj 79 448 list; -#X listbox 79 477 25 0 0 0 - - - 0; -#X connect 0 0 13 0; -#X connect 1 0 8 0; -#X connect 1 0 23 0; -#X connect 3 0 4 0; -#X connect 5 0 4 0; -#X connect 6 0 7 0; -#X connect 7 0 4 0; -#X connect 13 0 6 0; -#X connect 13 0 2 0; -#X connect 13 0 1 0; -#X connect 14 0 13 0; -#X connect 23 0 24 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/fudi-format-parse-help.pd puredata-0.52.2+ds0/doc/5.reference/fudi-format-parse-help.pd --- puredata-0.52.1+ds0/doc/5.reference/fudi-format-parse-help.pd 1970-01-01 00:00:00.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/fudi-format-parse-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -0,0 +1,101 @@ +#N canvas 316 34 935 503 12; +#X msg 69 365 disconnect; +#X obj 49 393 netsend -u -b; +#X msg 58 337 connect localhost 5000; +#X obj 49 279 list prepend send; +#X obj 49 304 list trim; +#X text 147 364 don't send; +#X text 221 337 send as UDP; +#X text 37 468 see also:; +#X msg 49 209 foo 4 5 weasel 6 7 rat; +#X text 55 166 FUDI messages with numbers and symbols., f 20; +#X obj 113 469 oscformat; +#X text 693 470 updated for Pd version 0.48.0; +#X obj 31 10 fudiformat; +#X text 116 9 - convert messages to FUDI packets; +#X obj 49 241 fudiformat -u; +#X obj 376 366 print parse-output; +#X obj 492 220 netreceive -u -b; +#X msg 492 165 listen 5000; +#X msg 504 193 listen 0; +#X text 571 192 stop listening; +#X msg 256 193 1 2 3 foo 5; +#X text 489 141 packets from network; +#X text 618 215 UDP packets \, binary output, f 13; +#X obj 256 218 fudiformat; +#X obj 356 218 fudiformat -u; +#X text 356 156 without packet separator, f 14; +#X text 579 165 listen on port 5000; +#X obj 356 396 list; +#X listbox 356 420 24 0 0 0 - - - 0; +#X listbox 356 279 76 0 0 0 - - - 0; +#X obj 356 336 fudiparse -u; +#X obj 375 305 print packet; +#X msg 356 193 1 2 3 foo 5; +#X text 20 73 FUDI stands for "Fast Universal Digital Interface" and +is a networking protocol used by Pd. The fudiformat object makes FUDI +messages suitable for sending over the network via netsend (in UDP +mode). Incoming messages are output as FUDI messages \, byte by byte. +The '-u' creation argument switches to "UDP" mode \, omitting the packet +separator. This saves some two bytes \, but only works when sending +single FUDI messages over UDP. It doesn't work with TCP/IP (however +\, you can use the default format even with UDP transport)., f 125 +; +#X obj 31 34 fudiparse; +#X text 116 34 - parse FUDI packets into Pd messages; +#X text 545 319 The fudiparse object takes incoming lists of numbers +\, interpreting them as the bytes in a FUDI message (as received when +sending Pd-messages via [netreceive -b])., f 43; +#N canvas 796 143 531 433 reference 0; +#X obj 8 52 cnv 5 500 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 100 cnv 2 500 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 7 195 cnv 5 500 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 28 19 fudiformat; +#X text 113 18 - convert messages to FUDI packets; +#X text 83 66 anything - any message to convert to a FUDI packet.; +#X text 118 110 list - converted FUDI packet., f 42; +#X text 131 170 '-u': switches to "UDP" mode, f 31; +#X obj 7 292 cnv 5 500 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 7 335 cnv 2 500 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 6 404 cnv 5 500 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 28 261 fudiparse; +#X text 113 261 - parse FUDI packets into Pd messages; +#X text 128 306 list - FUDI packet to convert to Pd messages.; +#X text 100 345 anything - Pd messages., f 42; +#X obj 8 372 cnv 2 500 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X text 160 381 NONE; +#X obj 7 163 cnv 1 500 1 empty empty flag: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 7 137 cnv 2 500 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X restore 734 25 pd reference; +#X text 828 25 <= click; +#X obj 6 453 cnv 1 920 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 7 63 cnv 1 920 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X connect 0 0 1 0; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 4 0 1 0; +#X connect 8 0 14 0; +#X connect 14 0 3 0; +#X connect 16 0 29 0; +#X connect 17 0 16 0; +#X connect 18 0 16 0; +#X connect 20 0 23 0; +#X connect 23 0 29 0; +#X connect 24 0 29 0; +#X connect 27 0 28 0; +#X connect 29 0 30 0; +#X connect 29 0 31 0; +#X connect 30 0 15 0; +#X connect 30 0 27 0; +#X connect 32 0 24 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/fudiparse-help.pd puredata-0.52.2+ds0/doc/5.reference/fudiparse-help.pd --- puredata-0.52.1+ds0/doc/5.reference/fudiparse-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/fudiparse-help.pd 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ -#N canvas 681 73 605 469 12; -#X obj 136 333 fudiparse; -#X text 330 377 see also:; -#X obj 156 363 print parse-output; -#X obj 272 217 netreceive -u -b; -#X msg 272 162 listen 5000; -#X msg 284 190 listen 0; -#X text 351 189 stop listening; -#X msg 36 190 1 2 3 foo 5; -#X text 35 150 numbers and symbols, f 11; -#X obj 155 302 print packet; -#X text 269 138 packets from network; -#X text 398 212 UDP packets \, binary output, f 13; -#X obj 36 215 fudiformat; -#X obj 137 215 fudiformat -u; -#X text 137 153 without packet separator, f 14; -#X msg 137 190 flab -1 1.1; -#X obj 403 378 fudiformat; -#X obj 487 378 oscparse; -#X text 359 162 listen on port 5000; -#X text 336 411 updated for Pd version 0.48.0; -#X text 27 55 FUDI stands for "Fast Universal Digital Interface" and -is a networking protocol used by Pd. The fudiparse object takes incoming -lists of numbers \, interpreting them as the bytes in a FUDI message -(as received when sending Pd-messages via [netreceive -b]). The '-u' -creation argument switches to "UDP" mode \, omitting the packet separator. -, f 79; -#X obj 53 16 fudiparse; -#X text 129 16 - parse FUDI packets into Pd messages, f 49; -#X obj 136 393 list; -#X listbox 136 417 20 0 0 0 - - - 0; -#X listbox 136 276 61 0 0 0 - - - 0; -#X connect 0 0 2 0; -#X connect 0 0 23 0; -#X connect 3 0 25 0; -#X connect 4 0 3 0; -#X connect 5 0 3 0; -#X connect 7 0 12 0; -#X connect 12 0 25 0; -#X connect 13 0 25 0; -#X connect 15 0 13 0; -#X connect 23 0 24 0; -#X connect 25 0 0 0; -#X connect 25 0 9 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/gatom-help.pd puredata-0.52.2+ds0/doc/5.reference/gatom-help.pd --- puredata-0.52.1+ds0/doc/5.reference/gatom-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/gatom-help.pd 1970-01-01 00:00:00.000000000 +0000 @@ -1,421 +0,0 @@ -#N canvas 485 57 1040 688 12; -#X msg 79 455 set 45; -#X floatatom 139 498 5 0 0 0 - - - 0; -#X symbolatom 69 17 10 0 0 0 - - - 0; -#X floatatom 25 17 5 0 0 0 - - - 0; -#X text 809 179 more details:; -#X symbolatom 620 172 15 0 0 0 - - - 0; -#X msg 636 112 set hi; -#X msg 620 84 symbol hello\ world; -#X obj 620 205 print symbol_box; -#X obj 139 533 print number_box; -#X msg 139 455 bang; -#X msg 650 142 bang; -#X msg 188 455 12; -#N canvas 450 199 417 455 properties 0; -#N canvas 804 125 490 506 width 0; -#X floatatom 281 445 1 0 0 0 - - - 0; -#X floatatom 173 183 5 0 0 0 - - - 0; -#X text 219 184 <= default (5 characters); -#X floatatom 215 384 0 0 0 0 - - - 0; -#X msg 158 347 1; -#X msg 215 347 -1.2345e+12; -#X msg 187 152 100; -#X msg 173 126 -100000; -#X msg 161 102 100000; -#X floatatom 173 213 7 0 0 0 - - - 0; -#X text 232 214 <= width of 7; -#X text 99 438 A width of one gives a clickable toggle switch, f 23 -; -#X text 299 446 <= click; -#X text 115 385 width of 0 =>; -#X text 42 22 The width is 5 characters by default. The number box -fails to display numbers with more characters and only gives you its -sign instead. Hence \, you need to increase the width to display it -properly.; -#X text 42 249 Note that if you select a width of 0 \, the number box -will actually have a minimum width of 3 digits and grow as needed to -hold the typed or received number. A specific width is more CPU efficient -though., f 58; -#X connect 1 0 9 0; -#X connect 4 0 3 0; -#X connect 5 0 3 0; -#X connect 6 0 1 0; -#X connect 7 0 1 0; -#X connect 8 0 1 0; -#X restore 190 171 pd width; -#X floatatom 73 79 5 0 0 0 - - - 0; -#X text 116 78 <= right click for properties; -#N canvas 795 289 419 235 label 0; -#X floatatom 180 118 5 -10 10 0 left-label - - 0; -#X floatatom 237 118 5 -10 10 2 top-label: - - 0; -#X floatatom 237 152 5 -10 10 3 bottom-label: - - 0; -#X floatatom 108 152 5 -10 10 1 right-label - - 0; -#X text 86 40 You can give it a label and place it in 4 different preset -positions:, f 36; -#X restore 190 234 pd label; -#N canvas 789 217 438 400 send/receive 0; -#X floatatom 130 310 5 0 0 0 - \$0-number - 0; -#X floatatom 126 133 5 0 0 0 - - - 0; -#X obj 130 348 print; -#X floatatom 130 199 5 0 0 0 - - \$0-number 0; -#X text 181 197 <= send symbol \$0-number; -#X text 181 311 <= receive symbol \$0-number; -#X text 51 25 The properties also allows you to set a send and receive -symbol \, in which cases the inlet/outlet are removed (so no connections -are possible anymore). This way \, the object can communicate to [send] -and [receive] objects., f 49; -#X obj 129 235 receive \$0-number; -#X obj 126 164 send \$0-number; -#X floatatom 129 273 5 0 0 0 - - - 0; -#X connect 0 0 2 0; -#X connect 1 0 8 0; -#X connect 7 0 9 0; -#X restore 142 305 pd send/receive; -#X text 41 22 You can right click on the object and ask for the properties -window to change its parameters., f 47; -#X text 54 124 The subpatches below offer details on each parameter -from the properties window., f 43; -#N canvas 779 178 525 491 limits 0; -#X floatatom 197 158 5 -10 10 0 - - - 0; -#X msg 197 119 100; -#X text 71 158 click and drag =>; -#X text 244 158 (range from -10 to 10); -#X text 44 27 By default \, the number box has no range limits \, but -you can define a range with a lower and upper limit values. Note that -this limit is only for clicking and dragging. Numbers outside this -range are accepted if you type it in or receive it via the inlet.; -#X msg 235 119 set -100; -#X text 71 174 and also type a value outside the range, f 15; -#X obj 197 201 print number-range; -#X floatatom 86 427 0 0 0 0 - - - 0; -#X floatatom 216 427 0 0 0 0 - - - 0; -#X msg 86 350 bang; -#X text 70 254 Setting the lower and upper range to the same value -(like "0" \, "0" - the default) removes the limit. Note that a ridiculously -large number becomes infinity (negative infinity is also possible). -The number box will display these and also 'NaN' (Not a Number)., -f 55; -#X obj 86 385 expr pow(2 \, 1e+10) \; -pow(2 \, 1e+10); -#X floatatom 307 427 0 0 0 0 - - - 0; -#X msg 307 350 bang; -#X obj 307 388 expr log(-1); -#X text 125 351 infinity; -#X text 345 350 nan; -#X connect 0 0 7 0; -#X connect 1 0 0 0; -#X connect 5 0 0 0; -#X connect 10 0 12 0; -#X connect 12 0 8 0; -#X connect 12 1 9 0; -#X connect 14 0 15 0; -#X connect 15 0 13 0; -#X restore 183 202 pd limits; -#N canvas 721 346 450 298 loading-args 0; -#X floatatom 224 229 5 0 0 0 \$0-label - - 0; -#X text 63 114 For instance \, below \, we have \$0 used in the label -field \, which gets expanded to the patch ID number. Using something -like "\$1" is useful if you're using the object in an abstraction \, -then you can load a value passed as an argument into a parameter., -f 49; -#X text 63 25 Note that all the parameters that you can set by inserting -a number or symbol into a field in the properties window can also load -dollar sign arguments (\$0 \, \$1 \, \$2 \, and so on). Namely \, these -parameters are: width \, lower/upper limits \, label and send/receive -symbols., f 49; -#X restore 149 373 pd loading-args; -#X text 61 343 Loading arguments in properties:; -#N canvas 795 289 512 333 size 0; -#X floatatom 247 217 5 0 0 0 label - - 36; -#X text 70 43 By default \, when you create a box \, it'll use the -font size that your patch is using. In this case it is "12". You can -change the size settings in the properties. The 'auto' setting (the -default) also automatically changes the font size of the atom box if -you change your patch's font. In other cases \, it uses a specific -font and keeps it no matter if you change the patch's font or not. -Below \, we have a size of "36". The font setting also affects the -label., f 56; -#X restore 196 267 pd size; -#X restore 303 464 pd properties; -#N canvas 635 260 459 438 properties 0; -#N canvas 934 145 510 501 width 0; -#X symbolatom 162 162 10 0 0 0 - - - 0; -#X text 238 163 <= default (10 characters); -#X symbolatom 162 192 15 0 0 0 - - - 0; -#X text 275 193 <= width of 15; -#X msg 120 101 symbol a\ long\ symbol; -#X msg 162 130 symbol short; -#X msg 180 364 symbol a\ long\ symbol; -#X symbolatom 243 427 0 0 0 0 - - - 0; -#X msg 243 393 symbol a; -#X text 54 22 By default the width is 10 characters. If the symbol -box tries to display a larger symbol \, it gets truncated and the last -displayed character is ">".; -#X text 58 247 Note that if you select a width of 0 \, the symbol box -will actually have a minimum width of 3 characters and grow as needed -to hold the typed or received symbol - A specific width is more CPU -efficient though.; -#X connect 0 0 2 0; -#X connect 4 0 0 0; -#X connect 5 0 0 0; -#X connect 6 0 7 0; -#X connect 8 0 7 0; -#X restore 233 216 pd width; -#X text 171 77 <= right click for properties; -#N canvas 903 345 354 184 label 0; -#X symbolatom 126 81 10 0 0 0 left-label - - 0; -#X symbolatom 57 113 10 0 0 1 right-label - - 0; -#X symbolatom 224 81 10 0 0 2 top-label - - 0; -#X symbolatom 224 113 10 0 0 3 bottom-label - - 0; -#X text 57 19 You can give it a label and place it in 4 different preset -positions:, f 35; -#X restore 233 248 pd label; -#N canvas 979 272 457 442 send/receive 0; -#X obj 105 374 print; -#X symbolatom 101 131 10 0 0 0 - - - 0; -#X symbolatom 100 221 10 0 0 0 - - \$0-symbol 0; -#X text 179 220 <= send symbol: \$0-symbol; -#X text 184 335 <= receive symbol: \$0-symbol; -#X symbolatom 105 336 10 0 0 0 - \$0-symbol - 0; -#X text 55 28 The properties also allows you to set a send and receive -symbol \, in which cases the inlet/outlet are removed (so no connections -are possible anymore). This way \, the object can communicate to [send] -and [receive] objects., f 49; -#X obj 101 168 send \$0-symbol; -#X obj 101 259 receive \$0-symbol; -#X symbolatom 101 293 10 0 0 0 - - - 0; -#X connect 1 0 7 0; -#X connect 5 0 0 0; -#X connect 8 0 9 0; -#X restore 185 309 pd send/receive; -#X symbolatom 86 77 10 0 0 0 - - - 0; -#X text 69 22 You can right click on the object and ask for the properties -window to change its parameters., f 47; -#X text 43 122 The subpatches below offer details on each parameter -from the properties window. The properties window is the same as the -number box's and the behaviour is basically the same. One main difference -is that the "limits" are not valid for the symbol box., f 53; -#N canvas 912 421 450 289 loading-args 0; -#X text 61 114 For instance \, below \, we have \$0 used in the label -field \, which gets expanded to the patch ID number. Using something -like "\$1" is useful if you're using the object in an abstraction \, -then you can load a value passed as an argument into a parameter., -f 49; -#X symbolatom 220 228 10 0 0 0 \$0-label - - 0; -#X text 61 25 Note that all the parameters that you can set by inserting -a number or symbol into a field in the properties window can also load -dollar sign arguments (\$0 \, \$1 \, \$2 \, and so on). Namely \, these -parameters are: width \, label and send/receive symbols., f 49; -#X restore 196 387 pd loading-args; -#X text 108 357 Loading arguments in properties:; -#N canvas 795 289 688 310 size 0; -#X text 90 44 By default \, when you create a box \, it'll use the -font size that your patch is using. In this case it is "12". You can -change the size settings in the properties. The 'auto' setting (the -default) also automatically changes the font size of the atom box if -you change your patch's font. In other cases \, it uses a specific -font and keeps it no matter if you change the patch's font or not. -Below \, we have a size of "36". The font setting also affects the -label., f 74; -#X symbolatom 185 186 20 0 0 0 label - - 36; -#X restore 240 277 pd size; -#X restore 809 202 pd properties; -#X text 303 438 more details:; -#X obj 131 576 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12 -#fcfcfc #000000 #000000 0 256; -#X text 205 577 <= number box from "iemguis"; -#X text 53 588 See also:; -#X obj 131 600 tgl 18 0 empty empty empty 17 7 0 10 #fcfcfc #000000 -#000000 0 1; -#X text 155 601 <= toggle from "iemguis"; -#X listbox 149 16 20 0 0 0 - - - 0; -#X text 299 16 - objects to display and edit numbers \, symbols \, -or lists.; -#X text 499 46 Symbol boxes are like number boxes but hold a symbol -instead of a number:, f 61; -#X text 771 82 set and output a symbol; -#X text 693 116 set only - don't output; -#X text 688 140 output only - don't change value; -#X text 19 59 These are GUI (Graphical User Interface) objects that -display and send atoms (numbers or symbols) or lists. They may be created -by selecting "number" (etc.) from the "put" menu. The contents can -be changed while the patch in in "run" mode (as opposed to "edit") -\, so these are useful as controls and displays in a finished patch. -, f 62; -#X text 491 248 Symbols with special characters (space \, comma \, -semicolon \, backslash \, dollar signs) are displayed with a preceding -backslash ( \ ) \, the same way you would type a symbol into a message -or object box., f 70; -#X text 490 313 List boxes may hold arbitrary combinations of numbers -and symbols:, f 66; -#X msg 496 367 1 2 3 foo 5; -#X listbox 496 566 20 0 0 0 - - - 0; -#X obj 496 600 print list_box; -#X msg 510 406 list wombat weasel wallaby; -#X text 591 360 messages beginning with a number are implicitly understood -as lists, f 35; -#X text 711 395 lists starting with a symbol must be preceeded by the -word "list" to disambiguate them, f 32; -#X msg 519 453 set 4 dog 5 6 donkey; -#X text 672 448 "set" message changes contents but doesn't output them -, f 30; -#X msg 535 522 bang; -#X text 585 493 "bang" is equivalent to an empty list in Pd \, but -as a special case banging a list box outputs the current list. If you -really want to display an empty list \, you can use a "set" message. -, f 53; -#X msg 526 492 set; -#X text 75 638 updated for Pd version 0.52; -#X text 713 617 more details:; -#N canvas 681 258 459 477 properties 0; -#N canvas 934 145 512 490 width 0; -#X msg 132 130 symbol short; -#X listbox 201 411 0 0 0 0 - - - 0; -#X listbox 132 192 10 0 0 0 - - - 0; -#X listbox 132 162 20 0 0 0 - - - 0; -#X text 284 161 <= default (20 characters); -#X msg 90 101 list 1 2 3 4 5 6 7 8 9 10 11 12; -#X msg 201 377 1; -#X text 58 247 Note that if you select a width of 0 \, the list box -will actually have a minimum width of 3 characters and grow as needed -to hold the typed or received symbol. A specific width is more CPU -efficient though.; -#X msg 138 348 list 1st\ item 2nd/ item; -#X text 54 23 By default the width is 20 characters. If the list box -tries to display a larger symbol \, it gets truncated and the last -displayed character is ">".; -#X text 212 193 <= width of 10; -#X connect 0 0 3 0; -#X connect 3 0 2 0; -#X connect 5 0 3 0; -#X connect 6 0 1 0; -#X connect 8 0 1 0; -#X restore 233 216 pd width; -#X text 206 76 <= right click for properties; -#N canvas 903 345 444 319 label 0; -#X text 87 23 You can give it a label and place it in 4 different preset -positions:, f 35; -#X listbox 131 97 20 0 0 0 left-label - - 0; -#X listbox 133 150 20 0 0 2 top-label - - 0; -#X listbox 134 190 20 0 0 1 right-label - - 0; -#X listbox 135 229 20 0 0 3 bottom-label - - 0; -#X restore 233 279 pd label; -#N canvas 979 272 531 449 send/receive 0; -#X obj 108 371 print; -#X text 55 28 The properties also allows you to set a send and receive -symbol \, in which cases the inlet/outlet are removed (so no connections -are possible anymore). This way \, the object can communicate to [send] -and [receive] objects., f 58; -#X listbox 104 128 20 0 0 0 - - - 0; -#X listbox 103 218 20 0 0 0 - - \$0-list 0; -#X listbox 108 333 20 0 0 0 - \$0-list - 0; -#X listbox 104 290 20 0 0 0 - - - 0; -#X obj 104 165 send \$0-list; -#X obj 104 256 receive \$0-list; -#X text 254 217 <= send symbol: \$0-list; -#X text 259 333 <= receive symbol: \$0-list; -#X connect 2 0 6 0; -#X connect 4 0 0 0; -#X connect 7 0 5 0; -#X restore 185 340 pd send/receive; -#X text 69 22 You can right click on the object and ask for the properties -window to change its parameters., f 47; -#X text 43 122 The subpatches below offer details on each parameter -from the properties window. The properties window is the same as the -number box's and the behaviour is basically the same. One main difference -is that the "limits" are not valid for the symbol box., f 53; -#N canvas 912 421 450 289 loading-args 0; -#X text 61 114 For instance \, below \, we have \$0 used in the label -field \, which gets expanded to the patch ID number. Using something -like "\$1" is useful if you're using the object in an abstraction \, -then you can load a value passed as an argument into a parameter., -f 49; -#X text 61 25 Note that all the parameters that you can set by inserting -a number or symbol into a field in the properties window can also load -dollar sign arguments (\$0 \, \$1 \, \$2 \, and so on). Namely \, these -parameters are: width \, label and send/receive symbols., f 49; -#X listbox 203 236 20 0 0 0 \$0-label - - 0; -#X restore 196 418 pd loading-args; -#X text 108 388 Loading arguments in properties:; -#N canvas 795 289 688 310 size 0; -#X text 90 44 By default \, when you create a box \, it'll use the -font size that your patch is using. In this case it is "12". You can -change the size settings in the properties. The 'auto' setting (the -default) also automatically changes the font size of the atom box if -you change your patch's font. In other cases \, it uses a specific -font and keeps it no matter if you change the patch's font or not. -Below \, we have a size of "36". The font setting also affects the -label., f 74; -#X listbox 179 184 20 0 0 0 label - - 36; -#X restore 240 308 pd size; -#X listbox 56 76 20 0 0 0 - - - 0; -#N canvas 779 178 532 590 limits 0; -#X text 71 178 click and drag =>; -#X text 279 173 (range from -10 to 10), f 12; -#X text 71 194 and also type a value outside the range, f 15; -#X obj 197 221 print number-range; -#X msg 154 383 bang; -#X text 293 422 infinity; -#X text 32 22 By default \, the list box has no range limits \, but -you can define a range with a lower and upper limit values. Ths is -just like the number box and affects numbers only. Note that this limit -is only for clicking and dragging. Numbers outside this range are accepted -if you type it in or receive it via the inlet., f 64; -#X listbox 197 178 10 -10 10 0 - - - 0; -#X msg 212 147 set -100 100; -#X msg 197 119 -100 100; -#X text 70 277 Setting the lower and upper range to the same value -(like "0" \, "0" - the default) removes the limit. Note that a ridiculously -large number becomes infinity (negative infinity is also possible). -The list box will display these and also 'NaN' (Not a Number)., f -55; -#X obj 154 418 expr pow(2 \, 1e+10) \; -pow(2 \, 1e+10) \; log(-1) -; -#X listbox 186 523 20 -10 10 0 - - - 0; -#X obj 186 482 pack f f f; -#X text 295 442 nan; -#X connect 4 0 11 0; -#X connect 7 0 3 0; -#X connect 8 0 7 0; -#X connect 9 0 7 0; -#X connect 11 0 13 0; -#X connect 11 1 13 1; -#X connect 11 2 13 2; -#X connect 13 0 12 0; -#X restore 227 248 pd limits; -#X restore 819 616 pd properties; -#X text 19 151 Double-clicking activates a text editor \, so that you -can select portions of the contents and/or cut/copy/paste values and -hit enter when done. You may also simply single-click and enter the -new contents from scratch. If you start retyping with a single click -you can cancel the action by clicking outside the box \, or adopt the -change using the "enter" key., f 62; -#X text 19 310 If you click on a number box while pressing "control" -(in Linux/Windows) or "command" (Mac) \, the object toggles between -0 and a non zero value. The non zero value is the last non zero value -that the box holds (by default \, this value is "1")., f 62; -#X text 19 242 You can also change a numeric value upward or downward -by clicking and dragging. Shift-click changes the value in hundredths -instead of units. This works for both number boxes and individual numbers -in a list box., f 62; -#X text 20 499 click and drag; -#X text 19 376 If they receive a proper message (like float for number -box) \, they get displayed and pass through. A "set" message updates -but doesn't output. A bang outputs its holding value., f 62; -#X text 184 499 or shift+click and drag; -#X text 648 559 you can drag the numbers up and down individually \, -and/or double click to edit just one element., f 50; -#X connect 0 0 1 0; -#X connect 1 0 9 0; -#X connect 5 0 8 0; -#X connect 6 0 5 0; -#X connect 7 0 5 0; -#X connect 10 0 1 0; -#X connect 11 0 5 0; -#X connect 12 0 1 0; -#X connect 30 0 31 0; -#X connect 31 0 32 0; -#X connect 33 0 31 0; -#X connect 36 0 31 0; -#X connect 38 0 31 0; -#X connect 40 0 31 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/get-help.pd puredata-0.52.2+ds0/doc/5.reference/get-help.pd --- puredata-0.52.1+ds0/doc/5.reference/get-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/get-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,72 +1,104 @@ #N struct help-get-template1 float x float y symbol s; -#N canvas 558 56 631 652 12; -#X text 46 582 see also:; -#X obj 205 584 set; -#X obj 240 584 append; -#X obj 42 612 getsize; -#X obj 110 612 setsize; -#X obj 178 612 element; -#X msg 80 123 next; +#N canvas 597 23 539 654 12; +#X text 22 600 see also:; +#X obj 165 600 set; +#X obj 200 600 append; +#X obj 25 626 getsize; +#X obj 84 626 setsize; +#X obj 142 626 element; +#X msg 65 128 next; #N canvas 292 338 470 126 help-get-template1 0; #X obj 85 70 filledpolygon 9 0 1 0 0 20 0 20 30 0 30; #X obj 61 25 struct help-get-template1 float x float y symbol s; -#X restore 449 514 pd help-get-template1; -#N canvas 189 229 276 156 help-get-data 1; +#X restore 368 519 pd help-get-template1; +#N canvas 342 225 276 156 help-get-data 0; #X scalar help-get-template1 46 23 dog \;; #X scalar help-get-template1 106 73 cat \;; -#X restore 449 492 pd help-get-data; -#X obj 50 14 get; -#X msg 65 95 traverse pd-help-get-data \, next; -#X floatatom 65 204 5 0 0 0 - - -; -#X floatatom 161 204 5 0 0 0 - - -; -#X obj 65 150 pointer; -#X text 296 95 output first scalar in list; -#X text 123 122 output next item; -#X text 278 163 First argument selects template.; -#X text 278 179 Remaining args are names of fields.; -#X text 61 220 x output; -#X text 159 221 y output; -#X obj 138 584 pointer; -#X obj 246 612 struct; -#X obj 65 178 get help-get-template1 x y s; -#X text 254 222 s output; -#X symbolatom 258 204 6 0 0 0 - - -; -#X obj 138 151 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X msg 404 253 traverse pd-help-get-data \, next, f 17; -#X obj 404 309 pointer; -#X msg 124 436 traverse pd-help-get-data \, next; -#X obj 124 462 pointer; -#X obj 124 545 get; -#X msg 139 487 set help-get-template1 x; -#X msg 147 512 set - y; -#X obj 404 335 get - x; -#X floatatom 404 360 5 0 0 0 - - -; -#X text 403 604 updated for Pd version 0.47; -#X text 37 376 If there are zero or one data fields specified \, you +#X restore 368 497 pd help-get-data; +#X obj 26 13 get; +#X msg 50 100 traverse pd-help-get-data \, next; +#X floatatom 50 209 5 0 0 0 - - - 0; +#X floatatom 146 209 5 0 0 0 - - - 0; +#X obj 50 155 pointer; +#X text 281 100 output first scalar in list; +#X text 108 127 output next item; +#X text 263 168 First argument selects template.; +#X text 46 225 x output; +#X text 144 226 y output; +#X obj 98 600 pointer; +#X obj 201 626 struct; +#X obj 50 183 get help-get-template1 x y s; +#X text 239 227 s output; +#X symbolatom 243 209 6 0 0 0 - - - 0; +#X obj 123 156 bng 15 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#000000; +#X msg 383 270 traverse pd-help-get-data \, next, f 17; +#X obj 383 326 pointer; +#X msg 103 441 traverse pd-help-get-data \, next; +#X obj 103 467 pointer; +#X obj 103 550 get; +#X msg 118 492 set help-get-template1 x; +#X msg 126 517 set - y; +#X obj 383 352 get - x; +#X floatatom 383 377 5 0 0 0 - - - 0; +#X text 320 617 updated for Pd version 0.47; +#X text 26 381 If there are zero or one data fields specified \, you can use the "set" message to change the template and/or field name on the fly:, f 47; -#X text 65 48 "Get" \, when sent a pointer to a scalar \, retrieves -fields from it by name. The fields can be float or symbol., f 59; -#X text 470 332 wild card template, f 9; -#X text 34 257 If you have data whose template is variable (from a +#X text 449 349 wild card template, f 9; +#X text 23 262 If you have data whose template is variable (from a heterogeneous list \, for example) you can use the template "-" as a wild card. In Pd 0.47 and earlier \, there is no penalty for this \, but future versions may run faster with pre-specified templates than with "-" (by looking up the variable names in advance)., f 46 ; -#X text 90 12 - get values from a scalar; +#X text 61 12 - get values from a scalar; +#X obj 6 43 cnv 1 530 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 754 159 575 294 reference 0; +#X obj 9 45 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 121 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 188 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 262 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 84 212 1) symbol -; +#X obj 34 14 get; +#X text 69 13 - get values from a scalar; +#X text 124 59 pointer -; +#X text 200 59 pointer to a Data Structure scalar., f 46; +#X text 33 79 set -; +#X text 193 79 set template and field name (if none or just one argument +is given)., f 47; +#X obj 9 153 cnv 1 550 1 empty empty 'n': 8 12 0 13 #9f9f9f #000000 +0; +#X text 102 162 float/symbol - field value.; +#X text 170 212 template name., f 28; +#X text 98 233 2) list -; +#X text 170 233 one or more field names (defines number of outlets). +; +#X text 94 127 ('n' outlets depends on number of arguments); +#X restore 354 13 pd reference; +#X text 452 12 <= click; +#X obj 5 587 cnv 1 530 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 50 53 "Get" \, when sent a pointer to a scalar \, retrieves +fields from it by name. The fields can be floats or symbols., f 59 +; +#X text 263 184 Remaining args are field names.; #X connect 6 0 13 0; #X connect 10 0 13 0; -#X connect 13 0 22 0; -#X connect 13 1 25 0; -#X connect 22 0 11 0; -#X connect 22 1 12 0; -#X connect 22 2 24 0; -#X connect 26 0 27 0; -#X connect 27 0 33 0; +#X connect 13 0 21 0; +#X connect 13 1 24 0; +#X connect 21 0 11 0; +#X connect 21 1 12 0; +#X connect 21 2 23 0; +#X connect 25 0 26 0; +#X connect 26 0 32 0; +#X connect 27 0 28 0; #X connect 28 0 29 0; -#X connect 29 0 30 0; -#X connect 31 0 30 0; -#X connect 32 0 30 0; -#X connect 33 0 34 0; +#X connect 30 0 29 0; +#X connect 31 0 29 0; +#X connect 32 0 33 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/getsize-help.pd puredata-0.52.2+ds0/doc/5.reference/getsize-help.pd --- puredata-0.52.1+ds0/doc/5.reference/getsize-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/getsize-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,47 +1,70 @@ #N struct help-getsize-template float x float y array array1 help-getsize-array1-template ; #N struct help-getsize-array1-template float y; -#N canvas 506 114 615 481 12; -#X text 40 381 see also:; -#N canvas 393 50 468 206 help-getsize-template 0; +#N canvas 641 105 576 410 12; +#X text 3 375 see also:; +#N canvas 527 124 468 206 help-getsize-template 0; #X obj 30 78 plot array1 500 1 10 15 20; #X obj 60 137 filledpolygon 509 509 0 -10 -10 10 -10 10 10 -10 10; #X obj 28 21 struct help-getsize-template float x float y array array1 help-getsize-array1-template; -#X restore 349 372 pd help-getsize-template; -#N canvas 142 211 305 197 help-getsize-data 1; +#X restore 333 217 pd help-getsize-template; +#N canvas 294 217 305 197 help-getsize-data 1; #X scalar help-getsize-template 43 37 \; 0 \; 10 \; 0 \; 10 \; 20 \; 10 \; 20 \; 70 \; 10 \; \;; -#X restore 349 350 pd help-getsize-data; -#N canvas 672 342 369 138 help-getsize-array1-template 0; +#X restore 333 195 pd help-getsize-data; +#N canvas 980 442 369 138 help-getsize-array1-template 0; #X obj 30 71 filledpolygon 0 0 0 -5 0 0 5 5 0 0 -5; #X obj 32 27 struct help-getsize-array1-template float y; -#X restore 349 394 pd help-getsize-array1-template; -#X obj 105 407 pointer; -#X obj 237 407 setsize; -#X obj 37 228 pointer; -#X msg 37 204 traverse pd-help-getsize-data \, next; -#X floatatom 37 346 5 0 0 0 - - -; -#X text 302 316 arguments: template \, field name; -#X text 88 347 here we just get the value of y.; -#X obj 37 317 getsize help-getsize-template array1; -#X text 46 296 inlet for pointer; -#X obj 40 19 getsize; -#X text 34 51 When sent a pointer \, "element" looks up a field \, -which should be an array \, and outputs the number of elements of the -array. The template and field name are specified as creation arguments. -; -#X text 34 119 The smallest possible size is one.; -#X obj 170 407 element; -#X obj 48 407 struct; -#X text 104 247 set template and field name; -#X text 387 437 updated for Pd version 0.47; -#X text 34 145 If you don't know the template name you may specify +#X restore 333 239 pd help-getsize-array1-template; +#X obj 119 375 pointer; +#X obj 233 375 setsize; +#X obj 41 203 pointer; +#X msg 41 179 traverse pd-help-getsize-data \, next; +#X floatatom 41 321 5 0 0 0 - - - 0; +#X text 306 291 arguments: template \, field name, f 32; +#X text 92 322 here we just get the value of y.; +#X obj 41 292 getsize help-getsize-template array1; +#X text 50 271 inlet for pointer; +#X obj 27 13 getsize; +#X obj 176 375 element; +#X obj 69 375 struct; +#X text 108 222 set template and field name; +#X text 369 375 updated for Pd version 0.47; +#X text 34 115 If you don't know the template name you may specify "-" \, in which case the object will figure out the template name itself -\, at some possible cost in efficiency and clarity.; -#X msg 47 266 set help-getsize-template array1; -#X text 103 20 - get number of elements of an array; +\, at some possible cost in efficiency and clarity., f 68; +#X msg 51 241 set help-getsize-template array1; +#X obj 7 44 cnv 1 560 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 768 182 526 227 reference 0; +#X obj 9 43 cnv 5 500 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 109 cnv 2 500 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 146 cnv 2 500 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 198 cnv 5 500 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 152 154 1) symbol - template name.; +#X text 152 173 2) symbol - field name., f 26; +#X text 29 76 set - set template and field name. +, f 63; +#X text 134 119 float - array's size.; +#X obj 24 15 getsize; +#X text 84 16 - get of a Data Structures array.; +#X text 120 57 pointer - pointer to a scalar with an array field.; +#X restore 385 14 pd reference; +#X text 483 15 <= click; +#X obj 7 358 cnv 1 560 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 291 375 array get; +#X text 86 14 - get of a Data Structures array; +#X text 34 51 When sent a pointer of a scalar \, "getsize" looks up +a field \, which should be an array \, and outputs the number of elements +of the array. The template and field name are specified as creation +arguments. The smallest possible size is one., f 68; #X connect 6 0 11 0; #X connect 7 0 6 0; #X connect 11 0 8 0; -#X connect 21 0 11 0; +#X connect 19 0 11 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/gui-boxes-help.pd puredata-0.52.2+ds0/doc/5.reference/gui-boxes-help.pd --- puredata-0.52.1+ds0/doc/5.reference/gui-boxes-help.pd 1970-01-01 00:00:00.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/gui-boxes-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -0,0 +1,472 @@ +#N canvas 289 23 1019 703 12; +#X msg 135 484 set 45; +#X floatatom 195 527 5 0 0 0 - - - 0; +#X symbolatom 257 41 10 0 0 0 - - - 0; +#X floatatom 56 41 5 0 0 0 - - - 0; +#X text 627 288 more details:; +#X symbolatom 620 213 15 0 0 0 - - - 0; +#X msg 636 153 set hi; +#X msg 620 125 symbol hello\ world; +#X obj 620 246 print symbol_box; +#X obj 195 562 print number_box; +#X msg 195 484 bang; +#X msg 650 183 bang; +#X msg 244 484 12; +#N canvas 450 199 417 455 properties 0; +#N canvas 804 125 488 541 width 0; +#X floatatom 281 445 1 0 0 0 - - - 0; +#X floatatom 173 183 5 0 0 0 - - - 0; +#X text 219 184 <= default (5 characters); +#X floatatom 215 384 0 0 0 0 - - - 0; +#X msg 158 347 1; +#X msg 215 347 -1.2345e+12; +#X msg 187 152 100; +#X msg 173 126 -100000; +#X msg 161 102 100000; +#X floatatom 173 213 7 0 0 0 - - - 0; +#X text 232 214 <= width of 7; +#X text 99 438 A width of one gives a clickable toggle switch, f 23 +; +#X text 299 446 <= click; +#X text 115 385 width of 0 =>; +#X text 42 22 The width is 5 characters by default. The number box +fails to display numbers with more characters and only gives you its +sign instead. Hence \, you need to increase the width to display it +properly.; +#X text 42 249 Note that if you select a width of 0 \, the number box +will actually have a minimum width of 3 digits and grow as needed to +hold the typed or received number. A specific width is more CPU efficient +though., f 58; +#X text 149 497 see also:; +#X obj 230 497 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000 0 1; +#X text 256 496 (toggle from iemguis); +#X connect 1 0 9 0; +#X connect 4 0 3 0; +#X connect 5 0 3 0; +#X connect 6 0 1 0; +#X connect 7 0 1 0; +#X connect 8 0 1 0; +#X restore 190 171 pd width; +#X floatatom 73 79 5 0 0 0 - - - 0; +#X text 116 78 <= right click for properties; +#N canvas 795 289 419 235 label 0; +#X floatatom 180 118 5 -10 10 0 left-label - - 0; +#X floatatom 237 118 5 -10 10 2 top-label: - - 0; +#X floatatom 237 152 5 -10 10 3 bottom-label: - - 0; +#X floatatom 108 152 5 -10 10 1 right-label - - 0; +#X text 86 40 You can give it a label and place it in 4 different preset +positions:, f 36; +#X restore 190 234 pd label; +#N canvas 789 217 438 400 send/receive 0; +#X floatatom 130 310 5 0 0 0 - \$0-number - 0; +#X floatatom 126 133 5 0 0 0 - - - 0; +#X obj 130 348 print; +#X floatatom 130 199 5 0 0 0 - - \$0-number 0; +#X text 181 197 <= send symbol \$0-number; +#X text 181 311 <= receive symbol \$0-number; +#X text 51 25 The properties also allows you to set a send and receive +symbol \, in which cases the inlet/outlet are removed (so no connections +are possible anymore). This way \, the object can communicate to [send] +and [receive] objects., f 49; +#X obj 129 235 receive \$0-number; +#X obj 126 164 send \$0-number; +#X floatatom 129 273 5 0 0 0 - - - 0; +#X connect 0 0 2 0; +#X connect 1 0 8 0; +#X connect 7 0 9 0; +#X restore 142 305 pd send/receive; +#X text 41 22 You can right click on the object and ask for the properties +window to change its parameters., f 47; +#X text 54 124 The subpatches below offer details on each parameter +from the properties window., f 43; +#N canvas 779 178 525 491 limits 0; +#X floatatom 197 158 5 -10 10 0 - - - 0; +#X msg 197 119 100; +#X text 71 158 click and drag =>; +#X text 244 158 (range from -10 to 10); +#X text 44 27 By default \, the number box has no range limits \, but +you can define a range with a lower and upper limit values. Note that +this limit is only for clicking and dragging. Numbers outside this +range are accepted if you type it in or receive it via the inlet.; +#X msg 235 119 set -100; +#X text 71 174 and also type a value outside the range, f 15; +#X obj 197 201 print number-range; +#X floatatom 86 427 0 0 0 0 - - - 0; +#X floatatom 216 427 0 0 0 0 - - - 0; +#X msg 86 350 bang; +#X text 70 254 Setting the lower and upper range to the same value +(like "0" \, "0" - the default) removes the limit. Note that a ridiculously +large number becomes infinity (negative infinity is also possible). +The number box will display these and also 'NaN' (Not a Number)., +f 55; +#X obj 86 385 expr pow(2 \, 1e+10) \; -pow(2 \, 1e+10); +#X floatatom 307 427 0 0 0 0 - - - 0; +#X msg 307 350 bang; +#X obj 307 388 expr log(-1); +#X text 125 351 infinity; +#X text 345 350 nan; +#X connect 0 0 7 0; +#X connect 1 0 0 0; +#X connect 5 0 0 0; +#X connect 10 0 12 0; +#X connect 12 0 8 0; +#X connect 12 1 9 0; +#X connect 14 0 15 0; +#X connect 15 0 13 0; +#X restore 183 202 pd limits; +#N canvas 721 346 450 298 loading-args 0; +#X floatatom 224 229 5 0 0 0 \$0-label - - 0; +#X text 63 114 For instance \, below \, we have \$0 used in the label +field \, which gets expanded to the patch ID number. Using something +like "\$1" is useful if you're using the object in an abstraction \, +then you can load a value passed as an argument into a parameter., +f 49; +#X text 63 25 Note that all the parameters that you can set by inserting +a number or symbol into a field in the properties window can also load +dollar sign arguments (\$0 \, \$1 \, \$2 \, and so on). Namely \, these +parameters are: width \, lower/upper limits \, label and send/receive +symbols., f 49; +#X restore 149 373 pd loading-args; +#X text 61 343 Loading arguments in properties:; +#N canvas 795 289 512 333 size 0; +#X floatatom 247 217 5 0 0 0 label - - 36; +#X text 70 43 By default \, when you create a box \, it'll use the +font size that your patch is using. In this case it is "12". You can +change the size settings in the properties. The 'auto' setting (the +default) also automatically changes the font size of the atom box if +you change your patch's font. In other cases \, it uses a specific +font and keeps it no matter if you change the patch's font or not. +Below \, we have a size of "36". The font setting also affects the +label., f 56; +#X restore 196 267 pd size; +#X restore 225 604 pd properties; +#N canvas 635 260 459 438 properties 0; +#N canvas 934 145 510 501 width 0; +#X symbolatom 162 162 10 0 0 0 - - - 0; +#X text 238 163 <= default (10 characters); +#X symbolatom 162 192 15 0 0 0 - - - 0; +#X text 275 193 <= width of 15; +#X msg 120 101 symbol a\ long\ symbol; +#X msg 162 130 symbol short; +#X msg 180 364 symbol a\ long\ symbol; +#X symbolatom 243 427 0 0 0 0 - - - 0; +#X msg 243 393 symbol a; +#X text 54 22 By default the width is 10 characters. If the symbol +box tries to display a larger symbol \, it gets truncated and the last +displayed character is ">".; +#X text 58 247 Note that if you select a width of 0 \, the symbol box +will actually have a minimum width of 3 characters and grow as needed +to hold the typed or received symbol - A specific width is more CPU +efficient though.; +#X connect 0 0 2 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 7 0; +#X connect 8 0 7 0; +#X restore 233 216 pd width; +#X text 171 77 <= right click for properties; +#N canvas 903 345 354 184 label 0; +#X symbolatom 126 81 10 0 0 0 left-label - - 0; +#X symbolatom 57 113 10 0 0 1 right-label - - 0; +#X symbolatom 224 81 10 0 0 2 top-label - - 0; +#X symbolatom 224 113 10 0 0 3 bottom-label - - 0; +#X text 57 19 You can give it a label and place it in 4 different preset +positions:, f 35; +#X restore 233 248 pd label; +#N canvas 979 272 457 442 send/receive 0; +#X obj 105 374 print; +#X symbolatom 101 131 10 0 0 0 - - - 0; +#X symbolatom 100 221 10 0 0 0 - - \$0-symbol 0; +#X text 179 220 <= send symbol: \$0-symbol; +#X text 184 335 <= receive symbol: \$0-symbol; +#X symbolatom 105 336 10 0 0 0 - \$0-symbol - 0; +#X text 55 28 The properties also allows you to set a send and receive +symbol \, in which cases the inlet/outlet are removed (so no connections +are possible anymore). This way \, the object can communicate to [send] +and [receive] objects., f 49; +#X obj 101 168 send \$0-symbol; +#X obj 101 259 receive \$0-symbol; +#X symbolatom 101 293 10 0 0 0 - - - 0; +#X connect 1 0 7 0; +#X connect 5 0 0 0; +#X connect 8 0 9 0; +#X restore 185 309 pd send/receive; +#X symbolatom 86 77 10 0 0 0 - - - 0; +#X text 69 22 You can right click on the object and ask for the properties +window to change its parameters., f 47; +#X text 43 122 The subpatches below offer details on each parameter +from the properties window. The properties window is the same as the +number box's and the behaviour is basically the same. One main difference +is that the "limits" are not valid for the symbol box., f 53; +#N canvas 912 421 450 289 loading-args 0; +#X text 61 114 For instance \, below \, we have \$0 used in the label +field \, which gets expanded to the patch ID number. Using something +like "\$1" is useful if you're using the object in an abstraction \, +then you can load a value passed as an argument into a parameter., +f 49; +#X symbolatom 220 228 10 0 0 0 \$0-label - - 0; +#X text 61 25 Note that all the parameters that you can set by inserting +a number or symbol into a field in the properties window can also load +dollar sign arguments (\$0 \, \$1 \, \$2 \, and so on). Namely \, these +parameters are: width \, label and send/receive symbols., f 49; +#X restore 196 387 pd loading-args; +#X text 108 357 Loading arguments in properties:; +#N canvas 795 289 688 310 size 0; +#X text 90 44 By default \, when you create a box \, it'll use the +font size that your patch is using. In this case it is "12". You can +change the size settings in the properties. The 'auto' setting (the +default) also automatically changes the font size of the atom box if +you change your patch's font. In other cases \, it uses a specific +font and keeps it no matter if you change the patch's font or not. +Below \, we have a size of "36". The font setting also affects the +label., f 74; +#X symbolatom 185 186 20 0 0 0 label - - 36; +#X restore 240 277 pd size; +#X restore 727 287 pd properties; +#X text 121 605 more details:; +#X listbox 490 41 20 0 0 0 - - - 0; +#X text 499 87 Symbol boxes are like number boxes but hold a symbol +instead of a number:, f 61; +#X text 771 123 set and output a symbol; +#X text 693 157 set only - don't output; +#X text 688 181 output only - don't change value; +#X text 27 88 These are GUI (Graphical User Interface) objects that +display and send atoms (numbers or symbols) or lists. They may be created +by selecting "number" (etc.) from the "put" menu. The contents can +be changed while the patch in in "run" mode (as opposed to "edit") +\, so these are useful as controls and displays in a finished patch. +, f 62; +#X text 503 328 List boxes may hold arbitrary combinations of numbers +and symbols:, f 66; +#X msg 527 366 1 2 3 foo 5; +#X listbox 527 570 22 0 0 0 - - - 0; +#X obj 527 599 print list_box; +#X msg 541 405 list wombat weasel wallaby; +#X text 622 359 messages beginning with a number are implicitly understood +as lists, f 35; +#X text 742 394 lists starting with a symbol must be preceded by the +word "list" to disambiguate them, f 32; +#X msg 550 452 set 4 dog 5 6 donkey; +#X text 703 447 "set" message changes contents but doesn't output them +, f 30; +#X msg 566 521 bang; +#X text 614 490 "bang" is equivalent to an empty list in Pd \, but +as a special case banging a list box outputs the current list. If you +really want to display an empty list \, you can use a "set" message. +, f 53; +#X msg 557 491 set; +#X text 793 671 updated for Pd version 0.52; +#X text 660 621 more details:; +#N canvas 681 258 459 477 properties 0; +#N canvas 934 145 512 490 width 0; +#X msg 132 130 symbol short; +#X listbox 201 411 0 0 0 0 - - - 0; +#X listbox 132 192 10 0 0 0 - - - 0; +#X listbox 132 162 20 0 0 0 - - - 0; +#X text 284 161 <= default (20 characters); +#X msg 90 101 list 1 2 3 4 5 6 7 8 9 10 11 12; +#X msg 201 377 1; +#X text 58 247 Note that if you select a width of 0 \, the list box +will actually have a minimum width of 3 characters and grow as needed +to hold the typed or received symbol. A specific width is more CPU +efficient though.; +#X msg 138 348 list 1st\ item 2nd/ item; +#X text 54 23 By default the width is 20 characters. If the list box +tries to display a larger symbol \, it gets truncated and the last +displayed character is ">".; +#X text 212 193 <= width of 10; +#X connect 0 0 3 0; +#X connect 3 0 2 0; +#X connect 5 0 3 0; +#X connect 6 0 1 0; +#X connect 8 0 1 0; +#X restore 233 216 pd width; +#X text 206 76 <= right click for properties; +#N canvas 903 345 444 319 label 0; +#X text 87 23 You can give it a label and place it in 4 different preset +positions:, f 35; +#X listbox 131 97 20 0 0 0 left-label - - 0; +#X listbox 133 150 20 0 0 2 top-label - - 0; +#X listbox 134 190 20 0 0 1 right-label - - 0; +#X listbox 135 229 20 0 0 3 bottom-label - - 0; +#X restore 233 279 pd label; +#N canvas 979 272 531 449 send/receive 0; +#X obj 108 371 print; +#X text 55 28 The properties also allows you to set a send and receive +symbol \, in which cases the inlet/outlet are removed (so no connections +are possible anymore). This way \, the object can communicate to [send] +and [receive] objects., f 58; +#X listbox 104 128 20 0 0 0 - - - 0; +#X listbox 103 218 20 0 0 0 - - \$0-list 0; +#X listbox 108 333 20 0 0 0 - \$0-list - 0; +#X listbox 104 290 20 0 0 0 - - - 0; +#X obj 104 165 send \$0-list; +#X obj 104 256 receive \$0-list; +#X text 254 217 <= send symbol: \$0-list; +#X text 259 333 <= receive symbol: \$0-list; +#X connect 2 0 6 0; +#X connect 4 0 0 0; +#X connect 7 0 5 0; +#X restore 185 340 pd send/receive; +#X text 69 22 You can right click on the object and ask for the properties +window to change its parameters., f 47; +#X text 43 122 The subpatches below offer details on each parameter +from the properties window. The properties window is the same as the +number box's and the behaviour is basically the same. One main difference +is that the "limits" are not valid for the symbol box., f 53; +#N canvas 912 421 450 289 loading-args 0; +#X text 61 114 For instance \, below \, we have \$0 used in the label +field \, which gets expanded to the patch ID number. Using something +like "\$1" is useful if you're using the object in an abstraction \, +then you can load a value passed as an argument into a parameter., +f 49; +#X text 61 25 Note that all the parameters that you can set by inserting +a number or symbol into a field in the properties window can also load +dollar sign arguments (\$0 \, \$1 \, \$2 \, and so on). Namely \, these +parameters are: width \, label and send/receive symbols., f 49; +#X listbox 203 236 20 0 0 0 \$0-label - - 0; +#X restore 196 418 pd loading-args; +#X text 108 388 Loading arguments in properties:; +#N canvas 795 289 688 310 size 0; +#X text 90 44 By default \, when you create a box \, it'll use the +font size that your patch is using. In this case it is "12". You can +change the size settings in the properties. The 'auto' setting (the +default) also automatically changes the font size of the atom box if +you change your patch's font. In other cases \, it uses a specific +font and keeps it no matter if you change the patch's font or not. +Below \, we have a size of "36". The font setting also affects the +label., f 74; +#X listbox 179 184 20 0 0 0 label - - 36; +#X restore 240 308 pd size; +#X listbox 56 76 20 0 0 0 - - - 0; +#N canvas 779 156 532 590 limits 0; +#X text 71 178 click and drag =>; +#X text 279 173 (range from -10 to 10), f 12; +#X text 71 194 and also type a value outside the range, f 15; +#X obj 197 221 print number-range; +#X msg 154 383 bang; +#X text 293 422 infinity; +#X listbox 197 178 10 -10 10 0 - - - 0; +#X msg 212 147 set -100 100; +#X msg 197 119 -100 100; +#X text 70 277 Setting the lower and upper range to the same value +(like "0" \, "0" - the default) removes the limit. Note that a ridiculously +large number becomes infinity (negative infinity is also possible). +The list box will display these and also 'NaN' (Not a Number)., f +55; +#X obj 154 418 expr pow(2 \, 1e+10) \; -pow(2 \, 1e+10) \; log(-1) +; +#X listbox 186 523 20 -10 10 0 - - - 0; +#X obj 186 482 pack f f f; +#X text 295 442 nan; +#X text 32 22 By default \, the list box has no range limits \, but +you can define a range with a lower and upper limit values. This is +just like the number box and affects numbers only. Note that this limit +is only for clicking and dragging. Numbers outside this range are accepted +if you type it in or receive it via the inlet., f 64; +#X connect 4 0 10 0; +#X connect 6 0 3 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 10 0 12 0; +#X connect 10 1 12 1; +#X connect 10 2 12 2; +#X connect 12 0 11 0; +#X restore 227 248 pd limits; +#X restore 766 620 pd properties; +#X text 27 180 Double-clicking activates a text editor \, so that you +can select portions of the contents and/or cut/copy/paste values and +hit enter when done. You may also simply single-click and enter the +new contents from scratch. If you start retyping with a single click +you can cancel the action by clicking outside the box \, or adopt the +change using the "enter" key., f 62; +#X text 27 339 If you click on a number box while pressing "control" +(in Linux/Windows) or "command" (Mac) \, the object toggles between +0 and a non zero value. The non zero value is the last non zero value +that the box holds (by default \, this value is "1")., f 62; +#X text 27 271 You can also change a numeric value upward or downward +by clicking and dragging. Shift-click changes the value in hundredths +instead of units. This works for both number boxes and individual numbers +in a list box., f 62; +#X text 76 528 click and drag; +#X text 240 528 or shift+click and drag; +#X text 693 555 you can drag the numbers up and down individually \, +and/or double click to edit just one element., f 36; +#X text 33 671 see also:; +#X obj 109 672 all_guis; +#X text 640 40 - list box; +#X text 103 40 - number atom box; +#X text 336 40 - symbol atom box; +#X text 27 405 If they receive a proper message (like a float message +for the number box below) \, they get displayed and pass through. A +"set" message updates but doesn't output. A bang outputs its holding +value., f 62; +#X text 54 9 GUI object boxes to display and edit numbers \, symbols +\, or lists., f 64; +#X obj 10 73 cnv 1 1000 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 10 658 cnv 1 1000 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 913 36 <= click; +#N canvas 829 54 437 675 reference 0; +#X obj 9 42 cnv 5 400 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 123 cnv 2 400 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 157 cnv 2 400 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 191 cnv 5 400 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X floatatom 39 12 5 0 0 0 - - - 0; +#X text 86 11 - number atom box; +#X text 153 165 NONE; +#X text 136 56 float - set and output value.; +#X text 95 94 set - set value.; +#X text 150 132 float - number value.; +#X obj 15 265 cnv 5 400 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 15 346 cnv 2 400 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 15 380 cnv 2 400 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X obj 14 414 cnv 5 400 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 159 388 NONE; +#X symbolatom 40 236 10 0 0 0 - - - 0; +#X text 119 235 - symbol atom box; +#X text 135 279 symbol - set and output value.; +#X text 94 317 set - set value.; +#X text 136 355 symbol - symbol value.; +#X listbox 39 468 20 0 0 0 - - - 0; +#X text 189 467 - list box; +#X obj 15 499 cnv 5 400 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 15 580 cnv 2 400 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 15 614 cnv 2 400 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X obj 14 648 cnv 5 400 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 159 622 NONE; +#X text 149 513 list - set and output value.; +#X text 109 551 set - set value.; +#X text 151 589 list - symbol value.; +#X text 144 75 bang - output value.; +#X text 150 298 bang - output value.; +#X text 150 532 bang - output value.; +#X restore 819 36 pd reference; +#X connect 0 0 1 0; +#X connect 1 0 9 0; +#X connect 5 0 8 0; +#X connect 6 0 5 0; +#X connect 7 0 5 0; +#X connect 10 0 1 0; +#X connect 11 0 5 0; +#X connect 12 0 1 0; +#X connect 23 0 24 0; +#X connect 24 0 25 0; +#X connect 26 0 24 0; +#X connect 29 0 24 0; +#X connect 31 0 24 0; +#X connect 33 0 24 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/hdl-help.pd puredata-0.52.2+ds0/doc/5.reference/hdl-help.pd --- puredata-0.52.1+ds0/doc/5.reference/hdl-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/hdl-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,17 +1,17 @@ #N canvas 613 41 517 576 12; -#X obj 50 253 bng 18 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 --1; +#X obj 50 253 bng 18 250 50 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000; #X msg 120 262 set \$1; -#X floatatom 120 239 4 0 9 0 - - -; -#X floatatom 78 253 4 0 9 0 - - -; +#X floatatom 120 239 4 0 9 0 - - - 0; +#X floatatom 78 253 4 0 9 0 - - - 0; #X obj 303 101 hdl 15 1 0 8 empty empty empty 0 -8 0 10 -262144 -1 -1 0; #X obj 38 26 hdl; #X text 166 25 - [hdl]: deprecated horizontal radio button; #N canvas 789 65 625 556 position 0; -#X floatatom 142 146 4 0 1000 0 - - -; +#X floatatom 142 146 4 0 1000 0 - - - 0; #X obj 191 173 t b f; -#X floatatom 191 146 5 0 500 0 - - -; +#X floatatom 191 146 5 0 500 0 - - - 0; #X msg 142 243 pos \$1 \$2; #X text 63 146 x-position; #X text 235 145 y-position; @@ -53,30 +53,29 @@ #X text 267 443 (c) musil@iem.kug.ac.at; #X text 303 459 IEM KUG \, Graz \, Austria \, 2002, f 14; #X text 47 517 see also:; -#X obj 121 518 x_all_guis; #X text 57 444 This object is part of the "iemguis" library \, natively included in Pd version 0.34., f 28; -#X obj 78 394 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; +#X obj 78 394 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; #X obj 78 371 route 0 1 2 3 4 5 6 7 8 9, f 29; -#X obj 98 394 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 118 394 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 138 394 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 158 394 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 178 394 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 198 394 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 218 394 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 238 394 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 258 394 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; +#X obj 98 394 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 118 394 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 138 394 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 158 394 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 178 394 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 198 394 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 218 394 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 238 394 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 258 394 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; #X text 120 100 the new [hdradio] object:; #X text 35 57 WARNING: This object is still in Pd for backwarss compatibility but has been deprecated in Pd 0.36. Just use the new [hradio] instead: @@ -95,9 +94,9 @@ route object and connect to toggles., f 28; #N canvas 465 144 355 313 parameters 0; #N canvas 828 23 640 573 colors 0; -#X floatatom 72 243 3 0 29 0 - - -; -#X floatatom 108 243 3 0 29 0 - - -; -#X floatatom 177 248 3 0 29 0 - - -; +#X floatatom 72 243 3 0 29 0 - - - 0; +#X floatatom 108 243 3 0 29 0 - - - 0; +#X floatatom 177 248 3 0 29 0 - - - 0; #X text 104 223 front; #X text 170 223 label; #X obj 108 272 t b f; @@ -105,9 +104,9 @@ #X msg 72 342 color \$1 \$2 \$3; #X obj 72 305 pack 0 22 22, f 20; #X text 181 342 presets; -#X symbolatom 507 339 9 0 0 0 - - -; -#X symbolatom 421 338 9 0 0 0 - - -; -#X symbolatom 335 338 9 0 0 0 - - -; +#X symbolatom 507 339 9 0 0 0 - - - 0; +#X symbolatom 421 338 9 0 0 0 - - - 0; +#X symbolatom 335 338 9 0 0 0 - - - 0; #X obj 475 369 t b s; #X obj 389 369 t b s; #X obj 258 223 loadbang; @@ -128,14 +127,14 @@ #X text 61 156 Open subpatches for the conversion from RGB to hexadecimal ============>, f 38; #N canvas 875 103 390 482 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -8256 --262144 -1 0 1; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; #X obj 109 225 t b f; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -4033 --1 -1 0 1; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; #X obj 80 341 pack s s s; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -258049 --1 -1 0 1; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; #X obj 81 250 t b f; #X obj 147 257 makefilename %02x; #X obj 113 284 makefilename %02x; @@ -163,14 +162,14 @@ #X coords 0 -1 1 1 80 170 2 50 50; #X restore 507 157 pd label; #N canvas 902 114 390 482 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -8256 --262144 -1 0 1; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; #X obj 109 225 t b f; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -4033 --1 -1 0 1; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; #X obj 74 341 pack s s s; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -258049 --1 -1 0 1; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; #X obj 81 250 t b f; #X obj 146 257 makefilename %02x; #X obj 112 284 makefilename %02x; @@ -198,13 +197,13 @@ #X coords 0 -1 1 1 80 170 2 50 50; #X restore 421 157 pd label; #N canvas 845 105 390 482 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -8256 --262144 -1 12700 1; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; #X obj 109 225 t b f; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -4033 --1 -1 12700 1; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -258049 --1 -1 12700 1; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; #X obj 81 250 t b f; #X obj 221 257 makefilename %02x; #X obj 141 284 makefilename %02x; @@ -239,12 +238,12 @@ #X restore 335 157 pd label; #N canvas 720 84 504 470 old_way 0; #N canvas 1000 186 402 495 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -8256 --262144 -1 0 1; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -4033 --1 -1 0 1; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -258049 --1 -1 0 1; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; #X text 66 56 label; #X obj 59 361 expr -($f1 * 65536 + $f2 * 256 + $f3 + 1); #X obj 311 319 t b f; @@ -262,12 +261,12 @@ #X restore 349 132 pd label; #X text 188 107 Set RGB values in the sliders; #N canvas 955 131 392 476 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -8256 --262144 -1 12700 1; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -4033 --1 -1 12700 1; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -258049 --1 -1 12700 1; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; #X obj 61 361 expr -($f1 * 65536 + $f2 * 256 + $f3 + 1); #X obj 313 269 t b f; #X obj 171 269 t b f; @@ -293,12 +292,12 @@ #X coords 0 -1 1 1 80 170 2 50 50; #X restore 177 132 pd label; #N canvas 932 166 402 495 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -8256 --262144 -1 0 1; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -4033 --1 -1 0 1; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -258049 --1 -1 0 1; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; #X obj 59 361 expr -($f1 * 65536 + $f2 * 256 + $f3 + 1); #X obj 311 319 t b f; #X obj 169 319 t b f; @@ -386,7 +385,7 @@ #X coords 0 0 1 1 85 60 0; #X restore 175 257 pd colors; #N canvas 905 67 517 295 size 0; -#X floatatom 74 58 3 10 60 0 - - -; +#X floatatom 74 58 3 10 60 0 - - - 0; #X obj 74 132 hdl 18 1 0 6 empty empty empty 0 -8 0 10 -262144 -1 -1 0; #X msg 74 92 size \$1; @@ -399,9 +398,9 @@ #X restore 189 117 pd size; #N canvas 847 74 603 428 label 0; #X msg 93 284 label \$1; -#X floatatom 240 166 4 0 3 0 - - -; +#X floatatom 240 166 4 0 3 0 - - - 0; #X obj 282 193 t b f; -#X floatatom 282 166 5 5 50 0 - - -; +#X floatatom 282 166 5 5 50 0 - - - 0; #X msg 240 263 label_font \$1 \$2; #X text 202 165 type; #X text 326 164 size; @@ -409,9 +408,9 @@ #X text 261 118 Helvetica; #X text 261 133 Times; #X msg 105 252 symbol empty; -#X floatatom 394 182 4 -150 200 0 - - -; +#X floatatom 394 182 4 -150 200 0 - - - 0; #X obj 436 209 t b f; -#X floatatom 436 182 5 -150 150 0 - - -; +#X floatatom 436 182 5 -150 150 0 - - - 0; #X msg 394 279 label_pos \$1 \$2; #X text 376 181 x; #X text 480 180 y; @@ -424,8 +423,8 @@ #X obj 240 363 hdl 18 1 1 8 empty empty label 150 9 0 20 -262144 -1 -1 4; #X obj 394 237 pack 150 9, f 11; -#X obj 240 103 vradio 15 1 0 3 empty empty empty 0 -8 0 10 -262144 --1 -1 0; +#X obj 240 103 vradio 15 1 0 3 empty empty empty 0 -8 0 10 #fcfcfc +#000000 #000000 0; #X obj 240 222 pack 0 20, f 11; #X connect 0 0 21 0; #X connect 1 0 24 0; @@ -447,8 +446,8 @@ #X restore 182 229 pd label; #N canvas 904 91 434 344 init 0; #X msg 113 189 init \$1; -#X obj 113 157 tgl 18 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 -1; +#X obj 113 157 tgl 18 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000 0 1; #X text 136 157 init on/off; #X text 46 29 The 'init' message takes a float and sets to 'init mode' (if different than zero) or 'no init' (if equal to zero - the default @@ -464,8 +463,8 @@ #X connect 5 0 4 0; #X restore 189 145 pd init; #N canvas 869 39 442 482 send-receive 0; -#X floatatom 53 182 5 0 8 0 - - -; -#X floatatom 53 310 5 0 0 0 - - -; +#X floatatom 53 182 5 0 8 0 - - - 0; +#X floatatom 53 310 5 0 0 0 - - - 0; #X text 42 102 The 'send' and 'receive' messages take a symbol to set \, respectively \, the send and receive symbol. If you set these to "empty" \, the symbols are cleared., f 50; @@ -493,7 +492,7 @@ #X restore 133 201 pd send-receive; #N canvas 750 194 481 215 number 0; #X msg 84 58 number \$1; -#X floatatom 84 29 4 1 18 0 - - -; +#X floatatom 84 29 4 1 18 0 - - - 0; #X obj 84 97 hdl 18 1 0 8 empty empty empty 0 -8 0 10 -262144 -1 -1 0; #X text 176 37 You can set the number of cells with the 'number' message @@ -504,27 +503,27 @@ #N canvas 875 120 409 359 single/double-change 0; #X msg 102 129 single_change; #X msg 116 164 double_change; -#X obj 102 303 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; +#X obj 102 303 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; #X obj 102 280 route 0 1 2 3 4 5 6 7 8 9, f 29; -#X obj 122 303 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 142 303 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 162 303 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 182 303 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 202 303 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 222 303 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 242 303 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 262 303 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 282 303 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; +#X obj 122 303 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 142 303 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 162 303 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 182 303 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 202 303 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 222 303 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 242 303 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 262 303 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 282 303 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; #X text 223 165 default behavior; #X obj 118 250 print single/double; #X obj 101 215 hdl; @@ -552,19 +551,20 @@ See examples below:, f 39; #X restore 332 335 pd parameters; #X text 244 517 updated for Pd version 0.36; -#X connect 0 0 26 0; -#X connect 1 0 26 0; +#X obj 121 518 all_guis; +#X connect 0 0 25 0; +#X connect 1 0 25 0; #X connect 2 0 1 0; -#X connect 3 0 26 0; -#X connect 14 0 13 0; -#X connect 14 1 15 0; -#X connect 14 2 16 0; -#X connect 14 3 17 0; -#X connect 14 4 18 0; -#X connect 14 5 19 0; -#X connect 14 6 20 0; -#X connect 14 7 21 0; -#X connect 14 8 22 0; -#X connect 14 9 23 0; -#X connect 26 0 14 0; -#X connect 26 0 27 0; +#X connect 3 0 25 0; +#X connect 13 0 12 0; +#X connect 13 1 14 0; +#X connect 13 2 15 0; +#X connect 13 3 16 0; +#X connect 13 4 17 0; +#X connect 13 5 18 0; +#X connect 13 6 19 0; +#X connect 13 7 20 0; +#X connect 13 8 21 0; +#X connect 13 9 22 0; +#X connect 25 0 13 0; +#X connect 25 0 26 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/help-intro.pd puredata-0.52.2+ds0/doc/5.reference/help-intro.pd --- puredata-0.52.1+ds0/doc/5.reference/help-intro.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/help-intro.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,4 +1,4 @@ -#N canvas 683 76 577 831 12; +#N canvas 677 23 576 704 12; #X declare; #X obj 29 116 bang; #X text 129 116 - output a bang message; @@ -394,9 +394,8 @@ #X obj 97 4673 pique; #X text 29 86 --------------------- GENERAL -------------------------- ; -#X obj 41 678 x_all_guis; -#X text 120 678 <==; -#X text 150 671 click and open for all Graphical User Interface (GUI) +#X text 112 678 <==; +#X text 142 671 click and open for all Graphical User Interface (GUI) objects in Pd, f 34; #X text 24 636 -------------------------- GUIs ------------------------- ; @@ -432,3 +431,4 @@ #X text 127 748 - send a bang message after a time delay; #X text 127 772 - send a bang message periodically (a la metronome) ; +#X obj 41 678 all_guis; diff -Nru puredata-0.52.1+ds0/doc/5.reference/hip~-help.pd puredata-0.52.2+ds0/doc/5.reference/hip~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/hip~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/hip~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,38 +1,64 @@ -#N canvas 716 83 622 603 12; +#N canvas 541 23 578 563 12; #X declare -stdpath ./; -#X floatatom 225 193 5 0 0 0 - - - 0; -#X msg 165 166 clear; -#X obj 74 13 hip~; -#X text 119 12 - one-pole high pass filter; -#X text 362 530 updated for Pd version 0.44; -#X msg 306 456 \; pd compatibility 0.43; -#X text 240 220 Creation argument initializes cutoff frequency.; -#X text 49 358 COMPATIBILITY NOTE: in Pd versions before 0.44 \, the +#X floatatom 216 179 5 0 0 0 - - - 0; +#X msg 156 152 clear; +#X obj 25 15 hip~; +#X text 70 14 - one-pole high pass filter; +#X text 342 502 updated for Pd version 0.44; +#X msg 297 442 \; pd compatibility 0.43; +#X text 231 206 Creation argument initializes cutoff frequency.; +#X text 40 344 COMPATIBILITY NOTE: in Pd versions before 0.44 \, the high-frequency output gain was incorrectly greater than one (usually only slightly so \, but noticeably if the cutoff frequency was more than 1/4 the Nyquist frequency). This problem was fixed INCORRECTLY in pd 0.44-0 though 0.44-2 \, and is now hopefully fixed since Pd 0.44-3. To get the old (0.43 and earlier) behavior \, set "compatibility" to 0.43 in Pd's command line or by a message:, f 67; -#X text 214 166 <= reinitialize internal state; -#X text 44 531 see also:; -#X obj 117 530 lop~; -#X obj 156 530 bp~; -#X obj 230 530 bob~; -#X obj 190 530 vcf~; -#X obj 98 142 noise~; -#X obj 165 276 output~; -#X text 272 192 <= set cutoff frequency; -#X text 48 70 hip~ is a one-pole high pass filter with a specified +#X text 205 152 <= reinitialize internal state; +#X text 24 503 see also:; +#X obj 97 502 lop~; +#X obj 136 502 bp~; +#X obj 210 502 bob~; +#X obj 170 502 vcf~; +#X obj 89 128 noise~; +#X obj 156 262 output~; +#X text 263 178 <= set cutoff frequency; +#X text 39 56 hip~ is a one-pole high pass filter with a specified cutoff frequency. Left (audio) inlet is the incoming audio signal. Right (control) inlet sets cutoff frequency., f 71; -#X obj 165 218 hip~ 2000; -#X obj 439 12 declare -stdpath ./; -#X obj 116 559 biquad~; -#X obj 175 558 slop~, f 7; -#X obj 234 558 cpole~, f 7; -#X obj 295 558 fexpr~; -#X text 350 558 - unfriendly filters; +#X obj 156 204 hip~ 2000; +#X obj 295 266 declare -stdpath ./; +#X obj 96 531 biquad~; +#X obj 155 530 slop~, f 7; +#X obj 214 530 cpole~, f 7; +#X obj 275 530 fexpr~; +#X text 330 530 - unfriendly filters; +#X obj 8 43 cnv 1 560 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 786 97 475 260 reference 0; +#X obj 9 42 cnv 5 450 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 153 cnv 2 450 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 193 cnv 2 450 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 8 233 cnv 5 450 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 106 76 signal - audio signal to be filtered.; +#X text 113 95 clear - clear filter's memory., f 36; +#X text 106 163 signal - filtered signal.; +#X obj 9 71 cnv 1 450 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 119 cnv 1 450 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 113 126 float - rolloff frequency., f 36; +#X text 104 203 1) float - rolloff frequency in Hz (default 0).; +#X obj 36 12 hip~; +#X text 78 11 - one-pole high pass filter.; +#X restore 395 15 pd reference; +#X text 493 16 <= click; +#X obj 8 491 cnv 1 560 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 0 0 18 1; #X connect 1 0 18 0; #X connect 14 0 18 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/hradio-help.pd puredata-0.52.2+ds0/doc/5.reference/hradio-help.pd --- puredata-0.52.1+ds0/doc/5.reference/hradio-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/hradio-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,11 +1,11 @@ -#N canvas 643 40 508 561 12; -#X obj 67 224 bng 18 250 50 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#N canvas 573 23 609 519 12; +#X obj 77 220 bng 18 250 50 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 #000000; -#X floatatom 102 334 4 0 0 0 - - - 0; -#X msg 146 232 set \$1; -#X floatatom 146 210 4 0 9 0 - - - 0; -#X floatatom 102 225 4 -10 10 0 - - - 0; -#X obj 102 285 hradio 20 1 0 6 empty empty Radio -55 10 0 15 #b8b8b8 +#X floatatom 112 330 4 0 0 0 - - - 0; +#X msg 156 228 set \$1; +#X floatatom 156 206 4 0 9 0 - - - 0; +#X floatatom 112 221 4 -10 10 0 - - - 0; +#X obj 112 281 hradio 20 1 0 6 empty empty Radio -55 10 0 15 #b8b8b8 #0400fc #780000 0; #N canvas 906 109 508 505 old-behavior 0; #X floatatom 114 432 5 0 0 0 - - - 0; @@ -52,19 +52,18 @@ #X connect 17 0 15 0; #X connect 18 0 15 0; #X connect 19 0 5 0; -#X restore 335 397 pd old-behavior; -#X obj 45 24 hradio 18 1 0 8 empty empty empty 0 -8 0 10 #fcfcfc #000000 +#X restore 467 383 pd old-behavior; +#X obj 17 18 hradio 18 1 0 8 empty empty empty 0 -8 0 10 #fcfcfc #000000 #000000 0; -#X obj 102 363 print hradio; -#X text 269 440 (c) musil@iem.kug.ac.at; -#X text 305 456 IEM KUG \, Graz \, Austria \, 2002, f 14; -#X text 68 514 see also:; -#X obj 142 515 x_all_guis; -#X text 59 441 This object is part of the "iemguis" library \, natively +#X obj 112 359 print hradio; +#X text 259 406 (c) musil@iem.kug.ac.at; +#X text 295 422 IEM KUG \, Graz \, Austria \, 2002, f 14; +#X text 28 485 see also:; +#X text 49 407 This object is part of the "iemguis" library \, natively included in Pd version 0.34., f 28; -#X text 265 514 updated for Pd version 0.51; -#X text 228 285 <= click on the cells., f 11; -#X text 324 285 Right click for properties., f 15; +#X text 388 484 updated for Pd version 0.51; +#X text 238 281 <= click on the cells., f 11; +#X text 334 281 Right click for properties., f 15; #N canvas 789 65 625 556 position 0; #X floatatom 142 146 4 0 1000 0 - - - 0; #X obj 191 173 t b f; @@ -106,7 +105,7 @@ #X connect 14 0 22 0; #X connect 17 0 22 0; #X connect 18 0 3 0; -#X restore 359 225 pd position; +#X restore 369 221 pd position; #N canvas 465 144 358 369 properties 0; #N canvas 828 23 640 573 colors 0; #X floatatom 72 243 3 0 29 0 - - - 0; @@ -509,7 +508,7 @@ #fcfcfc #000000 #000000 0; #X text 439 110 Feedback protection: iemguis can have the same name for both the send and receive symbols. This works without 'stack overflow' -erros because they have feedback protection. See example below., f +errors because they have feedback protection. See example below., f 50; #X connect 0 0 6 0; #X connect 5 0 1 0; @@ -548,18 +547,18 @@ #X connect 0 0 2 0; #X connect 1 0 0 0; #X restore 159 143 pd number; -#X restore 345 199 pd properties; -#X text 27 137 Insert it from the Put menu (named as "hradio") or its +#X restore 355 195 pd properties; +#X text 31 139 Insert it from the Put menu (named as "hradio") or its shortcut. Alternatively \, create it by typing "hradio" into an object box. Right click for properties (to set size \, colors \, labels \, -etc)., f 64; -#X text 243 340 COMPATIBILITY NOTE: The behavior changed in Pd 0.46! +etc)., f 79; +#X text 319 336 COMPATIBILITY NOTE: The behavior changed in Pd 0.46! Check details and how to get it back:, f 33; -#X text 27 59 The horizontal radio button is a GUI (Graphical User +#X text 31 70 The horizontal radio button is a GUI (Graphical User Interface) that sends numbers. Click on its cells to output corresponding values. Incoming floats set the value and are passed through (even if outside the range). The 'set' message only sets the value without -output. A bang message sends the internal value., f 64; +output. A bang message sends the internal value., f 79; #N canvas 761 61 435 279 switch-example 0; #X obj 66 163 route 0 1 2 3; #X obj 66 195 tgl 18 0 empty empty empty 17 7 0 10 #fcfcfc #000000 @@ -587,8 +586,47 @@ #X connect 5 2 6 0; #X connect 6 0 0 0; #X connect 8 0 5 0; -#X restore 317 251 pd switch-example; -#X text 199 24 - [hradio]: Horizontal Radio Button; +#X restore 327 247 pd switch-example; +#X text 167 18 - [hradio]: Horizontal Radio Button; +#X obj 102 486 all_guis; +#X obj 7 473 cnv 1 593 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 647 101 665 419 reference 0; +#X obj 8 52 cnv 5 640 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 7 380 cnv 5 640 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 39 20 hradio 18 1 0 8 empty empty empty 0 -8 0 10 #fcfcfc #000000 +#000000 0; +#X text 189 20 - [hradio]: Horizontal Radio Button; +#X obj 7 339 cnv 5 640 5 empty empty OUTLET: 8 18 0 13 #202020 #000000 +0; +#X text 131 142 label - sets label symbol., f 72; +#X text 55 162 label_font -; +#X text 62 194 label_pos -; +#X text 250 193 sets label position., f 55; +#X text 138 243 send - sets send symbol., f 71; +#X text 110 262 recceive - sets receive symbol., f 75; +#X text 146 212 color -; +#X text 250 211 first element sets background color and third sets +font color (either floats or symbols in hexadecimal format).; +#X text 250 161 sets font type <0: DejaVu Sans Mono \, 1: Helvetica +\, 2: Times> and font size., f 50; +#X text 103 281 pos - sets position in the patch canvas. +, f 76; +#X text 90 300 delta -; +#X text 250 299 changes the position by a x/y delta in pixels., f +55; +#X text 194 65 float - set and output number., f 63; +#X text 145 84 size - sets the cell size in pixels., f 70 +; +#X text 131 103 number - sets number of cells., f 72; +#X text 145 122 init - non zero sets to init mode., f 70; +#X text 181 352 float - cell number (indexed from 0)., f 63; +#X restore 435 18 pd reference; +#X text 526 18 <= click; +#X obj 7 53 cnv 1 593 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 0 0 5 0; #X connect 1 0 8 0; #X connect 2 0 5 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/hslider-help.pd puredata-0.52.2+ds0/doc/5.reference/hslider-help.pd --- puredata-0.52.1+ds0/doc/5.reference/hslider-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/hslider-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,7 +1,7 @@ -#N canvas 715 39 543 552 12; -#X floatatom 156 335 7 0 0 0 - - - 0; -#X msg 206 231 set \$1; -#X obj 125 219 bng 18 250 50 0 empty empty empty 8 -8 0 10 #fcfcfc +#N canvas 493 39 543 549 12; +#X floatatom 155 353 7 0 0 0 - - - 0; +#X msg 205 249 set \$1; +#X obj 124 237 bng 18 250 50 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 #000000; #N canvas 837 70 559 433 old-behavior 0; #X floatatom 134 318 5 0 0 0 - - - 0; @@ -44,29 +44,28 @@ #X connect 15 0 0 0; #X connect 16 0 5 0; #X connect 17 0 5 0; -#X restore 371 383 pd old-behavior; -#X obj 156 374 print hsl; -#X floatatom 156 219 5 0 0 0 - - - 0; -#X floatatom 206 208 5 0 0 0 - - - 0; -#X obj 159 286 hsl 128 18 0 127 0 0 empty empty Slider 73 -11 0 14 +#X restore 370 401 pd old-behavior; +#X obj 155 392 print hsl; +#X floatatom 155 237 5 0 0 0 - - - 0; +#X floatatom 205 226 5 0 0 0 - - - 0; +#X obj 158 304 hsl 128 18 0 127 0 0 empty empty Slider 73 -11 0 14 #dcdcdc #000000 #0400fc 0 1; -#X obj 53 24 hsl 128 18 0 127 0 0 empty empty empty -2 -8 0 10 #fcfcfc +#X obj 45 14 hsl 128 18 0 127 0 0 empty empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1; -#X text 285 429 (c) musil@iem.kug.ac.at; -#X text 321 445 IEM KUG \, Graz \, Austria \, 2002, f 14; -#X text 61 506 see also:; -#X obj 135 506 x_all_guis; -#X text 75 430 This object is part of the "iemguis" library \, natively +#X text 283 439 (c) musil@iem.kug.ac.at; +#X text 319 455 IEM KUG \, Graz \, Austria \, 2002, f 14; +#X text 19 517 see also:; +#X text 73 440 This object is part of the "iemguis" library \, natively included in Pd version 0.34., f 28; -#X text 292 505 updated for Pd version 0.51; -#X text 22 140 Insert it from the Put menu (named as "Hslider") or +#X text 323 516 updated for Pd version 0.51; +#X text 22 165 Insert it from the Put menu (named as "Hslider") or its shortcut. Alternatively \, create it by typing "hslider" or "hsl" into an object box. Right click for properties (to set size \, colors -\, labels \, etc)., f 69; -#X text 193 24 - [hslider]/[hsl]: Horizontal Slider; -#X text 29 280 click & drag ==> (shift-click for fine tuning). Right +\, labels \, etc)., f 70; +#X text 185 8 - [hslider]/[hsl]: Horizontal Slider, f 18; +#X text 28 298 click & drag ==> (shift-click for fine tuning). Right click for properties., f 16; -#X text 271 333 COMPATIBILITY NOTE: The behavior changed in Pd 0.46! +#X text 270 351 COMPATIBILITY NOTE: The behavior changed in Pd 0.46! Check details and how to get it back:, f 33; #N canvas 665 62 613 486 position 0; #X floatatom 142 146 4 0 1000 0 - - - 0; @@ -109,7 +108,7 @@ #X connect 14 0 22 0; #X connect 17 0 22 0; #X connect 18 0 3 0; -#X restore 412 255 pd position; +#X restore 411 273 pd position; #N canvas 487 137 358 407 properties 0; #N canvas 841 92 656 573 colors 0; #X floatatom 72 244 3 0 29 0 - - - 0; @@ -487,7 +486,7 @@ #X connect 1 0 0 0; #X connect 2 0 4 0; #X restore 173 172 pd init; -#N canvas 883 96 817 380 send-receive 0; +#N canvas 863 96 817 380 send-receive 0; #X msg 210 202 receive empty; #X msg 241 266 send empty; #X floatatom 61 179 5 0 0 0 - - - 0; @@ -516,7 +515,7 @@ 0 10 #fcfcfc #000000 #000000 0 1; #X text 439 110 Feedback protection: iemguis can have the same name for both the send and receive symbols. This works without 'stack overflow' -erros because they have feedback protection. See example below., f +errors because they have feedback protection. See example below., f 50; #X connect 0 0 4 0; #X connect 1 0 4 0; @@ -611,13 +610,7 @@ #X text 45 13 All the parameters from the properties window can be set via messages as well. See examples and more details on each parameter in the subpatches below:, f 39; -#X restore 398 227 pd properties; -#X text 22 55 The horizontal slider is a GUI (Graphical User Interface) -that sends numbers. Click on it and drag to output values - use shift-click -and drag for fine-tuning by a factor of a hundredth. Incoming floats -set the slider's value and are passed through (even if outside the -slider's range). The 'set' message only sets the slider value without -output. A bang message sends the slider's value., f 69; +#X restore 397 245 pd properties; #N canvas 781 223 444 403 example-discrete 0; #X floatatom 81 206 8 0 0 0 - - - 0; #X obj 81 351 print fixed-steps; @@ -670,7 +663,58 @@ #X connect 5 0 11 0; #X connect 11 0 4 0; #X connect 13 0 0 0; -#X restore 357 283 pd example-discrete; +#X restore 356 301 pd example-discrete; +#X obj 93 517 all_guis; +#N canvas 653 117 660 435 reference 0; +#X obj 8 52 cnv 5 640 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X text 118 184 label - sets label symbol., f 72; +#X text 42 203 label_font -; +#X text 49 235 label_pos -; +#X text 237 234 sets label position., f 55; +#X obj 7 410 cnv 5 640 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 125 284 send - sets send symbol., f 71; +#X text 97 303 recceive - sets receive symbol., f 75; +#X text 133 253 color -; +#X text 237 252 first element sets background color and third sets +font color (either floats or symbols in hexadecimal format).; +#X text 237 202 sets font type <0: DejaVu Sans Mono \, 1: Helvetica +\, 2: Times> and font size., f 50; +#X text 90 322 pos - sets position in the patch canvas. +, f 76; +#X text 77 341 delta -; +#X text 237 340 changes the position by a x/y delta in pixels., f +55; +#X text 181 63 float - set and output number., f 63; +#X text 132 80 size - sets the cell size in pixels., f 70 +; +#X text 132 149 init - non zero sets to init mode., f 70; +#X obj 7 369 cnv 5 640 5 empty empty OUTLET: 8 18 0 13 #202020 #000000 +0; +#X obj 45 18 hsl 128 18 0 127 0 0 empty empty empty -2 -8 0 10 #fcfcfc +#000000 #000000 0 1; +#X text 185 17 - [hslider]/[hsl]: Horizontal Slider., f 44; +#X text 76 97 range - sets minimum and maximum range. +, f 78; +#X text 195 114 lin - sets mode to linear., f 61; +#X text 195 131 log - sets mode to logarthmic., f 61; +#X text 118 166 steady - non zero sets to steady \, zero sets +to jump on click., f 72; +#X text 181 382 float - slider value., f 63; +#X restore 361 15 pd reference; +#X text 452 15 <= click; +#X obj 7 49 cnv 1 525 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 7 504 cnv 1 525 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 22 60 The horizontal slider GUI (Graphical User Interface) +sends numbers via clicking and dragging. The values are evenly spread +depending on the slider's range and size - use shift-click and drag +for fine-tuning by a factor of a hundredth. Incoming floats set the +slider's value and are passed through (even if outside the slider's +range). The 'set' message only sets the slider value without output. +A bang message sends the slider's value., f 70; #X connect 0 0 4 0; #X connect 1 0 7 0; #X connect 2 0 7 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/inlet-outlet-help.pd puredata-0.52.2+ds0/doc/5.reference/inlet-outlet-help.pd --- puredata-0.52.1+ds0/doc/5.reference/inlet-outlet-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/inlet-outlet-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,21 +1,17 @@ -#N canvas 669 111 580 580 12; -#X obj 125 23 inlet; -#X text 183 22 - control inlet; -#X obj 315 22 inlet~; -#X text 375 22 - audio inlet; -#X obj 125 51 outlet; -#X text 183 53 - control outlet; -#X obj 315 50 outlet~; -#X text 375 50 - audio outlet; -#X obj 303 311 print~; -#X obj 303 231 sig~ 12; -#X floatatom 61 235 5 0 0 0 - - - 0; -#X floatatom 61 287 5 0 0 0 - - - 0; -#X text 31 214 messages in and out; -#X text 273 208 audio in and out; -#X text 45 523 see also:; -#X obj 119 524 block~; -#X obj 315 289 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#N canvas 560 45 541 519 12; +#X obj 25 10 inlet; +#X obj 70 10 inlet~; +#X obj 25 38 outlet; +#X obj 75 38 outlet~; +#X obj 273 288 print~; +#X obj 273 208 sig~ 12; +#X floatatom 31 212 5 0 0 0 - - - 0; +#X floatatom 31 264 5 0 0 0 - - - 0; +#X text 27 191 messages in and out; +#X text 243 185 audio in and out; +#X text 19 485 see also:; +#X obj 93 486 block~; +#X obj 285 266 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; #N canvas 486 122 538 582 up/downsampling 0; #X obj 37 395 print~; @@ -41,8 +37,6 @@ #X obj 33 191 tabreceive~ \$0-tab; #N canvas 162 294 571 346 test-subpatch-upsampled 0; #X obj 40 17 block~ 128 1 2; -#X obj 43 144 inlet~ hold; -#X obj 318 149 inlet~ lin; #X obj 183 200 print~; #X obj 201 174 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; @@ -59,12 +53,14 @@ #X text 183 113 zero-padded; #X text 43 245 The default \, if no method is specified \, is sample/hold. ; -#X connect 1 0 5 0; -#X connect 2 0 7 0; +#X obj 43 144 inlet~ fwd hold; +#X obj 318 149 inlet~ fwd lin; +#X connect 2 0 1 0; #X connect 4 0 3 0; #X connect 6 0 5 0; -#X connect 8 0 7 0; -#X connect 12 0 3 0; +#X connect 10 0 1 0; +#X connect 13 0 3 0; +#X connect 14 0 5 0; #X restore 33 295 pd test-subpatch-upsampled; #N canvas 362 216 585 262 test-subpatch-downsampled 0; #X obj 319 151 outlet~ lin; @@ -98,14 +94,14 @@ #X connect 5 0 4 0; #X connect 8 0 7 0; #X connect 10 0 9 0; -#X connect 11 0 12 0; -#X connect 11 0 12 2; #X connect 11 0 9 0; #X connect 11 0 12 1; +#X connect 11 0 12 0; +#X connect 11 0 12 2; #X connect 13 0 0 0; #X connect 13 1 2 0; #X connect 13 2 4 0; -#X restore 95 348 pd up/downsampling; +#X restore 95 325 pd up/downsampling; #N canvas 309 180 813 339 subpatch-with-inlets-and-outlets 0; #X obj 97 94 inlet; #X text 49 64 control inlet for receiving messages; @@ -133,18 +129,17 @@ #X connect 8 0 7 0; #X connect 10 0 9 0; #X connect 11 0 6 0; -#X restore 61 261 pd subpatch-with-inlets-and-outlets; +#X restore 31 238 pd subpatch-with-inlets-and-outlets; #N canvas 0 23 600 400 (subpatch) 0; -#X restore 172 524 pd; -#X text 70 97 Inlets/outlets are used to receive and get information +#X restore 146 486 pd; +#X text 51 83 Inlets/outlets are used to receive and get information on a patch window. This can be an abstraction or a subpatch. To create a subpatch \, type "pd" into an object box \, then you can put inlets and outlets by making "inlet" objects \, etc \, in the subpatch (open the patch below to see them.); -#X text 230 348 <= details on up/downsampling; -#X text 251 364 for inlet~ and outlet~, f 26; -#X text 334 513 updated for Pd version 0.51; -#X text 306 535 (new: messages to inlet~ objects); +#X text 230 325 <= details on up/downsampling; +#X text 251 341 for inlet~ and outlet~, f 26; +#X text 325 485 updated for Pd version 0.51; #N canvas 582 179 543 415 inlet~-forwarding 0; #X obj 173 182 inlet~ fwd; #X floatatom 131 145 5 0 0 0 - - - 0; @@ -172,25 +167,101 @@ #X connect 3 0 0 0; #X connect 5 0 4 0; #X connect 10 0 0 0; -#X restore 106 451 pd inlet~-forwarding; -#X obj 84 416 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X restore 96 422 pd inlet~-forwarding; +#X obj 74 387 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X floatatom 49 414 4 0 0 0 - - - 0; -#X msg 106 416 1 2 3; -#X msg 153 416 poodle 50; -#X text 255 450 <= catching messages to inlet~ objects; -#X text 332 288 (DSP needs to be on); -#X obj 431 214 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X floatatom 39 385 4 0 0 0 - - - 0; +#X msg 96 387 1 2 3; +#X msg 143 387 poodle 50; +#X text 245 421 <= catching messages to inlet~ objects; +#X text 302 265 (DSP needs to be on); +#X obj 401 191 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 455 215 DSP on/off; -#X msg 431 238 \; pd dsp \$1; -#X connect 9 0 18 1; -#X connect 10 0 18 0; -#X connect 16 0 8 0; -#X connect 18 0 11 0; -#X connect 18 1 8 0; -#X connect 26 0 25 0; -#X connect 27 0 25 0; -#X connect 28 0 25 0; -#X connect 29 0 25 0; -#X connect 32 0 34 0; +#X text 425 192 DSP on/off; +#X msg 401 215 \; pd dsp \$1; +#X text 135 10 - control/audio inlet; +#X text 136 38 - control/audio outlet; +#N canvas 229 90 1137 574 reference 0; +#X obj 8 52 cnv 5 530 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 7 170 cnv 5 530 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 91 cnv 5 530 5 empty empty OUTLET: 8 18 0 13 #202020 #000000 +0; +#X obj 30 19 inlet; +#X text 80 19 - control inlet; +#X obj 7 132 cnv 5 530 5 empty empty ARGUMENTS: 8 18 0 13 #202020 #000000 +0; +#X text 153 104 anything - any message from parent patch., f 42; +#X obj 8 272 cnv 5 530 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 7 522 cnv 5 530 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 311 cnv 5 530 5 empty empty OUTLET: 8 18 0 13 #202020 #000000 +0; +#X obj 7 425 cnv 5 530 5 empty empty ARGUMENTS: 8 18 0 13 #202020 #000000 +0; +#X obj 30 239 inlet~; +#X text 84 239 - audio inlet; +#X text 161 144 NONE; +#X text 156 64 NONE; +#X text 134 285 float - set default value for no signal connected. +; +#X text 111 351 signal - signal from parent patch., f 42; +#X obj 7 345 cnv 1 530 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 7 376 cnv 1 530 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 111 437 1) symbol -; +#X text 199 438 'fwd' to turn message forwarding on. Alternatively +\, you can set upsampling method: 'hold' for sample/hold (default) +\, 'pad' for zero-padded and 'lin' for linear interpolation)., f 42 +; +#X text 112 383 anything -; +#X text 192 383 any message from parent patch (when give a 'fwd' argument. +, f 30; +#X obj 558 52 cnv 5 530 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 557 170 cnv 5 530 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 557 91 cnv 5 530 5 empty empty OUTLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 557 132 cnv 5 530 5 empty empty ARGUMENTS: 8 18 0 13 #202020 +#000000 0; +#X obj 558 271 cnv 5 530 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 557 422 cnv 5 530 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 557 310 cnv 5 530 5 empty empty OUTLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 557 353 cnv 5 530 5 empty empty ARGUMENTS: 8 18 0 13 #202020 +#000000 0; +#X text 731 144 NONE; +#X text 661 365 1) symbol -; +#X obj 580 19 outlet; +#X text 632 19 - control outlet; +#X text 727 104 NONE; +#X text 676 64 anything - any message to send to parent patch.; +#X obj 580 238 outlet~; +#X text 638 238 - audio outlet; +#X text 684 284 signal - signal to send to parent patch.; +#X text 711 320 NONE; +#X text 749 366 downsampling method: 'hold' for sample/hold (default) +\, 'pad' for zero-padded and 'lin' for linear interpolation)., f 46 +; +#X restore 368 33 pd reference; +#X text 459 33 <= click; +#X obj 7 70 cnv 1 525 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 7 471 cnv 1 525 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X connect 5 0 14 1; +#X connect 6 0 14 0; +#X connect 12 0 4 0; +#X connect 14 0 7 0; +#X connect 14 1 4 0; +#X connect 21 0 20 0; +#X connect 22 0 20 0; +#X connect 23 0 20 0; +#X connect 24 0 20 0; +#X connect 27 0 29 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/int-help.pd puredata-0.52.2+ds0/doc/5.reference/int-help.pd --- puredata-0.52.1+ds0/doc/5.reference/int-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/int-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,34 +1,27 @@ -#N canvas 680 75 610 616 12; -#X msg 39 182 bang; -#X floatatom 71 458 5 0 0 0 - - - 0; -#X floatatom 70 268 5 0 0 0 - - - 0; -#X floatatom 103 398 5 0 0 0 - - - 0; -#X text 143 398 sets the value; -#X text 116 429 creation argument initializes the value; -#X text 83 181 output the value; -#X text 112 267 set and output the value; -#X text 31 544 see also:; -#X obj 150 544 value; -#X obj 197 544 send; -#X obj 52 22 int; -#X obj 71 428 int 6; -#X msg 97 334 send int-help; -#X obj 102 544 float; -#X msg 70 212 9.6; -#X msg 80 235 -9.6; -#X text 124 223 <= non-integers get truncated toward zero, f 21; -#X text 370 543 updated for Pd version 0.48; -#X obj 53 46 i; -#X floatatom 454 288 5 0 0 0 - - - 0; -#X floatatom 455 361 5 0 0 0 - - - 0; -#X obj 455 317 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#N canvas 502 23 602 571 12; +#X msg 37 173 bang; +#X floatatom 69 449 5 0 0 0 - - - 0; +#X floatatom 68 259 5 0 0 0 - - - 0; +#X floatatom 101 389 5 0 0 0 - - - 0; +#X text 141 389 sets the value; +#X text 114 420 creation argument initializes the value; +#X text 81 172 output the value; +#X text 110 258 set and output the value; +#X obj 69 419 int 6; +#X msg 95 325 send int-help; +#X msg 68 203 9.6; +#X msg 78 226 -9.6; +#X text 122 214 <= non-integers get truncated toward zero, f 21; +#X floatatom 452 279 5 0 0 0 - - - 0; +#X floatatom 453 352 5 0 0 0 - - - 0; +#X obj 453 308 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X floatatom 455 393 5 0 0 0 - int-help - 0; -#X text 501 393 <= right click for properties, f 10; -#X text 205 327 send to a named object such as a GUI \, a receive or +#X floatatom 453 384 5 0 0 0 - int-help - 0; +#X text 499 384 <= right click for properties, f 10; +#X text 203 318 send to a named object such as a GUI \, a receive or value objects =>, f 34; -#X obj 453 264 r int-help; -#X obj 455 337 v int-help; +#X obj 451 255 r int-help; +#X obj 453 328 v int-help; #N canvas 995 162 565 399 Dealing_with_"\$0" 0; #X text 36 33 '\$0' - the patch ID number used to force locality in Pd - is widely used in send and receive names \, speacially in abstractions @@ -42,7 +35,7 @@ #X obj 288 192 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; #X floatatom 288 256 5 0 0 0 - - - 0; -#X floatatom 390 221 5 0 0 0 - #0-x - 0; +#X floatatom 390 221 5 0 0 0 - \$0-x - 0; #X msg 44 254 send \$1; #X obj 44 200 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; @@ -63,30 +56,74 @@ #X connect 10 0 11 0; #X connect 11 0 9 0; #X connect 12 0 1 0; -#X restore 364 483 pd Dealing_with_"\$0"; -#X text 177 470 open subpatch to see how to deal with '\$0' ======> +#X restore 362 474 pd Dealing_with_"\$0"; +#X text 175 461 open subpatch to see how to deal with '\$0' ======> , f 25; -#X text 40 89 The int object stores a number initialized by its creation +#X text 38 80 The int object stores a number initialized by its creation argument \, which may be reset using its inlet and output by sending it the "bang" message. Sending a number sets a new value and outputs -it. A non-integer intput is truncated to an integer (a la Max) so the +it. A non-integer input is truncated to an integer (a la Max) so the object can also be used to truncate values and convert from float to integers., f 72; -#X text 87 21 - truncate floats and store an integer.; -#X text 89 45 - abreviation.; -#X obj 241 544 expr int($f1); -#X obj 71 490 print float; -#X msg 85 299 3 10 a; -#X text 138 300 list get truncated to the first item; -#X connect 0 0 12 0; -#X connect 1 0 34 0; -#X connect 2 0 12 0; -#X connect 3 0 12 1; -#X connect 12 0 1 0; -#X connect 13 0 12 0; -#X connect 15 0 2 0; -#X connect 16 0 2 0; -#X connect 22 0 27 0; -#X connect 26 0 20 0; -#X connect 27 0 21 0; -#X connect 35 0 12 0; +#X obj 69 481 print float; +#X msg 83 290 3 10 a; +#X text 136 291 list get truncated to the first item; +#X text 23 535 see also:; +#X obj 142 535 value; +#X obj 189 535 send; +#X obj 50 13 int; +#X obj 94 535 float; +#X text 386 534 updated for Pd version 0.48; +#X obj 51 37 i; +#X obj 11 69 cnv 1 580 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 729 137 575 340 reference 0; +#X obj 10 51 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 9 82 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 10 234 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 10 271 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 9 308 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 9 199 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 32 16 int; +#X text 85 107 float -; +#X text 141 159 send the stored value to a [receive] or [value] object +that has the same name as the symbol (no output)., f 55; +#X text 29 159 send -; +#X obj 64 16 i; +#X text 92 88 bang - output the stored value., f 62; +#X text 109 244 float - the stored integer value., f 49; +#X text 185 282 initially stored value (default 0)., f 38; +#X text 141 106 store and output the value \, non-integers are truncated. +; +#X text 98 15 - truncate floats and store an integer.; +#X text 90 125 list -; +#X text 141 125 considers the first element if it's a float \, stores +and outputs it.; +#X text 107 282 1) float -; +#X text 80 206 float - store the value \, non-integers are truncated +(no output)., f 65; +#X restore 419 31 pd reference; +#X text 517 32 <= click; +#X text 85 12 - truncate floats and store an integer.; +#X text 87 36 - abbreviation.; +#X obj 233 535 expr int($f1); +#X obj 13 518 cnv 1 580 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X connect 0 0 8 0; +#X connect 1 0 24 0; +#X connect 2 0 8 0; +#X connect 3 0 8 1; +#X connect 8 0 1 0; +#X connect 9 0 8 0; +#X connect 10 0 2 0; +#X connect 11 0 2 0; +#X connect 15 0 20 0; +#X connect 19 0 13 0; +#X connect 20 0 14 0; +#X connect 25 0 8 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/key-help.pd puredata-0.52.2+ds0/doc/5.reference/key-help.pd --- puredata-0.52.1+ds0/doc/5.reference/key-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/key-help.pd 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ -#N canvas 736 67 501 308 12; -#X obj 29 15 key; -#X obj 62 14 keyup; -#X obj 113 14 keyname; -#X obj 38 67 key; -#X floatatom 38 95 3 0 0 0 - - - 0; -#X floatatom 77 93 3 0 0 0 - - - 0; -#X obj 77 67 keyup; -#X floatatom 128 93 3 0 0 0 - - - 0; -#X obj 128 67 keyname; -#X symbolatom 174 94 10 0 0 0 - - - 0; -#X text 261 267 updated for Pd version 0.32.; -#X text 26 133 Key and keyup report the (system dependent) numbers -of "printing" keys of the keyboard. Keyname gives the symbolic name -of the key \, with a 1 or 0 if it's up or down \, and works with non-printing -keys like shift or "F1".; -#X text 26 200 Caveat -- this only works if Pd actually gets the key -events which can depend on the stacking order of windows and/or the -pointer location \, depending on the system.; -#X text 181 13 - grab keyboard; -#X connect 3 0 4 0; -#X connect 6 0 5 0; -#X connect 8 0 7 0; -#X connect 8 1 9 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/key-input-help.pd puredata-0.52.2+ds0/doc/5.reference/key-input-help.pd --- puredata-0.52.1+ds0/doc/5.reference/key-input-help.pd 1970-01-01 00:00:00.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/key-input-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -0,0 +1,71 @@ +#N canvas 544 41 523 358 12; +#X obj 22 15 key; +#X obj 51 15 keyup; +#X obj 94 15 keyname; +#X obj 125 66 key; +#X floatatom 125 95 4 0 0 0 - - - 0; +#X obj 275 66 keyname; +#X symbolatom 321 95 10 0 0 0 - - - 0; +#X text 289 332 updated for Pd version 0.32.; +#X text 30 261 Caveat -- this only works if Pd actually gets the key +events which can depend on the stacking order of windows and/or the +pointer location \, depending on the system., f 65; +#X text 30 134 Key and keyup report the (system dependent) numbers +of "printing" keys of the keyboard. Key outputs when the keyboard key +is pressed while keyup outputs it when you release the key. Check your +system's preferences for 'autorepeat' as it affects the output of these +objects., f 65; +#X text 30 211 keyname gives the symbolic name of the key on the right +outlet \, with a 1 or 0 in the left outlet if it's up or down \, and +works with non-printing keys like shift or "F1"., f 65; +#X obj 194 66 keyup; +#X floatatom 194 95 4 0 0 0 - - - 0; +#X floatatom 275 95 4 0 0 0 - - - 0; +#X text 158 14 - grab keyboard input; +#X obj 8 50 cnv 1 510 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 753 101 572 451 reference 0; +#X obj 9 97 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 9 135 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 172 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 206 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 22 15 key; +#X obj 51 15 keyup; +#X obj 94 15 keyname; +#X text 158 14 - grab keyboard input; +#X text 140 109 NONE, f 5; +#X text 140 181 NONE, f 5; +#X obj 22 65 key; +#X obj 51 65 keyup; +#X text 109 145 float - key number when pressed (key) and released +(keyup); +#X obj 9 277 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 9 315 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 396 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 427 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 140 289 NONE, f 5; +#X text 140 404 NONE, f 5; +#X obj 22 249 keyname; +#X text 126 343 float - 1 when key is pressed and 0 when released. +; +#X obj 10 365 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 10 338 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 119 373 symbol - key name.; +#X restore 338 15 pd reference; +#X text 436 16 <= click; +#X obj 8 322 cnv 1 510 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X connect 3 0 4 0; +#X connect 5 0 13 0; +#X connect 5 1 6 0; +#X connect 11 0 12 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/line~-help.pd puredata-0.52.2+ds0/doc/5.reference/line~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/line~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/line~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,39 +1,69 @@ -#N canvas 641 24 534 618 12; -#X obj 71 489 snapshot~; -#X obj 41 28 line~; -#X obj 71 367 line~; -#X floatatom 71 516 0 0 0 0 - - - 0; -#X msg 59 193 1 1000; -#X msg 96 299 2; -#X msg 82 246 stop; -#X text 119 247 "stop" message freezes line~ at its current value; -#X msg 91 276 0; -#X text 46 555 see also:; -#X obj 124 556 line; -#X text 95 27 - audio ramp generator; -#X text 291 563 updated for Pd version 0.33; -#X obj 170 556 vline~; -#X floatatom 103 336 5 0 0 0 - - - 0; -#X text 130 281 a single number jumps to value immediately if no value +#N canvas 641 24 519 603 12; +#X obj 78 481 snapshot~; +#X obj 31 15 line~; +#X obj 78 419 line~; +#X floatatom 78 514 8 0 0 0 - - - 0; +#X msg 50 185 1 1000; +#X msg 91 291 2; +#X msg 77 238 stop; +#X text 114 239 "stop" message freezes line~ at its current value; +#X msg 86 268 0; +#X text 16 568 see also:; +#X obj 94 569 line; +#X text 85 14 - audio ramp generator; +#X text 294 567 updated for Pd version 0.33; +#X obj 140 569 vline~; +#X floatatom 110 378 5 0 0 0 - - - 0; +#X text 125 273 a single number jumps to value immediately if no value is priorly sent to the right outlet, f 45; -#X text 145 329 right inlet sets next ramp time (cleared when ramp +#X text 152 371 right inlet sets next ramp time (cleared when ramp starts!), f 31; -#X text 126 193 a pair of numbers starts a ramp (first value: destination +#X text 117 185 a pair of numbers starts a ramp (first value: destination \, second: ramp time), f 38; -#X msg 71 216 0 5000; -#X text 21 65 The line~ object generates linear ramps whose levels +#X msg 62 208 0 5000; +#X text 28 57 The line~ object generates linear ramps whose levels and timing are determined by messages you send it. A list of two floats distributes the value over the inlets \, as usual in Pd. Note that the right inlet (that sets the ramp time in milliseconds) does not remember old values (unlike every other inlet in Pd). Thus \, if you don't priorly specify a time in the right inlet and sent line~ a float \, it jumps immediately to the target value., f 64; -#X obj 94 449 metro 100; -#X obj 94 422 loadbang; -#X obj 194 414 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X obj 145 450 metro 100; +#X obj 145 423 loadbang; +#X obj 274 432 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X msg 194 440 \; pd dsp \$1; -#X text 211 412 DSP on/off; +#X msg 274 458 \; pd dsp \$1; +#X text 297 430 DSP on/off; +#X obj 8 46 cnv 1 500 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 427 13 <= click; +#N canvas 742 179 579 267 reference 0; +#X obj 9 41 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 9 169 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 203 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 237 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 9 74 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X text 133 79 float - set target value and start ramp.; +#X text 141 98 stop - stop the ramp.; +#X obj 9 126 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X text 133 135 float - set next ramp time (cleared when ramp starts). +; +#X obj 26 12 line~; +#X text 80 11 - audio ramp generator; +#X text 126 178 signal - ramp values.; +#X text 141 212 NONE; +#X restore 333 13 pd reference; +#X obj 8 554 cnv 1 500 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X msg 106 329 0 \, 1 1000; +#X text 185 322 setting start \, target and duration with two messages. +, f 28; #X connect 0 0 3 0; #X connect 2 0 0 0; #X connect 4 0 2 0; @@ -45,3 +75,4 @@ #X connect 20 0 0 0; #X connect 21 0 20 0; #X connect 22 0 23 0; +#X connect 29 0 2 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/line-help.pd puredata-0.52.2+ds0/doc/5.reference/line-help.pd --- puredata-0.52.1+ds0/doc/5.reference/line-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/line-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,42 +1,42 @@ -#N canvas 760 36 617 744 12; -#X floatatom 35 527 8 0 0 0 - - - 0; -#X msg 71 365 39; -#X obj 71 18 line; -#X text 111 17 - ramp generator; -#X text 29 703 see also:; -#X obj 110 703 line~; -#X msg 48 298 stop; -#X text 84 301 "stop" message to stop output; -#X obj 35 501 line 0 100; -#X text 139 506 creation arguments:; -#X text 279 499 1 initial value; -#X msg 61 332 set 5; -#X obj 156 703 vline~; -#X floatatom 102 464 0 1 100 0 - - - 0; -#X floatatom 98 437 0 0 0 0 - - - 0; -#X text 278 515 2 time grain in milliseconds (20 by default); -#X msg 206 636 \; pd compatibility 0.47; -#X text 34 568 COMPATIBILITY NOTE: in Pd versions before 0.48 \, a +#N canvas 489 23 615 711 12; +#X floatatom 35 519 8 0 0 0 - - - 0; +#X msg 71 357 39; +#X obj 31 11 line; +#X text 71 10 - ramp generator; +#X text 25 682 see also:; +#X obj 106 682 line~; +#X msg 48 290 stop; +#X text 84 293 "stop" message to stop output; +#X obj 35 493 line 0 100; +#X text 139 498 creation arguments:; +#X text 279 491 1 initial value; +#X msg 61 324 set 5; +#X obj 152 682 vline~; +#X floatatom 102 456 5 1 100 0 - - - 0; +#X floatatom 91 429 5 0 0 0 - - - 0; +#X text 278 507 2 time grain in milliseconds (20 by default); +#X msg 206 622 \; pd compatibility 0.47; +#X text 34 554 COMPATIBILITY NOTE: in Pd versions before 0.48 \, a stop message followed by a new ramp message would incorrectly ramp from the previous start. It now ramps from wherever in the previous segment the object was stopped at. To get the old behavior \, set "compatibility" to 0.47 or below in Pd's command line or by a message:, f 74; -#X text 389 701 updated for Pd version 0.48; -#X text 130 437 middle inlet sets next ramp time (cleared when ramp +#X text 388 681 updated for Pd version 0.48; +#X text 135 429 middle inlet sets next ramp time (cleared when ramp starts!); -#X text 138 465 right inlet sets grain (not cleared \, acts as normal +#X text 144 456 right inlet sets grain (not cleared \, acts as normal inlet); -#X text 108 332 "set" to set initial ramp value (without output); -#X msg 36 262 \$1 1000; -#X obj 36 241 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X text 108 324 "set" to set initial ramp value (without output); +#X msg 36 256 \$1 1000; +#X obj 36 233 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X msg 80 400 0 \, 1 1000 100; -#X text 99 261 a pair sets target and ramp time; -#X text 182 400 float jumps to value \, list sets target \, time and +#X msg 80 392 0 \, 1 1000 100; +#X text 99 255 a pair sets target and ramp time; +#X text 182 392 float jumps to value \, list sets target \, time and grain; -#X text 105 359 A float jumps to the value if no ramp time is set via +#X text 105 351 A float jumps to the value if no ramp time is set via the middle inlet, f 37; -#X text 39 52 The line object takes values for target/time/grain and +#X text 39 48 The line object takes values for target/time/grain and ramps to the specified target over the time given in milliseconds \, updating its output at the "grain rate" (also in milliseconds). A list up to 3 floats distributes the values to the inlets \, as usual in @@ -49,6 +49,38 @@ default value). If the line object receives a message specifying some new target before reaching the previous one \, it takes off from its current value., f 75; +#X obj 8 40 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 517 11 <= click; +#N canvas 724 135 583 338 reference 0; +#X obj 9 42 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 9 220 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 254 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 313 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 30 12 line; +#X text 70 11 - ramp generator; +#X text 150 229 float - ramp values.; +#X obj 9 75 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X text 157 80 float - set target value and start ramp.; +#X text 165 99 stop - stop the ramp.; +#X text 116 118 set - set initial ramp value.; +#X obj 9 145 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 8 183 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #9f9f9f #000000 +0; +#X text 157 154 float - set next ramp time (cleared when ramp starts). +; +#X text 157 190 float - sets time grain in ms.; +#X text 130 264 1) float - initial ramp value (default 0).; +#X text 130 285 2) float - time grain in ms (default 20 ms).; +#X restore 423 11 pd reference; +#X obj 8 670 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 1 0 8 0; #X connect 6 0 8 0; #X connect 8 0 0 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/list-help.pd puredata-0.52.2+ds0/doc/5.reference/list-help.pd --- puredata-0.52.1+ds0/doc/5.reference/list-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/list-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,7 +1,7 @@ -#N canvas 824 23 595 591 12; -#X obj 35 15 list; -#X text 82 16 - building and using variable-length messages; -#N canvas 597 110 526 653 about-lists 0; +#N canvas 467 37 602 601 12; +#X obj 24 12 list; +#X text 64 12 - building and using variable-length messages; +#N canvas 640 85 526 653 about-lists 0; #X obj 75 611 print message; #X msg 65 424 list x.wav 44100; #X msg 75 582 read \$1 \$2; @@ -47,33 +47,63 @@ #X connect 6 0 4 0; #X connect 12 0 14 0; #X connect 13 0 14 0; -#X restore 112 400 pd about-lists; -#X obj 28 86 list append; -#X obj 28 111 list prepend; -#X obj 28 185 list trim; -#X obj 28 160 list split; -#X text 146 85 - append the second list to the first; -#X text 147 112 - prepend the second list to the first; -#X text 147 161 - split a list in two; -#X text 147 188 - trim the "list" selector off; -#N canvas 796 271 486 448 trim 0; -#X msg 169 247 1 2 3; -#X msg 147 195 list cis boom bah; -#X msg 180 273 bang; -#X msg 136 169 walk the dog; -#X obj 154 359 list trim; -#X obj 154 392 print trim; -#X msg 188 301 1 x y; -#X msg 192 328 x 1 y; -#X text 29 19 trim - convert list to message \, using first item as -selector; -#X msg 159 221 55; -#X text 27 55 The "list trim" object inputs lists (or makes lists out +#X restore 303 390 pd about-lists; +#X obj 28 90 list append; +#X obj 28 115 list prepend; +#X obj 28 189 list trim; +#X obj 28 164 list split; +#X text 156 89 - append the second list to the first; +#X text 157 116 - prepend the second list to the first; +#X text 157 165 - split a list in two; +#X text 157 192 - trim the "list" selector off; +#N canvas 646 56 545 446 trim 0; +#X msg 156 255 1 2 3; +#X msg 134 203 list cis boom bah; +#X msg 167 281 bang; +#X msg 123 177 walk the dog; +#X obj 141 367 list trim; +#X obj 141 400 print trim; +#X msg 175 309 1 x y; +#X msg 179 336 x 1 y; +#X msg 146 229 55; +#X text 22 67 The "list trim" object inputs lists (or makes lists out of incoming non-list messages) and outputs a message whose selector is the first item of the list \, and whose arguments \, if any \, are the remainder of the list. If the list has no items \, or if its first item is numeric \, the selector is "list" (which might print out as -list \, float \, or bang.); +list \, float \, or bang.), f 68; +#X text 435 17 <= click; +#N canvas 645 141 576 245 reference 0; +#X obj 9 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 132 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 174 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 210 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 180 183 NONE.; +#X text 119 103 anything -; +#X text 147 63 list -; +#X text 199 63 list messages to be trimmed.; +#X text 133 83 symbol -; +#X text 199 83 the symbol selector is also trimmed.; +#X text 199 103 any other messages are output intact.; +#X text 119 144 anything -; +#X text 199 143 trimmed list.; +#X obj 32 18 list trim; +#X text 107 17 - remove list selector.; +#X restore 341 18 pd reference; +#X obj 14 54 cnv 1 500 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 32 18 list trim; +#X text 107 17 - remove list selector.; +#X obj 348 362 list trim; +#X obj 348 395 print trim; +#X symbolatom 348 324 10 0 0 0 - - - 0; +#X msg 347 286 symbol cat; +#X text 335 202 Symbol messages also gets the symbol selector trimmed. +, f 15; #X connect 0 0 4 0; #X connect 1 0 4 0; #X connect 2 0 4 0; @@ -81,77 +111,111 @@ #X connect 4 0 5 0; #X connect 6 0 4 0; #X connect 7 0 4 0; -#X connect 9 0 4 0; -#X restore 461 185 pd trim; -#X text 459 59 details:; -#X text 457 42 click for; -#N canvas 627 166 567 470 append 0; -#X obj 72 352 list append 1 2, f 17; -#X floatatom 82 172 5 0 0 0 - - - 0; -#X msg 72 147 1 2 3; -#X msg 59 104 list cis boom bah; -#X msg 90 197 bang; -#X msg 211 314 bang; -#X msg 35 65 walk the dog; -#X msg 188 262 list x y z; -#X msg 170 236 go dog go; -#X msg 201 287 4 5 6 and 7; -#X text 136 64 non-list message converted to list; -#X text 203 97 list starting with symbol; -#X text 202 116 (needs explicit "list" selector); -#X text 127 172 number is one-element list; -#X text 127 147 numeric list; -#X text 137 198 bang is zero-element list; -#X text 245 235 same for right inlet...; -#X text 205 352 <= creation args initialize the list to append; -#X text 291 279 (note: a number as the first item makes this a list.) +#X connect 8 0 4 0; +#X connect 15 0 16 0; +#X connect 17 0 15 0; +#X connect 18 0 17 0; +#X restore 481 189 pd trim; +#N canvas 612 115 624 532 append 0; +#X floatatom 109 247 5 0 0 0 - - - 0; +#X msg 99 222 1 2 3; +#X msg 63 185 list cis boom bah; +#X msg 117 272 bang; +#X msg 238 389 bang; +#X msg 39 146 walk the dog; +#X msg 215 337 list x y z; +#X msg 197 311 go dog go; +#X msg 228 362 4 5 6 and 7; +#X text 198 178 list starting with symbol; +#X text 197 197 (needs explicit "list" selector); +#X text 154 247 number is one-element list; +#X text 154 222 numeric list; +#X text 164 273 bang is zero-element list; +#X text 272 310 same for right inlet...; +#X text 232 427 <= creation args initialize the list to append; +#X text 318 354 (note: a number as the first item makes this a list.) , f 28; -#X text 251 315 zero-element list clears second list; -#X listbox 72 388 35 0 0 0 - - - 0; -#X obj 72 421 print append; -#X text 75 24 append - append (concatenate) the second list to the -first; -#X connect 0 0 20 0; -#X connect 1 0 0 0; -#X connect 2 0 0 0; -#X connect 3 0 0 0; -#X connect 4 0 0 0; -#X connect 5 0 0 1; -#X connect 6 0 0 0; -#X connect 7 0 0 1; -#X connect 8 0 0 1; -#X connect 9 0 0 1; -#X connect 20 0 21 0; -#X restore 460 86 pd append; -#N canvas 717 144 598 736 split 0; -#X msg 145 311 1 2 3; -#X msg 114 209 list cis boom bah; -#X msg 124 238 bang; -#X obj 114 439 list split 2, f 15; -#X floatatom 216 404 3 0 5 0 - - - 0; -#X obj 114 667 print split1; -#X obj 165 584 print split2; -#X msg 94 182 walk the dog; -#X msg 140 287 1 2; -#X msg 135 263 1; -#X msg 150 334 1 2 3 4; -#X msg 154 358 1 2 so are you; -#X obj 216 507 print split3; -#X text 208 666 first n; -#X text 257 583 rest of list; -#X text 310 506 shorter than n; -#X text 252 402 new split point; -#X text 190 181 non-list message converted to list; -#X text 240 209 list with three symbols; -#X text 174 266 list with one number; -#X text 212 291 ... etc; -#X text 238 438 <= creation arg inits split point; -#X text 267 357 <= if the first item is a number \, it's a list., +#X text 278 390 zero-element list clears second list; +#X listbox 99 463 35 0 0 0 - - - 0; +#X obj 99 496 print append; +#X text 516 39 <= click; +#N canvas 707 200 583 323 reference 0; +#X obj 9 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 9 200 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 247 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 285 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 27 23 list append; +#X text 119 22 - append a second list to the first; +#X text 110 256 1) list - initialize the list to append (default empty). +; +#X text 131 211 list - the concatenated list.; +#X obj 7 141 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 7 85 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 87 95 anything -; +#X text 167 95 set messages to concatenate to a second list and output +(a bang is a zero element list)., f 49; +#X text 87 153 anything -; +#X text 167 153 set messages to append to the first list (a bang is +a zero element list and clears it)., f 49; +#X restore 422 40 pd reference; +#X obj 9 81 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 27 25 list append; +#X obj 27 50 list; +#X text 70 51 - short form for "list append".; +#X text 119 24 - append a second list to the first; +#X text 45 91 Use list append to concatenate a second list (defined +via arguments or the right inlet) to the first list via the left inlet. +, f 74; +#X text 140 145 a non-list message is converted to a list; +#X obj 99 427 list append 1 2 3; +#X connect 0 0 29 0; +#X connect 1 0 29 0; +#X connect 2 0 29 0; +#X connect 3 0 29 0; +#X connect 4 0 29 1; +#X connect 5 0 29 0; +#X connect 6 0 29 1; +#X connect 7 0 29 1; +#X connect 8 0 29 1; +#X connect 18 0 19 0; +#X connect 29 0 18 0; +#X restore 480 90 pd append; +#N canvas 665 26 598 661 split 0; +#X msg 144 310 1 2 3; +#X msg 113 208 list cis boom bah; +#X msg 123 237 bang; +#X obj 113 434 list split 2, f 15; +#X floatatom 215 399 4 0 5 0 - - - 0; +#X obj 113 624 print split1; +#X obj 164 558 print split2; +#X msg 93 181 walk the dog; +#X msg 139 286 1 2; +#X msg 134 262 1; +#X msg 149 333 1 2 3 4; +#X msg 153 357 1 2 so are you; +#X obj 215 495 print split3; +#X text 207 623 first n; +#X text 256 557 rest of list; +#X text 309 494 shorter than n; +#X text 253 398 new split point; +#X text 189 180 non-list message converted to list; +#X text 239 208 list with three symbols; +#X text 173 265 list with one number; +#X text 211 290 ... etc; +#X text 237 433 <= creation arg inits split point; +#X text 266 356 <= if the first item is a number \, it's a list., f 33; -#X listbox 216 473 20 0 0 0 - - - 0; -#X listbox 165 550 20 0 0 0 - - - 0; -#X listbox 114 623 20 0 0 0 - - - 0; -#X text 43 38 The "list split" object takes lists and outputs the first +#X listbox 215 464 20 0 0 0 - - - 0; +#X listbox 164 527 20 0 0 0 - - - 0; +#X listbox 113 595 20 0 0 0 - - - 0; +#X text 40 65 The "list split" object takes lists and outputs the first "n" items (left outlet) and the remaining ones (middle outlet). If the incoming list also has 'n' items \, the middle outlet spits a list with zero elements (which becomes a bang). The two outputs appear in @@ -159,8 +223,41 @@ in the list \, it is output (in its entirety) from the third outlet instead. The creation argument or the inlet sets the split point., f 74; -#X text 161 237 list with no items (goes out the right outlet); -#X text 45 10 split - cut a list into smaller ones; +#X text 160 236 list with no items (goes out the right outlet); +#X text 493 17 <= click; +#N canvas 645 141 576 366 reference 0; +#X obj 9 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 9 162 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 294 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 332 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 123 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 7 85 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 97 95 anything -; +#X obj 32 18 list split; +#X text 114 17 - cut a list into smaller ones; +#X text 177 95 messages to be split into smaller lists.; +#X obj 7 225 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 7 187 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 7 255 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 140 303 1) float - initialize split point.; +#X text 120 133 float - sets new 'n' split point.; +#X text 141 231 list - the remaining portion of the list.; +#X text 141 195 list - the first 'n' elements of the list.; +#X text 141 264 list - if incoming list is shorter than n.; +#X restore 399 18 pd reference; +#X obj 14 54 cnv 1 570 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 32 18 list split; +#X text 114 17 - cut a list into smaller ones; #X connect 0 0 3 0; #X connect 1 0 3 0; #X connect 2 0 3 0; @@ -176,50 +273,82 @@ #X connect 23 0 12 0; #X connect 24 0 6 0; #X connect 25 0 5 0; -#X restore 461 160 pd split; -#N canvas 751 166 605 435 prepend 0; -#X floatatom 93 160 5 0 0 0 - - - 0; -#X msg 80 134 1 2 3; -#X msg 67 99 list cis boom bah; -#X msg 103 185 bang; -#X msg 233 299 bang; -#X obj 80 388 print prepend; -#X msg 35 59 walk the dog; -#X msg 221 248 list x y z; -#X msg 210 222 go dog go; -#X msg 229 272 4 5 6 and 7; -#X text 129 59 non-list message converted to list; -#X text 201 88 list starting with symbol; -#X text 200 107 (needs explicit "list" selector); -#X text 137 160 number is one-element list; -#X text 135 134 numeric list; -#X text 142 186 bang is zero-element list; -#X text 286 220 same for right inlet...; -#X obj 80 329 list prepend 1 2, f 19; -#X text 225 328 <= creation args initialize the list to prepend; -#X text 320 265 (note: a number as the first item makes this a list.) +#X restore 481 164 pd split; +#N canvas 514 118 621 482 prepend 0; +#X floatatom 101 219 5 0 0 0 - - - 0; +#X msg 88 193 1 2 3; +#X msg 75 158 list cis boom bah; +#X msg 111 244 bang; +#X msg 241 358 bang; +#X obj 88 447 print prepend; +#X msg 43 118 walk the dog; +#X msg 229 307 list x y z; +#X msg 218 281 go dog go; +#X msg 237 331 4 5 6 and 7; +#X text 209 147 list starting with symbol; +#X text 208 166 (needs explicit "list" selector); +#X text 145 219 number is one-element list; +#X text 143 193 numeric list; +#X text 150 245 bang is zero-element list; +#X text 294 279 same for right inlet...; +#X text 233 387 <= creation args initialize the list to prepend; +#X text 328 324 (note: a number as the first item makes this a list.) , f 28; -#X text 277 301 zero-element list clears second list; -#X listbox 80 358 35 0 0 0 - - - 0; -#X text 48 12 prepend - prepend the second list to the first; -#X connect 0 0 17 0; -#X connect 1 0 17 0; -#X connect 2 0 17 0; -#X connect 3 0 17 0; -#X connect 4 0 17 1; -#X connect 6 0 17 0; -#X connect 7 0 17 1; -#X connect 8 0 17 1; -#X connect 9 0 17 1; -#X connect 17 0 21 0; -#X connect 21 0 5 0; -#X restore 460 111 pd prepend; -#X text 73 331 In general \, inlets that take lists (two each for append/prepend +#X text 285 360 zero-element list clears second list; +#X listbox 88 417 35 0 0 0 - - - 0; +#X text 526 15 <= click; +#N canvas 707 200 583 323 reference 0; +#X obj 9 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 9 200 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 247 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 285 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 110 256 1) list - initialize the list to append (default empty). +; +#X obj 7 141 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 7 85 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 97 95 anything -; +#X text 97 153 anything -; +#X obj 27 15 list prepend; +#X text 119 14 - prepend a second list to the first; +#X text 177 95 set messages to be prepended by a second list and output +(a bang is a zero element list)., f 49; +#X text 127 211 list - the prepended list.; +#X text 177 153 set messages to prepend to the first list (a bang is +a zero element list and clears it)., f 49; +#X restore 432 16 pd reference; +#X obj 9 51 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 27 15 list prepend; +#X text 119 14 - prepend a second list to the first; +#X text 40 64 Use list prepend to prepend a second list (defined via +arguments or the right inlet) to the first list via the left inlet. +, f 74; +#X text 137 118 a non-list message is converted to a list; +#X obj 88 388 list prepend 1 2 3, f 19; +#X connect 0 0 27 0; +#X connect 1 0 27 0; +#X connect 2 0 27 0; +#X connect 3 0 27 0; +#X connect 4 0 27 1; +#X connect 6 0 27 0; +#X connect 7 0 27 1; +#X connect 8 0 27 1; +#X connect 9 0 27 1; +#X connect 19 0 5 0; +#X connect 27 0 19 0; +#X restore 480 115 pd prepend; +#X text 76 336 In general \, inlets that take lists (two each for append/prepend \, and one each for split and trim) will convert non-list messages (such as "set 5") to lists (such as "list set 5" automatically. Here's -more about lists in Pd:; -#X text 51 440 And here are some examples showing how to use these -objects to compose and/or use variable length messages:; +more about lists in Pd:, f 65; +#X text 101 430 And here are some examples showing how to use these +objects to compose and/or use variable length messages:, f 45; #N canvas 650 69 554 651 example1 0; #X obj 66 122 bng 17 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 #000000; @@ -286,8 +415,8 @@ #X connect 29 0 11 0; #X connect 30 0 18 0; #X connect 31 0 10 0; -#X restore 229 491 pd example1; -#X text 109 490 simple sequencer; +#X restore 237 471 pd example1; +#X text 325 471 simple sequencer; #N canvas 735 50 568 626 example2 0; #X obj 68 188 bng 17 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 #000000; @@ -354,8 +483,8 @@ #X connect 26 0 25 0; #X connect 26 1 21 0; #X connect 27 0 8 0; -#X restore 229 517 pd example2; -#X text 102 519 another sequencer; +#X restore 237 497 pd example2; +#X text 325 497 another sequencer; #N canvas 553 155 494 341 example3 0; #X obj 73 169 until; #X msg 107 113 1 2 3 4 a b c; @@ -386,124 +515,169 @@ #X connect 9 0 8 1; #X connect 10 0 8 1; #X connect 11 0 6 0; -#X restore 229 544 pd example3; -#X obj 39 293 list; -#X text 76 294 - short for "list append"; -#X text 147 213 - output number of items in list; -#N canvas 611 137 394 425 length 0; -#X text 45 15 length - number of items in list; -#X text 43 52 The "list length" object outputs the number of arguments -in a list or other message., f 44; -#X msg 166 199 1 2 3; -#X msg 144 147 list cis boom bah; -#X msg 177 225 bang; -#X msg 133 121 walk the dog; -#X msg 185 253 1 x y; -#X msg 189 280 x 1 y; -#X msg 156 173 55; -#X floatatom 151 344 5 0 0 0 - - - 0; -#X obj 151 311 list length; -#X obj 151 376 print length; -#X connect 2 0 10 0; -#X connect 3 0 10 0; -#X connect 4 0 10 0; -#X connect 5 0 10 0; -#X connect 6 0 10 0; -#X connect 7 0 10 0; +#X restore 237 524 pd example3; +#X obj 28 297 list; +#X text 65 298 - short for "list append"; +#X text 157 217 - output number of items in list; +#N canvas 611 137 533 425 length 0; +#X text 38 62 The "list length" object outputs the number of arguments +in a list or other message., f 61; +#X msg 220 207 1 2 3; +#X msg 198 155 list cis boom bah; +#X msg 231 233 bang; +#X msg 187 129 walk the dog; +#X msg 239 261 1 x y; +#X msg 243 288 x 1 y; +#X msg 210 181 55; +#X floatatom 205 352 5 0 0 0 - - - 0; +#X obj 205 319 list length; +#X obj 205 384 print length; +#X text 426 17 <= click; +#N canvas 645 141 576 212 reference 0; +#X obj 9 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 93 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 135 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 171 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 180 144 NONE.; +#X text 119 64 anything -; +#X text 144 106 float - list length.; +#X text 199 64 messages to have its elements counted.; +#X obj 32 18 list length; +#X text 120 17 - number of items in list; +#X restore 332 18 pd reference; +#X obj 14 54 cnv 1 500 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 32 18 list length; +#X text 120 17 - number of items in list; +#X connect 1 0 9 0; +#X connect 2 0 9 0; +#X connect 3 0 9 0; +#X connect 4 0 9 0; +#X connect 5 0 9 0; +#X connect 6 0 9 0; +#X connect 7 0 9 0; #X connect 8 0 10 0; -#X connect 9 0 11 0; -#X connect 10 0 9 0; -#X restore 461 210 pd length; -#X obj 28 210 list length; -#X text 29 57 The list object's first argument sets its function:; -#X obj 28 235 list fromsymbol; -#X obj 28 260 list tosymbol; -#X text 160 239 - convert symbols to/from numeric characters, f 25 -; -#N canvas 898 144 488 460 from/to 0; -#X symbolatom 144 172 10 0 0 0 - - - 0; -#X obj 144 199 list fromsymbol; -#X msg 118 312 115 101 118 101 110 116 101 101 110; -#X obj 118 340 list tosymbol; -#X obj 144 261 print from-symbol; -#X symbolatom 118 366 10 0 0 0 - - - 0; -#X msg 144 142 symbol seventeen; -#X text 42 397 Neither of these objects promote non-list messages to -lists (that would make little sense in this context).; -#X text 25 66 These allow you to do string manipulations (such as scanning +#X connect 9 0 8 0; +#X restore 481 214 pd length; +#X obj 28 214 list length; +#X text 29 58 The list object's first argument sets its function:; +#X obj 28 239 list fromsymbol; +#X obj 28 264 list tosymbol; +#N canvas 502 154 604 361 from/to 0; +#X symbolatom 47 221 10 0 0 0 - - - 0; +#X obj 47 251 list fromsymbol; +#X msg 239 188 115 101 118 101 110 116 101 101 110; +#X obj 239 221 list tosymbol; +#X obj 47 320 print from-symbol; +#X symbolatom 239 251 10 0 0 0 - - - 0; +#X msg 47 188 symbol seventeen; +#X text 354 259 Neither of these objects promote non-list messages +to lists (that would make little sense in this context)., f 32; +#X text 21 95 These allow you to do string manipulations (such as scanning a filename for '/' characters). They convert a list of numbers (which might be ASCII or might be unicode if \, for example \, they represent -a filename on a non-ASCII machine) to or from a symbol., f 63; -#X listbox 144 232 36 0 0 0 - - - 0; -#X text 54 17 fromsymbol and tosymbol -, f 25; -#X text 237 16 symbols to and from lists of numeric character codes -, f 26; +a filename on a non-ASCII machine) to or from a symbol., f 79; +#X listbox 47 287 36 0 0 0 - - - 0; +#X obj 41 25 list fromsymbol; +#X obj 41 50 list tosymbol; +#X text 164 27 convert symbols to and from lists of numeric character +codes, f 33; +#X obj 7 83 cnv 1 590 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 527 41 <= click; +#N canvas 598 131 595 416 reference 0; +#X obj 19 18 list fromsymbol; +#X text 135 17 - convert from symbols to lists of numeric character +codes; +#X obj 9 47 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 88 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 130 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 166 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 180 139 NONE.; +#X text 109 59 symbol - symbol to be converted to a list of character +codes., f 61; +#X text 122 98 list - list of converted character codes.; +#X obj 9 257 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 298 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 340 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 376 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 180 349 NONE.; +#X obj 19 228 list tosymbol; +#X text 119 227 - convert from list of numeric character codes to symbols. +; +#X text 122 273 list - list of character codes to convert to a symbol. +; +#X text 109 309 symbol - converted symbol from list of character codes. +, f 61; +#X restore 433 41 pd reference; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 5 0; #X connect 6 0 0 0; #X connect 9 0 4 0; -#X restore 462 248 pd from/to; -#X text 146 137 - build up or break down a list; -#X obj 28 136 list store; -#N canvas 632 83 601 730 store 0; -#X floatatom 62 164 5 0 0 0 - - - 0; -#X msg 51 132 1 2 3; -#X msg 36 92 list cis boom bah; -#X msg 74 196 bang; -#X msg 160 543 bang; -#X msg 145 490 list x y z; -#X msg 134 464 go dog go; -#X msg 153 517 4 5 6 and 7; -#X text 176 86 list starting with symbol; -#X text 175 105 (needs explicit "list" selector); -#X text 101 164 number is one-element list; -#X text 100 132 numeric list; -#X text 206 462 right inlet can take non-list messages; -#X text 51 45 lists in first inlet outputs the concatenation of incoming -message with stored list:; -#X msg 96 264 prepend 1 2 3; -#X text 201 264 prepend a list to the stored list; -#X msg 87 231 append 1 2 3; -#X text 184 231 append a list to the stored list; -#X obj 36 573 list store 1 2, f 16; -#X obj 36 687 print store-left; -#X obj 145 624 print store-right; -#X text 171 599 bang if "range" message fails; -#X msg 112 339 get 1 3; -#X msg 105 299 get 1; -#X text 161 300 output item at index 1 (counting from zero); -#X msg 118 378 get 2 -1; -#N canvas 843 259 570 524 more-methods 0; -#X obj 46 444 outlet; -#X msg 46 26 set 1 5; -#X text 116 26 set item 1 to value 5; -#X msg 57 68 set 1 5 6 7; -#X msg 66 114 insert 1 foo bar; -#X text 189 115 insert 'foo' and 'bar' before item 1; -#X msg 76 148 delete 1; -#X msg 86 180 delete 1 3; -#X msg 96 213 delete 2 -1; -#X text 187 212 delete all list items \, starting at index 2; -#X text 167 179 delete 3 items \, starting at index 1; -#X text 141 148 delete item at index 1; -#X text 149 60 set items \, starting at index 1 \, to 5 6 7 (superfluous +#X restore 482 252 pd from/to; +#X text 156 141 - build up or break down a list; +#X obj 28 140 list store; +#N canvas 471 23 679 660 store 0; +#X floatatom 84 140 5 0 0 0 - - - 0; +#X msg 68 110 1 2 3; +#X msg 40 79 list cis boom bah; +#X msg 96 169 bang; +#X msg 193 479 bang; +#X msg 178 426 list x y z; +#X msg 167 400 go dog go; +#X msg 186 453 4 5 6 and 7; +#X msg 118 227 prepend 1 2 3; +#X msg 109 198 append 1 2 3; +#X obj 58 510 list store 1 2, f 16; +#X obj 58 621 print store-left; +#X obj 167 561 print store-right; +#X text 193 536 bang if "range" message fails; +#X msg 136 289 get 1 3; +#X msg 127 256 get 1; +#X msg 145 335 get 2 -1; +#N canvas 618 78 572 508 more-methods 0; +#X obj 57 437 outlet; +#X msg 27 31 set 1 5; +#X text 97 31 set item 1 to value 5; +#X msg 50 68 set 1 5 6 7; +#X msg 67 108 insert 1 foo bar; +#X text 190 109 insert 'foo' and 'bar' before item 1; +#X msg 84 141 delete 1; +#X msg 97 173 delete 1 3; +#X msg 107 206 delete 2 -1; +#X text 198 205 delete all list items \, starting at index 2; +#X text 178 172 delete 3 items \, starting at index 1; +#X text 149 141 delete item at index 1; +#X text 142 60 set items \, starting at index 1 \, to 5 6 7 (superfluous items are ignored.), f 40; -#X msg 103 254 send foo; -#X text 174 254 send the stored list to a named receiver; -#X obj 189 474 print foo; -#X listbox 189 450 35 0 0 0 - - - 0; -#X msg 117 341 send \$1; -#X obj 117 316 symbol \$0-x; -#X obj 264 359 r foo; -#X obj 264 406 print foo; -#X listbox 264 382 35 0 0 0 - - - 0; -#X obj 189 427 r \$0-x; -#X obj 117 293 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X msg 114 247 send foo; +#X text 185 247 send the stored list to a named receiver; +#X obj 200 467 print foo; +#X listbox 200 443 35 0 0 0 - - - 0; +#X msg 128 334 send \$1; +#X obj 128 309 symbol \$0-x; +#X obj 275 352 r foo; +#X obj 275 399 print foo; +#X listbox 275 375 35 0 0 0 - - - 0; +#X obj 200 420 r \$0-x; +#X obj 128 286 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X text 139 290 <= click; -#X text 218 289 Dealing with "\$0": for abstractions with local receive +#X text 150 283 <= click; +#X text 223 281 Dealing with "\$0": for abstractions with local receive names \, load the "\$0" in something like a symbol object as they don't work in messages., f 47; #X connect 1 0 0 0; @@ -520,41 +694,126 @@ #X connect 21 0 20 0; #X connect 22 0 16 0; #X connect 23 0 18 0; -#X restore 130 417 pd more-methods; -#X text 243 416 <= more methods (set \, insert \, delete \, send); -#X text 166 573 <= creation args initialize the list to prepend; -#X text 252 505 (note: a number as the first item makes this a list.) +#X restore 156 367 pd more-methods; +#X text 269 366 <= more methods (set \, insert \, delete \, send); +#X text 285 441 (note: a number as the first item makes this a list.) , f 30; -#X text 205 544 zero-element list clears stored list; -#X text 182 326 output a sublist \, starting at index 1 \, of length +#X text 238 480 zero-element list clears stored list; +#X text 198 283 output a sublist \, starting at index 1 \, of length 3 If the index is out of range or there are not enough items available \, a "bang" is sent to right outlet., f 52; -#X text 196 379 All list items starting at index 2; -#X text 117 196 bang is zero-element list - this outputs the stored +#X text 211 336 All list items starting at index 2; +#X text 139 169 bang is zero-element list - this outputs the stored list; -#X listbox 36 657 35 0 0 0 - - - 0; -#X obj 145 600 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X listbox 58 592 35 0 0 0 - - - 0; +#X obj 167 537 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X text 39 12 store - put together or break apart a list to/from sublists +#X text 598 15 <= click; +#N canvas 625 46 579 471 reference 0; +#X obj 9 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 9 367 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 408 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 446 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 9 319 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 85 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 66 323 anything -; +#X text 127 378 list - the prepended list.; +#X obj 37 18 list store; +#X text 119 17 - put together or break apart a list to/from sublists ; -#X connect 0 0 18 0; -#X connect 1 0 18 0; -#X connect 2 0 18 0; -#X connect 3 0 18 0; -#X connect 4 0 18 1; -#X connect 5 0 18 1; -#X connect 6 0 18 1; -#X connect 7 0 18 1; -#X connect 14 0 18 0; -#X connect 16 0 18 0; -#X connect 18 0 34 0; -#X connect 18 1 35 0; -#X connect 22 0 18 0; -#X connect 23 0 18 0; -#X connect 25 0 18 0; -#X connect 26 0 18 0; -#X connect 34 0 19 0; -#X connect 35 0 20 0; -#X restore 460 136 pd store; -#X text 372 541 updated for Pd version 0.52; -#X text 130 544 list iterator; +#X text 110 417 1) list - initialize the stored list (default empty). +; +#X text 82 91 list -; +#X text 131 91 concatenate incoming list with stored list and output +(a bang is a zero element list and outputs stored list)., f 59; +#X text 12 123 prepend - prepend a list to the stored list. +, f 76; +#X text 19 141 append - append a list to the stored list., +f 75; +#X text 143 324 set stored list (a bang is a zero element list and +clears it)., f 50; +#X text 40 159 get -; +#X text 131 159 output an item (if only one float is given) or sublist +\, where first element sets staring index and the second sets ending +index (-1 is end of the list)., f 59; +#X text 40 205 set -; +#X text 131 205 set values starting at index from the first element. +, f 59; +#X text 19 224 insert -; +#X text 131 224 insert values before index from the first element. +, f 59; +#X text 19 243 delete -; +#X text 131 243 delete a given item for just one float or a number +of items specified in the second element starting at index from the +first element (-1 means delete all items from given index).; +#X text 19 289 send - send stored list to a named receiver. +, f 75; +#X restore 504 16 pd reference; +#X obj 7 52 cnv 1 666 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 17 16 list store; +#X text 99 15 - put together or break apart a list to/from sublists +; +#X text 188 510 <= creation args initialize the list to append; +#X text 130 140 a float is one-element list; +#X text 117 110 numeric list; +#X text 173 256 output item at index 1 (counting from zero); +#X text 223 227 prepend a list to the stored list; +#X text 206 198 append a list to the stored list; +#X text 171 73 lists concatenate incoming list with stored list (list +starting with symbol needs an explicit "list" selector).; +#X text 239 398 right inlet can take non-list messages and sets stored +list; +#X connect 0 0 10 0; +#X connect 1 0 10 0; +#X connect 2 0 10 0; +#X connect 3 0 10 0; +#X connect 4 0 10 1; +#X connect 5 0 10 1; +#X connect 6 0 10 1; +#X connect 7 0 10 1; +#X connect 8 0 10 0; +#X connect 9 0 10 0; +#X connect 10 0 24 0; +#X connect 10 1 25 0; +#X connect 14 0 10 0; +#X connect 15 0 10 0; +#X connect 16 0 10 0; +#X connect 17 0 10 0; +#X connect 24 0 11 0; +#X connect 25 0 12 0; +#X restore 480 140 pd store; +#X text 378 571 updated for Pd version 0.52; +#X text 324 524 list iterator; +#X obj 7 44 cnv 1 590 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 527 13 <= click; +#N canvas 749 68 563 222 reference 0; +#X obj 7 143 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 75 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X text 96 85 symbol -; +#X obj 7 54 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 147 163 Open specific references in each subpatch detailing +each function on parent patch., f 41; +#X obj 24 21 list; +#X text 64 21 - building and using variable-length messages; +#X text 160 86 sets the function of [list] \, possible values: append +\, prepend \, store \, split \, trim \, length \, fromsymbol and tosymbol. +The default value is 'append'., f 54; +#X restore 433 13 pd reference; +#X text 435 58 click for details:; +#X obj 6 557 cnv 1 590 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 157 245 -; +#X text 171 245 convert symbols to/from numeric characters, f 23; +#X text 18 570 see also:; +#X obj 96 570 array; diff -Nru puredata-0.52.1+ds0/doc/5.reference/loadbang-help.pd puredata-0.52.2+ds0/doc/5.reference/loadbang-help.pd --- puredata-0.52.1+ds0/doc/5.reference/loadbang-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/loadbang-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,16 +1,44 @@ -#N canvas 794 23 512 324 12; -#X obj 88 214 loadbang; -#X floatatom 88 263 5 0 0 0 - - - 0; -#X obj 79 21 loadbang; -#X text 150 20 - send a "bang" message on load; -#X msg 88 239 123; -#X text 40 60 The loadbang object outputs a 'bang' message when the +#N struct template1 float x float y float z float q; +#N canvas 641 48 547 317 12; +#X obj 142 173 loadbang; +#X floatatom 142 226 5 0 0 0 - - - 0; +#X obj 20 15 loadbang; +#X text 89 14 - send a "bang" message on load; +#X msg 142 200 123; +#X text 40 54 The loadbang object outputs a 'bang' message when the containing patch is opened as a document or included in another patch -as an abstraction.; -#X text 38 122 Loadbangs within abstractions send their "bang" messages +as an abstraction., f 69; +#X text 40 105 Loadbangs within abstractions send their "bang" messages before those of loadbangs in the calling patch. Otherwise \, the order in which the "bangs" are sent from two loadbang objects is undefined. -; -#X text 255 256 updated for Pd version 0.47; +, f 69; +#X text 338 279 updated for Pd version 0.47; +#N canvas 775 143 439 180 reference 0; +#X obj 9 46 cnv 5 410 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 9 82 cnv 2 410 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 118 cnv 2 410 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 153 cnv 5 410 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 127 127 NONE, f 26; +#X obj 28 15 loadbang; +#X text 99 14 - send a "bang" message on load; +#X text 117 91 bang - when loadding the patch.; +#X text 124 56 NONE; +#X restore 374 15 pd reference; +#X text 471 14 <= click; +#X obj 9 45 cnv 1 530 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 9 265 cnv 1 530 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 18 282 see also:; +#X obj 96 283 pd-messages; +#X obj 190 283 bang; +#X obj 232 283 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#X text 266 177 You can force loaddbangs to fire if you send a 'loadbang' +message to the patch (see 'pd-messages')., f 33; #X connect 0 0 4 0; #X connect 4 0 1 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/log~-help.pd puredata-0.52.2+ds0/doc/5.reference/log~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/log~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/log~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,39 +1,64 @@ -#N canvas 715 128 537 463 12; -#X obj 46 17 log~; -#X text 46 48 computes the logarithm of the left inlet \, to the base +#N canvas 552 33 508 450 12; +#X obj 33 12 log~; +#X text 40 61 computes the logarithm of the left inlet \, to the base 'e' (about 2.718) \, or to another base specified by the inlet or a -creation argument.; -#X text 271 382 updated for Pd version 0.47.; -#X text 46 346 see also:; -#X obj 51 397 pow~; -#X obj 51 373 log; -#X text 85 17 - logarithms for signals; -#X obj 93 397 exp~; -#X obj 53 425 +~; -#X text 85 424 (etc.) - signal binary operators; -#X text 88 373 - control version; -#X obj 134 397 sqrt~; -#X obj 183 397 expr~; -#X obj 158 193 loadbang; -#X obj 158 219 metro 100; -#X obj 158 273 snapshot~; -#X floatatom 49 125 5 0 0 0 - - - 0; -#X floatatom 110 125 5 0 0 0 - - - 0; -#X floatatom 158 302 7 0 0 0 - - - 0; -#X floatatom 307 209 5 0 0 0 - - - 0; -#X text 333 234 An optional creation argument initializes right inlet +creation argument., f 57; +#X text 290 374 updated for Pd version 0.47.; +#X text 14 390 see also:; +#X obj 90 389 pow~; +#X obj 90 365 log; +#X text 72 12 - logarithms for signals; +#X obj 132 389 exp~; +#X obj 92 417 +~; +#X text 124 416 (etc.) - signal binary operators; +#X text 127 365 - control version; +#X obj 173 389 sqrt~; +#X obj 222 389 expr~; +#X obj 142 205 loadbang; +#X obj 142 231 metro 100; +#X obj 142 285 snapshot~; +#X floatatom 33 137 5 0 0 0 - - - 0; +#X floatatom 94 137 5 0 0 0 - - - 0; +#X floatatom 142 314 7 0 0 0 - - - 0; +#X floatatom 291 221 5 0 0 0 - - - 0; +#X text 317 246 An optional creation argument initializes right inlet for when you don't have a signal input., f 23; -#X obj 254 196 sig~ 2; -#X obj 254 264 snapshot~; -#X floatatom 254 293 7 0 0 0 - - - 0; -#X obj 110 161 sig~ 2; -#X obj 85 197 log~; -#X obj 49 161 sig~ 8; -#X obj 254 236 log~ 1.5; -#X msg 251 129 \; pd dsp \$1; -#X obj 251 105 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X obj 238 208 sig~ 2; +#X obj 238 276 snapshot~; +#X floatatom 238 305 7 0 0 0 - - - 0; +#X obj 94 173 sig~ 2; +#X obj 69 209 log~; +#X obj 33 173 sig~ 8; +#X obj 238 248 log~ 1.5; +#X msg 242 141 \; pd dsp \$1; +#X obj 242 118 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 270 104 DSP on/off; +#X text 261 117 DSP on/off; +#N canvas 867 162 441 249 reference 0; +#X obj 13 50 cnv 5 410 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 13 145 cnv 2 410 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 13 182 cnv 2 410 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X obj 12 217 cnv 5 410 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 37 17 log~; +#X text 76 17 - logarithms for signals.; +#X text 88 85 signal - input value to log function.; +#X text 121 154 signal - output of log function.; +#X text 130 191 1) float - initial base value., f 31; +#X obj 13 82 cnv 1 410 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 13 111 cnv 1 410 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X text 88 118 signal - set base value of the log function.; +#X restore 321 12 pd reference; +#X text 418 12 <= click; +#X obj 3 47 cnv 1 500 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 3 349 cnv 1 500 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 22 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/lop~-help.pd puredata-0.52.2+ds0/doc/5.reference/lop~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/lop~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/lop~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,31 +1,57 @@ -#N canvas 644 147 579 416 12; +#N canvas 530 29 579 392 12; #X declare -stdpath ./; -#X floatatom 208 165 5 0 0 0 - - - 0; -#X obj 46 14 lop~; -#X text 86 15 - one-pole low pass filter; -#X msg 155 137 clear; -#X text 34 327 see also:; -#X obj 113 326 hip~; -#X obj 158 326 bp~; -#X obj 195 326 vcf~; -#X text 199 136 <= reinitialize internal state; -#X text 251 166 <= set cutoff frequency; -#X obj 238 326 bob~; -#X obj 82 116 noise~; -#X text 25 51 lop~ is a one-pole low pass filter with a specified rolloff +#X floatatom 237 171 5 0 0 0 - - - 0; +#X obj 26 13 lop~; +#X text 66 14 - one-pole low pass filter; +#X msg 184 143 clear; +#X text 14 330 see also:; +#X obj 93 329 hip~; +#X obj 138 329 bp~; +#X obj 175 329 vcf~; +#X text 228 142 <= reinitialize internal state; +#X text 280 172 <= set cutoff frequency; +#X obj 220 329 bob~; +#X obj 118 123 noise~; +#X text 34 57 lop~ is a one-pole low pass filter with a specified rolloff frequency. The left inlet is the incoming audio signal. The right inlet is the cutoff frequency in Hz., f 70; -#X obj 155 232 output~; -#X obj 155 192 lop~ 100; -#X text 226 189 The filter is initialized to cut off frequencies above +#X obj 184 238 output~; +#X obj 184 198 lop~ 100; +#X text 255 195 The filter is initialized to cut off frequencies above 100 Hz., f 32; -#X obj 401 12 declare -stdpath ./; -#X obj 48 361 biquad~; -#X obj 107 360 slop~, f 7; -#X obj 166 360 cpole~, f 7; -#X obj 228 360 fexpr~; -#X text 284 360 - unfriendly filters; -#X text 309 325 updated for Pd version 0.38; +#X obj 315 258 declare -stdpath ./; +#X obj 28 358 biquad~; +#X obj 87 357 slop~, f 7; +#X obj 146 357 cpole~, f 7; +#X obj 208 357 fexpr~; +#X text 264 357 - unfriendly filters; +#X text 362 328 updated for Pd version 0.38; +#X obj 7 46 cnv 1 560 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 796 97 475 266 reference 0; +#X obj 9 45 cnv 5 450 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 9 157 cnv 2 450 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 197 cnv 2 450 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 8 237 cnv 5 450 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 46 14 lop~; +#X text 106 80 signal - audio signal to be filtered.; +#X text 113 99 clear - clear filter's memory., f 36; +#X text 106 167 signal - filtered signal.; +#X obj 11 123 cnv 1 450 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 113 130 float - rolloff frequency., f 36; +#X text 104 207 1) float - rolloff frequency in Hz (default 0).; +#X text 86 15 - one-pole low pass filter.; +#X obj 11 75 cnv 1 450 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X restore 385 13 pd reference; +#X text 483 14 <= click; +#X obj 7 312 cnv 1 560 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 0 0 14 1; #X connect 3 0 14 0; #X connect 11 0 14 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/makefilename-help.pd puredata-0.52.2+ds0/doc/5.reference/makefilename-help.pd --- puredata-0.52.1+ds0/doc/5.reference/makefilename-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/makefilename-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,27 +1,27 @@ -#N canvas 521 43 620 443 12; -#X floatatom 43 186 0 0 0 0 - - -; -#X msg 392 186 symbol meat; -#X msg 405 213 symbol hair; -#X obj 68 24 makefilename; -#X text 166 24 - format a "name" with a variable field; -#X msg 66 236 set %d-zebra; -#X text 76 185 <= numbers replace "%d" in string; -#X text 174 212 <= "set" message replaces format, f 16; -#X text 499 212 <= symbols replace "%s", f 13; -#X symbolatom 43 305 14 0 0 0 - - -; -#X obj 43 342 print Integer; -#X symbolatom 392 284 14 0 0 0 - - -; -#X obj 392 317 print Symbol; -#X text 221 264 <= argument is format string, f 14; +#N canvas 521 43 626 475 12; +#X floatatom 43 182 0 0 0 0 - - - 0; +#X msg 392 182 symbol meat; +#X msg 405 209 symbol hair; +#X obj 23 17 makefilename; +#X text 121 17 - format a "name" with a variable field; +#X msg 66 232 set %d-zebra; +#X text 76 181 <= numbers replace "%d" in string; +#X text 174 208 <= "set" message replaces format, f 16; +#X text 499 208 <= symbols replace "%s", f 13; +#X symbolatom 43 301 14 0 0 0 - - - 0; +#X obj 43 338 print Integer; +#X symbolatom 392 280 14 0 0 0 - - - 0; +#X obj 392 313 print Symbol; +#X text 221 260 <= argument is format string, f 14; #N canvas 703 91 509 425 multiple_substitutions 0; #X msg 50 111 symbol aif; #X msg 63 138 symbol wav; #X msg 49 229 set \$1; -#X floatatom 61 274 0 0 0 0 - - -; +#X floatatom 61 274 0 0 0 0 - - - 0; #X obj 49 306 makefilename not-set-yet; -#X symbolatom 49 197 14 0 0 0 - - -; +#X symbolatom 49 197 14 0 0 0 - - - 0; #X text 43 21 MULTIPLE SUBSTITUTIONS:; -#X symbolatom 49 335 14 0 0 0 - - -; +#X symbolatom 49 335 14 0 0 0 - - - 0; #X obj 49 367 print Multiple; #X text 97 274 <= and then this number replaces "%d".; #X text 240 148 LITERAL %: You can format a string with a literal '%' @@ -41,13 +41,13 @@ #X connect 5 0 2 0; #X connect 7 0 8 0; #X connect 11 0 5 0; -#X restore 392 365 pd multiple_substitutions; -#N canvas 728 108 479 517 possible_types_&_syntax 0; +#X restore 392 361 pd multiple_substitutions; +#N canvas 696 335 479 517 possible_types_&_syntax 0; #N canvas 640 222 489 460 %c 0; #X obj 147 214 list fromsymbol; -#X floatatom 147 313 5 0 0 0 - - -; -#X symbolatom 147 167 7 0 0 0 - - -; -#X symbolatom 147 388 7 0 0 0 - - -; +#X floatatom 147 313 5 0 0 0 - - - 0; +#X symbolatom 147 167 7 0 0 0 - - - 0; +#X symbolatom 147 388 7 0 0 0 - - - 0; #X msg 164 248 64; #X text 200 247 <= click (at symbol); #X msg 174 278 123; @@ -69,10 +69,10 @@ #X connect 11 0 3 0; #X restore 80 69 pd %c; #N canvas 847 204 524 571 %d/%i 0; -#X floatatom 244 368 0 0 0 0 - - -; -#X symbolatom 94 464 12 0 0 0 - - -; +#X floatatom 244 368 0 0 0 0 - - - 0; +#X symbolatom 94 464 12 0 0 0 - - - 0; #X text 56 35 %d or %i - signed decimal integer:; -#X symbolatom 244 464 12 0 0 0 - - -; +#X symbolatom 244 464 12 0 0 0 - - - 0; #X msg 244 153 127; #X msg 258 185 -255; #X msg 269 221 1; @@ -98,9 +98,9 @@ #X connect 13 0 3 0; #X restore 59 97 pd %d/%i; #N canvas 762 278 567 409 %e/%E 0; -#X floatatom 269 239 10 0 0 0 - - -; -#X symbolatom 119 335 18 0 0 0 - - -; -#X symbolatom 269 335 18 0 0 0 - - -; +#X floatatom 269 239 10 0 0 0 - - - 0; +#X symbolatom 119 335 18 0 0 0 - - - 0; +#X symbolatom 269 335 18 0 0 0 - - - 0; #X obj 119 287 makefilename [%e]; #X msg 269 164 1.23456; #X msg 241 136 2.345e-05; @@ -124,8 +124,8 @@ #X text 127 96 - signed decimal integer; #X text 128 152 - decimal floating point; #N canvas 787 279 483 431 %f 0; -#X symbolatom 166 358 18 0 0 0 - - -; -#X floatatom 166 268 8 0 0 0 - - -; +#X symbolatom 166 358 18 0 0 0 - - - 0; +#X floatatom 166 268 8 0 0 0 - - - 0; #X msg 166 164 1.234; #X msg 180 196 -18; #X msg 135 132 2.3e-05; @@ -142,9 +142,9 @@ #X connect 7 0 0 0; #X restore 80 153 pd %f; #N canvas 521 79 612 539 %g/%G 0; -#X floatatom 304 368 10 0 0 0 - - -; -#X symbolatom 154 464 18 0 0 0 - - -; -#X symbolatom 304 464 18 0 0 0 - - -; +#X floatatom 304 368 10 0 0 0 - - - 0; +#X symbolatom 154 464 18 0 0 0 - - - 0; +#X symbolatom 304 464 18 0 0 0 - - - 0; #X msg 332 250 1.23456; #X obj 154 416 makefilename [%g]; #X msg 349 321 0.99999; @@ -178,8 +178,8 @@ #X text 128 124 - decimal floating point in scientific notation; #X text 128 180 - numbers with or without scientific notation; #N canvas 836 149 529 506 %o 0; -#X floatatom 208 337 0 0 0 0 - - -; -#X symbolatom 208 433 14 0 0 0 - - -; +#X floatatom 208 337 0 0 0 0 - - - 0; +#X symbolatom 208 433 14 0 0 0 - - - 0; #X msg 219 190 1; #X msg 230 220 -1; #X msg 127 232 1.9; @@ -205,10 +205,10 @@ #X restore 80 209 pd %o; #X text 126 208 - unsigned octal; #N canvas 788 215 489 431 %s 0; -#X symbolatom 129 133 7 0 0 0 - - -; -#X symbolatom 167 356 10 0 0 0 - - -; +#X symbolatom 129 133 7 0 0 0 - - - 0; +#X symbolatom 167 356 10 0 0 0 - - - 0; #X obj 167 308 makefilename [%s]; -#X floatatom 167 166 5 0 0 0 - - -; +#X floatatom 167 166 5 0 0 0 - - - 0; #X msg 197 205 symbol dog; #X msg 206 243 -1; #X msg 249 243 1.9; @@ -228,8 +228,8 @@ #X restore 80 237 pd %s; #X text 126 264 - signed decimal integer; #N canvas 766 264 519 474 %u 0; -#X floatatom 185 337 0 0 0 0 - - -; -#X symbolatom 185 415 12 0 0 0 - - -; +#X floatatom 185 337 0 0 0 0 - - - 0; +#X symbolatom 185 415 12 0 0 0 - - - 0; #X msg 185 152 127; #X msg 199 184 -255; #X msg 210 220 1; @@ -254,9 +254,9 @@ #X restore 80 265 pd %u; #X text 127 292 - unsigned hexadecimal; #N canvas 781 226 510 490 %x/%X 0; -#X floatatom 262 338 0 0 0 0 - - -; -#X symbolatom 112 434 12 0 0 0 - - -; -#X symbolatom 262 434 12 0 0 0 - - -; +#X floatatom 262 338 0 0 0 0 - - - 0; +#X symbolatom 112 434 12 0 0 0 - - - 0; +#X symbolatom 262 434 12 0 0 0 - - - 0; #X msg 262 153 127; #X msg 287 221 1; #X msg 293 251 -1; @@ -284,8 +284,8 @@ #X connect 11 0 2 0; #X restore 59 293 pd %x/%X; #N canvas 921 253 483 354 %p 0; -#X symbolatom 164 163 10 0 0 0 - - -; -#X symbolatom 164 259 14 0 0 0 - - -; +#X symbolatom 164 163 10 0 0 0 - - - 0; +#X symbolatom 164 259 14 0 0 0 - - - 0; #X obj 164 210 makefilename [%p]; #X text 57 44 %p - pointer representation:; #X text 54 77 This pattern formats to a platform specific pointer representation @@ -297,28 +297,28 @@ #X text 126 320 - pointer representation; #X text 163 414 flags:; #N canvas 216 23 794 593 + 0; -#X floatatom 150 188 0 0 0 0 - - -; -#X symbolatom 150 263 12 0 0 0 - - -; +#X floatatom 150 188 0 0 0 0 - - - 0; +#X symbolatom 150 263 12 0 0 0 - - - 0; #X msg 109 105 127; #X msg 150 105 -255; #X msg 168 137 1e+06; #X msg 220 137 -1e+07; #X obj 150 225 makefilename [%+d]; -#X floatatom 167 431 10 0 0 0 - - -; -#X symbolatom 167 514 18 0 0 0 - - -; +#X floatatom 167 431 10 0 0 0 - - - 0; +#X symbolatom 167 514 18 0 0 0 - - - 0; #X msg 169 326 1.23456; #X msg 94 326 2.345e-05; #X msg 196 391 -18; #X msg 183 358 1.999e+07; #X obj 167 466 makefilename [%+e]; -#X symbolatom 516 191 18 0 0 0 - - -; -#X floatatom 516 103 8 0 0 0 - - -; +#X symbolatom 516 191 18 0 0 0 - - - 0; +#X floatatom 516 103 8 0 0 0 - - - 0; #X msg 530 61 -18; #X msg 450 30 2.3e-05; #X obj 516 143 makefilename [%+f]; #X msg 516 29 257; -#X floatatom 540 424 10 0 0 0 - - -; -#X symbolatom 540 511 18 0 0 0 - - -; +#X floatatom 540 424 10 0 0 0 - - - 0; +#X symbolatom 540 511 18 0 0 0 - - - 0; #X msg 568 306 1.23456; #X msg 585 377 0.99999; #X msg 540 278 2.345e-05; @@ -355,27 +355,27 @@ #X connect 28 0 21 0; #X restore 216 415 pd +; #N canvas 806 77 728 472 # 0; -#X floatatom 148 115 0 0 0 0 - - -; -#X symbolatom 148 178 14 0 0 0 - - -; +#X floatatom 148 115 0 0 0 0 - - - 0; +#X symbolatom 148 178 14 0 0 0 - - - 0; #X msg 148 73 1; #X msg 80 73 9; #X msg 116 73 16; #X msg 183 73 1e+09; #X obj 148 146 makefilename [%#o]; -#X floatatom 196 326 0 0 0 0 - - -; -#X symbolatom 196 399 14 0 0 0 - - -; +#X floatatom 196 326 0 0 0 0 - - - 0; +#X symbolatom 196 399 14 0 0 0 - - - 0; #X msg 196 284 1; #X msg 128 284 9; #X msg 164 284 16; #X msg 231 284 1e+09; -#X symbolatom 55 399 14 0 0 0 - - -; +#X symbolatom 55 399 14 0 0 0 - - - 0; #X obj 55 361 makefilename [%#x]; #X obj 196 361 makefilename [%#X]; #X text 25 22 The '#' flag presents an alternate form of some numeric types. For "%o" \, the number is preceded by a "0".; -#X floatatom 532 240 10 0 0 0 - - -; -#X symbolatom 382 336 18 0 0 0 - - -; -#X symbolatom 532 336 18 0 0 0 - - -; +#X floatatom 532 240 10 0 0 0 - - - 0; +#X symbolatom 382 336 18 0 0 0 - - - 0; +#X symbolatom 532 336 18 0 0 0 - - - 0; #X msg 532 193 -1800; #X msg 494 193 179; #X obj 382 288 makefilename [%#g]; @@ -411,18 +411,18 @@ subpatches for more details and examples., f 51; #X text 163 444 width:; #N canvas 583 148 928 523 width 0; -#X floatatom 102 171 0 0 0 0 - - -; -#X symbolatom 102 235 12 0 0 0 - - -; +#X floatatom 102 171 0 0 0 0 - - - 0; +#X symbolatom 102 235 12 0 0 0 - - - 0; #X obj 102 203 makefilename [%5d]; #X msg 102 114 1; #X msg 138 114 -1000; #X msg 64 114 10; -#X floatatom 194 387 0 0 0 0 - - -; -#X symbolatom 194 463 12 0 0 0 - - -; +#X floatatom 194 387 0 0 0 0 - - - 0; +#X symbolatom 194 463 12 0 0 0 - - - 0; #X msg 194 352 1; -#X symbolatom 282 235 12 0 0 0 - - -; +#X symbolatom 282 235 12 0 0 0 - - - 0; #X obj 282 203 makefilename [%5s]; -#X symbolatom 282 171 10 0 0 0 - - -; +#X symbolatom 282 171 10 0 0 0 - - - 0; #X msg 295 143 symbol abcde; #X msg 261 92 symbol a; #X msg 282 117 symbol abc; @@ -432,26 +432,26 @@ #X obj 194 426 makefilename [%05x]; #X text 39 286 The width field takes an optional preceding '0' flag that fills the extra characters with zeroes instead of spaces.; -#X floatatom 539 176 0 0 0 0 - - -; -#X symbolatom 539 240 12 0 0 0 - - -; +#X floatatom 539 176 0 0 0 0 - - - 0; +#X symbolatom 539 240 12 0 0 0 - - - 0; #X msg 539 119 1; #X msg 575 119 -1000; #X msg 501 119 10; #X msg 587 144 -1e+06; #X obj 539 208 makefilename [%+5d]; -#X floatatom 707 175 0 0 0 0 - - -; -#X symbolatom 707 239 12 0 0 0 - - -; +#X floatatom 707 175 0 0 0 0 - - - 0; +#X symbolatom 707 239 12 0 0 0 - - - 0; #X msg 707 118 1; #X msg 743 118 -1000; #X msg 669 118 10; #X msg 755 143 -1e+06; #X obj 707 207 makefilename [%+05d]; -#X floatatom 556 372 0 0 0 0 - - -; -#X symbolatom 556 436 12 0 0 0 - - -; +#X floatatom 556 372 0 0 0 0 - - - 0; +#X symbolatom 556 436 12 0 0 0 - - - 0; #X msg 556 315 1; #X msg 604 340 -1e+06; -#X floatatom 724 371 0 0 0 0 - - -; -#X symbolatom 724 435 12 0 0 0 - - -; +#X floatatom 724 371 0 0 0 0 - - - 0; +#X symbolatom 724 435 12 0 0 0 - - - 0; #X msg 724 314 1; #X msg 772 339 -1e+06; #X text 498 63 You can combine the width field with the preceding +/# @@ -511,11 +511,11 @@ #X text 135 474 precision:; #N canvas 619 439 448 268 precision 0; #N canvas 842 141 470 564 strings 0; -#X symbolatom 219 496 0 0 0 0 - - -; -#X symbolatom 219 418 10 0 0 0 - - -; +#X symbolatom 219 496 0 0 0 0 - - - 0; +#X symbolatom 219 418 10 0 0 0 - - - 0; #X obj 219 458 makefilename [%3.4s]; -#X symbolatom 231 223 0 0 0 0 - - -; -#X symbolatom 231 154 10 0 0 0 - - -; +#X symbolatom 231 223 0 0 0 0 - - - 0; +#X symbolatom 231 154 10 0 0 0 - - - 0; #X obj 231 189 makefilename [%.4s]; #X msg 231 115 symbol abcde; #X msg 127 115 symbol abcd; @@ -540,10 +540,10 @@ #X connect 12 0 1 0; #X restore 159 133 pd strings; #N canvas 788 237 558 412 integers 0; -#X symbolatom 126 293 0 0 0 0 - - -; +#X symbolatom 126 293 0 0 0 0 - - - 0; #X obj 126 249 makefilename [%.4d]; -#X symbolatom 287 288 0 0 0 0 - - -; -#X floatatom 287 205 5 0 0 0 - - -; +#X symbolatom 287 288 0 0 0 0 - - - 0; +#X floatatom 287 205 5 0 0 0 - - - 0; #X msg 287 172 -3; #X obj 287 249 makefilename [%04d]; #X msg 325 173 3; @@ -562,9 +562,9 @@ #X connect 6 0 3 0; #X restore 159 167 pd integers; #N canvas 424 199 702 507 floats 0; -#X floatatom 81 252 10 0 0 0 - - -; -#X symbolatom 82 440 18 0 0 0 - - -; -#X symbolatom 98 348 18 0 0 0 - - -; +#X floatatom 81 252 10 0 0 0 - - - 0; +#X symbolatom 82 440 18 0 0 0 - - - 0; +#X symbolatom 98 348 18 0 0 0 - - - 0; #X obj 82 392 makefilename [%e]; #X msg 83 147 1.23456; #X msg 55 119 2.345e-05; @@ -575,18 +575,18 @@ of digits to the right of the decimal point. Note that there's a default of 6 digits. Also note that this affects the resolution and can cause the number to be rounded., f 78; -#X symbolatom 250 443 18 0 0 0 - - -; -#X floatatom 250 248 8 0 0 0 - - -; -#X symbolatom 290 345 18 0 0 0 - - -; +#X symbolatom 250 443 18 0 0 0 - - - 0; +#X floatatom 250 248 8 0 0 0 - - - 0; +#X symbolatom 290 345 18 0 0 0 - - - 0; #X msg 250 144 1.234; #X msg 264 176 -18; #X obj 290 297 makefilename [%.2f]; #X msg 219 112 2.3e-05; #X msg 275 211 0.997; #X obj 250 395 makefilename [%f]; -#X symbolatom 470 445 18 0 0 0 - - -; -#X floatatom 470 250 8 0 0 0 - - -; -#X symbolatom 510 347 18 0 0 0 - - -; +#X symbolatom 470 445 18 0 0 0 - - - 0; +#X floatatom 470 250 8 0 0 0 - - - 0; +#X symbolatom 510 347 18 0 0 0 - - - 0; #X msg 470 146 1.234; #X msg 439 114 2.3e-05; #X msg 495 213 0.997; @@ -626,23 +626,47 @@ #X text 127 236 - string; #X text 33 366 The types can be preceded by optional fields \, which can be combined and included in the order below:; -#X restore 392 395 pd possible_types_&_syntax; -#X text 43 394 updated for Pd version 0.51; -#X msg 58 213 set cat\ %d.wav; -#X obj 43 265 makefilename dog\ %d.aif; -#X obj 392 250 makefilename dog\ %s.aif; -#X text 283 394 More details =>; -#X text 388 158 SUBSTITUTING A SYMBOL:; -#X text 39 158 SUBSTITUTING AN INTEGER NUMBER:; -#X text 24 63 The Makefilename object generates name symbols according +#X restore 392 391 pd possible_types_&_syntax; +#X text 412 443 updated for Pd version 0.51; +#X msg 58 209 set cat\ %d.wav; +#X obj 43 261 makefilename dog\ %d.aif; +#X obj 392 246 makefilename dog\ %s.aif; +#X text 283 390 More details =>; +#X text 388 154 SUBSTITUTING A SYMBOL:; +#X text 39 154 SUBSTITUTING AN INTEGER NUMBER:; +#X text 21 65 The Makefilename object generates name symbols according to a format string \, for use as a series of filenames \, table names \, or whatnot. You can plug in a variable number or symbol by using different types in the string ("such as %s" \, "%c" \, "%d" \, "%X and others - see subpatch below with possible types). Each object can have only one variable pattern \, but you can cascade objects for multiple substitutions., f 82; -#X text 163 301 (Note you can use backlashes to escape and insert a +#X text 163 297 (Note you can use backlashes to escape and insert a space character in the symbol), f 29; +#N canvas 684 79 565 234 reference 0; +#X obj 8 52 cnv 5 540 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 7 213 cnv 5 540 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 114 cnv 5 540 5 empty empty OUTLET: 8 18 0 13 #202020 #000000 +0; +#X obj 46 19 makefilename; +#X text 144 19 - format a "name" with a variable field; +#X text 81 63 float/symbol - to replace format specifiers., f 54; +#X text 88 82 set - sets the cell size in pixels., f 52; +#X text 121 128 symbol - formatted symbol., f 47; +#X obj 7 159 cnv 5 540 5 empty empty ARGUMENT: 8 18 0 13 #202020 #000000 +0; +#X text 188 172 format strring with specifiers ('%c' \, '%d' \, '%i +\, %e \, %E \, %f \, %g \, %G \, %o \, %s \, %u \, %x \, %X and %p). +, f 48; +#X text 104 172 1) symbol -; +#X restore 446 17 pd reference; +#X text 538 17 <= click; +#X obj 7 53 cnv 1 610 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 6 428 cnv 1 610 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 0 0 18 0; #X connect 1 0 19 0; #X connect 2 0 19 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/makenote-help.pd puredata-0.52.2+ds0/doc/5.reference/makenote-help.pd --- puredata-0.52.1+ds0/doc/5.reference/makenote-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/makenote-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,38 +1,74 @@ -#N canvas 650 115 524 406 12; -#X floatatom 198 215 5 0 0 0 - - - 0; -#X floatatom 143 182 5 0 0 0 - - - 0; -#X msg 89 138 60; -#X floatatom 45 138 5 0 0 0 - - - 0; -#X obj 32 15 makenote; -#X text 106 15 - send note-on messages and schedule note-off for later -; -#X msg 125 138 60.5; -#X text 171 132 numbers at left are "pitches" which may be integers +#N canvas 566 54 507 420 12; +#X floatatom 198 230 5 0 0 0 - - - 0; +#X floatatom 143 197 5 0 0 0 - - - 0; +#X msg 89 153 60; +#X floatatom 45 153 5 0 0 0 - - - 0; +#X obj 19 15 makenote; +#X msg 125 153 60.5; +#X text 171 147 numbers at left are "pitches" which may be integers or not., f 30; -#X text 239 215 duration in milliseconds; -#X text 214 243 creation arguments initialize velocity and duration +#X text 239 230 duration in milliseconds; +#X text 214 258 creation arguments initialize velocity and duration , f 29; -#X obj 97 364 stripnote; -#X text 301 363 updated for Pd version 0.33; -#X text 23 364 see also:; -#X floatatom 89 283 5 0 0 0 - - - 0; -#X floatatom 198 283 5 0 0 0 - - - 0; -#X obj 89 314 print pitch; -#X obj 198 314 print velocity; -#X text 184 182 "velocity" (also may be integer or not); -#X obj 89 248 makenote 100 500; -#X text 37 48 Makenote makes MIDI-style note-on/note-off pairs \, which +#X obj 88 384 stripnote; +#X text 294 384 updated for Pd version 0.33; +#X text 14 384 see also:; +#X floatatom 89 298 5 0 0 0 - - - 0; +#X floatatom 198 298 5 0 0 0 - - - 0; +#X obj 89 329 print pitch; +#X obj 198 329 print velocity; +#X text 184 197 "velocity" (also may be integer or not); +#X obj 89 263 makenote 100 500; +#X text 37 69 Makenote makes MIDI-style note-on/note-off pairs \, which you can use for MIDI output or to drive note-like processes within Pd. It can deal with any numbers (negative \, floats \, whatever) even though MIDI values need to be integers from 0 to 127!, f 63; -#X obj 170 364 makenote; -#X obj 239 364 bag; -#X connect 0 0 18 2; -#X connect 1 0 18 1; -#X connect 2 0 18 0; -#X connect 3 0 18 0; -#X connect 6 0 18 0; +#X obj 161 384 makenote; +#X obj 230 384 bag; +#N canvas 683 85 578 318 reference 0; +#X obj 11 42 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 11 157 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 11 241 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X obj 10 293 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 27 13 makenote; +#X text 96 13 - send note-on messages and schedule note-off for later. +, f 58; +#X obj 10 205 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 10 180 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 10 95 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 10 71 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 10 121 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 159 75 float - MIDI pitch.; +#X text 159 100 float - MIDI velocity.; +#X text 159 126 float - MIDI note duratin in ms.; +#X text 159 184 float - MIDI pitch., f 33; +#X text 129 250 1) float - initial velocity value (default 0).; +#X text 129 270 2) float - initial duration value (default 0).; +#X text 159 210 float - MIDI velocity., f 33; +#X restore 332 16 pd reference; +#X text 430 17 <= click; +#X obj 8 51 cnv 1 490 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 7 370 cnv 1 490 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 85 15 -, f 1; +#X text 98 7 send note-on messages and schedule note-off for later +, f 27; +#X connect 0 0 17 2; +#X connect 1 0 17 1; +#X connect 2 0 17 0; +#X connect 3 0 17 0; +#X connect 5 0 17 0; +#X connect 12 0 14 0; #X connect 13 0 15 0; -#X connect 14 0 16 0; -#X connect 18 0 13 0; -#X connect 18 1 14 0; +#X connect 17 0 12 0; +#X connect 17 1 13 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/math-help.pd puredata-0.52.2+ds0/doc/5.reference/math-help.pd --- puredata-0.52.1+ds0/doc/5.reference/math-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/math-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,89 +1,143 @@ -#N canvas 746 47 599 729 12; -#X floatatom 184 194 4 0 0 0 - - - 0; -#X floatatom 147 285 8 0 0 0 - - - 0; -#X floatatom 147 194 4 0 0 0 - - - 0; -#X floatatom 128 472 6 0 0 0 - - - 0; -#X floatatom 339 540 7 0 0 0 - - - 0; -#X floatatom 68 285 8 0 0 0 - - - 0; -#X floatatom 68 194 4 0 0 0 - - - 0; -#X floatatom 420 186 8 0 0 0 - - - 0; -#X floatatom 351 186 8 0 0 0 - - - 0; -#X obj 282 158 sin; -#X floatatom 351 67 5 0 0 0 - - - 0; -#X floatatom 282 186 8 0 0 0 - - - 0; -#X obj 351 119 * 6.28319; -#X obj 351 93 / 360; -#X obj 351 158 cos; -#X obj 420 158 tan; -#X obj 199 503 sqrt; -#X obj 68 241 atan; -#X obj 265 503 exp; -#X obj 128 503 abs; -#X obj 184 222 t b f; -#X floatatom 64 472 6 0 0 0 - - - 0; -#X obj 64 503 wrap; -#X text 38 576 see also:; -#X obj 40 600 cos~; -#X obj 78 600 wrap~; -#X obj 121 600 abs~; -#X obj 158 600 sqrt~; -#X obj 203 600 exp~; -#X obj 240 600 log~; -#X text 362 687 updated for Pd version 0.49; -#X obj 67 23 sin; -#X obj 97 23 cos; -#X obj 126 23 tan; -#X obj 155 23 atan; -#X obj 191 23 atan2; -#X text 398 24 - math functions; -#X obj 301 23 sqrt; -#X obj 367 23 log; -#X obj 338 23 exp; -#X obj 271 23 abs; -#X obj 235 23 wrap; -#X obj 147 251 atan2; -#X floatatom 339 459 5 0 0 0 - - - 0; -#X floatatom 380 459 5 0 0 0 - - - 0; -#X obj 380 483 t b f; -#X obj 339 510 log 2; -#X text 83 82 Unlike the signal version cos~ \, control-rate trigonometric +#N canvas 575 23 602 696 12; +#X floatatom 184 209 4 0 0 0 - - - 0; +#X floatatom 147 300 8 0 0 0 - - - 0; +#X floatatom 147 209 4 0 0 0 - - - 0; +#X floatatom 128 471 6 0 0 0 - - - 0; +#X floatatom 339 532 7 0 0 0 - - - 0; +#X floatatom 68 300 8 0 0 0 - - - 0; +#X floatatom 68 209 4 0 0 0 - - - 0; +#X floatatom 420 201 8 0 0 0 - - - 0; +#X floatatom 351 201 8 0 0 0 - - - 0; +#X obj 282 173 sin; +#X floatatom 351 82 5 0 0 0 - - - 0; +#X floatatom 282 201 8 0 0 0 - - - 0; +#X obj 351 134 * 6.28319; +#X obj 351 108 / 360; +#X obj 351 173 cos; +#X obj 420 173 tan; +#X obj 199 502 sqrt; +#X obj 68 256 atan; +#X obj 265 502 exp; +#X obj 128 502 abs; +#X obj 184 237 t b f; +#X floatatom 64 471 6 0 0 0 - - - 0; +#X obj 64 502 wrap; +#X text 19 625 see also:; +#X obj 100 583 cos~; +#X obj 138 583 wrap~; +#X obj 181 583 abs~; +#X obj 218 583 sqrt~; +#X obj 263 583 exp~; +#X obj 300 583 log~; +#X obj 21 10 sin; +#X obj 54 10 cos; +#X obj 86 10 tan; +#X obj 118 10 atan; +#X obj 157 10 atan2; +#X text 208 21 - math functions; +#X obj 84 35 sqrt; +#X obj 147 35 log; +#X obj 119 35 exp; +#X obj 56 35 abs; +#X obj 21 35 wrap; +#X obj 147 266 atan2; +#X floatatom 339 450 5 0 0 0 - - - 0; +#X floatatom 380 450 5 0 0 0 - - - 0; +#X obj 380 475 t b f; +#X obj 339 502 log 2; +#X text 83 97 Unlike the signal version cos~ \, control-rate trigonometric functions take inputs in radians., f 34; -#X obj 40 654 >; -#X obj 71 654 &&; -#X obj 40 680 expr; -#X text 81 680 - evaluation expressions, f 25; -#X text 315 599 - signal versions; -#X obj 40 627 +; -#X text 134 654 (etc) - other binary operators; -#X text 71 626 (etc) - binary arithmetic operators; -#X obj 104 654 div; -#X floatatom 443 540 7 0 0 0 - - - 0; -#X floatatom 443 459 5 0 0 0 - - - 0; -#X floatatom 486 459 5 0 0 0 - - - 0; -#X obj 486 483 t b f; -#X obj 443 510 pow 2; -#X obj 278 600 pow~; -#X floatatom 265 472 6 0 0 0 - - - 0; -#X floatatom 199 472 6 0 0 0 - - - 0; -#X floatatom 128 533 6 0 0 0 - - - 0; -#X floatatom 64 533 6 0 0 0 - - - 0; -#X floatatom 265 533 6 0 0 0 - - - 0; -#X floatatom 199 533 6 0 0 0 - - - 0; -#X text 26 320 We also have wrap \, absolute value \, square root \, +#X obj 100 637 >; +#X obj 131 637 &&; +#X obj 100 663 expr; +#X text 141 663 - evaluation expressions, f 25; +#X text 375 582 - signal versions; +#X obj 100 610 +; +#X text 194 637 (etc) - other binary operators; +#X text 131 609 (etc) - binary arithmetic operators; +#X obj 164 637 div; +#X floatatom 443 532 7 0 0 0 - - - 0; +#X floatatom 443 450 5 0 0 0 - - - 0; +#X floatatom 486 450 5 0 0 0 - - - 0; +#X obj 486 475 t b f; +#X obj 443 502 pow 2; +#X obj 338 583 pow~; +#X floatatom 265 471 6 0 0 0 - - - 0; +#X floatatom 199 471 6 0 0 0 - - - 0; +#X floatatom 128 532 6 0 0 0 - - - 0; +#X floatatom 64 532 6 0 0 0 - - - 0; +#X floatatom 265 532 6 0 0 0 - - - 0; +#X floatatom 199 532 6 0 0 0 - - - 0; +#X text 26 333 We also have wrap \, absolute value \, square root \, exponential \, logarithms and power \, all of which have corresponding signal versions. The "wrap" object wraps the input to a value between 0 and 1 \, including negative numbers (for instance \, -0.2 maps to 0.8.). As in the signal version log~ \, log takes a base value via an argument or the right inlet \, but it defaults to "e". Pow raises a number on the left inlet to a numeric power (given by the right inlet -or argument) - like the signal version \, pow has protection agains +or argument) - like the signal version \, pow has protection against NaNs (they become 0)., f 77; -#X text 253 222 The arc tangent takes two forms. The atan2 version +#X text 253 235 The arc tangent takes two forms. The atan2 version takes an (x \, y) pair and gives you an output between -pi and pi \, it also takes a bang message in the left inlet to evaluate the operation with the previously set values., f 40; +#N canvas 721 92 573 499 reference 0; +#X obj 8 115 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 152 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 189 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 27 17 sin; +#X obj 57 17 cos; +#X obj 86 17 tan; +#X obj 115 17 atan; +#X obj 93 42 sqrt; +#X obj 130 42 exp; +#X obj 63 42 abs; +#X obj 27 42 wrap; +#X text 169 29 - math functions (single inlet); +#X text 119 160 NONE, f 5; +#X text 109 87 float - input value to given function.; +#X text 109 124 float - output of given function.; +#X obj 21 230 atan2; +#X obj 65 230 log; +#X obj 93 230 pow; +#X text 126 229 - math functions (two inlets); +#X obj 8 262 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 392 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 433 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 472 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 343 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 98 299 bang - output the function on the previously set values. +; +#X text 91 318 float - value to the left side of the function and output. +; +#X text 113 402 float - the result of the function., f 58; +#X text 92 351 float -; +#X obj 7 294 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 149 351 value to the right side of function (2nd coordinate +for 'atan2' \, log base for 'log' and numeric power for 'pow'.; +#X obj 8 77 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X text 102 444 1) float - initialize value of right inlet (default +0)., f 58; +#X restore 395 23 pd reference; +#X text 493 24 <= click; +#X obj 6 66 cnv 1 585 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 6 568 cnv 1 585 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 381 663 updated for Pd version 0.52; +#X obj 175 35 pow; #X connect 0 0 20 0; -#X connect 2 0 42 0; +#X connect 2 0 41 0; #X connect 3 0 19 0; #X connect 6 0 17 0; #X connect 9 0 11 0; @@ -94,24 +148,24 @@ #X connect 13 0 12 0; #X connect 14 0 8 0; #X connect 15 0 7 0; -#X connect 16 0 68 0; +#X connect 16 0 67 0; #X connect 17 0 5 0; -#X connect 18 0 67 0; -#X connect 19 0 65 0; -#X connect 20 0 42 0; -#X connect 20 1 42 1; +#X connect 18 0 66 0; +#X connect 19 0 64 0; +#X connect 20 0 41 0; +#X connect 20 1 41 1; #X connect 21 0 22 0; -#X connect 22 0 66 0; -#X connect 42 0 1 0; -#X connect 43 0 46 0; +#X connect 22 0 65 0; +#X connect 41 0 1 0; +#X connect 42 0 45 0; +#X connect 43 0 44 0; #X connect 44 0 45 0; -#X connect 45 0 46 0; -#X connect 45 1 46 1; -#X connect 46 0 4 0; -#X connect 58 0 61 0; +#X connect 44 1 45 1; +#X connect 45 0 4 0; +#X connect 57 0 60 0; +#X connect 58 0 59 0; #X connect 59 0 60 0; -#X connect 60 0 61 0; -#X connect 60 1 61 1; -#X connect 61 0 57 0; -#X connect 63 0 18 0; -#X connect 64 0 16 0; +#X connect 59 1 60 1; +#X connect 60 0 56 0; +#X connect 62 0 18 0; +#X connect 63 0 16 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/message-help.pd puredata-0.52.2+ds0/doc/5.reference/message-help.pd --- puredata-0.52.1+ds0/doc/5.reference/message-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/message-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,15 +1,15 @@ #N struct template1 float x float y float z float q; -#N canvas 409 51 1132 746 12; -#X msg 71 15 message boxes; -#X msg 101 296 walk the dog; -#X obj 78 343 print; -#X obj 643 335 receive my-receiver-name; -#X floatatom 643 365 6 0 0 0 - - - 0; -#X floatatom 878 365 6 0 0 0 - - - 0; -#X obj 878 333 receive another-receiver; -#X text 682 439 You can send messages to message boxes to change their +#N canvas 248 23 1043 711 12; +#X msg 51 12 message boxes; +#X msg 123 267 walk the dog; +#X obj 100 312 print; +#X obj 600 338 receive my-receiver-name; +#X floatatom 600 368 6 0 0 0 - - - 0; +#X floatatom 835 368 6 0 0 0 - - - 0; +#X obj 835 336 receive another-receiver; +#X text 639 440 You can send messages to message boxes to change their content - open the subpatch below for details:, f 41; -#N canvas 614 207 611 440 changing-messages 0; +#N canvas 455 210 611 440 changing-messages 0; #X msg 49 373 dog bird monkey \; bird; #X msg 49 60 set dog; #X msg 84 146 add monkey; @@ -40,8 +40,8 @@ #X connect 12 0 0 0; #X connect 13 0 0 0; #X connect 14 0 0 0; -#X restore 827 480 pd changing-messages; -#X text 124 343 <= object (different border); +#X restore 784 481 pd changing-messages; +#X text 146 314 <= object (different border); #N canvas 866 231 495 492 more-on-selectors 0; #X msg 118 262 4; #X msg 118 196 bang; @@ -72,16 +72,16 @@ if its first element is a number. Other message selectors can be anything else. If a message contains only one symbol \, like "stop" \, it is considered a selector with no actual message attached.; -#X restore 249 505 pd more-on-selectors; -#X text 610 13 You can separate multiple messages by commas., f 46 +#X restore 236 456 pd more-on-selectors; +#X text 630 64 You can separate multiple messages by commas., f 26 ; -#X obj 773 82 print; -#X msg 773 52 1 \, 2 \, 3 \, 4; -#X text 849 689 updated for Pd version 0.52; -#X obj 643 396 print my-receiver-name; -#X obj 878 396 print another-receiver; -#X obj 634 284 print message; -#X msg 634 226 1 \, 2 \, 3 \; my-receiver-name 100 \, 200 \, 300 \; +#X obj 826 95 print; +#X msg 826 65 1 \, 2 \, 3 \, 4; +#X text 813 680 updated for Pd version 0.52; +#X obj 600 399 print my-receiver-name; +#X obj 835 399 print another-receiver; +#X obj 591 290 print message; +#X msg 591 232 1 \, 2 \, 3 \; my-receiver-name 100 \, 200 \, 300 \; another-receiver -45 \, -12.5; #N canvas 549 120 1021 464 escaping-characters 0; #X symbolatom 71 181 20 0 0 0 - - - 0; @@ -133,7 +133,7 @@ #X text 29 18 The backlash character is used in Pd to escape special characters that are handled differently in Pd. Such characters are: spaces \, commas \, semicolons \, dollar signs (as in the locality -sintax) and the backslash character itself. See examples below., f +syntax) and the backslash character itself. See examples below., f 66; #X connect 3 0 1 0; #X connect 5 0 0 0; @@ -149,7 +149,7 @@ #X connect 26 0 22 0; #X connect 27 0 28 0; #X connect 29 0 30 0; -#X restore 817 639 pd escaping-characters; +#X restore 748 631 pd escaping-characters; #N canvas 959 386 445 331 Dealing_with_"\$0" 0; #X text 36 33 '\$0' - the patch ID number used to force locality in Pd - is widely used in send/receive names as well as array names. This @@ -174,32 +174,32 @@ #X connect 6 0 3 0; #X connect 7 0 8 0; #X connect 9 0 7 0; -#X restore 837 541 pd Dealing_with_"\$0"; -#X text 689 523 open subpatch to see how to deal with '\$0' =>, f +#X restore 794 537 pd Dealing_with_"\$0"; +#X text 646 519 open subpatch to see how to deal with '\$0' =>, f 24; -#X text 637 693 see also:; -#X msg 88 264 bang; -#X msg 77 232 symbol hi; -#X text 154 231 a symbol message; -#X text 128 263 a bang message; -#X obj 374 284 float; -#X msg 374 221 3; -#X floatatom 374 316 5 0 0 0 - - - 0; -#X obj 374 345 print; -#X text 407 222 a float message; -#X msg 894 226 \; my-receiver-name 858 \; another-receiver -45; -#X obj 894 284 print nothing; -#X msg 389 253 doesn't work; -#X text 30 555 You can use "\$1" \, "\$2" \, etc. to make variable +#X text 59 679 see also:; +#X msg 110 233 bang; +#X msg 99 203 symbol hi; +#X text 176 202 a symbol message; +#X text 150 234 a bang message; +#X obj 376 255 float; +#X msg 376 192 3; +#X floatatom 376 287 5 0 0 0 - - - 0; +#X obj 376 316 print; +#X text 409 193 a float message; +#X msg 851 232 \; my-receiver-name 858 \; another-receiver -45; +#X obj 851 290 print nothing; +#X msg 391 224 doesn't work; +#X text 17 498 You can use "\$1" \, "\$2" \, etc. to make variable messages in message boxes. The dollar sign numbers correspond to elements of an incoming message (number or symbol) \, so "\$1" is the 1st element \, \$2 the 2nd and so on., f 72; -#X floatatom 261 626 5 0 127 0 - - - 0; -#X msg 261 658 pitch \$1; -#X obj 261 692 print; -#X msg 57 626 1 two 3; -#X msg 57 658 1st: \$1 2nd: \$2 3rd: \$3; -#X obj 57 692 print; +#X floatatom 248 567 5 0 127 0 - - - 0; +#X msg 248 599 pitch \$1; +#X obj 248 633 print; +#X msg 44 567 1 two 3; +#X msg 44 599 1st: \$1 2nd: \$2 3rd: \$3; +#X obj 44 633 print; #N canvas 498 109 857 521 dollar-variables 0; #X symbolatom 250 178 8 0 0 0 - - - 0; #X msg 250 111 symbol nice; @@ -268,43 +268,75 @@ #X connect 32 0 35 0; #X connect 33 0 31 0; #X connect 35 0 33 0; -#X restore 385 684 pd dollar-variables; -#X text 107 498 Open subpatch for more on selectors:, f 18; -#X text 404 506 <= click; -#X text 366 662 more on dollar variables:; -#X text 307 627 <= click and drag; -#X text 204 290 a message with 'walk' selector, f 15; -#X text 418 316 (number box); -#X text 35 142 Anytime the message box receives any message at all -\, the message(s) in the box get sent. Clicking on a message box also -activates it and sends its content \, so you can use them for push -buttons. Click on the messages while watching the printout window: -, f 70; -#X text 50 392 When an object receives a message \, it checks for the -selector. The [float] object receives a float message to store and -output it. But it doesn't understand a message with the selector "doesn't"! -A number box also understands a float message and passes it through. -What comes out of control objects and number/symbol/list boxes are -all just messages as well!, f 67; -#X text 35 46 Message boxes hold one or more messages \, which get -sent to its outlet or to given destinations when the box is activated. -Messages in Pd consist of a selector (a symbol) and zero or more arguments. -The selectors "float" \, "bang" \, "symbol" and "list" are common and -special selectos in Pd. Numbers and lists that start with numbers are -automatically given the 'float' and 'list' selector \, respectively. -, f 70; -#X text 610 118 If you separate messages by a semicolon \, the following +#X restore 372 625 pd dollar-variables; +#X text 94 449 Open subpatch for more on selectors:, f 18; +#X text 391 457 <= click; +#X text 353 603 more on dollar variables:; +#X text 294 568 <= click and drag; +#X text 226 261 a message with 'walk' selector, f 15; +#X text 420 287 (number box); +#X text 571 124 If you separate messages by a semicolon \, the following message(s) are sent to destinations specified by the selector. A [receive] object with the corresponding destination name gets the message. A message box can start with a semicolon and nothing comes out of it \, it all goes to destinations. The order messages are sent are from left to right and top to bottom.e, f 65; -#X obj 711 692 pd-messages; -#X text 819 597 ; -#X text 685 583 Finally \, you can escape special characters with backslashes: +#X obj 133 680 pd-messages; +#X text 648 579 Finally \, you can escape special characters with backslashes: " ". click and open the subpatch below for more information., f 42 ; -#X text 178 15 <== a message box; +#X text 158 11 <== a message box; +#X obj 11 42 cnv 1 1025 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 943 12 <= click; +#N canvas 748 164 587 330 reference 0; +#X msg 32 17 message boxes; +#X text 139 16 <== a message box; +#X obj 18 49 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 18 216 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 18 263 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X obj 18 300 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 142 271 NONE; +#X text 110 222 anything -; +#X text 192 222 one or more messages when activated via clicks or when +receiving messages., f 46; +#X text 101 60 set - set message., f 60; +#X text 101 79 add - add message terminating by a semicolon. +, f 60; +#X text 94 97 add2 - add message without the terminating semicolon. +, f 61; +#X text 115 116 addcomma - add a comma., f 58; +#X text 122 135 addsemi - add a semicolon., f 57; +#X text 52 154 adddollar - add a dollar-sign argument., f +67; +#X text 37 172 adddollsym - add a dollar-sign symbol that +starts with a float., f 72; +#X text 114 192 anything - any other message activates and send contents. +, f 61; +#X restore 844 12 pd reference; +#X obj 11 667 cnv 1 1025 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 225 680 send; +#X text 22 54 Message boxes hold one or more messages that get sent +to its outlet or to given destinations when the box is activated. Messages +in Pd consist of a selector (a symbol) and zero or more arguments. +The selectors "float" \, "bang" \, "symbol" and "list" are common and +special selectos in Pd. Numbers and lists that start with numbers are +automatically given the 'float' and 'list' selectors \, respectively. +, f 74; +#X text 22 145 Clicking on a message activates it and sends its content +\, so you can use them for push buttons. Click on the messages while +watching the printout window:, f 74; +#X text 22 353 When an object receives a message \, it checks for the +selector. The [float] object receives a float message to store and +output it \, but it doesn't work with the selector "doesn't"! A number +box also understands a float message and passes it through. What comes +out of control objects and number/symbol/list boxes are all just messages +as well!, f 74; #X connect 1 0 2 0; #X connect 3 0 4 0; #X connect 4 0 15 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/metro-help.pd puredata-0.52.2+ds0/doc/5.reference/metro-help.pd --- puredata-0.52.1+ds0/doc/5.reference/metro-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/metro-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,85 +1,119 @@ -#N canvas 710 41 646 825 12; -#X obj 89 17 metro; -#X floatatom 179 469 4 0 0 0 - - - 0; -#X msg 40 272 1; -#X text 108 273 nonzero number or "bang" to start; -#X msg 81 305 0; -#X msg 72 272 bang; -#X msg 114 305 stop; -#X obj 70 532 bng 25 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#N canvas 589 23 646 718 12; +#X obj 29 12 metro; +#X floatatom 179 436 4 0 0 0 - - - 0; +#X msg 38 252 1; +#X text 106 253 nonzero number or "bang" to start; +#X msg 81 280 0; +#X msg 70 252 bang; +#X msg 114 280 stop; +#X obj 70 499 bng 20 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X text 198 525 - delay time (float); -#X text 199 543 - tempo (float) and time unit (symbol) as in "tempo" -message; -#X text 51 785 see also:; -#X obj 171 785 timer; -#X obj 302 701 metro 1 120 permin, f 19; -#X obj 260 651 tgl 20 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X text 27 687 see also:; +#X obj 147 687 timer; +#X obj 302 612 metro 1 120 permin, f 19; +#X obj 260 562 tgl 20 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X obj 302 733 bng 25 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X obj 302 639 bng 20 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 124 785 delay; -#X text 387 785 Updated for Pd version 0.48; -#X text 152 304 zero or "stop" to stop; -#X obj 432 653 /; -#X msg 432 628 1 \$1; -#X msg 432 596 0.5; -#X msg 468 596 1; -#X msg 397 596 4; -#X text 499 594 beat length; -#X msg 302 651 tempo \$1 permin; -#X floatatom 302 615 5 0 0 0 - - - 0; -#X text 194 506 <= optional creation arguments:; -#X text 42 216 These symbols can also be preceeded by "per" (as in -"permin" \, "permsec" \, etc.) In this case \, 60 permin means 1/60 -min (hence \, the same as 'BPM')., f 78; -#X text 61 149 - millisecond (msec for short) \; - seconds (sec) \; -- minutes (min) \; - samples (samp) - depends on the sample rate the -patch is running, f 67; -#X msg 129 342 tempo 0.5 msec; -#X text 239 335 set units to 1/2 millisecond so that '1000' gives a +#X obj 100 687 delay; +#X text 152 279 zero or "stop" to stop; +#X msg 432 527 0.5; +#X msg 468 527 1; +#X msg 397 527 4; +#X text 499 525 beat length; +#X msg 302 562 tempo \$1 permin; +#X floatatom 302 526 5 0 0 0 - - - 0; +#X msg 129 309 tempo 0.5 msec; +#X text 239 302 set units to 1/2 millisecond so that '1000' gives a time interval of 500 msec (1/2 second)., f 47; -#X msg 138 370 tempo 2 permillisecond; -#X text 284 396 same as 1 msec \, so '1000' is a second.; -#X text 301 370 this is the same as above.; -#X text 218 463 right inlet sets the time (if the metro is running +#X msg 138 337 tempo 2 permillisecond; +#X text 284 363 same as 1 msec \, so '1000' is a second.; +#X text 301 337 this is the same as above.; +#X text 218 430 right inlet sets the time (if the metro is running \, it only takes affect in the next beat)., f 52; -#X obj 70 506 metro 500 1 msec; -#X text 61 697 A metronome at intervals of one beat at 120 beats per +#X obj 70 473 metro 500 1 msec; +#X text 64 608 A metronome at intervals of one beat at 120 beats per minute:, f 31; -#X floatatom 432 677 5 0 0 0 - - - 0; -#X text 207 654 on/off; -#X text 206 614 change tempo; -#X msg 149 397 tempo 0.001 second; -#X obj 219 785 text sequence; -#X text 29 48 The metro object sends a series of bangs at regular time +#X floatatom 432 588 5 0 0 0 - - - 0; +#X text 207 565 on/off; +#X text 206 525 change tempo; +#X msg 149 364 tempo 0.001 second; +#X obj 195 687 text sequence; +#X text 30 54 The metro object sends a series of bangs at regular time intervals. The left inlet takes a nonzero number or "bang" to start and 0 or 'stop' to stop it. The time is set via the right inlet or first argument. The default time unit is 1 millisecond but you can change this via the 2nd and 3rd argument or the "tempo" message (as in [timer] \, [delay] and [text sequence]) \, which set a different tempo number and a time unit symbol. Possible symbols are:, f 83; -#X text 140 16 - send a bang message periodically (a la metronome) -; -#X text 155 422 Note that if the tempo is changed while the metro is +#X text 78 11 - send a bang message periodically (a la metronome); +#X text 155 389 Note that if the tempo is changed while the metro is running \, the change takes effect to the remaining fraction of the beat., f 62; -#X connect 1 0 35 1; -#X connect 2 0 35 0; -#X connect 4 0 35 0; -#X connect 5 0 35 0; -#X connect 6 0 35 0; -#X connect 12 0 14 0; -#X connect 13 0 12 0; -#X connect 18 0 37 0; -#X connect 19 0 18 0; +#X obj 10 42 cnv 1 625 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 759 166 577 341 reference 0; +#X obj 8 44 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 202 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 239 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 313 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 165 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 7 76 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 23 14 metro; +#X text 72 13 - send a bang message periodically (a la metronome); +#X text 140 82 float -; +#X text 147 101 bang -; +#X text 147 120 stop -; +#X text 28 138 tempo -; +#X text 197 138 set tempo value (float) and time unit symbol., f 46 +; +#X text 197 101 start the metronome., f 46; +#X text 197 82 non zero starts and zero stops the metronome., f 46 +; +#X text 197 120 stop the metronome., f 46; +#X text 140 177 float -; +#X text 197 177 set metronome time for the next tempo., f 46; +#X text 146 214 bang - bang at a periodic time., f 54; +#X text 140 250 1) float - initial metronome time (default 0)., f +54; +#X text 140 269 2) float - tempo value (default 1)., f 54; +#X text 133 289 3) symbol - time unit (default 'msec')., f 55; +#X restore 464 11 pd reference; +#X text 558 11 <= click; +#X obj 10 674 cnv 1 625 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 61 148 - millisecond (msec for short) \; - seconds (sec) \; +- minutes (min) \; - samples (samp), f 32; +#X text 204 171 These symbols can also be preceded by "per" (as in +"permin" \, "permsec" \, etc.) In this case \, 60 permin means 1/60 +min (hence \, the same as 'BPM'). 'samps' depends on the sample rate +the patch is running., f 52; +#X text 194 473 <= arguments:; +#X text 292 473 - delay time (float) \, tempo (float) and time unit +(symbol) as in "tempo" message., f 41; +#X obj 432 564 expr 1/$f1; +#X text 431 688 updated for Pd version 0.48; +#X connect 1 0 27 1; +#X connect 2 0 27 0; +#X connect 4 0 27 0; +#X connect 5 0 27 0; +#X connect 6 0 27 0; +#X connect 10 0 12 0; +#X connect 11 0 10 0; +#X connect 15 0 45 0; +#X connect 16 0 45 0; +#X connect 17 0 45 0; +#X connect 19 0 10 0; #X connect 20 0 19 0; -#X connect 21 0 19 0; -#X connect 22 0 19 0; -#X connect 24 0 12 0; -#X connect 25 0 24 0; -#X connect 29 0 35 0; -#X connect 31 0 35 0; -#X connect 35 0 7 0; -#X connect 37 0 12 1; -#X connect 40 0 35 0; +#X connect 21 0 27 0; +#X connect 23 0 27 0; +#X connect 27 0 7 0; +#X connect 29 0 10 1; +#X connect 32 0 27 0; +#X connect 45 0 29 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/midi-help.pd puredata-0.52.2+ds0/doc/5.reference/midi-help.pd --- puredata-0.52.1+ds0/doc/5.reference/midi-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/midi-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,4 +1,4 @@ -#N canvas 542 57 1074 583 12; +#N canvas 261 69 1069 616 12; #X obj 531 344 noteout; #X obj 614 433 pgmout; #X obj 529 433 bendout; @@ -65,7 +65,7 @@ #X text 139 367 channel/port; #X obj 261 341 ctlin 7 17; #X text 339 335 (controller 7 \, channel 1/port 2), f 17; -#X text 9 51 MIDI INPUTS: Inputs are omni by default \, an optional +#X text 15 51 MIDI INPUTS: Inputs are omni by default \, an optional argument sets the channel/port and removes the rightmost outlet (which outputs this information). For [ctlin] \, a first optional argument sets controller number and suppresses its corresponding outlet \, and @@ -78,7 +78,7 @@ by arguments and change the parameters., f 67; #X text 810 268 (controller 7 \, channel/port 1), f 15; #X obj 961 335 ctlout 3 38; -#X text 9 129 Port number is encoded as the channel number. Channels +#X text 15 129 Port number is encoded as the channel number. Channels 1 to 16 are for port 1 \, channels 17 to 32 is the same as channels 1 to 16 for port 2 \, channels 33 to 48 represents channels 1 to 16 in port 3 \, and so on..., f 70; @@ -90,7 +90,7 @@ #X text 536 475 * Known bug: [bendin] and [bendout] are inconsistent ([bendin] outputs values from 0 to 16383 and [bendout] takes values from -8192 to 8191) - this won't change., f 70; -#X text 32 543 updated for Pd version 0.48-2; +#X text 839 583 updated for Pd version 0.48-2; #X text 940 268 (controller 3 \, channel 6/port 3), f 17; #X floatatom 26 282 4 0 127 0 - - - 0; #X floatatom 589 316 0 1 64 0 - - - 0; @@ -126,7 +126,7 @@ #X floatatom 72 488 0 1 64 0 - - - 0; #X floatatom 287 488 0 1 64 0 - - - 0; #X floatatom 414 488 0 1 64 0 - - - 0; -#X text 156 13 MIDI Input/Output objects; +#X text 36 13 MIDI Input/Output objects; #X text 527 159 ========================================================================== , f 74; #X obj 127 460 pgmin 2; @@ -136,6 +136,338 @@ #X text 20 509 value; #X text 159 489 value; #X text 233 508 value; +#X obj 7 41 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 7 572 cnv 1 1055 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 502 23 566 293 reference 0; +#N canvas 564 82 588 563 reference 0; +#X obj 18 46 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 18 83 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 18 199 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 253 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 39 16 notein; +#X text 135 58 NONE; +#X text 93 15 - MIDI note input; +#X obj 18 135 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 18 107 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 146 112 float - MIDI note pitch., f 27; +#X text 146 140 float - MIDI note velocity.; +#X obj 18 161 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 146 166 float - MIDI channel (if no argument is given).; +#X obj 18 336 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 18 453 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 18 489 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 525 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 154 462 NONE; +#X obj 18 395 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 18 367 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 146 372 float - MIDI note pitch., f 27; +#X text 146 400 float - MIDI note velocity.; +#X obj 18 421 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 29 306 noteout; +#X text 93 305 - MIDI note output; +#X text 146 426 float - MIDI channel.; +#X text 141 498 1) float - sets MIDI channel (default 0).; +#X text 55 224 1) float - sets MIDI channel and suppresses 3rd outlet +(default OMNI)., f 69; +#X restore 383 19 pd reference; +#X obj 230 19 notein; +#X text 350 20 ==>; +#X obj 286 19 noteout; +#N canvas 706 82 584 620 reference 0; +#X obj 18 46 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 18 83 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 18 196 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 270 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 135 58 NONE; +#X obj 18 135 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 18 107 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 18 161 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 146 168 float - MIDI channel (if no argument is given).; +#X obj 18 356 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 18 473 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 18 509 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 567 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 174 482 NONE; +#X obj 39 16 ctlin; +#X text 89 15 - MIDI control input; +#X text 146 112 float - control value., f 27; +#X obj 29 326 ctlout; +#X text 83 325 - MIDI control output; +#X text 146 140 float - MIDI control number (if no argument is given). +; +#X obj 17 415 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 17 387 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 17 441 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 165 392 float - control value., f 27; +#X text 165 420 float - MIDI control number.; +#X text 139 519 1) float - sets control number (default 0)., f 46 +; +#X text 140 539 2) float - sets MIDI channel (default 0)., f 46; +#X text 55 221 1) float - sets control number and suppresses 2nd outlet +(default ALL)., f 70; +#X text 55 241 2) float - sets MIDI channel and suppresses 3rd outlet +(default OMNI)., f 70; +#X text 165 448 float - MIDI channel.; +#X restore 383 59 pd reference; +#X text 350 60 ==>; +#X obj 242 59 ctlin; +#X obj 292 59 ctlout; +#N canvas 706 82 584 581 reference 0; +#X obj 18 46 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 18 83 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 18 172 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 226 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 135 58 NONE; +#X obj 18 135 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 18 107 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 146 144 float - MIDI channel (if no argument is given).; +#X obj 18 356 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 18 450 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 18 486 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 527 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 174 459 NONE; +#X obj 17 415 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 17 387 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 155 392 float - control value., f 27; +#X obj 39 16 bendin; +#X text 92 15 - MIDI pitch bend input.; +#X text 55 197 1) float - sets MIDI channel and suppresses 2nd outlet +(default OMNI)., f 69; +#X text 146 112 float - pitch bend value., f 27; +#X obj 29 326 bendout; +#X text 130 497 1) float - sets MIDI channel (default 0)., f 46; +#X text 155 420 float - MIDI channel number.; +#X text 93 325 - MIDI pitch bend output; +#X restore 383 95 pd reference; +#X text 350 96 ==>; +#X obj 228 95 bendin; +#X obj 284 95 bendout; +#N canvas 706 82 584 581 reference 0; +#X obj 18 46 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 18 83 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 18 172 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 226 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 135 58 NONE; +#X obj 18 135 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 18 107 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 146 144 float - MIDI channel (if no argument is given).; +#X obj 18 356 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 18 450 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 18 486 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 527 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 174 459 NONE; +#X obj 17 415 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 17 387 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 55 197 1) float - sets MIDI channel and suppresses 2nd outlet +(default OMNI)., f 71; +#X text 130 497 1) float - sets MIDI channel (default 0)., f 46; +#X text 155 420 float - MIDI channel number.; +#X obj 39 16 pgmin; +#X obj 29 326 pgmout; +#X text 93 325 - MIDI program output; +#X text 146 112 float - program value., f 27; +#X text 155 392 float - program value., f 27; +#X text 92 15 - MIDI program input.; +#X restore 383 131 pd reference; +#X text 350 132 ==>; +#X obj 242 131 pgmin; +#X obj 291 131 pgmout; +#N canvas 706 82 584 581 reference 0; +#X obj 18 46 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 18 83 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 18 172 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 226 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 135 58 NONE; +#X obj 18 135 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 18 107 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 146 144 float - MIDI channel (if no argument is given).; +#X obj 18 356 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 18 450 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 18 486 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 527 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 174 459 NONE; +#X obj 17 415 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 17 387 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 55 197 1) float - sets MIDI channel and suppresses 2nd outlet +(default OMNI)., f 69; +#X text 130 497 1) float - sets MIDI channel (default 0)., f 46; +#X text 155 420 float - MIDI channel number.; +#X obj 39 16 touchin; +#X text 104 16 - MIDI channel aftertouch input.; +#X text 146 112 float - channel aftertouch value.; +#X obj 29 326 touchout; +#X text 93 325 - MIDI channel aftertouch output.; +#X text 155 392 float - channel aftertouch value.; +#X restore 383 168 pd reference; +#X text 350 169 ==>; +#X obj 217 168 touchin; +#X obj 277 168 touchout; +#N canvas 666 100 588 563 reference 0; +#X obj 18 46 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 18 83 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 18 196 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 250 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 135 58 NONE; +#X obj 18 135 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 18 107 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 18 161 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 146 166 float - MIDI channel (if no argument is given).; +#X obj 18 336 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 18 453 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 18 489 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 525 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 154 462 NONE; +#X obj 18 395 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 18 367 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 18 421 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 146 426 float - MIDI channel.; +#X text 141 498 1) float - sets MIDI channel (default 0).; +#X text 55 221 1) float - sets MIDI channel and suppresses 3rd outlet +(default OMNI)., f 69; +#X obj 39 16 polytouchin; +#X text 133 16 - MIDI polyphonic aftertouch input.; +#X obj 29 306 polytouchout; +#X text 131 305 - MIDI polyphonic aftertouch output.; +#X text 146 112 float - aftertouch value., f 27; +#X text 146 140 float - MIDI note pitch.; +#X text 146 372 float - aftertouch value., f 27; +#X text 146 400 float - MIDI note pitch.; +#X restore 383 209 pd reference; +#X text 350 210 ==>; +#X obj 160 209 polytouchin; +#X obj 250 209 polytouchout; +#X obj 64 247 midiin; +#X obj 226 247 sysexin; +#X obj 118 247 midirealtimein; +#X obj 284 247 midiout; +#N canvas 658 145 583 559 reference 0; +#X obj 18 46 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 18 83 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 18 199 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X obj 17 233 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 135 58 NONE; +#X obj 18 162 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 18 107 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 18 356 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 18 450 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 18 486 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 523 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 174 459 NONE; +#X obj 17 415 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 17 387 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 33 12 midiin; +#X obj 195 12 sysexin; +#X obj 87 12 midirealtimein; +#X text 156 208 none; +#X text 146 171 float - port number.; +#X text 70 116 float -; +#X text 128 117 midiin: raw MIDI (except real-time messages) \, midirealtimein: +real-time messages \, sysexin: only system exclusive messages., f +61; +#X obj 29 326 midiout; +#X text 87 325 - raw MIDI output.; +#X text 259 13 - raw \, realtime and sysex input.; +#X text 155 392 float - raw MIDI.; +#X text 155 420 float - port number.; +#X text 174 494 NONE; +#X restore 383 246 pd reference; +#X text 350 247 ==>; +#X restore 331 10 pd reference; +#X text 429 11 <= click; +#X obj 526 5 cnv 1 1 35 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 8 0 84 0; #X connect 8 1 86 0; #X connect 9 0 87 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/moses-help.pd puredata-0.52.2+ds0/doc/5.reference/moses-help.pd --- puredata-0.52.1+ds0/doc/5.reference/moses-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/moses-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,17 +1,52 @@ -#N canvas 758 95 500 282 12; -#X obj 74 187 moses 10; -#X floatatom 127 220 5 0 0 0 - - - 0; -#X obj 65 29 moses; -#X text 120 28 - part a stream of numbers; -#X text 249 206 updated for Pd version 0.33; -#X text 26 69 Moses takes numbers and outputs them at left if they're +#N canvas 549 73 484 296 12; +#X obj 107 162 moses 10; +#X floatatom 160 205 5 0 0 0 - - - 0; +#X obj 28 17 moses; +#X text 78 16 - part a stream of numbers; +#X text 262 260 updated for Pd version 0.33; +#X floatatom 107 205 5 0 0 0 - - - 0; +#X floatatom 107 130 5 0 0 0 - - - 0; +#X floatatom 160 132 5 0 0 0 - - - 0; +#N canvas 695 144 575 310 reference 0; +#X obj 33 19 moses; +#X text 80 18 - part a stream of numbers; +#X obj 8 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 148 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 242 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 278 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 110 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 7 82 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 7 201 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 7 172 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 107 88 float - number to be parted., f 48; +#X text 107 115 float - set control value., f 48; +#X text 107 179 float - input number if less than control value.; +#X text 107 207 float - input number if equal or higher than control +value.; +#X text 116 251 1) float - set initial control value (default 0).; +#X restore 301 17 pd reference; +#X text 397 18 <= click; +#X obj 8 49 cnv 1 470 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 8 248 cnv 1 470 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 26 66 Moses takes numbers and outputs them at left if they're less than a control value \, and at right if they're greater or equal -to it. The creation argument initializes the control value (10 in this -example) and the right inlet changes it.; -#X floatatom 74 220 5 0 0 0 - - - 0; -#X floatatom 74 155 5 0 0 0 - - - 0; -#X floatatom 127 157 5 0 0 0 - - - 0; -#X connect 0 0 6 0; +to it.; +#X text 170 161 <= creation argument initializes the value and the +right inlet changes it., f 37; +#X obj 145 262 change; +#X text 17 263 see also:; +#X obj 90 262 select; +#X connect 0 0 5 0; #X connect 0 1 1 0; -#X connect 7 0 0 0; -#X connect 8 0 0 1; +#X connect 6 0 0 0; +#X connect 7 0 0 1; diff -Nru puredata-0.52.1+ds0/doc/5.reference/my_canvas-help.pd puredata-0.52.2+ds0/doc/5.reference/my_canvas-help.pd --- puredata-0.52.1+ds0/doc/5.reference/my_canvas-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/my_canvas-help.pd 1970-01-01 00:00:00.000000000 +0000 @@ -1,650 +0,0 @@ -#N canvas 521 38 554 461 12; -#X obj 151 217 cnv 40 150 102 empty empty Canvas 20 50 0 30 #a06888 -#fcfcfc 0; -#X obj 28 10 cnv 15 100 60 empty empty empty 20 12 0 14 #e0e0e0 #404040 -0; -#X text 135 14 - [my_canvas]/[cnv]: Canvas; -#N canvas 424 168 359 352 properties 0; -#N canvas 815 23 654 646 colors 0; -#X floatatom 82 251 3 0 29 0 - - - 0; -#X floatatom 187 256 3 0 29 0 - - - 0; -#X text 180 231 label; -#X obj 187 282 t b f; -#X msg 82 350 color \$1 \$2 \$3; -#X text 191 350 presets; -#X symbolatom 485 347 9 0 0 0 - - - 0; -#N canvas 1126 148 390 482 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc -#fcfcfc #000000 0 1; -#X obj 109 225 t b f; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 -#000000 #000000 0 1; -#X obj 80 341 pack s s s; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 -#000000 #000000 0 1; -#X obj 81 250 t b f; -#X obj 147 257 makefilename %02x; -#X obj 113 284 makefilename %02x; -#X obj 74 311 makefilename %02x; -#X text 66 56 label; -#X obj 80 406 outlet; -#X msg 80 370 symbol #\$1\$2\$3; -#X obj 161 185 loadbang; -#X msg 161 217 0; -#X connect 0 0 1 0; -#X connect 1 0 2 0; -#X connect 1 1 6 0; -#X connect 2 0 5 0; -#X connect 3 0 11 0; -#X connect 4 0 8 0; -#X connect 5 0 4 0; -#X connect 5 1 7 0; -#X connect 6 0 3 2; -#X connect 7 0 3 1; -#X connect 8 0 3 0; -#X connect 11 0 10 0; -#X connect 12 0 13 0; -#X connect 13 0 6 0; -#X connect 13 0 7 0; -#X coords 0 -1 1 1 80 170 2 50 50; -#X restore 485 165 pd label; -#X symbolatom 345 346 9 0 0 0 - - - 0; -#N canvas 968 124 390 482 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc -#fcfcfc #000000 0 1; -#X obj 109 225 t b f; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 -#000000 #000000 0 1; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 -#000000 #000000 0 1; -#X obj 81 250 t b f; -#X obj 221 257 makefilename %02x; -#X obj 141 284 makefilename %02x; -#X obj 61 321 makefilename %02x; -#X obj 61 416 outlet; -#X text 52 56 background; -#X msg 61 380 symbol #\$1\$2\$3; -#X obj 176 59 loadbang; -#X obj 176 176 route set; -#X obj 61 351 pack symbol symbol symbol; -#X obj 277 71 cnv 15 100 60 empty empty empty 20 12 0 14 #e0e0e0 #404040 -0; -#X msg 176 91 set 225; -#X connect 0 0 1 0; -#X connect 1 0 2 0; -#X connect 1 1 5 0; -#X connect 2 0 4 0; -#X connect 3 0 7 0; -#X connect 4 0 3 0; -#X connect 4 1 6 0; -#X connect 5 0 13 2; -#X connect 6 0 13 1; -#X connect 7 0 13 0; -#X connect 10 0 8 0; -#X connect 11 0 15 0; -#X connect 12 0 5 0; -#X connect 12 0 6 0; -#X connect 13 0 10 0; -#X connect 15 0 3 0; -#X connect 15 0 2 0; -#X connect 15 0 0 0; -#X connect 15 0 12 0; -#X coords 0 -1 1 1 80 170 2 50 50; -#X restore 345 165 pd label; -#X obj 485 377 t b s; -#X obj 267 231 loadbang; -#X obj 345 415 pack symbol symbol symbol; -#X msg 345 444 color \$1 \$2 \$3; -#X text 72 231 background; -#X text 454 445 RGB in hexadecimal; -#X text 356 140 Set RGB values in the sliders; -#X text 71 164 Open subpatches for the conversion from RGB to hexadecimal -============>, f 38; -#X obj 193 540 cnv 15 200 60 empty \$0-colors Label 35 30 0 40 #e1e1e1 -#000000 0; -#X obj 345 481 send \$0-colors; -#X msg 267 270 list #e1e1e1 #000000 #000000, f 7; -#X obj 82 313 pack 1 22 22, f 20; -#N canvas 755 128 818 419 old-behaviour 0; -#X floatatom 395 117 3 0 29 0 - - - 0; -#X floatatom 500 122 3 0 29 0 - - - 0; -#X text 493 97 label; -#X obj 500 158 t b f; -#X msg 395 226 color \$1 \$2 \$3; -#X text 393 97 background; -#X obj 496 320 cnv 15 200 60 empty \$0-old-behaviour Label 35 30 0 -40 #e0e0e0 #000000 0; -#X obj 395 266 send \$0-old-behaviour; -#X floatatom 600 116 3 0 29 0 - - - 0; -#X floatatom 705 121 3 0 29 0 - - - 0; -#X text 698 96 label; -#X obj 705 157 t b f; -#X text 590 96 background; -#X obj 600 265 send \$0-old-behaviour; -#X obj 600 188 pack 1 22, f 20; -#X msg 600 225 color \$1 \$2; -#X text 48 302 Old "compatible" behavior, f 16; -#X text 215 306 New "correct" behavior; -#X msg 37 339 \; pd compatibility 0.46; -#X msg 219 339 \; pd compatibility 0.47; -#X text 22 110 Since Pd version 0.47 \, you cannot use the color message -with only 2 values \, as the 2nd value just gets ignored. You need -to have 3 values where the third sets the label color., f 46; -#X text 22 168 You can use the "pd compatibility" message to get the -old behavior back., f 46; -#X text 22 201 Note that this is valid for all ways of using the color -message (including the new way of using hexadecimal notation introduced -in Pd 0.47) \, but in this example we're just using the "presets" option -for convenience., f 46; -#X text 410 29 When the compatibility is set to 0.47 or higher \, the -example below to the right doesn't work to set the label color., f -48; -#X text 22 37 Until Pd version 0.46 \, you could have a color message -with only two values \, where the second value would set the label -color. You could also have 3 values \, where the 2nd value was ignored -and the 3rd value would set the color., f 46; -#X text 692 226 <= Pd 0.46 way; -#X obj 408 147 loadbang; -#X obj 395 189 pack 10 0 22, f 20; -#X connect 0 0 27 0; -#X connect 1 0 3 0; -#X connect 3 0 27 0; -#X connect 3 1 27 2; -#X connect 4 0 7 0; -#X connect 8 0 14 0; -#X connect 9 0 11 0; -#X connect 11 0 14 0; -#X connect 11 1 14 1; -#X connect 14 0 15 0; -#X connect 15 0 13 0; -#X connect 26 0 27 0; -#X connect 27 0 4 0; -#X restore 467 590 pd old-behaviour; -#X text 435 523 COMPATIBILITY NOTE: The behavior changed in Pd 0.47! -Check details and how to get it back:, f 23; -#N canvas 720 84 576 472 old_way 0; -#N canvas 1004 177 402 495 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc -#fcfcfc #000000 0 1; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 -#000000 #000000 0 1; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 -#000000 #000000 0 1; -#X text 66 56 label; -#X obj 59 361 expr -($f1 * 65536 + $f2 * 256 + $f3 + 1); -#X obj 311 319 t b f; -#X obj 169 319 t b f; -#X obj 59 413 outlet; -#X connect 0 0 5 0; -#X connect 1 0 6 0; -#X connect 2 0 4 0; -#X connect 4 0 7 0; -#X connect 5 0 4 0; -#X connect 5 1 4 2; -#X connect 6 0 4 0; -#X connect 6 1 4 1; -#X coords 0 -1 1 1 80 170 2 50 50; -#X restore 335 137 pd label; -#X text 228 112 Set RGB values in the sliders; -#N canvas 828 139 516 513 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc -#fcfcfc #000000 0 1; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 -#000000 #000000 0 1; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 -#000000 #000000 0 1; -#X obj 61 361 expr -($f1 * 65536 + $f2 * 256 + $f3 + 1); -#X obj 313 269 t b f; -#X obj 171 269 t b f; -#X obj 61 413 outlet; -#X text 52 56 background; -#X obj 180 83 loadbang; -#X msg 202 134 set 225; -#X msg 181 195 225 225 225; -#X connect 0 0 4 0; -#X connect 1 0 5 0; -#X connect 2 0 3 0; -#X connect 3 0 6 0; -#X connect 4 0 3 0; -#X connect 4 1 3 2; -#X connect 5 0 3 0; -#X connect 5 1 3 1; -#X connect 8 0 9 0; -#X connect 8 0 10 0; -#X connect 9 0 0 0; -#X connect 9 0 1 0; -#X connect 9 0 2 0; -#X connect 10 0 3 0; -#X coords 0 -1 1 1 80 170 2 50 50; -#X restore 243 137 pd label; -#X text 91 166 Open subpatches for the conversion ====>, f 20; -#X msg 282 374 color -1.48034e+07 -1 -1; -#N canvas 574 194 328 335 pack 0; -#X obj 73 47 inlet; -#X obj 206 47 inlet; -#X msg 73 152 color \$1 \$2 \$3; -#X obj 206 85 t b f; -#X obj 73 123 pack float -1 -1, f 24; -#X obj 73 187 list prepend set; -#X obj 73 213 list trim; -#X obj 73 246 t b a; -#X obj 73 283 outlet; -#X connect 0 0 4 0; -#X connect 1 0 3 0; -#X connect 2 0 5 0; -#X connect 3 0 4 0; -#X connect 3 1 4 2; -#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 7 1 8 0; -#X restore 282 338 pd pack; -#X f 8; -#X obj 46 355 cnv 15 200 60 empty \$0-colors-old-way Label 35 30 0 -40 #e1e1e1 #000000 0; -#X obj 282 410 send \$0-colors-old-way; -#X text 93 22 The RGB color scheme can also be encoded \, for backwards -compatibility \, as negative inetegers. For "R" (red) \, "G" (green) -& "B" (blue) values from 0 to 255 \, the conversion formula is \; float -= -(R * 65536 + G * 256 + B + 1)., f 47; -#X connect 0 0 5 1; -#X connect 2 0 5 0; -#X connect 4 0 7 0; -#X connect 5 0 4 0; -#X restore 64 542 pd old_way; -#X text 29 481 open subpatch below for the old way of encoding RGB -values., f 20; -#X text 30 463 See also:; -#X text 58 18 The 'color' message takes a list of three values \, but -only the first and the third are valid and set \, respectively \, background -and label colors (as there's no "front" color \, the 2nd value is ignored). -, f 76; -#X text 58 65 Integers from 0 to 29 represent the 30 preset colors -found in the properties window \, values above are wrapped. Negative -integers were used to encode RGB values (and that still works for backwards -compatibility). But since Pd 0.47-0 \, you can set colors with hexadecimal -RGB symbol values \, which are followed by "#"., f 76; -#X connect 0 0 21 0; -#X connect 1 0 3 0; -#X connect 3 0 21 0; -#X connect 3 1 21 2; -#X connect 4 0 19 0; -#X connect 6 0 10 0; -#X connect 7 0 6 0; -#X connect 8 0 12 0; -#X connect 9 0 8 0; -#X connect 10 0 12 0; -#X connect 10 1 12 2; -#X connect 11 0 20 0; -#X connect 12 0 13 0; -#X connect 13 0 19 0; -#X connect 20 0 12 0; -#X connect 21 0 4 0; -#X coords 0 0 1 1 85 60 0; -#X restore 182 216 pd colors; -#N canvas 925 42 425 489 size 0; -#X floatatom 158 241 3 18 100 0 - - - 0; -#X text 185 241 size; -#X msg 158 278 size \$1; -#X obj 158 361 cnv 18 18 18 empty \$0-size empty 20 12 0 14 #fc0400 -#404040 0; -#X obj 158 315 send \$0-size; -#X text 25 18 The size message sets the object's size (not to be confused -with the size of the visible rectangle). This is the actual object's -area \, which is the selectable square area that gets highlighted with -a light blue outline when you select it (as usual with any other object -in Pd)., f 52; -#X text 25 104 Below \, the visible rectangular size is a square of -18 pixels. Increase the size of the object and note that the object's -size is also visible if it is larger than the visible rectangle. The -benefit from having a small object size is that canvases are usually -used in the background of something else and this prevents you from -right clicking on it when you want to interact with an object in front. -, f 52; -#X connect 0 0 2 0; -#X connect 2 0 4 0; -#X restore 196 104 pd size; -#N canvas 904 23 566 528 label 0; -#X msg 88 275 label \$1; -#X floatatom 239 168 4 0 3 0 - - - 0; -#X obj 281 195 t b f; -#X floatatom 281 168 5 5 50 0 - - - 0; -#X msg 239 265 label_font \$1 \$2; -#X text 201 167 type; -#X text 325 166 size; -#X obj 239 105 vradio 15 1 0 3 empty empty empty 0 -8 0 10 #fcfcfc -#000000 #000000 0; -#X text 260 104 DejaVu Sans Mono; -#X text 260 120 Helvetica; -#X text 260 135 Times; -#X msg 100 243 symbol empty; -#X floatatom 393 184 4 -100 250 0 - - - 0; -#X obj 435 211 t b f; -#X floatatom 435 184 5 -150 150 0 - - - 0; -#X msg 393 281 label_pos \$1 \$2; -#X text 375 183 x; -#X text 479 182 y; -#X text 388 160 label offset:; -#X msg 68 178 symbol label; -#X msg 88 207 symbol my\ label; -#X text 78 29 The 'label' message sets the label symbol \, setting -it to "empty" clears it. The 'label_font' message sets font type and -size and 'label_pos' sets the x/y coordinates., f 64; -#X obj 155 407 cnv 15 300 100 empty \$0-label label 17 20 0 25 #e0e0e0 -#404040 0; -#X obj 239 360 send \$0-label; -#X obj 393 239 pack 17 20, f 11; -#X obj 239 224 pack 0 25, f 11; -#X connect 0 0 23 0; -#X connect 1 0 25 0; -#X connect 2 0 25 0; -#X connect 2 1 25 1; -#X connect 3 0 2 0; -#X connect 4 0 23 0; -#X connect 7 0 1 0; -#X connect 11 0 0 0; -#X connect 12 0 24 0; -#X connect 13 0 24 0; -#X connect 13 1 24 1; -#X connect 14 0 13 0; -#X connect 15 0 23 0; -#X connect 19 0 0 0; -#X connect 20 0 0 0; -#X connect 24 0 15 0; -#X connect 25 0 4 0; -#X restore 189 188 pd label; -#N canvas 740 42 487 614 send-receive 0; -#X msg 97 203 receive empty; -#X text 65 28 The object can have a send and receive symbol. Since -it has no inlet or outlet \, this is the only way it can receive and -send messages., f 50; -#X obj 169 433 cnv 15 100 60 empty \$0-cnv_rcv1 empty 20 12 0 14 #e0e0e0 -#404040 0; -#X msg 81 172 receive \\\$0-cnv_rcv2; -#X msg 268 203 receive empty; -#X msg 251 172 receive \\\$0-cnv_rcv1; -#X msg 122 347 receive empty; -#X obj 87 384 s \$0-cnv_rcv1; -#X obj 80 241 send \$0-cnv_rcv1; -#X obj 251 241 send \$0-cnv_rcv2; -#X msg 88 285 send \\\$0-cnv_snd2; -#X msg 103 318 send \\\$0-cnv_snd1; -#X msg 287 348 receive empty; -#X msg 253 286 send \\\$0-cnv_snd2; -#X msg 268 319 send \\\$0-cnv_snd1; -#X obj 252 385 s \$0-cnv_rcv2; -#X text 65 74 The 'send' and 'receive' messages take a symbol to set -\, respectively \, the send and receive symbol. If you set these to -"empty" \, the symbols are cleared (and can only be inserted back in -the properties window)., f 50; -#X text 41 511 Note you need to escape dollar signs with bacslashes -to set something like "\$0-x". But the bacslash is not needed if you -set it directly via the properties window. Also note that like other -iemguis \, we have feedback protection in the case both send and receive -symbols are the same - though it is not that pertinent in this case. -, f 59; -#X connect 0 0 8 0; -#X connect 3 0 8 0; -#X connect 4 0 9 0; -#X connect 5 0 9 0; -#X connect 6 0 7 0; -#X connect 10 0 7 0; -#X connect 11 0 7 0; -#X connect 12 0 15 0; -#X connect 13 0 15 0; -#X connect 14 0 15 0; -#X restore 140 160 pd send-receive; -#N canvas 936 145 464 331 loading-args 0; -#X text 58 115 For instance \, below \, we have \$0 used in the label -field \, which gets expanded to the patch ID number. Using something -like "\$1" is useful if you're using the object in an abstraction \, -then you can load a value passed as an argument into a parameter., -f 49; -#X obj 158 231 cnv 15 150 60 empty empty \$0-label 20 18 0 14 #e0e0e0 -#404040 0; -#X text 58 26 Note that all the parameters that you can set by inserting -a number or symbol into a field in the properties window can also load -dollar sign arguments (\$0 \, \$1 \, \$2 \, and so on). Namely \, these -parameters are: size \, visible size \, send/receive symbols \, label -\, label offset and font size., f 49; -#X restore 152 291 pd loading-args; -#X text 64 261 Loading arguments in properties:; -#N canvas 910 74 447 428 visible-rectangle 0; -#X obj 153 283 cnv 15 100 60 empty \$0-vis_size empty 20 12 0 14 #b8b8b8 -#404040 0; -#X obj 156 164 pack 100 60; -#X obj 198 136 t b f; -#X floatatom 198 111 4 18 100 0 - - - 0; -#X floatatom 156 111 4 18 100 0 - - - 0; -#X obj 156 223 send \$0-vis_size; -#X msg 156 194 vis_size \$1 \$2; -#X text 78 110 horizontal; -#X text 233 110 vertical; -#X text 47 27 The 'vis_size' message sets the visible rectangle size. -It takes two values that set \, respectively \, horizontal and vertical -sizes in pixels., f 49; -#X connect 1 0 6 0; -#X connect 2 0 1 0; -#X connect 2 1 1 1; -#X connect 3 0 2 0; -#X connect 4 0 1 0; -#X connect 6 0 5 0; -#X restore 105 132 pd visible-rectangle; -#X text 46 23 All the parameters from the properties window can be -set via messages as well. See examples and more details on each parameter -in the subpatches below:, f 39; -#X restore 401 217 pd properties; -#X text 293 347 (c) musil@iem.kug.ac.at; -#X text 329 363 IEM KUG \, Graz \, Austria \, 2002, f 14; -#X text 65 419 see also:; -#X obj 139 420 x_all_guis; -#X text 73 348 This object is part of the "iemguis" library \, natively -included in Pd version 0.34., f 28; -#X text 296 419 updated for Pd version 0.51; -#N canvas 360 93 481 370 example-room 0; -#X obj 335 217 tgl 15 1 empty empty empty 20 8 0 10 #fcfcfc #000000 -#000000 1 1; -#X msg 335 267 \; to_K get_pos; -#X obj 335 192 loadbang; -#N canvas 899 89 382 383 room 0; -#X obj 1 1 cnv 40 380 380 empty empty empty 150 140 2 17 #606060 #14e814 -0; -#X obj 2 2 cnv 378 1 1 empty empty empty 115 160 2 17 #fc0400 #14e814 -0; -#X obj 12 16 cnv 25 25 25 from_K1 to_K K1 4 13 0 14 #e8b484 #900000 -0; -#X obj 330 333 cnv 25 25 25 from_K2 to_K K2 4 13 2 14 #94dcd4 #004450 -0; -#X restore 182 179 pd room; -#X text 120 180 click =>; -#X obj 335 240 metro 5; -#X floatatom 70 310 4 0 0 0 - - - 0; -#X floatatom 123 310 4 0 0 0 - - - 0; -#X text 56 310 x; -#X text 154 309 y; -#X obj 70 278 unpack, f 8; -#N canvas 317 55 451 443 from_K1 0; -#X obj 124 136 t f f; -#X obj 110 201 ||; -#X obj 64 137 t f f; -#X obj 110 232 sel 1; -#X obj 155 288 list; -#X obj 64 73 trigger list list; -#X obj 64 107 unpack; -#X obj 128 170 !=; -#X obj 68 171 !=; -#X obj 155 371 outlet; -#X obj 64 43 receive from_K1; -#X text 212 274 The list is output only if either of the values has -changed, f 23; -#X obj 175 334 print K1; -#X connect 0 0 7 1; -#X connect 0 1 7 0; -#X connect 1 0 3 0; -#X connect 2 0 8 1; -#X connect 2 1 8 0; -#X connect 3 0 4 0; -#X connect 4 0 9 0; -#X connect 4 0 12 0; -#X connect 5 0 6 0; -#X connect 5 1 4 1; -#X connect 6 0 2 0; -#X connect 6 1 0 0; -#X connect 7 0 1 1; -#X connect 8 0 1 0; -#X connect 10 0 5 0; -#X restore 70 246 pd from_K1; -#X floatatom 210 310 4 0 0 0 - - - 0; -#X floatatom 263 310 4 0 0 0 - - - 0; -#X text 196 309 x; -#X text 294 309 y; -#X obj 210 278 unpack, f 8; -#X text 46 24 In this example \, we drag canvases in a subpatch and -get their position at a rate from a metro object (below to the right). -The values are then received below to the left., f 52; -#X text 45 86 Open the subpatch below ([pd room]) and move the "K1" -and "K2" canvases. Note that the subpatch needs to be in edit mode -so the objects can be selected and dragged. Hence \, click to open -it and then get into the edit mode to move them., f 52; -#N canvas 317 55 455 465 from_K2 0; -#X obj 124 136 t f f; -#X obj 110 201 ||; -#X obj 64 137 t f f; -#X obj 110 232 sel 1; -#X obj 155 288 list; -#X obj 64 73 trigger list list; -#X obj 64 107 unpack; -#X obj 128 170 !=; -#X obj 68 171 !=; -#X obj 155 381 outlet; -#X text 212 274 The list is output only if either of the values has -changed, f 23; -#X obj 64 43 receive from_K2; -#X obj 180 336 print K2; -#X connect 0 0 7 1; -#X connect 0 1 7 0; -#X connect 1 0 3 0; -#X connect 2 0 8 1; -#X connect 2 1 8 0; -#X connect 3 0 4 0; -#X connect 4 0 9 0; -#X connect 4 0 12 0; -#X connect 5 0 6 0; -#X connect 5 1 4 1; -#X connect 6 0 2 0; -#X connect 6 1 0 0; -#X connect 7 0 1 1; -#X connect 8 0 1 0; -#X connect 11 0 5 0; -#X restore 210 246 pd from_K2; -#X connect 0 0 5 0; -#X connect 2 0 0 0; -#X connect 5 0 1 0; -#X connect 10 0 6 0; -#X connect 10 1 7 0; -#X connect 11 0 10 0; -#X connect 16 0 12 0; -#X connect 16 1 13 0; -#X connect 19 0 16 0; -#X restore 387 273 pd example-room; -#N canvas 665 62 632 612 position 0; -#X floatatom 200 146 4 0 1000 0 - - - 0; -#X obj 249 173 t b f; -#X floatatom 249 146 5 0 500 0 - - - 0; -#X msg 200 233 pos \$1 \$2; -#X text 121 146 x-position; -#X text 293 145 y-position; -#X msg 327 236 delta 1 0; -#X text 400 235 increase x by 1; -#X msg 334 258 delta -1 0; -#X text 416 257 decrease x by 1; -#X msg 349 286 delta 0 1; -#X msg 353 308 delta 0 -1; -#X text 426 285 increase y by 1; -#X text 437 310 decrease y by 1; -#X msg 364 337 delta 1 1; -#X text 439 338 increase both by 1; -#X text 455 359 decrease both by -1; -#X msg 369 359 delta -1 -1; -#X text 318 24 The 'delta' message changes the position of the object -by a difference amount. It takes a list of x/y delta in pixels., f -40; -#X text 27 75 The 'pos' message takes a list of x/y coordinates in -pixels and sets the objects's position., f 36; -#X obj 265 450 cnv 50 50 50 \$0-get_pos \$0-position empty 20 12 0 -14 #7c78ac #404040 0; -#X obj 309 401 send \$0-position; -#X msg 308 197 get_pos; -#X obj 64 304 receive \$0-get_pos; -#X floatatom 64 366 4 0 1000 0 - - - 0; -#X floatatom 187 366 5 0 500 0 - - - 0; -#X text 43 387 x-position; -#X text 168 385 y-position; -#X obj 64 334 unpack float float; -#X text 27 16 You can also set and change the position of the object -in the patch. Moreover \, you can get the object's position., f 36 -; -#X text 318 83 The 'get_pos' message makes the object send its position. -, f 40; -#X text 369 196 <= get position; -#X text 64 280 receive position:; -#X obj 200 201 pack 265 450; -#X text 88 234 set position =>; -#X connect 0 0 33 0; -#X connect 1 0 33 0; -#X connect 1 1 33 1; -#X connect 2 0 1 0; -#X connect 3 0 21 0; -#X connect 6 0 21 0; -#X connect 8 0 21 0; -#X connect 10 0 21 0; -#X connect 11 0 21 0; -#X connect 14 0 21 0; -#X connect 17 0 21 0; -#X connect 22 0 21 0; -#X connect 23 0 28 0; -#X connect 28 0 24 0; -#X connect 28 1 25 0; -#X connect 33 0 3 0; -#X restore 415 245 pd position; -#X text 31 223 Right click ===> for properties., f 16; -#X text 19 149 Right click for properties (to set size \, colors \, -labels \, etc). Note you need to right click on the selectable area -(on the top left corner). When the object is selected \, this area -is highlighted as light blue., f 71; -#N canvas 781 30 461 491 display-example 0; -#X obj 120 259 send \$0-display; -#X floatatom 120 165 5 1 50 0 - - - 0; -#X msg 120 230 label \$1; -#X obj 79 307 nbx 15 30 1 100 0 0 \$0-file empty empty 0 -8 0 10 #fcfcfc -#000000 #000000 0 256; -#X obj 79 307 cnv 1 148 30 empty \$0-display file\\\ 050.wav 9 15 0 -16 #000000 #fc6460 0; -#X text 236 316 <= also click and drag; -#X text 166 164 <= click and drag; -#X obj 120 201 makefilename file\ %03d.wav; -#X text 60 368 We also have another trick here \, which is hiding a -number box behind the canvas. This way you end up interacting with -it and so you can also click and drag on the canvas to change its display -symbol. Note that this number box sends value to the atom box above -via an internal send symbol., f 48; -#X obj 120 137 receive \$0-file; -#X text 64 27 Here we're using a canvas to display a symbol by using -it to set the label., f 43; -#X text 64 64 The file name is set with a [makefilename] object below -and you can click and drag on the number box to set the file name. -, f 43; -#X connect 1 0 7 0; -#X connect 2 0 0 0; -#X connect 7 0 2 0; -#X connect 9 0 1 0; -#X restore 366 301 pd display-example; -#X text 159 40 The canvas object is a simple GUI (Graphical User Interface) -used as a background and/or to dysplay a symbol. It can also send its -position when queried., f 51; -#X text 19 88 Insert it from the Put menu (named as "Canvas") or its -shortcut. Alternatively \, create it by typing "my_canvas" or "cnv" -into an object box. This object has no inlet or outlet \, so it can -only communicate via send and receive symbols set via the properties -window., f 71; diff -Nru puredata-0.52.1+ds0/doc/5.reference/namecanvas-help.pd puredata-0.52.2+ds0/doc/5.reference/namecanvas-help.pd --- puredata-0.52.1+ds0/doc/5.reference/namecanvas-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/namecanvas-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,83 +1,104 @@ #N struct template1 float x float y float z float q; -#N canvas 585 36 941 734 12; -#X obj 50 19 namecanvas; -#X obj 248 135 namecanvas bonzo; -#X text 132 19 - attach this canvas to a name; +#N canvas 397 23 901 711 12; +#X obj 23 12 namecanvas; +#X obj 262 131 namecanvas bonzo; #N canvas 140 127 541 242 subpatch 0; #X obj 70 57 namecanvas banzai; #X text 229 46 This subpatch has its own name. It can receive messages sent to it from anywhere., f 34; -#X restore 134 550 pd subpatch; -#X text 144 420 <= but you need to know the name of the canvas (file) +#X restore 134 506 pd subpatch; +#X text 144 386 <= but you need to know the name of the canvas (file) in advance., f 32; -#X msg 33 354 \; pd-namecanvas-help.pd msg 40 420 this is safer; -#X text 40 469 Note this doesn't make it possible to use "\$0".; -#X text 73 551 open =>; -#X msg 443 96 \; pd-subpatch msg 100 150 how are ya?; -#X obj 720 134 s pd-subpatch; -#X obj 458 381 namecanvas \$0-local-name; +#X text 40 438 Note this doesn't make it possible to use "\$0".; +#X text 73 507 open =>; +#X obj 712 166 s pd-subpatch; +#X obj 466 393 namecanvas \$0-local-name; #N canvas 256 451 446 165 \$0-local-subpatch 0; #X text 75 83 A local subpatch \, useful in abstractions.; -#X restore 717 471 pd \$0-local-subpatch; -#X obj 717 423 s pd-\$0-local-subpatch; -#X obj 462 464 s \$0-local-name; -#X text 478 681 see also:; -#X msg 25 161 \; bonzo msg 240 170 hey there; -#X msg 462 437 msg 320 170 wassup?; -#X text 19 217 This is needed to send messages to an abstraction's +#X restore 705 480 pd \$0-local-subpatch; +#X obj 705 435 s pd-\$0-local-subpatch; +#X obj 460 476 s \$0-local-name; +#X text 13 677 see also:; +#X msg 460 449 msg 320 170 wassup?; +#X text 19 208 This is needed to send messages to an abstraction's main canvas locally (using "\$0" to give it a local name). But its use in making self-editing patches is dangerous since if you use it to edit the namecanvas itself away you can cause Pd to crash. Instead \, you can use the file name (preceded by "pd-") to access its main window \, see:, f 53; -#X text 606 437 <= click; -#X msg 78 591 \; banzai msg 100 100 hello; -#X text 258 599 <= click; -#X text 30 139 click:; -#X msg 742 564 vis \$1; -#X obj 742 544 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X text 604 449 <= click; +#X msg 78 543 \; banzai msg 100 100 hello; +#X text 258 551 <= click; +#X text 40 136 click:; +#X msg 730 569 vis \$1; +#X obj 730 549 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 761 541 show/hide window; -#X text 28 508 You can use namecanvas to name subpatches s well.; -#X text 19 649 But this is not necessary as you can also send messages +#X text 749 546 show/hide window; +#X text 28 469 You can use namecanvas to name subpatches s well.; +#X text 16 596 But this is not necessary as you can also send messages to the subpatch using the subpatch's name (preceded by 'pd-'). Check -example above to the right., f 53; -#X text 447 24 Instead of using [namecanvas] \, we're sending messages +example above to the right., f 54; +#X text 435 56 Instead of using [namecanvas] \, we're sending messages directly to the subpatch. The 'vis' message can be used to show/hide it., f 63; -#X msg 720 73 vis 1; -#X msg 731 103 vis 0; -#X text 771 71 show window; -#X text 776 103 hide window; -#X msg 717 390 vis \$1; -#X obj 717 367 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X msg 712 105 vis 1; +#X msg 723 135 vis 0; +#X text 763 103 show window; +#X text 768 135 hide window; +#X msg 705 402 vis \$1; +#X obj 705 379 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 736 364 show/hide window; -#X text 434 534 Note that when you have a patch loaded as an abstraction +#X text 724 376 show/hide window; +#X text 422 539 Note that when you have a patch loaded as an abstraction \, besides the 'pd-' prefix \, you also need to end with ".pd"! This is used to the right to open the "pd-messages" example \, loaded below \, which includes more information on 'dynamic patching'., f 40; -#X text 707 679 updated for Pd version 0.52; -#X text 18 47 You can use namecanvas to attach a receive name to a +#X text 682 676 updated for Pd version 0.52; +#X text 18 51 You can use namecanvas to attach a receive name to a canvas (patch window) so you can send it messages (useful for 'dynamic patching'). Below \, we use it to name this canvas 'bonzo' and send it a message that makes it create a message box., f 55; -#X text 447 170 You can give the same name with namecanvas to different +#X text 435 202 You can give the same name with namecanvas to different windows to communicate to them all with a single message. Similarly \, any other patch or subpatch with the same name will receive the same messages., f 63; -#X text 447 242 You can also give multiple names to a single canvas +#X text 435 269 You can also give multiple names to a single canvas with more than one namecanvas \, below we now give this window a second local name with "\$0". You can also use "\$0" in the name of subpatches by the way and we also have this example below. Note that in this case you need to use [send] as "\$0" doesn't work in messages. Again \, this is useful for abstractions., f 63; -#X obj 555 681 pd-messages; -#X obj 742 590 s pd-pd-messages.pd; -#X connect 16 0 13 0; -#X connect 22 0 41 0; -#X connect 23 0 22 0; +#X obj 89 676 pd-messages; +#X obj 730 595 s pd-pd-messages.pd; +#X obj 6 41 cnv 1 888 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 6 664 cnv 1 888 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 805 12 <= click; +#N canvas 838 107 489 204 reference 1; +#X obj 8 135 cnv 2 460 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 54 cnv 5 460 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 7 177 cnv 5 460 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 138 146 1) symbol -; +#X obj 40 16 namecanvas; +#X obj 7 92 cnv 2 460 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X text 153 66 NONE; +#X text 153 106 NONE; +#X text 224 146 sets the canvas name., f 22; +#X text 122 16 - attach the canvas window to a name; +#X restore 711 13 pd reference; +#X text 105 12 - attach the canvas window to a name; +#X msg 37 157 \; bonzo msg 285 175 hey there; +#X msg 33 328 \; pd-namecanvas-help.pd msg 40 385 this is safer; +#X msg 431 128 \; pd-subpatch msg 100 150 how are 'ya?; +#X connect 12 0 10 0; +#X connect 18 0 37 0; +#X connect 19 0 18 0; +#X connect 24 0 6 0; +#X connect 25 0 6 0; #X connect 28 0 9 0; -#X connect 29 0 9 0; -#X connect 32 0 12 0; -#X connect 33 0 32 0; +#X connect 29 0 28 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/nbx-help.pd puredata-0.52.2+ds0/doc/5.reference/nbx-help.pd --- puredata-0.52.1+ds0/doc/5.reference/nbx-help.pd 1970-01-01 00:00:00.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/nbx-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -0,0 +1,663 @@ +#N canvas 561 28 539 607 12; +#X floatatom 179 332 7 0 0 0 - - - 0; +#X msg 229 246 set \$1; +#X obj 148 234 bng 18 250 50 0 empty empty empty 8 -8 0 10 #fcfcfc +#000000 #000000; +#X obj 179 364 print nbx; +#X floatatom 179 234 5 0 0 0 - - - 0; +#X floatatom 229 223 5 0 0 0 - - - 0; +#X obj 179 292 nbx 5 18 -100 100 0 0 empty empty Number\\\ box 80 10 +0 14 #dcdcdc #000000 #740000 0 256; +#X obj 29 15 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12 +#fcfcfc #000000 #000000 0 256; +#X text 317 402 (c) musil@iem.kug.ac.at; +#X text 353 418 IEM KUG \, Graz \, Austria \, 2002, f 14; +#X text 13 571 see also:; +#X text 62 403 This object is part of the "iemguis" library \, natively +included in Pd version 0.34., f 28; +#X text 54 292 click & drag ==> (shift-click for fine tuning). Right +click for properties., f 16; +#X text 24 59 The number box is a GUI (Graphical User Interface) that +sends numbers. Click on it and drag to output values - use shift-click +and drag for fine-tuning by a factor of a hundredth. You can also click +on the object \, type a number value and then 'enter' to output it. +Incoming floats set the number box's value and are passed through. +The 'set' message only sets the value without output. A bang message +sends the number box's value., f 70; +#X text 24 159 Insert it from the Put menu (named as "Number2") or +its shortcut. Alternatively \, create it by typing "my_numbox" or "nbx" +into an object box. Right click for properties (to set size \, colors +\, labels \, etc)., f 70; +#N canvas 870 100 613 486 position 0; +#X floatatom 142 146 4 0 1000 0 - - - 0; +#X obj 191 173 t b f; +#X floatatom 191 146 5 0 500 0 - - - 0; +#X msg 142 243 pos \$1 \$2; +#X text 63 146 x-position; +#X text 235 145 y-position; +#X msg 265 183 delta 1 0; +#X text 338 182 increase x by 1; +#X msg 275 205 delta -1 0; +#X text 354 204 decrease x by 1; +#X msg 287 239 delta 0 1; +#X msg 293 261 delta 0 -1; +#X text 364 238 increase y by 1; +#X text 377 263 decrease y by 1; +#X msg 302 293 delta 1 1; +#X text 377 294 increase both by 1; +#X text 395 315 decrease both by -1; +#X msg 309 315 delta -1 -1; +#X text 293 66 The 'delta' message changes the position of the object +by a difference amount. It takes a list of x/y delta in pixels., f +40; +#X text 40 66 The 'pos' message takes a list of x/y coordinates in +pixels and sets the objects's position., f 33; +#X text 159 19 You can also set and change the position of the object +in the patch. Check below:, f 41; +#X obj 265 350 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12 +#fcfcfc #000000 #000000 0 256; +#X obj 142 202 pack 265 350; +#X connect 0 0 22 0; +#X connect 1 0 22 0; +#X connect 1 1 22 1; +#X connect 2 0 1 0; +#X connect 3 0 21 0; +#X connect 6 0 21 0; +#X connect 8 0 21 0; +#X connect 10 0 21 0; +#X connect 11 0 21 0; +#X connect 14 0 21 0; +#X connect 17 0 21 0; +#X connect 22 0 3 0; +#X restore 400 314 pd position; +#N canvas 521 172 367 380 properties 0; +#N canvas 839 56 656 573 colors 0; +#X floatatom 72 244 3 0 29 0 - - - 0; +#X floatatom 108 244 3 0 29 0 - - - 0; +#X floatatom 177 249 3 0 29 0 - - - 0; +#X text 104 224 front; +#X text 170 224 label; +#X obj 108 273 t b f; +#X obj 177 275 t b f; +#X msg 72 343 color \$1 \$2 \$3; +#X obj 72 306 pack 0 22 22, f 20; +#X text 181 343 presets; +#X symbolatom 507 340 9 0 0 0 - - - 0; +#X symbolatom 421 339 9 0 0 0 - - - 0; +#X symbolatom 335 339 9 0 0 0 - - - 0; +#X obj 475 370 t b s; +#X obj 389 370 t b s; +#X obj 258 224 loadbang; +#X obj 335 408 pack symbol symbol symbol; +#X msg 335 437 color \$1 \$2 \$3; +#X msg 258 258 list #ffffff #000000 #000000, f 7; +#X text 21 224 background; +#X text 444 438 RGB in hexadecimal; +#X text 67 17 The 'color' message takes a list of three values to set +background \, front and label colors \, respectively. Integers from +0 to 29 represent the 30 preset colors found in the properties window +\, values above are wrapped., f 77; +#X text 68 68 Negative integers were used to encode RGB values (and +that still works for backwards compatibility). But since Pd 0.47-0 +\, you can set colors with hexadecimal RGB symbol values \, which are +followed by "#"., f 77; +#X text 346 133 Set RGB values in the sliders; +#X text 61 157 Open subpatches for the conversion from RGB to hexadecimal +============>, f 38; +#X obj 335 509 nbx 5 24 0 127 0 0 empty empty Label 33 -13 0 20 #ffffff +#000000 #000000 0 10; +#N canvas 1152 218 390 482 label 0; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; +#X obj 109 225 t b f; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; +#X obj 80 341 pack s s s; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; +#X obj 81 250 t b f; +#X obj 147 257 makefilename %02x; +#X obj 113 284 makefilename %02x; +#X obj 74 311 makefilename %02x; +#X text 66 56 label; +#X obj 80 406 outlet; +#X msg 80 370 symbol #\$1\$2\$3; +#X obj 161 185 loadbang; +#X msg 161 217 0; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 6 0; +#X connect 2 0 5 0; +#X connect 3 0 11 0; +#X connect 4 0 8 0; +#X connect 5 0 4 0; +#X connect 5 1 7 0; +#X connect 6 0 3 2; +#X connect 7 0 3 1; +#X connect 8 0 3 0; +#X connect 11 0 10 0; +#X connect 12 0 13 0; +#X connect 13 0 6 0; +#X connect 13 0 7 0; +#X coords 0 -1 1 1 80 170 2 50 50; +#X restore 507 158 pd label; +#N canvas 1040 252 390 482 label 0; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; +#X obj 109 225 t b f; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; +#X obj 74 341 pack s s s; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; +#X obj 81 250 t b f; +#X obj 146 257 makefilename %02x; +#X obj 112 284 makefilename %02x; +#X obj 74 311 makefilename %02x; +#X obj 74 406 outlet; +#X text 69 56 front; +#X msg 74 370 symbol #\$1\$2\$3; +#X obj 177 168 loadbang; +#X msg 177 200 0; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 6 0; +#X connect 2 0 5 0; +#X connect 3 0 11 0; +#X connect 4 0 8 0; +#X connect 5 0 4 0; +#X connect 5 1 7 0; +#X connect 6 0 3 2; +#X connect 7 0 3 1; +#X connect 8 0 3 0; +#X connect 11 0 9 0; +#X connect 12 0 13 0; +#X connect 13 0 6 0; +#X connect 13 0 7 0; +#X coords 0 -1 1 1 80 170 2 50 50; +#X restore 421 158 pd label; +#N canvas 851 185 390 482 label 0; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; +#X obj 109 225 t b f; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; +#X obj 81 250 t b f; +#X obj 221 257 makefilename %02x; +#X obj 141 284 makefilename %02x; +#X obj 61 321 makefilename %02x; +#X obj 61 416 outlet; +#X text 52 56 background; +#X msg 61 380 symbol #\$1\$2\$3; +#X obj 176 59 loadbang; +#X msg 176 91 set 255; +#X obj 176 176 route set; +#X obj 61 351 pack symbol symbol symbol; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 5 0; +#X connect 2 0 4 0; +#X connect 3 0 7 0; +#X connect 4 0 3 0; +#X connect 4 1 6 0; +#X connect 5 0 14 2; +#X connect 6 0 14 1; +#X connect 7 0 14 0; +#X connect 10 0 8 0; +#X connect 11 0 12 0; +#X connect 12 0 3 0; +#X connect 12 0 2 0; +#X connect 12 0 0 0; +#X connect 12 0 13 0; +#X connect 13 0 5 0; +#X connect 13 0 6 0; +#X connect 14 0 10 0; +#X coords 0 -1 1 1 80 170 2 50 50; +#X restore 335 158 pd label; +#N canvas 961 163 594 543 old_way 0; +#N canvas 1171 276 402 495 label 0; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; +#X text 66 56 label; +#X obj 59 361 expr -($f1 * 65536 + $f2 * 256 + $f3 + 1); +#X obj 311 319 t b f; +#X obj 169 319 t b f; +#X obj 59 413 outlet; +#X connect 0 0 5 0; +#X connect 1 0 6 0; +#X connect 2 0 4 0; +#X connect 4 0 7 0; +#X connect 5 0 4 0; +#X connect 5 1 4 2; +#X connect 6 0 4 0; +#X connect 6 1 4 1; +#X coords 0 -1 1 1 80 170 2 50 50; +#X restore 381 148 pd label; +#X text 220 123 Set RGB values in the sliders; +#N canvas 1022 246 392 476 label 0; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; +#X obj 61 361 expr -($f1 * 65536 + $f2 * 256 + $f3 + 1); +#X obj 313 269 t b f; +#X obj 171 269 t b f; +#X obj 61 413 outlet; +#X text 52 56 background; +#X obj 180 83 loadbang; +#X msg 202 134 set 255; +#X msg 181 195 255 255 255; +#X connect 0 0 4 0; +#X connect 1 0 5 0; +#X connect 2 0 3 0; +#X connect 3 0 6 0; +#X connect 4 0 3 0; +#X connect 4 1 3 2; +#X connect 5 0 3 0; +#X connect 5 1 3 1; +#X connect 8 0 9 0; +#X connect 8 0 10 0; +#X connect 9 0 0 0; +#X connect 9 0 1 0; +#X connect 9 0 2 0; +#X connect 10 0 3 0; +#X coords 0 -1 1 1 80 170 2 50 50; +#X restore 209 148 pd label; +#N canvas 1094 247 402 495 label 0; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; +#X obj 59 361 expr -($f1 * 65536 + $f2 * 256 + $f3 + 1); +#X obj 311 319 t b f; +#X obj 169 319 t b f; +#X obj 59 413 outlet; +#X text 66 56 front; +#X connect 0 0 4 0; +#X connect 1 0 5 0; +#X connect 2 0 3 0; +#X connect 3 0 6 0; +#X connect 4 0 3 0; +#X connect 4 1 3 2; +#X connect 5 0 3 0; +#X connect 5 1 3 1; +#X coords 0 -1 1 1 80 170 2 50 50; +#X restore 295 148 pd label; +#X text 57 177 Open subpatches for the conversion ====>, f 20; +#X msg 269 385 color -1.67772e+07 -1 -1; +#N canvas 574 194 328 335 pack 0; +#X obj 73 47 inlet; +#X obj 123 47 inlet; +#X obj 206 47 inlet; +#X msg 73 152 color \$1 \$2 \$3; +#X obj 206 85 t b f; +#X obj 123 85 t b f; +#X obj 73 123 pack float -1 -1, f 24; +#X obj 73 187 list prepend set; +#X obj 73 213 list trim; +#X obj 73 246 t b a; +#X obj 73 283 outlet; +#X connect 0 0 6 0; +#X connect 1 0 5 0; +#X connect 2 0 4 0; +#X connect 3 0 7 0; +#X connect 4 0 6 0; +#X connect 4 1 6 2; +#X connect 5 0 6 0; +#X connect 5 1 6 1; +#X connect 6 0 3 0; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 9 1 10 0; +#X restore 269 349 pd pack; +#X f 8; +#X obj 269 460 nbx 5 24 0 127 0 0 empty empty Label 33 -13 0 20 #ffffff +#000000 #000000 0 10; +#X text 98 29 The RGB color scheme can also be encoded \, for backwards +compatibility \, as negative inetegers. For "R" (red) \, "G" (green) +& "B" (blue) values from 0 to 255 \, the conversion formula is \; float += -(R * 65536 + G * 256 + B + 1)., f 47; +#X connect 0 0 6 2; +#X connect 2 0 6 0; +#X connect 3 0 6 1; +#X connect 5 0 7 0; +#X connect 6 0 5 0; +#X restore 62 508 pd old_way; +#X text 34 450 open subpatch below for the old way of encoding RGB +values., f 20; +#X text 35 432 See also:; +#X connect 0 0 8 0; +#X connect 1 0 5 0; +#X connect 2 0 6 0; +#X connect 5 0 8 0; +#X connect 5 1 8 1; +#X connect 6 0 8 0; +#X connect 6 1 8 2; +#X connect 7 0 25 0; +#X connect 8 0 7 0; +#X connect 10 0 13 0; +#X connect 11 0 14 0; +#X connect 12 0 16 0; +#X connect 13 0 16 0; +#X connect 13 1 16 2; +#X connect 14 0 16 0; +#X connect 14 1 16 1; +#X connect 15 0 18 0; +#X connect 16 0 17 0; +#X connect 17 0 25 0; +#X connect 18 0 16 0; +#X connect 26 0 10 0; +#X connect 27 0 11 0; +#X connect 28 0 12 0; +#X coords 0 0 1 1 85 60 0; +#X restore 159 235 pd colors; +#N canvas 899 81 441 465 size 0; +#X floatatom 101 145 4 1 20 0 - - - 0; +#X obj 143 172 t b f; +#X floatatom 143 145 4 10 150 0 - - - 0; +#X msg 101 242 size \$1 \$2; +#X text 187 144 height; +#X obj 101 282 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12 +#fcfcfc #000000 #000000 0 256; +#X text 49 144 digits; +#X obj 101 201 pack 5 18, f 11; +#X text 44 35 The size message sets the object's size and takes number +of digits and height values (in number of pixels). The number of digits +affect the box width \, but note that the box's width also depends +on the height parameter \, as well as the font type and font size. +, f 51; +#X connect 0 0 7 0; +#X connect 1 0 7 0; +#X connect 1 1 7 1; +#X connect 2 0 1 0; +#X connect 3 0 5 0; +#X connect 7 0 3 0; +#X restore 173 77 pd size; +#N canvas 906 195 433 296 init 0; +#X msg 162 163 init \$1; +#X obj 162 131 tgl 18 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000 0 1; +#X text 55 22 The init message takes a float and sets to init (if different +than zero) or no init (if equal to zero - the default value)., f 46 +; +#X text 185 131 init on/off; +#X obj 162 243 print nbx-init; +#X obj 162 202 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12 +#fcfcfc #000000 #000000 0 256; +#X text 55 69 If in 'init mode' \, when loading the patch \, the objects +sends its holding value from when the patch was last saved., f 46 +; +#X connect 0 0 5 0; +#X connect 1 0 0 0; +#X connect 5 0 4 0; +#X restore 173 156 pd init; +#N canvas 996 102 817 453 send-receive 0; +#X msg 211 197 receive empty; +#X msg 242 261 send empty; +#X floatatom 72 182 5 0 0 0 - - - 0; +#X floatatom 72 310 5 0 0 0 - - - 0; +#X obj 211 309 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12 +#fcfcfc #000000 #000000 0 256; +#X msg 195 172 receive \\\$0-nbx_rcv; +#X msg 233 236 send \\\$0-nbx_snd; +#X obj 72 216 s \$0-nbx_rcv; +#X obj 72 272 r \$0-nbx_snd; +#X text 54 96 The 'send' and 'receive' messages take a symbol to set +\, respectively \, the send and receive symbol. If you set these to +"empty" \, the symbols are cleared., f 50; +#X text 54 20 The object can have a send and receive symbol \, in which +cases the inlet/outlet are visually hidden (but still functional in +the patch). This way \, the object can communicate to [send] and [receive] +objects., f 50; +#X text 47 362 Note how you need to escape dollar signs with backslashes +to set something like "\$0-x". But the backslash is not needed if you +set it directly via the properties window., f 53; +#X text 429 26 Note how you need to escape dollar signs with backslashes +to set something like "\$0-x". But the backslash is not needed if you +set it directly via the properties window., f 50; +#X floatatom 543 353 5 0 0 0 - - - 0; +#X floatatom 536 191 5 0 0 0 - - - 0; +#X obj 549 267 nbx 5 18 -1e+37 1e+37 0 0 \$0-nbx \$0-nbx empty 0 -8 +0 12 #fcfcfc #000000 #000000 0 256; +#X obj 543 329 r \$0-nbx; +#X obj 536 217 s \$0-nbx; +#X text 429 100 Feedback protection: iemguis can have the same name +for both the send and receive symbols. This works without 'stack overflow' +errors because they have feedback protection. See example below., f +50; +#X connect 0 0 4 0; +#X connect 1 0 4 0; +#X connect 2 0 7 0; +#X connect 5 0 4 0; +#X connect 6 0 4 0; +#X connect 8 0 3 0; +#X connect 14 0 17 0; +#X connect 16 0 13 0; +#X restore 117 182 pd send-receive; +#X text 37 17 All the parameters from the properties window can be +set via messages as well. See examples in the subpatches below:, f +39; +#N canvas 972 139 469 406 linear/log 0; +#X msg 142 130 lin; +#X msg 168 157 log; +#X text 172 130 linear; +#X text 198 157 logarithmic; +#X obj 168 253 nbx 5 22 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 14 +#fcfcfc #000000 #000000 0 256; +#X msg 199 217 log_height \$1; +#X floatatom 199 189 5 32 512 0 - - - 0; +#X text 54 299 The "log height" parameter defines the vertical range +\, in pixels \, that corresponds to the number box's range for when +you're scrolling through the values while in logarithmic mode., f +50; +#X text 54 16 The number box's behavior can be linear (default) or +logarithmic and you can set this with the 'lin' or 'log' messages \, +respectively. Check below the difference. In the logarithmic mode \, +the range can never never touch or cross 0 (both minimum and maximum +can be positive or negative)., f 50; +#X connect 0 0 4 0; +#X connect 1 0 4 0; +#X connect 5 0 4 0; +#X connect 6 0 5 0; +#X restore 131 130 pd linear/log; +#N canvas 973 100 398 379 range 0; +#X floatatom 159 106 4 -127 0 0 - - - 0; +#X obj 201 133 t b f; +#X floatatom 201 106 5 0 127 0 - - - 0; +#X msg 159 204 range \$1 \$2; +#X obj 159 162 pack 0 127, f 11; +#X text 100 105 minimum; +#X text 245 104 maximum; +#X floatatom 159 301 5 0 0 0 - - - 0; +#X floatatom 87 206 5 0 0 0 - - - 0; +#X obj 159 260 nbx 5 18 0 127 0 0 empty empty empty 0 -8 0 12 #fcfcfc +#000000 #000000 0 256; +#X text 39 21 The 'range' message sets the object's range. Note that +values sent to the GUI or typed in it are clipped to this range (unlike +atom number boxes)., f 44; +#X connect 0 0 4 0; +#X connect 1 0 4 0; +#X connect 1 1 4 1; +#X connect 2 0 1 0; +#X connect 3 0 9 0; +#X connect 4 0 3 0; +#X connect 8 0 9 0; +#X connect 9 0 7 0; +#X restore 165 104 pd range; +#N canvas 906 80 602 452 font/label 0; +#X msg 90 284 label \$1; +#X floatatom 237 166 4 0 3 0 - - - 0; +#X obj 279 193 t b f; +#X floatatom 279 166 5 5 50 0 - - - 0; +#X msg 237 263 label_font \$1 \$2; +#X text 199 165 type; +#X text 323 164 size; +#X obj 237 103 vradio 15 1 0 3 empty empty empty 0 -8 0 10 #fcfcfc +#000000 #000000 0; +#X text 258 102 DejaVu Sans Mono; +#X text 258 118 Helvetica; +#X text 258 133 Times; +#X msg 102 252 symbol empty; +#X floatatom 391 182 4 -200 100 0 - - - 0; +#X obj 433 209 t b f; +#X floatatom 433 182 5 -150 150 0 - - - 0; +#X msg 391 279 label_pos \$1 \$2; +#X text 373 181 x; +#X text 477 180 y; +#X text 386 158 label offset:; +#X msg 70 187 symbol label; +#X msg 90 215 symbol my\ label; +#X obj 237 373 nbx 5 18 -1e+37 1e+37 0 0 empty empty Label 90 10 0 +16 #fcfcfc #000000 #000000 0 256; +#X text 97 26 The 'label' message sets the label symbol \, setting +it to "empty" clears it. The 'label_font' message sets font type and +size and 'label_pos' sets the x/y coordinates., f 54; +#X obj 237 222 pack 0 16, f 11; +#X obj 391 237 pack 90 10, f 11; +#X connect 0 0 21 0; +#X connect 1 0 23 0; +#X connect 2 0 23 0; +#X connect 2 1 23 1; +#X connect 3 0 2 0; +#X connect 4 0 21 0; +#X connect 7 0 1 0; +#X connect 11 0 0 0; +#X connect 12 0 24 0; +#X connect 13 0 24 0; +#X connect 13 1 24 1; +#X connect 14 0 13 0; +#X connect 15 0 21 0; +#X connect 19 0 0 0; +#X connect 20 0 0 0; +#X connect 23 0 4 0; +#X connect 24 0 15 0; +#X restore 131 208 pd font/label; +#N canvas 895 265 442 324 loading-args 0; +#X text 54 119 For instance \, below \, we have \$0 used in the label +field \, which gets expanded to the patch ID number. Using something +like "\$1" is useful if you're using the object in an abstraction \, +then you can load a value passed as an argument into a parameter., +f 49; +#X obj 133 232 nbx 5 18 -100 100 0 0 empty empty \$0-Label 80 10 0 +14 #dcdcdc #000000 #740000 0 256; +#X text 54 20 Note that all the parameters that you can set by inserting +a number or symbol into a field in the properties window can also load +dollar sign arguments (\$0 \, \$1 \, \$2 \, and so on). Namely \, these +parameters are: width \, height \, lower and upper range \, log height +\, send/receive symbols \, label \, label offset and font size., f +49; +#X restore 162 316 pd loading-args; +#X text 57 285 Loading arguments in properties:; +#X restore 386 286 pd properties; +#N canvas 922 193 408 425 example-discrete 0; +#X floatatom 86 177 8 0 0 0 - - - 0; +#X obj 86 331 print fixed-steps; +#N canvas 463 235 655 287 discrete 0; +#X obj 159 157 expr int($f1/$f2) * $f2; +#X obj 159 185 change; +#X msg 74 143 set \$1; +#X obj 159 118 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12 +#fcfcfc #000000 #000000 0 256; +#X obj 159 118 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12 +#fcfcfc #000000 #000000 0 256; +#X obj 159 52 inlet; +#X obj 317 52 inlet; +#X text 155 27 value; +#X text 318 27 steps; +#X obj 159 228 outlet; +#X text 362 102 The trick here is to use two number boxes. The one +in the front just acts as a display \, but we're in fact interacting +to the one in the background., f 29; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 0 9 0; +#X connect 2 0 4 0; +#X connect 3 0 0 0; +#X connect 5 0 3 0; +#X connect 6 0 0 1; +#X coords 0 -1 1 1 80 50 2 150 100; +#X restore 86 240 pd discrete; +#X floatatom 159 209 5 1 10 1 - - - 0; +#X obj 159 150 loadbang; +#X text 174 257 <= click and drag.; +#X text 194 276 Right click and open for more details., f 20; +#X msg 159 178 2.5; +#X text 204 210 increment value; +#X text 66 33 Here's an example (or a 'hack') on how to use the number +box in a discrete way., f 34; +#X text 66 85 This example allows you to set the increment value dynamically. +, f 34; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 3 0 2 1; +#X connect 4 0 7 0; +#X connect 7 0 3 0; +#X restore 346 340 pd example-discrete; +#X text 324 571 updated for Pd version 0.52; +#X text 31 465 ATTENTION: As of Pd 0.52 \, the plan is to stop supporting +this object in favor of the atom number box \, which now also offers +different sizes. More similar functionalities will be implemented in +the atom number box and eventually [nbx] will be deprecated and removed +from the Put Menu (but kept around)., f 68; +#X obj 137 572 all_guis; +#X text 99 15 - [my_numbox]/[nbx] - Number box; +#N canvas 671 90 663 436 reference 1; +#X obj 8 52 cnv 5 640 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X text 118 184 label - sets label symbol., f 72; +#X text 42 203 label_font -; +#X text 49 235 label_pos -; +#X text 237 234 sets label position., f 55; +#X obj 7 410 cnv 5 640 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 125 284 send - sets send symbol., f 71; +#X text 97 303 recceive - sets receive symbol., f 75; +#X text 133 253 color -; +#X text 237 252 first element sets background color and third sets +font color (either floats or symbols in hexadecimal format).; +#X text 237 202 sets font type <0: DejaVu Sans Mono \, 1: Helvetica +\, 2: Times> and font size., f 50; +#X text 90 322 pos - sets position in the patch canvas. +, f 76; +#X text 77 341 delta -; +#X text 237 340 changes the position by a x/y delta in pixels., f +55; +#X text 181 63 float - set and output number., f 63; +#X text 132 149 init - non zero sets to init mode., f 70; +#X obj 7 369 cnv 5 640 5 empty empty OUTLET: 8 18 0 13 #202020 #000000 +0; +#X text 76 97 range - sets minimum and maximum range. +, f 78; +#X text 195 114 lin - sets mode to linear., f 61; +#X text 195 131 log - sets mode to logarthmic., f 61; +#X obj 43 18 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12 +#fcfcfc #000000 #000000 0 256; +#X text 116 19 - [my_numbox]/[nbx] - Number box; +#X text 132 80 size - sets the GUI size., f 70; +#X text 90 166 log_height - sets vertical range in pixels for +the log mode., f 76; +#X text 181 382 float - number box value., f 63; +#X restore 356 16 pd reference; +#X text 449 16 <= click; +#X obj 6 48 cnv 1 525 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 6 557 cnv 1 525 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X floatatom 87 572 5 0 0 0 - - - 0; +#X connect 0 0 3 0; +#X connect 1 0 6 0; +#X connect 2 0 6 0; +#X connect 4 0 6 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/netreceive-help.pd puredata-0.52.2+ds0/doc/5.reference/netreceive-help.pd --- puredata-0.52.1+ds0/doc/5.reference/netreceive-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/netreceive-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,51 +1,47 @@ -#N canvas 620 23 692 730 12; -#X obj 61 359 netreceive 3000; -#X floatatom 163 455 4 0 0 0 - - - 0; -#X text 97 692 see also:; -#X obj 183 693 netsend; -#X obj 61 455 print tcp; -#X obj 36 579 print udp; -#X text 33 156 There are some possibilities for intercommunication -with other programs... see the help for "netsend.", f 85; -#X obj 36 551 netreceive -u 3001; -#X text 195 343 creation arguments:; -#X text 263 362 optional -u flag for UDP; -#X text 263 380 optional -b flag for binary; -#X text 263 416 optional port number; -#X obj 219 551 netreceive -b 3002; -#X obj 219 579 print tcp-binary; -#X obj 403 579 print udp-binary; -#X msg 71 276 listen 0; -#X text 171 247 listen message to set or change port; -#X text 177 277 (0 or negative number to close); -#X msg 61 245 listen 3000; -#X text 33 90 By default the messages are ASCII text messages compatible +#N canvas 459 23 661 714 12; +#X floatatom 148 444 4 0 0 0 - - - 0; +#X text 22 682 see also:; +#X obj 97 683 netsend; +#X obj 46 444 print tcp; +#X obj 52 561 print udp; +#X text 37 153 There are some possibilities for intercommunication +with other programs... see the help for "netsend.", f 84; +#X obj 52 533 netreceive -u 3001; +#X text 186 324 creation arguments:; +#X text 187 343 optional -u flag for UDP; +#X text 187 361 optional -b flag for binary; +#X text 187 397 optional port number; +#X obj 219 536 netreceive -b 3002; +#X obj 219 564 print tcp-binary; +#X obj 403 564 print udp-binary; +#X msg 59 265 listen 0; +#X text 136 238 listen message to set or change port; +#X text 138 265 (0 or negative number to close); +#X text 37 92 By default the messages are ASCII text messages compatible with Pd (i.e. \, numbers and symbols terminated with a semicolon -- the "FUDI" protocol). The "-b" creation argument specifies binary messages instead \, which appear in Pd as lists of numbers from 0 to 255 (You -could use this for OSC messages \, for example.), f 83; -#X msg 82 330 send foo \$1; -#X floatatom 82 307 0 0 0 0 - - - 0; -#X floatatom 219 502 0 0 0 0 - - - 0; -#X text 119 307 "send" (for TCP connections only) sends back to connected -netreceive objects, f 76; -#X text 35 623 An old (pre-0.45) calling convention is provided for +could use this for OSC messages \, for example.), f 84; +#X msg 70 319 send foo \$1; +#X floatatom 70 295 4 0 0 0 - - - 0; +#X floatatom 219 487 4 0 0 0 - - - 0; +#X text 25 598 An old (pre-0.45) calling convention is provided for compatibility \, port number and following "0" or "1" for TCP or UDP respectively:, f 67; -#X text 34 492 Other examples:; -#X text 530 609 (UDP port 3004); -#X obj 403 551 netreceive -u -b -f 3003; -#X obj 568 579 print from; -#X text 33 194 SECURITY NOTE: Don't publish the port number of your +#X text 50 491 Other examples:; +#X text 520 594 (UDP port 3004); +#X obj 403 536 netreceive -u -b -f 3003; +#X obj 568 564 print from; +#X text 37 186 SECURITY NOTE: Don't publish the port number of your netreceive unless you wouldn't mind other people being able to send -you messages., f 85; -#X text 33 38 The netreceive object opens a socket for TCP ("stream") +you messages., f 84; +#X text 37 45 The netreceive object opens a socket for TCP ("stream") or UDP ("datagram") network reception on a specified port. If using TCP \, an outlet gives you the number of netsend objects (or other compatible clients) that have opened connections here., f 84; -#X obj 531 635 netreceive 3004 1; -#X msg 219 526 4 5 6 \$1; -#N canvas 694 147 526 506 IP 0; +#X obj 521 620 netreceive 3004 1; +#X msg 219 511 4 5 6 \$1; +#N canvas 225 168 526 506 IP 0; #X obj 23 421 print udp-hostname; #X text 284 279 IPv4 multicast; #X text 269 311 IPv6 multicast; @@ -88,26 +84,78 @@ #X connect 10 0 3 0; #X connect 12 0 13 0; #X connect 15 0 3 0; -#X restore 403 495 pd IP version and multicast; -#X text 263 398 optional -f flag for from address & port outlet (0.51+) +#X restore 434 460 pd IP version and multicast; +#X text 187 379 optional -f flag for from address & port outlet (0.51+) ; -#X text 263 435 optional UDP hostname or multicast address (0.51+) +#X text 187 416 optional UDP hostname or multicast address (0.51+) ; -#X text 289 526 lists work like "send" (Pd 0.51+); -#X text 453 692 updated for Pd version 0.51.; -#X text 36 660 As of 0.51 \, Pd supports IPv6 addresses.; -#X obj 41 9 netreceive; -#X text 129 10 - listen for incoming messages from network; -#X text 197 456 <= number of open connections; -#X connect 0 0 4 0; -#X connect 0 1 1 0; -#X connect 7 0 5 0; -#X connect 12 0 13 0; -#X connect 15 0 0 0; -#X connect 18 0 0 0; -#X connect 20 0 0 0; -#X connect 21 0 20 0; -#X connect 22 0 32 0; -#X connect 27 0 14 0; -#X connect 27 1 28 0; -#X connect 32 0 12 0; +#X text 289 511 lists work like "send" (Pd 0.51+); +#X text 445 682 updated for Pd version 0.51.; +#X text 26 635 As of 0.51 \, Pd supports IPv6 addresses.; +#X obj 23 8 netreceive; +#X text 107 8 - listen for incoming messages from network; +#X text 182 445 <= number of open connections; +#X obj 7 36 cnv 1 650 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 567 7 <= click; +#N canvas 531 101 737 491 reference 0; +#X obj 8 39 cnv 5 720 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 153 cnv 2 720 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 325 cnv 2 720 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 467 cnv 5 720 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 179 cnv 1 720 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 7 210 cnv 1 720 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 7 348 cnv 1 720 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 26 9 netreceive; +#X text 110 9 - listen for incoming messages from network; +#X text 72 55 listen -; +#X text 247 54 a number sets or changes the port number (0 or negative +closes the port). Optional symbol is a hostname which can be a UDP +multicast address or a network interface., f 64; +#X text 120 105 send -; +#X text 170 182 anything - messages sent from connected netsend objects. +, f 57; +#X text 187 354 -u: sets UDP connection (default TCP)., f 52; +#X obj 7 415 cnv 1 720 1 empty empty args: 8 12 0 13 #9f9f9f #000000 +0; +#X text 198 421 1) float - port number, f 45; +#X text 191 439 2) symbol - UDP hostname or multicast address.; +#X text 191 237 float - number of open connections for TCP connections. +, f 57; +#X text 198 297 list -; +#X text 52 214 (TCP connection only); +#X obj 7 265 cnv 1 720 1 empty empty rightmost: 8 12 0 13 #9f9f9f #000000 +0; +#X text 96 269 (if the -f flag is given); +#X text 246 297 address and port., f 49; +#X text 187 390 -f: flag for from address & port outlet., f 52; +#X text 197 125 list -; +#X text 247 125 works like 'send'., f 64; +#X text 247 105 sends messages back to connected netsend objects., +f 64; +#X text 187 372 -b: sets to binary mode (default 'FUDI')., f 52; +#X restore 473 8 pd reference; +#X obj 7 671 cnv 1 650 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X msg 46 237 listen 3000; +#X obj 46 348 netreceive 3000; +#X text 107 295 "send" sends back to connected netsend objects; +#X connect 6 0 4 0; +#X connect 11 0 12 0; +#X connect 14 0 44 0; +#X connect 18 0 44 0; +#X connect 19 0 18 0; +#X connect 20 0 29 0; +#X connect 24 0 13 0; +#X connect 24 1 25 0; +#X connect 29 0 11 0; +#X connect 43 0 44 0; +#X connect 44 0 3 0; +#X connect 44 1 0 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/netsend-help.pd puredata-0.52.2+ds0/doc/5.reference/netsend-help.pd --- puredata-0.52.1+ds0/doc/5.reference/netsend-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/netsend-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,85 +1,76 @@ -#N canvas 501 43 1110 698 12; -#X obj 32 393 netsend; -#X msg 32 207 connect localhost 3000; -#X msg 59 353 send foo \$1; -#X floatatom 59 313 0 0 0 0 - - - 0; -#X msg 48 246 disconnect; -#X msg 243 361 send foo \$1; -#X msg 234 304 disconnect; -#X msg 226 207 connect localhost 3001; -#X floatatom 32 420 0 0 0 0 - - - 0; -#X floatatom 226 419 0 0 0 0 - - - 0; -#X text 729 303 Close the connection; -#X obj 186 638 netreceive; -#X text 110 637 see also:; -#X obj 517 583 netsend 1; -#X text 593 586 (UDP); -#X text 70 560 An old (pre-0.45) calling convention is provided for +#N canvas 193 39 1076 639 12; +#X obj 30 384 netsend; +#X msg 30 198 connect localhost 3000; +#X msg 57 353 send foo \$1; +#X floatatom 57 304 0 0 0 0 - - - 0; +#X msg 46 248 disconnect; +#X msg 241 353 send foo \$1; +#X msg 232 295 disconnect; +#X msg 224 198 connect localhost 3001; +#X floatatom 30 413 0 0 0 0 - - - 0; +#X floatatom 224 413 0 0 0 0 - - - 0; +#X text 727 294 Close the connection; +#X obj 101 604 netreceive; +#X text 25 603 see also:; +#X obj 488 557 netsend 1; +#X text 560 559 (UDP); +#X text 47 535 An old (pre-0.45) calling convention is provided for compatibility: a single float argument \, "0" or "1" for TCP or UDP -respectively:, f 69; -#X obj 226 392 netsend -u; -#X text 776 394 creation arguments:; -#X text 844 413 optional -u flag for UDP; -#X text 844 432 optional -b flag for binary; -#X floatatom 243 334 0 0 0 0 - - - 0; -#X text 91 301 Send messages to "foo" on remote machine, f 16; -#X msg 433 308 disconnect; -#X floatatom 423 420 0 0 0 0 - - - 0; -#X floatatom 445 333 0 0 0 0 - - - 0; -#X msg 445 360 send 1 2 3 \$1; -#X msg 423 207 connect localhost 3002; -#X msg 649 304 disconnect; -#X floatatom 640 420 0 0 0 0 - - - 0; -#X floatatom 657 335 0 0 0 0 - - - 0; -#X text 689 186 UDP \, binary; -#X msg 657 362 send 1 2 3 \$1; -#X obj 640 393 netsend -u -b; -#X text 472 186 TCP \, binary; -#X text 799 199 Connect to "localhost" port number, f 22; -#X obj 423 393 netsend -b; -#X msg 628 207 connect localhost 3003; -#X text 35 71 The Netsend object connects to another machine over the -network for sending TCP ("stream") or UDP ("datagram") messages. An -outlet reports whether the connection is open or not. A connection -request should specify the name or IP address of the other host and -the port number. There should be a "netreceive" on the remote host -with a matching port number., f 68; -#X text 541 35 By default the messages are ASCII text messages compatible +respectively:, f 71; +#X obj 224 384 netsend -u; +#X text 774 385 creation arguments:; +#X text 842 404 optional -u flag for UDP; +#X text 842 423 optional -b flag for binary; +#X floatatom 241 325 4 0 0 0 - - - 0; +#X text 89 292 Send messages to "foo" on remote machine, f 16; +#X msg 431 295 disconnect; +#X floatatom 421 413 0 0 0 0 - - - 0; +#X floatatom 443 325 4 0 0 0 - - - 0; +#X msg 443 353 send 1 2 3 \$1; +#X msg 421 198 connect localhost 3002; +#X msg 647 295 disconnect; +#X floatatom 638 411 0 0 0 0 - - - 0; +#X floatatom 665 326 4 0 0 0 - - - 0; +#X text 687 177 UDP \, binary; +#X obj 638 384 netsend -u -b; +#X text 470 177 TCP \, binary; +#X text 797 190 Connect to "localhost" port number, f 22; +#X obj 421 384 netsend -b; +#X msg 626 198 connect localhost 3003; +#X text 535 52 By default the messages are ASCII text messages compatible with Pd (i.e. \, numbers and symbols terminated with a semicolon -- the "FUDI" protocol). The "-b" creation argument specifies binary messages instead \, which appear in Pd as lists of numbers from 0 to 255 (You -could use this to send OSC messages \, for example.), f 69; -#X obj 78 421 print backward; -#X obj 490 426 print backward; -#X text 69 468 First outlet is nonzero if connection is open \, zero -otherwise., f 62; -#X obj 293 419 print backward; -#X obj 728 423 print backward; -#X text 69 490 Second outlet outputs messages sent back from netreceive +could use this to send OSC messages \, for example.), f 74; +#X obj 488 413 print backward; +#X text 47 454 First outlet is nonzero if connection is open \, zero +otherwise., f 71; +#X obj 726 414 print backward; +#X text 47 474 Second outlet outputs messages sent back from netreceive object. In TCP mode this works for any established connection. In UDP you have to send at least one message forward through the connection for backward messages to find their way back., f 71; -#X msg 640 257 connect localhost 3003 3010; -#X text 841 241 an additional port argument; -#X text 843 273 messages sent back from receiver; -#X text 841 257 specifies port number for; -#X obj 50 35 netsend; -#X text 107 33 - send Pd messages over a network; -#X text 543 121 The Pd distribution includes "pdsend" and "pdreceive" +#X msg 638 248 connect localhost 3003 3010; +#X text 839 232 an additional port argument; +#X text 841 264 messages sent back from receiver; +#X text 839 248 specifies port number for; +#X obj 37 12 netsend; +#X text 94 11 - send Pd messages over a network; +#X text 535 127 The Pd distribution includes "pdsend" and "pdreceive" standalone programs that work with netsend/netreceive in FUDI mode. -, f 64; -#X text 83 186 TCP \, FUDI; -#X text 301 186 UDP \, FUDI; -#X msg 371 257 timeout 3000; -#X text 466 251 TCP connect timeout (ms) - don't set it too low!, +, f 74; +#X text 81 177 TCP \, FUDI; +#X text 299 177 UDP \, FUDI; +#X msg 369 248 timeout 3000; +#X text 464 237 TCP connect timeout (ms) - don't set it too low!, f 19; -#X text 760 362 lists work like "send" (as of Pd 0.51); -#X text 853 640 updated for Pd version 0.51.; -#X text 698 493 As of 0.51 \, Pd supports IPv6 addresses \, netsend +#X text 732 353 lists work like "send" (as of Pd 0.51); +#X text 853 604 updated for Pd version 0.51.; +#X text 638 467 As of 0.51 \, Pd supports IPv6 addresses \, netsend -u (UDP) is fully "connectionless" and no longer closes if no one receives a UDP message \, and netsend (TCP) has a settable connect timeout which -defaults to 10 seconds., f 52; -#N canvas 517 67 538 456 IP 0; +defaults to 10 seconds., f 57; +#N canvas 753 154 538 456 IP 1; #X obj 58 374 netsend -u; #X msg 154 282 disconnect; #X text 331 213 IPv4 multicast; @@ -113,9 +104,58 @@ #X connect 15 0 14 0; #X connect 16 0 15 0; #X connect 17 0 14 0; -#X restore 847 573 pd IP version and multicast; +#X restore 745 546 pd IP version and multicast; +#X obj 10 41 cnv 1 1060 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 985 10 <= click; +#N canvas 570 116 740 379 reference 0; +#X obj 8 42 cnv 5 720 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 176 cnv 2 720 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 268 cnv 2 720 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 346 cnv 5 720 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 202 cnv 1 720 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 7 233 cnv 1 720 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 7 293 cnv 1 720 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X text 108 127 send -; +#X text 207 300 -u: sets UDP connection (default TCP)., f 43; +#X text 185 147 list -; +#X text 235 147 works like 'send'., f 64; +#X obj 28 11 netsend; +#X text 85 10 - send Pd messages over a network; +#X text 188 207 float - nonzero if connection is open \, zero otherwise. +, f 57; +#X text 167 239 anything - messages sent back from netreceive objects. +; +#X text 207 318 -b: sets to binary mode (default 'FUDI')., f 43; +#X text 116 57 connect -; +#X text 235 127 sends messages over the network., f 64; +#X text 144 89 disconnect - close the connection., f 77; +#X text 109 108 timeout - TCP connect timeout in ms (default +10000)., f 82; +#X text 235 56 sets host and port number \, an additional port argument +can be set for messages sent back from the receiver., f 64; +#X restore 891 10 pd reference; +#X obj 10 590 cnv 1 1060 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 76 413 print backward; +#X text 15 56 The netsend object sends TCP ("stream") or UDP ("datagram") +messages over the network \, which can be received by netreceive objects +in other patches (which may be running on another machine). An outlet +reports whether the connection is open or not. A connection request +should specify the name or IP address of the other host and the port +number. There should be a "netreceive" on the remote host with a matching +port number., f 70; +#X obj 291 413 print backward; +#X msg 665 353 1 2 3 \$1; #X connect 0 0 8 0; -#X connect 0 1 39 0; +#X connect 0 1 60 0; #X connect 1 0 0 0; #X connect 2 0 0 0; #X connect 3 0 2 0; @@ -124,19 +164,19 @@ #X connect 6 0 16 0; #X connect 7 0 16 0; #X connect 16 0 9 0; -#X connect 16 1 42 0; +#X connect 16 1 62 0; #X connect 20 0 5 0; -#X connect 22 0 35 0; +#X connect 22 0 34 0; #X connect 24 0 25 0; -#X connect 25 0 35 0; -#X connect 26 0 35 0; -#X connect 27 0 32 0; -#X connect 29 0 31 0; -#X connect 31 0 32 0; -#X connect 32 0 28 0; -#X connect 32 1 43 0; -#X connect 35 0 23 0; -#X connect 35 1 40 0; -#X connect 36 0 32 0; -#X connect 45 0 32 0; -#X connect 54 0 35 0; +#X connect 25 0 34 0; +#X connect 26 0 34 0; +#X connect 27 0 31 0; +#X connect 29 0 63 0; +#X connect 31 0 28 0; +#X connect 31 1 39 0; +#X connect 34 0 23 0; +#X connect 34 1 37 0; +#X connect 35 0 31 0; +#X connect 41 0 31 0; +#X connect 50 0 34 0; +#X connect 63 0 31 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/noise~-help.pd puredata-0.52.2+ds0/doc/5.reference/noise~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/noise~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/noise~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,28 +1,46 @@ -#N canvas 736 139 534 408 12; +#N canvas 479 37 533 392 12; #X declare -stdpath ./; -#X floatatom 75 306 8 0 0 0 - - - 0; -#X obj 57 155 noise~; -#X obj 58 362 print~; -#X obj 75 278 env~ 4096; -#X text 138 306 RMS in dB; -#X obj 39 26 noise~; -#X text 103 26 - uniformly distributed white noise; -#X msg 57 116 seed 123; -#X text 115 353 the output range is -1 to 1, f 16; -#X text 133 110 seed message to re-seed (so you can get exactly repeatable +#X obj 141 178 noise~; +#X obj 141 313 print~; +#X obj 20 17 noise~; +#X text 73 17 - uniformly distributed white noise; +#X msg 105 135 seed 123; +#X text 180 128 seed message to re-seed (so you can get exactly repeatable samples), f 35; -#X text 295 363 updated for Pd version 0.48-2; -#X obj 86 202 output~; -#X obj 75 335 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 -#000000; -#X text 46 66 Noise~ is a random number generator that outputs white -noise., f 61; -#X obj 379 26 declare -stdpath ./; -#X text 165 221 <= click and drag to hear and turn DSP on, f 20; -#X connect 1 0 2 0; -#X connect 1 0 3 0; -#X connect 1 0 11 0; -#X connect 1 0 11 1; -#X connect 3 0 0 0; -#X connect 7 0 1 0; -#X connect 12 0 2 0; +#X text 301 360 updated for Pd version 0.48-2; +#X obj 159 231 output~; +#X obj 105 261 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#X obj 323 194 declare -stdpath ./; +#X text 237 248 <= click and drag to hear and turn DSP on, f 20; +#X text 42 65 Noise~ is a random number generator that outputs white +noise from a pseudo-random number generator at the audio rate (with +output from -1 to 1)., f 61; +#N canvas 691 155 584 206 reference 0; +#X obj 18 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 18 93 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 18 137 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X obj 17 174 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 38 18 noise~; +#X text 91 18 - uniformly distributed white noise; +#X text 91 65 seed - set seed for random number generator. +; +#X text 135 103 signal - white noise signal (in the range from -1 to +1).; +#X text 145 148 NONE, f 26; +#X restore 359 16 pd reference; +#X text 453 16 <= click; +#X obj 6 48 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 6 348 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X connect 0 0 1 0; +#X connect 0 0 7 0; +#X connect 0 0 7 1; +#X connect 4 0 0 0; +#X connect 4 0 8 0; +#X connect 8 0 1 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/numbox2-help.pd puredata-0.52.2+ds0/doc/5.reference/numbox2-help.pd --- puredata-0.52.1+ds0/doc/5.reference/numbox2-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/numbox2-help.pd 1970-01-01 00:00:00.000000000 +0000 @@ -1,622 +0,0 @@ -#N canvas 650 39 547 639 12; -#X floatatom 183 329 7 0 0 0 - - - 0; -#X msg 233 243 set \$1; -#X obj 152 231 bng 18 250 50 0 empty empty empty 8 -8 0 10 #fcfcfc -#000000 #000000; -#X obj 183 361 print nbx; -#X floatatom 183 231 5 0 0 0 - - - 0; -#X floatatom 233 220 5 0 0 0 - - - 0; -#X obj 183 289 nbx 5 18 -100 100 0 0 empty empty Number\\\ box 80 10 -0 14 #dcdcdc #000000 #740000 0 256; -#X obj 60 22 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12 -#fcfcfc #000000 #000000 0 256; -#X text 133 23 - [my_numbox]/[nbx]- Number box; -#X text 321 399 (c) musil@iem.kug.ac.at; -#X text 357 415 IEM KUG \, Graz \, Austria \, 2002, f 14; -#X text 34 474 see also:; -#X obj 108 474 x_all_guis; -#X text 66 400 This object is part of the "iemguis" library \, natively -included in Pd version 0.34., f 28; -#X text 58 289 click & drag ==> (shift-click for fine tuning). Right -click for properties., f 16; -#X text 28 56 The number box is a GUI (Graphical User Interface) that -sends numbers. Click on it and drag to output values - use shift-click -and drag for fine-tuning by a factor of a hundredth. You can also click -on the object \, type a number value and then 'enter' to output it. -Incoming floats set the number box's value and are passed through. -The 'set' message only sets the value without output. A bang message -sends the number box's value., f 70; -#X text 28 156 Insert it from the Put menu (named as "Number2") or -its shortcut. Alternatively \, create it by typing "my_numbox" or "nbx" -into an object box. Right click for properties (to set size \, colors -\, labels \, etc)., f 70; -#N canvas 870 100 613 486 position 0; -#X floatatom 142 146 4 0 1000 0 - - - 0; -#X obj 191 173 t b f; -#X floatatom 191 146 5 0 500 0 - - - 0; -#X msg 142 243 pos \$1 \$2; -#X text 63 146 x-position; -#X text 235 145 y-position; -#X msg 265 183 delta 1 0; -#X text 338 182 increase x by 1; -#X msg 275 205 delta -1 0; -#X text 354 204 decrease x by 1; -#X msg 287 239 delta 0 1; -#X msg 293 261 delta 0 -1; -#X text 364 238 increase y by 1; -#X text 377 263 decrease y by 1; -#X msg 302 293 delta 1 1; -#X text 377 294 increase both by 1; -#X text 395 315 decrease both by -1; -#X msg 309 315 delta -1 -1; -#X text 293 66 The 'delta' message changes the position of the object -by a difference amount. It takes a list of x/y delta in pixels., f -40; -#X text 40 66 The 'pos' message takes a list of x/y coordinates in -pixels and sets the objects's position., f 33; -#X text 159 19 You can also set and change the position of the object -in the patch. Check below:, f 41; -#X obj 265 350 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12 -#fcfcfc #000000 #000000 0 256; -#X obj 142 202 pack 265 350; -#X connect 0 0 22 0; -#X connect 1 0 22 0; -#X connect 1 1 22 1; -#X connect 2 0 1 0; -#X connect 3 0 21 0; -#X connect 6 0 21 0; -#X connect 8 0 21 0; -#X connect 10 0 21 0; -#X connect 11 0 21 0; -#X connect 14 0 21 0; -#X connect 17 0 21 0; -#X connect 22 0 3 0; -#X restore 404 311 pd position; -#N canvas 521 172 367 380 properties 0; -#N canvas 839 56 656 573 colors 0; -#X floatatom 72 244 3 0 29 0 - - - 0; -#X floatatom 108 244 3 0 29 0 - - - 0; -#X floatatom 177 249 3 0 29 0 - - - 0; -#X text 104 224 front; -#X text 170 224 label; -#X obj 108 273 t b f; -#X obj 177 275 t b f; -#X msg 72 343 color \$1 \$2 \$3; -#X obj 72 306 pack 0 22 22, f 20; -#X text 181 343 presets; -#X symbolatom 507 340 9 0 0 0 - - - 0; -#X symbolatom 421 339 9 0 0 0 - - - 0; -#X symbolatom 335 339 9 0 0 0 - - - 0; -#X obj 475 370 t b s; -#X obj 389 370 t b s; -#X obj 258 224 loadbang; -#X obj 335 408 pack symbol symbol symbol; -#X msg 335 437 color \$1 \$2 \$3; -#X msg 258 258 list #ffffff #000000 #000000, f 7; -#X text 21 224 background; -#X text 444 438 RGB in hexadecimal; -#X text 67 17 The 'color' message takes a list of three values to set -background \, front and label colors \, respectively. Integers from -0 to 29 represent the 30 preset colors found in the properties window -\, values above are wrapped., f 77; -#X text 68 68 Negative integers were used to encode RGB values (and -that still works for backwards compatibility). But since Pd 0.47-0 -\, you can set colors with hexadecimal RGB symbol values \, which are -followed by "#"., f 77; -#X text 346 133 Set RGB values in the sliders; -#X text 61 157 Open subpatches for the conversion from RGB to hexadecimal -============>, f 38; -#X obj 335 509 nbx 5 24 0 127 0 0 empty empty Label 33 -13 0 20 #ffffff -#000000 #000000 0 10; -#N canvas 1152 218 390 482 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc -#fcfcfc #000000 0 1; -#X obj 109 225 t b f; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 -#000000 #000000 0 1; -#X obj 80 341 pack s s s; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 -#000000 #000000 0 1; -#X obj 81 250 t b f; -#X obj 147 257 makefilename %02x; -#X obj 113 284 makefilename %02x; -#X obj 74 311 makefilename %02x; -#X text 66 56 label; -#X obj 80 406 outlet; -#X msg 80 370 symbol #\$1\$2\$3; -#X obj 161 185 loadbang; -#X msg 161 217 0; -#X connect 0 0 1 0; -#X connect 1 0 2 0; -#X connect 1 1 6 0; -#X connect 2 0 5 0; -#X connect 3 0 11 0; -#X connect 4 0 8 0; -#X connect 5 0 4 0; -#X connect 5 1 7 0; -#X connect 6 0 3 2; -#X connect 7 0 3 1; -#X connect 8 0 3 0; -#X connect 11 0 10 0; -#X connect 12 0 13 0; -#X connect 13 0 6 0; -#X connect 13 0 7 0; -#X coords 0 -1 1 1 80 170 2 50 50; -#X restore 507 158 pd label; -#N canvas 1040 252 390 482 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc -#fcfcfc #000000 0 1; -#X obj 109 225 t b f; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 -#000000 #000000 0 1; -#X obj 74 341 pack s s s; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 -#000000 #000000 0 1; -#X obj 81 250 t b f; -#X obj 146 257 makefilename %02x; -#X obj 112 284 makefilename %02x; -#X obj 74 311 makefilename %02x; -#X obj 74 406 outlet; -#X text 69 56 front; -#X msg 74 370 symbol #\$1\$2\$3; -#X obj 177 168 loadbang; -#X msg 177 200 0; -#X connect 0 0 1 0; -#X connect 1 0 2 0; -#X connect 1 1 6 0; -#X connect 2 0 5 0; -#X connect 3 0 11 0; -#X connect 4 0 8 0; -#X connect 5 0 4 0; -#X connect 5 1 7 0; -#X connect 6 0 3 2; -#X connect 7 0 3 1; -#X connect 8 0 3 0; -#X connect 11 0 9 0; -#X connect 12 0 13 0; -#X connect 13 0 6 0; -#X connect 13 0 7 0; -#X coords 0 -1 1 1 80 170 2 50 50; -#X restore 421 158 pd label; -#N canvas 851 185 390 482 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc -#fcfcfc #000000 0 1; -#X obj 109 225 t b f; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 -#000000 #000000 0 1; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 -#000000 #000000 0 1; -#X obj 81 250 t b f; -#X obj 221 257 makefilename %02x; -#X obj 141 284 makefilename %02x; -#X obj 61 321 makefilename %02x; -#X obj 61 416 outlet; -#X text 52 56 background; -#X msg 61 380 symbol #\$1\$2\$3; -#X obj 176 59 loadbang; -#X msg 176 91 set 255; -#X obj 176 176 route set; -#X obj 61 351 pack symbol symbol symbol; -#X connect 0 0 1 0; -#X connect 1 0 2 0; -#X connect 1 1 5 0; -#X connect 2 0 4 0; -#X connect 3 0 7 0; -#X connect 4 0 3 0; -#X connect 4 1 6 0; -#X connect 5 0 14 2; -#X connect 6 0 14 1; -#X connect 7 0 14 0; -#X connect 10 0 8 0; -#X connect 11 0 12 0; -#X connect 12 0 3 0; -#X connect 12 0 2 0; -#X connect 12 0 0 0; -#X connect 12 0 13 0; -#X connect 13 0 5 0; -#X connect 13 0 6 0; -#X connect 14 0 10 0; -#X coords 0 -1 1 1 80 170 2 50 50; -#X restore 335 158 pd label; -#N canvas 961 163 594 543 old_way 0; -#N canvas 1171 276 402 495 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc -#fcfcfc #000000 0 1; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 -#000000 #000000 0 1; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 -#000000 #000000 0 1; -#X text 66 56 label; -#X obj 59 361 expr -($f1 * 65536 + $f2 * 256 + $f3 + 1); -#X obj 311 319 t b f; -#X obj 169 319 t b f; -#X obj 59 413 outlet; -#X connect 0 0 5 0; -#X connect 1 0 6 0; -#X connect 2 0 4 0; -#X connect 4 0 7 0; -#X connect 5 0 4 0; -#X connect 5 1 4 2; -#X connect 6 0 4 0; -#X connect 6 1 4 1; -#X coords 0 -1 1 1 80 170 2 50 50; -#X restore 381 148 pd label; -#X text 220 123 Set RGB values in the sliders; -#N canvas 1022 246 392 476 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc -#fcfcfc #000000 0 1; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 -#000000 #000000 0 1; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 -#000000 #000000 0 1; -#X obj 61 361 expr -($f1 * 65536 + $f2 * 256 + $f3 + 1); -#X obj 313 269 t b f; -#X obj 171 269 t b f; -#X obj 61 413 outlet; -#X text 52 56 background; -#X obj 180 83 loadbang; -#X msg 202 134 set 255; -#X msg 181 195 255 255 255; -#X connect 0 0 4 0; -#X connect 1 0 5 0; -#X connect 2 0 3 0; -#X connect 3 0 6 0; -#X connect 4 0 3 0; -#X connect 4 1 3 2; -#X connect 5 0 3 0; -#X connect 5 1 3 1; -#X connect 8 0 9 0; -#X connect 8 0 10 0; -#X connect 9 0 0 0; -#X connect 9 0 1 0; -#X connect 9 0 2 0; -#X connect 10 0 3 0; -#X coords 0 -1 1 1 80 170 2 50 50; -#X restore 209 148 pd label; -#N canvas 1094 247 402 495 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc -#fcfcfc #000000 0 1; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 -#000000 #000000 0 1; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 -#000000 #000000 0 1; -#X obj 59 361 expr -($f1 * 65536 + $f2 * 256 + $f3 + 1); -#X obj 311 319 t b f; -#X obj 169 319 t b f; -#X obj 59 413 outlet; -#X text 66 56 front; -#X connect 0 0 4 0; -#X connect 1 0 5 0; -#X connect 2 0 3 0; -#X connect 3 0 6 0; -#X connect 4 0 3 0; -#X connect 4 1 3 2; -#X connect 5 0 3 0; -#X connect 5 1 3 1; -#X coords 0 -1 1 1 80 170 2 50 50; -#X restore 295 148 pd label; -#X text 57 177 Open subpatches for the conversion ====>, f 20; -#X msg 269 385 color -1.67772e+07 -1 -1; -#N canvas 574 194 328 335 pack 0; -#X obj 73 47 inlet; -#X obj 123 47 inlet; -#X obj 206 47 inlet; -#X msg 73 152 color \$1 \$2 \$3; -#X obj 206 85 t b f; -#X obj 123 85 t b f; -#X obj 73 123 pack float -1 -1, f 24; -#X obj 73 187 list prepend set; -#X obj 73 213 list trim; -#X obj 73 246 t b a; -#X obj 73 283 outlet; -#X connect 0 0 6 0; -#X connect 1 0 5 0; -#X connect 2 0 4 0; -#X connect 3 0 7 0; -#X connect 4 0 6 0; -#X connect 4 1 6 2; -#X connect 5 0 6 0; -#X connect 5 1 6 1; -#X connect 6 0 3 0; -#X connect 7 0 8 0; -#X connect 8 0 9 0; -#X connect 9 0 10 0; -#X connect 9 1 10 0; -#X restore 269 349 pd pack; -#X f 8; -#X obj 269 460 nbx 5 24 0 127 0 0 empty empty Label 33 -13 0 20 #ffffff -#000000 #000000 0 10; -#X text 98 29 The RGB color scheme can also be encoded \, for backwards -compatibility \, as negative inetegers. For "R" (red) \, "G" (green) -& "B" (blue) values from 0 to 255 \, the conversion formula is \; float -= -(R * 65536 + G * 256 + B + 1)., f 47; -#X connect 0 0 6 2; -#X connect 2 0 6 0; -#X connect 3 0 6 1; -#X connect 5 0 7 0; -#X connect 6 0 5 0; -#X restore 62 508 pd old_way; -#X text 34 450 open subpatch below for the old way of encoding RGB -values., f 20; -#X text 35 432 See also:; -#X connect 0 0 8 0; -#X connect 1 0 5 0; -#X connect 2 0 6 0; -#X connect 5 0 8 0; -#X connect 5 1 8 1; -#X connect 6 0 8 0; -#X connect 6 1 8 2; -#X connect 7 0 25 0; -#X connect 8 0 7 0; -#X connect 10 0 13 0; -#X connect 11 0 14 0; -#X connect 12 0 16 0; -#X connect 13 0 16 0; -#X connect 13 1 16 2; -#X connect 14 0 16 0; -#X connect 14 1 16 1; -#X connect 15 0 18 0; -#X connect 16 0 17 0; -#X connect 17 0 25 0; -#X connect 18 0 16 0; -#X connect 26 0 10 0; -#X connect 27 0 11 0; -#X connect 28 0 12 0; -#X coords 0 0 1 1 85 60 0; -#X restore 159 235 pd colors; -#N canvas 899 81 441 465 size 0; -#X floatatom 101 145 4 1 20 0 - - - 0; -#X obj 143 172 t b f; -#X floatatom 143 145 4 10 150 0 - - - 0; -#X msg 101 242 size \$1 \$2; -#X text 187 144 height; -#X obj 101 282 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12 -#fcfcfc #000000 #000000 0 256; -#X text 49 144 digits; -#X obj 101 201 pack 5 18, f 11; -#X text 44 35 The size message sets the object's size and takes number -of digits and height values (in number of pixels). The number of digits -affect the box width \, but note that the box's width also depends -on the height parameter \, as well as the font type and font size. -, f 51; -#X connect 0 0 7 0; -#X connect 1 0 7 0; -#X connect 1 1 7 1; -#X connect 2 0 1 0; -#X connect 3 0 5 0; -#X connect 7 0 3 0; -#X restore 173 77 pd size; -#N canvas 906 195 433 296 init 0; -#X msg 162 163 init \$1; -#X obj 162 131 tgl 18 0 empty empty empty 17 7 0 10 #fcfcfc #000000 -#000000 0 1; -#X text 55 22 The init message takes a float and sets to init (if different -than zero) or no init (if equal to zero - the default value)., f 46 -; -#X text 185 131 init on/off; -#X obj 162 243 print nbx-init; -#X obj 162 202 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12 -#fcfcfc #000000 #000000 0 256; -#X text 55 69 If in 'init mode' \, when loading the patch \, the objects -sends its holding value from when the patch was last saved., f 46 -; -#X connect 0 0 5 0; -#X connect 1 0 0 0; -#X connect 5 0 4 0; -#X restore 173 156 pd init; -#N canvas 996 102 817 453 send-receive 0; -#X msg 211 197 receive empty; -#X msg 242 261 send empty; -#X floatatom 72 182 5 0 0 0 - - - 0; -#X floatatom 72 310 5 0 0 0 - - - 0; -#X obj 211 309 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12 -#fcfcfc #000000 #000000 0 256; -#X msg 195 172 receive \\\$0-nbx_rcv; -#X msg 233 236 send \\\$0-nbx_snd; -#X obj 72 216 s \$0-nbx_rcv; -#X obj 72 272 r \$0-nbx_snd; -#X text 54 96 The 'send' and 'receive' messages take a symbol to set -\, respectively \, the send and receive symbol. If you set these to -"empty" \, the symbols are cleared., f 50; -#X text 54 20 The object can have a send and receive symbol \, in which -cases the inlet/outlet are visually hidden (but still functional in -the patch). This way \, the object can communicate to [send] and [receive] -objects., f 50; -#X text 47 362 Note how you need to escape dollar signs with backslashes -to set something like "\$0-x". But the backslash is not needed if you -set it directly via the properties window., f 53; -#X text 429 26 Note how you need to escape dollar signs with backslashes -to set something like "\$0-x". But the backslash is not needed if you -set it directly via the properties window., f 50; -#X floatatom 543 353 5 0 0 0 - - - 0; -#X floatatom 536 191 5 0 0 0 - - - 0; -#X obj 549 267 nbx 5 18 -1e+37 1e+37 0 0 \$0-nbx \$0-nbx empty 0 -8 -0 12 #fcfcfc #000000 #000000 0 256; -#X obj 543 329 r \$0-nbx; -#X obj 536 217 s \$0-nbx; -#X text 429 100 Feedback protection: iemguis can have the same name -for both the send and receive symbols. This works without 'stack overflow' -erros because they have feedback protection. See example below., f -50; -#X connect 0 0 4 0; -#X connect 1 0 4 0; -#X connect 2 0 7 0; -#X connect 5 0 4 0; -#X connect 6 0 4 0; -#X connect 8 0 3 0; -#X connect 14 0 17 0; -#X connect 16 0 13 0; -#X restore 117 182 pd send-receive; -#X text 37 17 All the parameters from the properties window can be -set via messages as well. See examples in the subpatches below:, f -39; -#N canvas 972 139 469 406 linear/log 0; -#X msg 142 130 lin; -#X msg 168 157 log; -#X text 172 130 linear; -#X text 198 157 logarithmic; -#X obj 168 253 nbx 5 22 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 14 -#fcfcfc #000000 #000000 0 256; -#X msg 199 217 log_height \$1; -#X floatatom 199 189 5 32 512 0 - - - 0; -#X text 54 299 The "log height" parameter defines the vertical range -\, in pixels \, that corresponds to the number box's range for when -you're scrolling through the values while in logarithmic mode., f -50; -#X text 54 16 The number box's behavior can be linear (default) or -logarithmic and you can set this with the 'lin' or 'log' messages \, -respectively. Check below the difference. In the logarithmic mode \, -the range can never never touch or cross 0 (both minimum and maximum -can be positive or negative)., f 50; -#X connect 0 0 4 0; -#X connect 1 0 4 0; -#X connect 5 0 4 0; -#X connect 6 0 5 0; -#X restore 131 130 pd linear/log; -#N canvas 973 100 398 379 range 0; -#X floatatom 159 106 4 -127 0 0 - - - 0; -#X obj 201 133 t b f; -#X floatatom 201 106 5 0 127 0 - - - 0; -#X msg 159 204 range \$1 \$2; -#X obj 159 162 pack 0 127, f 11; -#X text 100 105 minimum; -#X text 245 104 maximum; -#X floatatom 159 301 5 0 0 0 - - - 0; -#X floatatom 87 206 5 0 0 0 - - - 0; -#X obj 159 260 nbx 5 18 0 127 0 0 empty empty empty 0 -8 0 12 #fcfcfc -#000000 #000000 0 256; -#X text 39 21 The 'range' message sets the object's range. Note that -values sent to the GUI or typed in it are clipped to this range (unlike -atom number boxes)., f 44; -#X connect 0 0 4 0; -#X connect 1 0 4 0; -#X connect 1 1 4 1; -#X connect 2 0 1 0; -#X connect 3 0 9 0; -#X connect 4 0 3 0; -#X connect 8 0 9 0; -#X connect 9 0 7 0; -#X restore 165 104 pd range; -#N canvas 906 80 602 452 font/label 0; -#X msg 90 284 label \$1; -#X floatatom 237 166 4 0 3 0 - - - 0; -#X obj 279 193 t b f; -#X floatatom 279 166 5 5 50 0 - - - 0; -#X msg 237 263 label_font \$1 \$2; -#X text 199 165 type; -#X text 323 164 size; -#X obj 237 103 vradio 15 1 0 3 empty empty empty 0 -8 0 10 #fcfcfc -#000000 #000000 0; -#X text 258 102 DejaVu Sans Mono; -#X text 258 118 Helvetica; -#X text 258 133 Times; -#X msg 102 252 symbol empty; -#X floatatom 391 182 4 -200 100 0 - - - 0; -#X obj 433 209 t b f; -#X floatatom 433 182 5 -150 150 0 - - - 0; -#X msg 391 279 label_pos \$1 \$2; -#X text 373 181 x; -#X text 477 180 y; -#X text 386 158 label offset:; -#X msg 70 187 symbol label; -#X msg 90 215 symbol my\ label; -#X obj 237 373 nbx 5 18 -1e+37 1e+37 0 0 empty empty Label 90 10 0 -16 #fcfcfc #000000 #000000 0 256; -#X text 97 26 The 'label' message sets the label symbol \, setting -it to "empty" clears it. The 'label_font' message sets font type and -size and 'label_pos' sets the x/y coordinates., f 54; -#X obj 237 222 pack 0 16, f 11; -#X obj 391 237 pack 90 10, f 11; -#X connect 0 0 21 0; -#X connect 1 0 23 0; -#X connect 2 0 23 0; -#X connect 2 1 23 1; -#X connect 3 0 2 0; -#X connect 4 0 21 0; -#X connect 7 0 1 0; -#X connect 11 0 0 0; -#X connect 12 0 24 0; -#X connect 13 0 24 0; -#X connect 13 1 24 1; -#X connect 14 0 13 0; -#X connect 15 0 21 0; -#X connect 19 0 0 0; -#X connect 20 0 0 0; -#X connect 23 0 4 0; -#X connect 24 0 15 0; -#X restore 131 208 pd font/label; -#N canvas 895 265 442 324 loading-args 0; -#X text 54 119 For instance \, below \, we have \$0 used in the label -field \, which gets expanded to the patch ID number. Using something -like "\$1" is useful if you're using the object in an abstraction \, -then you can load a value passed as an argument into a parameter., -f 49; -#X obj 133 232 nbx 5 18 -100 100 0 0 empty empty \$0-Label 80 10 0 -14 #dcdcdc #000000 #740000 0 256; -#X text 54 20 Note that all the parameters that you can set by inserting -a number or symbol into a field in the properties window can also load -dollar sign arguments (\$0 \, \$1 \, \$2 \, and so on). Namely \, these -parameters are: width \, height \, lower and upper range \, log height -\, send/receive symbols \, label \, label offset and font size., f -49; -#X restore 162 316 pd loading-args; -#X text 57 285 Loading arguments in properties:; -#X restore 390 283 pd properties; -#X floatatom 108 503 5 0 0 0 - - - 0; -#X text 150 503 <= atom number box; -#N canvas 922 193 408 425 example-discrete 0; -#X floatatom 86 177 8 0 0 0 - - - 0; -#X obj 86 331 print fixed-steps; -#N canvas 463 235 655 287 discrete 0; -#X obj 159 157 expr int($f1/$f2) * $f2; -#X obj 159 185 change; -#X msg 74 143 set \$1; -#X obj 159 118 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12 -#fcfcfc #000000 #000000 0 256; -#X obj 159 118 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12 -#fcfcfc #000000 #000000 0 256; -#X obj 159 52 inlet; -#X obj 317 52 inlet; -#X text 155 27 value; -#X text 318 27 steps; -#X obj 159 228 outlet; -#X text 362 102 The trick here is to use two number boxes. The one -in the front just acts as a display \, but we're in fact interacting -to the one in the background., f 29; -#X connect 0 0 1 0; -#X connect 1 0 2 0; -#X connect 1 0 9 0; -#X connect 2 0 4 0; -#X connect 3 0 0 0; -#X connect 5 0 3 0; -#X connect 6 0 0 1; -#X coords 0 -1 1 1 80 50 2 150 100; -#X restore 86 240 pd discrete; -#X floatatom 159 209 5 1 10 1 - - - 0; -#X obj 159 150 loadbang; -#X text 174 257 <= click and drag.; -#X text 194 276 Right click and open for more details., f 20; -#X msg 159 178 2.5; -#X text 204 210 increment value; -#X text 66 33 Here's an example (or a 'hack') on how to use the number -box in a discrete way., f 34; -#X text 66 85 This example allows you to set the increment value dynamically. -, f 34; -#X connect 0 0 2 0; -#X connect 2 0 1 0; -#X connect 3 0 2 1; -#X connect 4 0 7 0; -#X connect 7 0 3 0; -#X restore 350 337 pd example-discrete; -#X text 315 503 updated for Pd version 0.52; -#X text 37 546 ATTENTION: As of Pd 0.52 \, the plan is to stop supporting -this object in favor of the atom number box \, which now also offers -different sizes. More similar functionalities will be implemented in -the atom number box and eventually [nbx] will be deprecated and removed -from the Put Menu (but kept around)., f 68; -#X connect 0 0 3 0; -#X connect 1 0 6 0; -#X connect 2 0 6 0; -#X connect 4 0 6 0; -#X connect 5 0 1 0; -#X connect 6 0 0 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/openpanel-help.pd puredata-0.52.2+ds0/doc/5.reference/openpanel-help.pd --- puredata-0.52.1+ds0/doc/5.reference/openpanel-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/openpanel-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,29 +1,29 @@ -#N canvas 693 85 564 571 12; -#X obj 82 230 openpanel; -#X msg 82 142 bang; -#X obj 82 286 print; -#X text 56 519 see also:; -#X obj 134 520 savepanel; -#X msg 98 170 symbol /tmp; -#X msg 110 199 symbol C:/; -#X obj 240 459 print; -#X obj 240 432 openpanel 1; -#X obj 362 459 print; -#X obj 362 432 openpanel 2; -#X msg 240 404 bang; -#X msg 362 404 bang; -#X text 238 383 directory; -#X text 361 383 multiple files; -#X obj 115 459 print; -#X msg 115 404 bang; -#X obj 115 432 openpanel 0; -#X obj 74 25 openpanel; -#X text 303 519 updated for Pd version 0.51.; -#X text 147 25 - query for files or directories; -#X text 47 69 When openpanel gets a "bang" \, a file browser appears +#N canvas 499 27 542 539 12; +#X obj 82 226 openpanel; +#X msg 82 138 bang; +#X obj 82 282 print; +#X text 15 500 see also:; +#X obj 93 501 savepanel; +#X msg 98 166 symbol /tmp; +#X msg 110 195 symbol C:/; +#X obj 240 446 print; +#X obj 240 419 openpanel 1; +#X obj 362 446 print; +#X obj 362 419 openpanel 2; +#X msg 240 391 bang; +#X msg 362 391 bang; +#X text 238 370 directory; +#X text 361 370 multiple files; +#X obj 115 446 print; +#X msg 115 391 bang; +#X obj 115 419 openpanel 0; +#X obj 23 13 openpanel; +#X text 317 500 updated for Pd version 0.51.; +#X text 96 13 - query for files or directories; +#X text 47 65 When openpanel gets a "bang" \, a file browser appears on the screen. By default \, if you select a file \, its name appears on the outlet.; -#X text 56 323 A mode argument allow you to select a directory or multiple +#X text 56 319 A mode argument allow you to select a directory or multiple files. See below; #N canvas 710 182 389 296 current-directory 0; #X obj 155 149 pdcontrol; @@ -36,12 +36,38 @@ #X connect 0 0 2 0; #X connect 1 0 0 0; #X connect 2 0 4 0; -#X restore 245 224 pd current-directory; -#X text 93 381 file (default); -#X text 193 173 Start in a specified directory given as a symbol, +#X restore 245 220 pd current-directory; +#X text 93 368 file (default); +#X text 193 169 Start in a specified directory given as a symbol, f 31; -#X text 127 141 Starts in default directory; -#X symbolatom 82 259 60 0 0 0 - - - 0; +#X text 127 137 Starts in default directory; +#X symbolatom 82 255 60 0 0 0 - - - 0; +#N canvas 772 83 587 238 reference 0; +#X obj 18 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 18 119 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 18 157 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 211 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 123 66 bang -; +#X obj 40 18 openpanel; +#X text 173 66 open dialog window to choose file(s) or directory.; +#X text 109 85 symbol -; +#X text 139 130 symbol - directory or file(s)' names., f 54; +#X text 113 18 - query for files or directories.; +#X text 173 85 set starting directory and open dialog window., f 50 +; +#X text 52 184 1) float - mode: 0 (file \, default) \, 1 (directory) +\, 2 (multiple files)., f 71; +#X restore 361 14 pd reference; +#X text 456 15 <= click; +#X obj 8 45 cnv 1 525 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 8 487 cnv 1 525 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 170 501 pdcontrol; #X connect 0 0 27 0; #X connect 1 0 0 0; #X connect 5 0 0 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/operators-help.pd puredata-0.52.2+ds0/doc/5.reference/operators-help.pd --- puredata-0.52.1+ds0/doc/5.reference/operators-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/operators-help.pd 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ -#N canvas 774 126 595 480 12; -#X obj 63 19 +; -#X text 46 321 see also:; -#X obj 50 346 +~; -#X text 363 162 You can supply a creation argument to initialize the -right inlet:, f 25; -#X obj 439 250 min 20; -#X obj 98 19 -; -#X obj 132 19 *; -#X obj 167 19 /; -#X obj 199 19 max; -#X obj 234 19 min; -#X text 273 18 - binary arithmetic operators; -#X text 328 428 last updated for Pd version 0.47; -#X obj 50 377 div; -#X obj 84 377 >; -#X obj 119 377 &&; -#X floatatom 147 271 5 0 0 0 - - - 0; -#X floatatom 190 271 8 0 0 0 - - - 0; -#X floatatom 307 271 5 0 0 0 - - - 0; -#X floatatom 262 151 5 0 0 0 - - - 0; -#X obj 262 178 t b f; -#X text 73 122 set left and right inputs here; -#X floatatom 263 271 5 0 0 0 - - - 0; -#X obj 63 241 +; -#X obj 105 241 -; -#X obj 147 241 *; -#X obj 190 241 /; -#X obj 263 241 max; -#X obj 307 241 min; -#X floatatom 62 151 5 0 0 0 - - - 0; -#X text 150 377 (etc) - other binary operators; -#X obj 50 433 expr; -#X text 91 433 - evaluation expressions, f 25; -#X obj 50 404 sin; -#X text 116 405 (etc) - math functions; -#X text 86 346 (etc) - signal operators; -#X obj 84 404 log; -#X obj 385 250 + 3; -#X obj 505 250 * 3; -#X floatatom 105 271 5 0 0 0 - - - 0; -#X floatatom 63 271 5 0 0 0 - - - 0; -#X floatatom 439 275 5 0 0 0 - - - 0; -#X floatatom 385 275 5 0 0 0 - - - 0; -#X floatatom 505 275 5 0 0 0 - - - 0; -#X floatatom 439 225 5 0 0 0 - - - 0; -#X floatatom 505 225 5 0 0 0 - - - 0; -#X floatatom 385 225 5 0 0 0 - - - 0; -#X text 56 52 The arithmetic binary operators perform the 4 arithmetic -functions (+ \, etc) or output the minimum or maximum of two numbers -(min \, max). All of these objects take a bang message to evaluate -the operation with the previously set values., f 68; -#X connect 4 0 40 0; -#X connect 18 0 19 0; -#X connect 19 0 22 0; -#X connect 19 0 27 0; -#X connect 19 0 26 0; -#X connect 19 0 25 0; -#X connect 19 0 24 0; -#X connect 19 0 23 0; -#X connect 19 1 22 1; -#X connect 19 1 23 1; -#X connect 19 1 24 1; -#X connect 19 1 25 1; -#X connect 19 1 26 1; -#X connect 19 1 27 1; -#X connect 22 0 39 0; -#X connect 23 0 38 0; -#X connect 24 0 15 0; -#X connect 25 0 16 0; -#X connect 26 0 21 0; -#X connect 27 0 17 0; -#X connect 28 0 22 0; -#X connect 28 0 23 0; -#X connect 28 0 24 0; -#X connect 28 0 25 0; -#X connect 28 0 26 0; -#X connect 28 0 27 0; -#X connect 36 0 41 0; -#X connect 37 0 42 0; -#X connect 43 0 4 0; -#X connect 44 0 37 0; -#X connect 45 0 36 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/oscformat-help.pd puredata-0.52.2+ds0/doc/5.reference/oscformat-help.pd --- puredata-0.52.1+ds0/doc/5.reference/oscformat-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/oscformat-help.pd 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ -#N canvas 692 23 682 838 12; -#X msg 66 589 format b; -#X msg 51 143 1 2 3; -#X obj 51 267 oscformat cat horse pig; -#X msg 73 202 set dog ferret; -#X msg 81 229 set mouse banana; -#X obj 72 356 oscparse; -#X obj 51 418 print packet; -#X msg 59 173 4 5 weasel 6 7 rat; -#X obj 148 727 oscparse; -#X obj 148 752 print parse-output; -#X obj 50 736 print packet; -#X msg 50 536 -1 1 2 mule 4 5; -#X msg 78 636 format ifisf; -#X obj 50 664 oscformat -f b wombat; -#X msg 38 508 5 6 7 squirrel; -#X msg 73 613 format fiiib; -#X text 228 266 creation arguments are OSC address; -#X text 107 136 OSC messages with numbers and symbols. Except as shown -below the message will contain 'float' and 'string' data.; -#X msg 225 419 disconnect; -#X obj 206 445 netsend -u -b; -#X msg 215 394 connect localhost 5000; -#X obj 207 344 list prepend send; -#X obj 207 369 list trim; -#X obj 72 381 print reassembled; -#X text 53 795 see also:; -#X obj 262 795 list; -#X obj 131 795 oscparse; -#X obj 202 795 netsend; -#X text 39 50 oscformat makes OSC packets suitable for sending over -the network via netsend (in UDP binary mode). The OSC address (the -strings between the slashes) are given by the creation arguments or -by "set" messages. Incoming lists are output as OSC messages \, byte -by byte., f 84; -#X text 309 419 don't send; -#X text 190 209 set message to change OSC address; -#X text 213 664 the '-f' creation argument initializes the format; -#X msg 58 564 format; -#X text 113 564 no format; -#X text 138 588 a 'blob'; -#X text 174 624 mixtures; -#X text 388 393 send as UDP; -#X text 262 487 The format \, if any (initialized or set by a 'format' -message) instructs oscformat to interpret incoming data as integer -\, float \, string \, or 'blob'. Blobs are given as an atom count followed -by that number of elements. (If an elements is a symbol \, its first -byte is sent). If the count is negative \, the entire remaining message -is included in the blob (but the OSC parser will report the actual -number of elements). If the elements aren't exhausted at the end of -the format string \, the default (float and symbol) conversions are -made for the rest., f 55; -#X text 317 732 Note: there's no way using oscparse to distinguish -between floats and integers \, nor to see blobs unambiguously., f -40; -#X obj 69 15 oscformat; -#X text 424 794 updated for Pd version 0.51.; -#X text 141 14 - convert lists to Open Sound Control (OSC) packets -; -#X text 341 334 ("send" is optional for lists as of Pd 0.51), f 23 -; -#X listbox 51 298 85 0 0 0 - - - 0; -#X listbox 50 695 85 0 0 0 - - - 0; -#X connect 0 0 13 0; -#X connect 1 0 2 0; -#X connect 2 0 43 0; -#X connect 3 0 2 0; -#X connect 4 0 2 0; -#X connect 5 0 23 0; -#X connect 7 0 2 0; -#X connect 8 0 9 0; -#X connect 11 0 13 0; -#X connect 12 0 13 0; -#X connect 13 0 44 0; -#X connect 14 0 13 0; -#X connect 15 0 13 0; -#X connect 18 0 19 0; -#X connect 20 0 19 0; -#X connect 21 0 22 0; -#X connect 22 0 19 0; -#X connect 32 0 13 0; -#X connect 43 0 6 0; -#X connect 43 0 5 0; -#X connect 43 0 21 0; -#X connect 44 0 10 0; -#X connect 44 0 8 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/osc-format-parse-help.pd puredata-0.52.2+ds0/doc/5.reference/osc-format-parse-help.pd --- puredata-0.52.1+ds0/doc/5.reference/osc-format-parse-help.pd 1970-01-01 00:00:00.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/osc-format-parse-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -0,0 +1,145 @@ +#N canvas 374 23 898 703 12; +#X msg 66 357 format b; +#X msg 274 204 1 2 3; +#X msg 295 253 set dog ferret; +#X msg 281 230 set mouse banana; +#X obj 583 325 oscparse; +#X msg 261 177 4 5 weasel 6 7 rat; +#X obj 50 521 oscparse; +#X msg 50 304 -1 1 2 mule 4 5; +#X msg 78 404 format ifisf; +#X obj 50 432 oscformat -f b wombat; +#X msg 38 276 5 6 7 squirrel; +#X msg 73 381 format fiiib; +#X text 432 278 creation arguments are OSC address, f 18; +#X msg 297 344 disconnect; +#X obj 261 374 netsend -u -b; +#X msg 278 319 connect localhost 5000; +#X text 33 673 see also:; +#X obj 254 673 list; +#X obj 194 673 netsend; +#X text 381 344 don't send; +#X text 410 238 set message to change OSC address, f 18; +#X msg 58 332 format; +#X text 113 332 no format; +#X text 138 356 a 'blob'; +#X text 174 392 mixtures; +#X text 444 318 send as UDP; +#X obj 29 10 oscformat; +#X text 663 672 updated for Pd version 0.51.; +#X text 101 9 - convert lists to OSC packets; +#X listbox 583 354 34 0 0 0 - - - 0; +#X obj 261 287 oscformat cat horse pig; +#X obj 583 266 netreceive -u -b; +#X msg 583 211 listen 5000; +#X msg 595 239 listen 0; +#X text 662 238 stop listening; +#X text 580 187 packets from network; +#X text 668 211 listen on port 5000; +#X text 705 260 UDP packets \, binary output, f 13; +#X listbox 50 550 37 0 0 0 - - - 0; +#X obj 599 296 print OSC-packet; +#X obj 67 480 print OSC-packet; +#X text 27 78 Oscformat makes OSC (Open Sound Control) packets (byte +by byte) suitable for sending over the network via netsend (in UDP +binary mode). The OSC address (the strings between the slashes) are +given by the creation arguments or by "set" messages. Oscparse takes +lists of numbers interpreting them as the bytes in an OSC message and +outputs a list containing \, first \, the symbols making up the address +of the OSC packet \, and following that \, numbers and symbols as present +in the OSC message., f 113; +#X text 93 585 Note: there's no way using oscparse to distinguish between +floats and integers \, nor to see blobs unambiguously. OSC messages +may be combined in "bundles". If oscparse receives a bundle it simply +parses all the messages in the bundle in the order they appear \, and +ignores the bundle's time tag., f 99; +#X obj 111 673 fudiformat; +#N canvas 751 299 606 217 more-on-OSC 0; +#X text 37 41 OSC is a complicated networking protocol (FUDI \, as +used in netsend/netreceive is simpler and better but less widely used). +oscparse and oscformat make no attempt to deal with timetags or aggregates +of packets \, nor with streaming OSC. Also \, no attempt is made here +to clearly distinguish between the OSC address (symbols) and the following +data \, nor between blobs and lists of numbers - it is assumed that +you know what types the message should contain. You can alternatively +use the OSC objects from mrpeach which have more features than these. +, f 77; +#X restore 545 537 pd more-on-OSC; +#X obj 29 34 oscparse; +#X text 101 35 - parse OSC packets into Pd messages; +#N canvas 804 89 528 518 reference 0; +#X obj 8 52 cnv 5 500 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 151 cnv 2 500 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 188 cnv 2 500 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 284 cnv 5 500 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 368 cnv 5 500 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 7 420 cnv 2 500 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 6 493 cnv 5 500 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 28 19 oscformat; +#X obj 28 337 oscparse; +#X text 116 66 list - list to format into a OSC packet.; +#X text 74 86 set - set one or more addresses.; +#X text 138 253 1) list - list of one or more addresses; +#X text 95 382 list - OSC packet to convert to Pd list messages.; +#X text 117 429 list - Pd list messages from OSC packets., f 42; +#X text 39 109 format -; +#X text 164 109 characters set format types: 'b' (blob) \, 'i' (integer) +\, 'f' (float) or 's' (string)., f 43; +#X text 99 218 -f : sets format as in the 'format' message +; +#X obj 9 212 cnv 1 500 1 empty empty flag: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 243 cnv 1 500 1 empty empty args: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 8 459 cnv 2 500 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X text 116 161 list - converted OSC packet from lists.; +#X text 103 18 - convert lsts to OSC packets.; +#X text 93 337 - parse OSC packets into Pd list messages.; +#X text 139 470 NONE; +#X restore 701 30 pd reference; +#X text 795 30 <= click; +#X obj 7 65 cnv 1 880 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 20 176 OSC messages with numbers and => symbols. Except as +shown below the message will contain 'float' and 'string' data., f +32; +#X text 218 424 If a format is given (via the '-f' flag or 'format' +message) oscformat interprets incoming data as integer \, float \, +string \, or 'blob'. Blobs are given as an atom count followed by that +number of elements. (If an elements is a symbol \, its first byte is +sent). If the count is negative \, the entire remaining message is +included in the blob (but the OSC parser will report the actual number +of elements). If the elements aren't exhausted at the end of the format +string \, the default (float and symbol) conversions are made for the +rest., f 87; +#X obj 6 649 cnv 1 880 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X connect 0 0 9 0; +#X connect 1 0 30 0; +#X connect 2 0 30 0; +#X connect 3 0 30 0; +#X connect 4 0 29 0; +#X connect 5 0 30 0; +#X connect 6 0 38 0; +#X connect 7 0 9 0; +#X connect 8 0 9 0; +#X connect 9 0 6 0; +#X connect 9 0 40 0; +#X connect 10 0 9 0; +#X connect 11 0 9 0; +#X connect 13 0 14 0; +#X connect 15 0 14 0; +#X connect 21 0 9 0; +#X connect 30 0 14 0; +#X connect 31 0 4 0; +#X connect 31 0 39 0; +#X connect 32 0 31 0; +#X connect 33 0 31 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/osc~-help.pd puredata-0.52.2+ds0/doc/5.reference/osc~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/osc~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/osc~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,38 +1,67 @@ -#N canvas 624 118 622 510 12; +#N canvas 495 23 567 530 12; #X declare -stdpath ./; -#X floatatom 161 138 0 0 0 0 - - - 0; -#X text 357 378 see also:; -#X obj 429 405 cos~; -#X obj 478 405 tabread4~; -#X obj 85 18 osc~; -#X text 120 18 - cosine wave oscillator; -#X obj 209 249 metro 500; -#X obj 359 405 phasor~; +#X floatatom 123 144 5 0 0 0 - - - 0; +#X text 18 491 see also:; +#X obj 149 491 cos~; +#X obj 185 491 tabread4~; +#X obj 27 18 osc~; +#X text 62 18 - cosine wave oscillator; +#X obj 171 255 metro 500; +#X obj 89 491 phasor~; #N canvas 0 50 450 250 (subpatch) 0; #X array \$0-array 200 float 0; #X coords 0 -1 199 1 200 100 1; -#X restore 104 371 graph; -#X text 345 442 updated for Pd version 0.33; -#X obj 191 281 tabwrite~ \$0-array; -#X text 234 170 <= creation argument sets initial frequency; -#X obj 103 251 output~; -#X obj 209 229 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X restore 66 345 graph; +#X text 343 492 updated for Pd version 0.33; +#X obj 153 287 tabwrite~ \$0-array; +#X text 196 176 <= creation argument sets initial frequency; +#X obj 65 257 output~; +#X obj 171 235 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X obj 161 170 osc~ 440; -#X text 232 227 <= graph; -#X text 60 57 The osc~ object outputs a cosine wave. The frequency +#X obj 123 176 osc~ 440; +#X text 194 233 <= graph; +#X text 30 66 The osc~ object outputs a cosine wave. The frequency input can be either a float or a signal. The right inlet resets the phase with values from 0 to 1 (where '1' is the same as '0' and '0.5' is half the cycle)., f 72; -#X msg 214 138 0; -#X text 283 137 <= reset phase; -#X msg 248 138 0.5; -#X text 59 137 set frequency; -#X obj 355 222 sig~ 440; -#X text 426 238 <= signal controlling; -#X text 449 255 the frequency; -#X obj 355 251 osc~; -#X obj 452 15 declare -stdpath ./; +#X msg 176 144 0; +#X text 245 143 <= reset phase; +#X msg 210 144 0.5; +#X text 21 143 set frequency; +#X obj 317 228 sig~ 440; +#X text 388 244 <= signal controlling; +#X text 411 261 the frequency; +#X obj 317 257 osc~; +#X obj 392 410 declare -stdpath ./; +#N canvas 731 147 586 252 reference 0; +#X obj 18 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 18 153 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 18 190 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 227 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 47 18 osc~; +#X text 82 18 - cosine wave oscillator; +#X text 126 163 signal - cosine waveform (in the range of -1 to 1). +, f 54; +#X text 119 91 signal -; +#X obj 17 115 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 17 85 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 126 124 float -; +#X text 183 124 phase cycle reset (from 0 to 1)., f 46; +#X text 183 91 frequency value in Hz., f 46; +#X text 134 199 1) float - initial frequency value in Hz (default 0). +; +#X restore 379 17 pd reference; +#X text 477 18 <= click; +#X obj 8 49 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 7 473 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 0 0 14 0; #X connect 6 0 10 0; #X connect 13 0 6 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/oscparse-help.pd puredata-0.52.2+ds0/doc/5.reference/oscparse-help.pd --- puredata-0.52.1+ds0/doc/5.reference/oscparse-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/oscparse-help.pd 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ -#N canvas 663 58 642 661 12; -#X text 47 606 see also:; -#X obj 135 606 oscformat; -#X obj 219 606 netreceive; -#X text 401 604 updated for Pd version 0.46; -#X obj 309 606 list; -#X obj 360 428 netreceive -u -b; -#X msg 360 373 listen 5000; -#X msg 372 401 listen 0; -#X text 439 400 stop listening; -#X msg 48 394 1 2 3 foo 5; -#X text 42 369 numbers and symbols; -#X obj 48 419 oscformat dog cat; -#X obj 193 419 oscformat -f b weasel; -#X msg 193 394 -1 1 2 3 4 5; -#X text 205 369 a blob; -#X text 357 349 packets from network; -#X text 445 373 listen on port 5000; -#X text 482 422 UDP packets \, binary output, f 13; -#X text 52 54 oscparse take incoming lists of numbers \, interpreting -them as the bytes in an OSC message. The output is a list containing -\, first \, the symbols making up the address of the OSC packet \, -and following that \, numbers and symbols as present in the OSC message. -OSC messages may contain 'float' \, 'int' \, 'string' \, or 'blob' -elements. Blobs are arrays of bytes (numbers between 0 and 255) and -are copied to the output preceded by the blob's byte count., f 75 -; -#X text 54 155 OSC is a complicated networking protocol (FUDI \, as -used in netsend/netreceive is simpler and better but less widely used). -oscparse and oscformat make no attempt to deal with timetags or aggregates -of packets \, nor with streaming OSC. Also \, no attempt is made here -to clearly distinguish between the OSC address (symbols) and the following -data \, nor between blobs and lists of numbers - it is assumed that -you know what types the message should contain. You can alternatively -use the OSC objects from mrpeach which have more features than these. -, f 77; -#X text 54 285 OSC messages may be combined in "bundles". If oscparse -receives a bundle it simply parses all the messages in the bundle in -the order they appear \, and ignores the bundle's time tag., f 77 -; -#X obj 47 14 oscparse; -#X text 117 15 - parse Open Sound Control (OSC) packets into Pd messages -, f 58; -#X listbox 49 485 80 0 0 0 - - - 0; -#X obj 49 533 oscparse; -#X obj 49 556 print parse-output; -#X obj 128 527 print packet; -#X connect 5 0 23 0; -#X connect 6 0 5 0; -#X connect 7 0 5 0; -#X connect 9 0 11 0; -#X connect 11 0 23 0; -#X connect 12 0 23 0; -#X connect 13 0 12 0; -#X connect 23 0 24 0; -#X connect 23 0 26 0; -#X connect 24 0 25 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/otherbinops-help.pd puredata-0.52.2+ds0/doc/5.reference/otherbinops-help.pd --- puredata-0.52.1+ds0/doc/5.reference/otherbinops-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/otherbinops-help.pd 1970-01-01 00:00:00.000000000 +0000 @@ -1,166 +0,0 @@ -#N canvas 643 33 646 892 12; -#X floatatom 118 630 4 0 0 0 - - - 0; -#X obj 195 602 <; -#X obj 119 127 &&; -#X obj 160 126 ||; -#X obj 363 602 &; -#X obj 401 602 |; -#X obj 118 602 >; -#X obj 158 602 >=; -#X obj 270 602 ==; -#X obj 232 602 <=; -#X floatatom 363 470 5 0 0 0 - - - 0; -#X obj 363 500 t b f; -#X text 147 443 set left and right inputs here; -#X floatatom 483 630 7 0 0 0 - - - 0; -#X obj 483 602 <<; -#X obj 441 602 >>; -#X obj 309 602 !=; -#X obj 32 20 >; -#X obj 60 20 >=; -#X obj 116 20 <=; -#X obj 88 20 <; -#X obj 145 20 ==; -#X obj 173 20 !=; -#X obj 422 702 == 0; -#X obj 475 702 < 5; -#X obj 201 20 div; -#X obj 399 20 mod; -#X floatatom 98 289 4 0 0 0 - - - 0; -#X floatatom 56 288 4 0 0 0 - - - 0; -#X floatatom 98 195 4 0 0 0 - - - 0; -#X obj 56 260 div; -#X obj 98 222 t b f; -#X obj 98 261 mod; -#X text 399 846 Updated for Pd version 0.47; -#X obj 57 793 +; -#X text 44 765 see also:; -#X floatatom 118 470 5 0 0 0 - - - 0; -#X obj 230 20 &&; -#X obj 258 20 ||; -#X obj 286 20 &; -#X obj 314 20 |; -#X obj 342 20 <<; -#X obj 371 20 >>; -#X floatatom 56 195 4 0 0 0 - - - 0; -#X obj 520 702 div 3; -#X obj 56 850 expr; -#X text 97 851 - evaluation expressions, f 25; -#X obj 57 820 sin; -#X obj 91 820 log; -#X text 123 821 (etc) - math functions; -#X text 92 792 (etc) - binary arithmetic operators; -#X obj 119 69 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 -#000000 0 1; -#X obj 160 90 t b f; -#X obj 160 69 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 -#000000 0 1; -#X obj 119 152 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 -#000000 0 1; -#X obj 160 152 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 -#000000 0 1; -#X text 30 96 Logical operators:, f 10; -#X text 227 108 || ('or) outputs 1 if either one is nonzero., f 46 -; -#X text 430 19 - other binary operations; -#X text 218 134 note these expect integer input \, so 0.5 or -0.5 are -truncated to '0' and not considered 'nonzero'.; -#X text 51 685 All of these objects can have a creation argument to -initialize the right inlet. They also all take a bang message to evaluate -the operation with the previously set values., f 49; -#X text 227 74 && ('and') outputs 1 if both inputs are nonzero and -0 otherwise., f 47; -#X text 157 209 div and mod do integer division \, where div outputs -the integer quotient and mod outputs the remainder (modulus). In addition -the "%" operator (provided for back compatibility) is like "mod" but -acts differently for negative inputs (and might act variously depending -on CPU design)., f 62; -#X obj 439 283 %; -#X text 469 284 - deprecated; -#X text 37 329 The bitwise operators "&" and "|" perform "and" and -"or" on each bit of the inputs considered as binary numbers. the ">>" -and "<<" objects perform left and right signed bit shifts. These also -expect integer input and truncate float values., f 82; -#X text 32 382 Relational operators ('>' greater than \, '==' equals -\, '!=' not equals etc.) output 1 or 0 depending on whether the relation -is true or false. Unlike the previous ones \, these can deal with float -input., f 84; -#X floatatom 195 630 4 0 0 0 - - - 0; -#X floatatom 158 630 4 0 0 0 - - - 0; -#X floatatom 270 630 4 0 0 0 - - - 0; -#X floatatom 232 630 4 0 0 0 - - - 0; -#X floatatom 401 630 4 0 0 0 - - - 0; -#X floatatom 363 630 4 0 0 0 - - - 0; -#X floatatom 441 630 4 0 0 0 - - - 0; -#X floatatom 309 630 4 0 0 0 - - - 0; -#X floatatom 422 676 4 0 0 0 - - - 0; -#X floatatom 475 676 4 0 0 0 - - - 0; -#X floatatom 520 676 4 0 0 0 - - - 0; -#X floatatom 422 729 4 0 0 0 - - - 0; -#X floatatom 475 729 4 0 0 0 - - - 0; -#X floatatom 520 729 4 0 0 0 - - - 0; -#X connect 1 0 67 0; -#X connect 2 0 54 0; -#X connect 3 0 55 0; -#X connect 4 0 72 0; -#X connect 5 0 71 0; -#X connect 6 0 0 0; -#X connect 7 0 68 0; -#X connect 8 0 69 0; -#X connect 9 0 70 0; -#X connect 10 0 11 0; -#X connect 11 0 6 0; -#X connect 11 0 16 0; -#X connect 11 0 15 0; -#X connect 11 0 14 0; -#X connect 11 0 9 0; -#X connect 11 0 8 0; -#X connect 11 0 7 0; -#X connect 11 0 5 0; -#X connect 11 0 4 0; -#X connect 11 0 1 0; -#X connect 11 1 4 1; -#X connect 11 1 5 1; -#X connect 11 1 14 1; -#X connect 11 1 15 1; -#X connect 11 1 6 1; -#X connect 11 1 7 1; -#X connect 11 1 8 1; -#X connect 11 1 16 1; -#X connect 11 1 9 1; -#X connect 11 1 1 1; -#X connect 14 0 13 0; -#X connect 15 0 73 0; -#X connect 16 0 74 0; -#X connect 23 0 78 0; -#X connect 24 0 79 0; -#X connect 29 0 31 0; -#X connect 30 0 28 0; -#X connect 31 0 32 0; -#X connect 31 0 30 0; -#X connect 31 1 32 1; -#X connect 31 1 30 1; -#X connect 32 0 27 0; -#X connect 36 0 4 0; -#X connect 36 0 5 0; -#X connect 36 0 14 0; -#X connect 36 0 15 0; -#X connect 36 0 6 0; -#X connect 36 0 7 0; -#X connect 36 0 8 0; -#X connect 36 0 9 0; -#X connect 36 0 1 0; -#X connect 36 0 16 0; -#X connect 43 0 30 0; -#X connect 43 0 32 0; -#X connect 44 0 80 0; -#X connect 51 0 2 0; -#X connect 51 0 3 0; -#X connect 52 0 2 0; -#X connect 52 0 3 0; -#X connect 52 1 3 1; -#X connect 52 1 2 1; -#X connect 53 0 52 0; -#X connect 75 0 23 0; -#X connect 76 0 24 0; -#X connect 77 0 44 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/pack-help.pd puredata-0.52.2+ds0/doc/5.reference/pack-help.pd --- puredata-0.52.1+ds0/doc/5.reference/pack-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/pack-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,57 +1,102 @@ -#N struct template1 float x float y float z float q; -#N canvas 814 89 595 631 12; -#X floatatom 72 160 6 0 0 0 - - - 0; -#X msg 39 126 bang; -#X floatatom 127 245 5 0 0 0 - - - 0; -#X floatatom 237 272 5 0 0 0 - - - 0; -#X obj 72 356 print; -#X msg 182 245 symbol cat; -#X obj 108 16 pack; +#N canvas 562 39 595 622 12; +#X floatatom 69 168 6 0 0 0 - - - 0; +#X msg 36 134 bang; +#X floatatom 124 253 5 0 0 0 - - - 0; +#X floatatom 234 280 5 0 0 0 - - - 0; +#X obj 69 364 print; +#X msg 179 253 symbol cat; +#X obj 48 16 pack; #X obj 114 582 unpack; -#X msg 85 192 1 2 dog; -#X text 147 16 - combine several atoms into one message; -#X text 352 582 updated for Pd version 0.34; +#X msg 82 200 1 2 dog; +#X text 87 16 - combine several atoms into one message; +#X text 352 584 updated for Pd version 0.34; #X text 37 582 See also:; -#X text 152 189 <= you can also send a list as Pd distributes its elements +#X text 149 197 <= you can also send a list as Pd distributes its elements to the corresponding inlets., f 45; -#X obj 418 454 pack; -#X obj 418 420 t b f; -#X floatatom 418 394 6 0 0 0 - - - 0; -#X floatatom 365 394 6 0 0 0 - - - 0; -#X obj 418 507 print; -#X obj 121 531 print; -#X msg 121 400 a; -#X obj 121 473 pack s f; -#X floatatom 174 437 5 0 0 0 - - - 0; -#X text 156 395 pack accepts 'anythings' in the left inlet, f 24; -#X text 319 328 By default \, pack takes two floats. You can use trigger +#X obj 415 454 pack; +#X obj 415 420 t b f; +#X floatatom 415 394 6 0 0 0 - - - 0; +#X floatatom 362 394 6 0 0 0 - - - 0; +#X obj 415 507 print; +#X obj 118 531 print; +#X msg 118 400 a; +#X obj 118 473 pack s f; +#X floatatom 171 437 5 0 0 0 - - - 0; +#X text 153 395 pack accepts 'anythings' in the left inlet, f 24; +#X text 316 328 By default \, pack takes two floats. You can use trigger to force an output on secondary inlets., f 34; -#X text 28 459 abbreviated arguments =>, f 13; -#X text 461 419 <= trigger; -#X listbox 72 327 20 0 0 0 - - - 0; -#X listbox 121 504 20 0 0 0 - - - 0; -#X listbox 418 480 17 0 0 0 - - - 0; -#X obj 72 298 pack 10 100 symbol float; -#X text 286 242 <= numbers and symbols in the right inlets change the +#X text 25 459 abbreviated arguments =>, f 13; +#X text 458 419 <= trigger; +#X listbox 69 335 20 0 0 0 - - - 0; +#X listbox 118 504 20 0 0 0 - - - 0; +#X listbox 415 480 17 0 0 0 - - - 0; +#X obj 69 306 pack 10 100 symbol float; +#X text 283 250 <= numbers and symbols in the right inlets change the values without causing output., f 30; -#X text 80 126 <= outputs the packed elements; -#X text 120 159 <= first inlet generates output; +#X text 77 134 <= outputs the packed elements; +#X text 117 167 <= first inlet generates output; #X obj 169 582 trigger; -#N canvas 879 82 610 216 pointer 0; -#X obj 189 146 ../4.data.structures/01.scalars; -#X text 75 40 The [pack] object can pack a pointer into a list. A pointer +#N canvas 545 128 559 219 pointer 0; +#X text 55 22 The [pack] object can pack a pointer into a list. A pointer can be the location of a Data Structure scalar somewhere or the head of a Data Structure list. To know more about Data Structures \, how to handle pointers and see examples \, please refer to the 4.Data.Structure -section of the Pd's tutorials. Starting with the first example below. -, f 70; -#X restore 354 124 pd pointer; -#X text 435 124 <= about pointers; -#X text 21 48 The pack object outputs a concatenated list from a series +section of the Pd's tutorials., f 65; +#X obj 93 124 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000; +#N canvas 491 316 412 249 open 0; +#X obj 58 49 inlet; +#X obj 58 105 pdcontrol; +#X msg 58 78 dir; +#X msg 58 132 \; pd open 01.scalars.pd \$1/../4.data.structures; +#X connect 0 0 2 0; +#X connect 1 0 3 0; +#X connect 2 0 1 0; +#X restore 93 154 pd open; +#X text 117 123 <-- open first examle of the 4.Data.Structure section +; +#X connect 1 0 2 0; +#X restore 351 132 pd pointer; +#X text 432 132 <= about pointers; +#X text 18 56 The pack object outputs a concatenated list from a series of inputs. Creation arguments set the number of inlets and their type \, possible values are: float (or 'f') \, symbol (or 's') and pointer (or 'p') - see [pd pointer]. A number sets a numeric inlet and initializes the value ('float'/'f' initializes to 0)., f 79; +#X obj 8 46 cnv 1 575 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 660 81 569 367 reference 0; +#X obj 8 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 205 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 243 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 339 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 85 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 48 16 pack; +#X text 87 16 - combine several atoms into one message.; +#X text 143 215 list - the packed list., f 49; +#X text 77 61 (number depends on number of arguments); +#X obj 7 122 cnv 1 550 1 empty empty n: 8 12 0 13 #7c7c7c #000000 0 +; +#X text 55 130 anything -; +#X text 132 130 each inlet takes a message type according to its corresponding +creation argument. These can be float \, symbol and pointer. The 1st +inlet causes an output and can also match an 'anything' to a symbol. +, f 53; +#X text 81 94 bang - output the packed list., f 62; +#X text 109 269 list of types (defining the number of inlets). These +can be 'float/'f' \, 'symbol/'s' and 'pointer/'p'. A number sets a +numeric inlet and initializes the value \, 'float/f' initialized to +0 (default 0 0)., f 58; +#X text 41 268 1) list -; +#X restore 407 15 pd reference; +#X text 501 15 <= click; +#X obj 8 566 cnv 1 575 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 0 0 29 0; #X connect 1 0 29 0; #X connect 2 0 29 1; diff -Nru puredata-0.52.1+ds0/doc/5.reference/pdcontrol-help.pd puredata-0.52.2+ds0/doc/5.reference/pdcontrol-help.pd --- puredata-0.52.1+ds0/doc/5.reference/pdcontrol-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/pdcontrol-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,23 +1,23 @@ -#N canvas 613 87 776 518 12; -#X obj 153 18 pdcontrol; -#X text 532 472 updated for Pd version 0.50.; -#X obj 42 277 pdcontrol; -#X obj 42 334 print; -#X msg 50 152 isvisible; -#X msg 49 424 isvisible; -#N canvas 564 534 287 200 subpatch 0; -#X obj 39 39 inlet; -#X obj 39 91 pdcontrol; -#X obj 39 128 print; +#N canvas 557 44 727 512 12; +#X obj 37 19 pdcontrol; +#X text 483 477 updated for Pd version 0.50.; +#X obj 42 257 pdcontrol; +#X obj 42 314 print; +#X msg 280 324 isvisible; +#N canvas 568 591 287 200 subpatch 0; +#X obj 99 26 inlet; +#X obj 99 78 pdcontrol; +#X obj 99 152 outlet; +#X obj 110 112 print visibility; #X connect 0 0 1 0; #X connect 1 0 2 0; -#X restore 49 449 pd subpatch; -#X text 136 423 open and shut the subpatch to test "isvisible" message -; -#X text 131 150 1 if this patch is visible \, 0 if not; -#X msg 58 178 dir; -#X text 101 178 get directory this patch is in; -#X msg 64 218 dir 0 ../3.audio-examples/A00.intro.pd, f 32; +#X connect 1 0 3 0; +#X restore 280 349 pd subpatch; +#X text 130 331 open and shut the subpatch to test "isvisible" message +, f 19; +#X msg 58 158 dir; +#X text 101 158 get directory this patch is in; +#X msg 64 203 dir 0 ../3.audio-examples/A00.intro.pd, f 32; #N canvas 689 91 541 437 args 0; #X obj 103 254 print; #X text 161 141 <= get arguments; @@ -38,24 +38,57 @@ #X connect 2 0 6 0; #X connect 3 0 2 0; #X connect 6 0 0 0; -#X restore 45 376 pd args; -#X text 108 376 get the patch's arguments; +#X restore 367 422 pd args; #X text 244 121 open a URL in a browser; #X msg 42 122 browse http://msp.ucsd.edu; -#X text 307 204 Optional argument to specify this patch (0) \, owning +#X text 307 184 Optional argument to specify this patch (0) \, owning patch (1) \, its own owner (2) \, and so on \, and optionally also a filename relative to the patch's directory. (Ownership number is silently reduced if owners don't exist \, so here anything greater -than zero is ignored.), f 62; -#X text 80 60 pdcontrol lets you communicate with the patch to get -its owning directory \, arguments \, its visible/invisible state \, -or to open a URL in a web browser., f 75; -#X text 232 18 - communicate with pd and/or this patch; -#X listbox 42 305 80 0 0 0 - - - 0; -#X connect 2 0 19 0; -#X connect 4 0 2 0; -#X connect 5 0 6 0; +than zero is ignored.), f 55; +#X text 116 19 - communicate with pd and/or this patch; +#X floatatom 280 383 5 0 0 0 - - - 0; +#X text 152 422 get the patch's arguments =>; +#X text 60 67 pdcontrol lets you open a URL in a web browser or communicate +with the patch to get its owning directory \, arguments or its visible/invisible +state., f 76; +#X symbolatom 42 285 80 0 0 0 - - - 0; +#X obj 13 55 cnv 1 700 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 610 19 <= click; +#N canvas 648 157 718 300 reference 0; +#X obj 8 52 cnv 5 690 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 200 cnv 2 690 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 7 276 cnv 5 690 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 237 cnv 2 690 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X text 165 248 NONE, f 52; +#X obj 28 20 pdcontrol; +#X text 107 20 - communicate with pd and/or this patch; +#X text 77 65 browse - open a URL given by the symbol., f +53; +#X text 49 85 dir -; +#X text 120 133 isvisible - outputs float to specify if patch is visible +(1) or not (0)., f 80; +#X text 99 155 args -; +#X text 204 84 output owning patch's directory. Optional float sets +level (0 \, this patch \, 1 \, its owner \, and so on). Optional symbol +sets a folder relative to the directory., f 68; +#X text 204 155 outputs patch's argument. Optional float sets level +(0 \, this patch \, 1 \, its owner \, and so on)., f 68; +#X text 155 210 list - list of args \, dir symbol of visibility float. +; +#X restore 516 19 pd reference; +#X obj 13 463 cnv 1 700 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 329 384 1 if this patch is visible \, 0 if not., f 39; +#X connect 2 0 18 0; +#X connect 4 0 5 0; +#X connect 5 0 15 0; +#X connect 7 0 2 0; #X connect 9 0 2 0; -#X connect 11 0 2 0; -#X connect 15 0 2 0; -#X connect 19 0 3 0; +#X connect 12 0 2 0; +#X connect 18 0 3 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/pd-messages.pd puredata-0.52.2+ds0/doc/5.reference/pd-messages.pd --- puredata-0.52.1+ds0/doc/5.reference/pd-messages.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/pd-messages.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,5 +1,4 @@ -#N struct template1 float x float y float z float q; -#N canvas 371 60 1039 684 12; +#N canvas 247 23 1039 684 12; #X msg 716 131 dsp \$1; #X msg 604 144 \; pd dsp 0; #X obj 716 106 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 @@ -11,20 +10,20 @@ sets the behaviour of some objects back to that particular version. This can be useful in some cases if you want to guarantee that your patch will work in the same way as in the version you created it. This -is beccause sometimes a new version of Pd may promote a change in the +is because sometimes a new version of Pd may promote a change in the behaviour of the object (usually to fix a bug) that can also break or change the result of a patch., f 62; #X text 53 365 Objects that change their behaviour according to the -set compatibilty have that information in their help file.; -#X text 63 277 set compatibilty to Pd 0.52; +set compatibility have that information in their help file.; +#X text 63 277 set compatibility to Pd 0.52; #X text 291 266 set to Pd 0.49; #X text 125 411 For example \, check the help file of:, f 18; #X obj 276 420 wrap~; #X obj 277 542 trace; #X msg 72 534 \; pd set-tracing \$1; -#X obj 72 497 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X obj 72 495 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#N canvas 731 117 712 610 fast-forward 0; +#N canvas 654 117 712 610 fast-forward 0; #X msg 176 449 stop; #X obj 176 416 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; @@ -37,7 +36,7 @@ #X text 376 422 <=; #X text 152 381 =>; #X text 219 310 <= set other lengths; -#X text 83 311 miliseconds:; +#X text 83 311 milliseconds:; #X text 65 380 sends a bang after the time amount, f 12; #X text 86 449 stops the => recording, f 12; #X text 397 415 tells pd to 'fast-forward' and render a given amount @@ -63,14 +62,14 @@ an amount of audio faster than realtime (and as fast as your process can handle) - this is also called 'batch processing'. In this example we use it to record 6 seconds of amplitude modulation white noise into -an array., f 74; +an array., f 76; +#X text 439 367 start recording 2 seconds into the table, f 25; #X text 82 105 This is very useful if you want to process a pre recorded audio in a Pd patch or to generate an audio file with a generative (or automated) patch. You can also use [soundfiler] to export to a sound file or direcctly use [writesf~] instead. The 'fast-forward' -message takes a time in milisecond to fast forward to. Check the example -, f 74; -#X text 439 367 start recording 2 seconds into the table, f 25; +message takes a time in milliseconds to fast forward to. Check the +example, f 76; #X connect 0 0 17 0; #X connect 1 0 0 0; #X connect 2 0 5 0; @@ -149,7 +148,7 @@ 10 12 0 14 #e0e0e0 #404040 0; #X obj 584 551 cnv 15 420 27 empty empty (aka\\\ Dynamic\\\ patching): 117 12 0 14 #e0e0e0 #404040 0; -#N canvas 794 182 779 412 Dynamic-Patching 0; +#N canvas 587 182 779 412 Dynamic-Patching 0; #X text 99 166 For reference \, please check the help file of =>, f 25; #N canvas 311 74 659 663 creating-boxes 0; @@ -222,13 +221,10 @@ #X connect 9 0 8 0; #X restore 589 290 pd loadbang; #X obj 285 181 namecanvas; -#N canvas 438 311 592 531 Data-Structures 0; -#X text 70 109 For more on Data Structures \, check section 4.data.structures -in Pd's tutorial examples. See 1st example of the series below.; -#X obj 160 154 ../4.data.structures/01.scalars; -#X msg 141 451 clear; -#X msg 41 324 vis \$1; -#X obj 41 297 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#N canvas 461 65 592 579 Data-Structures 0; +#X msg 141 491 clear; +#X msg 41 364 vis \$1; +#X obj 41 337 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; #N canvas 523 391 191 85 ds2 0; #N canvas 50 470 557 157 template-toplevel 0; @@ -241,8 +237,8 @@ #X obj 58 83 drawpolygon 10 2 5 0 0 -5 -5 0 0 5 5 0; #X obj 59 48 struct template-element float x float y float w; #X restore 11 34 pd template-element; -#X restore 407 416 pd ds2; -#X text 62 295 show/hide; +#X restore 407 456 pd ds2; +#X text 62 335 show/hide; #N canvas 361 282 477 239 ds 0; #X obj 52 45 filledcurve 990 0 1 0 0 50 0 50 50 0 50; #X obj 52 72 drawcurve 0 1 15 15 20 15 20 20 15 20 15 15; @@ -250,35 +246,51 @@ #X obj 52 126 filledcurve 999 0 1 10 25 25 45 40 25 25 35 10 25; #X obj 54 17 struct ds float x float y symbol sym; #X obj 52 153 drawsymbol sym 55 25 0; -#X restore 456 361 pd ds; -#X msg 100 326 scalar ds 225 225 -hi_there!!; -#X text 317 322 add data structure scalar 'ds' (see [pd ds]) and 3 +#X restore 456 401 pd ds; +#X msg 100 366 scalar ds 225 225 -hi_there!!; +#X text 317 362 add data structure scalar 'ds' (see [pd ds]) and 3 fields., f 30; -#X msg 117 367 read ds-text.txt; -#X text 187 452 clean it up; -#X msg 127 392 write ds-text-2.txt; -#X obj 141 426 loadbang; -#N canvas 291 367 514 421 \$0-DS-example 0; -#X restore 337 272 pd \$0-DS-example; -#X obj 102 486 s pd-\$0-DS-example; -#X text 66 202 Note you can also use "\$0" to give local names to subpatches. +#X msg 117 407 read ds-text.txt; +#X text 187 492 clean it up; +#X msg 127 432 write ds-text-2.txt; +#X obj 141 466 loadbang; +#N canvas 164 235 514 421 \$0-DS-example 0; +#X restore 337 312 pd \$0-DS-example; +#X obj 102 526 s pd-\$0-DS-example; +#X text 66 242 Note you can also use "\$0" to give local names to subpatches. This is useful for abstractions in general. In this case we need to use [send] as "\$0" doesn't work in messages., f 61; #X text 70 14 A 'vis 1' message shows the window while 'vis 0' hides it. The 'read' and 'write' messages can be used to import and export contents of a window (used for Data Structures). The 'clear' message clears the contentes of a window whatever they are (objects \, Data -Sructures \, arrays \, anything). A 'scalar' message adds a Data Structure +Structures \, arrays \, anything). A 'scalar' message adds a Data Structure scalar to the window., f 62; -#X text 216 272 click to open =>; -#X text 271 391 read/write from/to text (see [pd ds2]); -#X connect 2 0 15 0; -#X connect 3 0 15 0; -#X connect 4 0 3 0; -#X connect 8 0 15 0; -#X connect 10 0 15 0; -#X connect 12 0 15 0; -#X connect 13 0 2 0; +#X text 216 312 click to open =>; +#X text 271 431 read/write from/to text (see [pd ds2]); +#X text 70 109 For more on Data Structures \, check section 4.data.structures +in Pd's tutorial examples.; +#X obj 91 166 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000; +#N canvas 491 316 412 249 open 0; +#X obj 58 49 inlet; +#X obj 58 105 pdcontrol; +#X msg 58 78 dir; +#X msg 58 132 \; pd open 01.scalars.pd \$1/../4.data.structures; +#X connect 0 0 2 0; +#X connect 1 0 3 0; +#X connect 2 0 1 0; +#X restore 91 196 pd open; +#X text 115 165 <-- open first examle of the 4.Data.Structure section +; +#X connect 0 0 13 0; +#X connect 1 0 13 0; +#X connect 2 0 1 0; +#X connect 6 0 13 0; +#X connect 8 0 13 0; +#X connect 10 0 13 0; +#X connect 11 0 0 0; +#X connect 19 0 20 0; #X restore 288 367 pd Data-Structures; #N canvas 691 48 597 554 (dis)connecting-boxes 0; #X obj 79 482 send pd-connect-boxes; @@ -316,7 +328,7 @@ #X connect 9 0 0 0; #X restore 545 93 pd (dis)connecting-boxes; #X text 593 244 loadbang handling:, f 9; -#N canvas 902 124 849 512 save 0; +#N canvas 509 124 849 512 save 0; #X msg 326 121 menusave; #X msg 367 171 menusaveas; #X msg 386 221 menuclose; @@ -368,12 +380,12 @@ to the name of the file (which communicates to the main window of a patch or abstraction). You can also communicate with a subpatch's window by sending messages to the subpatch's name. In both cases you need -to preceed the send name with 'pd-'. In the case of abstractions \, +to precede the send name with 'pd-'. In the case of abstractions \, you also need to end with ".pd". Alternatively you can name a main window or a subpatch with [namecanvas]. For reference \, please refer to the help file of [namecanvas] \, which carries complementary information! , f 65; -#N canvas 644 327 801 383 abstractions 0; +#N canvas 565 327 801 383 abstractions 0; #X text 46 29 You can create abstractions just like you would create any other object in Pd! All you need to do is have the name of the abstraction as the object name., f 48; diff -Nru puredata-0.52.1+ds0/doc/5.reference/phasor~-help.pd puredata-0.52.2+ds0/doc/5.reference/phasor~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/phasor~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/phasor~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,45 +1,74 @@ -#N canvas 787 60 588 575 12; +#N canvas 564 37 572 616 12; #N canvas 0 22 450 278 (subpatch) 0; #X array phasor 4410 float 0; #X coords 0 1 4409 -1 200 100 1 0 0; -#X restore 85 432 graph; -#X floatatom 75 220 0 -100 100 0 - - - 0; -#X obj 69 16 phasor~; -#X text 369 435 see also:; -#X obj 368 462 osc~; -#X obj 411 462 cos~; -#X obj 453 462 tabread4~; -#X text 351 509 updated for Pd version 0.33; -#X text 201 375 <= graph the output; -#X text 176 242 <= right inlet resets phase, f 14; -#X text 104 218 <= specify frequency; -#X text 137 17 - phase ramp generator; -#X msg 142 247 0; -#X obj 95 347 metro 100; -#X obj 75 274 phasor~ 10; +#X restore 78 433 graph; +#X floatatom 106 211 5 -100 100 0 - - - 0; +#X obj 29 16 phasor~; +#X text 24 580 see also:; +#X obj 98 579 osc~; +#X obj 141 579 cos~; +#X obj 183 579 tabread4~; +#X text 340 579 updated for Pd version 0.33; +#X text 232 375 <= graph the output; +#X text 205 243 <= right inlet resets phase, f 14; +#X text 149 211 <= specify frequency; +#X text 97 17 - phase ramp generator; +#X msg 173 243 0; +#X obj 126 347 metro 100; +#X obj 106 274 phasor~ 10; #X text 41 56 The phasor~ object outputs phase ramps whose values are from 0 to 1 and it repeats this cycle depending on the frequency input. It looks like a sawtooth signal but it's traditionally used for table lookup via cos~ or tabread4~. The frequency input can be either a float or a signal. Positive frequency values generate upwards ramps and negative values generate downwards ramps., f 69; -#X msg 108 247 0.5; +#X msg 139 243 0.5; #X text 42 149 The right inlet resets the phase with values from 0 to 1 (where '1' is the same as '0' and '0.5' is half the cycle)., f 69; -#X text 61 524 -1; -#X text 68 479 0; -#X text 69 425 1; -#X obj 75 373 tabwrite~ phasor; -#X obj 264 331 phasor~; -#X obj 264 302 sig~ 440; -#X text 335 318 <= signal controlling; -#X text 358 335 the frequency; -#X obj 95 316 loadbang; -#X msg 324 237 \; pd dsp \$1; -#X obj 324 212 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X text 54 523 -1; +#X text 61 477 0; +#X text 62 426 1; +#X obj 106 373 tabwrite~ phasor; +#X obj 295 331 phasor~; +#X obj 295 302 sig~ 440; +#X text 366 318 <= signal controlling; +#X text 389 335 the frequency; +#X obj 126 316 loadbang; +#X msg 355 237 \; pd dsp \$1; +#X obj 355 212 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 344 211 DSP on/off; +#X text 375 211 DSP on/off; +#N canvas 731 147 586 252 reference 0; +#X obj 18 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 18 153 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 18 190 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 227 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 119 91 signal -; +#X obj 17 115 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 17 85 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 126 124 float -; +#X text 183 124 phase cycle reset (from 0 to 1)., f 46; +#X obj 54 16 phasor~; +#X text 122 17 - phase ramp generator.; +#X text 183 91 frequency value in Hz., f 46; +#X text 126 163 signal - phase ramp (in the range of 0 to 1)., f 54 +; +#X text 124 199 1) float - initial frequency value in Hz (default 0). +; +#X restore 379 17 pd reference; +#X text 477 18 <= click; +#X obj 8 49 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 7 565 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 1 0 14 0; #X connect 12 0 14 1; #X connect 13 0 21 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/pipe-help.pd puredata-0.52.2+ds0/doc/5.reference/pipe-help.pd --- puredata-0.52.1+ds0/doc/5.reference/pipe-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/pipe-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,102 +1,143 @@ -#N canvas 514 69 824 665 12; -#X floatatom 63 140 0 0 0 0 - - -; -#X floatatom 123 267 0 0 0 0 - - -; -#X floatatom 63 334 0 0 0 0 - - -; -#X floatatom 612 454 0 0 0 0 - - -; -#X floatatom 601 567 0 0 0 0 - - -; -#X obj 612 480 t f f f; -#X obj 635 511 + 1; -#X obj 669 510 + 2; -#X floatatom 652 565 0 0 0 0 - - -; -#X floatatom 703 566 0 0 0 0 - - -; -#X text 367 618 see also:; -#X obj 63 300 pipe 2000; -#X text 95 140 numbers to store and output later; -#X text 119 166 output all stored messages immediately; -#X msg 74 167 flush; -#X msg 84 195 clear; -#X text 128 196 forget all stored messages; -#X text 102 336 delayed output; -#X obj 442 619 delay; -#X obj 493 619 timer; -#X text 159 268 set delay time; -#X text 569 618 updated for Pd version 0.33; -#X obj 50 16 pipe; -#X text 89 15 - message "delay line"; -#X obj 63 371 print pipe; -#X obj 96 228 bng 18 250 50 0 empty empty empty 17 7 0 10 -262144 -1 --1; -#X symbolatom 135 596 10 0 0 0 - - -; -#X msg 136 496 symbol ahoy; -#X msg 152 528 symbol cheers; -#X obj 135 627 print; -#X text 140 292 a single float creation argument initializes delay +#N canvas 519 25 797 702 12; +#X obj 603 526 t f f f; +#X obj 626 557 + 1; +#X obj 660 556 + 2; +#X text 40 670 see also:; +#X obj 63 312 pipe 2000; +#X text 105 152 numbers to store and output later; +#X msg 74 179 flush; +#X msg 84 207 clear; +#X text 108 347 delayed output; +#X obj 115 671 delay; +#X obj 166 671 timer; +#X text 169 280 set delay time; +#X text 561 670 updated for Pd version 0.33; +#X obj 45 16 pipe; +#X text 84 15 - message "delay line"; +#X obj 63 380 print pipe; +#X obj 96 240 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000; +#X symbolatom 135 586 13 0 0 0 - - - 0; +#X msg 136 491 symbol ahoy; +#X msg 152 523 symbol cheers; +#X obj 135 617 print; +#X text 140 304 a single float creation argument initializes delay time (0 by default), f 37; -#X text 120 222 bang outputs the last received message after the delay +#X text 120 234 bang outputs the last received message after the delay time, f 30; -#X floatatom 545 142 0 0 0 0 - - -; -#X floatatom 545 312 0 0 0 0 - - -; -#X floatatom 610 312 0 0 0 0 - - -; -#X obj 583 479 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 --1 -1; -#X obj 601 539 pipe 5 6 7 1000; -#X obj 545 175 t f f b, f 12; -#X msg 631 214 symbol stop; -#X obj 588 214 + 1; -#X symbolatom 675 312 10 0 0 0 - - -; -#X floatatom 675 245 5 0 0 0 - - -; -#X text 718 245 delay time; -#X floatatom 272 528 0 0 0 0 - - -; -#X text 305 528 set delay time; -#X text 24 48 The [pipe] object stores a sequence of messages and outputs +#X obj 574 525 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#X obj 592 585 pipe 5 6 7 1000; +#X obj 517 225 t f f b, f 12; +#X msg 603 264 symbol stop; +#X obj 560 264 + 1; +#X symbolatom 647 362 10 0 0 0 - - - 0; +#X floatatom 647 295 5 0 0 0 - - - 0; +#X text 690 295 delay time; +#X floatatom 272 523 5 0 0 0 - - - 0; +#X text 315 523 set delay time; +#X text 24 60 The [pipe] object stores a sequence of messages and outputs them after a specified delay time in milliseconds. The output is scheduled when storing the incoming message. Thus changing the delay time doesn't affect the messages that are already scheduled., f 58; -#X obj 135 558 pipe s 1000, f 20; -#X text 24 407 You can specify the data type with a first argument +#X obj 135 553 pipe s 1000, f 20; +#X text 24 413 You can specify the data type with a first argument (which is a float by default). A symbol argument "s" \, "f" \, or "p" specifies a "symbol" \, "float" (number) \, or pointer type (untested). The delay time comes then as the last argument.; -#X obj 545 274 pipe f f s 1000, f 19; -#X text 475 17 You can specify compound messages (lists) by adding +#X obj 517 324 pipe f f s 1000, f 19; +#X text 466 67 You can specify compound messages (lists) by adding more than one argument. Again \, the delay time comes as the last argument and is also changed by the last inlet., f 42; -#X text 502 355 A float value can be used to set a float type and also +#X text 493 405 A float value can be used to set a float type and also initialize its value. In the example below you can test the initialized values with the bang message., f 36; -#X msg 459 215 50 70 hey; -#X text 475 82 A list input is possible in this example as Pd can distribute -its elements to the inlets., f 42; -#X connect 0 0 11 0; -#X connect 1 0 11 1; -#X connect 2 0 24 0; -#X connect 3 0 5 0; -#X connect 5 0 36 0; -#X connect 5 1 6 0; -#X connect 5 2 7 0; -#X connect 6 0 36 1; -#X connect 7 0 36 2; -#X connect 11 0 2 0; -#X connect 14 0 11 0; -#X connect 15 0 11 0; -#X connect 25 0 11 0; -#X connect 26 0 29 0; -#X connect 27 0 46 0; -#X connect 28 0 46 0; -#X connect 32 0 37 0; -#X connect 35 0 36 0; -#X connect 36 0 4 0; -#X connect 36 1 8 0; -#X connect 36 2 9 0; -#X connect 37 0 48 0; -#X connect 37 1 39 0; -#X connect 37 2 38 0; -#X connect 38 0 48 2; -#X connect 39 0 48 1; -#X connect 41 0 48 3; -#X connect 43 0 46 1; -#X connect 46 0 26 0; -#X connect 48 0 33 0; -#X connect 48 1 34 0; -#X connect 48 2 40 0; -#X connect 51 0 48 0; +#X msg 431 265 50 70 hey; +#X text 466 132 A list input is possible in this example as Pd can +distribute its elements to the inlets., f 42; +#X floatatom 123 279 5 0 0 0 - - - 0; +#X floatatom 63 152 5 0 0 0 - - - 0; +#X floatatom 517 192 5 0 0 0 - - - 0; +#X floatatom 517 362 5 0 0 0 - - - 0; +#X floatatom 582 362 5 0 0 0 - - - 0; +#X floatatom 592 613 5 0 0 0 - - - 0; +#X floatatom 643 613 5 0 0 0 - - - 0; +#X floatatom 694 613 5 0 0 0 - - - 0; +#X floatatom 63 346 5 0 0 0 - - - 0; +#X floatatom 603 500 5 0 0 0 - - - 0; +#X obj 11 49 cnv 1 780 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 785 120 578 440 reference 0; +#X obj 8 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 249 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 319 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 408 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 215 cnv 1 550 1 empty empty rightmost: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 7 85 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 45 16 pipe; +#X text 84 15 - message "delay line".; +#X text 132 92 bang - sends the last received data after the delay +time.; +#X text 125 112 flush - sends the scheduled messages immediately.; +#X text 125 132 clear - forget all scheduled messages.; +#X text 143 223 float - set the delay time in ms., f 49; +#X text 83 253 'number of inlets depends on creation arguments); +#X text 49 182 float/symbol/pointer - the type depends on the creation +argument., f 65; +#X obj 7 157 cnv 1 550 1 empty empty n: 8 12 0 13 #7c7c7c #000000 0 +; +#X text 33 160 - number of inlets depends on creation arguments); +#X text 53 290 float/symbol/pointer - the type depends on the creation +argument., f 65; +#X text 109 329 1) list -; +#X text 181 330 (optional) symbols sets number of inlets and type (f +default \, s \, p) and floats set float type and initial value., f +49; +#X text 102 381 2) float - sets delay time in ms (default 0).; +#X obj 6 281 cnv 1 550 1 empty empty n: 8 12 0 13 #7c7c7c #000000 0 +; +#X restore 503 16 pd reference; +#X text 597 15 <= click; +#X obj 10 653 cnv 1 780 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 119 178 output all scheduled messages immediately; +#X text 128 208 forget all scheduled messages; +#X connect 0 0 24 0; +#X connect 0 1 1 0; +#X connect 0 2 2 0; +#X connect 1 0 24 1; +#X connect 2 0 24 2; +#X connect 4 0 49 0; +#X connect 6 0 4 0; +#X connect 7 0 4 0; +#X connect 16 0 4 0; +#X connect 17 0 20 0; +#X connect 18 0 34 0; +#X connect 19 0 34 0; +#X connect 23 0 24 0; +#X connect 24 0 46 0; +#X connect 24 1 47 0; +#X connect 24 2 48 0; +#X connect 25 0 36 0; +#X connect 25 1 27 0; +#X connect 25 2 26 0; +#X connect 26 0 36 2; +#X connect 27 0 36 1; +#X connect 29 0 36 3; +#X connect 31 0 34 1; +#X connect 34 0 17 0; +#X connect 36 0 44 0; +#X connect 36 1 45 0; +#X connect 36 2 28 0; +#X connect 39 0 36 0; +#X connect 41 0 4 1; +#X connect 42 0 4 0; +#X connect 43 0 25 0; +#X connect 49 0 15 0; +#X connect 50 0 0 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/plot-help.pd puredata-0.52.2+ds0/doc/5.reference/plot-help.pd --- puredata-0.52.1+ds0/doc/5.reference/plot-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/plot-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -4,86 +4,138 @@ #N struct help-plot-array1-template float y; #N struct help-plot-array2-template float x float y; #N struct help-plot-array3-template float y float w; -#N canvas 787 129 507 279 12; -#N canvas 758 200 927 574 help-plot-template 0; -#X obj 595 34 plot curve array2 70 3 100 0; -#X obj 76 437 plot array1 500 1 10 15 20; -#X obj 529 495 filledpolygon 509 509 0 -10 -10 10 -10 10 10 -10 10 +#N canvas 641 86 520 284 12; +#N canvas 617 211 896 557 help-plot-template 0; +#X obj 572 39 plot curve array2 70 3 100 0; +#X obj 506 500 filledpolygon 509 509 0 -10 -10 10 -10 10 10 -10 10 ; -#X text 555 436 To see the data itself \, select "properties" for the +#X text 532 441 To see the data itself \, select "properties" for the scalar by right clicking on the purple square., f 43; -#X obj 539 341 struct help-plot-template float x float y array array1 +#X obj 516 346 struct help-plot-template float x float y array array1 help-plot-array1-template array array2 help-plot-array2-template array array3 help-plot-array3-template, f 41; -#X text 543 316 here's the "struct" for all this:; -#X text 49 61 Optional flags:; -#X text 48 84 - "-n" flag to make invisible initially or "-v [name]" -to assign a field name variable to make this visible/invisible (inutilized -inlet input for that) \; - optional "-vs [constant or name]" to set -visibility of scalars along the path of the plot \; - "-e" [const or -name]" to enable/disable editing \; - "-x [name]" to use different -field name for x \; - "-y [name]" to use different field name for y -\; - "-w [name]" to use different field name for w; -#X text 44 227 Arguments:; -#X text 45 28 Creation arguments:; -#X obj 596 200 plot curve array3 9 1 120 50 20; -#X msg 43 390 1; -#X msg 76 390 0; -#X text 131 410 (if no -v [field name] flag was given); -#X text 59 468 This plots a red trace (500) of width 1 starting at +#X text 520 321 here's the "struct" for all this:; +#X text 36 36 Optional flags:; +#X text 41 239 Arguments:; +#X text 32 9 Creation arguments:; +#X obj 573 205 plot curve array3 9 1 120 50 20; +#X msg 50 382 1; +#X msg 83 382 0; +#X text 138 402 (if no -v [field name] flag was given); +#X text 66 460 This plots a red trace (500) of width 1 starting at point (10 \, 15). Horizontal spacing is 20 and the black diamonds come from the template of the array1 element itself. Check the template -of arrray1 in the subpatch named "help-plot-array1-template"., f 54 +of array1 in the subpatch named "help-plot-array1-template"., f 54 ; -#X text 521 67 This plots a curved green spiral with: color 70 \, line +#X text 498 72 This plots a curved green spiral with: color 70 \, line width 3 \, location (100 \, 0). Open the subpatch named "help-plot-array2-template" to check the template for "array2". Since the template contains an "x" variable \, [plot] ignores x spacing requests and takes x from the data itself., f 52; -#X text 529 230 This draws the blue array. If a "w" variable is present +#X text 506 235 This draws the blue array. If a "w" variable is present in the template as for array3 (see the subpatch help-plot-array3-template) \, it is added to the line width., f 50; -#X text 110 390 <= inlet sets visibility (1: visible \, 0: invisible) +#X text 117 382 <= inlet sets visibility (1: visible \, 0: invisible) ; -#X text 50 255 - optional word "curve" to specify Bezier curve \; - +#X text 57 257 - optional word "curve" to specify Bezier curve \; - field to plot the array \; - color (0=black \, 999=white \, 900=red \, 90=green \, 9=blue \, 555=grey \, etc.) \; - line width \; - relative x and y location \; - x spacing; -#X connect 11 0 1 0; -#X connect 12 0 1 0; -#X restore 242 88 pd help-plot-template; -#N canvas 565 310 478 238 help-plot-array1-template 0; +#X obj 83 429 plot array1 500 1 10 15 20; +#X text 55 59 "-c": sets to Bezier curve plot \; - "-n" flag to make +invisible initially or "-v [name]" to assign a field name variable +to make this visible/invisible (inutilized inlet input for that) \; +- optional "-v [constant or name]" to set visibility of array \; - +optional "-vs [constant or name]" to set visibility of scalars along +the path of the plot \; - "-e" [const or name]" to enable/disable editing +\; - "-x [name]" to use different field name for x \; - "-y [name]" +to use different field name for y \; - "-w [name]" to use different +field name for w; +#X connect 9 0 17 0; +#X connect 10 0 17 0; +#X restore 242 93 pd help-plot-template; +#N canvas 565 310 476 286 help-plot-array1-template 0; #X obj 88 182 filledpolygon 0 0 0 -5 0 0 5 5 0 0 -5; #X obj 82 79 struct help-plot-array1-template float y; #X text 62 25 template for array1 \, contains only a "y' field for the value of "y" in the array., f 51; #X text 110 139 This adds a diamond shape to each element in the array , f 28; -#X restore 242 111 pd help-plot-array1-template; +#X restore 242 116 pd help-plot-array1-template; #N canvas 575 374 436 219 help-plot-array2-template 0; #X obj 37 131 struct help-plot-array2-template float x float y; #X text 26 32 template for array2. This also contains a "x' field for the 'x' spacing of elements \, so you can drag/set them anywhere and the 'x' spacing argument is ignored in [plot]., f 53; -#X restore 242 133 pd help-plot-array2-template; -#X text 21 215 see also:; -#X obj 97 207 drawnumber; -#X obj 45 22 plot; -#X obj 175 207 drawpolygon; +#X restore 242 138 pd help-plot-array2-template; +#X text 21 225 see also:; +#X obj 97 217 drawnumber; +#X obj 25 20 plot; +#X obj 175 217 drawpolygon; #N canvas 558 450 511 187 help-plot-array3-template 0; #X obj 83 108 struct help-plot-array3-template float y float w; #X text 48 37 template for array3. This contains a "w' field for line width \, so you can drag/set it for each element in the array \, so the 'w' argument is ignored in [plot].; -#X restore 242 155 pd help-plot-array3-template; -#X obj 102 232 struct; -#X text 53 88 explanation is in here ==>; -#X text 292 223 updated for Pd version 0.52; -#X obj 154 232 array; -#N canvas 319 148 411 207 help-plot-data 1; -#X scalar help-plot-template 39 73 \; -2 \; 48 \; 10 \; 78 \; 46 \; +#X restore 242 160 pd help-plot-array3-template; +#X obj 102 242 struct; +#X text 53 93 explanation is in here ==>; +#X text 292 233 updated for Pd version 0.52; +#X obj 154 242 array; +#N canvas 205 108 411 207 help-plot-data 1; +#X scalar help-plot-template 39 73 \; -2 \; 48 \; 20 \; 78 \; 46 \; \; -9 -4 \; 0 10 \; 20 0 \; 0 -30 \; -40 0 \; 0 50 \; 53 -19 \; \; 0 0 \; 39 10 \; -35 -21 \; 24 1 \; 22 1 \; 20 10 \; 20 14 \; \;; -#X restore 242 66 pd help-plot-data; -#X obj 202 232 element; -#X text 87 22 - draw array elements of scalars; +#X restore 242 71 pd help-plot-data; +#X obj 202 242 element; +#X text 67 20 - draw array elements of scalars; +#X obj 8 51 cnv 1 500 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 724 148 597 493 reference 0; +#X obj 9 45 cnv 5 575 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 91 cnv 2 575 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 125 cnv 2 575 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 464 cnv 5 575 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 120 62 float -; +#X text 146 98 NONE, f 54; +#X text 177 62 sets visibility (1: visible \, 0: invisible)., f 46 +; +#X obj 9 149 cnv 1 575 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 319 cnv 1 575 1 empty empty args: 8 12 0 13 #9f9f9f #000000 +0; +#X text 73 327 1) symbol -; +#X text 73 363 3) float* - color (default 0)., f 70; +#X obj 27 16 plot; +#X text 69 16 - draw array elements of scalars.; +#X text 129 177 "-n": makes it invisible initially., f 61; +#X text 157 326 (optional) 'curve' sets to Bezier curve (default polygon). +; +#X text 73 345 2) symbol -; +#X text 157 344 field to plot the array., f 58; +#X text 73 381 4) float* - line width (default 1)., f 70; +#X text 80 399 5) list* - relative x and y location (default 0 0). +, f 69; +#X text 73 417 6) float* - x spacing., f 70; +#X text 174 440 * can also be field names.; +#X text 129 158 "-c": sets to Bezier curve plot., f 61; +#X text 66 254 "-x ": sets a different field name for x., +f 70; +#X text 66 272 "-y ": sets a different field name for y., +f 70; +#X text 66 291 "-w ": sets a different field name for w., +f 70; +#X text 31 235 "-e ": constant of field name to make +it visible/invisible., f 76; +#X text 17 215 "-vs ": constant of field name to scalars +visible/invisible., f 77; +#X restore 333 21 pd reference; +#X text 431 22 <= click; +#X obj 8 201 cnv 1 500 1 empty empty empty 8 12 0 13 #000000 #000000 +0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/pointer-help.pd puredata-0.52.2+ds0/doc/5.reference/pointer-help.pd --- puredata-0.52.1+ds0/doc/5.reference/pointer-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/pointer-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,78 +1,68 @@ #N struct template2 float x float y; #N struct template1 float x float y float z; -#N canvas 681 23 706 816 12; -#X text 20 753 see also:; -#X obj 73 10 pointer; +#N canvas 587 23 703 712 12; +#X text 20 666 see also:; +#X obj 53 10 pointer; #N canvas 379 131 422 137 help-pointer-template1 0; #X obj 74 76 filledpolygon z 0 1 0 0 20 0 20 30 0 30; #X obj 60 23 struct template1 float x float y float z; -#X restore 431 574 pd help-pointer-template1; +#X restore 446 509 pd help-pointer-template1; #N canvas 566 400 413 122 help-pointer-template2 0; #X obj 40 67 filledcurve 909 0 0 0 0 30 30 60 0 30 -30 0 0; #X obj 60 21 struct template2 float x float y; -#X restore 431 597 pd help-pointer-template2; -#X obj 95 754 get; -#X obj 128 754 set; -#X obj 161 754 append; -#X obj 215 754 getsize; -#X obj 96 779 setsize; -#X obj 156 779 element; -#N canvas 309 206 312 185 help-pointer-data 1; +#X restore 446 532 pd help-pointer-template2; +#X obj 95 652 get; +#X obj 128 652 set; +#X obj 161 652 append; +#X obj 215 652 getsize; +#X obj 96 676 setsize; +#X obj 156 676 element; +#N canvas 229 196 312 185 help-pointer-data 1; #X scalar template2 20 97 \;; #X scalar template1 80 17 90 \;; #X scalar template1 120 117 9 \;; -#X restore 431 552 pd help-pointer-data; -#X obj 65 505 pointer; -#X msg 45 226 traverse pd-help-pointer-data; -#X msg 59 251 bang; -#X msg 75 277 next; -#X obj 65 530 print out1; -#X obj 156 530 print out2; -#X text 66 577 Optional arguments to pointer allow you to select according +#X restore 446 487 pd help-pointer-data; +#X obj 67 442 pointer; +#X msg 41 201 traverse pd-help-pointer-data; +#X msg 61 227 bang; +#X msg 77 253 next; +#X obj 67 467 print out1; +#X obj 158 467 print out2; +#X text 23 501 Optional arguments to pointer allow you to select according to the class of the scalar being output:, f 50; -#X msg 86 646 next; -#X msg 72 622 traverse pd-help-pointer-data; -#X obj 72 699 print template1; -#X obj 197 699 print template2; -#X obj 322 699 print other; -#X obj 447 699 print bangout; -#X text 263 224 sets to the "head" of the list; -#X text 41 41 "Pointer" is a storage object like "float" \, except +#X msg 47 543 next; +#X msg 94 543 traverse pd-help-pointer-data; +#X obj 94 600 print template1; +#X obj 219 600 print template2; +#X obj 344 600 print other; +#X obj 469 600 print bangout; +#X text 255 200 sets to the "head" of the list; +#X text 27 55 "Pointer" is a storage object like "float" \, except that the thing stored is the location of a scalar somewhere. You can send a pointer a value (perhaps from another "pointer" object). The right inlet takes pointers and simply stores them. A bang in the left outputs the pointer \, and a pointer in the left both sets and outputs -the value., f 76; -#X text 41 123 The value of a pointer can either indicate a real scalar -\, or else the "head" (before the first element) of the list. This -allows you to point to an empty list \, and also \, to "append" a scalar -to the beginning of the list., f 76; -#X text 42 180 Pointers are "safe": if you delete a scalar pointers -to it are marked invalid., f 43; -#X text 64 550 output; -#X obj 216 779 struct; -#X msg 83 309 vnext 1; -#X msg 102 415 send pointer-help; -#X text 99 251 output current value; -#X text 119 270 move forward one item and output pointer \; if we reach -the end \, a "bang" goes to out2.; -#X obj 477 420 r pointer-help; -#X obj 477 445 print pointer-help; -#X text 148 306 output the next object (if arg is 0) or the next selected +the value., f 91; +#X obj 216 676 struct; +#X msg 85 288 vnext 1; +#X msg 104 359 send pointer-help; +#X text 101 227 output current value; +#X obj 481 350 r pointer-help; +#X obj 481 375 print pointer-help; +#X text 145 281 output the next object (if arg is 0) or the next selected object (if arg is 1 -- but the window must be visible for the "selection" -to make sense).; -#X obj 72 673 pointer template1 template2, f 54; -#X msg 111 469 send-window vis \$1; -#X obj 111 447 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +to make sense)., f 74; +#X msg 113 408 send-window vis \$1; +#X obj 113 386 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 242 469 send a message to the canvas containing the scalar +#X text 244 408 send a message to the canvas containing the scalar +; +#X msg 93 320 delete; +#X text 146 314 delete the current object and output the next one (or +send a "bang" to bangout if it was the last one in the list), f 67 ; -#X msg 91 370 delete; -#X text 152 366 delete the current object and output the next one (or -send a "bang" to bangout if it was the last one in the list); -#X text 231 416 send pointer to a named object =>; -#X text 311 514 Pointer equality =>; -#N canvas 540 159 602 411 equal_message 0; +#X text 348 442 Pointer equality =>; +#N canvas 870 193 602 411 equal_message 0; #X obj 304 212 pointer; #X msg 304 146 traverse pd-help-pointer-data \, bang; #X msg 314 183 next; @@ -103,30 +93,98 @@ #X connect 7 2 10 0; #X connect 7 3 11 0; #X connect 14 0 1 0; -#X restore 448 513 pd equal_message; -#X text 469 765 updated for Pd version 0.51; -#X text 142 10 - remember the location of a scalar in a list; -#X obj 156 507 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X restore 485 441 pd equal_message; +#X text 482 671 updated for Pd version 0.51; +#X obj 158 444 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X text 155 551 bang at end of list; -#X obj 313 754 trigger; -#X obj 313 779 unpack; -#X obj 370 779 pack; +#X text 180 443 bang at end of list; +#X obj 293 652 trigger; +#X obj 293 676 unpack; +#X obj 360 676 pack; +#X obj 360 652 pipe; +#X text 121 246 move forward one item and output pointer if we reach +the end \, a "bang" goes to out2.; +#X text 115 10 - store the location of a scalar in a list; +#X obj 11 43 cnv 1 685 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 570 8 <= click; +#N canvas 784 100 575 570 reference 0; +#X obj 23 20 pointer; +#X text 85 20 - store the location of a scalar in a list.; +#X text 44 222 send -; +#X obj 8 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 335 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 464 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 537 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 286 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 7 85 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 107 90 bang - output the current value., f 62; +#X text 107 125 next -; +#X text 156 126 move and output next pointer or "bang" to right outlet +if we reach the end of the list., f 55; +#X text 16 108 traverse - sets to the "head" of the list. +, f 75; +#X text 44 159 vnext -; +#X text 156 158 outputs the next object (if 0) or the next selected +object (if 1)., f 55; +#X text 93 191 delete -; +#X text 156 190 delete the current object and output the next (or send +a "bang" to the right outlet if it was the last one)., f 55; +#X text 156 222 send pointer to a receive named given by the symbol. +, f 55; +#X text 16 241 send-window -; +#X text 156 240 send any message to the canvas containing the scalar. +, f 55; +#X text 30 260 equal -; +#X text 156 259 compare an incoming pointer with the stored pointer. +, f 55; +#X text 83 296 pointer - store the pointer value (no output)., f 49 +; +#X text 94 339 'n' number of outlets depend on creation arguments; +#X obj 7 362 cnv 1 550 1 empty empty 'n': 8 12 0 13 #7c7c7c #000000 +0; +#X text 104 472 1) list -; +#X text 172 472 template names. The number of templates creates 'n' +corresponding outlets \, plus an extra outlet for non matching templates. +If no argument is given \, only one outlet is created., f 51; +#X obj 7 392 cnv 1 550 1 empty empty 'n'+1: 8 12 0 13 #7c7c7c #000000 +0; +#X text 91 368 pointer - pointers of matching templates.; +#X text 91 398 pointer - pointers for non matching templates.; +#X obj 7 423 cnv 1 550 1 empty empty rightmost: 8 12 0 13 #7c7c7c #000000 +0; +#X text 111 429 bang - when reaching the end of a list; +#X restore 476 9 pd reference; +#X obj 11 640 cnv 1 685 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 233 360 send pointer to a receive named =>; +#X obj 94 574 pointer template1 template2, f 54; +#X text 27 118 The value of a pointer can either indicate a real scalar +\, or else the "head" (before the first element) of the list. This +allows you to point to an empty list \, and also \, to "append" a scalar +to the beginning of the list. Pointers are "safe": if you delete a +scalar pointers to it are marked invalid., f 91; #X connect 11 0 15 0; -#X connect 11 1 48 0; +#X connect 11 1 41 0; #X connect 12 0 11 0; #X connect 13 0 11 0; #X connect 14 0 11 0; -#X connect 18 0 37 0; -#X connect 19 0 37 0; -#X connect 30 0 11 0; -#X connect 31 0 11 0; -#X connect 34 0 35 0; -#X connect 37 0 20 0; -#X connect 37 1 21 0; -#X connect 37 2 22 0; -#X connect 37 3 23 0; -#X connect 38 0 11 0; -#X connect 39 0 38 0; -#X connect 41 0 11 0; -#X connect 48 0 16 0; +#X connect 18 0 54 0; +#X connect 19 0 54 0; +#X connect 27 0 11 0; +#X connect 28 0 11 0; +#X connect 30 0 31 0; +#X connect 33 0 11 0; +#X connect 34 0 33 0; +#X connect 36 0 11 0; +#X connect 41 0 16 0; +#X connect 54 0 20 0; +#X connect 54 1 21 0; +#X connect 54 2 22 0; +#X connect 54 3 23 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/poly-help.pd puredata-0.52.2+ds0/doc/5.reference/poly-help.pd --- puredata-0.52.1+ds0/doc/5.reference/poly-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/poly-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,53 +1,90 @@ -#N canvas 659 66 551 450 12; -#X text 321 400 updated for Pd version 0.25; -#X text 43 400 see also:; -#X obj 69 16 poly; -#X obj 121 401 route; -#X obj 175 401 makenote; -#X obj 140 257 poly 4 1; -#X obj 133 353 print; -#X text 178 352 Output is in the printout window.; -#X msg 209 225 stop; -#X msg 198 199 clear; -#X text 108 15 - MIDI-style polyphonic voice allocator; -#X listbox 133 318 20 0 0 0 - - - 0; -#X obj 133 287 pack f f f; -#X text 210 257 <= first argument \, number of voices \; second argument +#N canvas 549 25 570 450 12; +#X text 341 415 updated for Pd version 0.25; +#X text 43 413 see also:; +#X obj 29 16 poly; +#X obj 121 414 route; +#X obj 175 414 makenote; +#X obj 158 268 poly 4 1; +#X obj 151 364 print; +#X msg 227 236 stop; +#X msg 216 210 clear; +#X text 68 16 - MIDI-style polyphonic voice allocator; +#X listbox 151 329 20 0 0 0 - - - 0; +#X obj 151 298 pack f f f; +#X text 228 268 <= first argument \, number of voices \; second argument selects voice stealing; -#X text 231 170 <= emulating note on/off messages; -#X msg 46 171 60 \$1; -#X msg 93 171 62 \$1; -#X msg 140 171 65 \$1; -#X msg 188 171 69 \$1; -#X obj 188 151 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X text 249 181 <= emulating note on/off messages; +#X msg 64 182 60 \$1; +#X msg 111 182 62 \$1; +#X msg 158 182 65 \$1; +#X msg 206 182 69 \$1; +#X obj 206 162 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 64; -#X obj 93 151 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X obj 111 162 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 64; -#X obj 140 151 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X obj 158 162 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 64; -#X obj 46 151 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X obj 64 162 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 64; -#X text 243 200 clear memory; -#X text 248 225 flush hanging note on messages; -#X text 33 47 The poly object takes a stream of pitch/velocity pairs +#X text 261 211 clear memory; +#X text 266 236 flush hanging note on messages; +#X text 21 58 The poly object takes a stream of pitch/velocity pairs and outputs triples containing voice number \, pitch and velocity. You can pack the output and use the route object to route messages among a bank of voices depending on the first outlet. Another option is to connect it [clone] so you can route to different copies. Poly -can be configured to do voice stealing or not (the default.), f 66 +can be configured to do voice stealing or not (the default.), f 74 ; -#X connect 5 0 12 0; -#X connect 5 1 12 1; -#X connect 5 2 12 2; +#X obj 9 50 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 800 147 484 391 reference 0; +#X obj 8 52 cnv 5 450 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 192 cnv 2 450 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 313 cnv 2 450 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 370 cnv 5 450 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 155 cnv 1 450 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 7 85 cnv 1 450 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 27 18 poly; +#X text 66 18 - MIDI-style polyphonic voice allocator.; +#X text 131 93 float - MIDI pitch value., f 40; +#X text 131 111 clear -; +#X text 187 111 clear memory., f 32; +#X text 138 129 stop -; +#X text 187 129 flush hanging note on messages., f 32; +#X text 132 162 float - set velocity value., f 40; +#X obj 7 246 cnv 1 450 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 7 216 cnv 1 450 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 132 224 float - the voice number., f 40; +#X obj 7 276 cnv 1 450 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 111 323 1) float - number of voices (default 1)., f 43; +#X text 111 341 2) float - non-zero sets to voice stealing.; +#X text 131 284 float - note velocitty., f 40; +#X text 131 254 float - note pitch., f 40; +#X restore 383 17 pd reference; +#X text 477 17 <= click; +#X obj 9 400 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X connect 5 0 11 0; +#X connect 5 1 11 1; +#X connect 5 2 11 2; +#X connect 7 0 5 0; #X connect 8 0 5 0; -#X connect 9 0 5 0; -#X connect 11 0 6 0; -#X connect 12 0 11 0; +#X connect 10 0 6 0; +#X connect 11 0 10 0; +#X connect 14 0 5 0; #X connect 15 0 5 0; #X connect 16 0 5 0; #X connect 17 0 5 0; -#X connect 18 0 5 0; -#X connect 19 0 18 0; +#X connect 18 0 17 0; +#X connect 19 0 15 0; #X connect 20 0 16 0; -#X connect 21 0 17 0; -#X connect 22 0 15 0; +#X connect 21 0 14 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/pow~-help.pd puredata-0.52.2+ds0/doc/5.reference/pow~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/pow~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/pow~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,19 +1,19 @@ -#N canvas 780 75 518 503 12; -#X obj 50 21 pow~; +#N canvas 575 39 515 484 12; +#X obj 27 17 pow~; #X obj 148 188 loadbang; #X obj 148 221 metro 100; #X obj 148 259 snapshot~; #X floatatom 42 127 5 0 0 0 - - - 0; #X floatatom 103 127 5 0 0 0 - - - 0; #X floatatom 148 288 7 0 0 0 - - - 0; -#X text 284 423 updated for Pd version 0.42.; +#X text 291 420 updated for Pd version 0.42.; #X obj 78 199 pow~; -#X text 92 19 - power function for signals, f 52; -#X text 39 404 see also:; -#X obj 154 429 log~; -#X obj 39 429 pow; -#X obj 116 429 exp~; -#X obj 72 429 sqrt~; +#X text 68 16 - power function for signals; +#X text 6 434 see also:; +#X obj 196 423 log~; +#X obj 81 423 pow; +#X obj 158 423 exp~; +#X obj 114 423 sqrt~; #X floatatom 291 203 5 0 0 0 - - - 0; #X text 317 228 An optional creation argument initializes right inlet for when you don't have a signal input., f 23; @@ -27,17 +27,42 @@ \, and if you do \, the DSP chain may dramatically slow down if you're using an i386 or ia64 processor. Out-of-range floating point values are thousands of times slower to compute with than in-range ones. There' -a protection agains NaNs (they become 0)., f 65; -#X text 44 56 pow~ raises a signal to a numeric power (given by another +a protection against NaNs (they become 0)., f 65; +#X text 44 63 pow~ raises a signal to a numeric power (given by another signal or argument/float). The inputs may be positive \, zero \, or negative.; -#X obj 39 455 +~; -#X text 70 457 (etc.) - signal binary operators; -#X obj 192 429 expr~; -#X msg 273 131 \; pd dsp \$1; -#X obj 273 110 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X obj 81 449 +~; +#X text 112 451 (etc.) - signal binary operators; +#X obj 234 423 expr~; +#X msg 330 140 \; pd dsp \$1; +#X obj 330 119 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 292 108 DSP on/off; +#X text 349 117 DSP on/off; +#N canvas 810 126 441 249 reference 0; +#X obj 13 50 cnv 5 410 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 13 145 cnv 2 410 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 13 182 cnv 2 410 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 12 217 cnv 5 410 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 13 82 cnv 1 410 1 empty empty 1st: 8 12 0 13 #000000 #000000 +0; +#X obj 13 111 cnv 1 410 1 empty empty 2nd: 8 12 0 13 #000000 #000000 +0; +#X obj 37 17 pow~; +#X text 79 16 - power function for signals; +#X text 88 85 signal - input value to power function.; +#X text 88 118 signal - set numeric power to raise to.; +#X text 121 154 signal - output of power function.; +#X text 130 191 1) float - initial numeric power.; +#X restore 321 17 pd reference; +#X text 416 17 <= click; +#X obj 3 54 cnv 1 500 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 3 407 cnv 1 500 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 1 0 2 0; #X connect 2 0 3 0; #X connect 2 0 18 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/print~-help.pd puredata-0.52.2+ds0/doc/5.reference/print~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/print~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/print~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,23 +1,48 @@ -#N canvas 847 270 519 316 12; -#X msg 101 186 2; -#X obj 78 227 print~; -#X msg 78 151 bang; -#X obj 41 122 phasor~ 1000; -#X text 118 152 bang prints one vector; -#X text 136 185 print two or more successive vectors, f 19; -#X obj 35 14 print~; -#X text 88 14 - print out raw values of a signal; -#X text 271 269 Updated for Pd version 0.33; -#X text 22 46 The print~ object takes a signal input and prints one -or more vectors out when you send it a bang or a number. By default -a vector is 64 samples., f 49; -#X text 53 269 see also:; -#X obj 135 270 print; -#X msg 330 154 \; pd dsp \$1; -#X obj 330 130 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#N canvas 516 27 548 342 12; +#X msg 116 210 2; +#X msg 93 175 bang; +#X obj 56 146 phasor~ 1000; +#X text 133 176 bang prints one vector; +#X text 151 209 print two or more successive vectors, f 19; +#X obj 25 14 print~; +#X text 78 14 - print out raw values of a signal; +#X text 317 295 Updated for Pd version 0.33; +#X text 41 296 see also:; +#X obj 123 297 print; +#X msg 349 176 \; pd dsp \$1; +#X obj 349 152 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 349 128 DSP on/off; -#X connect 0 0 1 0; -#X connect 2 0 1 0; -#X connect 3 0 1 0; -#X connect 13 0 12 0; +#X text 368 150 DSP on/off; +#N canvas 657 103 573 246 reference 0; +#X obj 18 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 18 141 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 18 178 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 215 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 146 151 NONE, f 5; +#X text 89 67 signal - signal block to print on terminal window.; +#X obj 39 15 print~; +#X text 92 15 - print out raw values of a signal; +#X text 126 189 1) symbol - symbol to distinct one [print~] from another. +; +#X text 104 88 bang - print one block on terminal window.; +#X text 98 108 float - sets and prints number of blocks on terminal +window.; +#X restore 359 13 pd reference; +#X text 457 14 <= click; +#X obj 9 47 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 41 66 The print~ object takes a signal input and prints one +or more blocks (or 'vectors') out when you send it a bang or a number. +By default a blocck is 64 samples., f 63; +#X obj 9 287 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 93 251 print~; +#X obj 174 297 block~; +#X connect 0 0 18 0; +#X connect 1 0 18 0; +#X connect 2 0 18 0; +#X connect 11 0 10 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/print-help.pd puredata-0.52.2+ds0/doc/5.reference/print-help.pd --- puredata-0.52.1+ds0/doc/5.reference/print-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/print-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,21 +1,48 @@ -#N canvas 616 127 506 391 12; -#X msg 185 56 walk the dog; -#X msg 96 56 bang; -#X msg 143 55 234; -#X obj 143 101 print x1; -#X obj 54 12 print; -#X obj 197 279 print -n; -#X floatatom 197 254 5 0 0 0 - - - 0; -#X text 106 12 - print messages to terminal window; -#X text 50 329 see also:; -#X obj 130 329 print~; -#X text 264 328 updated for Pd version 0.52; -#X text 39 139 Print prints out the messages it receives on the "terminal +#N canvas 534 27 539 425 12; +#X msg 185 79 walk the dog; +#X msg 96 79 bang; +#X msg 143 78 234; +#X obj 143 124 print x1; +#X obj 21 12 print; +#X obj 326 314 print -n; +#X floatatom 326 289 5 0 0 0 - - - 0; +#X text 68 12 - print messages to terminal window; +#X text 21 379 see also:; +#X obj 101 379 print~; +#X text 318 380 updated for Pd version 0.52; +#X text 39 162 Print prints out the messages it receives on the "terminal window" that Pd is run from. If no argument is given \, the message has a "print:" prefix. Any message as an argument is used as the prefix -instead (so you can differentiate between different printouts).; -#X text 38 219 With the special "-n" flag the default "print:" prefix -is suppressed:; +instead (so you can differentiate between different printouts)., f +66; +#X text 40 294 With the special "-n" flag the default "print:" prefix +is suppressed:, f 38; +#X text 38 234 You can also do command/control + click on the terminal +window and the corresponding [print] object will be selected in your +patch., f 66; +#N canvas 708 126 592 223 reference 0; +#X obj 18 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 18 101 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 18 138 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X obj 17 195 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 126 111 NONE, f 54; +#X text 106 67 anything - any message to print into the terminal window. +; +#X obj 37 15 print; +#X text 84 15 - print messages to terminal window; +#X text 120 146 1) anything -, f 13; +#X text 219 146 message to distinct one [print] from another (default +'print:'). Optionally \, use '-n' for no messages., f 44; +#X restore 354 12 pd reference; +#X text 452 13 <= click; +#X obj 8 49 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 7 366 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 0 0 3 0; #X connect 1 0 3 0; #X connect 2 0 3 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/qlist-help.pd puredata-0.52.2+ds0/doc/5.reference/qlist-help.pd --- puredata-0.52.1+ds0/doc/5.reference/qlist-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/qlist-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,75 +1,114 @@ -#N canvas 387 44 1040 601 12; -#X obj 489 341 qlist; -#X msg 509 109 rewind; -#X msg 515 134 next; -#X floatatom 489 425 0 0 0 0 - - - 0; -#X msg 489 57 bang; -#X obj 521 400 print done; -#X msg 500 83 tempo 1; -#X text 21 54 The qlist object reads text files containing time-tagged +#N canvas 259 41 994 546 12; +#X obj 456 358 qlist; +#X msg 476 140 rewind; +#X msg 482 165 next; +#X floatatom 456 461 5 0 0 0 - - - 0; +#X msg 456 88 bang; +#X obj 488 417 print done; +#X msg 467 114 tempo 1; +#X text 22 69 The qlist object reads text files containing time-tagged Pd messages. You can have them sequenced automatically (by sending a "bang" message \, possibly changing speed via "tempo" messages) or -manually via the "rewind" and "next" messages.; -#X text 18 139 To run the qlist automatically \, send it a "read" message +manually via the "rewind" and "next" messages., f 56; +#X text 21 153 To run the qlist automatically \, send it a "read" message (the filename is relative to the directory the patch is in) and later a "bang." Messages in the file are separated by semicolons. Optional leading numbers are delay times in milliseconds. If the tempo is different from 1 the messages are sent faster or slower accordingly. Messages should start with a symbol giving the destination object. In the file "qlist.q" used here \, the messages go to objects "this" and "that" -which are receives below.; -#X text 20 284 To run it manually \, send "rewind" followed by "next". +which are receives below., f 56; +#X text 21 303 To run it manually \, send "rewind" followed by "next". All messages not preceded by numbers are sent. As soon as a message starting with one or more numbers is encountered \, the numbers are output as a list. There are many ways you could design a sequencer -around this.; -#X text 525 57 sequence automatically; -#X text 559 82 set relative tempo; -#X text 559 110 go to beginning (and stop); -#X text 551 133 single-step forward; -#X text 648 260 read a file; -#X text 699 283 write one; -#X text 488 447 This outlet gets a list of leading numbers for the +around this., f 56; +#X text 492 88 sequence automatically; +#X text 526 113 set relative tempo; +#X text 526 141 go to beginning (and stop); +#X text 518 164 single-step forward; +#X text 615 291 read a file; +#X text 666 314 write one; +#X text 509 454 This outlet gets a list of leading numbers for the next message \, for you to use in designing your own sequencer.; -#X msg 541 260 read qlist.txt; -#X msg 547 283 write /tmp/qlist.txt; -#X text 38 461 see also:; -#X obj 41 485 textfile; -#X text 25 365 You can also record textual messages and save them to +#X msg 508 291 read qlist.txt; +#X msg 514 314 write /tmp/qlist.txt; +#X text 17 512 see also:; +#X obj 90 513 textfile; +#X text 22 385 You can also record textual messages and save them to a file. Send "clear" to empty the qlist and "add" to add messages (terminated with semicolons.) The message \, "add2" adds a list of atoms without finishing with a semicolon in case you want to make variable-length -messages.; -#X msg 527 186 clear; -#X msg 532 213 add 500 this is another message; -#X msg 537 237 add2 that; -#X text 573 186 empty the qlist; -#X text 758 214 add a message to a qlist; -#X text 610 236 add a message to a qlist but don't terminate it; -#X text 602 385 This outlet gets a bang when you hit the end of the +messages., f 56; +#X msg 494 217 clear; +#X msg 499 244 add 500 this is another message; +#X msg 504 268 add2 that; +#X text 540 217 empty the qlist; +#X text 725 245 add a message to a qlist; +#X text 577 267 add a message to a qlist but don't terminate it; +#X text 576 401 This outlet gets a bang when you hit the end of the sequence. In the file "qlist.txt" the end is delayed 1000 milliseconds -after the last message.; -#X text 472 523 These receives are invoked in the file "qlist.txt" -in this directory., f 36; -#X obj 54 16 qlist; -#X text 107 17 - text-based sequencer; -#X text 574 159 single-step forward SUPPRESSING MESSAGE-SENDING; -#X msg 521 160 next 1; -#X text 48 541 updated for Pd version 0.35; -#X msg 479 32 print; -#X text 525 31 print contents to Pd window; -#X obj 521 377 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +after the last message., f 49; +#X text 713 64 These receives are invoked in the file "qlist.txt" in +this directory., f 35; +#X obj 44 14 qlist; +#X text 97 13 - text-based sequencer; +#X text 541 190 single-step forward SUPPRESSING MESSAGE-SENDING; +#X msg 488 191 next 1; +#X msg 446 63 print; +#X text 492 62 print contents to Pd window; +#X obj 488 392 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 112 486 text sequence; -#X text 214 486 <= newer and better replacement for qlist, f 22; -#X obj 747 512 r this; -#X obj 840 512 r that; -#X obj 840 547 print that; -#X obj 747 547 print this; -#X text 546 337 <= you can also click on qlist to see its contents -and edit it \, just like a "text define" object, f 52; +#X obj 161 513 text sequence; +#X text 263 512 <= newer and better replacement for qlist, f 42; +#X obj 754 110 r this; +#X obj 847 110 r that; +#X obj 847 139 print that; +#X obj 754 139 print this; +#X obj 9 45 cnv 1 975 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 751 121 568 419 reference 0; +#X obj 8 42 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 260 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 356 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 392 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 319 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 7 285 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 26 9 qlist; +#X text 79 8 - text-based sequencer; +#X text 112 52 bang - start sequence automatically., f 61; +#X text 49 71 tempo - set relative tempo., f 70; +#X text 98 90 rewind - go to beginning (and stop)., f 63; +#X text 48 108 next -; +#X text 161 108 single-step forward \, optional floar suppresses message +sending., f 54; +#X text 105 140 print - print contents to Pd window., f 62; +#X text 105 158 clear - empty the qlist., f 62; +#X text 42 176 add - add a message to a qlist., f 71; +#X text 35 195 add2 - add a message to a qlist but don't +terminate it., f 72; +#X text 49 214 read - read a file into qlist., f 70; +#X text 42 233 write - write contents to a file., f 71; +#X text 107 291 list - list of leading numbers for the next message. +; +#X text 107 324 bang - when reaching the end of sequence.; +#X text 140 366 NONE; +#X restore 807 14 pd reference; +#X text 901 14 <= click; +#X obj 9 501 cnv 1 975 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 503 356 <=; +#X text 526 356 click to see its contents and edit it \, just like +a "text define" object., f 50; +#X text 764 512 Updated for Pd version 0.35; #X connect 0 0 3 0; -#X connect 0 1 37 0; +#X connect 0 1 36 0; #X connect 1 0 0 0; #X connect 2 0 0 0; #X connect 4 0 0 0; @@ -80,7 +119,7 @@ #X connect 23 0 0 0; #X connect 24 0 0 0; #X connect 33 0 0 0; -#X connect 35 0 0 0; -#X connect 37 0 5 0; -#X connect 40 0 43 0; -#X connect 41 0 42 0; +#X connect 34 0 0 0; +#X connect 36 0 5 0; +#X connect 39 0 42 0; +#X connect 40 0 41 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/random-help.pd puredata-0.52.2+ds0/doc/5.reference/random-help.pd --- puredata-0.52.1+ds0/doc/5.reference/random-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/random-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,30 +1,59 @@ -#N canvas 490 69 497 442 12; -#X msg 54 217 bang; -#X obj 54 306 random 5; -#X floatatom 107 279 5 0 0 0 - - - 0; -#X floatatom 54 334 0 0 0 0 - - - 0; -#X msg 73 249 seed 123; -#X text 95 216 bang for output; -#X text 145 250 message to set the seed; -#X text 150 280 inlet to reset the range; -#X text 123 306 argument to initialize the range; -#X text 262 404 updated for Pd version 0.33; -#X text 19 46 Random outputs pseudo random integers from 0 to N-1 where +#N canvas 545 23 479 478 12; +#X msg 86 237 bang; +#X floatatom 139 299 5 0 0 0 - - - 0; +#X floatatom 86 354 0 0 0 0 - - - 0; +#X msg 105 269 seed 123; +#X text 127 236 bang for output; +#X text 177 270 message to set the seed; +#X text 182 300 inlet to reset the range; +#X text 155 326 argument to initialize the range; +#X text 248 437 updated for Pd version 0.33; +#X text 24 58 Random outputs pseudo random integers from 0 to N-1 where N is the creation argument (5 in the example below.) You can specify a seed if you wish. Seeds are kept locally so that if two Randoms are seeded the same they will have the same output (or indeed you can seed -the same one twice to repeat the output.); -#X text 22 139 On the other hand \, if you don't supply a seed each +the same one twice to repeat the output.), f 60; +#X text 24 155 On the other hand \, if you don't supply a seed each instance of random gets its own seed. WARNING: nothing is known about the quality of the pseudo random number generator. It isn't any standard one!; -#X obj 64 12 random; -#X text 128 12 - pseudo random integers; -#X obj 54 362 print; -#X text 53 404 see also:; -#X obj 131 404 expr; -#X connect 0 0 1 0; -#X connect 1 0 3 0; -#X connect 2 0 1 1; -#X connect 3 0 14 0; -#X connect 4 0 1 0; +#X obj 27 13 random; +#X text 81 12 - pseudo random integers; +#X obj 86 382 print; +#X text 23 440 see also:; +#X obj 98 438 expr; +#X obj 10 42 cnv 1 460 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 722 116 574 286 reference 1; +#X obj 8 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 184 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 221 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 258 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 145 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 8 85 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 40 16 random; +#X text 94 15 - pseudo random integers.; +#X text 98 92 bang - generate a random integer number., f 62; +#X text 147 113 set a seed value for repeatable random numbers., f +55; +#X text 143 155 float - set the range., f 49; +#X text 143 194 float - the generated random number., f 49; +#X text 143 232 1) float - initial range value (default 1)., f 49 +; +#X text 42 113 seed -; +#X restore 290 12 pd reference; +#X text 384 12 <= click; +#X obj 10 422 cnv 1 460 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 86 326 random 5; +#X connect 0 0 20 0; +#X connect 1 0 20 1; +#X connect 2 0 13 0; +#X connect 3 0 20 0; +#X connect 20 0 2 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/readsf~-help.pd puredata-0.52.2+ds0/doc/5.reference/readsf~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/readsf~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/readsf~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,63 +1,101 @@ -#N canvas 713 27 779 510 12; +#N canvas 521 62 694 512 12; #X declare -stdpath ./; -#X msg 60 253 1; -#X msg 67 277 0; -#X obj 498 385 print didit; -#X obj 144 385 env~ 16384; -#X floatatom 144 410 0 0 0 0 - - - 0; -#X msg 73 302 print; -#X obj 225 385 env~ 16384; -#X floatatom 225 410 0 0 0 0 - - - 0; -#X obj 60 335 readsf~ 4 1e+06, f 63; -#X obj 306 385 env~ 16384; -#X floatatom 306 410 0 0 0 0 - - - 0; -#X obj 388 385 env~ 16384; -#X floatatom 388 410 0 0 0 0 - - - 0; -#X msg 49 226 open ../sound/bell.aiff 0 200 4 2 b; -#X text 496 426 when the soundfile is done.; -#X text 55 53 The readsf~ object reads a soundfile into its signal +#X msg 92 242 1; +#X msg 107 269 0; +#X obj 471 395 print didit; +#X obj 138 371 env~ 16384; +#X floatatom 138 396 6 0 0 0 - - - 0; +#X msg 121 298 print; +#X obj 218 371 env~ 16384; +#X obj 54 331 readsf~ 4 1e+06, f 60; +#X obj 298 371 env~ 16384; +#X obj 379 371 env~ 16384; +#X msg 54 187 open ../sound/bell.aiff 0 200 4 2 b; +#X text 21 60 The readsf~ object reads a soundfile into its signal outputs. You must open the soundfile in advance (a couple of seconds before you'll need it) using the "open" message. The object immediately starts reading from the file \, but output will only appear after you -send a "1" to start playback. A "0" stops it., f 75; -#X obj 140 472 soundfiler; -#X text 61 472 see also:; -#X text 91 252 1 starts playback; -#X text 99 278 0 stops it; -#X obj 98 17 readsf~; -#X text 154 18 - read a soundfile; -#X text 315 190 Open takes a filename \, an onset in sample frames +send a "1" to start playback. A "0" stops it., f 91; +#X obj 96 477 soundfiler; +#X text 17 476 see also:; +#X obj 38 15 readsf~; +#X text 95 14 - read a soundfile; +#X text 313 177 Open takes a filename \, an onset in sample frames \, and \, as an override \, you may also supply a header size to skip \, a number of channels \, bytes per sample \, and endianness., f -43; -#X text 514 308 Optional arguments:; -#X text 495 412 The last outlet gives a "bang"; -#X text 515 469 Updated for version 0.51; -#X text 55 129 The wave \, aiff \, caf \, and next formats are parsed +44; +#X text 492 480 Updated for version 0.51; +#X text 21 126 The wave \, aiff \, caf \, and next formats are parsed automatically \, although only uncompressed 2- or 3-byte integer ("pcm") -and 4-byte floating point samples are accepted., f 75; -#X obj 60 386 output~; -#X obj 229 472 writesf~; -#X obj 498 361 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +and 4-byte floating point samples are accepted., f 91; +#X obj 54 372 output~; +#X obj 185 477 writesf~; +#X obj 471 371 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X text 516 326 - number of channels \; - per channel buffer size in -bytes; -#X msg 37 203 open ../sound/bell.aiff; -#X obj 590 12 declare -stdpath ./; -#X connect 0 0 8 0; -#X connect 1 0 8 0; +#X text 502 326 - number of channels \; - per channel buffer size in +bytes, f 22; +#X msg 68 215 open ../sound/bell.aiff; +#X obj 517 261 declare -stdpath ./; +#X obj 7 47 cnv 1 675 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 613 14 <= click; +#N canvas 679 102 575 352 reference 0; +#X obj 8 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 169 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 270 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 324 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 234 cnv 1 550 1 empty empty rightmost: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 7 197 cnv 1 550 1 empty empty n: 8 12 0 13 #7c7c7c #000000 0 +; +#X obj 30 18 readsf~; +#X text 86 19 - read a soundfile; +#X text 78 69 open -; +#X text 177 69 sets a filename \, an onset in samples \, header size +to skip \, number of channels \, bytes per sample \, and endianness. +, f 50; +#X text 120 118 float -; +#X text 177 118 nonzero starts playback \, zero stops., f 50; +#X text 121 139 print - prints information on Pd's terminal window. +, f 58; +#X text 122 206 signal -; +#X text 187 206 channel output of a given file., f 46; +#X text 137 242 bang - when finishing playing file., f 54; +#X text 107 278 1) float - sets number of output channels (default +1 \, max 64)., f 62; +#X text 107 297 2) float - per channel buffer size in bytes., f 62 +; +#X text 82 174 ('n' number of outlets specified by argument); +#X restore 519 15 pd reference; +#X floatatom 218 396 6 0 0 0 - - - 0; +#X floatatom 298 396 6 0 0 0 - - - 0; +#X floatatom 379 396 6 0 0 0 - - - 0; +#X text 497 306 Arguments:; +#X text 460 419 The last outlet gives a "bang" when the soundfile is +done., f 30; +#X obj 7 464 cnv 1 675 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 166 296 print information on the Pd window; +#X text 123 241 nonzero starts playback; +#X text 139 270 zero stops it; +#X connect 0 0 7 0; +#X connect 1 0 7 0; #X connect 3 0 4 0; -#X connect 5 0 8 0; -#X connect 6 0 7 0; -#X connect 8 0 3 0; -#X connect 8 0 27 0; -#X connect 8 1 6 0; -#X connect 8 1 27 1; -#X connect 8 2 9 0; -#X connect 8 3 11 0; -#X connect 8 4 29 0; -#X connect 9 0 10 0; -#X connect 11 0 12 0; -#X connect 13 0 8 0; -#X connect 29 0 2 0; -#X connect 31 0 8 0; +#X connect 5 0 7 0; +#X connect 6 0 28 0; +#X connect 7 0 3 0; +#X connect 7 0 19 0; +#X connect 7 1 6 0; +#X connect 7 1 19 1; +#X connect 7 2 8 0; +#X connect 7 3 9 0; +#X connect 7 4 21 0; +#X connect 8 0 29 0; +#X connect 9 0 30 0; +#X connect 10 0 7 0; +#X connect 21 0 2 0; +#X connect 23 0 7 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/realtime-help.pd puredata-0.52.2+ds0/doc/5.reference/realtime-help.pd --- puredata-0.52.1+ds0/doc/5.reference/realtime-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/realtime-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,20 +1,45 @@ -#N canvas 838 164 401 379 12; -#X msg 119 174 bang; -#X msg 66 123 bang; -#X floatatom 66 254 8 0 0 0 - - - 0; -#X text 131 253 Output is in milliseconds; -#X obj 39 25 realtime; -#X text 15 62 The realtime object measures elapsed real time \, as -measured by your operating system., f 51; -#X obj 66 224 realtime; -#X text 107 25 - ask OS for elapsed real time; -#X text 184 329 updated for Pd version 0.33; -#X text 39 303 see also:; -#X obj 41 329 cputime; -#X obj 109 329 timer; -#X text 160 159 output elapsed time. You can click multiple times since +#N canvas 646 69 469 351 12; +#X msg 162 174 bang; +#X msg 109 123 bang; +#X floatatom 109 254 8 0 0 0 - - - 0; +#X text 174 253 Output is in milliseconds; +#X obj 16 15 realtime; +#X text 47 70 The realtime object measures elapsed real time \, as +measured by your operating system., f 47; +#X obj 109 224 realtime; +#X text 87 13 - ask OS for elapsed real time, f 18; +#X text 244 313 updated for Pd version 0.33; +#X obj 88 313 cputime; +#X obj 156 313 timer; +#X text 203 159 output elapsed time. You can click multiple times since it was last reset., f 25; -#X text 107 122 reset (set elapsed time to zero); +#X text 150 122 reset (set elapsed time to zero); +#X text 17 314 see also:; +#X obj 5 56 cnv 1 450 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 798 139 496 255 reference 0; +#X obj 18 52 cnv 5 450 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 18 184 cnv 2 450 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X text 156 194 NONE; +#X text 117 90 bang - reset (set elapsed time to zero)., f 43; +#X obj 18 221 cnv 5 450 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 39 18 realtime; +#X text 110 16 - ask OS for elapsed real time, f 31; +#X obj 18 149 cnv 2 450 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X text 117 120 bang - output elapsed time., f 43; +#X obj 18 114 cnv 1 450 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 18 87 cnv 1 450 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 133 158 1) float - elapsed time in msec.; +#X restore 345 19 pd reference; +#X text 278 20 click =>; +#X obj 13 296 cnv 1 450 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 0 0 6 1; #X connect 1 0 6 0; #X connect 6 0 2 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/route-help.pd puredata-0.52.2+ds0/doc/5.reference/route-help.pd --- puredata-0.52.1+ds0/doc/5.reference/route-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/route-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,40 +1,39 @@ -#N canvas 471 89 1088 599 12; -#X obj 177 340 print x1; -#X obj 255 340 print x2; -#X obj 333 340 print x3; -#X obj 177 257 route 23 54 1, f 34; -#X msg 160 150 234 345 456; -#X msg 177 175 23 34 45; -#X msg 200 225 54 43; -#X msg 188 200 1 foo bar; -#X msg 192 395 impeach ringo starr; -#X obj 192 471 route big apple, f 27; -#X msg 214 427 apple pie; -#X msg 135 395 1 2 3; -#X msg 297 433 big apple pie; -#X msg 61 151 walk the dog; -#X text 41 257 numeric arguments:; -#X text 46 471 symbolic arguments:; -#X obj 192 551 print y1; -#X obj 285 551 print y2; -#X obj 34 13 route; -#X text 830 544 updated for Pd version 0.43; -#X obj 651 202 route 4, f 10; -#X msg 651 144 1 2 3; -#X floatatom 718 174 5 0 0 0 - - - 0; -#X msg 660 171 4 5 6; -#X obj 412 340 print rejected; -#X obj 378 551 print rejected; -#X obj 851 195 route hi, f 10; -#X msg 819 139 hi there; -#X msg 851 167 see ya; -#X symbolatom 918 167 6 0 0 0 - - - 0; -#X msg 926 140 symbol see; -#X obj 851 272 print s1; -#X obj 918 272 print s2; -#X text 88 14 - trim first element and route messages according to +#N canvas 219 37 1034 611 12; +#X obj 166 328 print x1; +#X obj 244 328 print x2; +#X obj 322 328 print x3; +#X obj 166 247 route 23 54 1, f 34; +#X msg 149 154 234 345 456; +#X msg 166 179 23 34 45; +#X msg 181 205 54 43; +#X msg 230 206 1 foo bar; +#X msg 261 411 impeach ringo starr; +#X obj 171 440 route big apple, f 27; +#X msg 171 380 apple pie; +#X msg 118 380 1 2 3; +#X msg 254 380 big apple pie; +#X msg 50 155 walk the dog; +#X text 30 247 numeric arguments:; +#X text 25 440 symbolic arguments:; +#X obj 171 520 print y1; +#X obj 264 520 print y2; +#X obj 26 13 route; +#X text 788 573 updated for Pd version 0.43; +#X msg 591 175 1 2 3; +#X floatatom 658 205 5 0 0 0 - - - 0; +#X msg 600 202 4 5 6; +#X obj 401 328 print rejected; +#X obj 357 520 print rejected; +#X obj 791 226 route hi, f 10; +#X msg 759 170 hi there; +#X msg 791 198 see ya; +#X symbolatom 858 198 6 0 0 0 - - - 0; +#X msg 866 171 symbol see; +#X obj 791 303 print s1; +#X obj 861 303 print s2; +#X text 80 14 - trim first element and route messages according to it; -#N canvas 475 41 977 682 special-selectors/message-types 0; +#N canvas 368 41 975 670 special-selectors/message-types 0; #X msg 415 111 bang; #X msg 518 166 5; #X msg 558 166 symbol pie; @@ -123,7 +122,7 @@ according to its type. Note that we have a [list] object to give the 'list' selector back in the case of list messages that start with a symbol. Note also that you can still use other symbols to route other -mesages (as with 'pure' below)., f 75; +messages (as with 'pure' below)., f 75; #X connect 0 0 29 0; #X connect 1 0 29 0; #X connect 2 0 29 0; @@ -173,93 +172,133 @@ #X connect 60 0 56 0; #X connect 61 0 57 0; #X connect 63 0 62 0; -#X restore 731 467 pd special-selectors/message-types; -#X text 635 543 see also:; -#X obj 713 544 select; -#X text 578 308 In the case of messages that start with a symbol \, +#X restore 733 506 pd special-selectors/message-types; +#X text 21 573 see also:; +#X obj 99 574 select; +#X text 558 339 In the case of messages that start with a symbol \, the first element is also known as the 'selector' of the message. Hence \, [route] trims the selector of the message when it matches one of -its symbol arguments., f 68; -#X text 28 52 Route checks the first element of a message against each +its symbol arguments., f 62; +#X text 17 56 Route checks the first element of a message against each of its arguments \, which may be numbers or symbols (but not a mixture of the two). If a match is found \, the rest of the message appears on the corresponding outlet. If there's no match \, the message is repeated to the last "rejection" outlet. The number of outlets is the number of arguments plus one., f 74; -#X text 579 379 There are exeptions though when we're dealing with +#X text 559 410 There are ecxeptions though when we're dealing with special selectors that Pd deals with \, namely: list \, float \, symbol and bang. One byproduct of [route] is that it can also be used to route messages according to these types. Open the subpatch below for an example -and more details, f 68; -#X listbox 177 287 8 0 0 0 - - - 0; -#X floatatom 255 285 5 0 0 0 - - - 0; -#X obj 343 285 list; -#X listbox 343 309 8 0 0 0 - - - 0; -#X obj 422 284 list; -#X listbox 422 308 14 0 0 0 - - - 0; -#X obj 206 497 list; -#X listbox 206 521 10 0 0 0 - - - 0; -#X obj 297 497 list; -#X listbox 297 521 10 0 0 0 - - - 0; -#X obj 390 498 list; -#X listbox 390 522 20 0 0 0 - - - 0; -#X obj 651 253 print f1; -#X obj 718 253 print f2; -#X listbox 651 228 7 0 0 0 - - - 0; -#X listbox 718 228 7 0 0 0 - - - 0; -#X obj 862 222 symbol; -#X symbolatom 862 246 6 0 0 0 - - - 0; -#X obj 932 222 list; -#X listbox 932 246 10 0 0 0 - - - 0; -#X msg 918 114 symbol hi; -#X text 594 32 If no argument is given \, [route] loads a float argument +and more details, f 62; +#X listbox 166 277 8 0 0 0 - - - 0; +#X floatatom 244 275 5 0 0 0 - - - 0; +#X obj 332 275 list; +#X listbox 332 299 8 0 0 0 - - - 0; +#X obj 411 274 list; +#X listbox 411 298 14 0 0 0 - - - 0; +#X obj 185 466 list; +#X listbox 185 490 10 0 0 0 - - - 0; +#X obj 276 466 list; +#X listbox 276 490 10 0 0 0 - - - 0; +#X obj 369 467 list; +#X listbox 369 491 20 0 0 0 - - - 0; +#X obj 591 284 print f1; +#X obj 658 284 print f2; +#X listbox 591 259 7 0 0 0 - - - 0; +#X listbox 658 259 7 0 0 0 - - - 0; +#X obj 802 253 symbol; +#X symbolatom 802 277 6 0 0 0 - - - 0; +#X obj 875 253 list; +#X listbox 875 277 10 0 0 0 - - - 0; +#X msg 858 145 symbol hi; +#X text 574 63 If no argument is given \, [route] loads a float argument of 0 and creates a second inlet so you can change the argument value (to another float). In the same way \, a single symbol argument adds an inlet that expects a symbol message to change the argument., f -64; -#X connect 3 0 40 0; -#X connect 3 1 41 0; -#X connect 3 2 42 0; +59; +#X obj 5 45 cnv 1 1020 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 5 558 cnv 1 1020 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 752 101 560 362 reference 0; +#X obj 4 46 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 4 157 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 4 291 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 3 334 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 4 78 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 2 107 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 66 117 float/symbol -; +#X text 174 117 if there's one argument \, an inlet is created to update +it., f 47; +#X obj 4 188 cnv 1 550 1 empty empty n: 8 12 0 13 #7c7c7c #000000 0 +; +#X text 77 161 (depends on the number of arguments); +#X obj 4 228 cnv 1 550 1 empty empty rightmost: 8 12 0 13 #7c7c7c #000000 +0; +#X text 112 256 when input doesn't match the arguments \, it is passed +here., f 59; +#X obj 27 13 route; +#X text 81 14 - trim first element and route messages according to +it.; +#X text 94 83 anything - any message to route according to the first +element., f 63; +#X text 94 199 anything - routed message with the first element trimmed. +, f 63; +#X text 34 256 anything -; +#X text 101 304 1) list - of floats or symbols to route to to (default +0).; +#X restore 851 14 pd reference; +#X text 949 14 <= click; +#X obj 591 233 route, f 10; +#X connect 3 0 39 0; +#X connect 3 1 40 0; +#X connect 3 2 41 0; #X connect 3 2 2 0; -#X connect 3 3 24 0; -#X connect 3 3 44 0; +#X connect 3 3 23 0; +#X connect 3 3 43 0; #X connect 4 0 3 0; #X connect 5 0 3 0; #X connect 6 0 3 0; #X connect 7 0 3 0; #X connect 8 0 9 0; #X connect 9 0 16 0; -#X connect 9 0 46 0; +#X connect 9 0 45 0; #X connect 9 1 17 0; -#X connect 9 1 48 0; -#X connect 9 2 25 0; -#X connect 9 2 50 0; +#X connect 9 1 47 0; +#X connect 9 2 24 0; +#X connect 9 2 49 0; #X connect 10 0 9 0; #X connect 11 0 9 0; #X connect 12 0 9 0; #X connect 13 0 3 0; -#X connect 20 0 54 0; -#X connect 20 1 55 0; -#X connect 21 0 20 0; -#X connect 22 0 20 1; -#X connect 23 0 20 0; -#X connect 26 0 31 0; -#X connect 26 0 56 0; -#X connect 26 1 32 0; -#X connect 26 1 58 0; -#X connect 27 0 26 0; -#X connect 28 0 26 0; -#X connect 29 0 26 1; -#X connect 30 0 29 0; -#X connect 40 0 0 0; -#X connect 41 0 1 0; -#X connect 42 0 43 0; -#X connect 44 0 45 0; -#X connect 46 0 47 0; -#X connect 48 0 49 0; -#X connect 50 0 51 0; +#X connect 20 0 65 0; +#X connect 21 0 65 1; +#X connect 22 0 65 0; +#X connect 25 0 30 0; +#X connect 25 0 55 0; +#X connect 25 1 31 0; +#X connect 25 1 57 0; +#X connect 26 0 25 0; +#X connect 27 0 25 0; +#X connect 28 0 25 1; +#X connect 29 0 28 0; +#X connect 39 0 0 0; +#X connect 40 0 1 0; +#X connect 41 0 42 0; +#X connect 43 0 44 0; +#X connect 45 0 46 0; +#X connect 47 0 48 0; +#X connect 49 0 50 0; +#X connect 53 0 51 0; #X connect 54 0 52 0; -#X connect 55 0 53 0; -#X connect 56 0 57 0; -#X connect 58 0 59 0; -#X connect 60 0 29 0; +#X connect 55 0 56 0; +#X connect 57 0 58 0; +#X connect 59 0 28 0; +#X connect 65 0 53 0; +#X connect 65 1 54 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/rpole~-help.pd puredata-0.52.2+ds0/doc/5.reference/rpole~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/rpole~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/rpole~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,18 +1,15 @@ -#N canvas 861 42 544 609 12; +#N canvas 504 36 528 607 12; #X declare -stdpath ./; -#X floatatom 147 186 4 0 0 0 - - - 0; -#X obj 80 99 osc~ 100; -#X msg 96 131 clear; -#X obj 60 10 rpole~; -#X text 26 42 Rpole~ filters an audio signal (left inlet) via a one-pole -real filter \, whose coefficient is controlled by a creation argument -or by an audio signal (right inlet).; -#X msg 104 157 set 1; -#X text 43 329 The transfer function is H(Z) = 1/(1 - aZ^-1).; -#X text 44 291 where y[n] is the output \, x[n] the input \, and a[n] +#X floatatom 141 192 4 0 0 0 - - - 0; +#X obj 74 105 osc~ 100; +#X msg 90 137 clear; +#X obj 21 10 rpole~; +#X msg 98 163 set 1; +#X text 37 335 The transfer function is H(Z) = 1/(1 - aZ^-1).; +#X text 38 297 where y[n] is the output \, x[n] the input \, and a[n] the filter coefficient. The filter is unstable if/when |a[n]|>1.; -#X obj 80 213 rpole~ 0.9; -#X text 41 244 The action of rpole~ is:; +#X obj 74 219 rpole~ 0.9; +#X text 35 250 The action of rpole~ is:; #N canvas 1193 233 313 353 test 0; #X obj 76 78 osc~; #X floatatom 76 55 5 0 0 0 - - - 0; @@ -39,37 +36,36 @@ #X connect 7 0 4 0; #X connect 8 0 9 0; #X connect 9 0 4 1; -#X restore 421 486 pd test; -#X text 100 266 y[n] = x[n] + a[n] * y[n-1]; -#X text 152 100 <= signal to filter; -#X text 148 131 <= clear internal state to zero; -#X text 152 156 <= set internal state; -#X text 182 185 <= filter coefficient (may be a signal); -#X text 168 213 <= creation argument initializes filter coefficient +#X restore 415 492 pd test; +#X text 94 272 y[n] = x[n] + a[n] * y[n-1]; +#X text 146 106 <= signal to filter; +#X text 142 137 <= clear internal state to zero; +#X text 146 162 <= set internal state; +#X text 176 191 <= filter coefficient (may be a signal); +#X text 162 219 <= creation argument initializes filter coefficient ; -#X text 122 10 - real one-pole (recursive) filter \, raw; -#X obj 93 534 lop~; -#X text 14 535 see also:; -#X obj 179 467 rzero~; -#X obj 119 490 cpole~; -#X obj 119 467 rpole~; -#X obj 239 467 rzero_rev~; -#X obj 179 490 czero~; -#X obj 239 490 czero_rev~; -#X text 318 467 real; -#X text 317 489 complex; -#X text 116 448 1-pole; -#X text 176 448 1-zero; -#X text 243 432 1-zero \, reversed, f 8; -#X text 25 472 summary of raw filters:, f 12; -#X obj 134 534 hip~; -#X obj 175 534 bp~; -#X obj 210 534 vcf~; -#X text 291 534 - user-friendly filters; -#X obj 251 534 bob~; -#X obj 381 407 bng 15 250 50 0 empty empty empty 17 7 0 10 #dcdcdc +#X obj 87 540 lop~; +#X text 8 541 see also:; +#X obj 173 473 rzero~; +#X obj 113 496 cpole~; +#X obj 113 473 rpole~; +#X obj 233 473 rzero_rev~; +#X obj 173 496 czero~; +#X obj 233 496 czero_rev~; +#X text 312 473 real; +#X text 311 495 complex; +#X text 110 454 1-pole; +#X text 170 454 1-zero; +#X text 237 438 1-zero \, reversed, f 8; +#X text 19 478 summary of raw filters:, f 12; +#X obj 128 540 hip~; +#X obj 169 540 bp~; +#X obj 204 540 vcf~; +#X text 285 540 - user-friendly filters; +#X obj 245 540 bob~; +#X obj 375 413 bng 17 250 50 0 empty empty empty 17 7 0 10 #ffffff #000000 #000000; -#X text 24 360 Pd also provides a suite of user-friendly filters. This +#X text 18 366 Pd also provides a suite of user-friendly filters. This and other raw filters are provided for situations which the user-friendly ones can't handle. See Chapter 8 of http://msp.ucsd.edu/techniques.htm for an introduction to the necessary theory (click) =>, f 69; @@ -80,14 +76,51 @@ ; #X connect 0 0 2 0; #X connect 2 0 1 0; -#X restore 381 440 pd Read-More; -#X obj 16 567 biquad~; -#X text 191 567 - not so friendly; -#X obj 77 566 fexpr~; -#X obj 132 566 slop~, f 7; -#X text 342 564 updated for Pd version 0.42; -#X connect 0 0 8 1; -#X connect 1 0 8 0; -#X connect 2 0 8 0; -#X connect 5 0 8 0; -#X connect 37 0 39 0; +#X restore 375 446 pd Read-More; +#X obj 10 573 biquad~; +#X text 185 573 - not so friendly; +#X obj 71 572 fexpr~; +#X obj 126 572 slop~, f 7; +#X text 324 570 updated for Pd version 0.42; +#X text 73 10 - real one-pole filter; +#X text 30 48 Rpole~ filters an audio signal (left inlet) via a raw +one-pole (recursive) real filter \, whose coefficient is controlled +by a creation argument or by an audio signal (right inlet)., f 63 +; +#N canvas 698 156 568 277 reference 0; +#X obj 8 45 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 7 75 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 8 172 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 7 248 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 210 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X text 117 80 signal -; +#X obj 7 136 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X text 117 141 signal -; +#X text 124 115 clear -; +#X text 180 80 real signal to filter., f 49; +#X text 82 97 set -; +#X text 180 97 set internal state., f 49; +#X text 180 115 clear internal state to zero (same as "set 0")., f +49; +#X text 180 141 filter coefficient., f 49; +#X text 117 181 signal - filtered signal.; +#X text 119 220 1) float - filter coefficient (default 0)., f 43; +#X obj 29 16 rpole~; +#X text 81 16 - real one-pole filter.; +#X restore 359 9 pd reference; +#X text 453 9 <= click; +#X obj 3 38 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 3 528 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X connect 0 0 7 1; +#X connect 1 0 7 0; +#X connect 2 0 7 0; +#X connect 4 0 7 0; +#X connect 35 0 37 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/rsqrt~-help.pd puredata-0.52.2+ds0/doc/5.reference/rsqrt~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/rsqrt~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/rsqrt~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,44 +1,55 @@ -#N canvas 595 104 551 446 12; -#X floatatom 85 115 5 0 0 0 - - - 0; -#X floatatom 85 271 8 0 0 0 - - - 0; -#X obj 99 194 loadbang; -#X obj 85 245 snapshot~; -#X floatatom 85 405 9 0 0 0 - - - 0; -#X obj 85 298 t f f; -#X obj 85 325 *; -#X obj 69 19 rsqrt~; -#X text 138 17 - signal reciprocal square root; -#X text 51 48 rsqrt~ takes the approximate reciprocal square root of -the incoming signal \, using a fast \, approximate algorithm which -is probably accurate to about 120 dB (20 bits).; -#X obj 85 165 rsqrt~; -#X text 336 401 updated for Pd version 0.47.; -#X text 200 400 see also:; -#X obj 279 400 sqrt~; -#X text 374 335 - deprecated; -#X obj 302 333 q8_rsqrt~; -#X text 247 259 An older object \, q8_rsqrt~ \, is included in Pd for +#N canvas 558 25 524 436 12; +#X floatatom 245 123 7 0.1 100 0 - - - 0; +#X floatatom 245 258 8 0 0 0 - - - 0; +#X obj 245 229 snapshot~; +#X obj 22 14 rsqrt~; +#X text 79 13 - signal reciprocal square root; +#X obj 245 177 rsqrt~; +#X text 305 401 updated for Pd version 0.47.; +#X text 13 400 see also:; +#X obj 92 400 sqrt~; +#X text 398 330 - deprecated; +#X obj 326 328 q8_rsqrt~; +#X text 24 306 An older object \, q8_rsqrt~ \, is included in Pd for back compatibility but should probably not be used. It only gives about -8 bit accuracy., f 37; -#X msg 203 177 \; pd dsp \$1; -#X obj 203 150 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +8 bit accuracy., f 40; +#X msg 84 201 \; pd dsp \$1; +#X obj 84 174 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 223 151 DSP on/off; -#X obj 85 141 sig~ 2; -#X floatatom 85 352 9 0 0 0 - - - 0; -#X obj 99 218 metro 200; -#X text 148 271 <= result; -#X obj 85 376 expr 1 / $f1; -#X connect 0 0 20 0; -#X connect 1 0 5 0; -#X connect 2 0 22 0; -#X connect 3 0 1 0; -#X connect 5 0 6 0; -#X connect 5 1 6 1; -#X connect 6 0 21 0; -#X connect 10 0 3 0; -#X connect 18 0 17 0; -#X connect 20 0 10 0; -#X connect 21 0 24 0; -#X connect 22 0 3 0; -#X connect 24 0 4 0; +#X text 104 175 DSP on/off; +#X obj 245 149 sig~ 2; +#X obj 307 192 metro 200; +#X text 308 258 <= result; +#X text 43 58 rsqrt~ takes the approximate reciprocal square root of +the incoming signal (the same as '1/sqrt(input) using a fast approximate +algorithm which is probably accurate to about 120 dB (20 bits).; +#X obj 6 47 cnv 1 510 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 836 209 472 189 reference 0; +#X obj 9 46 cnv 5 450 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 91 cnv 2 450 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 128 cnv 2 450 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 163 cnv 5 450 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 125 137 NONE, f 36; +#X obj 38 16 rsqrt~; +#X text 95 15 - signal reciprocal square root.; +#X text 84 59 signal - input to recciprocal square root function.; +#X text 84 99 signal - output of recciprocal square root function. +; +#X restore 342 13 pd reference; +#X text 439 13 <= click; +#X obj 5 388 cnv 1 510 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 140 400 expr~; +#X obj 307 167 loadbang; +#X connect 0 0 15 0; +#X connect 2 0 1 0; +#X connect 5 0 2 0; +#X connect 13 0 12 0; +#X connect 15 0 5 0; +#X connect 16 0 2 0; +#X connect 24 0 16 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/rzero~-help.pd puredata-0.52.2+ds0/doc/5.reference/rzero~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/rzero~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/rzero~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,9 +1,9 @@ -#N canvas 673 119 540 605 12; +#N canvas 448 50 540 593 12; #X declare -stdpath ./; -#X floatatom 114 183 4 0 0 0 - - - 0; -#X obj 61 98 osc~ 100; -#X msg 77 130 clear; -#X msg 85 156 set 1; +#X floatatom 122 185 4 0 0 0 - - - 0; +#X obj 69 102 osc~ 100; +#X msg 85 132 clear; +#X msg 93 158 set 1; #N canvas 711 170 318 329 test 0; #X obj 98 89 osc~; #X floatatom 98 66 5 0 0 0 - - - 0; @@ -31,25 +31,20 @@ #X connect 10 0 11 1; #X connect 10 0 11 0; #X restore 420 480 pd test; -#X obj 60 10 rzero~; -#X text 122 10 real one-zero (non-recursive) filter \, raw; -#X text 34 41 Rzero~ filters an audio signal (left inlet) via a one-zero -real filter \, whose coefficient is controlled by a creation argument -or by an audio signal (right inlet).; -#X obj 61 208 rzero~ 1; +#X obj 30 10 rzero~; +#X obj 69 210 rzero~ 1; #X text 34 283 where y[n] is the output \, x[n] the input \, and a[n] the filter coefficient. The filter is always stable.; #X text 35 319 The transfer function is H(Z) = 1 - aZ^-1.; #X text 94 262 y[n] = x[n] - a[n] * x[n-1]; #X text 40 242 The action of rzero~ is:; -#X text 141 99 <= signal to filter; -#X text 125 129 <= clear internal state to zero; -#X text 139 156 <= set internal state; -#X text 147 183 <= filter coefficient (may be a signal); -#X text 134 208 <= creation argument initializes filter coefficient +#X text 149 103 <= signal to filter; +#X text 133 131 <= clear internal state to zero; +#X text 147 158 <= set internal state; +#X text 155 185 <= filter coefficient (may be a signal); +#X text 142 210 <= creation argument initializes filter coefficient ; -#X obj 96 530 lop~; -#X text 17 531 see also:; +#X obj 88 530 lop~; #X obj 179 463 rzero~; #X obj 119 486 cpole~; #X obj 119 463 rpole~; @@ -62,12 +57,12 @@ #X text 176 444 1-zero; #X text 243 428 1-zero \, reversed, f 8; #X text 25 468 summary of raw filters:, f 12; -#X obj 137 530 hip~; -#X obj 178 530 bp~; -#X obj 213 530 vcf~; -#X text 294 530 - user-friendly filters; -#X obj 254 530 bob~; -#X obj 381 403 bng 15 250 50 0 empty empty empty 17 7 0 10 #dcdcdc +#X obj 129 530 hip~; +#X obj 170 530 bp~; +#X obj 205 530 vcf~; +#X text 286 530 - user-friendly filters; +#X obj 246 530 bob~; +#X obj 381 403 bng 17 250 50 0 empty empty empty 17 7 0 10 #ffffff #000000 #000000; #X text 24 356 Pd also provides a suite of user-friendly filters. This and other raw filters are provided for situations which the user-friendly @@ -86,8 +81,46 @@ #X obj 80 561 fexpr~; #X obj 135 561 slop~, f 7; #X text 335 562 updated for Pd version 0.38; -#X connect 0 0 8 1; -#X connect 1 0 8 0; -#X connect 2 0 8 0; -#X connect 3 0 8 0; -#X connect 37 0 39 0; +#X text 15 530 see also:; +#N canvas 675 145 567 283 reference 0; +#X obj 8 45 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 180 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 7 256 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 218 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X text 127 79 signal -; +#X text 127 149 signal -; +#X text 134 115 clear -; +#X text 190 79 real signal to filter., f 49; +#X text 92 97 set -; +#X text 190 97 set internal state., f 49; +#X text 190 115 clear internal state to zero (same as "set 0")., f +49; +#X text 190 149 filter coefficient., f 49; +#X text 127 189 signal - filtered signal.; +#X text 129 228 1) float - filter coefficient (default 0)., f 43; +#X obj 30 10 rzero~; +#X text 92 10 - real one-zero filter; +#X obj 7 74 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 7 139 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X restore 368 9 pd reference; +#X text 462 9 <= click; +#X obj 9 38 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 14 516 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 82 10 - real one-zero filter; +#X text 37 45 Rzero~ filters an audio signal (left inlet) via a raw +one-zero (recursive) real filter \, whose coefficient is controlled +by a creation argument or by an audio signal (right inlet)., f 63 +; +#X connect 0 0 6 1; +#X connect 1 0 6 0; +#X connect 2 0 6 0; +#X connect 3 0 6 0; +#X connect 34 0 36 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/rzero_rev~-help.pd puredata-0.52.2+ds0/doc/5.reference/rzero_rev~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/rzero_rev~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/rzero_rev~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,9 +1,9 @@ -#N canvas 702 77 548 597 12; +#N canvas 507 50 535 587 12; #X declare -stdpath ./; -#X floatatom 132 197 4 0 0 0 - - - 0; -#X obj 51 113 osc~ 100; -#X msg 67 145 clear; -#X msg 79 171 set 1; +#X floatatom 128 199 4 0 0 0 - - - 0; +#X obj 47 115 osc~ 100; +#X msg 63 147 clear; +#X msg 75 173 set 1; #N canvas 1015 291 317 298 test 0; #X obj 92 77 osc~; #X floatatom 92 54 5 0 0 0 - - - 0; @@ -30,48 +30,42 @@ #X connect 10 0 2 0; #X connect 10 0 11 0; #X connect 10 0 11 1; -#X restore 405 468 pd test; -#X text 37 291 where y[n] is the output \, x[n] the input \, and a[n] +#X restore 400 468 pd test; +#X text 32 294 where y[n] is the output \, x[n] the input \, and a[n] the filter coefficient. The filter is always stable., f 56; -#X obj 53 11 rzero_rev~; -#X text 142 11 real one-zero (non-recursive) "reverse" filter \, raw +#X obj 20 10 rzero_rev~; +#X obj 47 225 rzero_rev~ 1; +#X text 95 275 y[n] = -a[n] * x[n] + x[n-1]; +#X text 30 326 The transfer function is H(Z) = -a + Z^-1.; +#X text 151 227 <= creation argument initializes filter coefficient ; -#X obj 51 223 rzero_rev~ 1; -#X text 18 40 Rzero_rev~ filters an audio signal (left inlet) via a -one-zero real filter \, whose coefficient is controlled by a creation -argument or by an audio signal (right inlet). The impulse response -is that of "rzero" reversed in time., f 68; -#X text 100 272 y[n] = -a[n] * x[n] + x[n-1]; -#X text 35 323 The transfer function is H(Z) = -a + Z^-1.; -#X text 155 225 <= creation argument initializes filter coefficient -; -#X text 164 197 <= filter coefficient (may be a signal); -#X text 125 171 <= set internal state; -#X text 111 144 <= clear internal state to zero; -#X text 122 113 <= signal to filter; -#X text 43 251 The action of rzero_rev~ is:; -#X obj 95 523 lop~; -#X text 16 524 see also:; -#X obj 178 456 rzero~; -#X obj 118 479 cpole~; -#X obj 118 456 rpole~; -#X obj 238 456 rzero_rev~; -#X obj 178 479 czero~; -#X obj 238 479 czero_rev~; -#X text 317 456 real; -#X text 316 478 complex; -#X text 115 437 1-pole; -#X text 175 437 1-zero; -#X text 242 421 1-zero \, reversed, f 8; -#X text 24 461 summary of raw filters:, f 12; -#X obj 136 523 hip~; -#X obj 177 523 bp~; -#X obj 212 523 vcf~; -#X text 293 523 - user-friendly filters; -#X obj 253 523 bob~; -#X obj 380 396 bng 15 250 50 0 empty empty empty 17 7 0 10 #dcdcdc +#X text 160 199 <= filter coefficient (may be a signal); +#X text 121 173 <= set internal state; +#X text 107 146 <= clear internal state to zero; +#X text 118 115 <= signal to filter; +#X text 38 254 The action of rzero_rev~ is:; +#X obj 90 523 lop~; +#X text 11 524 see also:; +#X obj 173 456 rzero~; +#X obj 113 479 cpole~; +#X obj 113 456 rpole~; +#X obj 233 456 rzero_rev~; +#X obj 173 479 czero~; +#X obj 233 479 czero_rev~; +#X text 312 456 real; +#X text 311 478 complex; +#X text 110 437 1-pole; +#X text 170 437 1-zero; +#X text 237 421 1-zero \, reversed, f 8; +#X text 19 461 summary of raw filters:, f 12; +#X obj 131 523 hip~; +#X obj 172 523 bp~; +#X obj 207 523 vcf~; +#X text 288 523 - user-friendly filters; +#X obj 248 523 bob~; +#X obj 375 396 bng 17 250 50 0 empty empty empty 17 7 0 10 #ffffff #000000 #000000; -#X text 23 349 Pd also provides a suite of user-friendly filters. This +#X text 18 349 Pd also provides a suite of user-friendly filters. This and other raw filters are provided for situations which the user-friendly ones can't handle. See Chapter 8 of http://msp.ucsd.edu/techniques.htm for an introduction to the necessary theory (click) =>, f 69; @@ -82,14 +76,51 @@ ; #X connect 0 0 2 0; #X connect 2 0 1 0; -#X restore 380 429 pd Read-More; -#X obj 19 553 biquad~; -#X text 194 553 - not so friendly; -#X obj 80 552 fexpr~; -#X obj 135 552 slop~, f 7; -#X text 345 553 updated for Pd vrsion 0.38; -#X connect 0 0 8 1; -#X connect 1 0 8 0; -#X connect 2 0 8 0; -#X connect 3 0 8 0; -#X connect 37 0 39 0; +#X restore 375 429 pd Read-More; +#X obj 14 553 biquad~; +#X text 189 553 - not so friendly; +#X obj 75 552 fexpr~; +#X obj 130 552 slop~, f 7; +#X text 109 10 real one-zero "reverse" filter; +#X text 13 45 Rzero_rev~ filters an audio signal (left inlet) via a +raw one-zero (non-recursive) real filter \, whose coefficient is controlled +by a creation argument or by an audio signal (right inlet). The impulse +response is that of "rzero" reversed in time., f 68; +#N canvas 682 162 571 284 reference 0; +#X obj 8 45 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 7 74 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 8 173 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 7 250 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 212 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X text 117 79 signal -; +#X obj 7 139 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X text 117 145 signal -; +#X text 124 115 clear -; +#X obj 25 12 rzero_rev~; +#X text 105 11 - real one-zero "reverse" filter.; +#X text 180 79 real signal to filter., f 49; +#X text 82 97 set -; +#X text 180 97 set internal state., f 49; +#X text 180 115 clear internal state to zero (same as "set 0")., f +49; +#X text 180 145 filter coefficient., f 49; +#X text 117 184 signal - filtered signal.; +#X text 119 222 1) float - filter coefficient (default 0)., f 43; +#X restore 363 9 pd reference; +#X text 457 9 <= click; +#X obj 4 38 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 9 509 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 332 553 updated for Pd version 0.38; +#X connect 0 0 7 1; +#X connect 1 0 7 0; +#X connect 2 0 7 0; +#X connect 3 0 7 0; +#X connect 35 0 37 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/samphold~-help.pd puredata-0.52.2+ds0/doc/5.reference/samphold~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/samphold~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/samphold~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,40 +1,90 @@ -#N canvas 863 134 546 573 12; -#X obj 74 492 snapshot~; -#X floatatom 74 523 6 0 0 0 - - - 0; -#X obj 93 465 metro 100; -#X obj 43 14 samphold~; -#X text 120 13 - sample and hold unit; -#X obj 74 385 samphold~; -#X text 37 47 The samphold~ object samples its left input whenever +#N canvas 493 34 542 605 12; +#X obj 37 503 snapshot~; +#X floatatom 37 534 6 0 0 0 - - - 0; +#X obj 56 476 metro 100; +#X obj 27 14 samphold~; +#X text 104 13 - sample and hold unit; +#X obj 37 396 samphold~; +#X text 27 58 The samphold~ object samples its left input whenever its right input decreases in value (as a phasor~ does each period \, -for example.) Both inputs are audio signals., f 66; -#X obj 109 351 sig~; -#X obj 165 375 sig~; -#X floatatom 109 326 6 0 0 0 - - - 0; -#X floatatom 165 353 4 0 0 0 - - - 0; -#X msg 74 223 set 34; -#X msg 93 292 reset; -#X text 139 221 set output to a number; -#X text 159 326 sample signal; -#X text 199 353 control signal; -#X msg 82 255 reset 10; -#X text 161 253 reset previous value; -#X text 150 303 to force the next sample; -#X text 292 522 updated for Pd version 0.39; -#X text 161 267 for control inlet; -#X text 149 289 reset to default 1e+20; -#X text 38 100 The "set" message sets the output value (which continues -to be updated as normal afterward.) The "reset" message causes samphold~ -to act as if the specified value were the most recent value of the -control input. Use this \, for example \, if you reset the incoming -phasor but don't want the jump reflected in the output. Plain "reset" -is equivalent to "reset infinity" which forces the next input to be -sampled., f 66; -#X obj 93 440 loadbang; -#X obj 192 431 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +for example.) Both inputs are audio signals., f 69; +#X obj 70 353 sig~; +#X obj 123 408 sig~; +#X floatatom 70 328 5 0 0 0 - - - 0; +#X floatatom 123 386 5 0 0 0 - - - 0; +#X msg 37 234 set 34; +#X msg 59 293 reset; +#X text 89 233 set output to a number; +#X msg 47 263 reset 10; +#X text 321 574 updated for Pd version 0.39; +#X obj 56 451 loadbang; +#X obj 203 441 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X msg 192 456 \; pd dsp \$1; -#X text 211 430 DSP on/off; +#X msg 203 466 \; pd dsp \$1; +#X text 222 440 DSP on/off; +#X obj 395 374 phasor~ 1; +#X obj 335 300 noise~; +#X obj 335 402 samphold~; +#X obj 415 472 snapshot~; +#X floatatom 415 503 10 0 0 0 - - - 0; +#X obj 415 433 metro 100; +#X obj 415 408 loadbang; +#X msg 455 324 0; +#X msg 357 342 reset 0; +#X obj 455 297 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#X text 27 111 The "set" message sets the output value (which gets +updated normally afterward.) The "reset" message causes samphold~ to +act as if the given value were the most recent value of the control +(right) input. Use this \, for example \, if you reset the incoming +phasor but don't want the jump reflected in the output as in the example +below to the right. Plain "reset" is equivalent to "reset infinity" +which forces the next input to be sampled., f 69; +#X text 304 235 Sampling random values from noise at a frequency of +1Hz., f 28; +#X text 412 277 restart cycle, f 7; +#X msg 123 358 1; +#X msg 159 358 0; +#X text 113 328 <-- sample signal; +#X text 163 386 <-- control signal; +#X text 105 287 reset to default 1e+20 to force the next sample, f +24; +#X text 115 255 reset previous value for control inlet, f 20; +#N canvas 523 143 610 306 reference 0; +#X obj 8 45 cnv 5 590 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 73 cnv 1 590 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 8 197 cnv 2 590 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 7 276 cnv 5 590 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 239 cnv 2 590 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X text 100 79 signal -; +#X obj 8 156 cnv 1 590 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X text 100 165 signal -; +#X text 65 97 set -; +#X obj 35 11 samphold~; +#X text 112 10 - sample and hold unit; +#X text 163 79 input to be sampled., f 49; +#X text 51 116 reset -; +#X text 163 97 set output value., f 49; +#X text 163 116 set last value of right inlet., f 49; +#X text 107 134 reset -; +#X text 160 249 NONE, f 5; +#X text 98 210 signal - sampled and held signal.; +#X text 163 165 control signal (triggers when smaller than previous) +; +#X text 163 134 set last value of right inlet to infinity (forces output). +; +#X restore 348 13 pd reference; +#X text 442 13 <= click; +#X obj 9 44 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 14 567 cnv 1 520 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 0 0 1 0; #X connect 2 0 0 0; #X connect 5 0 0 0; @@ -44,6 +94,18 @@ #X connect 10 0 8 0; #X connect 11 0 5 0; #X connect 12 0 5 0; -#X connect 16 0 5 0; -#X connect 23 0 2 0; -#X connect 24 0 25 0; +#X connect 14 0 5 0; +#X connect 16 0 2 0; +#X connect 17 0 18 0; +#X connect 20 0 22 1; +#X connect 21 0 22 0; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 25 0 23 0; +#X connect 26 0 25 0; +#X connect 27 0 20 1; +#X connect 28 0 22 0; +#X connect 29 0 27 0; +#X connect 29 0 28 0; +#X connect 33 0 10 0; +#X connect 34 0 10 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/samplerate~-help.pd puredata-0.52.2+ds0/doc/5.reference/samplerate~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/samplerate~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/samplerate~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,11 +1,12 @@ -#N canvas 830 122 537 475 12; -#X obj 108 22 samplerate~; -#X text 316 419 updated for Pd version 0.47; -#X obj 230 329 samplerate~; -#X floatatom 230 356 7 0 0 0 - - - 0; -#X obj 230 303 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#N struct template1 float x float y float z float q; +#N canvas 534 53 518 442 12; +#X obj 27 16 samplerate~; +#X text 306 401 updated for Pd version 0.47; +#X obj 204 307 samplerate~; +#X floatatom 204 334 7 0 0 0 - - - 0; +#X obj 204 281 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 230 276 receive pd-dsp-started; +#X obj 204 254 receive pd-dsp-started; #N canvas 1053 210 443 248 resampling 0; #X obj 90 140 block~ 64 1 0.5; #X obj 231 130 samplerate~; @@ -17,26 +18,47 @@ #X text 255 96 <= click; #X connect 1 0 3 0; #X connect 2 0 1 0; -#X restore 377 333 pd resampling; -#X text 40 396 see also:; -#X obj 98 421 receive; -#X msg 84 313 \; pd dsp \$1; -#X obj 84 288 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X restore 356 316 pd resampling; +#X text 18 404 see also:; +#X obj 149 404 receive; +#X msg 62 297 \; pd dsp \$1; +#X obj 62 272 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X obj 42 421 block~; -#X text 208 21 - get sample rate; -#X text 65 65 When sent a 'bang' message \, samplerate~ outputs the +#X obj 93 404 block~; +#X text 118 15 - get sample rate; +#X text 44 73 When sent a 'bang' message \, samplerate~ outputs the current audio sample rate. If called within a subwindow that is up- or down-sampled \, the sample rate of signals within that subwindow -are reported (see [pd resampling] subpatch below)., f 57; -#X text 65 160 Here we litsen to "pd-dsp-started" to receive a bang +are reported (see [pd resampling] subpatch below).; +#X text 87 270 DSP On/Off; +#X obj 211 403 pd-messages; +#N canvas 695 169 585 201 reference 0; +#X obj 18 49 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 18 93 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 18 130 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X obj 17 167 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 133 63 bang -; +#X obj 39 16 samplerate~; +#X text 130 15 - get sample rate; +#X text 183 63 output current sample rate., f 46; +#X text 126 103 float - sample rate value in Hz., f 54; +#X text 166 141 NONE, f 9; +#X restore 321 17 pd reference; +#X text 419 17 <= click; +#X obj 10 49 cnv 1 490 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 18 379 cnv 1 490 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 44 139 Here we listen to "pd-dsp-started" to receive a bang (automatically sent when DSP is started in Pd) to get the sample rate when DSP starts. This also works whenever the sample rate may change when the audio is running. This is useful when designing filters whose coefficients usually have to be updated when the sample rate changes. -; -#X text 109 286 DSP On/Off; -#X obj 160 420 Pd-messages; +, f 60; #X connect 2 0 3 0; #X connect 4 0 2 0; #X connect 5 0 4 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/savepanel-help.pd puredata-0.52.2+ds0/doc/5.reference/savepanel-help.pd --- puredata-0.52.1+ds0/doc/5.reference/savepanel-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/savepanel-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,20 +1,58 @@ -#N canvas 716 131 545 333 12; -#X msg 66 111 bang; -#X obj 66 254 print; -#X text 67 297 see also:; -#X text 31 45 When savepanel gets a "bang" a "Save As" file browser +#N canvas 491 50 639 364 12; +#X msg 63 131 bang; +#X obj 63 274 print; +#X text 23 326 see also:; +#X text 50 63 When savepanel gets a "bang" a "Save As" file browser appears on the screen \, If you choose a filename \, it appears on -the outlet.; -#X obj 66 199 savepanel; -#X obj 141 296 openpanel; -#X obj 19 7 savepanel; -#X text 104 6 - query you for the name of a file to create; -#X text 115 110 Starts panel in current directory; -#X text 191 139 Starts in specified directory; -#X msg 83 139 symbol /tmp; -#X msg 92 169 symbol ../; -#X text 293 295 updated for Pd version 0.48; -#X symbolatom 66 226 60 0 0 0 - - - 0; +the outlet., f 70; +#X obj 63 219 savepanel; +#X obj 97 325 openpanel; +#X obj 23 11 savepanel; +#X text 98 10 - query you for the name of a file to create; +#X text 112 130 Starts panel in current directory; +#X text 174 161 Starts in specified directory, f 10; +#X msg 80 159 symbol /tmp; +#X msg 89 189 symbol ../; +#X text 415 325 updated for Pd version 0.48; +#X symbolatom 63 246 75 0 0 0 - - - 0; +#N canvas 708 227 389 296 current-directory 0; +#X obj 155 149 pdcontrol; +#X msg 155 119 dir; +#X obj 155 219 print; +#X text 47 34 With the 'dir' message to the [pdcontrol] object \, you +can make savepanel open the current directory for querying for files. +, f 41; +#X obj 155 185 savepanel; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 4 0 2 0; +#X restore 348 179 pd current-directory; +#X obj 175 325 pdcontrol; +#N canvas 719 102 583 215 reference 0; +#X obj 18 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 18 115 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 18 152 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 186 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 113 66 bang -; +#X text 99 85 symbol -; +#X obj 38 18 savepanel; +#X text 113 17 - query you for the name of a file to create.; +#X text 163 66 open dialog window to choose a file name to save to. +; +#X text 126 159 NONE, f 45; +#X text 129 125 symbol - file name., f 54; +#X text 163 85 set starting directory and open dialog window., f 50 +; +#X restore 452 11 pd reference; +#X text 550 12 <= click; +#X obj 5 45 cnv 1 625 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 5 309 cnv 1 625 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 0 0 4 0; #X connect 4 0 13 0; #X connect 10 0 4 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/savestate-help.pd puredata-0.52.2+ds0/doc/5.reference/savestate-help.pd --- puredata-0.52.1+ds0/doc/5.reference/savestate-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/savestate-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,30 +1,24 @@ -#N canvas 192 103 1042 471 12; -#X obj 82 73 savestate-example; -#A saved 110 660; -#X text 223 71 open the abstraction at left (right- or CTRL- click +#N canvas 385 48 848 453 12; +#X text 203 229 open the abstraction at left (right- or CTRL- click and select "open" in popup menu) to see how the savestate object is -used from within., f 46; -#X obj 82 158 savestate-example; +used from within., f 29; +#X obj 62 316 savestate-example; #A saved 221 440; -#X text 223 162 parameters for different copies of the abstraction -are saved and restored independently., f 32; -#X text 828 430 updated for Pd version 0.49.; -#X text 84 281 The abstraction may itself be modified at will without +#X text 203 320 parameters for different copies of the abstraction +are saved and restored independently., f 25; +#X text 617 418 updated for Pd version 0.49.; +#X text 470 109 The abstraction may itself be modified at will without disturbing the saved states of its copies in any calling patches \, as long as the usage of the saved and restored lists is kept compatible. +, f 49; +#X text 469 330 Hint: 'text' objects can be saved/restored using 'text +tolist' and 'text fromlist'., f 49; +#X obj 39 13 savestate; +#X text 112 12 - save and restore run-time state from within an abstraction ; -#X text 610 272 Multiple savestate objects are not differentiated - -they all receive all lists sent to any one of them.; -#X text 610 322 Hint: 'text' objects can be saved/restored using 'text -tolist' and 'text fromlist'.; -#X text 86 250 Abstractions within 'clone' objects are not handled. -; -#X obj 75 27 savestate; -#X text 148 26 - save and restore run-time state from within an abstraction -; -#X text 608 66 The savestate object is used inside abstractions to -save their state as they are used in a calling (parent) patch. When -the parent patch (such as this one \, which calls the "savestate-example" +#X text 22 58 The savestate object is used inside abstractions to save +their state as they are used in a calling (parent) patch. When the +parent patch (such as this one \, which calls the "savestate-example" abstraction) is saved \, the included savestate object sends a 'bang' message out its right outlet \, with which the abstraction may respond by presenting one or more 'list' messages back to the 'savestate' object. @@ -32,8 +26,44 @@ patch is reopened later \, the lists are sent out the left outlet of the savestate object. The abstraction can then use them to restore its state.; -#X text 83 355 The saved messages are output when the object is recreated +#X text 469 175 The saved messages are output when the object is recreated \, before any outside connections are made and possibly before other parts of a saved patch have been restored. You can use a "loadbang" object to send messages to objects elsewhere in the owning patch at -load time once the entire patch is loaded.; +load time once the entire patch is loaded., f 49; +#N canvas 689 98 622 256 reference 0; +#X obj 18 52 cnv 5 580 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 18 95 cnv 2 580 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 18 191 cnv 2 580 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X obj 17 225 cnv 5 580 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 176 198 NONE, f 15; +#X obj 41 16 savestate; +#X text 115 16 - save and restore run-time state from within an abstraction. +, f 61; +#X text 123 66 list -; +#X text 173 66 one or more list when the parent patch gets saved.; +#X obj 17 149 cnv 1 580 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 17 117 cnv 1 580 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 123 122 list -; +#X text 173 122 one or more list when the parent patch is opened.; +#X text 123 156 bang -; +#X text 173 156 when the parent patch is saved.; +#X restore 630 13 pd reference; +#X text 728 14 <= click; +#X obj 7 45 cnv 1 835 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 470 73 Note that abstractions within 'clone' objects are not +handled!, f 49; +#X obj 7 405 cnv 1 835 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 62 231 savestate-example; +#A saved 110 660; +#X text 469 281 Multiple savestate objects aren't differentiated \, +so they all receive all lists sent to any one of them and output them. +, f 49; diff -Nru puredata-0.52.1+ds0/doc/5.reference/scalar-object-help.pd puredata-0.52.2+ds0/doc/5.reference/scalar-object-help.pd --- puredata-0.52.1+ds0/doc/5.reference/scalar-object-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/scalar-object-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,70 +1,100 @@ -#N canvas 456 281 617 350 12; -#X text 59 276 see also:; +#N canvas 546 46 606 312 12; +#X text 26 277 see also:; #X text 463 130 (click for details:), f 11; -#N canvas 487 65 733 508 define 0; -#X text 355 335 creation arguments:; -#X text 256 153 send a pointer to a named receive object; -#X floatatom 135 284 5 0 0 0 - - -; -#X text 77 344 click to open or edit array:; -#X msg 43 112 read scalar-object-help.txt; -#X text 246 113 read/write a file TBW; -#X obj 135 236 r scalar-help-send; -#X text 390 393 template; -#X text 391 414 optional name (TBW); -#X obj 135 260 get scalar-help-template1 x; -#N canvas 464 264 450 300 scalar-help-template1 0; -#X obj 62 55 struct scalar-help-template1 float x float y; -#X obj 55 99 drawpolygon 3 3 0 0 0 30 30 30 30 0 0 0; -#X msg 89 193 traverse pd-scalar-help-template1 \, bang; -#X obj 89 218 pointer; -#X msg 20 195 40 40; -#X obj 53 252 append scalar-help-template1 x y; +#N canvas 487 65 716 509 define 0; +#X text 345 355 creation arguments:; +#X text 231 173 send a pointer to a named receive object; +#X floatatom 118 304 5 0 0 0 - - - 0; +#X text 67 364 click to open or edit array:; +#X msg 33 132 read scalar-object-help.txt; +#X obj 118 256 r scalar-help-send; +#X text 380 413 template; +#X text 381 434 optional name (TBW); +#X obj 118 280 get scalar-help-template1 x; +#N canvas 598 122 560 277 scalar-help-template1 0; +#X obj 70 32 struct scalar-help-template1 float x float y; +#X obj 82 72 drawpolygon 3 3 0 0 0 30 30 30 30 0 0 0; +#X msg 267 136 traverse pd-scalar-help-template1 \, bang; +#X obj 267 171 pointer; +#X msg 47 157 40 40; +#X obj 47 211 append scalar-help-template1 x y; #X connect 2 0 3 0; #X connect 3 0 5 2; #X connect 4 0 5 0; -#X restore 481 58 pd scalar-help-template1; -#X floatatom 365 242 3 0 500 0 - - -; -#X obj 565 242 r scalar-help-send; -#X obj 365 291 set scalar-help-template1 x y; -#X floatatom 465 242 3 0 500 0 - - -; -#X text 42 21 "scalar define" defines and maintains a scalar.; -#X text 481 30 here's the template:; -#X obj 135 309 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 --1 -1; -#X msg 79 153 send scalar-help-send; -#X obj 58 371 scalar define -k scalar-help-template1; +#X restore 262 83 pd scalar-help-template1; +#X floatatom 345 272 5 0 500 0 - - - 0; +#X obj 545 272 r scalar-help-send; +#X obj 345 311 set scalar-help-template1 x y; +#X floatatom 445 272 5 0 500 0 - - - 0; +#X text 106 84 here's the template:; +#X obj 118 329 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#X msg 69 173 send scalar-help-send; +#X obj 48 391 scalar define -k scalar-help-template1; #A set scalar-help-template1 175 150 \;; -#X text 391 371 optional -k flag to keep contents; -#X obj 107 189 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 --1 -1; -#X text 133 188 bang to output a pointer to the scalar, f 45; -#X obj 58 411 get scalar-help-template1 x y; -#X floatatom 58 435 5 0 0 0 - - -; -#X floatatom 256 435 5 0 0 0 - - -; -#X connect 2 0 17 0; -#X connect 4 0 19 0; -#X connect 6 0 9 0; -#X connect 9 0 2 0; -#X connect 11 0 13 0; -#X connect 12 0 13 2; -#X connect 14 0 13 1; -#X connect 18 0 19 0; -#X connect 19 0 23 0; -#X connect 21 0 19 0; -#X connect 23 0 24 0; -#X connect 23 1 25 0; +#X text 381 391 optional -k flag to keep contents; +#X obj 97 209 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000; +#X text 122 208 bang to output a pointer to the scalar; +#X obj 48 431 get scalar-help-template1 x y; +#X floatatom 48 465 5 0 0 0 - - - 0; +#X floatatom 248 465 5 0 0 0 - - - 0; +#X obj 27 22 scalar define; +#X text 129 22 - defines and maintains a scalar.; +#X obj 7 54 cnv 1 700 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 614 20 <= click; +#N canvas 696 118 577 280 reference 0; +#X obj 9 49 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 110 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 250 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 91 83 send - send pointer to a named receive object +, f 61; +#X obj 32 16 scalar define; +#X text 136 16 - defines and maintains a scalar.; +#X text 154 62 bang - output a pointer to the scalar., f 52; +#X text 127 185 -k: saves/keeps the contents with the patch.; +#X text 134 120 pointer - a pointer to the scalar.; +#X obj 9 151 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 177 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 212 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 +0; +#X text 163 220 1) symbol - template name.; +#X restore 511 21 pd reference; +#X text 236 133 read/write a file (TBW); +#X connect 2 0 15 0; +#X connect 4 0 17 0; +#X connect 5 0 8 0; +#X connect 8 0 2 0; +#X connect 10 0 12 0; +#X connect 11 0 12 2; +#X connect 13 0 12 1; +#X connect 16 0 17 0; +#X connect 17 0 21 0; +#X connect 19 0 17 0; +#X connect 21 0 22 0; +#X connect 21 1 23 0; #X restore 464 171 pd define; -#X obj 188 276 text; +#X obj 153 276 text; #X text 179 169 - create \, store \, and/or edit one; -#X text 74 219 (later); -#X obj 58 21 scalar; -#X text 116 20 - create a scalar datum; +#X text 74 210 (later); +#X obj 26 16 scalar; #X obj 68 171 scalar define; -#X text 172 220 - more stuff; +#X text 179 211 - more stuff; #X text 59 139 The first argument sets the function:; -#X obj 139 275 array; -#X obj 229 276 list; -#X text 61 64 experimental - doesn't do much yet. This is included +#X obj 104 276 array; +#X obj 194 276 list; +#X text 372 276 updated for Pd version 0.49; +#X obj 7 47 cnv 1 590 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 84 15 - create a scalar datum (default [scalar define]).; +#X text 50 64 experimental - doesn't do much yet. This has been included in 0.45 to check that its design will work coherently with the array -and text objects.; -#X text 379 273 updated for Pd version 0.49; +and text objects., f 67; +#X obj 7 259 cnv 1 590 1 empty empty empty 8 12 0 13 #000000 #000000 +0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/select-help.pd puredata-0.52.2+ds0/doc/5.reference/select-help.pd --- puredata-0.52.1+ds0/doc/5.reference/select-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/select-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,111 +1,135 @@ -#N canvas 858 23 580 760 12; -#X floatatom 179 377 0 0 0 0 - - - 0; -#X msg 305 129 6; -#X msg 268 129 234; -#X floatatom 268 159 0 0 0 0 - - - 0; -#X msg 242 346 1; -#X msg 210 346 54; -#X obj 179 450 print x1; -#X obj 257 449 print x2; -#X msg 179 346 23; -#X msg 143 347 234; -#X msg 217 129 6; -#X obj 180 189 select 6, f 13; -#X msg 180 129 234; -#X obj 335 449 print x3; -#X obj 414 450 print x4; -#X floatatom 180 159 0 0 0 0 - - - 0; -#X obj 179 403 select 23 54 1, f 34; -#X obj 367 15 sel; -#X text 27 49 In its simplest form shown below \, Select checks its +#N canvas 576 23 575 673 12; +#X floatatom 365 330 5 0 0 0 - - - 0; +#X msg 210 162 6; +#X msg 173 162 234; +#X floatatom 173 192 5 0 0 0 - - - 0; +#X msg 382 298 1; +#X msg 376 271 54; +#X msg 365 241 23; +#X msg 348 210 234; +#X msg 122 162 6; +#X obj 85 222 select 6, f 13; +#X msg 85 162 234; +#X floatatom 85 192 5 0 0 0 - - - 0; +#X obj 365 356 select 23 54 1, f 16; +#X obj 55 40 sel; +#X msg 63 465 symbol cort; +#X msg 85 493 symbol zack; +#X msg 180 465 symbol cort; +#X msg 191 493 symbol zack; +#X obj 85 553 select cort, f 14; +#X obj 317 551 select cort zack, f 22; +#X text 38 635 see also:; +#X obj 112 636 route; +#X obj 55 15 select; +#X text 115 15 - compare numbers or symbols; +#X text 354 635 updated for Pd version 0.33; +#X text 91 40 - abbreviation; +#X floatatom 173 250 5 0 0 0 - - - 0; +#X obj 85 250 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000; +#X floatatom 474 384 5 0 0 0 - - - 0; +#X symbolatom 85 525 10 0 0 0 - - - 0; +#X symbolatom 180 577 10 0 0 0 - - - 0; +#X symbolatom 468 576 10 0 0 0 - - - 0; +#X text 27 79 In its simplest form shown below \, select checks its input against the constant "6". If they match \, the first outlet gives -"bang" and otherwise the input is copied to the second outlet. If Select +"bang" and otherwise the input is copied to the second outlet. If select is used with a single argument \, a second inlet allows you to change the test value., f 73; -#X text 32 283 You can give several arguments. You get an outlet for -each test value and finally an outlet for values which match none of -them. In this case you don't get inlets to change the test values: -, f 73; -#X obj 74 645 print x1; -#X obj 169 646 print x2; -#X msg 52 508 symbol cort; -#X msg 74 533 symbol zack; -#X msg 176 533 symbol cort; -#X msg 182 558 symbol zack; -#X obj 74 596 select cort, f 14; -#X msg 306 535 symbol cort; -#X msg 400 535 symbol zack; -#X obj 306 644 print x1; -#X obj 381 644 print x2; -#X obj 306 594 select cort zack, f 22; -#X obj 457 644 print x3; -#X msg 411 560 symbol bill; -#X text 162 500 Select can also be used to sort symbols:; -#X text 83 705 see also:; -#X obj 157 704 route; -#X obj 55 15 select; -#X text 115 15 - compare numbers or symbols; -#X text 310 703 updated for Pd version 0.33; -#X text 403 15 - abbreviation; -#X obj 180 243 print x1; -#X obj 268 243 print x2; -#X floatatom 268 215 0 0 0 0 - - - 0; -#X obj 190 219 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc -#000000 #000000; -#X obj 192 428 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X text 64 315 You can also give several arguments. You get an outlet +for each test value and finally an outlet for values which match none +of them. In this case you don't get inlets to change the test values. +, f 40; +#X symbolatom 180 525 10 0 0 0 - - - 0; +#X msg 317 462 symbol cort; +#X msg 411 462 symbol zack; +#X msg 422 487 symbol bill; +#X symbolatom 317 525 10 0 0 0 - - - 0; +#X obj 17 72 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 639 110 571 375 reference 0; +#X obj 11 46 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 11 157 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 11 310 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X obj 10 350 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 11 78 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 107 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 33 12 select; +#X text 93 12 - compare numbers or symbols; +#X text 73 83 float/symbol - input to compare to arguments.; +#X text 73 117 float/symbol -; +#X text 181 117 if there's one argument \, an inlet is created to update +it., f 47; +#X obj 11 188 cnv 1 550 1 empty empty n: 8 12 0 13 #7c7c7c #000000 +0; +#X text 128 194 bang -; +#X text 179 195 when the input matches an argument that corresponds +to the outlet., f 51; +#X text 84 161 (depends on the number of arguments); +#X obj 11 238 cnv 1 550 1 empty empty rightmost: 8 12 0 13 #7c7c7c +#000000 0; +#X text 73 267 float/symbol -; +#X text 179 266 when input doesn't match the arguments \, it is passed +here., f 52; +#X text 108 320 1) list - of floats or symbols to match to (default +0).; +#X restore 392 37 pd reference; +#X text 490 37 <= click; +#X obj 17 621 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 245 161 <= change argument; +#X text 74 420 Select can also be used to sort symbols \, but it cannot +mix floats and symbols:, f 40; +#X obj 85 577 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000; +#X obj 317 576 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 268 428 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X obj 392 576 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 348 428 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X obj 365 384 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X floatatom 414 427 5 0 0 0 - - - 0; -#X obj 84 622 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 -#000000; -#X symbolatom 74 568 10 0 0 0 - - - 0; -#X symbolatom 169 620 10 0 0 0 - - - 0; -#X obj 316 621 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X obj 401 384 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 391 621 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X obj 437 384 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X symbolatom 457 619 10 0 0 0 - - - 0; -#X connect 0 0 16 0; +#X obj 173 277 print unselected; +#X connect 0 0 12 0; #X connect 1 0 3 0; #X connect 2 0 3 0; -#X connect 3 0 11 1; +#X connect 3 0 9 1; #X connect 4 0 0 0; #X connect 5 0 0 0; -#X connect 8 0 0 0; -#X connect 9 0 0 0; -#X connect 10 0 15 0; -#X connect 11 0 44 0; -#X connect 11 0 41 0; -#X connect 11 1 43 0; -#X connect 12 0 15 0; -#X connect 15 0 11 0; -#X connect 16 0 6 0; -#X connect 16 0 45 0; -#X connect 16 1 7 0; -#X connect 16 1 46 0; -#X connect 16 2 13 0; -#X connect 16 2 47 0; -#X connect 16 3 48 0; -#X connect 22 0 50 0; -#X connect 23 0 50 0; -#X connect 24 0 26 1; -#X connect 25 0 26 1; -#X connect 26 0 20 0; -#X connect 26 0 49 0; -#X connect 26 1 51 0; -#X connect 27 0 31 0; -#X connect 28 0 31 0; -#X connect 31 0 29 0; -#X connect 31 0 52 0; -#X connect 31 1 30 0; -#X connect 31 1 53 0; -#X connect 31 2 54 0; -#X connect 33 0 31 0; -#X connect 43 0 42 0; -#X connect 48 0 14 0; -#X connect 50 0 26 0; -#X connect 51 0 21 0; -#X connect 54 0 32 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 11 0; +#X connect 9 0 27 0; +#X connect 9 1 26 0; +#X connect 10 0 11 0; +#X connect 11 0 9 0; +#X connect 12 0 48 0; +#X connect 12 1 49 0; +#X connect 12 2 50 0; +#X connect 12 3 28 0; +#X connect 14 0 29 0; +#X connect 15 0 29 0; +#X connect 16 0 34 0; +#X connect 17 0 34 0; +#X connect 18 0 45 0; +#X connect 18 1 30 0; +#X connect 19 0 46 0; +#X connect 19 1 47 0; +#X connect 19 2 31 0; +#X connect 26 0 51 0; +#X connect 29 0 18 0; +#X connect 34 0 18 1; +#X connect 35 0 38 0; +#X connect 36 0 38 0; +#X connect 37 0 38 0; +#X connect 38 0 19 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/send~-help.pd puredata-0.52.2+ds0/doc/5.reference/send~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/send~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/send~-help.pd 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ -#N canvas 605 73 547 527 12; -#X floatatom 246 322 0 0 0 0 - - - 0; -#X obj 246 256 receive~ signal1; -#X obj 121 240 send~ signal1; -#X obj 121 217 sig~ 50; -#X obj 246 297 snapshot~; -#X obj 62 23 send~; -#X obj 112 24 receive~; -#X text 180 24 - one-to-many nonlocal signal connections; -#X obj 376 268 metro 200; -#X floatatom 121 193 4 0 0 0 - - - 0; -#X text 60 88 A send~ object copies its input to a local buffer which -all receive~ objects of the same name read from. They may be in different -windows or even different patches. Any number of receives may be associated -with one send~ but it is an error to have two send~s of the same name. -; -#X text 304 476 updated for Pd version 0.33.; -#X obj 122 275 sig~ 25; -#X obj 122 303 send~ signal2; -#X msg 246 203 set signal2; -#X msg 258 228 set signal1; -#X text 48 385 Send~/Receive~ only work for the default block size -(64) \; for FFT applications see also:; -#X text 49 363 Receive~ takes "set" messages to switch between send~s. -; -#X obj 278 410 tabsend~; -#X obj 116 49 s~; -#X obj 147 49 r~; -#X text 41 450 see also:; -#X obj 122 477 send; -#X obj 162 477 receive; -#X obj 120 448 throw~; -#X obj 176 448 catch~; -#X text 180 48 - abbreviation; -#X obj 376 236 loadbang; -#X obj 377 166 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 -#000000 0 1; -#X msg 377 189 \; pd dsp \$1; -#X text 400 166 on/off; -#X connect 1 0 4 0; -#X connect 3 0 2 0; -#X connect 4 0 0 0; -#X connect 8 0 4 0; -#X connect 9 0 3 0; -#X connect 12 0 13 0; -#X connect 14 0 1 0; -#X connect 15 0 1 0; -#X connect 27 0 8 0; -#X connect 28 0 29 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/send-receive-help.pd puredata-0.52.2+ds0/doc/5.reference/send-receive-help.pd --- puredata-0.52.1+ds0/doc/5.reference/send-receive-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/send-receive-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,5 +1,5 @@ #N struct template1 float x float y float z float q; -#N canvas 571 23 935 661 12; +#N canvas 259 23 935 661 12; #X obj 80 15 send; #X obj 41 120 send help-send1; #X obj 197 121 send help-send1; @@ -150,8 +150,57 @@ #X restore 350 570 pd Dealing_with_"\$0"; #X msg 238 619 message; #X obj 389 619 samplerate~; -#X obj 300 619 Pd-messages; #X text 19 570 Open subpatch to see how to deal with '\$0' =>; +#X obj 300 619 pd-messages; +#N canvas 725 70 573 568 reference 0; +#X obj 8 53 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 86 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 8 235 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 272 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 319 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 166 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 47 17 send; +#X obj 13 17 s; +#X text 86 16 - send messages without patch cords; +#X obj 15 375 r; +#X obj 49 375 receive; +#X text 107 374 - receive messages without patch cords; +#X obj 8 412 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 451 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 501 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 538 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 66 95 any message -; +#X text 168 95 sends to the corresponding receive object \, or any +named object which name corresponds to the stored symbol. e.g: array +\, value \, iemguis \, directly to a named patch \, etc..., f 50; +#X text 163 245 NONE, f 49; +#X text 131 280 symbol -; +#X text 163 424 NONE, f 49; +#X text 82 466 any message -; +#X text 121 204 symbol - sets the send name.; +#X text 179 466 outputs the messages destined to its receive name. +, f 51; +#X text 46 170 (if created without arguments); +#X text 106 511 1) symbol -; +#X text 189 511 receive name symbol (default: empty symbol).; +#X text 193 280 send symbol (if given \, 2nd inlet is suppressed \, +default: empty symbol)., f 35; +#X restore 738 31 pd reference; +#X text 835 32 <= click; +#X obj 23 77 cnv 1 900 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 23 607 cnv 1 900 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 4 0 10 0; #X connect 5 0 11 0; #X connect 6 0 12 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/send-receive-tilde-help.pd puredata-0.52.2+ds0/doc/5.reference/send-receive-tilde-help.pd --- puredata-0.52.1+ds0/doc/5.reference/send-receive-tilde-help.pd 1970-01-01 00:00:00.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/send-receive-tilde-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -0,0 +1,102 @@ +#N canvas 543 64 535 516 12; +#X floatatom 318 363 5 0 0 0 - - - 0; +#X obj 34 204 sig~ 50; +#X obj 318 333 snapshot~; +#X text 179 21 - one-to-many nonlocal signal connections; +#X obj 318 284 metro 200; +#X text 297 477 updated for Pd version 0.33.; +#X obj 34 282 sig~ 25; +#X text 48 417 Send~/Receive~ only work for the default block size +(64) \; for FFT applications see also:; +#X obj 278 442 tabsend~; +#X obj 115 46 s~; +#X obj 146 46 r~; +#X text 41 477 see also:; +#X obj 173 478 send; +#X obj 117 478 throw~; +#X text 179 45 - abbreviation; +#X obj 318 252 loadbang; +#X obj 420 204 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000 0 1; +#X msg 420 227 \; pd dsp \$1; +#X text 443 204 on/off; +#X floatatom 34 180 5 0 0 0 - - - 0; +#X floatatom 410 363 5 0 0 0 - - - 0; +#X obj 410 333 snapshot~; +#X obj 410 300 r~ signal1; +#X text 24 97 A send~ object copies its input to a local buffer which +all receive~ objects of the same name read from. They may be in different +windows or even different patches. Any number of receives may be associated +with one send~ but it is an error to have two send~s of the same name. +Receive~ takes "set" messages to switch between send~s., f 68; +#X obj 35 20 send~ x; +#X obj 95 21 receive~ x; +#X obj 34 227 send~ \$0-signal; +#X obj 34 308 send~ signal; +#X msg 178 264 set signal; +#X msg 166 237 set \$1-signal; +#X obj 166 213 f \$0; +#X obj 166 190 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#X text 205 192 <= \$0 needs to be expanded from objects., f 23; +#X floatatom 34 257 5 0 0 0 - - - 0; +#N canvas 525 216 510 156 execution-order 0; +#X obj 115 95 ../3.audio.examples/G05.execution.order; +#X text 46 30 You have to get the send~ sorted before the receive~ +or else you'll never get less than a block's delay. You can use the +strategy given in the example below to control this.; +#X restore 73 355 pd execution-order; +#X obj 166 292 receive~ \$0-signal; +#N canvas 697 108 571 432 reference 0; +#X obj 8 53 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 97 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 134 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 175 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 321 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 366 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 403 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 146 107 NONE; +#X obj 28 15 send~ y; +#X obj 24 245 receive~ y; +#X text 89 15 - send signal to one or more receive~ objects.; +#X obj 8 281 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X text 109 294 set - set receive name.; +#X text 139 67 signal - signal to send to matching receive~ object(s). +; +#X text 107 244 - receive signal from a send~ object.; +#X text 138 332 signal - outputs signal from a matching send~ object. +; +#X text 124 142 1) symbol - send symbol name (default: empty symbol). +; +#X text 106 376 1) symbol - receive name symbol (default: empty symbol). +; +#X restore 335 52 pd reference; +#X text 432 53 <= click; +#X obj 14 87 cnv 1 510 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 14 397 cnv 1 510 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X connect 1 0 26 0; +#X connect 2 0 0 0; +#X connect 4 0 2 0; +#X connect 4 0 21 0; +#X connect 6 0 27 0; +#X connect 15 0 4 0; +#X connect 16 0 17 0; +#X connect 19 0 1 0; +#X connect 21 0 20 0; +#X connect 22 0 21 0; +#X connect 28 0 35 0; +#X connect 29 0 35 0; +#X connect 30 0 29 0; +#X connect 31 0 30 0; +#X connect 33 0 6 0; +#X connect 35 0 2 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/set-help.pd puredata-0.52.2+ds0/doc/5.reference/set-help.pd --- puredata-0.52.1+ds0/doc/5.reference/set-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/set-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,78 +1,121 @@ #N struct help-set-template1 float x float y symbol s; -#N canvas 525 23 540 746 12; -#X text 75 652 see also:; -#X obj 181 675 append; -#X obj 239 675 getsize; -#X obj 82 700 setsize; -#X obj 207 699 element; -#X msg 230 174 next; -#X floatatom 36 195 5 0 0 0 - - - 0; -#X floatatom 125 195 5 0 0 0 - - - 0; -#X obj 215 200 pointer; -#X text 231 128 output first scalar in list; -#X text 276 174 output next item; -#X text 232 239 Remaining args are names of fields.; -#X obj 80 674 pointer; -#X msg 215 147 traverse pd-help-set-data \, next; -#N canvas 149 161 276 122 help-set-data 1; -#X scalar help-set-template1 39 23 dog \;; -#X scalar help-set-template1 99 73 cat \;; -#X restore 355 642 pd help-set-data; +#N canvas 609 23 567 703 12; +#X text 25 647 see also:; +#X obj 201 649 append; +#X obj 259 649 getsize; +#X obj 102 674 setsize; +#X obj 227 673 element; +#X msg 283 156 next; +#X floatatom 89 180 5 0 0 0 - - - 0; +#X floatatom 146 158 5 0 0 0 - - - 0; +#X obj 268 182 pointer; +#X text 329 156 output next item; +#X text 285 221 Remaining args are names of fields.; +#X obj 100 648 pointer; +#X msg 268 129 traverse pd-help-set-data \, next; +#N canvas 296 165 276 122 help-set-data 1; +#X scalar help-set-template1 52 40 \;; +#X scalar help-set-template1 130 41 \;; +#X restore 391 575 pd help-set-data; #N canvas 541 405 409 179 help-set-template1 0; #X obj 44 81 filledpolygon 9 0 1 0 0 20 0 20 30 0 30; #X obj 42 28 struct help-set-template1 float x float y symbol s; #X obj 49 127 drawsymbol s 0 -15 0 s=; -#X restore 355 664 pd help-set-template1; -#X text 68 13 -- set values in a scalar; -#X obj 36 226 set help-set-template1 x y; -#X text 32 173 x value; -#X text 121 173 y value; -#X obj 148 674 get; -#X obj 148 699 struct; -#X obj 37 13 set; -#X msg 291 365 next; -#X obj 277 390 pointer; -#X msg 277 341 traverse pd-help-set-data \, next; -#X obj 56 422 set -symbol help-set-template1 s; -#X symbolatom 56 396 10 0 0 0 - - - 0; -#X msg 56 343 symbol monkey; -#X msg 64 369 symbol fish; -#X text 47 277 To set fields whose values are symbols \, give the set +#X restore 391 597 pd help-set-template1; +#X obj 89 208 set help-set-template1 x y; +#X text 30 180 x value; +#X text 185 156 y value; +#X obj 168 648 get; +#X obj 168 673 struct; +#X obj 33 12 set; +#X msg 317 343 next; +#X obj 303 368 pointer; +#X msg 303 319 traverse pd-help-set-data \, next; +#X obj 82 400 set -symbol help-set-template1 s; +#X symbolatom 82 374 10 0 0 0 - - - 0; +#X msg 82 321 symbol monkey; +#X msg 90 347 symbol fish; +#X text 27 257 To set fields whose values are symbols \, give the set object the "-symbol" argument. (Unfortunately \, you can't mix symbols -and numbers in the same "set" object.), f 61; -#X text 30 37 "Set" takes a pointer to a scalar in its rightmost inlet -\; the remaining inlets set numeric fields. Symbols are handled specially -\, as shown below. Arrays are accessed using the "element" object \, -and lists using "text" objects. Only the leftmost inlet is "hot".; -#X text 331 695 updated for Pd version 0.47; -#X text 55 451 You can use the template "-" as a wild card (this may +and numbers in the same "set" object.), f 73; +#X text 351 669 updated for Pd version 0.47; +#X text 25 432 You can use the template "-" as a wild card (this may be slower than if you use a specific template name). Also \, if there are zero or one fields specified \, you can send a "set" message to -set a new template name and field name:; -#X obj 101 581 set - x; -#X obj 233 629 set; -#X floatatom 101 554 5 0 0 0 - - - 0; -#X msg 158 529 traverse pd-help-set-data \, next; -#X obj 158 553 pointer; -#X floatatom 233 570 5 0 0 0 - - - 0; -#X msg 297 566 set help-set-template1 x; -#X msg 296 593 set - x; -#X text 231 224 First argument sets template.; +set a new template name and field name:, f 73; +#X obj 111 553 set - x; +#X obj 243 601 set; +#X floatatom 111 526 5 0 0 0 - - - 0; +#X msg 168 501 traverse pd-help-set-data \, next; +#X obj 168 525 pointer; +#X floatatom 243 542 5 0 0 0 - - - 0; +#X msg 307 538 set help-set-template1 x; +#X msg 306 565 set - x; +#X text 284 206 First argument sets template.; +#X text 20 49 "Set" takes a pointer to a scalar in its rightmost inlet. +The remaining inlets set numeric fields. Symbols are handled specially +\, as shown below. Arrays are accessed using the "element" object \, +and lists using "text" objects. Only the leftmost inlet is "hot"., +f 73; +#X text 49 128 output first scalar in list =>; +#X obj 146 182 t b f; +#X text 64 12 - set values in a scalar; +#X text 476 10 <= click; +#N canvas 743 102 568 426 reference 0; +#X obj 8 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 230 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 267 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 386 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 136 cnv 1 550 1 empty empty 'n': 8 12 0 13 #7c7c7c #000000 +0; +#X text 54 139 number of arguments set 'n' fields and we create 'n' +inlets for them., f 70; +#X obj 7 190 cnv 1 550 1 empty empty rightmost: 8 12 0 13 #7c7c7c #000000 +0; +#X text 111 338 symbol - structure name., f 49; +#X text 125 358 list - symbols for field names (each creates an inlet). +; +#X obj 28 18 set; +#X text 59 18 - set values in a scalar; +#X text 136 165 float/symbol - value in a scalar., f 42; +#X text 113 200 pointer - a pointer to the scalar.; +#X text 129 238 none; +#X obj 7 88 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 56 92 set -; +#X text 217 92 if none or just one field is given \, you can use 'set' +to set struct name and field., f 47; +#X obj 7 292 cnv 1 550 1 empty empty flags: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 7 331 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 +0; +#X text 111 302 "-symbol" - so you can set symbol values.; +#X restore 382 10 pd reference; +#X obj 9 41 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 9 634 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 5 0 8 0; -#X connect 6 0 17 0; -#X connect 7 0 17 1; -#X connect 8 0 17 2; -#X connect 13 0 8 0; -#X connect 23 0 24 0; -#X connect 24 0 26 1; +#X connect 6 0 15 0; +#X connect 7 0 42 0; +#X connect 8 0 15 2; +#X connect 12 0 8 0; +#X connect 21 0 22 0; +#X connect 22 0 24 1; +#X connect 23 0 22 0; #X connect 25 0 24 0; -#X connect 27 0 26 0; -#X connect 28 0 27 0; -#X connect 29 0 27 0; -#X connect 36 0 34 0; -#X connect 37 0 38 0; -#X connect 38 0 35 1; -#X connect 38 0 34 1; -#X connect 39 0 35 0; -#X connect 40 0 35 0; -#X connect 41 0 35 0; +#X connect 26 0 25 0; +#X connect 27 0 25 0; +#X connect 33 0 31 0; +#X connect 34 0 35 0; +#X connect 35 0 32 1; +#X connect 35 0 31 1; +#X connect 36 0 32 0; +#X connect 37 0 32 0; +#X connect 38 0 32 0; +#X connect 42 0 6 0; +#X connect 42 1 15 1; diff -Nru puredata-0.52.1+ds0/doc/5.reference/setsize-help.pd puredata-0.52.2+ds0/doc/5.reference/setsize-help.pd --- puredata-0.52.1+ds0/doc/5.reference/setsize-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/setsize-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,60 +1,86 @@ #N struct help-setsize-template float x float y array array1 help-setsize-array1-template ; #N struct help-setsize-array1-template float y; -#N canvas 568 117 643 519 12; -#X text 58 443 see also:; -#N canvas 393 50 495 265 help-setsize-template 0; -#X obj 27 174 filledpolygon 509 509 0 -10 -10 10 -10 10 10 -10 10; +#N canvas 479 51 617 481 12; +#X text 16 444 see also:; +#N canvas 393 50 495 182 help-setsize-template 0; +#X obj 27 109 filledpolygon 509 509 0 -10 -10 10 -10 10 10 -10 10; #X obj 27 76 plot array1 500 1 10 15 10; #X obj 24 16 struct help-setsize-template float x float y array array1 help-setsize-array1-template; -#X restore 46 379 pd help-setsize-template; -#N canvas 190 215 299 169 help-setsize-data 1; +#X restore 37 365 pd help-setsize-template; +#N canvas 311 199 264 132 help-setsize-data 1; #X scalar help-setsize-template 31 23 \; 0 \; 10 \; 0 \; 10 \; 20 \; -10 \; 20 \; 70 \; 0 \; 0 \; 0 \; \;; -#X restore 45 358 pd help-setsize-data; -#N canvas 196 292 369 138 help-setsize-array1-template 0; +10 \; 20 \; 70 \; 10 \; \;; +#X restore 36 344 pd help-setsize-data; +#N canvas 196 292 375 124 help-setsize-array1-template 0; #X obj 30 71 filledpolygon 0 0 0 -5 0 0 5 5 0 0 -5; #X obj 32 27 struct help-setsize-array1-template float y; -#X restore 45 402 pd help-setsize-array1-template; -#X obj 123 464 pointer; -#X obj 248 465 setsize; -#X obj 302 265 pointer; -#X msg 302 241 traverse pd-help-setsize-data \, next; -#X floatatom 25 238 5 0 0 0 - - -; -#X text 320 321 arguments: template \, field name; -#X obj 25 322 setsize help-setsize-template array1, f 40; -#X text 115 292 inlet for pointer; +#X restore 36 388 pd help-setsize-array1-template; +#X obj 134 444 pointer; +#X obj 314 251 pointer; +#X msg 314 227 traverse pd-help-setsize-data \, next; +#X floatatom 37 234 5 1 20 0 - - - 0; +#X text 332 307 arguments: template \, field name; +#X obj 37 308 setsize help-setsize-template array1, f 40; #X obj 37 11 setsize; -#X obj 186 464 element; -#X text 31 205 number sets; -#X text 30 219 size; -#X text 100 12 -- resize an array; -#X text 26 34 "setsize" takes a pointer to a scalar at left and a number -at right. Its creation arguments specify the template of the pointer -and the name of an array field. Sending a number then sets the number -of elements of the array.; -#X text 24 100 The smallest possible size is one. If the array is resized -downward the extra data are lost. If resized upward \, the new elements -are initialized to default values.; -#X msg 502 370 bang; -#X text 304 222 click here first; -#N canvas 458 61 439 176 readit 0; -#X msg 66 65 \; pd-help-setsize-data read setsize.txt; +#X obj 192 444 element; +#X msg 493 356 bang; +#X text 316 208 click here first; +#N canvas 458 61 386 156 readit 0; +#X msg 67 65 \; pd-help-setsize-data read setsize.txt; #X obj 67 29 inlet; -#X msg 62 123 \; pd-help-setsize-data write setsize.txt; #X connect 1 0 0 0; -#X restore 502 396 pd readit; -#X obj 65 464 struct; -#X text 404 456 updated for Pd version 0.47; -#X text 68 250 set template and field name; -#X text 21 154 If you don't know the template name you may specify +#X restore 493 382 pd readit; +#X obj 83 444 struct; +#X text 406 444 updated for Pd version 0.47; +#X text 84 246 set template and field name; +#X text 27 143 If you don't know the template name you may specify "-" \, in which case the object will figure out the template name itself -\, at some possible cost in efficiency and clarity.; -#X msg 34 272 set help-setsize-template array1; -#X text 296 369 click to reload from file =>; -#X connect 6 0 10 1; -#X connect 7 0 6 0; -#X connect 8 0 10 0; -#X connect 19 0 21 0; -#X connect 26 0 10 0; +\, at some possible cost in efficiency and clarity., f 80; +#X msg 50 268 set help-setsize-template array1; +#X text 287 355 click to reload from file =>; +#X obj 308 444 array set; +#X text 33 211 number sets size; +#X text 100 11 - resize a Data Structure array; +#X obj 7 45 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 869 136 474 285 reference 0; +#X obj 9 43 cnv 5 450 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 9 164 cnv 2 450 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 200 cnv 2 450 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 256 cnv 5 450 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 131 210 1) symbol - template name.; +#X text 131 229 2) symbol - field name., f 26; +#X text 47 99 set - set template and field name. +, f 52; +#X obj 28 12 setsize; +#X text 91 12 - resize a Data Structure array.; +#X text 152 80 float - set the array size.; +#X obj 9 75 cnv 1 450 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 7 125 cnv 1 450 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 145 174 NONE; +#X text 86 135 pointer - pointer to a scalar with an array field.; +#X restore 415 11 pd reference; +#X text 513 11 <= click; +#X obj 7 425 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 27 103 The smallest possible size is one. If the array is resized +downward the extra data are lost. If resized upward \, the new elements +are initialized to zeros., f 80; +#X text 27 54 "setsize" takes a pointer to a scalar in the right inlet. +Its creation arguments specify the template of the pointer and the +name of an array field. Sending a number to the left inlet then sets +the number of elements of the array., f 80; +#X obj 249 444 getsize; +#X connect 5 0 9 1; +#X connect 6 0 5 0; +#X connect 7 0 9 0; +#X connect 12 0 14 0; +#X connect 19 0 9 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/sigbinops-help.pd puredata-0.52.2+ds0/doc/5.reference/sigbinops-help.pd --- puredata-0.52.1+ds0/doc/5.reference/sigbinops-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/sigbinops-help.pd 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ -#N canvas 659 45 833 715 12; -#X obj 30 184 +~; -#X obj 167 184 -~; -#X obj 294 184 *~; -#X obj 429 184 /~; -#X obj 116 22 +~; -#X obj 151 22 -~; -#X obj 184 21 *~; -#X obj 218 21 /~; -#N canvas 0 22 450 278 (subpatch) 0; -#X array array1 100 float 0; -#X coords 0 2 100 -2 350 250 1 0 0; -#X restore 58 319 graph; -#X obj 429 256 tabwrite~ array1; -#X obj 30 256 tabwrite~ array1; -#X obj 167 256 tabwrite~ array1; -#X obj 294 256 tabwrite~ array1; -#X obj 167 78 osc~ 440; -#X obj 251 20 max~; -#X obj 293 20 min~; -#X text 564 645 modified for Pd version 0.27; -#X obj 688 256 tabwrite~ array1; -#X obj 563 256 tabwrite~ array1; -#X obj 563 184 max~; -#X obj 688 184 min~; -#X obj 627 461 +~ 5; -#X text 341 19 - operators on audio signals; -#X text 54 590 see also:; -#X obj 58 616 +; -#X floatatom 652 435 5 0 0 0 - - - 0; -#X text 489 335 These objects combine two signals as above \, or \, -if you give a numeric argument \, the right inlet only takes floats -(no signals) and the argument initializes the right inlet value:, -f 36; -#X obj 447 78 sig~ 2; -#X obj 48 78 sig~ 1; -#X obj 588 78 sig~ 0.5; -#X obj 49 224 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 -#000000; -#X obj 189 224 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc -#000000 #000000; -#X obj 315 224 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc -#000000 #000000; -#X obj 445 224 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc -#000000 #000000; -#X obj 585 224 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc -#000000 #000000; -#X obj 705 224 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc -#000000 #000000; -#X text 41 313 2; -#X text 34 557 -2; -#X text 40 435 0; -#X text 89 616 (etc.) - control arithmetic operators; -#X obj 58 641 cos~; -#X obj 96 641 wrap~; -#X obj 139 641 abs~; -#X obj 176 641 sqrt~; -#X obj 221 641 exp~; -#X obj 258 641 log~; -#X obj 296 641 pow~; -#X obj 58 669 expr~; -#X text 106 669 - evaluate expressions on audio signals; -#X text 334 641 - audio math objects; -#X obj 474 469 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 -#000000 0 1; -#X msg 474 499 \; pd dsp \$1; -#X connect 0 0 10 0; -#X connect 1 0 11 0; -#X connect 2 0 12 0; -#X connect 3 0 9 0; -#X connect 13 0 0 0; -#X connect 13 0 1 0; -#X connect 13 0 3 0; -#X connect 13 0 2 0; -#X connect 13 0 19 0; -#X connect 13 0 20 0; -#X connect 19 0 18 0; -#X connect 20 0 17 0; -#X connect 25 0 21 1; -#X connect 27 0 3 1; -#X connect 27 0 2 1; -#X connect 28 0 1 1; -#X connect 28 0 0 1; -#X connect 29 0 19 1; -#X connect 29 0 20 1; -#X connect 30 0 10 0; -#X connect 31 0 11 0; -#X connect 32 0 12 0; -#X connect 33 0 9 0; -#X connect 34 0 18 0; -#X connect 35 0 17 0; -#X connect 50 0 51 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/sig~-help.pd puredata-0.52.2+ds0/doc/5.reference/sig~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/sig~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/sig~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,32 +1,54 @@ -#N canvas 791 132 485 426 12; -#X obj 79 323 snapshot~; -#X floatatom 79 353 6 0 0 0 - - - 0; -#X obj 84 13 sig~; -#X obj 79 160 sig~; -#X floatatom 79 128 6 0 0 0 - - - 0; -#X text 120 15 - convert numbers to audio signal; -#X text 51 54 In this example \, the sig~ object converts numbers to +#N canvas 477 23 490 403 12; +#X obj 70 280 snapshot~; +#X floatatom 70 314 6 0 0 0 - - - 0; +#X obj 27 13 sig~; +#X obj 70 151 sig~; +#X floatatom 70 119 6 0 0 0 - - - 0; +#X text 44 57 In this example \, the sig~ object converts numbers to an audio signal \, which the snapshot~ converts back again.; -#X obj 104 265 metro 200; -#X text 275 363 updated for Pd version 0.33; -#X text 129 128 <= Scroll to set value; -#X obj 104 228 loadbang; -#X text 277 168 DSP on/off; -#X obj 185 279 sig~ 10; -#X obj 185 321 snapshot~; -#X floatatom 185 245 6 0 0 0 - - - 0; -#X floatatom 185 356 6 0 0 0 - - - 0; -#X text 250 267 An argument initializes the signal value., f 15; -#X obj 258 169 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X obj 92 226 metro 200; +#X text 266 366 updated for Pd version 0.33; +#X text 120 119 <= Scroll to set value, f 12; +#X obj 92 195 loadbang; +#X text 338 129 DSP on/off; +#X obj 186 240 sig~ 10; +#X obj 186 280 snapshot~; +#X floatatom 186 206 6 0 0 0 - - - 0; +#X floatatom 186 314 6 0 0 0 - - - 0; +#X text 251 228 An argument initializes the signal value., f 15; +#X obj 319 130 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X msg 258 196 \; pd dsp \$1; +#X msg 319 157 \; pd dsp \$1; +#X text 14 366 see also:; +#X obj 90 365 snapshot~; +#X obj 7 43 cnv 1 475 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 6 351 cnv 1 475 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 667 102 424 185 reference 0; +#X obj 8 45 cnv 5 400 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 87 cnv 2 400 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 7 152 cnv 5 400 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 116 cnv 2 400 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 31 13 sig~; +#X text 67 13 - convert numbers to signals; +#X text 109 58 float - number to convert to signal.; +#X text 102 93 signal - converted signal.; +#X text 104 123 1) float - initially convertedd value.; +#X restore 315 14 pd reference; +#X text 409 14 <= click; +#X text 63 13 - convert numbers to signals; #X connect 0 0 1 0; #X connect 3 0 0 0; #X connect 4 0 3 0; -#X connect 7 0 0 0; -#X connect 7 0 13 0; -#X connect 10 0 7 0; -#X connect 12 0 13 0; -#X connect 13 0 15 0; -#X connect 14 0 12 0; -#X connect 17 0 18 0; +#X connect 6 0 0 0; +#X connect 6 0 12 0; +#X connect 9 0 6 0; +#X connect 11 0 12 0; +#X connect 12 0 14 0; +#X connect 13 0 11 0; +#X connect 16 0 17 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/slop~-help.pd puredata-0.52.2+ds0/doc/5.reference/slop~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/slop~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/slop~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,5 +1,5 @@ -#N canvas 560 38 941 640 12; -#X obj 35 155 osc~; +#N canvas 304 34 927 598 12; +#X obj 35 122 osc~; #N canvas 0 50 450 250 (subpatch) 0; #X array \$0-graph 1000 float 1; #A 0 -0.239854 -0.245719 -0.251574 -0.25742 -0.263255 -0.269079 -0.274893 @@ -139,31 +139,29 @@ -0.350384 -0.343095 -0.335797 -0.328498 -0.321199 -0.3139 -0.306601 -0.299302; #X coords 0 1 999 -1 500 140 1 0 0; -#X restore 404 417 graph; -#X floatatom 35 129 5 0 0 0 - - - 0; -#X obj 81 511 tabwrite~ \$0-graph; -#X obj 107 480 metro 500; -#X obj 107 434 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X restore 404 384 graph; +#X floatatom 35 96 5 0 0 0 - - - 0; +#X obj 81 478 tabwrite~ \$0-graph; +#X obj 107 447 metro 500; +#X obj 107 401 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X floatatom 116 192 5 0 10000 0 - - - 0; -#X floatatom 152 219 5 0 10000 0 - - - 0; -#X floatatom 224 302 5 0 0 0 - - - 0; -#X msg 83 166 set 0; -#X obj 224 325 / 100; -#X obj 152 242 / 100; -#X obj 81 396 slop~ 1000 1e+09 0 1e+09 0; -#X obj 71 47 slop~, f 7; -#X text 132 48 - slew-limiting low-pass filter; -#X text 158 192 cutoff frequency in linear region; -#X floatatom 188 269 5 0 10000 0 - - - 0; -#X text 198 219 maximum downward slew of linear region; -#X text 231 259 asymptotic downward cutoff frequency (for downward +#X floatatom 116 159 5 0 10000 0 - - - 0; +#X floatatom 152 186 5 0 10000 0 - - - 0; +#X floatatom 224 269 5 0 0 0 - - - 0; +#X msg 83 133 set 0; +#X obj 224 292 / 100; +#X obj 152 209 / 100; +#X obj 81 363 slop~ 1000 1e+09 0 1e+09 0; +#X text 158 159 cutoff frequency in linear region; +#X floatatom 188 236 5 0 10000 0 - - - 0; +#X text 198 186 maximum downward slew of linear region; +#X text 231 226 asymptotic downward cutoff frequency (for downward slews greater than maximum), f 41; -#X text 273 300 maximum upward slew of linear region; -#X text 305 349 asymptotic upward cutoff frequency (for upward slews +#X text 273 267 maximum upward slew of linear region; +#X text 305 316 asymptotic upward cutoff frequency (for upward slews greater than maximum), f 41; -#X floatatom 260 356 5 0 10000 0 - - - 0; -#X text 76 129 frequency of test oscillator; +#X floatatom 260 323 5 0 10000 0 - - - 0; +#X text 76 96 frequency of test oscillator; #N canvas 756 141 1015 691 compander-limiter 0; #N canvas 622 189 476 482 generate-test 0; #X obj 77 159 osc~ 440; @@ -393,12 +391,12 @@ #X connect 47 4 49 0; #X connect 47 5 48 0; #X restore 749 530 pd parameters; -#X floatatom 658 370 3 0 100 0 limit #0-limit-set #0-limit 0; -#X floatatom 658 391 3 0 20 0 knee #0-knee-set #0-knee 0; -#X floatatom 658 412 3 0 50 0 boost #0-boost-set #0-boost 0; -#X floatatom 658 433 3 0 200 0 ratio #0-ratio-set #0-ratio 0; -#X floatatom 658 455 3 0 100 0 thresh #0-thresh-set #0-thresh 0; -#X floatatom 658 476 3 0 200 0 speed #0-speed-set #0-speed 0; +#X floatatom 658 370 3 0 100 0 limit \$0-limit-set \$0-limit 0; +#X floatatom 658 391 3 0 20 0 knee \$0-knee-set \$0-knee 0; +#X floatatom 658 412 3 0 50 0 boost \$0-boost-set \$0-boost 0; +#X floatatom 658 433 3 0 200 0 ratio \$0-ratio-set \$0-ratio 0; +#X floatatom 658 455 3 0 100 0 thresh \$0-thresh-set \$0-thresh 0; +#X floatatom 658 476 3 0 200 0 speed \$0-speed-set \$0-speed 0; #N canvas 298 363 615 643 run-compander 0; #X obj 47 20 inlet~; #X obj 83 174 slop~ 0 0 0 0 1e+09; @@ -505,7 +503,7 @@ #X connect 28 0 10 0; #X connect 30 0 10 0; #X connect 34 0 21 0; -#X restore 704 334 pd compander-limiter; +#X restore 704 301 pd compander-limiter; #N canvas 559 148 852 482 slew-limiter 0; #X floatatom 106 123 5 0 1000 0 - - - 0; #X obj 106 147 t f b; @@ -557,10 +555,10 @@ #X connect 12 0 13 4; #X connect 13 0 6 0; #X connect 14 0 13 0; -#X restore 704 282 pd slew-limiter; -#X text 642 595 updated for Pd version 0.50.; +#X restore 704 249 pd slew-limiter; +#X text 701 564 updated for Pd version 0.50.; #N canvas 535 70 763 564 peak-meter 0; -#X floatatom 217 132 5 0 50 0 - #0-decay-speed-init - 0; +#X floatatom 217 132 5 0 50 0 - \$0-decay-speed-init - 0; #N canvas 392 300 639 450 generate-test 0; #X obj 45 196 osc~ 440; #X msg 98 166 -0.25; @@ -611,8 +609,8 @@ #X text 365 155 Envelope follower for use in peak metering; #X text 314 467 See the HTML documentation (link on main page of this patch) for more details., f 54; -#X floatatom 101 63 5 1 100 2 pulse-length #0-pulse-length-init - 0 -; +#X floatatom 101 63 5 1 100 2 pulse-length \$0-pulse-length-init - +0; #X obj 47 214 env~ 1024; #X obj 139 183 abs~; #X obj 139 248 snapshot~; @@ -647,6 +645,7 @@ 54; #X obj 159 73 hsl 100 15 0 1 0 0 empty empty Volume 32 9 0 12 #dcdcdc #000000 #000000 0 1; +#X text 35 421 see also =>; #X connect 0 0 17 0; #X connect 1 0 5 0; #X connect 1 0 6 0; @@ -664,8 +663,8 @@ #X connect 17 0 21 0; #X connect 21 0 10 3; #X connect 24 0 1 2; -#X restore 704 307 pd peak-meter; -#X text 129 165 set state (previously stored output); +#X restore 704 274 pd peak-meter; +#X text 129 132 set state (previously stored output); #N canvas 467 45 850 454 jitter-remover 0; #X floatatom 132 194 5 0 100 0 - - - 0; #X obj 95 354 metro 500; @@ -704,12 +703,27 @@ #X connect 10 0 5 0; #X connect 11 0 10 2; #X connect 11 0 10 4; -#X restore 704 362 pd jitter-remover; -#X text 133 432 <= start metronome to graph output, f 18; -#X text 699 256 Examples:; -#X obj 498 30 bng 15 250 50 0 empty empty empty 17 7 0 10 #dcdcdc #000000 +#X restore 704 329 pd jitter-remover; +#X text 133 399 <= start metronome to graph output, f 18; +#X text 699 223 Examples:; +#X text 518 106 The slop~ object is a low-pass filter whose frequency +response (i.e. \, reaction speed) can vary according to the filter's +state. It can be useful for slew limiting \, dynamics processing (companders/limiters/noise +gates) \, and soft saturation. Examples below are explained in the +HTML reference (linked above)., f 55; +#X text 22 565 see also:; +#X obj 101 564 lop~; +#X obj 151 564 fexpr~; +#X obj 24 44 slop~, f 7; +#X text 84 43 - slew-limiting low-pass filter; +#X obj 10 75 cnv 1 910 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 436 15 bng 17 250 50 0 empty empty empty 17 7 0 10 #ffffff #000000 #000000; -#N canvas 798 148 488 282 reference 0; +#X obj 10 551 cnv 1 910 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 459 14 <= Open HTML reference; +#N canvas 798 148 488 282 html-reference 0; #X obj 101 59 inlet; #X obj 101 190 pdcontrol; #X obj 101 130 pdcontrol; @@ -721,19 +735,51 @@ #X connect 2 0 5 0; #X connect 3 0 2 0; #X connect 5 0 1 0; -#X restore 498 56 pd reference; -#X text 518 139 The slop~ object is a low-pass filter whose frequency -response (i.e. \, reaction speed) can vary according to the filter's -state. It can be useful for slew limiting \, dynamics processing (companders/limiters/noise -gates) \, and soft saturation. Examples below are explained in the -HTML reference (linked above)., f 55; -#X text 517 27 <= Open HTML reference; -#X text 46 589 see also:; -#X obj 126 590 lop~; -#X obj 176 590 fexpr~; -#X obj 302 486 vu 15 120 empty empty -1 -8 0 10 #404040 #000000 1 0 +#X restore 436 44 pd html-reference; +#N canvas 734 107 574 398 reference 0; +#X obj 11 46 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 11 242 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 11 275 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X obj 10 371 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 11 75 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 117 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 24 15 slop~, f 7; +#X text 84 14 - slew-limiting low-pass filter; +#X obj 11 141 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 165 cnv 1 550 1 empty empty 4th: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 11 191 cnv 1 550 1 empty empty 5th: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 217 cnv 1 550 1 empty empty 6th: 8 12 0 13 #7c7c7c #000000 +0; +#X text 120 78 signal - input signal to be filtered., f 46; +#X text 85 96 set - set state (previously stored output).; +#X text 120 120 signal - cutoff frequency in linear region., f 46 ; -#X text 241 589 [vu] =>; +#X text 120 144 signal - maximum downward slew of linear region.; +#X text 120 169 signal - asymptotic downward cutoff frequency.; +#X text 120 195 signal - maximum upward slew of linear region.; +#X text 120 250 signal - filtered signal.; +#X text 120 220 signal - asymptotic upward cutoff frequency.; +#X text 107 281 1) float - cutoff frequency in linear region (default +0)., f 62; +#X text 107 298 2) float - maximum downward slew of linear region (default +0)., f 62; +#X text 107 315 3) float - asymptotic downward cutoff frequency (default +0)., f 62; +#X text 107 332 4) float - maximum upward slew of linear region (default +0)., f 62; +#X text 107 349 5) float - asymptotic upward cutoff frequency (default +0)., f 62; +#X restore 739 44 pd reference; +#X text 837 43 <= click; #X connect 0 0 12 0; #X connect 2 0 0 0; #X connect 4 0 3 0; @@ -745,6 +791,6 @@ #X connect 10 0 12 4; #X connect 11 0 12 2; #X connect 12 0 3 0; -#X connect 16 0 12 3; -#X connect 21 0 12 5; -#X connect 31 0 32 0; +#X connect 14 0 12 3; +#X connect 19 0 12 5; +#X connect 36 0 39 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/snapshot~-help.pd puredata-0.52.2+ds0/doc/5.reference/snapshot~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/snapshot~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/snapshot~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,34 +1,60 @@ -#N canvas 777 96 515 444 12; -#X obj 55 337 snapshot~; -#X obj 65 19 snapshot~; -#X msg 66 279 bang; -#X text 112 365 This output updates each time bang is clicked above. +#N canvas 532 29 631 467 12; +#X obj 78 344 snapshot~; +#X obj 32 19 snapshot~; +#X msg 89 286 bang; +#X text 135 372 This output updates each time bang is clicked above. ; -#X text 145 19 - convert a signal to a number on demand; -#X text 24 51 The snapshot~ object takes a signal and converts it to +#X text 112 19 - convert a signal to a number on demand; +#X text 28 63 The snapshot~ object takes a signal and converts it to a control value whenever it receives a bang in its left outlet. This -object is particularly useful for monitoring outputs.; -#X obj 55 254 osc~ 0.1; -#X text 55 231 0.1 Hz cosine; -#X text 264 402 updated for Pd version 0.37; -#X text 124 254 signal in to take snapshots of; -#X text 26 114 In the example below \, a snapshot~ object prints out +object is particularly useful for monitoring outputs., f 81; +#X obj 78 261 osc~ 0.1; +#X text 384 429 updated for Pd version 0.37; +#X text 147 261 signal in to take snapshots of; +#X text 27 122 In the example below \, a snapshot~ object prints out the values of a low frequency cosine wave every time it is sent a bang -message.; -#X text 27 166 A 'set' message is provided for the (rare) situations +message., f 81; +#X text 28 162 A 'set' message is provided for the (rare) situations where you might make a known change to the signal input \, and then -read snapshot's value before any ensuing signal computation.; -#X floatatom 55 364 7 0 0 0 - - - 0; -#X msg 78 307 set 5 \, bang; -#X text 109 278 - take one snapshot; -#X text 167 307 - set value (which is reset next DSP block.), f 22 +read snapshot's value before any ensuing signal computation., f 81 ; -#X msg 369 298 \; pd dsp \$1; -#X obj 369 271 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X floatatom 78 371 7 0 0 0 - - - 0; +#X msg 101 314 set 5 \, bang; +#X msg 430 242 \; pd dsp \$1; +#X obj 430 215 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 391 273 DSP on/off; -#X connect 0 0 12 0; +#X text 452 217 DSP on/off; +#X text 78 238 0.1 Hz cosine wave; +#N canvas 702 112 582 226 reference 0; +#X obj 18 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 18 122 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 18 159 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X obj 17 196 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 131 66 bang -; +#X text 166 170 NONE, f 9; +#X obj 39 20 snapshot~; +#X text 119 20 - convert a signal to a number on demand; +#X text 183 66 convert a signal to a float., f 46; +#X text 82 86 set -; +#X text 183 86 set a float value for the next DSP block., f 46; +#X text 126 132 float - the converted signal at every bang., f 54 +; +#X restore 435 19 pd reference; +#X text 533 19 <= click; +#X obj 10 51 cnv 1 610 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 48 428 see also:; +#X obj 124 429 sig~; +#X obj 10 414 cnv 1 610 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 132 285 <-- take one snapshot; +#X text 190 314 <-- set value (which is reset next DSP block.); +#X connect 0 0 11 0; #X connect 2 0 0 0; #X connect 6 0 0 0; -#X connect 13 0 0 0; -#X connect 17 0 16 0; +#X connect 12 0 0 0; +#X connect 14 0 13 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/soundfiler-help.pd puredata-0.52.2+ds0/doc/5.reference/soundfiler-help.pd --- puredata-0.52.1+ds0/doc/5.reference/soundfiler-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/soundfiler-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,83 +1,52 @@ -#N canvas 432 106 1042 671 12; +#N canvas 322 46 863 579 12; #N canvas 0 22 450 300 (subpatch) 0; -#X array array1 77971 float 0; -#X coords 0 1 77970 -1 300 100 1; -#X restore 32 549 graph; +#X array array1 13 float 0; +#X coords 0 1 12 -1 300 100 1; +#X restore 545 269 graph; #N canvas 0 22 450 300 (subpatch) 0; -#X array array2 155944 float 0; -#X coords 0 1 155943 -1 300 100 1; -#X restore 341 549 graph; -#X obj 49 398 soundfiler; -#X msg 93 286 write -aiff /tmp/foo1 array2; -#X msg 42 157 read ../sound/bell.aiff array2; -#X msg 58 214 read -raw 128 2 2 b ../sound/bell.aiff array1 array2 -; -#X text 557 65 Flags for reading:; -#X text 575 101 -skip ; -#X floatatom 49 422 0 0 0 0 - - - 0; -#X msg 50 185 read -resize ../sound/bell.aiff array2; -#X text 303 286 write a file; -#X text 425 342 write stereo; -#X text 575 156 -raw -; -#X text 575 119 -resize; -#X text 575 137 -maxsize -; -#X text 645 337 Flags for writing:; -#X text 661 399 -skip ; -#X text 661 421 -nframes ; -#X text 661 465 -normalize; -#X text 661 443 -bytes <2 \, 3 \, or 4>; -#X obj 800 574 tabwrite~; -#X obj 800 598 tabread4~; -#X obj 905 552 tabplay~; -#X obj 905 599 writesf~; -#X obj 905 576 readsf~; -#X text 661 485 -rate ; -#X obj 116 423 print; -#X text 716 575 See also:; -#X text 262 157 read a file to zero or more arrays; +#X array array2 78003 float 0; +#X coords 0 1 78002 -1 300 100 1; +#X restore 545 387 graph; +#X obj 32 382 soundfiler; +#X msg 76 270 write -aiff /tmp/foo1 array2; +#X msg 25 141 read ../sound/bell.aiff array2; +#X msg 41 198 read -raw 128 2 2 b ../sound/bell.aiff array1 array2 +; +#X floatatom 32 411 8 0 0 0 - - - 0; +#X msg 33 169 read -resize ../sound/bell.aiff array2; +#X text 286 270 write a file; +#X text 408 326 write stereo; +#X obj 143 542 tabwrite~; +#X obj 217 542 tabread4~; +#X obj 290 542 tabplay~; +#X obj 414 542 writesf~; +#X obj 356 542 readsf~; +#X text 18 541 See also:; +#X text 245 141 read a file to zero or more arrays; #X obj 30 15 soundfiler; #X text 108 14 - read and write soundfiles to arrays; -#X text 330 185 optionally resize; -#X text 436 214 override header; -#X text 331 240 ... read from an ascii file, f 28; -#X text 787 635 updated for Pd version 0.51; -#X msg 66 241 read -ascii -resize table.txt array1; -#X msg 102 341 write -next -bytes 4 /tmp/foo3 array1 array2; -#X text 575 237 -ascii - read a file containing ascii numbers; -#X text 661 377 -big \, -little (sample endianness); -#X text 660 358 -wave \, -aiff \, -caf \, -next \, -ascii; -#X text 64 467 Left outlet outputs the number of samples. Right outlet +#X text 313 169 optionally resize; +#X text 419 198 override header; +#X text 314 224 ... read from an ascii file, f 28; +#X text 648 541 updated for Pd version 0.51; +#X msg 49 225 read -ascii -resize table.txt array1; +#X msg 85 325 write -next -bytes 4 /tmp/foo3 array1 array2; +#X text 33 444 Left outlet outputs the number of samples. Right outlet outputs info as a list: samplerate \, headersize \, num channels \, bytes per sample \, & endianness ("b" or "l"). If no array name is -given \, no samples are read but the info is provided anyway., f 77 +given \, no samples are read but the info is provided anyway., f 63 ; -#X text 661 513 The number of channels is limited to 64; -#X text 31 46 The soundfiler object reads and writes floating point +#X text 30 61 The soundfiler object reads and writes floating point arrays to binary soundfiles which may contain uncompressed 2- or 3-byte integer ("pcm") or 4-byte floating point samples in wave \, aiff \, caf \, next \, or ascii text formats. The number of channels of the soundfile need not match the number of arrays given (extras are dropped -and unsupplied channels are zeroed out)., f 64; -#X text 593 255 May be combined with -resize. Newlines in the file -are ignored \, non-numeric fields are replaced by zero. If multiple -arrays are specified \, the first elements of each array should come -first in the file \, followed by all the second elements and so on -(interleaved).; -#X msg 98 314 write -nframes 10000 /tmp/foo2.wav array2; -#X text 397 314 set type by file ext; -#X text 575 83 -wave \, -aiff \, -caf \, -next; -#X text 593 174 This causes all header and type information to be ignored. -Endianness is "l" ("little") for Intel machines or "b" ("big") for -older PPC Macintoshes. You can give "n" (natural) to take the byte -order your machine prefers.; -#X text 557 14 When reading you can leave soundfiler to figure out -which of the known soundfile formats the file belongs to or override -all header and type information using the "-raw" flag., f 66; -#X text 304 368 ... write to an ascii file; -#X msg 108 368 write /tmp/foo1.txt array2; -#X text 331 390 "-ascii" set via file ext; +and unsupplied channels are zeroed out)., f 114; +#X msg 81 298 write -nframes 10000 /tmp/foo2.wav array2; +#X text 380 298 set type by file ext; +#X text 287 352 ... write to an ascii file; +#X msg 91 352 write /tmp/foo1.txt array2; +#X text 314 374 "-ascii" set via file ext; #N canvas 978 194 575 345 Dealing_with_"\$0" 0; #X text 36 33 '\$0' - the patch ID number used to force locality in Pd - is widely used in send/receive names as well as array names. This @@ -97,17 +66,89 @@ #X connect 4 0 5 0; #X connect 6 0 4 0; #X connect 7 0 3 0; -#X restore 398 425 pd Dealing_with_"\$0"; -#X text 236 416 open subpatch to see how to deal with '\$0', f 21 +#X restore 381 409 pd Dealing_with_"\$0"; +#X text 219 400 open subpatch to see how to deal with '\$0', f 21 +; +#X obj 95 542 array; +#X listbox 99 411 14 0 0 0 - - - 0; +#X obj 8 46 cnv 1 850 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 774 11 <= click; +#N canvas 556 60 632 371 reference 0; +#X obj 8 52 cnv 5 610 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 182 cnv 2 610 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 301 cnv 2 610 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 335 cnv 5 610 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 247 cnv 1 610 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 7 210 cnv 1 610 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 109 254 list -; +#X text 102 219 float - number of samples (when reading a file)., +f 58; +#X text 157 254 sample rate \, header size \, number of channels \, +bytes per sample & endianness (when reading a file)., f 51; +#X text 75 66 read -; +#X text 174 66 sets a filename to open and optionally one or more arrays +to load channels. Optional flags: -wave \, -aiff \, -caf \, -next \, +-skip \, -maxsize \, -ascii \, -raw .; +#X text 68 117 write -; +#X text 174 116 sets a filename to write and one or more arrays to +specify channels. Optional flags: -wave \, -aiff \, -caf \, -next \, +-big \, -little \, -skip \, -nframes \, -ascii \, -normalize +\, -rate .., f 60; +#X obj 30 15 soundfiler; +#X text 108 14 - read and write soundfiles to arrays; +#X text 164 309 NONE; +#X restore 680 12 pd reference; +#X obj 8 524 cnv 1 850 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 551 132 Use 'read' messages to load files into arrays and 'write' +messages to write arrays to a sound file. Open the subpatch below for +more information on flags for reading and writing., f 39; +#N canvas 578 80 567 534 read-write-flags 0; +#X text 49 53 -skip ; +#X text 49 108 -raw +; +#X text 49 89 -maxsize +; +#X text 55 381 -skip ; +#X text 55 403 -nframes ; +#X text 55 447 -normalize; +#X text 55 425 -bytes <2 \, 3 \, or 4>; +#X text 55 467 -rate ; +#X text 49 219 -ascii - read a file containing ascii numbers; +#X text 55 359 -big \, -little (sample endianness); +#X text 54 340 -wave \, -aiff \, -caf \, -next \, -ascii; +#X text 55 495 The number of channels is limited to 64; +#X text 67 237 May be combined with -resize. Newlines in the file are +ignored \, non-numeric fields are replaced by zero. If multiple arrays +are specified \, the first elements of each array should come first +in the file \, followed by all the second elements and so on (interleaved). +, f 67; +#X text 49 35 -wave \, -aiff \, -caf \, -next; +#X text 49 71 -resize (resizes arrays to the size of the sound file) ; -#X obj 800 549 array; -#X connect 2 0 8 0; -#X connect 2 1 26 0; +#X text 9 17 Flags for 'read' messages:; +#X text 20 319 Flags for 'write' messages:; +#X text 67 126 you can leave soundfiler to figure out which of the +known soundfile formats the file belongs to or override all header +and type information using the "-raw" flag \, which causes all header +and type information to be ignored. Endianness is "l" ("little") for +Intel machines or "b" ("big") for older PPC Macintoshes. You can give +"n" (natural) to take the byte order your machine prefers., f 67; +#X restore 674 216 pd read-write-flags; +#X connect 2 0 6 0; +#X connect 2 1 35 0; #X connect 3 0 2 0; #X connect 4 0 2 0; #X connect 5 0 2 0; -#X connect 9 0 2 0; -#X connect 35 0 2 0; -#X connect 36 0 2 0; -#X connect 44 0 2 0; -#X connect 50 0 2 0; +#X connect 7 0 2 0; +#X connect 23 0 2 0; +#X connect 24 0 2 0; +#X connect 27 0 2 0; +#X connect 30 0 2 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/spigot-help.pd puredata-0.52.2+ds0/doc/5.reference/spigot-help.pd --- puredata-0.52.1+ds0/doc/5.reference/spigot-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/spigot-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,22 +1,48 @@ -#N canvas 437 86 551 343 12; -#X obj 51 17 spigot; -#X text 108 16 - pass or block messages; -#X msg 53 143 0.5 1000; -#X obj 70 286 print; -#X msg 80 196 walk the cat; -#X msg 70 168 bang; -#X text 145 226 control: nonzero to pass messages \, zero to stop them -; -#X text 280 296 updated for Pd version 0.38; -#X obj 109 230 tgl 15 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#N canvas 565 104 485 393 12; +#X obj 31 17 spigot; +#X text 88 16 - pass or block messages; +#X msg 93 144 0.5 1000; +#X obj 110 307 print; +#X msg 120 197 walk the cat; +#X msg 110 169 bang; +#X text 173 227 control: nonzero to pass messages \, zero to stop them +, f 28; +#X text 260 362 updated for Pd version 0.38; +#X obj 149 234 tgl 17 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 #000000 0 1; -#X text 146 253 optional arg sets the initial state (0 by default) -; -#X obj 70 253 spigot; -#X text 44 57 Spigot passes messages from its left inlet to its outlet +#X text 164 274 optional arg sets the initial state (0 by default) +, f 29; +#X obj 110 274 spigot; +#X text 24 59 Spigot passes messages from its left inlet to its outlet \, as long as a nonzero number is sent to its right inlet. When its right inlet gets zero \, incoming messages are "blocked" i.e. \, ignored. ; +#X obj 12 49 cnv 1 460 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 390 16 <= click; +#N canvas 707 220 571 252 reference 0; +#X obj 8 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 145 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 7 219 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 182 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 114 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 83 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 31 17 spigot; +#X text 88 16 - pass or block messages; +#X text 142 121 float - nonzero to pass messages \, zero to stop them. +; +#X text 120 88 anything - any message to pass or not., f 55; +#X text 123 192 1) float - initialize right inlet., f 52; +#X text 122 155 anything - any input message if spigot is opened.; +#X restore 296 16 pd reference; +#X obj 12 349 cnv 1 460 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 2 0 10 0; #X connect 4 0 10 0; #X connect 5 0 10 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/sqrt~-help.pd puredata-0.52.2+ds0/doc/5.reference/sqrt~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/sqrt~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/sqrt~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,37 +1,57 @@ -#N canvas 594 69 562 475 12; -#X obj 99 219 metro 500; -#X floatatom 84 108 5 0 0 0 - - - 0; -#X floatatom 84 274 5 0 0 0 - - - 0; -#X obj 99 194 loadbang; -#X obj 45 18 sqrt~; -#X text 97 20 - signal square root; -#X obj 84 158 sqrt~; -#X obj 84 246 snapshot~; -#X floatatom 84 357 5 0 0 0 - - - 0; -#X obj 84 301 t f f; -#X obj 84 328 *; -#X obj 84 134 sig~; -#X text 47 51 sqrt~ takes the approximate square root of the incoming +#N canvas 594 69 536 464 12; +#X obj 119 187 metro 500; +#X floatatom 64 127 5 0 0 0 - - - 0; +#X floatatom 64 263 5 0 0 0 - - - 0; +#X obj 119 162 loadbang; +#X obj 50 11 sqrt~; +#X text 100 12 - signal square root; +#X obj 64 177 sqrt~; +#X obj 64 235 snapshot~; +#X floatatom 64 346 5 0 0 0 - - - 0; +#X obj 64 290 t f f; +#X obj 64 317 *; +#X obj 64 153 sig~; +#X text 50 58 sqrt~ takes the approximate square root of the incoming signal \, using a fast \, approximate algorithm which is probably accurate -to about 120 dB (20 bits).; -#X text 330 397 updated for Pd version 0.47; -#X text 66 412 see also:; -#X obj 141 401 rsqrt~; -#X obj 199 401 sqrt; -#X obj 327 304 q8_sqrt~; -#X text 394 305 - deprecated; -#X text 207 244 An older object \, q8_sqrt~ \, is included in Pd for +to about 120 dB (20 bits)., f 63; +#X text 303 397 updated for Pd version 0.47; +#X text 38 410 see also:; +#X obj 113 399 rsqrt~; +#X obj 166 399 sqrt; +#X obj 297 293 q8_sqrt~; +#X text 364 294 - deprecated; +#X text 182 238 An older object \, q8_sqrt~ \, is included in Pd for back compatibility but should probably not be used. It only gives about 8 bit accuracy., f 45; -#X obj 242 401 expr~; -#X obj 142 430 exp~; -#X obj 179 430 log~; -#X obj 217 430 pow~; -#X text 232 153 DSP on/off; -#X obj 214 154 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X obj 205 399 expr~; +#X obj 113 424 exp~; +#X obj 150 424 log~; +#X obj 188 424 pow~; +#X text 286 151 DSP on/off; +#X obj 268 152 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X msg 214 179 \; pd dsp \$1; -#X text 127 273 result; +#X msg 268 177 \; pd dsp \$1; +#X text 107 262 result; +#N canvas 722 152 442 203 reference 0; +#X obj 9 50 cnv 5 410 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 95 cnv 2 410 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 132 cnv 2 410 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 167 cnv 5 410 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 125 141 NONE, f 36; +#X obj 41 13 sqrt~; +#X text 91 14 - signal square root; +#X text 105 65 signal - input to square root function.; +#X text 105 105 signal - output of square root function.; +#X restore 319 12 pd reference; +#X text 416 12 <= click; +#X obj 14 44 cnv 1 510 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 14 384 cnv 1 510 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 0 0 7 0; #X connect 1 0 11 0; #X connect 2 0 9 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/stripnote-help.pd puredata-0.52.2+ds0/doc/5.reference/stripnote-help.pd --- puredata-0.52.1+ds0/doc/5.reference/stripnote-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/stripnote-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,32 +1,63 @@ -#N canvas 751 75 508 481 12; +#N canvas 633 70 509 475 12; #X obj 120 382 print x1; #X obj 194 382 print x2; #X obj 120 333 stripnote, f 11; #X msg 120 280 34.5 67.8; -#X obj 130 428 makenote; -#X text 271 428 updated for Pd version 0.28; -#X obj 56 11 stripnote; -#X text 51 428 see also:; +#X obj 100 436 makenote; +#X text 281 436 updated for Pd version 0.28; +#X obj 26 11 stripnote; +#X text 21 436 see also:; #X floatatom 120 359 5 0 0 0 - - - 0; #X floatatom 194 359 5 0 0 0 - - - 0; -#X text 176 306 - note off ignored; -#X text 33 133 The left inlet takes the note number and the right inlet +#X text 33 131 The left inlet takes the note number and the right inlet takes velocity values. Alternatively \, you can send it a list that spreads the values through the inlets., f 63; -#X text 33 52 Stripnote ignores note-off (zero-velocity) messages from -a stream of MIDI-style note message and passes the others through unchanged. -It can deal with any numbers (negative \, floats \, whatever) even -though MIDI values need to be integers from 0 to 127!, f 63; #X msg 97 253 70 127; #X msg 138 305 70 0; -#X text 135 11 - strip "note off" messages; -#X text 33 186 This is very useful if you want a Note-On message to +#X text 105 11 - strip "note off" messages; +#X text 33 182 This is very useful if you want a Note-On message to trigger something in Pd but you don't want a Note-Off to trigger anything when you release the note., f 63; +#N canvas 683 85 535 307 reference 0; +#X obj 18 45 cnv 5 500 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 18 143 cnv 2 500 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 18 240 cnv 2 500 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X obj 17 204 cnv 1 500 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 17 174 cnv 1 500 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 17 106 cnv 1 500 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 17 76 cnv 1 500 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 110 83 float - MIDI pitch.; +#X text 110 180 float - MIDI pitch., f 23; +#X text 110 213 float - MIDI velocity., f 23; +#X obj 38 11 stripnote; +#X text 117 11 - strip "note off" messages; +#X text 135 251 NONE; +#X text 110 114 float - MIDI velocity (no output if equal to zero). +; +#X obj 17 279 cnv 5 500 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X restore 327 11 pd reference; +#X text 425 12 <= click; +#X obj 8 43 cnv 1 490 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 8 420 cnv 1 490 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 33 52 Stripnote ignores note-off (zero-velocity) messages from +a stream of MIDI-style note message and passes the others through unchanged. +It can deal with any kind of number (negative \, floats \, whatever) +even though MIDI values need to be integers from 0 to 127!, f 63; +#X text 176 306 <-- note off ignored; #X connect 2 0 8 0; #X connect 2 1 9 0; #X connect 3 0 2 0; #X connect 8 0 0 0; #X connect 9 0 1 0; -#X connect 13 0 2 0; -#X connect 14 0 2 0; +#X connect 11 0 2 0; +#X connect 12 0 2 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/struct-help.pd puredata-0.52.2+ds0/doc/5.reference/struct-help.pd --- puredata-0.52.1+ds0/doc/5.reference/struct-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/struct-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,30 +1,52 @@ -#N canvas 473 40 514 281 12; -#N canvas 345 476 491 176 help-template1 0; +#N canvas 527 75 606 283 12; +#N canvas 273 255 491 176 help-template1 0; #X obj 60 21 struct struct-1 float x float y symbol dog array weasel struct-2, f 42; #X text 40 76 In this example \, the "struct-1" structure is defined in which "x" and "y" are "floats" \, i.e. \, numbers \, but "dog" is a symbol and "weasel" is an array of objects of structure "struct-2". , f 56; -#X restore 338 162 pd help-template1; -#N canvas 427 361 463 166 help-template2 0; +#X restore 179 162 pd help-template1; +#N canvas 742 271 463 166 help-template2 0; #X text 26 74 Here is one which specifies only the floating point "y" \; it's used for the elements of the array shown in the other template. , f 57; #X obj 87 23 struct struct-2 float y; -#X restore 338 189 pd help-template2; -#X obj 56 169 drawpolygon; -#X text 56 149 see also:; -#X obj 151 169 drawnumber; -#X obj 236 170 plot; -#X text 299 236 updated for Pd version 0.35; -#X obj 35 16 struct; -#X text 30 55 There should be one "struct" object in each Pd window +#X restore 318 162 pd help-template2; +#X text 381 246 updated for Pd version 0.35; +#X obj 24 15 struct; +#X text 83 16 - declare the fields in a data structure.; +#X text 25 246 see also:; +#X obj 99 247 drawpolygon; +#X obj 190 247 drawtext; +#X obj 260 247 plot; +#X obj 6 47 cnv 1 590 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 48 64 There should be one "struct" object in each Pd window you are using as a data structure template. The arguments specify the -types and names of the fields \; and for array fields \, a third argument -specifies the template that the array elements should belong to.; -#X text 93 18 - declare the fields in a data structure.; -#X text 43 222 see also:; -#X obj 47 249 drawpolygon; -#X obj 138 249 drawtext; -#X obj 208 249 plot; +types and names of the fields. For array fields \, a third argument +specifies the template that the array elements should belong to., +f 71; +#X obj 6 227 cnv 1 590 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 549 137 633 263 reference 0; +#X obj 8 52 cnv 5 600 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 97 cnv 2 600 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 170 cnv 2 600 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 237 cnv 5 600 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 98 17 - declare the fields in a data structure.; +#X text 91 194 1) list -; +#X text 165 194 template name plus types and names of given fields +(array fields also need the array's template name)., f 59; +#X text 84 110 anything -; +#X text 167 109 messages notifying when there are interactions with +objects of the structure ('select' \, 'deselect' \, 'click' \, 'displace' +and 'change').; +#X obj 29 16 struct x; +#X text 145 65 NONE; +#X restore 491 16 pd reference; +#X text 426 16 click =>; diff -Nru puredata-0.52.1+ds0/doc/5.reference/swap-help.pd puredata-0.52.2+ds0/doc/5.reference/swap-help.pd --- puredata-0.52.1+ds0/doc/5.reference/swap-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/swap-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,41 +1,73 @@ -#N canvas 797 75 512 558 12; +#N canvas 560 55 513 507 12; #X msg 78 168 bang; #X floatatom 78 300 6 0 0 0 - - - 0; #X floatatom 100 201 4 0 0 0 - - - 0; #X floatatom 145 238 4 0 0 0 - - - 0; -#X obj 39 16 swap; -#X text 123 167 outputs 2 stored values; +#X obj 29 16 swap; #X obj 78 267 swap 6.5, f 10; -#X text 131 201 sets second value and outputs both; -#X text 177 239 sets first value; +#X text 134 201 sets second value and outputs both; +#X text 179 238 sets first value; #X text 163 267 creation argument initializes first value; #X floatatom 145 299 6 0 0 0 - - - 0; -#X text 59 377 A common use of swap is to reverse the operands in arithmetic -objects like this:; -#X obj 149 454 swap, f 6; -#X obj 157 484 -; -#X floatatom 157 511 5 0 0 0 - - - 0; -#X floatatom 188 428 4 0 0 0 - - - 0; -#X floatatom 149 428 4 0 0 0 - - - 0; -#X text 246 492 updated for Pd version 0.41; -#X text 38 53 The swap object swaps the positions of two incoming numbers. +#X text 97 372 A common use of swap is to reverse the operands in arithmetic +objects like this:, f 29; +#X obj 317 369 swap, f 6; +#X obj 325 399 -; +#X floatatom 325 426 5 0 0 0 - - - 0; +#X floatatom 356 343 4 0 0 0 - - - 0; +#X floatatom 317 343 4 0 0 0 - - - 0; +#X text 286 472 updated for Pd version 0.41; +#X text 38 73 The swap object swaps the positions of two incoming numbers. The number coming in through the right inlet will be sent to the left outlet and the number coming in left will come out right. Only the left inlet is hot and triggers output on both outlets. Output order is right to left as in [trigger].; -#X text 78 17 - swap two numbers \, respecting right-to-left order -; +#X text 69 13 - swap two numbers \, respecting right-to-left order +, f 30; #X obj 78 333 print L; #X obj 145 332 print R; -#X connect 0 0 6 0; -#X connect 1 0 20 0; -#X connect 2 0 6 0; -#X connect 3 0 6 1; -#X connect 6 0 1 0; -#X connect 6 1 10 0; -#X connect 10 0 21 0; +#N canvas 732 156 587 339 reference 0; +#X obj 18 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 18 171 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 18 265 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 307 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 17 229 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 17 200 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 17 134 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 17 83 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 42 14 swap; +#X text 82 15 - swap two numbers \, respecting right-to-left order. +, f 53; +#X text 155 108 float - set left value \, swap and output., f 42; +#X text 156 141 float - set left value \, swap and output.; +#X text 162 89 bang - outputs the stored values swapped.; +#X text 156 206 float - value from right/2nd inlet.; +#X text 156 238 float - value from left/1st inlet.; +#X text 146 276 1) float - initial right inlet value (default 0).; +#X restore 331 21 pd reference; +#X text 425 20 <= click; +#X obj 8 61 cnv 1 490 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 7 460 cnv 1 490 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 123 167 outputs the stored values swapped; +#X connect 0 0 5 0; +#X connect 1 0 19 0; +#X connect 2 0 5 0; +#X connect 3 0 5 1; +#X connect 5 0 1 0; +#X connect 5 1 9 0; +#X connect 9 0 20 0; +#X connect 11 0 12 0; +#X connect 11 1 12 1; #X connect 12 0 13 0; -#X connect 12 1 13 1; -#X connect 13 0 14 0; -#X connect 15 0 12 1; -#X connect 16 0 12 0; +#X connect 14 0 11 1; +#X connect 15 0 11 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/symbol-help.pd puredata-0.52.2+ds0/doc/5.reference/symbol-help.pd --- puredata-0.52.1+ds0/doc/5.reference/symbol-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/symbol-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,47 +1,78 @@ -#N canvas 706 50 837 439 12; -#X msg 43 130 bang; -#X text 128 264 creation argument initializes the value, f 21; -#X text 83 128 output the value; -#X text 150 159 set and output the value; -#X obj 43 272 symbol foo; -#X obj 69 14 symbol; -#X msg 58 160 symbol bar; -#X symbolatom 43 310 10 0 0 0 - - - 0; -#X text 186 235 set the value; -#X symbolatom 110 237 10 0 0 0 - - - 0; -#X msg 64 190 zorglub; -#X text 127 190 any other message is 'converted'; -#X text 125 13 - store a symbol (i.e. \, string); -#X text 28 60 The symbol object stores a symbol \, Pd's data type for +#N canvas 341 38 815 441 12; +#X msg 29 130 bang; +#X text 114 264 creation argument initializes the value, f 21; +#X text 69 128 output the value; +#X text 136 159 set and output the value; +#X obj 29 272 symbol foo; +#X msg 44 160 symbol bar; +#X symbolatom 29 310 10 0 0 0 - - - 0; +#X text 172 235 set the value; +#X symbolatom 96 237 10 0 0 0 - - - 0; +#X msg 50 190 zorglub; +#X text 113 190 any other message is 'converted'; +#X text 14 66 The symbol object stores a symbol \, Pd's data type for handling fixed strings (often filenames \, array names \, send/receive names or the names of other objects in pd).; -#X symbolatom 523 254 16 0 0 0 - - - 0; -#X symbolatom 667 185 16 0 0 0 - - - 0; -#X obj 523 216 symbol cis\ boom\ bah; -#X msg 523 121 symbol hey\\\,\\\ stop; -#X obj 498 161 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X symbolatom 509 254 16 0 0 0 - - - 0; +#X symbolatom 653 185 16 0 0 0 - - - 0; +#X obj 509 216 symbol cis\ boom\ bah; +#X msg 509 121 symbol hey\\\,\\\ stop; +#X obj 484 161 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 43 343 print; -#X obj 523 285 print; -#X text 50 400 see also:; -#X obj 125 401 float; -#X text 574 400 updated for Pd version 0.52; -#X msg 539 160 hi\ there; -#X text 450 51 Note you can also use backslashes to escape spaces and +#X obj 29 343 print; +#X obj 509 285 print; +#X msg 525 160 hi\ there; +#X text 436 61 Note you can also use backslashes to escape spaces and other special characters (comma \, semicolons \, dollar signs and backslash). , f 50; -#X text 163 324 NOTE: unlike "float" \, etc. \, there's no "send" message +#X text 149 324 NOTE: unlike "float" \, etc. \, there's no "send" message to forward to another object -- that would conflict with the function of converting arbitrary messages to symbols., f 86; +#X obj 34 14 symbol; +#X text 90 13 - store a symbol (i.e. \, string); +#X text 32 400 see also:; +#X obj 107 401 float; +#X text 599 398 updated for Pd version 0.52; +#N canvas 685 120 581 310 reference 0; +#X text 119 115 symbol -; +#X obj 8 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 7 85 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 8 204 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 241 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 278 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 165 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 44 18 symbol; +#X text 105 134 anything -; +#X text 96 17 - store a symbol (i.e. \, string).; +#X text 133 94 bang - output the stored symbol., f 49; +#X text 123 214 symbol - the stored symbol., f 49; +#X text 123 176 symbol - stores the symbol (no output)., f 49; +#X text 182 134 converts to symbol \, stores it and outputs it.; +#X text 181 115 stores the symbol received and outputs it.; +#X text 113 252 1) symbol - initially stored symbol (default: empty +symbol).; +#X restore 612 15 pd reference; +#X obj 9 51 cnv 1 800 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 9 381 cnv 1 800 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 709 16 <= click; +#X obj 157 400 int; #X connect 0 0 4 0; -#X connect 4 0 7 0; -#X connect 6 0 4 0; -#X connect 7 0 19 0; -#X connect 9 0 4 1; -#X connect 10 0 4 0; -#X connect 14 0 20 0; -#X connect 15 0 16 1; +#X connect 4 0 6 0; +#X connect 5 0 4 0; +#X connect 6 0 17 0; +#X connect 8 0 4 1; +#X connect 9 0 4 0; +#X connect 12 0 18 0; +#X connect 13 0 14 1; +#X connect 14 0 12 0; +#X connect 15 0 14 0; #X connect 16 0 14 0; -#X connect 17 0 16 0; -#X connect 18 0 16 0; -#X connect 24 0 16 0; +#X connect 19 0 14 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/tabosc4~-help.pd puredata-0.52.2+ds0/doc/5.reference/tabosc4~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/tabosc4~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/tabosc4~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,10 +1,9 @@ -#N canvas 754 81 696 705 12; +#N canvas 551 23 665 661 12; #X declare -stdpath ./; -#X floatatom 81 309 5 0 0 0 - - - 0; -#X obj 81 339 sig~ 100; -#X text 446 660 Updated for Pd version 0.33; -#X obj 70 21 tabosc4~; -#X text 186 391 message to switch tables; +#X floatatom 81 298 5 0 0 0 - - - 0; +#X obj 81 328 sig~ 100; +#X obj 50 18 tabosc4~; +#X text 186 370 message to switch tables; #X text 43 60 tabosc4~ is a traditional computer music style wavetable lookup oscillator using 4-point polynomial interpolation. The table should have a power of two points plus three "guard points" \, one @@ -12,16 +11,16 @@ of the last point and the first two points \, respectively. The "sinesum" and "cosinesum" methods for arrays do this automatically for you if you just want to specify partial strengths., f 77; -#X text 140 22 - 4-point interpolating oscillator; -#X obj 308 278 loadbang; -#X obj 81 523 output~; -#X text 16 654 see also:; -#X obj 90 654 osc~; -#X msg 139 444 0; -#X msg 176 444 0.5; -#X text 209 446 <= resets phase; -#X obj 134 654 phasor~; -#X obj 268 654 tabread4~; +#X text 120 19 - 4-point interpolating oscillator; +#X obj 308 270 loadbang; +#X obj 81 502 output~; +#X text 17 596 see also:; +#X obj 91 597 osc~; +#X msg 139 423 0; +#X msg 176 423 0.5; +#X text 209 425 <= resets phase; +#X obj 130 597 phasor~; +#X obj 264 597 tabread4~; #X text 43 152 For good results use 512 points for up to about 15 partials \, or 32*npartials (rounded up to a power of 2) for more than 15 partials. Don't send new "sinesum" messages to tables while you're running - @@ -29,18 +28,14 @@ #X text 43 214 The frequency input can be either a float or a signal. The right inlet resets the phase with values from 0 to 1 (where '1' is the same as '0' and '0.5' is half the cycle)., f 77; -#X text 200 476 creation argument initializes the table name; -#X text 122 309 frequency (Hz.); -#X msg 308 311 \; wave1 sinesum 512 1 1 1 1 \, normalize \; wave2 cosinesum +#X text 200 455 creation argument initializes the table name; +#X text 122 298 frequency (Hz.); +#X msg 308 297 \; wave1 sinesum 512 1 1 1 1 \, normalize \; wave2 cosinesum 512 0 1; -#X obj 81 476 tabosc4~ wave1; -#X msg 101 384 set wave1; -#X msg 111 410 set wave2; -#X obj 412 596 ../2.control.examples/15.array; -#X obj 412 619 ../2.control.examples/16.more.arrays; -#X text 33 600 Check also the "array" examples from the Pd tutorial -by clicking and opening the files to the right ====>, f 52; -#X obj 524 17 declare -stdpath ./; +#X obj 81 455 tabosc4~ wave1; +#X msg 101 363 set wave1; +#X msg 111 389 set wave2; +#X obj 189 514 declare -stdpath ./; #N canvas 978 194 574 404 Dealing_with_"\$0" 0; #X text 36 33 '\$0' - the patch ID number used to force locality in Pd - is widely used in send/receive names as well as array names. This @@ -73,19 +68,74 @@ #X connect 10 0 3 0; #X connect 11 0 5 0; #X connect 11 0 5 1; -#X restore 389 536 pd Dealing_with_"\$0"; -#X obj 451 371 array define wave1; -#X obj 451 395 array define wave2; -#X obj 344 654 array; -#X text 227 527 open subpatch to see how to deal with '\$0', f 21 +#X restore 435 536 pd Dealing_with_"\$0"; +#X obj 451 360 array define wave1; +#X obj 451 384 array define wave2; +#X obj 24 626 array; +#X text 427 497 open subpatch to see how to deal with '\$0', f 21 ; -#X obj 194 654 tabwrite~; +#X obj 190 597 tabwrite~; +#N canvas 731 147 584 276 reference 0; +#X obj 18 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 18 174 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 18 211 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 248 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 119 91 signal -; +#X obj 17 136 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 17 85 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 126 145 float -; +#X text 183 145 phase cycle reset (from 0 to 1)., f 46; +#X text 183 91 frequency value in Hz., f 46; +#X obj 50 18 tabosc4~; +#X text 120 19 - 4-point interpolating oscillator.; +#X text 77 110 set -; +#X text 126 184 signal - wavetable oscillator output., f 54; +#X text 183 110 set table name with the waveform., f 46; +#X text 124 220 1) float - initial frequency value in Hz (default 0). +; +#X restore 423 18 pd reference; +#X text 521 19 <= click; +#X obj 8 49 cnv 1 650 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 8 580 cnv 1 650 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 428 607 updated for Pd version 0.33; +#N canvas 643 412 384 186 array-examples 0; +#N canvas 491 316 457 285 open 0; +#X obj 120 23 inlet; +#X obj 173 121 pdcontrol; +#X msg 173 94 dir; +#X obj 120 181 pack s s; +#X obj 173 64 loadbang; +#X msg 120 212 \; pd open \$1 \$2; +#X obj 173 151 makefilename %s/../2.control.examples; +#X connect 0 0 3 0; +#X connect 1 0 6 0; +#X connect 2 0 1 0; +#X connect 3 0 5 0; +#X connect 4 0 2 0; +#X connect 6 0 3 1; +#X restore 52 131 pd open; +#X msg 52 76 15.array.pd; +#X msg 62 102 16.more.arrays.pd; +#X text 144 77 <-- click to open examples.; +#X text 47 22 See also and the "array" examples from the section 2 +of Pd's tutorial:, f 39; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X restore 73 626 pd array-examples; #X connect 0 0 1 0; -#X connect 1 0 21 0; -#X connect 7 0 20 0; -#X connect 11 0 21 1; -#X connect 12 0 21 1; -#X connect 21 0 8 0; -#X connect 21 0 8 1; -#X connect 22 0 21 0; -#X connect 23 0 21 0; +#X connect 1 0 20 0; +#X connect 6 0 19 0; +#X connect 10 0 20 1; +#X connect 11 0 20 1; +#X connect 20 0 7 0; +#X connect 20 0 7 1; +#X connect 21 0 20 0; +#X connect 22 0 20 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/tabplay~-help.pd puredata-0.52.2+ds0/doc/5.reference/tabplay~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/tabplay~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/tabplay~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,22 +1,20 @@ -#N canvas 564 81 875 580 12; +#N canvas 404 23 874 520 12; #X declare -stdpath ./; #N canvas 0 0 450 300 (subpatch) 0; #X array sample 155944 float 0; #X coords 0 1 155943 -1 250 200 1 0 0; -#X restore 572 262 graph; -#X floatatom 63 437 0 0 0 0 - - - 0; +#X restore 568 212 graph; #X text 148 139 "set" message permits you to switch between arrays ; #X text 174 291 creation argument initializes array name; -#X obj 53 542 tabwrite~; -#X obj 196 542 tabread; -#X obj 255 542 tabwrite; -#X obj 90 26 tabplay~; -#X obj 552 161 soundfiler; -#X floatatom 552 187 0 0 0 0 - - - 0; -#X obj 63 411 env~ 16384; -#X obj 322 542 soundfiler; -#X obj 124 542 tabread4~; +#X obj 105 475 tabwrite~; +#X obj 248 475 tabread; +#X obj 307 475 tabwrite; +#X obj 55 18 tabplay~; +#X obj 550 137 soundfiler; +#X floatatom 550 163 0 0 0 0 - - - 0; +#X obj 374 475 soundfiler; +#X obj 176 475 tabread4~; #X msg 90 214 0 44100; #X msg 84 189 44100; #X msg 77 165 bang; @@ -28,25 +26,21 @@ #X text 148 212 play starting at beginning for 44100 samples; #X msg 95 239 44100 1000; #X text 173 238 play from 44100 through 45099 (1000 samples); -#X text 647 540 updated for Pd version 0.43; +#X text 647 476 updated for Pd version 0.43; #X msg 102 264 stop; #X text 138 265 stop playing (outputs zeros when stopped); -#X obj 165 338 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X obj 165 328 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X text 183 337 <= bang when finished playing the table; -#X text 157 27 - play a table as a sample (non-transposing); +#X text 185 327 <= bang when finished playing the table; +#X text 122 17 - play a table as a sample (non-transposing); #X obj 63 291 tabplay~ sample; #X msg 63 139 set sample; -#X obj 258 480 ../2.control.examples/15.array; -#X obj 258 503 ../2.control.examples/16.more.arrays; -#X text 56 514 see also:, f 10; -#X obj 81 336 output~; -#X obj 680 24 declare -stdpath ./; -#X msg 552 129 read -resize ../sound/bell.aiff sample; -#X text 619 99 load table; -#X obj 552 99 loadbang; -#X text 192 434 Check also the "array" examples from the Pd tutorial -by clicking and opening the files below, f 43; +#X text 26 475 see also:; +#X obj 63 336 output~; +#X obj 42 412 declare -stdpath ./; +#X msg 550 105 read -resize ../sound/bell.aiff sample; +#X text 617 75 load table; +#X obj 550 75 loadbang; #N canvas 978 194 593 443 Dealing_with_"\$0" 0; #X text 36 33 '\$0' - the patch ID number used to force locality in Pd - is widely used in send/receive names as well as array names. This @@ -87,18 +81,76 @@ #X restore 359 383 pd Dealing_with_"\$0"; #X text 197 374 open subpatch to see how to deal with '\$0', f 21 ; -#X obj 407 542 array; -#X connect 8 0 9 0; -#X connect 10 0 1 0; -#X connect 13 0 28 0; -#X connect 14 0 28 0; -#X connect 15 0 28 0; -#X connect 20 0 28 0; -#X connect 23 0 28 0; -#X connect 28 0 10 0; -#X connect 28 0 33 0; -#X connect 28 0 33 1; -#X connect 28 1 25 0; -#X connect 29 0 28 0; -#X connect 35 0 8 0; -#X connect 37 0 35 0; +#X obj 459 475 array; +#N canvas 750 87 580 357 reference 0; +#X obj 13 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 13 186 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 13 293 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 12 330 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 13 248 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 13 209 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 58 160 set -; +#X text 114 85 bang -; +#X text 163 85 plays the whole sample (same as '0')., f 46; +#X text 107 66 float -; +#X text 115 19 - play a table as a sample (non-transposing).; +#X text 163 66 sets starting sample and plays the sample., f 46; +#X text 114 103 list -; +#X text 163 103 1st element sets starting sample and 2nd element sets +duration in samples.; +#X text 114 139 stop -; +#X text 163 139 stop playing (outputs zeros when stopped)., f 46; +#X text 163 160 set the table with the sample., f 53; +#X text 121 216 signal - sample output., f 54; +#X text 135 255 bang - bang when finished playing the table., f 54 +; +#X obj 45 18 tabplay~; +#X text 121 302 1) symbol - sets table name with the sample.; +#X restore 659 18 pd reference; +#X text 757 17 <= click; +#X obj 8 52 cnv 1 850 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 8 452 cnv 1 850 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 643 412 384 186 array-examples 0; +#N canvas 491 316 457 285 open 0; +#X obj 120 23 inlet; +#X obj 173 121 pdcontrol; +#X msg 173 94 dir; +#X obj 120 181 pack s s; +#X obj 173 64 loadbang; +#X msg 120 212 \; pd open \$1 \$2; +#X obj 173 151 makefilename %s/../2.control.examples; +#X connect 0 0 3 0; +#X connect 1 0 6 0; +#X connect 2 0 1 0; +#X connect 3 0 5 0; +#X connect 4 0 2 0; +#X connect 6 0 3 1; +#X restore 52 131 pd open; +#X msg 52 76 15.array.pd; +#X msg 62 102 16.more.arrays.pd; +#X text 144 77 <-- click to open examples.; +#X text 47 22 See also and the "array" examples from the section 2 +of Pd's tutorial:, f 39; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X restore 507 475 pd array-examples; +#X connect 7 0 8 0; +#X connect 11 0 26 0; +#X connect 12 0 26 0; +#X connect 13 0 26 0; +#X connect 18 0 26 0; +#X connect 21 0 26 0; +#X connect 26 0 29 0; +#X connect 26 0 29 1; +#X connect 26 1 23 0; +#X connect 27 0 26 0; +#X connect 31 0 7 0; +#X connect 33 0 31 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/tabread4~-help.pd puredata-0.52.2+ds0/doc/5.reference/tabread4~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/tabread4~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/tabread4~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,59 +1,51 @@ -#N canvas 720 236 851 575 12; +#N canvas 355 33 844 564 12; #N canvas 0 22 450 300 (subpatch) 0; #X array table2-ex 10 float 3; #A 0 1 4 2 8 5 6 1 1 4 2; #X coords 0 10 10 0 250 150 1 0 0; -#X restore 557 340 graph; -#X obj 36 434 snapshot~; -#X obj 55 402 metro 200; +#X restore 530 165 graph; +#X obj 36 414 snapshot~; +#X obj 55 382 metro 200; #X obj 36 165 sig~; #X floatatom 36 139 6 1 8 0 - - - 0; -#X floatatom 36 460 6 0 0 0 - - - 0; -#X text 104 142 incoming signal is index. Indices should range from +#X floatatom 36 440 6 0 0 0 - - - 0; +#X text 89 140 incoming signal is index. Indices should range from 1 to (size-2) so that the 4-point interpolation is meaningful. You can shift-drag the number box to see the effect of interpolation., -f 67; -#X text 162 213 "set" message permits you to switch between arrays -; +f 52; +#X text 192 212 "set" message permits you to switch between arrays +, f 25; #X text 192 316 creation argument initializes array name; -#X obj 113 24 tabread4~; -#X obj 26 537 tabwrite~; -#X obj 161 537 tabread; -#X obj 220 537 tabwrite; -#X obj 285 537 tabsend~; -#X obj 350 537 tabreceive~; -#X obj 97 537 tabplay~; -#X text 630 532 updated for Pd version 0.42; -#X floatatom 166 250 3 0 10 0 - - - 0; -#X obj 267 486 ../2.control.examples/15.array; -#X obj 532 275 ../3.audio.examples/B15.tabread4~-onset; -#X text 195 242 right inlet sets onset into table. You can use this -to improve the accuracy of indexing into the array. Click and open -this example for mre details =>, f 51; -#X obj 267 507 ../2.control.examples/16.more.arrays; -#X text 211 450 Check also the "array" examples from the Pd tutorial -by clicking and opening the files below., f 44; -#X text 27 506 see also these objects:; -#X text 74 62 Tabread4~ is used to build samplers and other table lookup +#X obj 44 20 tabread4~; +#X obj 94 500 tabwrite~; +#X obj 229 500 tabread; +#X obj 288 500 tabwrite; +#X obj 353 500 tabsend~; +#X obj 94 526 tabreceive~; +#X obj 165 500 tabplay~; +#X text 608 508 updated for Pd version 0.42; +#X floatatom 166 266 5 0 10 0 - - - 0; +#X obj 509 423 ../3.audio.examples/B15.tabread4~-onset; +#X text 44 71 Tabread4~ is used to build samplers and other table lookup algorithms. The interpolation scheme is 4-point polynomial as used in delread4~ and tabosc4~., f 77; -#X obj 437 537 tabosc4~; -#X obj 505 537 soundfiler; +#X obj 181 526 tabosc4~; +#X obj 249 526 soundfiler; #N canvas 515 381 401 220 init-table 0; #X obj 35 42 loadbang; #X msg 35 74 \; table2-ex resize 10 \; table2-ex bounds 0 10 10 0 \; table2-ex xlabel -0.2 0 1 2 3 4 5 6 7 8 9 \; table2-ex ylabel -0.3 0 1 2 3 4 5 6 7 8 9 10 \; table2-ex 0 1 4 2 8 5 6 1 1 4 2; #X connect 0 0 1 0; -#X restore 712 316 pd init-table; +#X restore 685 141 pd init-table; #X obj 36 316 tabread4~ table2-ex; -#X msg 63 213 set table2-ex; -#X obj 55 378 loadbang; -#X text 167 361 DSP on/off; -#X msg 150 384 \; pd dsp \$1; -#X obj 150 361 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X msg 87 219 set table2-ex; +#X obj 55 355 loadbang; +#X text 191 368 DSP on/off; +#X msg 174 391 \; pd dsp \$1; +#X obj 174 368 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 193 24 - 4-point-interpolating table lookup for signals; +#X text 124 20 - 4-point-interpolating table lookup for signals; #N canvas 831 536 593 441 Dealing_with_"\$0" 0; #X text 36 33 '\$0' - the patch ID number used to force locality in Pd - is widely used in send/receive names as well as array names. This @@ -91,18 +83,78 @@ #X connect 13 0 15 0; #X connect 14 0 13 0; #X connect 16 0 14 0; -#X restore 289 398 pd Dealing_with_"\$0"; -#X text 291 360 open subpatch to see how to deal with '\$0', f 21 -; +#X restore 315 423 pd Dealing_with_"\$0"; #X obj 39 117 hsl 128 15 1 8 0 0 empty empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1; +#N canvas 750 87 575 303 reference 0; +#X obj 11 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 11 196 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 11 241 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 10 278 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 106 131 set -; +#X text 211 131 set the table name., f 42; +#X text 211 209 value of index input.; +#X text 211 96 sets table index and output its value with interpoation. +, f 42; +#X obj 37 20 tabread4~; +#X text 117 20 - 4-point-interpolating table lookup for signals.; +#X text 149 209 signal -; +#X text 148 96 signal -; +#X obj 11 158 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 11 85 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 155 167 float -; +#X text 211 167 sets table onset., f 42; +#X text 129 250 1) symbol - sets table name with the sample.; +#X restore 611 16 pd reference; +#X text 709 15 <= click; +#X obj 8 53 cnv 1 830 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 212 254 right sets table onset to improve the accuracy of indexing +into the array., f 25; +#X text 514 384 Open this example for more details on setting onset: +, f 35; +#X text 310 386 open subpatch to see how to deal with '\$0':, f 22 +; +#X obj 8 478 cnv 1 830 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 18 513 see also:; +#N canvas 643 412 384 186 array-examples 0; +#N canvas 491 316 457 285 open 0; +#X obj 120 23 inlet; +#X obj 173 121 pdcontrol; +#X msg 173 94 dir; +#X obj 120 181 pack s s; +#X obj 173 64 loadbang; +#X msg 120 212 \; pd open \$1 \$2; +#X obj 173 151 makefilename %s/../2.control.examples; +#X connect 0 0 3 0; +#X connect 1 0 6 0; +#X connect 2 0 1 0; +#X connect 3 0 5 0; +#X connect 4 0 2 0; +#X connect 6 0 3 1; +#X restore 52 131 pd open; +#X msg 52 76 15.array.pd; +#X msg 62 102 16.more.arrays.pd; +#X text 144 77 <-- click to open examples.; +#X text 47 22 See also and the "array" examples from the section 2 +of Pd's tutorial:, f 39; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X restore 331 526 pd array-examples; #X connect 1 0 5 0; #X connect 2 0 1 0; -#X connect 3 0 28 0; +#X connect 3 0 23 0; #X connect 4 0 3 0; -#X connect 17 0 28 1; -#X connect 28 0 1 0; -#X connect 29 0 28 0; -#X connect 30 0 2 0; -#X connect 33 0 32 0; -#X connect 37 0 4 0; +#X connect 17 0 23 1; +#X connect 23 0 1 0; +#X connect 24 0 23 0; +#X connect 25 0 2 0; +#X connect 28 0 27 0; +#X connect 31 0 4 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/tabread4-help.pd puredata-0.52.2+ds0/doc/5.reference/tabread4-help.pd --- puredata-0.52.1+ds0/doc/5.reference/tabread4-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/tabread4-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,28 +1,23 @@ -#N canvas 752 166 723 557 12; +#N canvas 509 36 721 493 12; #X text 118 198 index; #X floatatom 70 199 6 1 8 0 - - - 0; #X floatatom 70 304 6 0 0 0 - - - 0; #X text 219 263 creation argument; #X text 221 279 gives array name; #X text 195 231 change array name; -#X text 479 516 updated for Pd version 0.43; -#X obj 42 515 tabwrite~; -#X obj 246 515 tabwrite; -#X obj 311 515 tabsend~; -#X obj 376 515 tabreceive~; -#X obj 113 515 tabplay~; -#X obj 181 515 tabread; +#X text 479 445 updated for Pd version 0.43; +#X obj 93 431 tabwrite~; +#X obj 291 432 tabwrite; +#X obj 94 460 tabsend~; +#X obj 159 460 tabreceive~; +#X obj 164 431 tabplay~; +#X obj 232 431 tabread; #X text 45 58 The tabread4 object reads values from an array ("table") according to an index \, applying four-point polynomial interpolation. Indices should range from 1 to (size-2) so that the 4-point interpolation is meaningful. You can shift-drag the number box to see the effect of interpolation. Indices outside of the range are replaced by the nearest index in range (from 1 to 8 in this example)., f 80; -#X obj 419 435 ../2.control.examples/15.array; -#X obj 419 458 ../2.control.examples/16.more.arrays; -#X text 40 439 Check also the "array" examples from the Pd tutorial -by clicking and opening the files to the right ====>, f 52; -#X text 41 488 See also these objects:; #X msg 80 231 set tabread4-ex; #X obj 70 271 tabread4 tabread4-ex; #X text 121 306 output = tabread4-ex[index]; @@ -73,9 +68,59 @@ #X connect 13 0 2 0; #X restore 202 374 pd Dealing_with_"\$0"; #X text 40 365 open subpatch to see how to deal with '\$0', f 21; -#X obj 85 19 tabread4; -#X text 158 19 - 4-point-interpolating table lookup; -#X connect 1 0 19 0; -#X connect 18 0 19 0; -#X connect 19 0 2 0; -#X connect 23 0 1 0; +#X obj 45 16 tabread4; +#X text 118 16 - 4-point-interpolating table lookup; +#N canvas 750 87 581 254 reference 0; +#X obj 18 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 18 131 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 18 176 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 213 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 123 101 set -; +#X text 172 66 float -; +#X text 228 101 set the table name., f 42; +#X text 172 144 float -; +#X text 228 144 value of index input.; +#X obj 55 18 tabread4; +#X text 128 18 - 4-point-interpolating table lookup.; +#X text 228 66 sets table index and output its value with interpoation. +, f 42; +#X text 136 185 1) symbol - sets table name with the sample.; +#X restore 521 16 pd reference; +#X text 619 15 <= click; +#X obj 8 50 cnv 1 700 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 8 415 cnv 1 700 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 17 446 See also:; +#N canvas 643 412 384 186 array-examples 0; +#N canvas 491 316 457 285 open 0; +#X obj 120 23 inlet; +#X obj 173 121 pdcontrol; +#X msg 173 94 dir; +#X obj 120 181 pack s s; +#X obj 173 64 loadbang; +#X msg 120 212 \; pd open \$1 \$2; +#X obj 173 151 makefilename %s/../2.control.examples; +#X connect 0 0 3 0; +#X connect 1 0 6 0; +#X connect 2 0 1 0; +#X connect 3 0 5 0; +#X connect 4 0 2 0; +#X connect 6 0 3 1; +#X restore 52 131 pd open; +#X msg 52 76 15.array.pd; +#X msg 62 102 16.more.arrays.pd; +#X text 144 77 <-- click to open examples.; +#X text 47 22 See also and the "array" examples from the section 2 +of Pd's tutorial:, f 39; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X restore 250 460 pd array-examples; +#X connect 1 0 15 0; +#X connect 14 0 15 0; +#X connect 15 0 2 0; +#X connect 19 0 1 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/tabread~-help.pd puredata-0.52.2+ds0/doc/5.reference/tabread~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/tabread~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/tabread~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,4 +1,4 @@ -#N canvas 717 183 819 562 12; +#N canvas 380 23 819 524 12; #X obj 61 367 snapshot~; #X obj 80 339 metro 200; #X obj 61 149 sig~; @@ -7,26 +7,22 @@ #X text 194 188 "set" message permits you to switch between arrays , f 25; #X text 202 244 creation argument initializes array name, f 24; -#X obj 99 512 tabwrite~; -#X obj 234 512 tabread; -#X obj 357 512 tabwrite; -#X obj 422 512 tabsend~; -#X obj 487 512 tabreceive~; -#X obj 170 512 tabplay~; -#X obj 97 24 tabread~; +#X obj 171 458 tabwrite~; +#X obj 306 458 tabread; +#X obj 100 486 tabwrite; +#X obj 165 486 tabsend~; +#X obj 230 486 tabreceive~; +#X obj 242 458 tabplay~; +#X obj 67 16 tabread~; #X text 80 59 Tabread~ looks up values out of the named array. Incoming values are truncated to the next lower integer \, and values out of bounds get the nearest (first or last) point., f 85; #X text 118 123 incoming signal is index. Indices should range from 0 to (size-1)., f 34; -#X obj 27 512 tabread4~; -#X obj 292 512 tabread4; -#X text 602 511 updated for Pd version 0.43; -#X obj 509 451 ../2.control.examples/15.array; -#X obj 509 474 ../2.control.examples/16.more.arrays; -#X text 130 455 Check also the "array" examples from the Pd tutorial -by clicking and opening the files to the right ====>, f 52; -#X text 29 483 see also:; +#X obj 99 458 tabread4~; +#X obj 364 458 tabread4; +#X text 591 475 updated for Pd version 0.43; +#X text 24 473 see also:; #N canvas 0 22 450 300 (subpatch) 0; #X array tabread-ex 10 float 3; #A 0 1 4 2 8 5 6 1 4 2 8; @@ -46,7 +42,7 @@ #X msg 200 328 \; pd dsp \$1; #X obj 80 311 loadbang; #X text 219 301 DSP on/off; -#X text 176 24 - non-interpolating table lookup for signals; +#X text 146 16 - non-interpolating table lookup for signals; #N canvas 978 194 593 412 Dealing_with_"\$0" 0; #X text 36 33 '\$0' - the patch ID number used to force locality in Pd - is widely used in send/receive names as well as array names. This @@ -87,11 +83,59 @@ #X restore 339 398 pd Dealing_with_"\$0"; #X text 177 389 open subpatch to see how to deal with '\$0', f 21 ; +#N canvas 702 120 581 232 reference 0; +#X obj 18 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 18 118 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 18 163 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 200 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 113 86 set -; +#X text 218 66 sets table index and output its value.; +#X text 218 86 set the table name., f 39; +#X text 218 131 value of index input.; +#X obj 67 16 tabread~; +#X text 146 16 - non-interpolating table lookup for signals.; +#X text 155 66 signal -; +#X text 155 131 signal -; +#X text 126 172 1) symbol - sets table name with the sample.; +#X restore 581 18 pd reference; +#X text 679 17 <= click; +#X obj 8 52 cnv 1 800 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 8 442 cnv 1 800 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 643 412 384 186 array-examples 0; +#N canvas 491 316 457 285 open 0; +#X obj 120 23 inlet; +#X obj 173 121 pdcontrol; +#X msg 173 94 dir; +#X obj 120 181 pack s s; +#X obj 173 64 loadbang; +#X msg 120 212 \; pd open \$1 \$2; +#X obj 173 151 makefilename %s/../2.control.examples; +#X connect 0 0 3 0; +#X connect 1 0 6 0; +#X connect 2 0 1 0; +#X connect 3 0 5 0; +#X connect 4 0 2 0; +#X connect 6 0 3 1; +#X restore 52 131 pd open; +#X msg 52 76 15.array.pd; +#X msg 62 102 16.more.arrays.pd; +#X text 144 77 <-- click to open examples.; +#X text 47 22 See also and the "array" examples from the section 2 +of Pd's tutorial:, f 39; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X restore 317 486 pd array-examples; #X connect 0 0 4 0; #X connect 1 0 0 0; -#X connect 2 0 25 0; +#X connect 2 0 22 0; #X connect 3 0 2 0; -#X connect 24 0 25 0; -#X connect 25 0 0 0; -#X connect 26 0 28 0; -#X connect 29 0 1 0; +#X connect 21 0 22 0; +#X connect 22 0 0 0; +#X connect 23 0 25 0; +#X connect 26 0 1 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/tabread-help.pd puredata-0.52.2+ds0/doc/5.reference/tabread-help.pd --- puredata-0.52.1+ds0/doc/5.reference/tabread-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/tabread-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,6 +1,6 @@ -#N canvas 664 140 708 526 12; +#N canvas 556 34 719 478 12; #X text 100 151 index; -#X obj 106 24 tabread; +#X obj 66 18 tabread; #X floatatom 67 152 4 0 9 0 - - - 0; #X floatatom 67 268 5 0 0 0 - - - 0; #N canvas 0 22 450 300 (subpatch) 0; @@ -11,23 +11,18 @@ #X text 191 216 creation argument; #X text 193 232 gives array name; #X text 176 184 change array name; -#X text 467 471 updated for Pd version 0.43; -#X obj 158 472 tabwrite~; -#X obj 92 472 tabwrite; -#X obj 300 472 tabsend~; -#X obj 366 472 tabreceive~; -#X obj 232 472 tabplay~; -#X obj 27 472 tabread4; +#X text 473 424 updated for Pd version 0.43; +#X obj 240 407 tabwrite~; +#X obj 168 407 tabwrite; +#X obj 97 435 tabsend~; +#X obj 163 435 tabreceive~; +#X obj 314 407 tabplay~; +#X obj 97 407 tabread4; #X text 51 61 The tabread object reads values from an array ("table") according to an index. The index is rounded down to the next lower integer. Values in the table correspond to indices starting at 0 Indices outside of the range are replaced by the nearest index in range (from 0 to 9 in this example)., f 84; -#X obj 415 392 ../2.control.examples/15.array; -#X obj 415 415 ../2.control.examples/16.more.arrays; -#X text 36 396 Check also the "array" examples from the Pd tutorial -by clicking and opening the files to the right ====>, f 52; -#X text 26 442 see also these objects:; #X obj 67 224 tabread table-ex; #X msg 77 184 set table-ex; #X text 110 269 output = table-ex[index]; @@ -71,7 +66,56 @@ #X connect 13 0 9 0; #X restore 200 332 pd Dealing_with_"\$0"; #X text 38 323 open subpatch to see how to deal with '\$0', f 21; -#X text 169 24 - non-interpolating table lookup; -#X connect 2 0 20 0; -#X connect 20 0 3 0; -#X connect 21 0 20 0; +#X text 129 18 - non-interpolating table lookup; +#N canvas 750 87 581 232 reference 0; +#X obj 15 51 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 15 117 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 15 162 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 14 199 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 120 85 set -; +#X text 169 65 float -; +#X obj 43 17 tabread; +#X text 106 17 - non-interpolating table lookup.; +#X text 225 65 sets table index and output its value.; +#X text 225 85 set the table name., f 38; +#X text 169 130 float -; +#X text 225 130 value of index input.; +#X text 133 171 1) symbol - sets table name with the sample.; +#X restore 511 18 pd reference; +#X text 609 17 <= click; +#X obj 8 52 cnv 1 700 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 8 392 cnv 1 700 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 643 412 384 186 array-examples 0; +#N canvas 491 316 457 285 open 0; +#X obj 120 23 inlet; +#X obj 173 121 pdcontrol; +#X msg 173 94 dir; +#X obj 120 181 pack s s; +#X obj 173 64 loadbang; +#X msg 120 212 \; pd open \$1 \$2; +#X obj 173 151 makefilename %s/../2.control.examples; +#X connect 0 0 3 0; +#X connect 1 0 6 0; +#X connect 2 0 1 0; +#X connect 3 0 5 0; +#X connect 4 0 2 0; +#X connect 6 0 3 1; +#X restore 52 131 pd open; +#X msg 52 76 15.array.pd; +#X msg 62 102 16.more.arrays.pd; +#X text 144 77 <-- click to open examples.; +#X text 47 22 See also and the "array" examples from the section 2 +of Pd's tutorial:, f 39; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X restore 252 435 pd array-examples; +#X text 20 418 see also:; +#X connect 2 0 16 0; +#X connect 16 0 3 0; +#X connect 17 0 16 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/tabsend-receive~-help.pd puredata-0.52.2+ds0/doc/5.reference/tabsend-receive~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/tabsend-receive~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/tabsend-receive~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,24 +1,24 @@ -#N canvas 826 76 531 651 12; -#X obj 31 27 tabsend~; -#X text 322 602 updated for Pd version 0.43; -#X text 159 293 creation argument: initializes table name; +#N canvas 391 23 714 548 12; +#X obj 27 23 tabsend~; +#X text 499 508 updated for Pd version 0.43; +#X text 169 292 creation argument: initializes table name, f 22; #N canvas 0 22 450 278 (subpatch) 0; #X array table-1 64 float 0; #X coords 0 1 63 -1 150 75 1 0 0; -#X restore 336 103 graph; -#X obj 38 193 osc~ 440; +#X restore 320 113 graph; +#X obj 45 197 osc~ 440; #N canvas 0 22 450 278 (subpatch) 0; #X array table-2 64 float 0; #X coords 0 1 63 -1 150 75 1 0 0; -#X restore 335 200 graph; -#X msg 61 230 set table-1; -#X obj 38 292 tabsend~ table-1; -#X msg 162 175 \; pd dsp \$1; -#X obj 162 153 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X restore 483 113 graph; +#X msg 68 234 set table-1; +#X obj 45 296 tabsend~ table-1; +#X msg 405 244 \; pd dsp \$1; +#X obj 405 222 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X msg 69 255 set table-2; -#X text 161 232 use 'set' message to change table's name, f 20; -#N canvas 839 185 528 353 block 0; +#X msg 76 259 set table-2; +#X text 168 236 use 'set' message to change table's name, f 20; +#N canvas 838 185 528 353 block 0; #X obj 135 107 block~ 1024; #X obj 67 153 noise~; #X text 250 177 arrays can also be defined with the array object., @@ -40,32 +40,28 @@ #X connect 1 0 10 0; #X connect 8 0 7 0; #X connect 11 0 7 0; -#X restore 80 491 pd block; -#X obj 403 530 block~; -#X obj 355 530 send~; -#X text 38 91 By default a block is 64 samples but this can be changed -with the block~ object., f 36; -#X obj 355 554 array; -#X text 119 26 - write a block of a signal to an array continuously -; -#X obj 31 50 tabreceive~; -#X text 119 50 - read a block of a signal from an array continuously -; -#X text 196 401 creation argument: initializes table name; -#X text 159 344 'set' message to change table name, f 17; -#X obj 49 401 tabreceive~ table-1; -#X msg 68 367 set table-1; -#X msg 49 341 set table-2; -#X obj 49 434 print~; -#X obj 21 401 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X restore 399 329 pd block; +#X obj 132 509 block~; +#X obj 86 509 send~; +#X text 38 113 By default a block is 64 samples but this can be changed +with the block~ object., f 33; +#X obj 188 509 array; +#X text 115 22 - write a block of a signal to an array continuously +; +#X obj 27 46 tabreceive~; +#X text 115 46 - read a block of a signal from an array continuously +; +#X text 206 416 creation argument: initializes table name, f 23; +#X text 169 359 'set' message to change table name, f 17; +#X obj 59 416 tabreceive~ table-1; +#X msg 78 382 set table-1; +#X msg 59 356 set table-2; +#X obj 59 449 print~; +#X obj 31 416 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 403 554 tabwrite~; -#X text 149 491 <= example with a different block size; -#X obj 24 577 ../2.control.examples/15.array; -#X obj 24 600 ../2.control.examples/16.more.arrays; -#X text 18 535 see also the "array" examples from section 2 (click -below to open them) and these objects:, f 45; -#X text 185 151 DSP on/off; +#X obj 236 509 tabwrite~; +#X text 468 329 <= example with a different block size, f 22; +#X text 428 220 DSP on/off; #N canvas 1178 377 569 384 Dealing_with_"\$0" 0; #X text 36 33 '\$0' - the patch ID number used to force locality in Pd - is widely used in send/receive names as well as array names. This @@ -93,9 +89,74 @@ #X connect 7 0 6 0; #X connect 8 0 9 0; #X connect 10 0 9 0; -#X restore 307 445 pd Dealing_with_"\$0"; -#X text 145 436 open subpatch to see how to deal with '\$0', f 21 +#X restore 465 438 pd Dealing_with_"\$0"; +#X text 457 392 open subpatch to see how to deal with '\$0', f 22 +; +#X obj 8 80 cnv 1 700 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 7 490 cnv 1 700 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 701 87 576 461 reference 0; +#X obj 8 53 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 117 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 154 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 195 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 351 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 396 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 433 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 126 127 NONE; +#X obj 8 311 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X text 189 406 receive name symbol (default: empty symbol).; +#X obj 24 20 tabsend~; +#X text 112 19 - write a block of a signal to an array continuously +; +#X obj 27 276 tabreceive~; +#X text 115 276 - read a block of a signal from an array continuously +; +#X text 109 324 set - set table name.; +#X text 138 362 signal - outputs signal from a matching tabsend~ object. ; +#X text 92 87 set - set table name.; +#X text 119 67 signal - signal to send to matching tabreceive~ object(s). +; +#X text 124 162 1) symbol - send symbol name (default: empty symbol). +; +#X text 106 406 1) symbol -; +#X restore 535 27 pd reference; +#X text 632 28 <= click; +#X text 12 508 see also:; +#N canvas 643 412 384 186 array-examples 0; +#N canvas 491 316 457 285 open 0; +#X obj 120 23 inlet; +#X obj 173 121 pdcontrol; +#X msg 173 94 dir; +#X obj 120 181 pack s s; +#X obj 173 64 loadbang; +#X msg 120 212 \; pd open \$1 \$2; +#X obj 173 151 makefilename %s/../2.control.examples; +#X connect 0 0 3 0; +#X connect 1 0 6 0; +#X connect 2 0 1 0; +#X connect 3 0 5 0; +#X connect 4 0 2 0; +#X connect 6 0 3 1; +#X restore 52 131 pd open; +#X msg 52 76 15.array.pd; +#X msg 62 102 16.more.arrays.pd; +#X text 144 77 <-- click to open examples.; +#X text 47 22 See also and the "array" examples from the section 2 +of Pd's tutorial:, f 39; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X restore 310 509 pd array-examples; #X connect 4 0 7 0; #X connect 6 0 7 0; #X connect 9 0 8 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/tabwrite~-help.pd puredata-0.52.2+ds0/doc/5.reference/tabwrite~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/tabwrite~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/tabwrite~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,44 +1,39 @@ -#N canvas 665 108 707 569 12; -#X obj 75 17 tabwrite~; -#X msg 53 212 bang; +#N canvas 366 43 665 518 12; +#X obj 55 17 tabwrite~; +#X msg 53 232 bang; #N canvas 0 50 450 300 (subpatch) 0; #X array buffer 1000 float 0; #X coords 0 1 999 -1 200 100 1 0 0; -#X restore 405 208 graph; -#X text 167 343 creation argument initializes array name; -#X obj 106 516 tabread; -#X obj 166 516 tabwrite; -#X obj 234 516 tabsend~; -#X obj 301 516 tabreceive~; -#X obj 32 516 tabread4~; -#X msg 71 281 stop; -#X text 109 282 stop recording; -#X msg 62 249 start 500; -#X text 480 516 updated for Pd version 0.40.; -#X text 155 17 - write a signal in an array; -#X text 92 213 start recording; -#X text 159 310 set destination array; -#X text 44 49 Tabwrite~ records an audio signal sequentially into an +#X restore 405 228 graph; +#X text 167 363 creation argument initializes array name; +#X obj 169 455 tabread; +#X obj 229 455 tabwrite; +#X obj 297 455 tabsend~; +#X obj 95 482 tabreceive~; +#X obj 95 455 tabread4~; +#X msg 71 301 stop; +#X text 109 302 stop recording; +#X msg 62 269 start 500; +#X text 430 469 updated for Pd version 0.40.; +#X text 135 17 - write a signal in an array; +#X text 92 233 start recording; +#X text 159 330 set destination array; +#X text 44 69 Tabwrite~ records an audio signal sequentially into an array. Sending it "bang" writes from beginning to end of the array. To avoid writing all the way to the end \, you can send a "stop" message at an appropriate later time. The "start" message allows setting the array location at which the first sample is written. (Starting and stopping occur on block boundaries \, typically multiples of 64 samples -\, in the input signal.), f 75; -#X obj 43 343 tabwrite~ buffer; -#X msg 80 310 set buffer; -#X obj 43 182 osc~ 200; -#X obj 389 441 ../2.control.examples/15.array; -#X obj 389 464 ../2.control.examples/16.more.arrays; -#X text 64 445 see also the "array" examples from section 2 (click -to the right to open them) =========> and these objects below:, f -45; -#X obj 388 516 soundfiler; -#X msg 241 177 \; pd dsp \$1; -#X obj 241 154 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +\, in the input signal.), f 80; +#X obj 43 363 tabwrite~ buffer; +#X msg 80 330 set buffer; +#X obj 43 202 osc~ 200; +#X obj 182 482 soundfiler; +#X msg 241 197 \; pd dsp \$1; +#X obj 241 174 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 135 245 start at index 500 (middle of this table), f 22; -#X text 263 153 DSP on/off; +#X text 135 265 start at index 500 (middle of this table), f 22; +#X text 263 173 DSP on/off; #N canvas 792 534 593 356 Dealing_with_"\$0" 0; #X text 36 33 '\$0' - the patch ID number used to force locality in Pd - is widely used in send/receive names as well as array names. This @@ -63,12 +58,67 @@ #X connect 4 0 3 0; #X connect 8 0 7 0; #X connect 9 0 7 0; -#X restore 323 389 pd Dealing_with_"\$0"; -#X text 161 380 open subpatch to see how to deal with '\$0', f 21 +#X restore 323 409 pd Dealing_with_"\$0"; +#X text 161 400 open subpatch to see how to deal with '\$0', f 21 ; +#N canvas 651 119 583 293 reference 0; +#X obj 18 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 18 178 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 18 220 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 257 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 81 152 set -; +#X text 188 152 set the table name., f 39; +#X text 187 189 NONE; +#X obj 55 17 tabwrite~; +#X text 135 17 - write a signal in an array.; +#X text 124 71 signal -; +#X text 188 71 signal to write to an array., f 39; +#X text 137 114 bang -; +#X text 137 134 stop -; +#X text 188 134 stops recording into the array., f 39; +#X text 74 92 start -; +#X text 188 92 starts recording at given sample (default 0).; +#X text 188 114 starts recording into the array (same as 'start 0'). +; +#X text 126 229 1) symbol - sets table name with the sample.; +#X restore 461 18 pd reference; +#X text 559 17 <= click; +#X obj 8 52 cnv 1 650 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 8 443 cnv 1 650 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 643 412 384 186 array-examples 0; +#N canvas 491 316 457 285 open 0; +#X obj 120 23 inlet; +#X obj 173 121 pdcontrol; +#X msg 173 94 dir; +#X obj 120 181 pack s s; +#X obj 173 64 loadbang; +#X msg 120 212 \; pd open \$1 \$2; +#X obj 173 151 makefilename %s/../2.control.examples; +#X connect 0 0 3 0; +#X connect 1 0 6 0; +#X connect 2 0 1 0; +#X connect 3 0 5 0; +#X connect 4 0 2 0; +#X connect 6 0 3 1; +#X restore 52 131 pd open; +#X msg 52 76 15.array.pd; +#X msg 62 102 16.more.arrays.pd; +#X text 144 77 <-- click to open examples.; +#X text 47 22 See also and the "array" examples from the section 2 +of Pd's tutorial:, f 39; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X restore 263 482 pd array-examples; +#X text 18 469 see also:; #X connect 1 0 17 0; #X connect 9 0 17 0; #X connect 11 0 17 0; #X connect 18 0 17 0; #X connect 19 0 17 0; -#X connect 25 0 24 0; +#X connect 22 0 21 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/tabwrite-help.pd puredata-0.52.2+ds0/doc/5.reference/tabwrite-help.pd --- puredata-0.52.1+ds0/doc/5.reference/tabwrite-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/tabwrite-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,36 +1,32 @@ -#N canvas 856 69 673 530 12; -#X obj 46 22 tabwrite; -#X floatatom 48 136 4 0 10 0 - - - 0; +#N canvas 369 29 666 457 12; +#X obj 26 22 tabwrite; +#X floatatom 28 136 4 0 10 0 - - - 0; #N canvas 0 22 450 278 (subpatch) 0; #X array tabwrite-ex 10 float 2; #X coords 0 10 10 0 250 200 1 0 0; -#X restore 393 137 graph; -#X floatatom 185 261 4 0 9 0 - - - 0; -#X text 200 284 creation argument; -#X text 202 302 is array name; -#X text 84 134 set y value; -#X text 184 170 change array name; -#X text 426 482 updated for Pd version 0.33; -#X text 118 22 - write numbers to a table; -#X text 86 204 right inlet selects x value (indexed from 0). Note that +#X restore 373 137 graph; +#X floatatom 165 261 4 0 9 0 - - - 0; +#X text 180 284 creation argument; +#X text 182 302 is array name; +#X text 64 134 set y value; +#X text 164 170 change array name; +#X text 457 420 updated for Pd version 0.33; +#X text 98 22 - write numbers to a table; +#X text 66 204 right inlet selects x value (indexed from 0). Note that input values are clipped to the range from 0 to size-1, f 37; -#X obj 75 463 ../2.control.examples/15.array; -#X obj 75 486 ../2.control.examples/16.more.arrays; -#X text 59 419 see also the "array" examples from section 2 (click -below to open them) and these objects:, f 45; -#X obj 461 433 tabread; -#X obj 524 433 tabread4; -#X obj 592 432 array; +#X obj 152 420 tabread; +#X obj 209 420 tabread4; +#X obj 274 420 array; #N canvas 515 381 401 220 init-table 0; #X obj 35 42 loadbang; #X msg 35 74 \; tabwrite-ex resize 10 \; tabwrite-ex bounds 0 10 10 0 \; tabwrite-ex xlabel -0.2 0 1 2 3 4 5 6 7 8 9 \; tabwrite-ex ylabel -0.3 0 1 2 3 4 5 6 7 8 9 10 \; tabwrite-ex 0 1 4 2 8 5 6 1 4 2 8; #X connect 0 0 1 0; -#X restore 541 112 pd init-table; -#X obj 48 295 tabwrite tabwrite-ex; -#X msg 69 170 set tabwrite-ex; -#X text 42 66 Tabwrite writes floats into an array \, input values +#X restore 521 112 pd init-table; +#X obj 28 295 tabwrite tabwrite-ex; +#X msg 49 170 set tabwrite-ex; +#X text 22 66 Tabwrite writes floats into an array \, input values are set in the left inlet \, while the index is set on the right inlet. , f 62; #N canvas 792 534 593 356 Dealing_with_"\$0" 0; @@ -56,9 +52,63 @@ #X connect 4 0 3 0; #X connect 6 0 8 0; #X connect 9 0 8 1; -#X restore 207 361 pd Dealing_with_"\$0"; -#X text 45 352 open subpatch to see how to deal with '\$0', f 21; -#X obj 385 433 tabwrite~; -#X connect 1 0 18 0; -#X connect 3 0 18 1; -#X connect 19 0 18 0; +#X restore 187 361 pd Dealing_with_"\$0"; +#X text 25 352 open subpatch to see how to deal with '\$0', f 21; +#X obj 81 420 tabwrite~; +#N canvas 653 102 583 306 reference 0; +#X obj 18 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 18 188 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 18 233 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 17 270 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 113 114 set -; +#X text 162 94 float -; +#X text 218 114 set the table name., f 39; +#X obj 46 22 tabwrite; +#X text 118 22 - write numbers to a table.; +#X text 218 94 sets index value and write to a table., f 39; +#X text 170 201 NONE; +#X obj 17 144 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 17 85 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 162 154 float -; +#X text 218 155 sets index to write to., f 39; +#X text 126 242 1) symbol - sets table name with the sample.; +#X restore 461 18 pd reference; +#X text 559 17 <= click; +#X obj 8 52 cnv 1 650 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 8 403 cnv 1 650 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 9 419 see also:; +#N canvas 643 412 384 186 array-examples 0; +#N canvas 491 316 457 285 open 0; +#X obj 120 23 inlet; +#X obj 173 121 pdcontrol; +#X msg 173 94 dir; +#X obj 120 181 pack s s; +#X obj 173 64 loadbang; +#X msg 120 212 \; pd open \$1 \$2; +#X obj 173 151 makefilename %s/../2.control.examples; +#X connect 0 0 3 0; +#X connect 1 0 6 0; +#X connect 2 0 1 0; +#X connect 3 0 5 0; +#X connect 4 0 2 0; +#X connect 6 0 3 1; +#X restore 52 131 pd open; +#X msg 52 76 15.array.pd; +#X msg 62 102 16.more.arrays.pd; +#X text 144 77 <-- click to open examples.; +#X text 47 22 See also and the "array" examples from the section 2 +of Pd's tutorial:, f 39; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X restore 317 420 pd array-examples; +#X connect 1 0 15 0; +#X connect 3 0 15 1; +#X connect 16 0 15 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/textfile-help.pd puredata-0.52.2+ds0/doc/5.reference/textfile-help.pd --- puredata-0.52.1+ds0/doc/5.reference/textfile-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/textfile-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,64 +1,105 @@ -#N canvas 300 93 1015 528 12; -#X msg 435 30 rewind; -#X obj 507 434 print done; -#X text 635 190 read a file; -#X text 687 218 write one; -#X text 52 419 see also:; -#X obj 454 383 textfile; -#X msg 506 191 read textfile.txt; -#X obj 131 420 qlist; -#X obj 65 34 textfile; -#X text 59 95 The textfile object reads and writes text files to and +#N canvas 281 58 921 551 12; +#X msg 271 61 rewind; +#X obj 417 434 print done; +#X text 503 222 read a file; +#X text 555 250 write one; +#X text 28 512 see also:; +#X obj 364 383 textfile; +#X msg 374 223 read textfile.txt; +#X obj 107 513 qlist; +#X obj 25 14 textfile; +#X text 40 127 The textfile object reads and writes text files to and from memory. You can read a file and output sequential lines as lists \, or collect lines and write them out. You can use this object to -generate "models" for Gem \, for instance., f 38; -#X text 488 29 go to beginning; -#X msg 447 57 bang; -#X text 482 56 output one line as a list; -#X msg 517 219 write /tmp/textfile.txt; -#X msg 527 246 write /tmp/textfile2.txt cr; -#X text 536 267 write a file \, terminating lines only with carriage +generate "models" for Gem \, for instance., f 33; +#X text 324 60 go to beginning; +#X msg 293 88 bang; +#X msg 385 251 write /tmp/textfile.txt; +#X msg 399 283 write /tmp/textfile2.txt cr; +#X text 601 275 write a file \, terminating lines only with carriage return (omitting semicolons.) You can read files this way too \, in -which case carriage returns are mapped to semicolons.; -#X obj 454 479 print list; -#X msg 509 321 read textfile.txt cr; -#X msg 455 83 clear; -#X text 499 82 empty the object; -#X text 586 112 add a message; -#X text 535 472 this outlet gets the lines in sequence., f 20; -#X text 56 335 You can also use this object simply for storing heterogeneous -sequences of lists., f 37; -#X text 590 426 This outlet gets a bang when you hit the end of the -sequence., f 33; -#X msg 495 165 set 2 4 6 8; -#X text 580 165 clear and then add one message; -#X msg 466 112 add cis boom bah; -#X msg 485 139 add2 bang; -#X text 563 139 add an unterminated message; -#X text 59 210 To record textual messages and save them to a file \, +which case carriage returns are mapped to semicolons., f 42; +#X msg 448 309 read textfile.txt cr; +#X msg 311 114 clear; +#X text 355 113 empty the object; +#X text 452 142 add a message; +#X text 40 388 You can also use this object simply for storing heterogeneous +sequences of lists., f 33; +#X msg 363 197 set 2 4 6 8; +#X text 448 197 clear and then add one message; +#X msg 332 142 add cis boom bah; +#X msg 348 171 add2 bang; +#X text 426 171 add an unterminated message; +#X text 40 252 To record textual messages and save them to a file \, first send "clear" to empty the qlist and "add" to add messages (terminated with semicolons.) The message \, "add2" adds a list of atoms without finishing with a semicolon in case you want to make variable-length -messages., f 38; -#X msg 515 347 print; -#X text 557 347 debugging printout; -#X text 784 487 updated for Pd version 0.33; -#X text 146 34 - read and write text files; -#X obj 133 448 text; -#X text 178 439 (newer and better replacement for textfile), f 25 +messages., f 33; +#X msg 454 339 print; +#X text 496 339 debugging printout; +#X text 692 512 updated for Pd version 0.33; +#X text 106 14 - read and write text files; +#X obj 159 513 text; +#X text 197 512 (newer and better replacement for textfile); +#X obj 9 45 cnv 1 900 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 677 95 575 388 reference 0; +#X obj 8 42 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 230 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 326 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 362 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 289 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 7 255 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 123 70 rewind - go to beginning (and stop)., f 59; +#X text 130 162 print - print contents to Pd window., f 58; +#X text 117 294 bang - when reaching the end of sequence.; +#X obj 25 14 textfile; +#X text 106 14 - read and write text files; +#X text 88 261 anything - lines stored in the textfile object.; +#X text 137 52 bang - output a whole line and go to the next, f 57 ; -#X text 525 383 <-- you can also click on the object to edit its contents -\, just like text define; +#X text 130 88 clear - empty the textfile., f 58; +#X text 67 106 add - add a message to textfile., f 67; +#X text 60 125 add2 - add a message but don't terminate +it., f 68; +#X text 67 144 set - clear and add a message to textfile. +, f 67; +#X text 46 181 read - read a file (with optional 'cr' +argument)., f 70; +#X text 39 200 write - write to a file (with optional +'cr' argument)., f 71; +#X text 150 337 NONE; +#X restore 737 14 pd reference; +#X text 831 14 <= click; +#X obj 364 463 print line; +#X text 448 463 output lines in sequence., f 27; +#X text 500 435 output a bang when you hit the end of the sequence. +; +#X text 435 383 <--; +#X text 464 382 you can click on the object to edit its contents (like +[text define]), f 36; +#X obj 417 410 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#X obj 9 496 cnv 1 900 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 328 87 output a whole line and go to the next; #X connect 0 0 5 0; -#X connect 5 0 16 0; -#X connect 5 1 1 0; +#X connect 5 0 35 0; +#X connect 5 1 40 0; #X connect 6 0 5 0; #X connect 11 0 5 0; +#X connect 12 0 5 0; #X connect 13 0 5 0; -#X connect 14 0 5 0; -#X connect 17 0 5 0; -#X connect 18 0 5 0; -#X connect 24 0 5 0; +#X connect 15 0 5 0; +#X connect 16 0 5 0; +#X connect 20 0 5 0; +#X connect 22 0 5 0; +#X connect 23 0 5 0; #X connect 26 0 5 0; -#X connect 27 0 5 0; -#X connect 30 0 5 0; +#X connect 40 0 1 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/text-help.pd puredata-0.52.2+ds0/doc/5.reference/text-help.pd --- puredata-0.52.1+ds0/doc/5.reference/text-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/text-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,5 +1,28 @@ -#N canvas 329 177 544 214 12; -#X text 281 174 updated for Pd version 0.26; -#X text 107 13 comments; -#X text 38 73 This is Pd's help window for comments \, which don't -do anything.; +#N canvas 624 123 485 238 12; +#X text 32 16 comment; +#X text 100 16 - a comment box; +#X text 273 201 updated for Pd version 0.52; +#X obj 3 44 cnv 1 475 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 3 186 cnv 1 475 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 879 173 375 183 reference 0; +#X obj 8 45 cnv 5 350 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 87 cnv 2 350 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 152 cnv 5 350 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 116 cnv 2 350 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X text 26 13 comment; +#X text 94 13 - a comment box; +#X text 141 58 NONE, f 6; +#X text 141 93 NONE, f 6; +#X text 141 123 NONE, f 6; +#X restore 308 13 pd reference; +#X text 402 13 <= click; +#X text 16 60 This is Pd's help window for comments \, which don't +do anything \, have no inlet/outlets or arguments. As other objects +in Pd \, you can resize the line length by adjusting the size in edit +mode. If you use semicolons \; lines \; get \; broken., f 63; diff -Nru puredata-0.52.1+ds0/doc/5.reference/text-object-help.pd puredata-0.52.2+ds0/doc/5.reference/text-object-help.pd --- puredata-0.52.1+ds0/doc/5.reference/text-object-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/text-object-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,75 +1,117 @@ #N struct text-help-struct float x float y text z; -#N struct template1 float x float y float z float q; -#N canvas 721 71 562 579 12; -#X obj 123 531 list; -#X obj 68 12 text; -#X text 46 530 see also:; +#N canvas 595 24 540 573 12; +#X obj 91 539 list; +#X obj 28 12 text; +#X text 14 539 see also:; #N canvas 0 50 600 400 (subpatch) 0; #N canvas 0 50 450 250 (subpatch) 0; #X array table4 100 float 0; #X coords 0 1 99 -1 500 300 1; #X restore 50 50 graph; -#X restore 163 531 array; -#X obj 280 196 text define; -#X text 97 147 The text object's first argument sets its function: +#X restore 131 539 array; +#X obj 241 206 text define; +#X text 68 158 The text object's first argument sets its function: , f 27; -#N canvas 766 102 679 680 define 0; -#X msg 90 74 clear; -#X msg 108 100 read text-object-help.txt; -#X msg 121 129 write text-object-help.txt; -#X text 107 25 "text define" maintains a text object and can name it +#N canvas 505 76 742 624 define 0; +#X msg 42 109 clear; +#X msg 60 135 read text-object-help.txt; +#X msg 93 164 write text-object-help.txt; +#X text 27 62 "text define" maintains a text object and can name it so that other objects can find it (and later should have some alternative -\, anonymous way to be found).; -#X text 146 417 click to open and edit text:, f 16; -#X text 395 432 creation arguments:; -#X text 423 450 optional -k flag to keep contents; -#X text 425 467 optional name; -#X text 295 98 read from a file; -#X text 317 129 write to a file; -#X text 139 73 clear; -#X obj 150 245 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +\, anonymous way to be found)., f 98; +#X text 205 372 click to open and edit text:, f 14; +#X text 400 394 creation arguments:; +#X text 428 412 optional -k flag to keep contents; +#X text 430 429 optional name; +#X text 247 133 read from a file; +#X text 289 164 write to a file; +#X text 91 108 clear; +#X obj 128 237 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 88 510 t b p; -#X obj 88 562 text get -s text t; -#X msg 88 537 0; -#X obj 88 612 print; -#X obj 88 587 list trim; -#X obj 88 449 text define -k text-help-1; -#A set this is a message \; this is another 1 ... \;; -#X msg 136 204 write -c /tmp/test-cr.txt; -#X obj 267 479 print notify-outlet; -#X text 173 593 First outlet is pointer to a "text" scalar containing +#X obj 93 472 t b p; +#X obj 93 524 text get -s text t; +#X msg 93 499 0; +#X obj 93 574 print; +#X obj 93 549 list trim; +#X obj 93 411 text define -k text-help-1; +#A set this is a message \; this is another 1 ... \; end \;; +#X msg 108 204 write -c /tmp/test-cr.txt; +#X obj 272 441 print notify-outlet; +#X text 177 547 First outlet is pointer to a "text" scalar containing the text \, which is output when the object is sent a "bang". For example -\, here's machinery for printing out first line of text., f 46; -#X text 171 239 bang to output a pointer to a scalar (struct) containing +\, here's machinery for printing out first line of text., f 74; +#X text 149 231 bang to output a pointer to a scalar (struct) containing the text - see first outlet below, f 45; -#X text 265 504 Second outlet notifies you when text changes. As of +#X text 270 466 Second outlet notifies you when text changes. As of Pd 0.48 this only outputs the message "updated" when text changes \, but this might be extended to offer more information in the future. -, f 42; -#X msg 164 352 click; -#X msg 212 352 close; -#X text 260 352 open and close text window; -#X msg 156 287 send text-help-send; -#X text 301 287 send pointer to a named receive object; -#X obj 101 481 r text-help-send; -#X text 132 152 (optionally you can read or write to/from a file interpreting -carriage returns as separators \; this should allow reading some text -file formats - like this:), f 64; -#X msg 156 323 sort; -#X text 203 321 sort the contents. details here:; -#N canvas 1070 128 647 361 sorting-text 0; -#X obj 45 126 text define text-help-sorting; -#X msg 76 89 sort; -#X msg 44 54 set zz \\\; yy \\\; 1 2 \\\; 1 2 3 \\\; 1 \\\; 2 \;; -#X text 63 168 Numbers come before symbols \, which are sorted alphabetically +; +#X msg 161 340 click; +#X msg 209 340 close; +#X text 257 340 open and close text window; +#X msg 142 275 send text-help-send; +#X text 287 275 send pointer to a named receive object; +#X obj 106 443 r text-help-send; +#X msg 153 311 sort; +#X text 200 309 sort the contents. details here:; +#N canvas 719 128 502 255 sorting-text 0; +#X obj 101 197 text define text-help-sorting; +#X msg 133 160 sort; +#X msg 101 125 set zz \\\; yy \\\; 1 2 \\\; 1 2 3 \\\; 1 \\\; 2 \; +; +#X text 47 25 Numbers come before symbols \, which are sorted alphabetically (details such as case sensitivity (does 'b' come before 'A'?) may depend on operating system). Shorter lines come before longer ones that match the entire shorter lines. As a special case empty lines come before anything else.; #X connect 1 0 0 0; #X connect 2 0 0 0; -#X restore 446 322 pd sorting-text; +#X restore 443 310 pd sorting-text; +#X text 636 17 <= click; +#N canvas 758 177 578 421 reference 0; +#X obj 9 46 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 207 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 393 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 43 93 send - send pointer to a named receive object +, f 68; +#X text 101 233 pointer - a pointer to the scalar containing the array. +; +#X obj 39 16 text define; +#X text 137 16 - create \, store \, and/or edit texts; +#X text 87 332 -k: saves/keeps the contents of the text with the patch. +; +#X text 159 368 1) symbol - set text name.; +#X text 106 55 bang - output a pointer to the scalar containing the +text., f 59; +#X text 43 111 read - read from a file (with optional -c flag). +, f 68; +#X text 36 129 write - write to a file (with optional -c flag). +, f 69; +#X text 106 147 sort - sort the text contents., f 59; +#X text 99 165 click - open text window., f 60; +#X text 99 183 close - closes the text window., f 60; +#X obj 10 230 cnv 1 550 1 empty empty 1st: 8 12 0 13 #000000 #000000 +0; +#X obj 9 254 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 94 259 anything - outputs "updated" when text changes.; +#X text 99 73 clear - clear contents of the text., f 60; +#X obj 9 301 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 327 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 359 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 +0; +#X restore 533 18 pd reference; +#X obj 10 51 cnv 1 725 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 33 18 text define; +#X text 131 18 - create \, store \, and/or edit texts; +#X text 297 198 an optional -c flag allows you to read or write to/from +a file interpreting carriage returns as separators., f 55; #X connect 0 0 17 0; #X connect 1 0 17 0; #X connect 2 0 17 0; @@ -86,61 +128,114 @@ #X connect 24 0 17 0; #X connect 26 0 17 0; #X connect 28 0 12 0; -#X connect 30 0 17 0; -#X restore 392 196 pd define; -#X obj 280 219 text get; -#N canvas 567 169 858 587 get 0; -#X floatatom 113 123 5 0 5 0 - - - 0; -#X msg 37 92 0; -#X msg 113 92 2; -#X msg 73 92 1; -#X obj 113 307 print; -#X obj 264 308 print type; -#X msg 150 92 3; -#X msg 190 92 4; -#X text 349 304 "type" is 0 if terminated by a semicolon \, 1 if by +#X connect 29 0 17 0; +#X restore 353 206 pd define; +#X obj 241 229 text get; +#N canvas 379 89 819 591 get 0; +#X floatatom 103 150 5 0 5 0 - - - 0; +#X msg 27 119 0; +#X msg 103 119 2; +#X msg 63 119 1; +#X obj 103 334 print; +#X obj 254 335 print type; +#X msg 140 119 3; +#X msg 180 119 4; +#X text 339 331 "type" is 0 if terminated by a semicolon \, 1 if by a comma \, or 2 if the line number was out of range.; -#X obj 568 526 text define -k text-help-get; +#X obj 548 539 text define -k text-help-get; #A set 1 2 3 4 5 \; a b c d e \; 4 5 6 7 8 \, 9 10 11 12 \;; -#X obj 113 238 text get text-help-get; -#X floatatom 91 436 5 0 0 0 - - - 0; -#X msg 55 395 0; -#X msg 131 395 2; -#X msg 91 395 1; -#X obj 91 523 print; -#X msg 168 395 3; -#X obj 91 466 text get text-help-get 1; -#X text 317 225 arguments: name of the text object or "-s struct-name" -; -#X floatatom 476 426 5 0 0 0 - - - 0; -#X msg 441 395 0; -#X msg 511 395 2; -#X msg 476 395 1; -#X obj 476 477 print; -#X msg 548 395 3; -#X text 272 461 read field number 1 (zero for first field), f 23; -#X text 152 359 examples showing field selection:; -#X text 51 23 "text get" reads the nth line from the named text and +#X obj 103 265 text get text-help-get; +#X floatatom 81 463 5 0 0 0 - - - 0; +#X msg 45 422 0; +#X msg 121 422 2; +#X msg 81 422 1; +#X obj 81 550 print; +#X msg 158 422 3; +#X obj 81 493 text get text-help-get 1; +#X text 307 252 arguments: name of the text object or "-s struct-name" +; +#X floatatom 456 423 5 0 0 0 - - - 0; +#X msg 421 392 0; +#X msg 491 392 2; +#X msg 456 392 1; +#X obj 456 500 print; +#X msg 528 392 3; +#X text 262 488 read field number 1 (zero for first field), f 23; +#X text 55 388 examples showing field selection:; +#X text 71 63 "text get" reads the nth line from the named text and outputs it \, or optionally reads one or more specific fields (atoms) -from the line., f 70; -#X text 167 123 specify line number (0 for first line); -#X floatatom 163 148 5 0 5 0 - - - 0; -#X floatatom 213 171 5 0 5 0 - - - 0; -#X text 261 170 specify number of fields (1 by default \, but ignored +from the line., f 93; +#X text 157 150 specify line number (0 for first line); +#X floatatom 153 175 5 0 5 0 - - - 0; +#X floatatom 203 198 5 0 5 0 - - - 0; +#X text 251 197 specify number of fields (1 by default \, but ignored if whole line), f 66; -#X text 671 446 read 3 fields starting at field 1, f 20; -#X text 211 147 starting field number (-1 \, the default \, gives the +#X text 651 443 read 3 fields starting at field 1, f 19; +#X text 201 174 starting field number (-1 \, the default \, gives the whole line), f 61; -#X text 318 244 next optional arg to set starting field number (first +#X text 308 271 next optional arg to set starting field number (first inlet -- none to specify whole line), f 46; -#X text 318 277 next optional arg to set inlet 2 (number of fields +#X text 308 304 next optional arg to set inlet 2 (number of fields \, defaults to one), f 68; -#X msg 264 197 symbol text-help-get; -#X text 411 196 find another text by name or pointer; -#X floatatom 264 273 5 0 0 0 - - - 0; -#X listbox 113 270 16 0 0 0 - - - 0; -#X obj 476 451 text get text-help-get 1 3; -#X listbox 91 495 6 0 0 0 - - - 0; +#X msg 254 224 symbol text-help-get; +#X text 401 223 find another text by name or pointer; +#X floatatom 254 300 5 0 0 0 - - - 0; +#X listbox 103 297 16 0 0 0 - - - 0; +#X obj 456 448 text get text-help-get 1 3; +#X listbox 81 522 11 0 0 0 - - - 0; +#X text 712 16 <= click; +#N canvas 679 124 567 487 reference 0; +#X obj 9 46 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 9 213 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 446 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 9 137 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 77 344 -s : struct name and field name of +main structure., f 66; +#X obj 9 108 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 35 15 text get; +#X text 104 15 - read and output a line.; +#X obj 9 75 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 105 83 float - specify line number and output (0 for first +line).; +#X text 105 114 float - starting field number (-1 for the whole line). +, f 55; +#X text 105 144 float - specify number of fields.; +#X obj 9 165 cnv 1 550 1 empty empty 4th: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 268 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 241 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 112 246 list - a line from text or fields from a line.; +#X text 105 274 float -; +#X text 160 276 line type: 0 if terminated by a semicolon \, 1 if by +a comma \, or 2 if the line number was out of range., f 51; +#X text 99 377 symbol - text name if no flags are given (default: none). +; +#X text 106 395 float - starting field number (default: 0)., f 56 +; +#X text 106 414 float - initial number of fields (default: 1)., f +56; +#X text 98 168 symbol - set text name., f 49; +#X text 91 188 pointer - pointer to the text if -s flag is used.; +#X obj 9 311 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 337 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 369 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 +0; +#X restore 618 16 pd reference; +#X obj 4 51 cnv 1 800 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 34 17 text get; +#X text 103 17 - read and output a line.; +#X listbox 456 475 11 0 0 0 - - - 0; #X connect 0 0 10 0; #X connect 1 0 0 0; #X connect 2 0 0 0; @@ -165,73 +260,155 @@ #X connect 36 0 10 3; #X connect 38 0 5 0; #X connect 39 0 4 0; -#X connect 40 0 23 0; +#X connect 40 0 47 0; #X connect 41 0 15 0; -#X restore 392 219 pd get; -#X text 100 458 here's how to access texts inside data structures: -, f 27; -#X text 113 12 - manage a list of messages; -#X obj 211 531 scalar; -#X obj 279 318 text size; -#N canvas 847 155 566 324 size 0; -#X obj 74 68 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X connect 47 0 23 0; +#X restore 353 229 pd get; +#X text 87 466 here's how to access texts inside data structures:, +f 27; +#X text 73 12 - manage a list of messages; +#X obj 179 539 scalar; +#X obj 241 327 text size; +#N canvas 573 102 591 349 size 0; +#X obj 93 120 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 71 266 text define -k text-help-size; -#A set; -#X obj 74 188 text size text-help-size; -#X floatatom 74 213 5 0 0 0 - - - 0; -#X floatatom 98 101 5 0 2 0 - - - 0; -#X text 50 16 "text size" reports the number of lines in the text or +#X obj 222 301 text define -k text-help-size; +#A set 1 2 \; 3 4 5 \; 7 8 9 10 \; cis boom bah walk the dog \;; +#X obj 93 240 text size text-help-size; +#X floatatom 93 265 5 0 0 0 - - - 0; +#X floatatom 117 153 5 0 2 0 - - - 0; +#X text 69 68 "text size" reports the number of lines in the text or the length of a specified line.; -#X text 100 67 bang for number of lines; -#X text 140 95 float for length of nth line (-1 if line number out +#X text 119 119 bang for number of lines; +#X text 159 147 float for length of nth line (-1 if line number out of range), f 35; -#X text 402 137 find another text by name or pointer, f 18; -#X msg 239 143 symbol text-help-size; -#X text 266 183 arguments: name of the text object or "-s struct-name" +#X text 421 189 find another text by name or pointer, f 18; +#X msg 258 195 symbol text-help-size; +#X text 279 234 arguments: name of the text object or "-s struct-name" , f 30; +#X obj 5 48 cnv 1 575 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 497 13 <= click; +#N canvas 783 173 583 357 reference 0; +#X obj 9 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 85 cnv 1 550 1 empty empty 1st: 8 12 0 13 #000000 #000000 +0; +#X obj 9 193 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 327 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 133 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 112 142 symbol - set array name., f 46; +#X text 106 162 pointer - pointer to the array if -s flag is used. +; +#X text 76 262 -s : struct name and field name of +main structure., f 66; +#X text 107 297 symbol - array name if no flags are given (default: +none).; +#X obj 40 18 text size; +#X text 120 17 - get number of lines; +#X text 124 90 bang - output the number of lines., f 45; +#X text 117 108 float - set line number and output its length.; +#X text 124 202 float - number of lines or line length.; +#X obj 9 232 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 258 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 290 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 +0; +#X restore 403 13 pd reference; +#X obj 32 15 text size; +#X text 112 14 - get number of lines or elements.; #X connect 0 0 2 0; #X connect 2 0 3 0; #X connect 4 0 2 0; #X connect 9 0 2 1; -#X restore 392 318 pd size; -#X obj 280 243 text set; -#N canvas 710 310 688 563 set 0; -#X floatatom 127 206 5 0 0 0 - - - 0; -#X msg 95 172 0; -#X msg 160 172 2; -#X msg 127 172 1; -#X msg 59 110 list x y z w; -#X msg 77 136 1 2 3; -#X msg 40 83 12 23 34 45 56 56; -#X obj 127 516 text define -k text-help-3; +#X restore 353 327 pd size; +#X obj 241 253 text set; +#N canvas 591 74 689 512 set 0; +#X floatatom 117 233 5 0 0 0 - - - 0; +#X msg 85 199 0; +#X msg 150 199 2; +#X msg 117 199 1; +#X msg 49 137 list x y z w; +#X msg 67 163 1 2 3; +#X msg 30 110 12 23 34 45 56 56; +#X obj 286 170 text define -k text-help-3; #A set x y z w \; x y z w \; 1 2 3 \; 12 23 34 45 56 56 \; 12 23 34 45 56 56 \; 12 23 34 45 56 56 \; 12 23 34 45 56 56 \;; -#X obj 77 302 text set text-help-3, f 22; -#X floatatom 177 235 5 0 0 0 - - - 0; -#X text 174 84 list to write into the text; -#X text 170 206 line number - use a large number to append a line; -#X text 253 304 arguments: name of the text object or "-s struct-name" -; -#X text 253 325 next optional arg to set inlet 1 (line number); -#X msg 228 272 symbol text-help-get; -#X text 382 272 find another text by name or pointer; -#X text 224 229 field number - if 0 or positive \, replace text starting +#X obj 67 337 text set text-help-3, f 22; +#X floatatom 167 262 5 0 0 0 - - - 0; +#X text 164 111 list to write into the text; +#X text 160 233 line number - use a large number to append a line; +#X text 233 335 arguments: name of the text object or "-s struct-name" +; +#X text 233 353 next optional arg to set inlet 1 (line number), f +54; +#X msg 218 304 symbol text-help-get; +#X text 372 304 find another text by name or pointer; +#X text 214 256 field number - if 0 or positive \, replace text starting at this field \, or if negative (or not supplied) \, replace whole line., f 62; -#X text 79 14 "text set" replaces the nth line with the incoming list. -If the number n is greater than the number of lines in the text the -new line is added.; -#X text 252 346 next optional arg to set inlet 2 (field number \, defaults -to whole line), f 47; -#X msg 193 172 1e+15; -#X text 101 395 If inlet 2 is unset or set to a negative number \, -the entire line is replaced \, but if it is set to 0 or more to specify +#X text 233 370 next optional arg to set inlet 2 (field number \, defaults +to whole line), f 54; +#X msg 183 199 1e+15; +#X text 21 420 If inlet 2 is unset or set to a negative number \, the +entire line is replaced \, but if it is set to 0 or more to specify a starting field \, the line is not resized - instead \, as many items are replaced as were already in the list. In this case \, an out-of-range line number will not cause a new line to be added - instead \, the -last existing line is modified.; -#X text 328 517 <= click here to see text; +last existing line is modified., f 90; +#X text 478 171 <= click here to see text; +#X text 592 17 <= click; +#N canvas 720 147 575 432 reference 0; +#X obj 9 45 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 9 232 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 407 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 9 148 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 77 307 -s : struct name and field name of +main structure., f 66; +#X obj 9 107 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 28 15 text set; +#X text 98 14 - replace or add a line; +#X obj 9 76 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 108 81 list - a line to add or replace.; +#X text 101 113 float -; +#X obj 9 185 cnv 1 550 1 empty empty 4th: 8 12 0 13 #7c7c7c #000000 +0; +#X text 157 113 line number to replace or add (if greater than the +number of lines)., f 51; +#X text 101 151 float -; +#X text 157 151 field number to start replacing if negative (or not +supplied) \, replace whole line.; +#X text 94 189 symbol - set text name., f 48; +#X text 87 208 pointer - pointer to the text if -s flag is used.; +#X text 117 241 NONE.; +#X text 118 362 2) float - set line number (default: 0)., f 57; +#X text 118 381 3) float - set field number (default: -1)., f 57; +#X text 111 344 1) symbol - text name if no flags are given (default: +none)., f 61; +#X obj 9 274 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 300 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 332 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 +0; +#X restore 498 18 pd reference; +#X obj 7 48 cnv 1 675 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 25 18 text set; +#X text 95 17 - replace or add a line; +#X text 28 60 "text set" replaces the nth line with the incoming list. +If the number n is greater than the number of lines in the text the +new line is added., f 83; #X connect 0 0 8 1; #X connect 1 0 0 0; #X connect 2 0 0 0; @@ -241,145 +418,243 @@ #X connect 6 0 8 0; #X connect 9 0 8 2; #X connect 14 0 8 3; -#X connect 19 0 0 0; -#X restore 392 243 pd set; -#X text 391 155 (click for details), f 11; -#X text 76 195 create \, store \, and/or edit; -#X text 104 218 read and output a line; -#X text 110 242 replace or add a line; -#X text 124 317 get number of lines; -#X text 63 50 In Pd a "text" refers to a list of atoms that can include +#X connect 18 0 0 0; +#X restore 353 253 pd set; +#X text 352 165 (click for details), f 11; +#X text 37 205 create \, store \, and/or edit; +#X text 65 228 read and output a line; +#X text 71 252 replace or add a line; +#X text 85 326 get number of lines; +#X text 41 61 In Pd a "text" refers to a list of atoms that can include commas \, semicolons \, and dollar-sign constructs - anything that can go in a message box or a patch (as a saved file). You can use them to store a semicolon-separated list of lists \, or as messages to "execute" as in a sequencer or message box., f 62; -#X text 152 341 convert to list; -#X obj 279 342 text tolist; -#N canvas 842 231 541 438 tolist 0; -#X obj 76 103 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X text 113 350 convert to list; +#X obj 241 351 text tolist; +#N canvas 587 97 528 426 tolist 0; +#X obj 68 162 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X text 48 13 "text tolist" outputs the entire contents as a list. +#X obj 68 223 text tolist text-help-1; +#X obj 68 311 print; +#X text 71 360 N.B.: text-help-1 is defined in 'pd define' subwindow. +; +#X text 320 172 find another text by name or pointer, f 18; +#X msg 226 174 symbol text-help-1, f 11; +#X text 251 215 arguments: name of the text object or "-s struct-name" +, f 30; +#X listbox 68 270 56 0 0 0 - - - 0; +#X text 95 160 output list; +#X text 25 78 "text tolist" outputs the entire contents as a list. Semicolons \, commas \, and dollar signs are output as symbols (and so \, if symbols like " \, " are encountered \, they're escaped with -backslashes).; -#X obj 76 164 text tolist text-help-1; -#X obj 143 242 list prepend set; -#X obj 143 265 list trim; -#X msg 143 325 this is a message \\\; this is another 1 ... \\\;; -#X msg 157 293 set; -#X obj 76 262 print; -#X text 94 382 N.B.: text-help-1 is defined in 'pd define' subwindow. -; -#X text 328 113 find another text by name or pointer, f 18; -#X msg 234 115 symbol text-help-1, f 11; -#X text 259 156 arguments: name of the text object or "-s struct-name" -, f 30; -#X listbox 76 204 50 0 0 0 - - - 0; -#X text 103 101 output list; -#X connect 0 0 2 0; -#X connect 2 0 12 0; -#X connect 3 0 4 0; -#X connect 4 0 5 0; -#X connect 6 0 5 0; -#X connect 10 0 2 1; -#X connect 12 0 7 0; -#X connect 12 0 3 0; -#X restore 392 342 pd tolist; -#X obj 279 366 text fromlist; -#N canvas 836 231 604 318 fromlist 0; -#X obj 81 202 text fromlist text-help-fromlist; -#X obj 114 263 text define text-help-fromlist; -#X text 46 21 "text fromlist" converts a list such as "text tolist" +backslashes)., f 66; +#X obj 5 51 cnv 1 512 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 446 18 <= click; +#N canvas 783 173 573 352 reference 0; +#X obj 9 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 85 cnv 1 550 1 empty empty 1st: 8 12 0 13 #000000 #000000 +0; +#X obj 9 180 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 322 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 120 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 112 129 symbol - set array name., f 46; +#X text 106 149 pointer - pointer to the array if -s flag is used. +; +#X text 76 254 -s : struct name and field name of +main structure., f 66; +#X text 107 290 symbol - array name if no flags are given (default: +none).; +#X obj 27 17 text tolist; +#X text 115 16 - convert text to a list.; +#X text 124 90 bang - output contents as a list.; +#X text 127 189 list - contents of text as a list.; +#X obj 9 223 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 249 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 281 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 +0; +#X restore 352 17 pd reference; +#X obj 25 17 text tolist; +#X text 113 16 - convert text to a list.; +#X connect 0 0 1 0; +#X connect 1 0 7 0; +#X connect 5 0 1 1; +#X connect 7 0 2 0; +#X restore 353 351 pd tolist; +#X obj 241 375 text fromlist; +#N canvas 591 108 533 357 fromlist 0; +#X obj 39 246 text fromlist text-help-fromlist; +#X obj 72 307 text define text-help-fromlist; +#X text 45 68 "text fromlist" converts a list such as "text tolist" would output and fills the text with it. Whatever the text had previously contained is discarded.; -#X msg 81 115 list this is a message \\\; this is another 1 ... \\\; +#X msg 39 159 list this is a message \\\; this is another 1 ... \\\; +; +#X text 93 285 click here to see contents; +#X msg 50 189 list 1 2 3; +#X text 363 201 find another text by name or pointer, f 18; +#X msg 260 203 symbol text-help-1, f 11; +#X text 79 136 set contents of text; +#X obj 5 51 cnv 1 512 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 446 18 <= click; +#N canvas 710 204 584 350 reference 0; +#X obj 9 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 85 cnv 1 550 1 empty empty 1st: 8 12 0 13 #000000 #000000 +0; +#X obj 9 180 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 314 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 120 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 112 129 symbol - set array name., f 46; +#X text 106 149 pointer - pointer to the array if -s flag is used. ; -#X text 135 241 click here to see contents; -#X msg 92 145 list 1 2 3; -#X text 405 157 find another text by name or pointer, f 18; -#X msg 302 159 symbol text-help-1, f 11; -#X text 121 92 set contents of text; +#X text 76 246 -s : struct name and field name of +main structure., f 66; +#X text 107 284 symbol - array name if no flags are given (default: +none).; +#X text 124 90 list - sets contents of text from given list.; +#X obj 25 17 text fromlist; +#X text 134 16 - convert from list.; +#X obj 9 215 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 241 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 273 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 +0; +#X text 127 189 NONE; +#X restore 352 17 pd reference; +#X obj 25 17 text fromlist; +#X text 134 16 - convert from list.; #X connect 3 0 0 0; #X connect 5 0 0 0; #X connect 7 0 0 1; -#X restore 392 366 pd fromlist; -#X text 138 365 convert from list; -#X text 215 388 search; -#X obj 279 389 text search; -#N canvas 419 23 944 793 search 0; -#X floatatom 63 315 5 0 0 0 - - - 0; -#X text 350 239 find another text by name or pointer, f 18; -#X text 189 275 arguments: name of the text object or "-s struct-name" -, f 30; -#X text 49 14 "text search" outputs the line number of the line that +#X restore 353 375 pd fromlist; +#X text 99 374 convert from list; +#X obj 241 398 text search; +#N canvas 319 23 916 694 search 0; +#X floatatom 46 328 5 0 0 0 - - - 0; +#X text 333 252 find another text by name or pointer, f 18; +#X text 172 288 arguments: name of the text object or "-s struct-name" +, f 55; +#X text 13 48 "text search" outputs the line number of the line that best matches a search key. By default it seeks a line whose leading -fields match the incoming list.; -#X obj 261 710 text define -k text-help-search; +fields match the incoming list., f 77; +#X obj 404 116 text define -k text-help-search; #A set 1 2 3 dog \; 7 8 9 cat \; 4 5 3 dog \; 7 8 9 alligator \; random line that won't match numbers \;; -#X obj 63 272 text search text-help-search, f 16; -#X msg 172 246 symbol text-help-search; -#X msg 39 80 1; -#X msg 50 104 2; -#X msg 63 128 4; -#X msg 81 192 4 5; -#X msg 91 218 4 13; -#X msg 71 157 7; -#X text 70 79 matches first line (number 0); -#X text 78 103 doesn't match first field of any line so -1; -#X text 125 217 fails on second field so no match; -#X text 158 311 ... then optional search fields. Each is a field number +#X f 17; +#X obj 46 285 text search text-help-search, f 16; +#X msg 155 259 symbol text-help-search; +#X msg 22 97 1; +#X msg 33 121 2; +#X msg 46 145 4; +#X msg 64 206 4 5; +#X msg 74 232 4 13; +#X msg 54 174 7; +#X text 53 96 matches first line (number 0); +#X text 61 120 doesn't match first field of any line so -1; +#X text 108 231 fails on second field so no match; +#X text 165 307 ... then optional search fields. Each is a field number (starting from 0) optionally preceded by ">". ">=" \, "<" \, "<=" \, -or "near"., f 44; -#X text 101 151 if two lines match only the first is output (but see -below for finding best matches).; -#X msg 50 360 7 cat; -#X msg 64 386 7 alligator; -#X floatatom 64 494 5 0 0 0 - - - 0; -#X msg 73 411 7 dog; -#X obj 64 438 text search text-help-search 0 3, f 16; -#X floatatom 636 358 5 0 0 0 - - - 0; -#X obj 636 299 text search text-help-search 1, f 16; -#X msg 636 236 8 9; -#X msg 674 239 8 9 alligator; -#X msg 597 237 8; -#X msg 688 268 symbol line; -#X text 193 436 in this example we ask to match both field 0 and field +or "near".; +#X text 86 166 if two lines match only the first is output (but see +below for finding best matches)., f 43; +#X msg 45 373 7 cat; +#X msg 95 372 7 alligator; +#X floatatom 95 450 5 0 0 0 - - - 0; +#X msg 104 397 7 dog; +#X obj 95 424 text search text-help-search 0 3, f 33; +#X floatatom 665 373 5 0 0 0 - - - 0; +#X obj 665 314 text search text-help-search 1, f 16; +#X msg 676 213 8 9; +#X msg 665 188 8 9 alligator; +#X msg 690 240 8; +#X msg 697 274 symbol line; +#X text 187 368 in this example we ask to match both field 0 and field 3 exactly. In field 3 we're testing symbols for equality., f 39; -#X text 553 80 If the search pattern (the incoming list) has more fields +#X text 589 49 If the search pattern (the incoming list) has more fields than we have specified search fields \, extra search patterns match succeeding fields starting from the last one give as an argument. So for example if there are no arguments we look for matches to any number of fields starting from the beginning of the line in the text., f 42; -#X floatatom 102 746 5 0 0 0 - - - 0; -#X obj 102 690 text search text-help-search > 0, f 16; -#X text 164 509 Match a line for which the search key is greater than +#X floatatom 74 669 5 0 0 0 - - - 0; +#X obj 74 640 text search text-help-search > 0, f 33; +#X text 38 485 Match a line for which the search key is greater than field zero of that line. The line getting closest to the key wins. -, f 41; -#X msg 82 584 2; -#X msg 102 625 4; -#X text 119 577 lines 1 \, 2 \, and 3 match \, but 2 wins because its +; +#X msg 54 534 2; +#X msg 74 575 4; +#X text 91 527 lines 1 \, 2 \, and 3 match \, but 2 wins because its first field (4) is closest to the search key 2, f 48; -#X text 141 615 this matches lines 1 and 3 \, and each is equally good +#X text 113 565 this matches lines 1 and 3 \, and each is equally good \, so line 1 wins., f 43; -#X text 155 656 nobody's first field is greater than 10; -#X msg 118 657 10; -#X obj 546 621 text search text-help-search 2 near 0, f 18; -#X floatatom 546 678 5 0 0 0 - - - 0; -#X msg 546 485 3 3; -#X msg 563 525 3 2.5 1; -#X msg 574 574 3 3 1; -#X text 586 484 field 2 is 3 and field 0 nearest 3; -#X text 622 514 here lines 0 and 2 tie over 2.4 (1 and 4 are equally +#X text 127 606 nobody's first field is greater than 10; +#X msg 90 607 10; +#X obj 528 608 text search text-help-search 2 near 0, f 18; +#X floatatom 528 665 5 0 0 0 - - - 0; +#X msg 528 472 3 3; +#X msg 545 512 3 2.5 1; +#X msg 556 561 3 3 1; +#X text 568 471 field 2 is 3 and field 0 nearest 3; +#X text 604 501 here lines 0 and 2 tie over 2.4 (1 and 4 are equally far from it) so line 0 whose second field is closer to 1 wins., f 40; -#X text 625 564 Here line 2 wins because its field 0 is nearer to 3 +#X text 607 551 Here line 2 wins because its field 0 is nearer to 3 \, notwithstanding that its field 1 is farther from 1, f 34; -#X text 91 129 matches line number 2 (third line); -#X text 115 191 matches two fields of line number 2; -#X text 593 423 Here we ask for field 2 to equal 3 and fields starting -at 0 to be 'near' the following arguments., f 33; +#X text 74 146 matches line number 2 (third line); +#X text 98 205 matches two fields of line number 2; +#X text 531 407 Here we ask for field 2 to equal 3 and fields starting +at 0 to be 'near' the following arguments., f 38; +#X text 407 94 click to open:; +#X obj 6 41 cnv 1 900 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 29 10 text search; +#X text 117 10 - search for a line.; +#X text 811 11 <= click; +#N canvas 701 130 576 366 reference 0; +#X obj 9 46 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 9 164 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 339 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 9 106 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 112 113 symbol - set array name., f 46; +#X text 106 133 pointer - pointer to the array if -s flag is used. +; +#X text 76 240 -s : struct name and field name of +main structure., f 66; +#X obj 35 14 text search; +#X text 123 14 - search for a line.; +#X text 126 83 list - search key; +#X obj 9 76 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 124 173 float - found line number or -1 if not found.; +#X text 107 278 1) symbol - array name if no flags are given (default: +none)., f 61; +#X text 121 297 2) list -; +#X text 190 298 search field number optionally preceded by ">". ">=" +\, "<" \, "<=" \, or "near"., f 43; +#X obj 9 210 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 236 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 268 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 +0; +#X restore 717 11 pd reference; #X connect 5 0 0 0; #X connect 6 0 5 1; #X connect 7 0 5 0; @@ -405,91 +680,122 @@ #X connect 42 0 40 0; #X connect 43 0 40 0; #X connect 44 0 40 0; -#X restore 392 389 pd search; -#X text 89 412 sequencer/message-sender; -#X obj 279 413 text sequence; -#N canvas 546 47 1149 739 sequence 0; -#X msg 204 443 symbol text-help-search; -#X text 377 435 specify another text by name or pointer, f 20; -#X msg 89 263 bang; -#X obj 116 628 print out1; -#X msg 19 165 args 1 2 fuzz; -#X msg 44 197 line 0; -#X obj 710 206 text sequence text-help-seq2 -g, f 17; -#X obj 575 248 text define -k text-help-seq2; -#A set test1 1 2 3 \; 1000 test2 6 7 8 \; test1 9 10 \, 21 22 23 \, -walk the dog \; 500 1500 test1 \; test2 13 14 \;; -#X f 15; -#X msg 556 171 bang; -#X msg 710 171 line 0; -#X obj 926 269 print test1; -#X obj 926 189 r test1; -#X obj 1043 189 r test2; -#X obj 1043 269 print test2; -#X obj 826 271 print done; -#X obj 19 141 loadbang; -#X text 121 164 set values for \$1 \, \$2 \, etc; -#X msg 68 228 step; -#X text 112 228 output next line; -#X text 104 190 set current line number (counting from 0), f 23; -#X msg 594 171 auto; -#X msg 632 171 stop; -#X msg 117 344 auto; -#X text 68 629 lists; -#X text 246 518 -g to specify global mode (each line begins with a +#X restore 353 398 pd search; +#X text 50 421 sequencer/message-sender; +#X obj 241 422 text sequence; +#N canvas 398 23 746 661 sequence 0; +#X msg 334 451 symbol text-help-search; +#X text 507 443 specify another text by name or pointer, f 20; +#X msg 121 270 bang; +#X obj 148 553 print out1; +#X msg 51 172 args 1 2 fuzz; +#X msg 76 204 line 0; +#X obj 51 148 loadbang; +#X text 153 171 set values for \$1 \, \$2 \, etc; +#X msg 100 235 step; +#X text 144 235 output next line; +#X text 136 197 set current line number (counting from 0), f 23; +#X msg 149 351 auto; +#X text 100 553 lists; +#X text 388 517 -g to specify global mode (each line begins with a symbolic destination), f 43; -#X text 246 550 -w specifies that lines beginning with the +#X text 388 548 -w specifies that lines beginning with the symbol are waiting points, f 43; -#X text 246 583 -w specifies that every line's leading n atoms +#X text 388 580 -w specifies that every line's leading n atoms are used as a waiting point, f 43; -#X text 226 478 creation arguments:; -#X text 248 499 name of the text object or "-s struct-name"; -#X obj 182 696 text define -k text-help-seq; +#X text 366 479 creation arguments:; +#X text 388 500 name of the text object or "-s struct-name"; +#X obj 416 194 text define -k text-help-seq; #A set 1 2 3 \; 4 5 symbol 7 \; 8 \$1 \$2 \; 9 \$3 \$1-\$2-\$3 \; walk the dog \;; #X f 29; -#X obj 710 272 print wait; -#X msg 148 410 stop; -#X text 709 152 rewind; -#X text 576 212 click to see the sequence:, f 13; -#X msg 671 171 step; -#X msg 679 381 bang; -#X msg 584 381 line 0; -#X obj 888 462 print done; -#X msg 721 381 auto; -#X msg 764 381 stop; -#X obj 763 462 print wait; -#X msg 639 381 step; -#X obj 958 398 text define -k text-help-seq3; +#X msg 180 417 stop; +#X msg 166 386 tempo 1 msec; +#X text 388 612 -t initializes tempo as with the "tempo" +message above., f 43; +#X listbox 148 521 18 0 0 0 - - - 0; +#X obj 334 519 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#X obj 295 553 print done; +#X obj 148 480 text sequence text-help-seq; +#X text 422 169 click to see the sequence:; +#N canvas 686 419 664 288 tempo 0; +#X text 60 167 These symbols can also be preceded by "per" (as in "permin" +\, "permsec" \, etc.) In this case \, 60 permin means 1/60 min (hence +\, the same as 'BPM')., f 78; +#X text 58 91 - millisecond (msec for short) \; - seconds (sec) \; +- minutes (min) \; - samples (samp) - depends on the sample rate the +patch is running, f 67; +#X text 54 26 Wait times are in units of 1 millisecond by default \, +but you can change this with the "-t" flag or "tempo" message (as in +[timer] \, [delay] and [metro]) \, which take a different tempo number +and a time unit symbol. Possible symbols are:, f 77; +#X text 56 219 Changing the tempo while the sequencer is running in +auto mode takes effect right away and changes the tempo for the remaining +portion of the current wait time., f 75; +#X restore 517 400 pd tempo; +#X text 26 60 "text sequence" outputs lines from a text buffer \, either +to an outlet or as messages to named destinations. The text is interpreted +as a sequence of lists \, and possibly some interspersed waiting instructions +(called "waits" here). You can ask for one line at a time ("step" message) +\, or to proceed without delay to the next wait ("bang") \, or to automatically +sequence through a series of waits (with each wait specifying a delay +in milliseconds), f 96; +#X text 218 417 stop the sequence (when in auto mode); +#X text 261 378 set tempo unit for delay times. See also at right and +possible messages here:, f 40; +#X msg 136 313 10 20 foo; +#X text 211 308 floats \, symbols and lists do the same as 'bang' but +temporarily override 'args' with list's elements, f 52; +#N canvas 212 108 1073 481 examples 0; +#X obj 236 240 text sequence text-help-seq2 -g, f 17; +#X obj 101 282 text define -k text-help-seq2; +#A set test1 1 2 3 \; 1000 test2 6 7 8 \; test1 9 10 \, 21 22 23 \, +walk the dog \; 500 1500 test1 \; test2 13 14 \;; +#X f 15; +#X msg 82 195 bang; +#X msg 236 195 line 0; +#X obj 166 434 print test1; +#X obj 166 354 r test1; +#X obj 283 354 r test2; +#X obj 283 434 print test2; +#X obj 352 305 print done; +#X msg 120 195 auto; +#X msg 158 195 stop; +#X obj 236 306 print wait; +#X text 235 176 rewind; +#X text 102 246 click to see the sequence:, f 13; +#X msg 197 195 step; +#X msg 693 96 bang; +#X msg 598 96 line 0; +#X obj 902 188 print done; +#X msg 735 96 auto; +#X msg 778 96 stop; +#X obj 777 188 print wait; +#X msg 653 96 step; +#X obj 942 113 text define -k text-help-seq3; #A set 1 2 3 \; fred 1000 \; 4 5 6 \; blanch 7 8 \; fred 500 \; 9 10 \;; #X f 15; -#X obj 639 415 text sequence text-help-seq3 -w fred; -#X obj 639 463 print out1; -#X text 566 305 Alternatively \, with the "-w" flag (with or without -"-g" but most usefully without) \, you can specify a symbol that tags -an entire line as a wait. Here the three outlets are for lists (regular -lines) \, waits \, and a bang at end of sequence:, f 76; -#X msg 710 618 bang; -#X msg 614 618 line 0; -#X msg 755 618 auto; -#X msg 798 619 stop; -#X msg 669 618 step; -#X text 958 377 sequence:; -#X text 979 622 sequence:; -#X obj 979 646 text define -k text-help-seq4; +#X obj 653 140 text sequence text-help-seq3 -w fred; +#X obj 653 188 print out1; +#X msg 664 347 bang; +#X msg 568 347 line 0; +#X msg 709 347 auto; +#X msg 752 348 stop; +#X msg 623 347 step; +#X text 942 92 sequence:; +#X text 933 351 sequence:; +#X obj 933 375 text define -k text-help-seq4; #A set 0 1 2 3 \; 1000 4 5 6 \; 500 7 8 9 \; 500 10 11 12 \;; #X f 15; -#X obj 669 652 text sequence text-help-seq4 -w 1; -#X obj 897 704 print done; -#X obj 783 704 print wait; -#X obj 669 704 print out1; -#X msg 134 379 tempo 1 msec; -#X text 246 617 -t initializes tempo as with the "tempo" -message above., f 43; -#X msg 765 171 tempo 2 permsec; -#X text 786 152 set 2x tempo; -#X text 561 12 The -g flag (which must be given after specifying the +#X obj 623 392 text sequence text-help-seq4 -w 1; +#X obj 851 444 print done; +#X obj 737 444 print wait; +#X obj 623 444 print out1; +#X msg 291 195 tempo 2 permsec; +#X text 312 176 set 2x tempo; +#X text 34 20 The -g flag (which must be given after specifying the text with a name or a "-s" argument) specifies that the text contains messages to send to global symbols. Lines beginning with symbols are sent to the corresponding receive (or other named object). Leading @@ -498,169 +804,281 @@ you wish. If you send an "auto" message \, waits that consist of a single number are interpreted as delay times in milliseconds (but waits with 2 or more arguments are treated as in "bang"). Here the two waits -are "1000" and "500 1500"., f 79; -#X text 612 496 If you want to use leading numbers in lists as waits +are "1000" and "500 1500"., f 67; +#X text 553 229 If you want to use leading numbers in lists as waits without having to specify "-g" \, specify "-w 3" for example and up to 3 leading numbers (fewer if there's a symbol among the first 3 items) will be taken as a wait. Waits specified this way can only have numeric elements (while waits specified with a symbol tag as above could have symbols too if desired.) Here we use "-w 1" so the "auto" feature can -simply sequence a list of numbers:, f 71; -#X listbox 116 598 16 0 0 0 - - - 0; -#X obj 204 531 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +simply sequence a list of numbers:, f 70; +#X obj 352 281 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 145 553 print done; -#X obj 116 477 text sequence text-help-seq, f 13; -#X obj 826 247 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X listbox 236 280 10 0 0 0 - - - 0; +#X obj 902 165 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X listbox 710 246 10 0 0 0 - - - 0; -#X obj 888 440 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X listbox 653 164 14 0 0 0 - - - 0; +#X obj 851 421 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X listbox 639 439 14 0 0 0 - - - 0; -#X floatatom 763 439 5 0 0 0 - - - 0; -#X obj 897 681 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc -#000000 #000000; -#X floatatom 783 679 5 0 0 0 - - - 0; -#X listbox 669 678 14 0 0 0 - - - 0; -#X text 188 671 click to see the sequence:; -#X listbox 939 242 13 0 0 0 - - - 0; -#X obj 939 218 list; -#X listbox 1043 239 8 0 0 0 - - - 0; -#N canvas 686 419 664 288 tempo 0; -#X text 60 167 These symbols can also be preceeded by "per" (as in -"permin" \, "permsec" \, etc.) In this case \, 60 permin means 1/60 -min (hence \, the same as 'BPM')., f 78; -#X text 58 91 - millisecond (msec for short) \; - seconds (sec) \; -- minutes (min) \; - samples (samp) - depends on the sample rate the -patch is running, f 67; -#X text 54 26 Wait times are in units of 1 millisecond by default \, -but you can change this with the "-t" flag or "tempo" message (as in -[timer] \, [delay] and [metro]) \, which take a different tempo number -and a time unit symbol. Possible symbols are:, f 77; -#X text 56 219 Changing the tempo while the sequencer is running in -auto mode takes effect right away and changes the tempo for the remaining -portion of the current wait time., f 75; -#X restore 485 393 pd tempo; -#X text 22 16 "text sequence" outputs lines from a text buffer \, either -to an outlet or as messages to named destinations. The text is interpreted -as a sequence of lists \, and possibly some interspersed waiting instructions -(called "waits" here). You can ask for one line at a time ("step" message) -\, or to proceed without delay to the next wait ("bang") \, or to automatically -sequence through a series of waits (with each wait specifying a delay -in milliseconds), f 73; -#X text 186 410 stop the sequence (when in auto mode); -#X text 158 337 automatically sequence \, interpreting waits as delay -times (see example to the right)., f 42; -#X text 229 371 set tempo unit for delay times. See also at right and -possible messages here:, f 40; -#X text 129 250 This is a zero lenght list. It output all lines starting +#X floatatom 737 419 5 0 0 0 - - - 0; +#X listbox 623 418 14 0 0 0 - - - 0; +#X listbox 179 407 13 0 0 0 - - - 0; +#X obj 179 383 list; +#X listbox 283 404 8 0 0 0 - - - 0; +#X listbox 777 164 11 0 0 0 - - - 0; +#X text 528 18 Alternatively \, with the "-w" flag (with or without +"-g" but most usefully without) \, you can specify a symbol that tags +an entire line as a wait. Here the three outlets are for lists (regular +lines) \, waits \, and a bang at end of sequence - waits are only output +if more than one element or a symbol is given., f 75; +#X connect 0 0 42 0; +#X connect 0 1 41 0; +#X connect 2 0 0 0; +#X connect 3 0 0 0; +#X connect 5 0 4 0; +#X connect 5 0 49 0; +#X connect 6 0 50 0; +#X connect 9 0 0 0; +#X connect 10 0 0 0; +#X connect 14 0 0 0; +#X connect 15 0 23 0; +#X connect 16 0 23 0; +#X connect 18 0 23 0; +#X connect 19 0 23 0; +#X connect 21 0 23 0; +#X connect 23 0 44 0; +#X connect 23 1 51 0; +#X connect 23 2 43 0; +#X connect 25 0 33 0; +#X connect 26 0 33 0; +#X connect 27 0 33 0; +#X connect 28 0 33 0; +#X connect 29 0 33 0; +#X connect 33 0 47 0; +#X connect 33 1 46 0; +#X connect 33 2 45 0; +#X connect 37 0 0 0; +#X connect 41 0 8 0; +#X connect 42 0 11 0; +#X connect 43 0 17 0; +#X connect 44 0 24 0; +#X connect 45 0 34 0; +#X connect 46 0 35 0; +#X connect 47 0 36 0; +#X connect 49 0 48 0; +#X connect 50 0 7 0; +#X connect 51 0 20 0; +#X restore 84 607 pd examples; +#X text 172 605 <== see more examples here; +#X obj 15 49 cnv 1 720 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 647 14 <= click; +#N canvas 636 33 575 610 reference 0; +#X obj 9 41 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 9 286 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 587 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 9 240 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 75 243 symbol - set array name., f 49; +#X text 68 262 pointer - pointer to the array if -s flag is used.; +#X text 75 447 -s : struct name and field name of +main structure., f 66; +#X obj 23 13 text sequence; +#X text 125 12 - sequencer/message-sender.; +#X text 41 148 args - set values for \$1 \, \$2 \, etc in the +text., f 71; +#X obj 9 70 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 34 130 line - set line number (counting from 0)., +f 72; +#X text 90 112 step - output next line., f 64; +#X text 87 184 list -; +#X text 139 184 same as bang but temporarily override 'args' with list's +elements (a bang is a 0 element list \, btw)., f 57; +#X text 90 74 auto - automatically sequence interpreting waits as delay +times., f 64; +#X text 90 92 stop - stops the sequence when in auto mode., f 64; +#X text 20 216 tempo - set tempo value (float) and time +unit symbol., f 74; +#X text 75 465 -g: sets to global mode (with symbolic destinations). +, f 66; +#X text 75 483 -w : sets symbols that define waiting points. +, f 66; +#X text 75 501 -w : sets number of leading floats used as waiting +points., f 66; +#X text 75 519 -t : sets tempo value and time unit. +, f 66; +#X obj 9 310 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 79 316 list - messages from the sequence or waits if -g flag +is given., f 64; +#X obj 9 343 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 79 348 list - waits if -w flag is given (which creates a mid +outlet)., f 64; +#X obj 9 371 cnv 1 550 1 empty empty rightmost: 8 12 0 13 #7c7c7c #000000 +0; +#X text 113 375 bang - when finishing the sequence.; +#X obj 9 411 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 437 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 549 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 +0; +#X text 87 557 1) symbol - array name if no flags are given (default: +none)., f 61; +#X text 90 166 bang - output all lines from current to next waiting +point., f 64; +#X restore 553 14 pd reference; +#X obj 42 16 text sequence; +#X text 142 15 - sequencer/message-sender.; +#X text 190 344 automatically sequence \, interpreting waits as delay +times (see examples below)., f 42; +#X text 161 257 This is a zero length list. It output all lines starting from current one to next waiting point (but note there aren't any waits in this example so all lines are output); -#X msg 104 306 10 20 foo; -#X text 179 301 floats \, symbols and lists do the same as 'bang' but -temporarily override 'args' with list's elements, f 52; -#X connect 0 0 67 1; -#X connect 2 0 67 0; -#X connect 4 0 67 0; -#X connect 5 0 67 0; -#X connect 6 0 69 0; -#X connect 6 1 68 0; -#X connect 8 0 6 0; -#X connect 9 0 6 0; -#X connect 11 0 10 0; -#X connect 11 0 78 0; -#X connect 12 0 79 0; -#X connect 15 0 4 0; -#X connect 17 0 67 0; -#X connect 20 0 6 0; -#X connect 21 0 6 0; -#X connect 22 0 67 0; -#X connect 31 0 67 0; -#X connect 34 0 6 0; -#X connect 35 0 43 0; -#X connect 36 0 43 0; -#X connect 38 0 43 0; -#X connect 39 0 43 0; -#X connect 41 0 43 0; -#X connect 43 0 71 0; -#X connect 43 1 72 0; -#X connect 43 2 70 0; -#X connect 46 0 54 0; -#X connect 47 0 54 0; -#X connect 48 0 54 0; -#X connect 49 0 54 0; -#X connect 50 0 54 0; -#X connect 54 0 75 0; -#X connect 54 1 74 0; -#X connect 54 2 73 0; -#X connect 58 0 67 0; -#X connect 60 0 6 0; -#X connect 64 0 3 0; -#X connect 67 0 64 0; -#X connect 67 1 65 0; -#X connect 67 1 66 0; -#X connect 68 0 14 0; -#X connect 69 0 30 0; -#X connect 70 0 37 0; -#X connect 71 0 44 0; -#X connect 72 0 40 0; -#X connect 73 0 55 0; -#X connect 74 0 56 0; -#X connect 75 0 57 0; -#X connect 78 0 77 0; -#X connect 79 0 13 0; -#X connect 86 0 67 0; -#X restore 392 413 pd sequence; -#X text 103 291 delete a line or clear; -#X obj 279 292 text delete; -#N canvas 692 191 748 405 delete 0; -#X text 415 117 find another text by name or pointer; -#X obj 49 150 text delete text-help-delete; -#X text 264 151 argument: name of the text object or "-s struct-name" +#X connect 0 0 25 1; +#X connect 2 0 25 0; +#X connect 4 0 25 0; +#X connect 5 0 25 0; +#X connect 6 0 4 0; +#X connect 8 0 25 0; +#X connect 11 0 25 0; +#X connect 19 0 25 0; +#X connect 20 0 25 0; +#X connect 22 0 3 0; +#X connect 25 0 22 0; +#X connect 25 1 23 0; +#X connect 25 1 24 0; +#X connect 31 0 25 0; +#X restore 353 422 pd sequence; +#X text 64 301 delete a line or clear; +#X obj 241 302 text delete; +#N canvas 512 103 745 423 delete 0; +#X text 440 172 find another text by name or pointer; +#X obj 74 205 text delete text-help-delete; +#X text 289 206 argument: name of the text object or "-s struct-name" ; -#X msg 242 117 symbol text-help-delete; -#X obj 70 212 text define -k text-help-delete; +#X msg 267 172 symbol text-help-delete; +#X obj 95 267 text define -k text-help-delete; #A set line 0 \; line 1 \; line 2 \; line 3 \; line 4 \;; -#X msg 49 63 2; -#X msg 64 93 -1; -#X text 97 93 clear whole text; -#X obj 141 322 text fromlist text-help-delete; -#X msg 141 297 list line 0 \\\; line 1 \\\; line 2 \\\; line 3 \\\; +#X msg 74 118 2; +#X msg 89 148 -1; +#X text 122 148 clear whole text; +#X obj 166 377 text fromlist text-help-delete; +#X msg 166 352 list line 0 \\\; line 1 \\\; line 2 \\\; line 3 \\\; line 4 \\\;; -#X text 162 274 click below to get original text back:; -#X text 47 12 "text delete" deletes the nth line.; -#X text 84 63 delete line number 2 (counting from 0); -#X text 304 212 <= click here to see text; +#X text 187 329 click below to get original text back:; +#X text 72 67 "text delete" deletes the nth line.; +#X text 109 118 delete line number 2 (counting from 0); +#X text 329 267 <= click here to see text; +#X obj 13 51 cnv 1 720 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 642 17 <= click; +#N canvas 720 147 582 341 reference 0; +#X obj 9 45 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 9 157 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 299 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 77 231 -s : struct name and field name of +main structure., f 66; +#X obj 9 76 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 94 114 symbol - set text name., f 48; +#X text 87 133 pointer - pointer to the text if -s flag is used.; +#X text 111 271 1) symbol - array name if no flags are given (default: +none)., f 61; +#X text 123 17 - delete a line or clear.; +#X obj 34 17 text delete; +#X text 98 81 float - line number to delete (negative deletes all lines). +; +#X obj 9 107 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 117 166 NONE; +#X obj 9 199 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 225 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 257 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 +0; +#X restore 548 18 pd reference; +#X text 123 17 - delete a line or clear.; +#X obj 34 17 text delete; #X connect 3 0 1 1; #X connect 5 0 1 0; #X connect 6 0 1 0; #X connect 9 0 8 0; -#X restore 392 292 pd delete; -#X text 166 266 insert a line; -#X obj 280 267 text insert; -#N canvas 338 254 744 450 insert 0; -#X text 448 177 find another text by name or pointer; -#X msg 275 177 symbol text-help-delete; -#X msg 171 109 2; -#X msg 163 353 list line 0 \\\; line 1 \\\; line 2 \\\; line 3 \\\; +#X restore 353 302 pd delete; +#X text 127 276 insert a line; +#X obj 241 277 text insert; +#N canvas 484 134 744 459 insert 0; +#X text 457 220 find another text by name or pointer; +#X msg 284 220 symbol text-help-delete; +#X msg 180 152 2; +#X msg 172 396 list line 0 \\\; line 1 \\\; line 2 \\\; line 3 \\\; line 4 \\\;; -#X text 184 330 click below to get original text back:; -#X obj 163 378 text fromlist text-help-insert; -#X obj 98 283 text define -k text-help-insert; -#A set line 0 \; line 1 \; line 2 \; line 3 \; line 4 \;; -#X msg 183 137 1e+09; -#X text 232 139 insert after end; -#X msg 69 84 list x y z w; -#X msg 85 111 1 2 3; -#X msg 50 57 12 23 34 45 56 56; -#X text 183 57 list to insert into the text; -#X text 292 210 arguments: name of the text object or "-s struct-name" -; -#X text 293 231 one optional arg to set inlet 1 (line number); -#X obj 68 210 text insert text-help-insert 3; -#X text 71 14 "text insert" inserts a line.; -#X text 210 109 insert before line number 2 (counting from 0); -#X text 333 285 <= click here to see text; +#X text 193 373 click below to get original text back:; +#X obj 172 421 text fromlist text-help-insert; +#X obj 107 326 text define -k text-help-insert; +#A set line 0 \; line 1 \; line 2 \; line 3 \; line 4 \; 12 23 34 45 +56 56 \; 12 23 34 45 56 56 \; 12 23 34 45 56 56 \; 12 23 34 45 56 56 +\;; +#X msg 192 180 1e+09; +#X text 241 182 insert after end; +#X msg 78 127 list x y z w; +#X msg 94 154 1 2 3; +#X msg 59 100 12 23 34 45 56 56; +#X text 192 100 list to insert into the text; +#X text 301 253 arguments: name of the text object or "-s struct-name" +; +#X text 302 274 one optional arg to set inlet 1 (line number); +#X obj 77 253 text insert text-help-insert 3; +#X text 58 63 "text insert" inserts a line.; +#X text 219 152 insert before line number 2 (counting from 0); +#X text 342 328 <= click here to see text; +#X obj 13 51 cnv 1 720 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 642 17 <= click; +#N canvas 720 147 576 384 reference 0; +#X obj 9 45 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 9 197 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 353 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 9 148 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 77 263 -s : struct name and field name of +main structure., f 66; +#X obj 9 107 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 76 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 101 113 float -; +#X text 94 154 symbol - set text name., f 48; +#X text 87 173 pointer - pointer to the text if -s flag is used.; +#X text 101 300 1) symbol - array name if no flags are given (default: +none)., f 61; +#X text 108 318 2) float - set line number (default: 0)., f 57; +#X obj 34 17 text insert; +#X text 123 17 - insert a line.; +#X text 108 81 list - a line to insert.; +#X text 157 113 line number to insert., f 51; +#X text 117 206 NONE; +#X obj 9 231 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 257 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 9 289 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 +0; +#X restore 548 18 pd reference; +#X obj 34 17 text insert; +#X text 123 17 - insert a line.; #X connect 1 0 15 2; #X connect 2 0 15 1; #X connect 3 0 5 0; @@ -668,9 +1086,8 @@ #X connect 9 0 15 0; #X connect 10 0 15 0; #X connect 11 0 15 0; -#X restore 392 267 pd insert; -#X text 323 527 updated for Pd version 0.49; -#N canvas 532 178 767 464 text-and-data-structures 0; +#X restore 353 277 pd insert; +#N canvas 532 178 766 438 text-and-data-structures 0; #X floatatom 82 179 5 0 0 0 - - - 0; #X msg 47 148 0; #X msg 122 148 2; @@ -698,14 +1115,14 @@ #X text 541 112 bug - saving multi-line texts inside structures, f 24; #X obj 309 286 text set -s text-help-struct z; -#X floatatom 377 200 5 0 0 0 - - - 0; -#X msg 377 151 0; -#X msg 444 151 2; -#X msg 409 151 1; +#X floatatom 378 200 5 0 0 0 - - - 0; +#X msg 378 151 0; +#X msg 445 151 2; +#X msg 410 151 1; #X listbox 82 260 12 0 0 0 - - - 0; #X floatatom 205 259 5 0 0 0 - - - 0; #X text 54 121 get text line; -#X text 392 125 set line; +#X text 393 125 set line; #X text 592 31 <= open to see text; #X listbox 289 200 10 0 0 0 - - - 0; #X text 299 118 set text; @@ -713,13 +1130,24 @@ #X text 102 24 A simple example showing how to access text in data structures via pointers. In this case you need the "-s" flag followed by the struct name and text field., f 46; -#X obj 254 397 ../4.data.structures/01.scalars; -#X text 154 338 To know more about Data Structures \, how to handle -pointers and see examples \, please refer to the 4.Data.Structure section -of the Pd's tutorials. Starting with the first example below., f 66 -; #X msg 289 143 list a b c; #X msg 298 171 10 20 300; +#X text 81 352 To know more about Data Structures \, how to handle +pointers and see examples \, please refer to the 4.Data.Structure section +of the Pd's tutorials., f 50; +#X obj 454 352 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#N canvas 491 316 412 249 open 0; +#X obj 58 49 inlet; +#X obj 58 105 pdcontrol; +#X msg 58 78 dir; +#X msg 58 132 \; pd open 01.scalars.pd \$1/../4.data.structures; +#X connect 0 0 2 0; +#X connect 1 0 3 0; +#X connect 2 0 1 0; +#X restore 454 382 pd open; +#X text 512 350 open first examle of the 4.Data.Structure section. +, f 20; #X connect 0 0 7 0; #X connect 1 0 0 0; #X connect 2 0 0 0; @@ -737,6 +1165,30 @@ #X connect 18 0 5 0; #X connect 22 0 12 0; #X connect 24 0 10 0; -#X connect 28 0 22 0; -#X connect 29 0 22 0; -#X restore 273 480 pd text-and-data-structures; +#X connect 26 0 22 0; +#X connect 27 0 22 0; +#X connect 29 0 30 0; +#X restore 260 488 pd text-and-data-structures; +#X obj 4 44 cnv 1 525 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 455 12 <= click; +#N canvas 758 52 579 214 reference 0; +#X obj 7 143 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 75 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X text 96 85 symbol -; +#X obj 7 54 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 119 162 Open specific references in each subpatch detailing +each function on parent patch., f 41; +#X text 160 86 sets the function of [text] \, possible values: define +\, get \, set \, insert \, delete \, size \, tolist \, fromlist \, +search and sequence. The default value is 'define'., f 54; +#X obj 28 21 text; +#X text 73 21 - manage a list of messages; +#X restore 361 12 pd reference; +#X obj 4 528 cnv 1 525 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 320 538 Updated for Pd version 0.49; +#X text 99 397 search for a line; diff -Nru puredata-0.52.1+ds0/doc/5.reference/threshold~-help.pd puredata-0.52.2+ds0/doc/5.reference/threshold~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/threshold~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/threshold~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,45 +1,95 @@ -#N canvas 619 183 687 414 12; -#X obj 70 12 threshold~; -#X obj 52 178 sig~; -#X obj 52 273 threshold~ 10 100 0 100; -#X text 241 272 Arguments:; -#X text 322 272 1 trigger threshold; -#X floatatom 52 151 5 0 0 0 - - - 0; -#X obj 52 334 print trigger; -#X obj 210 334 print rest; -#X text 323 288 2 trigger debounce time; -#X text 323 305 3 rest threshold; -#X text 322 320 4 rest debounce time; -#X text 443 368 updated for Pd version 0.32; -#X msg 177 231 1; -#X msg 210 231 0; -#X text 57 50 threshold~ monitors its input signal and outputs bangs -when the signal exceeds a specified "trigger" value \, and also when -the signal recedes below a "rest" value. You can specify debounce times -in milliseconds \, for the threshold~ to wait after the two event types -before triggering again.; -#X msg 111 170 set 0 2000 1 2000; -#X msg 119 196 set 10 100 0 100; -#X text 239 170 "set" to change the parameters; -#X text 248 228 zero or nonzero in inlet to set the state to "high" -or "low". There is no debounce period after this.; -#X text 161 11 - trigger from audio signal; -#X msg 516 124 \; pd dsp \$1; -#X obj 516 93 tgl 16 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#N canvas 409 23 627 489 12; +#X obj 40 12 threshold~; +#X text 213 342 Arguments:; +#X floatatom 32 193 5 0 0 0 - - - 0; +#X obj 32 404 print trigger; +#X obj 197 404 print rest; +#X text 410 460 updated for Pd version 0.32; +#X text 131 11 - trigger from audio signal; +#X msg 428 190 \; pd dsp \$1; +#X obj 428 159 tgl 16 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 538 92 DSP on/off; -#X obj 52 303 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X text 450 158 DSP on/off; +#X obj 32 373 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 210 303 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X obj 197 373 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X connect 1 0 2 0; -#X connect 2 0 23 0; -#X connect 2 1 24 0; -#X connect 5 0 1 0; -#X connect 12 0 2 1; -#X connect 13 0 2 1; -#X connect 15 0 2 0; -#X connect 16 0 2 0; -#X connect 21 0 20 0; -#X connect 23 0 6 0; -#X connect 24 0 7 0; +#N canvas 620 103 571 416 reference 0; +#X obj 5 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 5 186 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 5 288 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 4 384 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 38 16 threshold~; +#X text 84 93 signal -; +#X text 56 113 set -; +#X text 150 113 set different values for the 4 arguments., f 46; +#X obj 5 139 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 5 83 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 5 249 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 5 213 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 92 153 float -; +#X text 150 153 nonzero sets internal state to "high" \, "low" otherwise. +; +#X text 92 257 float - bang when receding below a rest threshold.; +#X text 120 296 1) float - trigger threshold value., f 50; +#X text 120 316 2) float - trigger debounce time in ms., f 50; +#X text 120 356 4) float - rest debounce time in ms., f 50; +#X text 120 336 3) float - rest threshold value., f 50; +#X text 125 16 - trigger from audio signal.; +#X text 150 93 signal to analyze and trigger from., f 46; +#X text 92 223 float - bang when reaching or exceeding a trigger threshold. +, f 63; +#X restore 447 10 pd reference; +#X text 545 10 <= click; +#X obj 10 41 cnv 1 610 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 10 445 cnv 1 610 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X msg 141 189 set 1 100 0.1 100; +#X msg 164 257 1; +#X msg 197 257 0; +#X obj 197 301 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 32 220 sig~ 1; +#X obj 32 170 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000 0 1; +#X msg 150 214 set 1 0 1 0; +#X obj 32 343 threshold~ 1 100 0.1 100; +#X msg 133 164 set 10 2000 0 2000; +#X text 57 54 threshold~ monitors its input signal and outputs bangs +when the signal reaches or exceeds a specified "trigger" value \, and +also when the signal recedes below a "rest" value - this is also known +as a 'schmitt trigger'. You can specify debounce times in milliseconds +for the threshold~ to wait after the two event types before triggering +again., f 74; +#X text 294 342 1 trigger threshold value, f 29; +#X text 294 359 2 trigger debounce time in ms; +#X text 294 376 3 rest threshold value, f 29; +#X text 294 393 4 rest debounce time in ms, f 29; +#X text 102 142 "set" to change the parameters; +#X text 231 250 Float sets internal state: nonzero sets to "high" (above +trigger threshold) and zero to "low" (below rest threshold). This forces +a bang output depending on the incoming signal immediately (because +the debounce period is ignored when setting the state)., f 52; +#X connect 2 0 20 0; +#X connect 8 0 7 0; +#X connect 10 0 3 0; +#X connect 11 0 4 0; +#X connect 16 0 23 0; +#X connect 17 0 19 0; +#X connect 18 0 19 0; +#X connect 19 0 23 1; +#X connect 20 0 23 0; +#X connect 21 0 2 0; +#X connect 22 0 23 0; +#X connect 23 0 10 0; +#X connect 23 1 11 0; +#X connect 24 0 23 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/throw~-catch~-help.pd puredata-0.52.2+ds0/doc/5.reference/throw~-catch~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/throw~-catch~-help.pd 1970-01-01 00:00:00.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/throw~-catch~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -0,0 +1,95 @@ +#N canvas 455 25 521 461 12; +#X floatatom 54 379 5 0 0 0 - - - 0; +#X obj 374 177 sig~ 50; +#X obj 54 349 snapshot~; +#X obj 374 212 throw~ signal1; +#X obj 22 192 sig~ 25; +#X obj 54 293 catch~ signal1; +#X obj 34 15 throw~; +#X obj 34 39 catch~; +#X obj 305 313 metro 200; +#X text 28 83 Any number of throw~ objects can add into one catch~ +object (but two catch~ objects cannot share the same name.); +#X obj 188 349 snapshot~; +#X obj 188 292 catch~ signal2; +#X text 190 189 You can redirect throw~ via a "set" message., f 16 +; +#X text 292 432 updated for Pd version 0.33; +#X obj 103 433 send~; +#X text 27 432 see also:; +#X floatatom 188 379 5 0 0 0 - - - 0; +#X obj 305 285 loadbang; +#X msg 409 300 \; pd dsp 1; +#X obj 409 274 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000 0 1; +#X text 428 274 DSP on/off; +#X floatatom 22 166 5 0 0 0 - - - 0; +#X floatatom 374 148 5 0 0 0 - - - 0; +#X text 87 17 - summing signal bus and; +#X text 101 34 non-local connection, f 22; +#X obj 82 242 throw~ \$0-signal; +#X msg 94 216 set signal; +#X msg 82 192 set \$1-signal; +#X obj 82 162 f \$0; +#X obj 82 137 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000; +#X text 120 138 <= \$0 needs to be expanded from objects., f 23; +#N canvas 525 216 510 156 execution-order 0; +#X obj 115 95 ../3.audio.examples/G05.execution.order; +#X text 46 30 You have to get the throw~ sorted before the catch~ or +else you'll never get less than a block's delay. You can use the strategy +given in the example below to control this.; +#X restore 339 365 pd execution-order; +#N canvas 624 141 570 427 reference 0; +#X obj 8 53 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 114 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 151 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 190 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 321 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 366 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 403 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 146 123 NONE; +#X obj 8 281 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 24 15 throw~ y; +#X obj 24 245 catch~ y; +#X text 142 294 NONE; +#X text 190 376 catch~ name symbol (default: empty symbol).; +#X text 97 84 set - set throw~ name.; +#X text 118 332 symbol - signal from matching throw~ object(s).; +#X text 95 15 - throw signal to a matching catch~ object.; +#X text 99 245 - catch signal from one or more throw~ objects.; +#X text 139 65 signal - signal to throw to a matching catch~ object. +; +#X text 114 159 1) symbol - throw~ symbol name (default: empty symbol). +; +#X text 107 376 1) symbol -; +#X restore 329 26 pd reference; +#X text 426 27 <= click; +#X obj 4 68 cnv 1 510 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 4 419 cnv 1 510 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 4 0 25 0; +#X connect 5 0 2 0; +#X connect 8 0 2 0; +#X connect 8 0 10 0; +#X connect 10 0 16 0; +#X connect 11 0 10 0; +#X connect 17 0 8 0; +#X connect 19 0 18 0; +#X connect 21 0 4 0; +#X connect 22 0 1 0; +#X connect 26 0 25 0; +#X connect 27 0 25 0; +#X connect 28 0 27 0; +#X connect 29 0 28 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/throw~-help.pd puredata-0.52.2+ds0/doc/5.reference/throw~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/throw~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/throw~-help.pd 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -#N canvas 772 73 545 471 12; -#X obj 62 198 throw~ signal1; -#X floatatom 91 384 5 0 0 0 - - - 0; -#X obj 369 143 sig~ 50; -#X obj 91 354 snapshot~; -#X obj 369 171 throw~ signal1; -#X obj 62 125 sig~ 25; -#X obj 91 298 catch~ signal1; -#X obj 54 20 throw~; -#X obj 116 20 catch~; -#X text 176 20 - summing signal bus and non-local connection; -#X obj 342 318 metro 200; -#X text 60 62 Any number of throw~ objects can add into one catch~ -object (but two catch~ objects cannot share the same name.); -#X obj 225 354 snapshot~; -#X obj 225 297 catch~ signal2; -#X msg 76 148 set signal2; -#X msg 82 173 set signal1; -#X text 180 148 You can redirect throw~ via a "set" message., f 23 -; -#X text 315 419 updated for Pd version 0.33; -#X obj 116 425 send~; -#X obj 166 425 receive~; -#X text 40 426 see also:; -#X floatatom 225 384 5 0 0 0 - - - 0; -#X obj 342 290 loadbang; -#X msg 234 237 \; pd dsp 1; -#X obj 234 211 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 -#000000 0 1; -#X text 253 211 DSP on/off; -#X connect 2 0 4 0; -#X connect 3 0 1 0; -#X connect 5 0 0 0; -#X connect 6 0 3 0; -#X connect 10 0 3 0; -#X connect 10 0 12 0; -#X connect 12 0 21 0; -#X connect 13 0 12 0; -#X connect 14 0 0 0; -#X connect 15 0 0 0; -#X connect 22 0 10 0; -#X connect 24 0 23 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/timer-help.pd puredata-0.52.2+ds0/doc/5.reference/timer-help.pd --- puredata-0.52.1+ds0/doc/5.reference/timer-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/timer-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,54 +1,83 @@ -#N canvas 745 73 616 626 12; -#X msg 93 371 bang; -#X msg 33 269 bang; -#X obj 61 401 timer; -#X obj 89 13 timer; -#X text 134 14 - measure logical time; -#X floatatom 61 427 7 0 0 0 - - - 0; -#X text 33 576 see also:; -#X obj 329 277 tgl 20 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#N canvas 421 23 632 630 12; +#X msg 95 367 bang; +#X msg 35 265 bang; +#X obj 63 397 timer; +#X obj 71 14 timer; +#X text 116 13 - measure logical time; +#X floatatom 63 423 7 0 0 0 - - - 0; +#X text 33 585 see also:; +#X obj 331 273 tgl 20 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X obj 463 396 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X obj 465 392 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 113 588 delay; -#X obj 361 367 sel 1; -#X floatatom 361 447 5 0 0 0 - - - 0; -#X obj 329 316 t f f; -#X obj 158 588 metro; -#X obj 463 367 metro 1 90 permin; -#X obj 361 422 timer 90 permin; -#X text 365 577 updated for Pd version 0.47; -#X obj 112 564 realtime; -#X obj 180 564 cputime; -#X obj 361 396 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X obj 113 597 delay; +#X obj 363 363 sel 1; +#X floatatom 363 443 5 0 0 0 - - - 0; +#X obj 331 312 t f f; +#X obj 158 597 metro; +#X obj 465 363 metro 1 90 permin; +#X obj 363 418 timer 90 permin; +#X text 365 586 updated for Pd version 0.47; +#X obj 112 573 realtime; +#X obj 180 573 cputime; +#X obj 363 392 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X text 39 197 These symbols can also be preceeded by "per" (as in +#X text 41 204 These symbols can also be preceded by "per" (as in "permin" \, "permsec" \, etc.) In this case \, 60 permin means 1/60 min (hence \, the same as 'BPM')., f 78; -#X text 47 129 - millisecond (msec for short) \; - seconds (sec) \; +#X text 49 136 - millisecond (msec for short) \; - seconds (sec) \; - minutes (min) \; - samples (samp) - depends on the sample rate the patch is running, f 67; -#X text 159 309 set tempo units; -#X msg 61 305 tempo 1 sec; -#X msg 71 330 tempo 1 msec; -#X text 388 264 Here \, the metronome outputs at intervals of one beat +#X text 161 305 set tempo units; +#X msg 63 301 tempo 1 sec; +#X msg 73 326 tempo 1 msec; +#X text 390 260 Here \, the metronome outputs at intervals of one beat at 90 beats per minute as the timer also set to that tempo measures. , f 29; -#X text 74 262 reset (set elapsed time to zero), f 18; -#X text 136 360 output elapsed time. You can click multiple times since +#X text 76 258 reset (set elapsed time to zero), f 18; +#X text 138 356 output elapsed time. You can click multiple times since it was last reset., f 25; -#X obj 203 589 text sequence; -#X text 22 47 The timer object measures elapsed logical time. Logical +#X obj 203 598 text sequence; +#X text 24 54 The timer object measures elapsed logical time. Logical time moves forward as if all computation were instantaneous and as if all "delay" and "metro" objects were exact. By default \, the time unit is 1 millisecond \, but you can change this with the 'tempo' message (as in [delay] \, [metro] and [text sequence]) \, which takes a different tempo number and a time unit symbol. Possible symbols are:, f 82; -#X text 120 418 elapsed time in the specified time units, f 20; -#X text 48 482 Note you need to reset the elapsed time to zero when +#X text 122 414 elapsed time in the specified time units, f 20; +#X text 50 478 Note you need to reset the elapsed time to zero when you change the tempo message when the object is runnng \, otherwise you get funny results because the change takes effect immediately and gets applied to the remaining part of the elapsed time., f 75; +#N canvas 700 98 489 311 reference 0; +#X obj 18 52 cnv 5 450 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 18 229 cnv 2 450 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X text 153 92 bang - reset (set elapsed time to zero).; +#X obj 18 285 cnv 5 450 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 46 17 timer; +#X text 91 16 - measure logical time; +#X text 35 116 tempo -; +#X text 204 116 set tempo value (float) and time unit symbol., f 24 +; +#X text 130 239 1) float - tempo value (default 1)., f 42; +#X text 123 259 2) symbol - time unit (default 'msec')., f 43; +#X obj 18 192 cnv 2 450 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X text 156 163 bang - output elapsed time., f 30; +#X obj 18 157 cnv 1 450 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 18 84 cnv 1 450 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 133 201 1) float - elapsed time in msec.; +#X restore 465 14 pd reference; +#X text 397 13 click =>; +#X obj 17 46 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 17 555 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 0 0 2 1; #X connect 1 0 2 0; #X connect 2 0 5 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/toggle-help.pd puredata-0.52.2+ds0/doc/5.reference/toggle-help.pd --- puredata-0.52.1+ds0/doc/5.reference/toggle-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/toggle-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,7 +1,7 @@ -#N canvas 698 43 531 566 12; -#X obj 87 247 bng 18 250 50 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#N canvas 450 71 529 560 12; +#X obj 85 250 bng 18 250 50 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 #000000; -#X obj 114 310 tgl 55 0 empty empty Big\\\ Toggle 63 26 2 16 #dcdcdc +#X obj 112 313 tgl 55 0 empty empty Big\\\ Toggle 63 26 2 16 #dcdcdc #b40000 #000084 0 1; #N canvas 568 187 676 290 old-behavior 0; #X floatatom 38 57 5 0 0 0 - - - 0; @@ -31,9 +31,9 @@ #X connect 8 0 6 0; #X connect 9 0 6 0; #X connect 10 0 6 0; -#X restore 341 406 pd old-behavior; -#X floatatom 114 379 4 0 0 0 - - - 0; -#X obj 48 17 tgl 18 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 +#X restore 339 409 pd old-behavior; +#X floatatom 112 382 4 0 0 0 - - - 0; +#X obj 38 12 tgl 18 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; #N canvas 564 216 614 464 position 0; #X floatatom 142 146 4 0 1000 0 - - - 0; @@ -76,8 +76,8 @@ #X connect 14 0 22 0; #X connect 17 0 22 0; #X connect 18 0 3 0; -#X restore 378 240 pd position; -#N canvas 445 197 357 405 properties 0; +#X restore 376 243 pd position; +#N canvas 444 196 357 405 properties 0; #N canvas 805 54 631 565 colors 0; #X floatatom 71 244 3 0 29 0 - - - 0; #X floatatom 107 244 3 0 29 0 - - - 0; @@ -489,7 +489,7 @@ #X msg 550 175 1; #X text 437 96 Feedback protection: iemguis can have the same name for both the send and receive symbols. This works without 'stack overflow' -erros because they have feedback protection. See example below., f +errors because they have feedback protection. See example below., f 50; #X connect 0 0 9 0; #X connect 1 0 9 0; @@ -540,25 +540,23 @@ #X connect 7 0 1 0; #X connect 8 0 2 0; #X restore 151 128 pd nonzero; -#X restore 364 212 pd properties; -#X text 78 16 - [toggle]/[tgl]: Toggle Button; -#X text 209 251 change state without output, f 14; -#X text 37 240 change state, f 6; -#X text 274 444 (c) musil@iem.kug.ac.at; -#X text 310 460 IEM KUG \, Graz \, Austria \, 2002, f 14; -#X text 69 514 see also:; -#X obj 143 515 x_all_guis; -#X text 64 445 This object is part of the "iemguis" library \, natively +#X restore 362 215 pd properties; +#X text 68 11 - [toggle]/[tgl]: Toggle Button; +#X text 207 254 change state without output, f 14; +#X text 35 243 change state, f 6; +#X text 272 447 (c) musil@iem.kug.ac.at; +#X text 308 461 IEM KUG \, Graz \, Austria \, 2002, f 14; +#X text 69 521 see also:; +#X text 62 446 This object is part of the "iemguis" library \, natively included in Pd version 0.34., f 28; -#X text 280 514 updated for Pd version 0.51; -#X obj 114 409 print tgl; -#X text 26 137 Insert it from the Put menu (named as "Toggle") or its +#X text 280 521 updated for Pd version 0.51; +#X obj 112 412 print tgl; +#X text 24 142 Insert it from the Put menu (named as "Toggle") or its shortcut. Alternatively \, create it by typing "toggle" or "tgl" into an object box. Right click for properties (to set size \, colors \, labels \, etc)., f 67; -#X floatatom 114 247 4 0 0 0 - - - 0; -#X msg 157 245 set 1; -#X msg 161 268 set 0; +#X floatatom 112 250 4 0 0 0 - - - 0; +#X msg 159 271 set 0; #N canvas 667 86 415 450 examples 0; #X obj 82 67 tgl 30 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; @@ -593,24 +591,63 @@ #X connect 9 0 12 0; #X connect 10 0 9 1; #X connect 11 0 9 0; -#X restore 378 270 pd examples; -#X text 26 49 The toggle button is a GUI (Graphical User Interface) +#X restore 376 273 pd examples; +#X text 24 54 The toggle button is a GUI (Graphical User Interface) object that outputs number values alternating between 0 (when off) and a non zero value when on (default 1). It changes its state via clicks and also when receiving bang messages. Floats are passed through and the object changes its state when alternating between zero and nonzero values. A set message changes the state without output., f 67; -#X text 301 311 COMPATIBILITY NOTE: as of Pd 0.46 \, sending numbers +#X text 299 314 COMPATIBILITY NOTE: as of Pd 0.46 \, sending numbers through a toggle no longer resets the "nonzero" value. See how to get the old behavior back:, f 26; -#X msg 114 206 1; -#X msg 146 208 0; +#X msg 112 209 1; +#X msg 144 211 0; +#X obj 143 522 all_guis; +#X obj 12 41 cnv 1 500 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 691 139 590 385 reference 0; +#X obj 18 43 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 18 317 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 18 355 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 75 113 size - set size in pixels., f 65; +#X text 76 151 init - non zero sets to init mode., f 56; +#X text 61 207 label - set label., f 67; +#X text 48 188 receive - set receive symbol name., f 60; +#X text 69 170 send - set send symbol name., f 57; +#X text 40 226 label_font -; +#X text 180 226 set label type <0: DejaVu Sans Mono \, 1: Helvetica +\, 2: Times> and font size., f 50; +#X text 47 258 label_pos - set label's x/y position., f 69 +; +#X text 75 278 color -; +#X text 180 278 set colors of background \, front and label. Symbols +for hexadecimal values or floats for presets., f 50; +#X obj 42 10 tgl 18 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 +0 1; +#X text 69 9 - [toggle]/[tgl]: Toggle Button.; +#X text 124 74 float - values pass through (non zero activates toggle). +, f 58; +#X text 131 54 bang - changes toggle's state., f 57; +#X text 122 326 float -; +#X text 178 326 zero and non-zero value depending on state.; +#X text 54 132 nonzero - set non-zero value (default 1).; +#X text 82 94 set - zero sets to off \, non-zero sets to on +(no output)., f 64; +#X restore 395 11 pd reference; +#X text 327 11 click =>; +#X obj 12 508 cnv 1 500 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X msg 155 248 set 14; #X connect 0 0 1 0; #X connect 1 0 3 0; -#X connect 3 0 16 0; +#X connect 3 0 15 0; +#X connect 17 0 1 0; #X connect 18 0 1 0; -#X connect 19 0 1 0; -#X connect 20 0 1 0; -#X connect 24 0 18 0; -#X connect 25 0 18 0; +#X connect 22 0 17 0; +#X connect 23 0 17 0; +#X connect 29 0 1 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/trace-help.pd puredata-0.52.2+ds0/doc/5.reference/trace-help.pd --- puredata-0.52.1+ds0/doc/5.reference/trace-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/trace-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,35 +1,80 @@ -#N canvas 634 135 837 439 12; -#X obj 327 297 trace; -#X msg 359 124 1; -#X obj 39 20 trace; -#X msg 327 193 1; -#X obj 327 218 + 2; -#X obj 327 322 + 3; -#X msg 56 154 \; pd set-tracing \$1; -#X obj 56 130 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#N canvas 417 23 750 568 12; +#X obj 439 397 trace; +#X obj 49 17 trace; +#X msg 427 316 1; +#X obj 427 341 + 2; +#X obj 439 429 + 3; +#X msg 264 176 \; pd set-tracing \$1; +#X obj 264 152 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X floatatom 327 347 5 0 0 0 - - - 0; -#X obj 327 373 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc -#000000 #000000; -#X text 91 21 - message tracing for debugging control flow in patches +#X floatatom 439 458 5 0 0 0 - - - 0; +#X text 101 18 - message tracing for debugging control flow in patches ; -#X text 51 201 Note: this slows message passing down \, so don't turn +#X text 417 159 Note: this slows message passing down \, so don't turn it on unless you want to use it., f 32; -#X text 53 89 first enable tracing with a message to Pd:, f 21; -#X text 349 60 second \, send a number greater than zero to the right -inlet of a trace object to arm it. This number sets the number of following -messages that will be traced (that is \, it's a counter.); -#X text 375 167 Finally \, the next message "trace" gets on its left -inlet is forwarded to its output with tracing turned on: every message -that depends on trace output will be printed in the Pd window (and -you can control-click on the printout to select the object that caused -it). Once the trace message returns \, it also prints a backtrace of -messages leading up to the one that has set it off.; -#X text 579 383 updated for Pd version 0.52; -#X connect 0 0 5 0; -#X connect 1 0 0 1; -#X connect 3 0 4 0; -#X connect 4 0 0 0; -#X connect 5 0 8 0; -#X connect 7 0 6 0; -#X connect 8 0 9 0; +#X text 510 531 updated for Pd version 0.52; +#X obj 427 292 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#X obj 439 485 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#X text 23 66 When 'set-tracing' is on and the object is armed \, trace +prints in the Pd window the message it receives and also outputs the +messages all the other objects further down in the chain send. You +can control-click on the printout to select in the patch the object +that caused the message. Once this is done \, trace also prints a backtrace +of messages leading up to the one that has set it off., f 98; +#X msg 471 332 1; +#X msg 506 332 2; +#X floatatom 471 369 3 0 0 0 - - - 0; +#X floatatom 427 369 3 0 0 0 - - - 0; +#X text 58 346 Now the next message (or messages) "trace" gets on its +left inlet is forwarded to its output with tracing turned on., f 42 +; +#X text 506 368 <= set number of messages to trace, f 17; +#X text 96 149 First enable tracing with a message to Pd:, f 21; +#X obj 11 51 cnv 1 725 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 11 519 cnv 1 725 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 730 162 575 273 reference 0; +#X obj 8 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 165 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 202 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 239 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 126 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 8 85 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 39 17 trace; +#X text 91 18 - message tracing for debugging control flow in patches. +; +#X text 98 92 anything - any message to be traced from this point on. +, f 62; +#X text 158 213 NONE, f 15; +#X text 119 136 float - arms the object for the given number of messages. +; +#X text 99 174 anything - bypasses the input message further down the +chain., f 62; +#X restore 539 18 pd reference; +#X text 633 18 <= click; +#X text 25 228 Second \, send a number greater than zero to the right +inlet of trace to arm it. This number sets the number of following +messages that will be traced (that is \, it's a counter.) Once it receives +that many messages \, the object is unarmed again., f 91; +#X msg 383 340 5 \, 8; +#X connect 0 0 4 0; +#X connect 2 0 3 0; +#X connect 3 0 17 0; +#X connect 4 0 7 0; +#X connect 6 0 5 0; +#X connect 7 0 12 0; +#X connect 11 0 2 0; +#X connect 14 0 16 0; +#X connect 15 0 16 0; +#X connect 16 0 0 1; +#X connect 17 0 0 0; +#X connect 26 0 17 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/trigger-help.pd puredata-0.52.2+ds0/doc/5.reference/trigger-help.pd --- puredata-0.52.1+ds0/doc/5.reference/trigger-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/trigger-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,101 +1,144 @@ -#N struct template1 float x float y float z float q; -#N canvas 519 81 1202 599 12; -#X obj 87 18 trigger; -#X text 152 19 - sequence messages in right-to-left order; -#X obj 115 43 t; -#X text 153 43 - abbreviation; -#X floatatom 279 331 5 0 0 0 - - - 0; -#X obj 279 371 trigger float bang float; -#X msg 361 411 10; -#X obj 361 445 -; -#X obj 343 473 *; -#X floatatom 343 503 5 0 0 0 - - - 0; -#X obj 57 383 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#N canvas 215 36 1117 604 12; +#X obj 68 18 trigger; +#X text 133 19 - sequence messages in right-to-left order; +#X obj 96 43 t; +#X text 134 43 - abbreviation; +#X floatatom 263 331 5 0 0 0 - - - 0; +#X obj 263 371 trigger float bang float; +#X msg 345 411 10; +#X obj 345 445 -; +#X obj 327 473 *; +#X floatatom 327 503 5 0 0 0 - - - 0; +#X obj 41 383 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 57 431 trigger bang bang bang; -#X obj 208 486 print 1st; -#X obj 132 486 print 2nd; -#X obj 57 486 print 3rd; -#X text 79 381 create a bang sequence; -#X obj 504 280 t f b s l a p; -#X obj 93 280 trigger float bang symbol list anything pointer; -#X text 438 281 same as:; -#X msg 694 141 1 2 3; -#X obj 714 172 t l f; -#X listbox 746 200 7 0 0 0 - - - 0; -#X msg 804 141 list a b c; -#X obj 804 172 t l s; -#X text 326 324 mix floats and bang output, f 14; -#X floatatom 444 401 5 0 0 0 - - - 0; -#X floatatom 279 409 5 0 0 0 - - - 0; -#X obj 175 553 unpack; -#X text 59 553 see also:; -#X floatatom 938 112 5 0 0 0 - - - 0; -#X listbox 938 227 10 0 0 0 - - - 0; -#X msg 983 112 symbol a; -#X msg 1013 169 1 2 3; -#X msg 998 141 list a b c; -#X obj 911 112 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X obj 41 431 trigger bang bang bang; +#X obj 192 486 print 1st; +#X obj 116 486 print 2nd; +#X obj 41 486 print 3rd; +#X text 63 381 create a bang sequence; +#X obj 488 280 t f b s l a p; +#X obj 77 280 trigger float bang symbol list anything pointer; +#X text 422 281 same as:; +#X msg 675 141 1 2 3; +#X obj 695 172 t l f; +#X listbox 727 200 7 0 0 0 - - - 0; +#X msg 785 141 list a b c; +#X obj 785 172 t l s; +#X text 310 324 mix floats and bang output, f 14; +#X floatatom 428 401 5 0 0 0 - - - 0; +#X floatatom 263 409 5 0 0 0 - - - 0; +#X obj 156 567 unpack; +#X text 40 566 see also:; +#X floatatom 919 112 5 0 0 0 - - - 0; +#X listbox 919 227 10 0 0 0 - - - 0; +#X msg 964 112 symbol a; +#X msg 994 169 1 2 3; +#X msg 979 141 list a b c; +#X obj 892 112 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X floatatom 917 368 5 0 0 0 - - - 0; -#X msg 961 368 symbol a; -#X msg 984 423 1 2 3; -#X msg 974 396 list a b c; -#X obj 889 368 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X floatatom 898 368 5 0 0 0 - - - 0; +#X msg 942 368 symbol a; +#X msg 965 423 1 2 3; +#X msg 955 396 list a b c; +#X obj 870 368 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X msg 794 368 dog my cats; -#X obj 938 198 trigger list bang; -#X obj 1054 225 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X msg 775 368 dog my cats; +#X obj 919 198 trigger list bang; +#X obj 1035 225 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 917 454 trigger anything bang; -#X obj 917 514 print [t a b]; -#X obj 1054 268 print [t l b]; -#X text 964 560 updated for Pd version 0.52; -#X obj 662 473 t; -#X text 702 473 =; -#X text 30 95 The trigger object outputs its input from right to left. +#X obj 898 454 trigger anything bang; +#X obj 898 514 print [t a b]; +#X obj 919 268 print [t l b]; +#X text 888 565 updated for Pd version 0.52; +#X obj 643 473 t; +#X text 683 473 =; +#X text 21 95 The trigger object outputs its input from right to left. Because of the hot/cold inlet paradigm of Pd \, output from right to -left is the usual output order in Pd objects., f 89; -#X text 668 432 the default is [t b b]:, f 12; -#X obj 725 473 t b b; -#X text 681 313 You can use the 'anything' specifier to bypass any +left is the usual output order in Pd objects., f 88; +#X text 649 432 the default is [t b b]:, f 12; +#X obj 706 473 t b b; +#X text 686 305 You can use the 'anything' specifier to bypass any kind of message: a float \, a symbol \, a pointer \, a bang \, a list -and also any generic message., f 67; -#X obj 536 447 t b f; -#X listbox 515 513 6 0 0 0 - - - 0; -#X floatatom 536 422 4 0 0 0 - - - 0; -#X floatatom 514 392 4 0 0 0 - - - 0; -#X obj 515 478 pack f f; -#X text 494 349 always force an output, f 12; -#X text 705 14 The 'float' \, 'symbol' and 'pointer' specifiers can +and also any generic message., f 59; +#X obj 520 447 t b f; +#X listbox 499 513 11 0 0 0 - - - 0; +#X floatatom 520 422 7 0 0 0 - - - 0; +#X floatatom 498 392 7 0 0 0 - - - 0; +#X obj 499 478 pack f f; +#X text 478 349 always force an output, f 12; +#X text 686 14 The 'float' \, 'symbol' and 'pointer' specifiers can truncate to the first element of an input list. Conversely \, besides actual lists \, the 'list' specifier receives 1-element lists like a float \, symbol or pointer input and passes them unaltered. Note -that a bang is a 0-element list and is also bypassed., f 61; -#X obj 134 553 bang; -#X listbox 714 229 7 0 0 0 - - - 0; -#X listbox 804 229 7 0 0 0 - - - 0; -#X listbox 836 200 7 0 0 0 - - - 0; -#X text 73 220 The message types/arguments are: 'float' \, 'bang' \, +that a bang is a 0-element list and is also bypassed.; +#X obj 115 567 bang; +#X listbox 695 229 7 0 0 0 - - - 0; +#X listbox 785 229 7 0 0 0 - - - 0; +#X listbox 817 200 7 0 0 0 - - - 0; +#X text 57 220 The message types/arguments are: 'float' \, 'bang' \, 'symbol' \, 'list' \, 'anything' and 'pointer' (see [pd pointer]) - all of which can be abbreviated to its first letter like the object itself \, see below:, f 78; -#N canvas 879 82 610 216 pointer 0; -#X obj 189 146 ../4.data.structures/01.scalars; -#X text 75 40 The [trigger] object can receive a pointer and sequence +#N canvas 446 68 561 233 pointer 0; +#X obj 81 131 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000; +#N canvas 491 316 412 249 open 0; +#X obj 58 49 inlet; +#X obj 58 105 pdcontrol; +#X msg 58 78 dir; +#X msg 58 132 \; pd open 01.scalars.pd \$1/../4.data.structures; +#X connect 0 0 2 0; +#X connect 1 0 3 0; +#X connect 2 0 1 0; +#X restore 81 161 pd open; +#X text 105 130 <-- open first examle of the 4.Data.Structure section +; +#X text 37 34 The [trigger] object can receive a pointer and sequence it. A pointer can be the location of a Data Structure scalar somewhere or the head of a Data Structure list. To know more about Data Structures \, how to handle pointers and see examples \, please refer to the 4.Data.Structure -section of the Pd's tutorials. Starting with the first example below. -, f 70; -#X restore 96 325 pd pointer; -#X text 176 325 <= about pointers, f 8; -#X text 30 139 The creation arguments specify the number of outlets +section of the Pd's tutorials., f 70; +#X connect 0 0 1 0; +#X restore 80 325 pd pointer; +#X text 160 325 <= about pointers, f 8; +#X text 14 139 The creation arguments specify the number of outlets and message type to output. Most of the time you want to match the input message type to the argument \, but a mix is possible and can -be convenient. For instance \, it's very usefull to insert a 'bang' +be convenient. For instance \, it's very useful to insert a 'bang' message into a sequence \, so you'll always have a bang output with the 'bang' specifier no matter what the input is., f 89; +#X obj 6 75 cnv 1 660 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 579 124 599 277 reference 0; +#X obj 11 46 cnv 5 575 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 11 97 cnv 2 575 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 11 183 cnv 2 575 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X obj 10 250 cnv 5 575 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 11 128 cnv 1 575 1 empty empty n: 8 12 0 13 #7c7c7c #000000 +0; +#X text 92 101 (depends on the number of arguments); +#X obj 37 15 trigger; +#X text 129 16 - sequence messages in right-to-left order.; +#X text 112 61 anything - any message to be sequenced over the outlets. +; +#X text 112 137 anything -; +#X text 189 137 sequenced messages from right to left \, the number +of outlets and message type depends on the arguments., f 52; +#X text 119 193 1) list -; +#X text 189 193 symbols that define outlet's message type: float' \, +'bang' \, 'symbol' \, 'list' \, 'anything' and 'pointer' \, all of +which can be abreviatted (default: f f)., f 52; +#X obj 99 15 t; +#X restore 491 41 pd reference; +#X text 589 41 <= click; +#X obj 6 548 cnv 1 1100 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 666 3 cnv 1 1 73 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 4 0 5 0; #X connect 5 0 26 0; #X connect 5 1 6 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/unpack-help.pd puredata-0.52.2+ds0/doc/5.reference/unpack-help.pd --- puredata-0.52.1+ds0/doc/5.reference/unpack-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/unpack-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,18 +1,15 @@ -#N struct template1 float x float y float z float q; -#N canvas 669 106 614 519 12; +#N canvas 380 39 598 499 12; #X floatatom 281 226 5 0 0 0 - - - 0; -#X obj 64 473 pack; -#X obj 107 14 unpack; -#X text 170 13 - split a message to atoms; +#X obj 116 463 pack; +#X obj 57 14 unpack; #X msg 50 148 1 2; #X msg 89 148 3 4 shut; #X msg 168 148 5 6 pick 7 8; -#X text 369 473 updated for Pd version 0.33; +#X text 369 465 updated for Pd version 0.33; #X text 362 184 <= creation arguments specify the types of atoms expected , f 29; #X obj 89 185 unpack float float symbol float float; #X symbolatom 217 227 7 0 0 0 - - - 0; -#X text 67 449 See also:; #X obj 152 359 unpack s f; #X msg 152 289 list octave 3; #X msg 186 313 pitch 69; @@ -28,33 +25,75 @@ #X floatatom 89 226 5 0 0 0 - - - 0; #X floatatom 219 392 5 0 0 0 - - - 0; #X text 59 347 abbreviated arguments =>, f 12; -#X obj 110 473 trigger; -#N canvas 879 82 610 216 pointer 0; -#X obj 189 146 ../4.data.structures/01.scalars; +#X obj 162 463 trigger; +#N canvas 756 82 610 216 pointer 0; +#X obj 128 131 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#N canvas 491 316 412 249 open 0; +#X obj 58 49 inlet; +#X obj 58 105 pdcontrol; +#X msg 58 78 dir; +#X msg 58 132 \; pd open 01.scalars.pd \$1/../4.data.structures; +#X connect 0 0 2 0; +#X connect 1 0 3 0; +#X connect 2 0 1 0; +#X restore 128 161 pd open; +#X text 152 130 <-- open first examle of the 4.Data.Structure section +; #X text 75 40 The [unpack] object unpack a pointer from a list. A pointer can be the location of a Data Structure scalar somewhere or the head of a Data Structure list. To know more about Data Structures \, how to handle pointers and see examples \, please refer to the 4.Data.Structure -section of the Pd's tutorials. Starting with the first example below. -, f 70; -#X restore 363 117 pd pointer; -#X text 444 117 <= about pointers; -#X text 76 56 unpack takes lists of atoms and distributes them to its +section of the Pd's tutorials., f 70; +#X connect 0 0 1 0; +#X restore 363 111 pd pointer; +#X text 444 111 <= about pointers; +#X text 70 59 unpack takes lists of atoms and distributes them to its outlets. The creation arguments specify the number of outlets and the atom type \, possible values are: float (or 'f') \, symbol (or 's') and pointer (or 'p') - see [pd pointer]., f 64; -#X connect 4 0 9 0; -#X connect 5 0 9 0; -#X connect 6 0 9 0; -#X connect 9 0 24 0; -#X connect 9 1 23 0; -#X connect 9 2 10 0; -#X connect 9 3 0 0; -#X connect 9 4 22 0; -#X connect 12 0 15 0; -#X connect 12 1 25 0; -#X connect 13 0 12 0; -#X connect 14 0 12 0; -#X connect 17 0 18 0; -#X connect 18 0 19 0; -#X connect 18 1 20 0; +#X obj 16 45 cnv 1 575 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 579 124 634 263 reference 0; +#X obj 11 46 cnv 5 600 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 11 97 cnv 2 600 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 11 183 cnv 2 600 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X obj 10 238 cnv 5 600 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 11 128 cnv 1 600 1 empty empty n: 8 12 0 13 #7c7c7c #000000 +0; +#X text 92 101 (depends on the number of arguments); +#X text 111 193 1) list -; +#X obj 57 14 unpack; +#X text 110 14 - split a list into atoms.; +#X text 107 61 list - a list to be split into atoms.; +#X text 77 137 float/symbol -; +#X text 184 137 a float or a symbol \, depending on the argument., +f 52; +#X text 180 193 symbols that define atoms's type: float' \, 'symbol' +\, and 'pointer' \, all of which can be abreviatted (default: f f). +; +#X restore 398 13 pd reference; +#X text 496 13 <= click; +#X obj 16 450 cnv 1 575 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 37 462 see also:; +#X text 111 14 - split a list into atoms; +#X connect 3 0 8 0; +#X connect 4 0 8 0; +#X connect 5 0 8 0; +#X connect 8 0 22 0; +#X connect 8 1 21 0; +#X connect 8 2 9 0; +#X connect 8 3 0 0; +#X connect 8 4 20 0; +#X connect 10 0 13 0; +#X connect 10 1 23 0; +#X connect 11 0 10 0; +#X connect 12 0 10 0; +#X connect 15 0 16 0; +#X connect 16 0 17 0; +#X connect 16 1 18 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/until-help.pd puredata-0.52.2+ds0/doc/5.reference/until-help.pd --- puredata-0.52.1+ds0/doc/5.reference/until-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/until-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,23 +1,50 @@ -#N canvas 675 95 495 378 12; -#X msg 74 179 bang; -#X obj 66 15 until; -#X text 28 50 The until object's left inlet starts a loop in which +#N canvas 462 63 425 418 12; +#X msg 85 198 bang; +#X obj 35 21 until; +#X text 32 66 The until object's left inlet starts a loop in which it outputs "bang" until its right inlet gets a bang which stops it. If you start "until" with a number \, it iterates at most that number -of times \, as in the Max "uzi" object.; -#X text 33 128 WARNING: if you bang an "until" which doesn't have a +of times \, as in the Max "uzi" object., f 52; +#X text 32 142 WARNING: if you bang an "until" which doesn't have a stopping mechanism \, Pd goes into an infinite loop!; -#X obj 74 237 until; -#X text 119 178 start; -#X msg 82 206 3; -#X text 118 207 start limited to 3 iterations; -#X obj 74 265 f; -#X obj 112 265 + 1; -#X obj 157 264 sel 0; -#X obj 74 319 print; -#X obj 112 291 mod 10; -#X text 234 310 updated for Pd version 0.28; -#X text 115 16 - loop; +#X obj 85 256 until; +#X text 130 197 start; +#X msg 93 225 3; +#X text 129 226 start limited to 3 iterations; +#X obj 85 284 f; +#X obj 123 284 + 1; +#X obj 168 283 sel 0; +#X obj 85 338 print; +#X obj 123 310 mod 10; +#X text 200 385 updated for Pd version 0.28; +#X obj 12 52 cnv 1 400 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 12 371 cnv 1 400 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 334 21 <= click; +#N canvas 598 111 573 271 reference 0; +#X obj 8 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 170 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 7 246 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 207 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X text 147 218 NONE, f 52; +#X obj 38 18 until; +#X text 87 18 - bang loop; +#X text 136 180 bang - bangs in a loop., f 49; +#X text 137 106 bang - start loop until a bang reaches the right inlet. +; +#X text 130 86 float - set number of iterations in the loop.; +#X obj 7 130 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 9 83 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 137 136 bang - stops the loop.; +#X restore 240 21 pd reference; +#X text 84 22 - bang loop; #X connect 0 0 4 0; #X connect 4 0 8 0; #X connect 6 0 4 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/value-help.pd puredata-0.52.2+ds0/doc/5.reference/value-help.pd --- puredata-0.52.1+ds0/doc/5.reference/value-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/value-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,25 +1,25 @@ -#N canvas 756 23 570 732 12; -#X floatatom 25 81 5 0 0 0 - - - 0; -#X floatatom 25 156 5 0 0 0 - - - 0; -#X msg 35 104 bang; -#X obj 37 16 value; -#X obj 25 131 value help-value1; -#X obj 51 40 v; -#X floatatom 167 81 5 0 0 0 - - - 0; -#X floatatom 167 156 5 0 0 0 - - - 0; -#X msg 177 104 bang; -#X obj 167 131 value help-value1; -#X floatatom 317 81 5 0 0 0 - - - 0; -#X floatatom 317 157 5 0 0 0 - - - 0; -#X msg 327 104 bang; -#X obj 317 132 value help-value2; -#X text 31 195 "Value" stores a numeric value which is shared between +#N canvas 539 23 565 709 12; +#X floatatom 38 131 5 0 0 0 - - - 0; +#X floatatom 38 206 5 0 0 0 - - - 0; +#X msg 48 154 bang; +#X obj 37 12 value; +#X obj 38 181 value help-value1; +#X obj 51 36 v; +#X floatatom 180 131 5 0 0 0 - - - 0; +#X floatatom 180 206 5 0 0 0 - - - 0; +#X msg 190 154 bang; +#X obj 180 181 value help-value1; +#X floatatom 330 131 5 0 0 0 - - - 0; +#X floatatom 330 207 5 0 0 0 - - - 0; +#X msg 340 154 bang; +#X obj 330 182 value help-value2; +#X text 41 78 "Value" stores a numeric value which is shared between all values with the same name (which need not be in the same Pd window.) -; -#X text 371 80 numbers set the value; -#X text 375 103 bang retrieves it; -#X text 23 674 see also:; -#X obj 99 674 expr; +, f 66; +#X text 384 130 numbers set the value; +#X text 388 153 bang retrieves it; +#X text 24 675 see also:; +#X obj 99 675 expr; #X obj 313 288 value z; #X obj 392 277 expr z; #X floatatom 392 306 5 0 0 0 - - - 0; @@ -33,8 +33,8 @@ #000000 #000000; #X floatatom 363 387 5 0 0 0 - - - 0; #X msg 441 352 \; y 5; -#X obj 137 674 send; -#X obj 176 674 float; +#X obj 137 675 send; +#X obj 176 675 float; #X text 32 257 The value may also be stored or recalled in expressions via the expr \, expr~ \, and fexpr~ objects., f 34; #X floatatom 276 575 5 0 0 0 - - - 0; @@ -49,7 +49,7 @@ message:, f 30; #X obj 276 514 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 221 674 int; +#X obj 221 675 int; #X obj 276 474 v help-value1; #X msg 322 423 send x; #X msg 334 447 send y; @@ -60,11 +60,11 @@ #X obj 474 425 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; #X floatatom 276 423 5 0 0 0 - - - 0; -#X text 312 677 updated for Pd version 0.51.; -#X text 88 16 - nonlocal shared value (named variable); +#X text 322 675 updated for Pd version 0.51.; +#X text 85 12 - nonlocal shared value (named variable); #X text 31 429 You can also send the stored value to a named object such as a receive or another value:, f 30; -#X text 85 41 - abbreviation; +#X text 82 37 - abbreviation; #N canvas 988 197 570 343 Dealing_with_"\$0" 0; #X obj 118 218 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; @@ -74,7 +74,7 @@ #X obj 271 204 f \$0; #X obj 271 180 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X floatatom 382 187 5 0 0 0 - #0-y - 0; +#X floatatom 382 187 5 0 0 0 - \$0-y - 0; #X obj 86 288 value; #X text 36 33 '\$0' - the patch ID number used to force locality in Pd - is widely used in send and receive names \, speacially in abstractions @@ -103,6 +103,41 @@ #X connect 14 0 13 0; #X restore 366 623 pd Dealing_with_"\$0"; #X text 35 623 open subpatch to see how to deal with '\$0' =>; +#X obj 6 67 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 6 664 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 643 94 573 339 reference 0; +#X obj 8 53 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 86 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 8 226 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 263 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 310 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 164 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 27 15 value; +#X text 105 15 - nonlocal shared value (named variable); +#X obj 74 15 v; +#X text 147 95 float -; +#X text 203 95 sets variable value., f 36; +#X text 203 271 sets value name (if no name is given \, a right inlet +is created to set the name)., f 44; +#X text 147 236 float -; +#X text 46 168 (if created without argument); +#X text 140 195 symbol - sets the value name.; +#X text 91 135 send -; +#X text 154 114 bang -; +#X text 203 114 outputs the value., f 36; +#X text 203 135 sends the value to a matching receive name.; +#X text 120 271 1) symbol -; +#X text 203 236 outputs variable value when receiving a bang.; +#X restore 387 34 pd reference; +#X text 484 35 <= click; #X connect 0 0 4 0; #X connect 2 0 4 0; #X connect 4 0 1 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/vcf~-help.pd puredata-0.52.2+ds0/doc/5.reference/vcf~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/vcf~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/vcf~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,48 +1,85 @@ -#N canvas 701 77 525 570 12; +#N canvas 480 56 608 558 12; #X declare -stdpath ./; -#X obj 200 265 sig~; -#X text 176 207 center frequency; -#X floatatom 200 234 5 0 0 0 - - - 0; -#X floatatom 234 295 5 0 0 0 - - - 0; -#X obj 36 22 vcf~; -#X text 24 494 see also:; -#X obj 102 494 bp~; -#X obj 167 327 vcf~ 1, f 10; -#X text 284 493 updated for Pd version 0.46; -#X text 42 138 vcf~ is implemented as a one-pole complex filter with +#X obj 225 247 sig~; +#X floatatom 225 216 5 0 0 0 - - - 0; +#X floatatom 259 277 5 0 0 0 - - - 0; +#X obj 34 14 vcf~; +#X text 52 484 see also:; +#X obj 130 484 bp~; +#X obj 192 309 vcf~ 1, f 10; +#X text 384 484 updated for Pd version 0.46; +#X text 126 430 (bandpass); +#X text 258 431 (lowpass); +#X text 126 413 real output; +#X text 245 413 imaginary output; +#X obj 164 484 bob~; +#X obj 131 243 noise~; +#X text 114 218 test input; +#X text 303 276 Q; +#X text 274 309 optional argument initializes Q; +#X obj 134 353 output~; +#X obj 259 353 output~; +#X obj 205 484 lop~; +#X obj 245 484 hip~; +#X obj 373 371 declare -stdpath ./; +#X obj 65 520 biquad~; +#X obj 124 519 slop~, f 7; +#X obj 183 519 cpole~, f 7; +#X obj 245 519 fexpr~; +#X text 301 519 - unfriendly filters; +#X obj 7 43 cnv 1 590 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#N canvas 667 114 517 345 reference 0; +#X obj 9 42 cnv 5 490 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 9 187 cnv 2 490 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 277 cnv 2 490 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 8 317 cnv 5 490 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 86 76 signal - audio signal to be filtered.; +#X text 93 95 clear - clear filter's memory., f 36; +#X obj 11 119 cnv 1 490 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 28 14 vcf~; +#X text 70 14 - voltage-controlled band/low-pass filter; +#X text 87 126 signal - resonant frequency in Hz.; +#X obj 11 153 cnv 1 490 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 11 71 cnv 1 490 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 94 160 float - set Q.; +#X text 134 287 1) float - initial Q (default 0).; +#X obj 11 242 cnv 1 490 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 11 211 cnv 1 490 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 86 217 signal - real output (bandpasse filtered signal).; +#X text 86 250 signal - imaginary output (bandpasse filtered signal). +; +#X restore 414 14 pd reference; +#X text 512 14 <= click; +#X text 25 53 Vcf~ is a resonant band-pass and low-pass filter that +takes either a control or an audio signal to set center frequency \, +which may thus change continuously in time as in an analog voltage +controlled filter (and unlike 'bp~' and 'lop~' that only take control +values). The "Q" or filter sharpness is still only set by control messages. +It is more expensive but more powerful than the bp~ bandpass filter. +, f 78; +#X text 24 146 Vcf~ is implemented as a one-pole complex filter with outlets for the real and imaginary value. These may be used as bandpass and lowpass filter outputs \, or combined to allow other possibilities. -, f 63; -#X text 101 448 (bandpass); -#X text 231 450 (lowpass); -#X text 101 431 real output; -#X text 220 431 imaginary output; -#X text 78 22 - voltage-controlled bandpass filter; -#X obj 136 494 bob~; -#X obj 106 261 noise~; -#X text 89 236 test input; -#X text 278 294 Q; -#X text 249 327 optional argument initializes Q; -#X text 42 54 Vcf~ is a resonant band-pass and low-pass filter that -takes either a control or an audio signal to set center frequency \, -which may thus change continuously in time. The "Q" or filter sharpness -is still only set by messages. More expensive but more powerful than -the bp~ bandpass filter., f 63; -#X obj 109 371 output~; -#X obj 234 371 output~; -#X obj 177 494 lop~; -#X obj 217 494 hip~; -#X obj 365 20 declare -stdpath ./; -#X obj 37 530 biquad~; -#X obj 96 529 slop~, f 7; -#X obj 155 529 cpole~, f 7; -#X obj 217 529 fexpr~; -#X text 273 529 - unfriendly filters; -#X connect 0 0 7 1; -#X connect 2 0 0 0; -#X connect 3 0 7 2; -#X connect 7 0 21 1; -#X connect 7 0 21 0; -#X connect 7 1 22 0; -#X connect 7 1 22 1; -#X connect 16 0 7 0; +, f 78; +#X obj 7 465 cnv 1 590 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 76 14 - voltage-controlled band/low-pass filter; +#X text 270 216 resonant frequency in Hz; +#X connect 0 0 6 1; +#X connect 1 0 0 0; +#X connect 2 0 6 2; +#X connect 6 0 17 1; +#X connect 6 0 17 0; +#X connect 6 1 18 0; +#X connect 6 1 18 1; +#X connect 13 0 6 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/vdl-help.pd puredata-0.52.2+ds0/doc/5.reference/vdl-help.pd --- puredata-0.52.1+ds0/doc/5.reference/vdl-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/vdl-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,31 +1,31 @@ #N canvas 634 25 476 609 12; -#X obj 83 158 bng 18 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 --1; -#X obj 83 437 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; +#X obj 83 158 bng 18 250 50 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000; +#X obj 83 437 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; #X obj 83 414 route 0 1 2 3 4 5 6 7 8 9, f 29; #X msg 24 182 set \$1; -#X floatatom 24 157 4 0 9 0 - - -; -#X floatatom 95 185 4 0 9 0 - - -; +#X floatatom 24 157 4 0 9 0 - - - 0; +#X floatatom 95 185 4 0 9 0 - - - 0; #X obj 43 14 vdl; -#X obj 103 437 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 123 437 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 143 437 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 163 437 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 183 437 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 203 437 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 223 437 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 243 437 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 263 437 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; +#X obj 103 437 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 123 437 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 143 437 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 163 437 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 183 437 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 203 437 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 223 437 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 243 437 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 263 437 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; #X obj 102 386 print vdl; #X obj 83 215 vdl 20 1 0 8 empty empty empty 20 -8 192 10 -99865 -262144 -260818 0; @@ -35,9 +35,9 @@ followed by 0 to indicate it's now off. You can use this to feed a route object and connect to toggles., f 36; #N canvas 665 62 612 590 position 0; -#X floatatom 142 146 4 0 1000 0 - - -; +#X floatatom 142 146 4 0 1000 0 - - - 0; #X obj 191 173 t b f; -#X floatatom 191 146 5 0 500 0 - - -; +#X floatatom 191 146 5 0 500 0 - - - 0; #X msg 142 243 pos \$1 \$2; #X text 63 146 x-position; #X text 235 145 y-position; @@ -79,14 +79,14 @@ #X text 85 49 WARNING: This object is still in Pd for backwarss compatibility but has been deprecated in Pd 0.36. Just use the new [vradio] instead now., f 39; -#X obj 390 25 vradio 15 1 0 8 empty empty empty 0 -8 0 10 -262144 -1 --1 0; +#X obj 390 25 vradio 15 1 0 8 empty empty empty 0 -8 0 10 #fcfcfc #000000 +#000000 0; #X text 199 119 the new [vradio] object =>; #N canvas 552 167 368 313 parameters 0; #N canvas 828 23 656 672 colors 0; -#X floatatom 72 244 3 0 29 0 - - -; -#X floatatom 108 244 3 0 29 0 - - -; -#X floatatom 177 249 3 0 29 0 - - -; +#X floatatom 72 244 3 0 29 0 - - - 0; +#X floatatom 108 244 3 0 29 0 - - - 0; +#X floatatom 177 249 3 0 29 0 - - - 0; #X text 104 224 front; #X text 170 224 label; #X obj 108 273 t b f; @@ -94,9 +94,9 @@ #X msg 72 343 color \$1 \$2 \$3; #X obj 72 306 pack 0 22 22, f 20; #X text 181 343 presets; -#X symbolatom 507 340 9 0 0 0 - - -; -#X symbolatom 421 339 9 0 0 0 - - -; -#X symbolatom 335 339 9 0 0 0 - - -; +#X symbolatom 507 340 9 0 0 0 - - - 0; +#X symbolatom 421 339 9 0 0 0 - - - 0; +#X symbolatom 335 339 9 0 0 0 - - - 0; #X obj 475 370 t b s; #X obj 389 370 t b s; #X obj 258 224 loadbang; @@ -117,14 +117,14 @@ #X text 61 157 Open subpatches for the conversion from RGB to hexadecimal ============>, f 38; #N canvas 1098 200 390 482 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -8256 --262144 -1 0 1; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; #X obj 109 225 t b f; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -4033 --1 -1 0 1; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; #X obj 80 341 pack s s s; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -258049 --1 -1 0 1; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; #X obj 81 250 t b f; #X obj 147 257 makefilename %02x; #X obj 113 284 makefilename %02x; @@ -152,14 +152,14 @@ #X coords 0 -1 1 1 80 170 2 50 50; #X restore 507 158 pd label; #N canvas 990 215 390 482 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -8256 --262144 -1 0 1; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; #X obj 109 225 t b f; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -4033 --1 -1 0 1; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; #X obj 74 341 pack s s s; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -258049 --1 -1 0 1; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; #X obj 81 250 t b f; #X obj 146 257 makefilename %02x; #X obj 112 284 makefilename %02x; @@ -187,13 +187,13 @@ #X coords 0 -1 1 1 80 170 2 50 50; #X restore 421 158 pd label; #N canvas 1035 234 390 482 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -8256 --262144 -1 12700 1; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; #X obj 109 225 t b f; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -4033 --1 -1 12700 1; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -258049 --1 -1 12700 1; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; #X obj 81 250 t b f; #X obj 221 257 makefilename %02x; #X obj 141 284 makefilename %02x; @@ -228,12 +228,12 @@ #X restore 335 158 pd label; #N canvas 720 84 564 619 old_way 0; #N canvas 1056 203 402 495 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -8256 --262144 -1 0 1; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -4033 --1 -1 0 1; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -258049 --1 -1 0 1; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; #X text 66 56 label; #X obj 59 361 expr -($f1 * 65536 + $f2 * 256 + $f3 + 1); #X obj 311 319 t b f; @@ -251,12 +251,12 @@ #X restore 360 146 pd label; #X text 199 121 Set RGB values in the sliders; #N canvas 928 251 392 476 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -8256 --262144 -1 12700 1; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -4033 --1 -1 12700 1; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -258049 --1 -1 12700 1; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; #X obj 61 361 expr -($f1 * 65536 + $f2 * 256 + $f3 + 1); #X obj 313 269 t b f; #X obj 171 269 t b f; @@ -282,12 +282,12 @@ #X coords 0 -1 1 1 80 170 2 50 50; #X restore 188 146 pd label; #N canvas 965 187 402 495 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -8256 --262144 -1 0 1; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -4033 --1 -1 0 1; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -258049 --1 -1 0 1; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; #X obj 59 361 expr -($f1 * 65536 + $f2 * 256 + $f3 + 1); #X obj 311 319 t b f; #X obj 169 319 t b f; @@ -375,7 +375,7 @@ #X coords 0 0 1 1 85 60 0; #X restore 190 261 pd colors; #N canvas 905 67 360 411 size 0; -#X floatatom 69 40 3 10 40 0 - - -; +#X floatatom 69 40 3 10 40 0 - - - 0; #X obj 69 118 vdl 15 1 0 6 empty empty empty 0 -8 0 10 -262144 -1 -1 0; #X msg 69 78 size \$1; @@ -388,9 +388,9 @@ #X restore 204 121 pd size; #N canvas 847 74 604 539 label 0; #X msg 90 284 label \$1; -#X floatatom 237 166 4 0 3 0 - - -; +#X floatatom 237 166 4 0 3 0 - - - 0; #X obj 279 193 t b f; -#X floatatom 279 166 5 5 50 0 - - -; +#X floatatom 279 166 5 5 50 0 - - - 0; #X msg 237 263 label_font \$1 \$2; #X text 199 165 type; #X text 323 164 size; @@ -400,9 +400,9 @@ #X text 258 118 Helvetica; #X text 258 133 Times; #X msg 102 252 symbol empty; -#X floatatom 391 182 4 -200 100 0 - - -; +#X floatatom 391 182 4 -200 100 0 - - - 0; #X obj 433 209 t b f; -#X floatatom 433 182 5 -150 150 0 - - -; +#X floatatom 433 182 5 -150 150 0 - - - 0; #X msg 391 279 label_pos \$1 \$2; #X text 373 181 x; #X text 477 180 y; @@ -436,8 +436,8 @@ #X restore 197 233 pd label; #N canvas 904 91 439 451 init 0; #X msg 164 172 init \$1; -#X obj 164 140 tgl 18 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 -1; +#X obj 164 140 tgl 18 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000 0 1; #X text 187 140 init on/off; #X text 46 21 The 'init' message takes a float and sets to 'init mode' (if different than zero) or 'no init' (if equal to zero - the default @@ -453,8 +453,8 @@ #X connect 5 0 4 0; #X restore 204 149 pd init; #N canvas 869 39 444 557 send-receive 0; -#X floatatom 48 234 5 0 8 0 - - -; -#X floatatom 48 362 5 0 0 0 - - -; +#X floatatom 48 234 5 0 8 0 - - - 0; +#X floatatom 48 362 5 0 0 0 - - - 0; #X text 39 96 The 'send' and 'receive' messages take a symbol to set \, respectively \, the send and receive symbol. If you set these to "empty" \, the symbols are cleared., f 50; @@ -482,7 +482,7 @@ #X restore 148 205 pd send-receive; #N canvas 872 191 383 447 number 0; #X msg 84 58 number \$1; -#X floatatom 84 29 4 1 18 0 - - -; +#X floatatom 84 29 4 1 18 0 - - - 0; #X obj 84 97 vdl 18 1 0 8 empty empty empty 0 -8 0 10 -262144 -1 -1 0; #X text 146 127 You can set the number of cells with the 'number' message @@ -496,27 +496,27 @@ #N canvas 875 120 399 439 single/double-change 0; #X msg 99 128 single_change; #X msg 113 163 double_change; -#X obj 99 392 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; +#X obj 99 392 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; #X obj 99 369 route 0 1 2 3 4 5 6 7 8 9, f 29; -#X obj 119 392 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 139 392 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 159 392 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 179 392 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 199 392 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 219 392 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 239 392 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 259 392 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; -#X obj 279 392 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 -1; +#X obj 119 392 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 139 392 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 159 392 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 179 392 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 199 392 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 219 392 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 239 392 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 259 392 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 279 392 tgl 15 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#000000 0 1; #X obj 99 202 vdl; #X text 220 164 default behavior; #X obj 115 339 print single/double; @@ -547,11 +547,11 @@ #X text 265 480 (c) musil@iem.kug.ac.at; #X text 301 496 IEM KUG \, Graz \, Austria \, 2002, f 14; #X text 45 554 see also:; -#X obj 119 555 x_all_guis; #X text 55 481 This object is part of the "iemguis" library \, natively included in Pd version 0.34., f 28; #X text 242 554 updated for Pd version 0.36; #X text 62 17 - [vdl]: deprecated vertical radio button; +#X obj 119 555 all_guis; #X connect 0 0 17 0; #X connect 2 0 1 0; #X connect 2 1 7 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/vline~-help.pd puredata-0.52.2+ds0/doc/5.reference/vline~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/vline~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/vline~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,57 +1,86 @@ -#N canvas 718 55 546 780 12; -#X obj 57 690 snapshot~; -#X floatatom 57 716 5 0 0 0 - - - 0; -#X obj 72 657 metro 100; -#X msg 37 359 1 1000; -#X msg 86 492 stop; -#X msg 75 409 0; -#X text 141 715 see also:; -#X obj 217 716 line; -#X obj 263 716 line~; -#X obj 41 16 vline~; -#X text 105 16 - high-precision audio ramp generator; -#X obj 57 585 vline~; -#X text 43 267 Any number of future ramps may be scheduled and vline~ +#N canvas 504 23 619 719 12; +#X obj 68 620 snapshot~; +#X floatatom 68 646 5 0 0 0 - - - 0; +#X obj 83 587 metro 100; +#X msg 48 289 1 1000; +#X msg 97 422 stop; +#X msg 86 339 0; +#X text 20 690 see also:; +#X obj 96 691 line; +#X obj 142 691 line~; +#X obj 27 15 vline~; +#X text 91 15 - high-precision audio ramp generator; +#X obj 68 515 vline~; +#X text 29 214 Any number of future ramps may be scheduled and vline~ will remember them and execute them in order. They must be specified in increasing order of initial delay however \, since a segment cancels -all planned segments at any future time., f 61; -#X text 92 356 ramp up; -#X msg 57 383 0 1000; -#X text 110 384 ramp down; -#X text 86 431 ramp up \, jump down \, ramp up again; -#X text 108 408 jump down; -#X text 129 491 "stop" message freezes vline~ at its current value +all planned segments at any future time., f 80; +#X text 103 286 ramp up; +#X msg 68 313 0 1000; +#X text 121 314 ramp down; +#X text 97 361 ramp up \, jump down \, ramp up again; +#X text 119 338 jump down; +#X text 140 421 "stop" message freezes vline~ at its current value ; -#X msg 80 457 1 1000 \, 0 0 2000 \, 1 1000 3000; -#X text 298 450 note: times (2000 \, 3000) are cumulative \, not incremental. +#X msg 91 387 1 1000 \, 0 0 2000 \, 1 1000 3000; +#X text 309 380 note: times (2000 \, 3000) are cumulative \, not incremental. , f 29; -#X text 314 714 updated for Pd version 0.47; -#X text 172 624 !!! BUG: vline~ objects inside reblocked subpatches +#X text 403 689 updated for Pd version 0.47; +#X text 259 583 !!! BUG: vline~ objects inside reblocked subpatches can have slightly incorrect timing !!!, f 41; -#X floatatom 96 558 5 0 0 0 - - - 0; -#X floatatom 92 524 5 0 0 0 - - - 0; -#X text 135 516 middle inlet sets next ramp time (cleared when ramp +#X floatatom 107 488 5 0 0 0 - - - 0; +#X floatatom 103 454 5 0 0 0 - - - 0; +#X text 146 446 middle inlet sets next ramp time (cleared when ramp starts!), f 32; -#X text 138 554 right inlet sets next delay time (cleared when ramp +#X text 149 484 right inlet sets next delay time (cleared when ramp starts!), f 32; -#X text 43 53 The vline~ object \, like line~ \, generates linear ramps +#X text 29 53 The vline~ object \, like line~ \, generates linear ramps whose levels and timing are determined by messages you send it. It takes a target value \, a time interval in milliseconds and an initial delay (also in ms). Ramps may start and stop between audio samples -\, in which case the output is interpolated accordingly., f 61; -#X text 43 142 A list up to three floats distributes the value over -the inlets \, as usual in Pd. Note that the middle and right inlet -(that sets the time and delay) do not remember old values (unlike every -other inlet in Pd). Thus \, if you send vline~ a float without priorly -specifying a ramp time and delay and sent \, it jumps immediately to -the target value. On the other hand \, a list of two values will not -have a delay time if no delay time was priorly set in the right inlet. -, f 61; -#X msg 261 378 \; pd dsp \$1; -#X obj 261 355 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +\, in which case the output is interpolated accordingly., f 80; +#X msg 272 308 \; pd dsp \$1; +#X obj 272 285 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X obj 72 622 loadbang; -#X text 279 356 DSP on/off; +#X obj 83 552 loadbang; +#X text 290 286 DSP on/off; +#X obj 11 44 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 522 15 <= click; +#N canvas 708 145 583 306 reference 0; +#X obj 9 42 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 9 205 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 239 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 276 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 9 75 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X text 133 80 float - set target value and start ramp.; +#X obj 9 127 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X text 133 136 float - set next ramp time (cleared when ramp starts). +; +#X text 126 214 signal - ramp values.; +#X text 189 249 NONE; +#X obj 27 15 vline~; +#X text 91 15 - high-precision audio ramp generator; +#X obj 9 164 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #9f9f9f #000000 +0; +#X text 141 99 stop - stops the ramp.; +#X text 133 173 float - sets delay time.; +#X restore 428 15 pd reference; +#X obj 11 681 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 29 119 A list up to three floats distributes the values over +the inlets \, as usual in Pd. Note that the middle and right inlet +(that sets the time and delay) do not remember old values (unlike other +inlets in Pd). Thus \, if you send vline~ a float without priorly specifying +a ramp time and delay and sent \, it jumps immediately to the target +value. In the same way \, a list of two values will not have a delay +time if no delay time was priorly set in the right inlet., f 80; #X connect 0 0 1 0; #X connect 2 0 0 0; #X connect 3 0 11 0; @@ -62,5 +91,5 @@ #X connect 19 0 11 0; #X connect 23 0 11 2; #X connect 24 0 11 1; -#X connect 30 0 29 0; -#X connect 31 0 2 0; +#X connect 29 0 28 0; +#X connect 30 0 2 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/vradio-help.pd puredata-0.52.2+ds0/doc/5.reference/vradio-help.pd --- puredata-0.52.1+ds0/doc/5.reference/vradio-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/vradio-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,9 +1,9 @@ -#N canvas 844 39 510 616 12; +#N canvas 527 27 510 616 12; #X obj 72 254 bng 18 250 50 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 #000000; #X floatatom 107 434 4 0 0 0 - - - 0; -#X msg 151 262 set \$1; -#X floatatom 151 240 4 0 9 0 - - - 0; +#X msg 151 264 set \$1; +#X floatatom 151 242 4 0 9 0 - - - 0; #X floatatom 107 255 4 -10 10 0 - - - 0; #X obj 107 300 vradio 20 1 0 6 empty empty Radio -57 15 0 15 #b8b8b8 #0400fc #780000 0; @@ -53,16 +53,15 @@ #X connect 18 0 0 0; #X connect 19 0 0 0; #X restore 327 439 pd old-behavior; -#X obj 40 17 vradio 18 1 0 8 empty empty empty 0 -8 0 10 #fcfcfc #000000 +#X obj 40 15 vradio 18 1 0 8 empty empty empty 0 -8 0 10 #fcfcfc #000000 #000000 0; #X obj 107 463 print vradio; #X text 284 499 (c) musil@iem.kug.ac.at; #X text 320 515 IEM KUG \, Graz \, Austria \, 2002, f 14; -#X text 64 573 see also:; -#X obj 138 574 x_all_guis; +#X text 64 576 see also:; #X text 74 500 This object is part of the "iemguis" library \, natively included in Pd version 0.34., f 28; -#X text 261 573 updated for Pd version 0.51; +#X text 261 576 updated for Pd version 0.51; #X text 135 302 <= click on the cells.; #X text 160 320 Right click for properties., f 15; #N canvas 665 62 612 590 position 0; @@ -509,7 +508,7 @@ #X obj 536 440 r \$0-radio; #X text 429 100 Feedback protection: iemguis can have the same name for both the send and receive symbols. This works without 'stack overflow' -erros because they have feedback protection. See example below., f +errors because they have feedback protection. See example below., f 50; #X connect 0 0 6 0; #X connect 5 0 1 0; @@ -549,11 +548,11 @@ #X connect 1 0 0 0; #X restore 159 143 pd number; #X restore 356 261 pd properties; -#X text 23 173 Insert it from the Put menu (named as "Vradio") or its +#X text 23 181 Insert it from the Put menu (named as "Vradio") or its shortcut. Alternatively \, create it by typing "vradio" into an object box. Right click for properties (to set size \, colors \, labels \, etc)., f 64; -#X text 99 55 The vertical radio button is a GUI (Graphical User Interface) +#X text 99 58 The vertical radio button is a GUI (Graphical User Interface) that sends numbers. Click on its cells to output corresponding values. Incoming floats set the value and are passed through (even if outside the range). The 'set' message only sets the value without output. A @@ -589,6 +588,49 @@ #X connect 7 0 1 0; #X restore 328 319 pd switch-example; #X text 68 17 - [vradio]: Vertical Radio Button; +#X obj 138 577 all_guis; +#N canvas 664 65 682 540 reference 0; +#X obj 21 182 cnv 5 640 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X text 131 270 label - sets label symbol., f 72; +#X text 55 290 label_font -; +#X text 62 322 label_pos -; +#X text 250 321 sets label position., f 55; +#X obj 20 508 cnv 5 640 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 138 371 send - sets send symbol., f 71; +#X text 110 390 recceive - sets receive symbol., f 75; +#X text 146 340 color -; +#X text 250 339 first element sets background color and third sets +font color (either floats or symbols in hexadecimal format).; +#X text 250 289 sets font type <0: DejaVu Sans Mono \, 1: Helvetica +\, 2: Times> and font size., f 50; +#X text 103 409 pos - sets position in the patch canvas. +, f 76; +#X text 90 428 delta -; +#X text 250 427 changes the position by a x/y delta in pixels., f +55; +#X text 84 26 - [hradio]: Horizontal Radio Button; +#X text 194 193 float - set and output number., f 63; +#X text 145 212 size - sets the cell size in pixels., f 70 +; +#X text 131 231 number - sets number of cells., f 72; +#X text 145 250 init - non zero sets to init mode., f 70; +#X obj 20 459 cnv 5 640 5 empty empty OUTLET: 8 18 0 13 #202020 #000000 +0; +#X obj 53 17 vradio 18 1 0 8 empty empty empty 0 -8 0 10 #fcfcfc #000000 +#000000 0; +#X text 194 475 float - cell number (indexed from 0)., f 63; +#X restore 331 17 pd reference; +#X text 422 17 <= click; +#X obj 83 47 cnv 1 410 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 10 562 cnv 1 480 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 9 171 cnv 1 75 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 83 48 cnv 1 1 122 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 0 0 5 0; #X connect 1 0 8 0; #X connect 2 0 5 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/vslider-help.pd puredata-0.52.2+ds0/doc/5.reference/vslider-help.pd --- puredata-0.52.1+ds0/doc/5.reference/vslider-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/vslider-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,21 +1,15 @@ -#N canvas 690 24 511 616 12; -#X msg 156 249 set \$1; -#X obj 75 247 bng 18 250 50 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 +#N canvas 523 23 504 605 12; +#X msg 156 259 set \$1; +#X obj 75 257 bng 18 250 50 0 empty empty empty 8 -8 0 10 #fcfcfc #000000 #000000; -#X obj 106 459 print vsl; -#X obj 106 286 vsl 18 128 0 127 0 0 empty empty Slider -58 30 0 15 +#X obj 106 469 print vsl; +#X obj 106 296 vsl 18 128 0 127 0 0 empty empty Slider -58 30 0 15 #dcdcdc #b40000 #0400b8 0 1; -#X floatatom 106 247 5 0 0 0 - - - 0; -#X floatatom 156 226 5 0 0 0 - - - 0; -#X obj 37 15 vsl 18 128 0 127 0 0 empty empty empty 0 -9 0 10 #fcfcfc -#000000 #000000 0 1; -#X text 79 46 The vertical slider is a GUI (Graphical User Interface) -that sends numbers. Click on it and drag to output values - use shift-click -and drag for fine-tuning by a factor of a hundredth. Incoming floats -set the slider's value and are passed through (even if outside the -slider's range). The 'set' message only sets the slider value without -output. A bang message sends the slider's value., f 56; -#X text 16 164 Insert it from the Put menu (named as "Vslider") or +#X floatatom 106 257 5 0 0 0 - - - 0; +#X floatatom 156 236 5 0 0 0 - - - 0; +#X obj 28 12 vsl 18 128 0 127 0 0 empty empty empty 0 -9 0 10 #fcfcfc +#000000 #000000 0 1; +#X text 16 180 Insert it from the Put menu (named as "Vslider") or its shortcut. Alternatively \, create it by typing "vslider" or "vsl" into an object box. Right click for properties (to set size \, colors \, labels \, etc)., f 65; @@ -60,7 +54,7 @@ #X connect 16 0 11 0; #X connect 17 0 11 0; #X connect 18 0 11 0; -#X restore 326 430 pd old-behavior; +#X restore 326 440 pd old-behavior; #N canvas 665 62 624 647 position 0; #X floatatom 142 146 4 0 1000 0 - - - 0; #X obj 191 173 t b f; @@ -102,7 +96,7 @@ #X connect 14 0 22 0; #X connect 17 0 22 0; #X connect 18 0 3 0; -#X restore 371 270 pd position; +#X restore 371 280 pd position; #N canvas 433 136 358 407 properties 0; #N canvas 828 23 656 672 colors 0; #X floatatom 72 244 3 0 29 0 - - - 0; @@ -509,7 +503,7 @@ #X obj 534 212 s \$0-slider; #X text 429 100 Feedback protection: iemguis can have the same name for both the send and receive symbols. This works without 'stack overflow' -erros because they have feedback protection. See example below., f +errors because they have feedback protection. See example below., f 50; #X connect 0 0 4 0; #X connect 1 0 4 0; @@ -604,19 +598,18 @@ #X text 45 13 All the parameters from the properties window can be set via messages as well. See examples and more details on each parameter in the subpatches below:, f 39; -#X restore 357 242 pd properties; -#X text 136 308 <= click & drag (shift click for fine tuning). Right +#X restore 357 252 pd properties; +#X text 136 318 <= click & drag (shift click for fine tuning). Right click for properties., f 16; -#X text 296 359 COMPATIBILITY NOTE: The behavior changed in Pd 0.46! +#X text 296 369 COMPATIBILITY NOTE: The behavior changed in Pd 0.46! Check details and how to get it back:, f 23; #X text 275 500 (c) musil@iem.kug.ac.at; #X text 311 516 IEM KUG \, Graz \, Austria \, 2002, f 14; #X text 45 576 see also:; -#X obj 119 577 x_all_guis; #X text 65 501 This object is part of the "iemguis" library \, natively included in Pd version 0.34., f 28; #X text 272 576 updated for Pd version 0.51; -#X floatatom 106 429 5 0 0 0 - - - 0; +#X floatatom 106 439 5 0 0 0 - - - 0; #N canvas 869 193 415 483 example-discrete 0; #X obj 58 37 vsl 18 128 0 1 0 0 empty empty empty 0 -9 0 10 #fcfcfc #000000 #000000 0 1; @@ -669,11 +662,66 @@ #X connect 5 0 4 1; #X connect 6 0 12 0; #X connect 12 0 5 0; -#X restore 315 298 pd example-discrete; -#X text 64 15 - [vslider]/[vsl]: Vertical Slider; +#X restore 315 308 pd example-discrete; +#X text 55 15 - [vslider]/[vsl]: Vertical Slider; +#X obj 119 577 all_guis; +#N canvas 653 53 660 548 reference 0; +#X obj 8 162 cnv 5 640 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X text 118 294 label - sets label symbol., f 72; +#X text 42 313 label_font -; +#X text 49 345 label_pos -; +#X text 237 344 sets label position., f 55; +#X obj 7 520 cnv 5 640 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 125 394 send - sets send symbol., f 71; +#X text 97 413 recceive - sets receive symbol., f 75; +#X text 133 363 color -; +#X text 237 362 first element sets background color and third sets +font color (either floats or symbols in hexadecimal format).; +#X text 237 312 sets font type <0: DejaVu Sans Mono \, 1: Helvetica +\, 2: Times> and font size., f 50; +#X text 90 432 pos - sets position in the patch canvas. +, f 76; +#X text 77 451 delta -; +#X text 237 450 changes the position by a x/y delta in pixels., f +55; +#X text 181 173 float - set and output number., f 63; +#X text 132 190 size - sets the cell size in pixels., f 70 +; +#X text 132 259 init - non zero sets to init mode., f 70; +#X obj 7 479 cnv 5 640 5 empty empty OUTLET: 8 18 0 13 #202020 #000000 +0; +#X text 76 207 range - sets minimum and maximum range. +, f 78; +#X text 195 224 lin - sets mode to linear., f 61; +#X text 195 241 log - sets mode to logarthmic., f 61; +#X text 118 276 steady - non zero sets to steady \, zero sets +to jump on click., f 72; +#X text 181 492 float - slider value., f 63; +#X obj 36 16 vsl 18 128 0 127 0 0 empty empty empty 0 -9 0 10 #fcfcfc +#000000 #000000 0 1; +#X text 63 19 - [vslider]/[vsl]: Vertical Slider; +#X restore 320 14 pd reference; +#X text 411 14 <= click; +#X obj 7 564 cnv 1 490 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 5 152 cnv 1 60 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 64 42 cnv 1 425 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 64 43 cnv 1 1 110 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 85 49 The vertical slider GUI (Graphical User Interface) sends +numbers via clicking and dragging. The values are evenly spread depending +on the slider's range and size - use shift-click and drag for fine-tuning +by a factor of a hundredth. Incoming floats set the slider's value +and are passed through (even if outside the slider's range). The 'set' +message only sets the slider value without output. A bang message sends +the slider's value., f 56; #X connect 0 0 3 0; #X connect 1 0 3 0; -#X connect 3 0 20 0; +#X connect 3 0 18 0; #X connect 4 0 3 0; #X connect 5 0 0 0; -#X connect 20 0 2 0; +#X connect 18 0 2 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/vsnapshot~-help.pd puredata-0.52.2+ds0/doc/5.reference/vsnapshot~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/vsnapshot~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/vsnapshot~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,10 +1,52 @@ -#N canvas 527 109 576 258 12; -#X text 306 197 updated for Pd version 0.47; -#X obj 53 23 vsnapshot~; -#X text 132 24 - mal-designed snapshot~ extension - best not to use -this; -#X text 60 68 This is an attempt at making a version of snapshot~ that -trades off delay for time jitter control. Unfortunately it isn't fully -correct and will be replaced by a more correct one in the future. Since -this change will probably be incompatible with this object \, it is -probably best to avoid using it until it is working correctly.; +#N canvas 527 109 642 406 12; +#X text 411 351 updated for Pd version 0.47; +#X obj 39 10 vsnapshot~; +#X text 34 333 see also:; +#X obj 35 354 snapshot~; +#X text 37 70 This is an attempt at making a version of snapshot~ that +trades off delay for time jitter control. The behaviour is the same +as snapshot~ (it takes a bang and converts a signal to a float. The +idea is that you can convert from an audio signal and get a specific +value within an audio block depending on the exact time it receives +a bang. Unfortunately it isn't fully correct and will be replaced by +a more correct one in the future. Since this change will probably be +incompatible with this object \, it is probably best to avoid using +it until it is working correctly., f 78; +#X text 106 354 (best to just use this instead); +#X text 118 11 - mal-designed snapshot~ extension \, best not to use +this, f 35; +#N canvas 702 112 592 207 reference 0; +#X obj 18 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 18 102 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 18 139 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 +#000000 0; +#X obj 17 176 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 131 66 bang -; +#X text 166 150 NONE, f 9; +#X text 183 66 convert a signal to a float., f 46; +#X text 126 112 float - the converted signal at every bang., f 54 +; +#X obj 39 20 vsnapshot~; +#X text 119 20 - deluxe snapshot~; +#X restore 445 19 pd reference; +#X text 543 19 <= click; +#X obj 10 51 cnv 1 610 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 10 314 cnv 1 610 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X floatatom 342 276 7 0 0 0 - - - 0; +#X msg 198 247 \; pd dsp \$1; +#X obj 198 220 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000 0 1; +#X text 220 220 DSP on/off; +#X obj 342 249 vsnapshot~; +#X obj 358 214 noise~; +#X obj 341 186 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#X connect 13 0 12 0; +#X connect 15 0 11 0; +#X connect 16 0 15 0; +#X connect 17 0 15 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/vu-help.pd puredata-0.52.2+ds0/doc/5.reference/vu-help.pd --- puredata-0.52.1+ds0/doc/5.reference/vu-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/vu-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,33 +1,33 @@ -#N canvas 640 46 476 514 12; -#X obj 26 23 vu 15 160 empty empty -1 -8 0 12 -66577 -1 1 0; -#X obj 154 248 vu 16 120 foo7_rcv VU-Meter 60 0 0 10 -1 -147457 1 0 -; -#X floatatom 164 215 5 -100 12 0 - - -; -#X floatatom 119 215 5 0 0 0 - - -; -#X floatatom 164 380 5 0 0 0 - - -; -#X floatatom 153 405 5 0 0 0 - - -; +#N canvas 527 34 472 527 12; +#X declare -stdpath ./; +#X obj 26 14 vu 15 160 empty empty -1 -8 0 12 #404040 #000000 1 0; +#X obj 154 248 vu 16 120 foo7_rcv VU-Meter 60 0 0 10 #000000 #900000 +1 0; +#X floatatom 164 218 5 -100 12 0 - - - 0; +#X floatatom 119 218 5 0 0 0 - - - 0; +#X floatatom 164 380 5 0 0 0 - - - 0; +#X floatatom 153 405 5 0 0 0 - - - 0; #X text 203 381 Peak; -#X text 88 214 RMS; -#X text 204 215 Peak; +#X text 88 217 RMS; +#X text 204 218 Peak; #X text 195 408 RMS; -#X text 95 56 The VU meter object is a GUI (Graphical User Interface) +#X text 98 58 The VU meter object is a GUI (Graphical User Interface) used to display RMS and peak levels in dBFS. The left inlet takes a float to set RMS and the right inlet takes a float to set peak level - these values are output to corresponding outlets., f 49; -#X text 95 133 Insert it from the Put menu (named as "VU Meter") or +#X text 98 135 Insert it from the Put menu (named as "VU Meter") or its shortcut. Alternatively \, create it by typing "vu" into an object box., f 49; #X text 271 386 (c) musil@iem.kug.ac.at; #X text 307 402 IEM KUG \, Graz \, Austria \, 2002, f 14; -#X text 29 445 see also:; -#X obj 103 446 x_all_guis; +#X text 29 459 see also:; #X text 238 311 This object is part of the "iemguis" library \, natively included in Pd version 0.34., f 28; -#X text 249 469 updated for Pd version 0.51; +#X text 249 483 updated for Pd version 0.51; #N canvas 689 106 613 643 position 0; -#X floatatom 142 132 4 0 1000 0 - - -; +#X floatatom 142 132 4 0 1000 0 - - - 0; #X obj 191 159 t b f; -#X floatatom 191 132 5 0 500 0 - - -; +#X floatatom 191 132 5 0 500 0 - - - 0; #X msg 142 229 pos \$1 \$2; #X text 63 132 x-position; #X text 235 131 y-position; @@ -51,7 +51,8 @@ #X text 159 17 You can also set and change the position of the object in the patch. Check below:, f 41; #X obj 142 188 pack 265 350; -#X obj 265 350 vu 15 160 empty empty -1 -8 0 12 -66577 -1 1 0; +#X obj 265 350 vu 15 160 empty empty -1 -8 0 12 #404040 #000000 1 0 +; #X connect 0 0 21 0; #X connect 1 0 21 0; #X connect 1 1 21 1; @@ -67,14 +68,14 @@ #X restore 334 266 pd position; #N canvas 431 187 353 319 properties 0; #N canvas 790 40 601 669 colors 0; -#X floatatom 83 261 3 0 29 0 - - -; -#X floatatom 132 261 3 0 29 0 - - -; +#X floatatom 83 261 3 0 29 0 - - - 0; +#X floatatom 132 261 3 0 29 0 - - - 0; #X text 125 241 label; #X obj 132 287 t b f; #X msg 83 355 color \$1 \$2 \$3; #X text 192 355 presets; -#X symbolatom 446 342 9 0 0 0 - - -; -#X symbolatom 306 341 9 0 0 0 - - -; +#X symbolatom 446 342 9 0 0 0 - - - 0; +#X symbolatom 306 341 9 0 0 0 - - - 0; #X obj 446 368 t b s; #X obj 229 226 loadbang; #X obj 306 406 pack symbol symbol symbol; @@ -85,14 +86,14 @@ #X text 32 159 Open subpatches for the conversion from RGB to hexadecimal ============>, f 38; #N canvas 350 71 390 482 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -8256 --262144 -1 0 1; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; #X obj 109 225 t b f; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -4033 --1 -1 0 1; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; #X obj 80 341 pack s s s; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -258049 --1 -1 0 1; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; #X obj 81 250 t b f; #X obj 147 257 makefilename %02x; #X obj 113 284 makefilename %02x; @@ -121,14 +122,14 @@ #X restore 446 160 pd label; #N canvas 964 215 336 472 label 0; #X text 52 56 background; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -8256 --262144 -1 3187 1; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; #X obj 109 225 t b f; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -4033 --1 -1 3187 1; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; #X obj 80 341 pack s s s; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -258049 --1 -1 3187 1; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; #X obj 81 250 t b f; #X obj 147 257 makefilename %02x; #X obj 113 284 makefilename %02x; @@ -162,7 +163,8 @@ #X text 76 491 open subpatch below for the old way of encoding RGB values., f 20; #X text 77 473 See also:; -#X obj 307 477 vu 15 160 empty Label -50 20 0 12 -66577 -1 1 0; +#X obj 307 477 vu 15 160 empty Label -50 20 0 12 #404040 #000000 1 +0; #X text 28 16 The 'color' message takes a list of three values \, but only the first and the third are valid and set \, respectively \, background and label colors (as there's no "front" color \, the 2nd value is ignored). @@ -174,12 +176,12 @@ RGB symbol values \, which are followed by "#"., f 76; #N canvas 429 89 542 588 old_way 0; #N canvas 639 23 402 495 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -8256 --262144 -1 0 1; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -4033 --1 -1 0 1; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -258049 --1 -1 0 1; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; #X text 66 56 label; #X obj 59 361 expr -($f1 * 65536 + $f2 * 256 + $f3 + 1); #X obj 311 319 t b f; @@ -224,14 +226,15 @@ compatibility \, as negative inetegers. FOR R (red) G (green) B (blue) values from o to 255 \, the conversion formula is \; float = -(R * 65536 + G * 256 + B + 1); -#X obj 243 393 vu 15 160 empty Label -50 20 0 12 -66577 -1 1 0; +#X obj 243 393 vu 15 160 empty Label -50 20 0 12 #404040 #000000 1 +0; #N canvas 544 196 419 464 label 0; -#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -8256 --262144 -1 3187 1; -#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -4033 --1 -1 3187 1; -#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 -258049 --1 -1 3187 1; +#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc +#fcfcfc #000000 0 1; +#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 +#000000 #000000 0 1; +#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 +#000000 #000000 0 1; #X obj 61 321 expr -($f1 * 65536 + $f2 * 256 + $f3 + 1); #X obj 313 269 t b f; #X obj 171 269 t b f; @@ -264,14 +267,14 @@ #X msg 229 260 list #404040 #000000 #000000, f 7; #X obj 83 318 pack 2 0 22, f 12; #N canvas 571 147 780 409 old-behaviour 0; -#X floatatom 379 36 3 0 29 0 - - -; -#X floatatom 484 41 3 0 29 0 - - -; +#X floatatom 379 36 3 0 29 0 - - - 0; +#X floatatom 484 41 3 0 29 0 - - - 0; #X text 477 16 label; #X obj 484 77 t b f; #X msg 379 145 color \$1 \$2 \$3; #X text 377 16 background; -#X floatatom 551 35 3 0 29 0 - - -; -#X floatatom 649 40 3 0 29 0 - - -; +#X floatatom 551 35 3 0 29 0 - - - 0; +#X floatatom 649 40 3 0 29 0 - - - 0; #X text 642 15 label; #X obj 649 76 t b f; #X text 541 15 background; @@ -295,7 +298,8 @@ and the 3rd value would set the color., f 46; #X text 643 145 <= Pd 0.46 way; #X obj 392 66 loadbang; -#X obj 465 222 vu 15 160 empty Label -50 20 0 12 -66577 -1 1 0; +#X obj 465 222 vu 15 160 empty Label -50 20 0 12 #404040 #000000 1 +0; #X text 570 211 When the compatibility is set to 0.47 or higher \, the example above to the right doesn't work to set the label color. , f 22; @@ -336,15 +340,16 @@ #X coords 0 0 1 1 85 60 0; #X restore 161 185 pd colors; #N canvas 845 44 433 567 size 0; -#X floatatom 129 191 4 20 100 0 - - -; +#X floatatom 129 191 4 20 100 0 - - - 0; #X obj 171 218 t b f; -#X floatatom 171 191 4 80 240 0 - - -; +#X floatatom 171 191 4 80 240 0 - - - 0; #X msg 129 288 size \$1 \$2; #X text 215 190 height; -#X obj 130 335 vu 20 120 empty empty -1 -8 0 12 -66577 -1 1 0; +#X obj 130 335 vu 20 120 empty empty -1 -8 0 12 #404040 #000000 1 0 +; #X text 77 190 width; -#X obj 171 128 hradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144 --1 -1 2; +#X obj 171 128 hradio 15 1 0 4 empty empty empty 0 -8 0 10 #fcfcfc +#000000 #000000 0; #X obj 171 156 expr ($f1+2) * 40; #X text 44 40 The size message sets the object's size and takes width and height values (in number of pixels). The height value should be @@ -365,28 +370,29 @@ 39; #N canvas 822 61 568 534 font/label 0; #X msg 94 293 label \$1; -#X floatatom 241 175 4 0 3 0 - - -; +#X floatatom 241 175 4 0 3 0 - - - 0; #X obj 283 202 t b f; -#X floatatom 283 175 5 5 50 0 - - -; +#X floatatom 283 175 5 5 50 0 - - - 0; #X msg 241 272 label_font \$1 \$2; #X text 203 174 type; #X text 327 173 size; -#X obj 241 112 vradio 15 1 0 3 empty empty empty 0 -8 0 10 -262144 --1 -1 0; +#X obj 241 112 vradio 15 1 0 3 empty empty empty 0 -8 0 10 #fcfcfc +#000000 #000000 0; #X text 262 111 DejaVu Sans Mono; #X text 262 127 Helvetica; #X text 262 142 Times; #X msg 106 261 symbol empty; -#X floatatom 395 191 4 -200 100 0 - - -; +#X floatatom 395 191 4 -200 100 0 - - - 0; #X obj 437 218 t b f; -#X floatatom 437 191 5 -150 150 0 - - -; +#X floatatom 437 191 5 -150 150 0 - - - 0; #X msg 395 288 label_pos \$1 \$2; #X text 377 190 x; #X text 481 189 y; #X text 390 167 label offset:; #X msg 74 196 symbol label; #X msg 94 224 symbol my\ label; -#X obj 241 382 vu 15 120 empty label 20 10 0 20 -66577 -1 0 0; +#X obj 241 382 vu 15 120 empty label 20 10 0 20 #404040 #000000 0 0 +; #X text 87 26 The 'label' message sets the label symbol \, setting it to "empty" clears it. The 'label_font' message sets font type and size and 'label_pos' sets the x/y coordinates. Note that the font type @@ -422,23 +428,23 @@ dollar sign arguments (\$0 \, \$1 \, \$2 \, and so on). Namely \, these parameters are: width \, height \, receive symbol \, label \, label offset and font size., f 49; -#X obj 171 246 vu 15 160 empty \$0-Label -10 -18 0 12 -66577 -135169 +#X obj 171 246 vu 15 160 empty \$0-Label -10 -18 0 12 #404040 #840000 1 0; #X restore 164 266 pd loading-args; #X text 59 235 Loading arguments in properties:; #N canvas 856 62 459 526 receive 0; #X msg 229 188 receive empty; -#X floatatom 91 220 5 -100 12 0 - - -; +#X floatatom 91 220 5 -100 12 0 - - - 0; #X text 61 440 Note how you need to escape dollar signs with backslashes to set something like "\$0-x". But the backslash is not needed if you set it directly via the properties window., f 53; -#X obj 229 240 vu 15 160 \$0-vu_rcv empty -1 -8 0 12 -33289 -1 1 0 -; +#X obj 229 240 vu 15 160 \$0-vu_rcv empty -1 -8 0 12 #202020 #000000 +1 0; #X msg 213 163 receive \\\$0-vu_rcv; #X obj 92 333 s \$0-vu_rcv; #X obj 92 291 pack -50 -20; #X obj 142 251 t b f; -#X floatatom 142 220 5 -100 12 0 - - -; +#X floatatom 142 220 5 -100 12 0 - - - 0; #X text 55 12 The 'receive' message sets a receive symbol \, in which case the inlets are visually hidden (but still functional in the patch). This way \, the object can communicate with a [send] object. If you @@ -455,12 +461,15 @@ #X connect 8 0 7 0; #X restore 154 132 pd receive; #N canvas 847 149 498 291 scale 0; -#X obj 57 102 vu 15 160 empty empty -1 -8 0 12 -66577 -1 0 0; +#X obj 57 102 vu 15 160 empty empty -1 -8 0 12 #404040 #000000 0 0 +; #X msg 56 55 scale \$1; -#X obj 56 18 tgl 18 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +#X obj 56 18 tgl 18 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 +0 1; +#X obj 147 102 vu 15 160 empty empty -1 -8 0 12 #404040 #000000 0 0 +; +#X obj 164 102 vu 15 160 empty empty -1 -8 0 12 #404040 #000000 1 0 ; -#X obj 147 102 vu 15 160 empty empty -1 -8 0 12 -66577 -1 0 0; -#X obj 164 102 vu 15 160 empty empty -1 -8 0 12 -66577 -1 1 0; #X text 156 23 The 'scale' message toggles the dB-scale label on or off (on by default)., f 40; #X text 230 157 It's convenient hiding the scale of a [vu] for a stereo @@ -471,8 +480,9 @@ #X restore 320 238 pd properties; #X text 24 273 Right click for properties (to set size \, colors \, labels \, etc) ===>, f 17; -#N canvas 703 35 528 592 example 0; -#X obj 268 317 vu 15 160 empty empty -1 -8 0 12 -66577 -1 1 0; +#N canvas 703 35 482 533 example 0; +#X obj 262 280 vu 15 160 empty empty -1 -8 0 12 #404040 #000000 1 0 +; #N canvas 329 161 625 417 vu 0; #X obj 59 129 env~ 1024; #X obj 161 111 abs~; @@ -486,10 +496,10 @@ #X text 344 307 Check the help file of env~ and slop~ for more details. , f 31; #X obj 239 89 expr 1000 / $f1; -#X floatatom 239 117 5 0 0 0 - - -; +#X floatatom 239 117 5 0 0 0 - - - 0; #X obj 161 146 slop~ 0 0 0 0 1e+09; #X obj 239 18 inlet; -#X floatatom 239 57 5 0 0 0 - - -; +#X floatatom 239 57 5 0 0 0 - - - 0; #X text 359 89 convert to hz; #X text 282 118 hz; #X text 284 57 peak decay time in ms; @@ -515,31 +525,25 @@ #X connect 14 0 10 0; #X connect 18 0 6 0; #X connect 18 1 2 0; -#X restore 245 274 pd vu; -#X obj 144 179 tgl 18 0 empty empty empty 17 7 0 10 -228856 -1 -1 0 -1; -#X floatatom 277 500 8 0 0 0 - - -; -#X floatatom 267 529 8 0 0 0 - - -; -#X text 339 500 Peak; -#X text 329 530 RMS; -#X floatatom 277 220 6 0 1000 0 - decay -; -#N canvas 391 189 453 455 noise-burst 0; -#X obj 160 196 *~; -#X obj 142 373 outlet~; -#X obj 160 167 vline~; -#X obj 160 47 inlet; -#X obj 89 140 noise~; -#X msg 160 137 1 \, 0 100; -#X obj 142 224 *~; -#X obj 160 105 metro 500; -#X obj 250 203 pow 4; -#X obj 250 254 line~; -#X msg 250 228 \$1 10; -#X obj 232 281 *~; -#X obj 232 312 dac~; -#X obj 250 47 inlet; -#X obj 323 109 loadbang; -#X msg 323 137 \; decay 500 \; pd dsp 1; +#X restore 239 237 pd vu; +#X obj 138 162 tgl 18 0 empty empty empty 17 7 0 10 #dcdcdc #000000 +#000000 0 1; +#X floatatom 271 463 8 0 0 0 - - - 0; +#X floatatom 261 492 8 0 0 0 - - - 0; +#X text 333 463 Peak; +#X text 323 493 RMS; +#X floatatom 271 183 6 0 1000 0 - decay - 0; +#N canvas 525 219 362 314 noise-burst 0; +#X obj 139 166 *~; +#X obj 121 263 outlet~; +#X obj 139 137 vline~; +#X obj 139 27 inlet; +#X obj 68 110 noise~; +#X msg 139 107 1 \, 0 100; +#X obj 121 194 *~; +#X obj 139 75 metro 500; +#X obj 224 124 loadbang; +#X msg 224 152 \; decay 500 \; pd dsp 1; #X connect 0 0 6 1; #X connect 2 0 0 0; #X connect 2 0 0 1; @@ -547,30 +551,23 @@ #X connect 4 0 6 0; #X connect 5 0 2 0; #X connect 6 0 1 0; -#X connect 6 0 11 0; #X connect 7 0 5 0; -#X connect 8 0 10 0; -#X connect 9 0 11 1; -#X connect 10 0 9 0; -#X connect 11 0 12 0; -#X connect 11 0 12 1; -#X connect 13 0 8 0; -#X connect 14 0 15 0; -#X coords 0 455 1 454 150 60 0; -#X restore 144 209 pd noise-burst; -#X text 292 273 <== open for analysis; -#X obj 242 183 hsl 128 15 0 1 0 0 empty empty Volume -2 -10 0 13 -228856 --1 -1 0 1; -#X text 55 178 turn on ==> test sound, f 12; -#X text 325 220 <=; -#X text 347 220 peak decay time in ms, f 10; -#X text 66 21 In order to use vu to display RMS and peak levels \, +#X connect 8 0 9 0; +#X coords 0 314 1 313 150 60 0; +#X restore 138 192 pd noise-burst; +#X text 286 236 <== open for analysis; +#X text 49 161 turn on ==> test sound, f 12; +#X text 319 183 <=; +#X text 341 183 peak decay time in ms, f 10; +#X text 50 14 In order to use vu to display RMS and peak levels \, you need to analyze a sound source and send it values. This can be done in Pd with the env~ and slop~ objects., f 55; -#X text 65 76 VU meters usually have a decay time for the peak level. +#X text 49 69 VU meters usually have a decay time for the peak level. You can set this parameter in the number box below. The peak level and decay is obtained via the slop~ object. Open the subpatch [pd vu] to see how this is done., f 55; +#X obj 138 302 output~; +#X obj 68 393 declare -stdpath ./; #X connect 0 0 4 0; #X connect 0 1 3 0; #X connect 1 0 0 0; @@ -578,11 +575,58 @@ #X connect 2 0 8 0; #X connect 7 0 1 1; #X connect 8 0 1 0; -#X connect 10 0 8 1; +#X connect 8 0 15 0; +#X connect 8 0 15 1; #X restore 341 209 pd example; -#X obj 83 477 env~; -#X obj 124 477 slop~, f 7; -#X text 87 20 - [vu]: VU meter; +#X obj 83 491 env~; +#X obj 124 491 slop~, f 7; +#X text 86 14 - [vu]: VU meter; +#X obj 103 460 all_guis; +#N canvas 663 82 585 585 reference 0; +#X obj 17 199 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 17 471 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 17 557 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 83 322 label - set label., f 67; +#X text 69 303 receive - set receive symbol name., f 69; +#X text 62 341 label_font -; +#X text 202 341 set label type <0: DejaVu Sans Mono \, 1: Helvetica +\, 2: Times> and font size., f 50; +#X text 69 373 label_pos - set label's x/y position., f 69 +; +#X text 97 393 color -; +#X text 202 392 set colors of background \, front and label. Symbols +for hexadecimal values or floats for presets., f 50; +#X obj 48 17 vu 15 160 empty empty -1 -8 0 12 #404040 #000000 1 0; +#X text 109 31 - [vu]: VU meter; +#X obj 17 233 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 17 434 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 145 238 float - set RMS value in dbFS., f 58; +#X text 147 443 float - set peak value in dbFS., f 49; +#X text 103 257 size - sets width and height (must be a multiple +of 40)., f 64; +#X obj 17 495 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 17 524 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 147 499 float - RMS value in dbFS., f 32; +#X text 147 530 float - RMS value in dbFS., f 32; +#X text 89 276 scale - nonzero shows scale (default) \, zero +hides it., f 66; +#X restore 348 15 pd reference; +#X text 276 15 click =>; +#X obj 12 449 cnv 1 450 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 88 47 cnv 1 370 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 9 196 cnv 1 80 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 88 47 cnv 1 1 148 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 1 0 5 0; #X connect 1 1 4 0; #X connect 2 0 1 1; diff -Nru puredata-0.52.1+ds0/doc/5.reference/wrap~-help.pd puredata-0.52.2+ds0/doc/5.reference/wrap~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/wrap~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/wrap~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,35 +1,55 @@ -#N canvas 645 53 668 427 12; -#X floatatom 55 130 6 0 0 0 - - - 0; -#X floatatom 55 294 7 0 0 0 - - - 0; -#X obj 71 207 loadbang; -#X obj 55 261 snapshot~; -#X obj 55 156 sig~; -#X obj 93 22 wrap~; -#X text 46 66 wrap~ gives the difference between the input and the +#N canvas 491 42 582 370 12; +#X floatatom 59 120 6 0 0 0 - - - 0; +#X floatatom 59 284 7 0 0 0 - - - 0; +#X obj 75 197 loadbang; +#X obj 59 251 snapshot~; +#X obj 59 146 sig~; +#X obj 35 15 wrap~; +#X text 39 66 wrap~ gives the difference between the input and the largest integer not exceeding it (for positive numbers this is the fractional part)., f 69; -#X obj 55 180 wrap~; -#X text 427 371 updated for Pd version 0.48; -#X msg 471 292 \; pd compatibility 0.47; -#X text 261 227 COMPATIBILITY NOTE: in Pd versions before 0.48 \, wrap~ +#X obj 59 170 wrap~; +#X text 320 331 updated for Pd version 0.48; +#X msg 345 249 \; pd compatibility 0.47; +#X text 315 122 COMPATIBILITY NOTE: in Pd versions before 0.48 \, wrap~ with an input of 0 output 1 (but now correctly outputs 0). To get the old behavior \, set "compatibility" to 0.47 or below in Pd's command -line or by a message:, f 47; -#X text 103 130 <= shift-drag here to get non-integers to try; -#X text 49 354 see also:; -#X obj 124 354 wrap; -#X text 147 22 - remainder modulo 1 for signals; -#X obj 52 383 expr~; -#X text 100 383 - evaluate expressions on audio signals; -#X msg 157 219 \; pd dsp \$1; -#X obj 157 194 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +line or by a message:, f 28; +#X text 107 120 <= shift-drag here to get non-integers to try, f 24 +; +#X text 42 334 see also:; +#X obj 117 335 wrap; +#X text 89 15 - remainder modulo 1 for signals; +#X obj 160 335 expr~; +#X msg 161 209 \; pd dsp \$1; +#X obj 161 184 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 180 193 On/off; -#X obj 71 231 metro 200; +#X text 184 183 On/off; +#X obj 75 221 metro 200; +#N canvas 817 164 442 195 reference 0; +#X obj 9 49 cnv 5 410 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 9 94 cnv 2 410 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 131 cnv 2 410 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 166 cnv 5 410 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 125 140 NONE, f 36; +#X obj 35 15 wrap~; +#X text 83 15 - remainder modulo 1 for signals; +#X text 105 64 signal - input to 'modulo 1' function.; +#X text 105 104 signal - output of 'modulo 1' function.; +#X restore 378 16 pd reference; +#X text 475 16 <= click; +#X obj 10 49 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 10 319 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 0 0 4 0; -#X connect 2 0 20 0; +#X connect 2 0 19 0; #X connect 3 0 1 0; #X connect 4 0 7 0; #X connect 7 0 3 0; -#X connect 18 0 17 0; -#X connect 20 0 3 0; +#X connect 17 0 16 0; +#X connect 19 0 3 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/writesf~-help.pd puredata-0.52.2+ds0/doc/5.reference/writesf~-help.pd --- puredata-0.52.1+ds0/doc/5.reference/writesf~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/writesf~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,48 +1,85 @@ -#N canvas 754 203 638 654 12; -#X msg 174 179 print; -#X msg 53 78 bang; -#X msg 155 125 start; -#X msg 162 153 stop; -#X obj 53 119 del 1000; -#X text 199 127 start streaming audio; -#X text 201 153 stop streaming audio; -#X obj 147 246 writesf~ 2, f 15; -#X msg 115 46 open /tmp/foo.wav; -#X obj 177 604 soundfiler; -#X text 102 603 see also:; -#X obj 180 212 osc~ 440; -#X text 61 291 writesf~ creates a subthread whose task is to write -audio streams to disk. You need not provide any disk access time between +#N canvas 407 38 639 585 12; +#X msg 147 374 print; +#X msg 26 273 bang; +#X msg 128 320 start; +#X msg 135 348 stop; +#X obj 26 314 del 1000; +#X text 172 322 start streaming audio; +#X text 174 348 stop streaming audio; +#X obj 120 441 writesf~ 2, f 15; +#X msg 88 241 open /tmp/foo.wav; +#X obj 101 551 soundfiler; +#X text 26 550 see also:; +#X obj 153 407 osc~ 440; +#X text 24 56 writesf~ creates a subthread whose task is to write audio +streams to disk. You need not provide any disk access time between "open" and "start" \, but between "stop" and the next "open" you must -give the object time to flush all the output to disk., f 68; -#X msg 147 97 open -bytes 4 /tmp/foo.wav; -#X msg 135 72 open -bytes 3 /tmp/foo.wav; -#X obj 259 604 readsf~; -#X text 94 494 -bytes <2 \, 3 \, or 4>; -#X text 94 516 -rate ; -#X text 59 429 The "open" message may take flag-style arguments as +give the object time to flush all the output to disk., f 83; +#X msg 120 292 open -bytes 4 /tmp/foo.wav; +#X msg 108 267 open -bytes 3 /tmp/foo.wav; +#X obj 183 551 readsf~; +#X text 101 193 -rate , f 42; +#X text 66 116 The "open" message may take flag-style arguments as follows:; #X obj 45 12 writesf~; #X text 111 11 - write audio signals to a soundfile; -#X text 244 46 create a new 16-bit integer soundfile; -#X text 326 72 create a 24-bit integer soundfile; -#X text 340 96 create a 32-bit floating point soundfile; -#X text 94 452 -wave \, -aiff \, -caf \, -next; -#X text 94 473 -big \, -little (sample endianness); -#X text 63 550 (Setting the sample rate will affect the soundfile header -but the file will _not_ be resampled.), f 65; -#X text 400 601 updated for Pd version 0.51; -#X text 265 240 The creation argument is the number of channels (1 +#X text 217 241 create a new 16-bit integer soundfile; +#X text 299 267 create a 24-bit integer soundfile; +#X text 313 291 create a 32-bit floating point soundfile; +#X text 101 157 -big \, -little (sample endianness), f 42; +#X text 411 550 updated for Pd version 0.51; +#X text 238 435 The creation argument is the number of channels (1 to 64)., f 29; -#X text 60 368 The soundfile is uncompressed 2- or 3-byte integer ("pcm") +#X text 42 478 The soundfile is uncompressed 2- or 3-byte integer ("pcm") or 4-byte floating point. The soundfile format is determined by the file extension (ie. "foo.wav" \, "foo.aiff" \, "foo.caf" \, "foo.snd"). -, f 68; -#X obj 249 212 noise~; -#X msg 406 163 \; pd dsp \$1; -#X obj 406 140 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +, f 80; +#X obj 222 407 noise~; +#X msg 379 358 \; pd dsp \$1; +#X obj 379 335 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 424 139 DSP on/off; +#X text 397 334 DSP on/off; +#X obj 7 43 cnv 1 620 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 533 11 <= click; +#N canvas 687 149 575 357 reference 0; +#X obj 8 45 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 241 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 276 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 314 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 44 106 open -; +#X text 86 179 print - prints information on Pd's terminal window. +, f 64; +#X obj 33 14 writesf~; +#X text 99 13 - write audio signals to a soundfile; +#X text 120 285 1) float - sets number of channels (default 1 \, max +64).; +#X text 142 106 takes a filename and optional flags: -wave \, -aiff +\, -caf \, -next \, - big \, -little \, -bytes \, -rate +; +#X obj 7 209 cnv 1 550 1 empty empty n: 8 12 0 13 #7c7c7c #000000 0 +; +#X obj 7 80 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 86 140 start -; +#X text 142 140 start streaming audio., f 56; +#X text 93 159 stop -; +#X text 142 159 stop streaming audio, f 56; +#X text 92 55 'n' number of inlets specified by argument.; +#X text 79 87 signal - signal to write to a channel., f 65; +#X text 79 215 signal - signal to write to a channel., f 65; +#X text 147 247 NONE; +#X restore 439 12 pd reference; +#X text 101 139 -wave \, -aiff \, -caf \, -next (file extension); +#X text 237 194 (affects the soundfile header but the file will _not_ +be resampled.), f 34; +#X obj 7 538 cnv 1 620 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 101 175 -bytes <2 \, 3 \, or 4> (bit resolution), f 42; #X connect 0 0 7 0; #X connect 1 0 2 0; #X connect 1 0 4 0; @@ -53,5 +90,5 @@ #X connect 11 0 7 0; #X connect 13 0 7 0; #X connect 14 0 7 0; -#X connect 30 0 7 1; -#X connect 32 0 31 0; +#X connect 27 0 7 1; +#X connect 29 0 28 0; diff -Nru puredata-0.52.1+ds0/doc/5.reference/x_all_guis.pd puredata-0.52.2+ds0/doc/5.reference/x_all_guis.pd --- puredata-0.52.1+ds0/doc/5.reference/x_all_guis.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/5.reference/x_all_guis.pd 1970-01-01 00:00:00.000000000 +0000 @@ -1,51 +0,0 @@ -#N canvas 766 40 529 629 12; -#X obj 313 181 bng 18 250 50 0 empty empty empty -8 -12 0 12 #fcfcfc -#000000 #0400fc; -#X obj 313 214 tgl 18 1.04858e+06 empty empty empty -6 -11 0 12 #fcfcfc -#000000 #0400fc 0 1; -#X obj 166 111 vsl 18 128 0 127 0 1.04858e+06 empty empty empty -7 --13 0 12 #fcfcfc #000000 #0400fc 0 1; -#X obj 306 144 hsl 128 18 0 127 0 0 empty empty empty 2 -12 0 12 #fcfcfc -#000000 #0400fc 0 1; -#X obj 302 95 hradio 18 1 0 8 empty empty empty 4 -12 0 12 #fcfcfc -#000000 #0400fc 0; -#X obj 75 100 vu 15 160 \$6 empty -4 -16 0 12 #202020 #000000 1 0; -#X obj 55 299 cnv 60 100 60 empty empty empty 2 -12 0 12 #dcdcdc #0400fc -1.04858e+06; -#X obj 235 109 vradio 18 1 0 8 empty empty empty -17 -11 0 12 #fcfcfc -#000000 #0400fc 0; -#X obj 198 307 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 1 -13 0 -12 #fcfcfc #000000 #0400fc 0 256; -#X text 337 180 Bang Button; -#X text 338 213 Toggle Button; -#X text 314 289 (c) musil@iem.kug.ac.at; -#X text 350 305 IEM KUG \, Graz \, Austria \, 2002, f 14; -#X text 196 281 Number Box; -#X text 57 278 Canvas; -#X symbolatom 80 500 10 0 0 0 - - - 0; -#X floatatom 36 500 5 0 0 0 - - - 0; -#X text 63 73 VU Meter; -#X text 149 71 Vertical; -#X text 155 86 Slider; -#X text 219 69 Vertical; -#X text 225 84 Radio; -#X text 300 71 Horizontal Radio; -#X text 301 123 Horizontal Slider; -#N canvas 0 22 450 278 (subpatch) 0; -#X array array 100 float 2; -#X coords 0 1 100 -1 200 140 1 0 0; -#X restore 290 414 graph; -#X text 10 370 ---------------------------------------------------------------------- -, f 70; -#X listbox 36 528 20 0 0 0 - - - 0; -#X text 159 498 atom boxes; -#X text 185 528 list box; -#X msg 403 577 message; -#X text 45 572 The message box is also considered a GUI object since -you can click on it and interact with it., f 47; -#X text 19 424 The boxes below are 'proper native' GUIs not part of -"IEM GUIs". See also the array to the right as another GUI element. -, f 36; -#X text 93 19 All IEM GUIs (objects from the "iemguis" external library -\, natively included in Pd version 0.34):, f 49; -#X text 20 397 Original native GUIs:; diff -Nru puredata-0.52.1+ds0/doc/7.stuff/soundfile-tools/1.ring-mod.pd puredata-0.52.2+ds0/doc/7.stuff/soundfile-tools/1.ring-mod.pd --- puredata-0.52.1+ds0/doc/7.stuff/soundfile-tools/1.ring-mod.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/7.stuff/soundfile-tools/1.ring-mod.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,189 +1,119 @@ -#N canvas 73 28 687 421 12; -#N canvas 213 187 537 459 input-sample 0; -#N canvas 0 0 450 300 (subpatch) 0; -#X array array1 91065 float 0; -#X coords 0 1 91065 -1 400 300 1; -#X restore 80 54 graph; -#X text 206 381 INPUT SAMPLE; -#X restore 179 299 pd input-sample; -#N canvas 192 180 507 343 output-sample 0; -#N canvas 0 0 450 300 (subpatch) 0; -#X array array2 95475 float 0; -#X coords 0 1 95475 -1 400 300 1; -#X restore 60 13 graph; -#X text 161 388 OUTPUT SAMPLE; -#X restore 179 323 pd output-sample; -#N canvas 110 33 827 602 guts 0; -#X msg 25 133 bang; -#X obj 25 360 openpanel; -#X obj 144 31 inlet; -#X obj 441 403 dac~; -#X obj 441 342 *~; -#X obj 456 318 line~; -#X obj 456 296 r master-amp; -#X msg 597 130 bang; -#X obj 597 155 savepanel; -#X obj 231 164 spigot; -#X msg 233 132 0; -#X msg 265 132 1; -#X obj 497 427 outlet; -#X obj 299 132 r frequency; -#X obj 219 321 tabwrite~ array2; -#X msg 219 193 bang; -#X obj 420 289 +~; -#X msg 96 129 \; pd dsp 1; -#X obj 441 370 hip~ 7; -#X obj 231 223 tabplay~ array1; -#X msg 439 131 bang; -#X obj 439 160 tabplay~ array2; -#X msg 597 180 write \$1 array2; -#X obj 597 205 soundfiler; -#X obj 144 53 route read run start hear save; -#N canvas 0 0 368 263 audio-transformation 0; -#X obj 113 95 osc~; -#X obj 97 116 *~; -#X obj 97 138 hip~ 7; -#X obj 113 71 r frequency; -#X obj 97 22 inlet~; -#X obj 97 169 outlet~; -#X obj 97 47 hip~ 7; +#N canvas 601 32 554 557 12; +#X declare -stdpath ./; +#N canvas 323 96 1082 507 guts 0; +#X obj 101 207 openpanel; +#X obj 313 45 inlet; +#X obj 101 292 soundfiler; +#X msg 101 321 resize \$1; +#X obj 101 358 send \$0-output; +#X msg 101 267 read -resize \$1 \$2; +#X obj 101 239 list append \$0-input; +#X obj 896 238 savepanel; +#X obj 312 202 spigot; +#X msg 351 172 0; +#X msg 416 172 1; +#X msg 290 231 bang; +#X obj 547 367 +~; +#X msg 458 158 \; pd dsp 1; +#X obj 896 311 soundfiler; +#N canvas 704 351 368 263 audio-transformation 0; +#X obj 186 85 osc~; +#X obj 168 134 *~; +#X obj 168 166 hip~ 7; +#X obj 113 40 inlet~; +#X obj 168 200 outlet~; +#X obj 113 85 hip~ 7; +#X obj 186 40 inlet; #X connect 0 0 1 1; #X connect 1 0 2 0; -#X connect 2 0 5 0; -#X connect 3 0 0 0; -#X connect 4 0 6 0; -#X connect 6 0 1 0; -#X restore 231 251 pd audio-transformation; -#X obj 497 402 env~ 16384; -#X obj 570 91 route normalized; -#X msg 571 300 write -normalize \$1 array2; -#X msg 571 250 bang; -#X obj 571 276 savepanel; -#X obj 571 325 soundfiler; -#X obj 25 413 soundfiler; -#X msg 25 390 read -resize -maxsize 1e+06 \$1 array1; -#X msg 25 460 \; array2 resize \$1; -#X obj 25 437 + 4410; -#X floatatom 96 436 0 0 0 0 - - -; -#X connect 0 0 1 0; -#X connect 1 0 33 0; -#X connect 2 0 24 0; -#X connect 4 0 18 0; -#X connect 5 0 4 1; +#X connect 2 0 4 0; +#X connect 3 0 5 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X restore 312 299 pd audio-transformation; +#X obj 702 230 savepanel; +#X obj 702 319 soundfiler; +#X obj 547 447 outlet~; +#X obj 290 369 tabwrite~ \$0-output; +#X obj 565 278 tabplay~ \$0-output, f 9; +#X obj 312 264 tabplay~ \$0-input; +#X obj 896 262 list append \$0-output; +#X msg 896 286 write \$1 \$1; +#X msg 702 294 write -normalize \$1 \$2; +#X obj 702 261 list append \$0-output; +#X obj 702 203 r \$0-save; +#X obj 896 212 r \$0-save-normalized; +#X obj 565 251 r \$0-hear; +#X obj 101 178 r \$0-read; +#X obj 351 76 r \$0-run; +#X obj 458 76 r \$0-start; +#X connect 0 0 6 0; +#X connect 1 0 8 0; +#X connect 1 0 15 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 5 0 2 0; #X connect 6 0 5 0; -#X connect 7 0 8 0; -#X connect 8 0 22 0; -#X connect 9 0 10 0; -#X connect 9 0 15 0; -#X connect 10 0 9 1; -#X connect 11 0 9 1; -#X connect 13 0 9 0; -#X connect 15 0 14 0; +#X connect 7 0 22 0; +#X connect 8 0 9 0; +#X connect 8 0 11 0; +#X connect 9 0 8 1; +#X connect 10 0 8 1; +#X connect 11 0 19 0; +#X connect 11 0 21 0; +#X connect 12 0 18 0; +#X connect 15 0 12 0; #X connect 15 0 19 0; -#X connect 16 0 4 0; -#X connect 18 0 3 0; -#X connect 18 0 3 1; -#X connect 18 0 26 0; -#X connect 19 0 25 0; -#X connect 20 0 21 0; -#X connect 21 0 16 1; +#X connect 16 0 25 0; +#X connect 20 0 12 1; +#X connect 21 0 15 0; #X connect 22 0 23 0; -#X connect 24 0 0 0; -#X connect 24 1 15 0; -#X connect 24 1 10 0; -#X connect 24 1 17 0; -#X connect 24 2 11 0; -#X connect 24 2 17 0; -#X connect 24 3 20 0; -#X connect 24 4 27 0; -#X connect 25 0 14 0; -#X connect 25 0 16 0; -#X connect 26 0 12 0; -#X connect 27 0 29 0; -#X connect 27 1 7 0; -#X connect 28 0 31 0; -#X connect 29 0 30 0; -#X connect 30 0 28 0; -#X connect 32 0 35 0; -#X connect 32 0 36 0; -#X connect 33 0 32 0; -#X connect 35 0 34 0; -#X restore 28 265 pd guts; -#X msg 28 155 run the transformation; -#X msg 28 199 hear the output buffer again; -#X text 28 113 click below to:; -#X msg 28 221 save the output buffer; -#X floatatom 404 257 0 0 0 0 - - -; -#N canvas 194 37 397 591 output 0; -#X obj 66 203 t b; -#X obj 66 152 f; -#X obj 66 102 inlet; -#X text 71 81 mute; -#X obj 66 228 f; -#X msg 134 244 0; -#X msg 66 127 bang; -#X obj 66 178 moses 1; -#X obj 134 218 t b f; -#X obj 96 442 outlet; -#X msg 96 416 set \$1; -#X obj 186 163 moses 1; -#X obj 224 444 dbtorms; -#X obj 224 469 pack 0 100; -#X obj 186 138 r master-lvl; -#X obj 96 382 r master-lvl; -#X obj 83 286 s master-lvl; -#X obj 224 494 s master-amp; -#X obj 208 244 loadbang; -#X msg 208 269 \; master-lvl 90; -#X connect 0 0 4 0; -#X connect 1 0 7 0; -#X connect 2 0 6 0; -#X connect 4 0 16 0; -#X connect 5 0 16 0; -#X connect 6 0 1 0; -#X connect 7 0 0 0; -#X connect 7 1 8 0; -#X connect 8 0 5 0; -#X connect 10 0 9 0; -#X connect 11 1 4 1; -#X connect 12 0 13 0; -#X connect 13 0 17 0; -#X connect 14 0 1 1; -#X connect 14 0 11 0; -#X connect 15 0 10 0; -#X connect 15 0 12 0; -#X connect 18 0 19 0; -#X restore 404 235 pd output; -#X msg 404 213 mute; -#X obj 404 279 s master-lvl; -#X text 448 212 <-- mute button; -#X msg 28 177 start transformation when I change frequency; -#X floatatom 392 117 0 0 0 0 - - -; -#X obj 392 139 s frequency; -#X text 392 97 modulation frequency (Hz.); -#X floatatom 28 287 0 0 0 0 - - -; -#X text 10 330 100 maximum; -#X text 10 311 output meter; -#X text 429 115 <--set me; -#X text 443 255 <--set me; -#X msg 28 133 read an input file; -#X msg 28 243 save normalized to max amplitude; -#X text 29 8 Ring modulator. Read in a sample first \, then you can -either set a frequency and hit the "run" button or else hit the "start..." +#X connect 23 0 14 0; +#X connect 24 0 17 0; +#X connect 25 0 24 0; +#X connect 26 0 16 0; +#X connect 27 0 7 0; +#X connect 28 0 20 0; +#X connect 29 0 0 0; +#X connect 30 0 9 0; +#X connect 30 0 11 0; +#X connect 30 0 13 0; +#X connect 31 0 13 0; +#X connect 31 0 10 0; +#X restore 120 352 pd guts; +#X floatatom 120 320 6 0 0 0 - - - 0; +#X obj 120 400 output~; +#X obj 351 90 declare -stdpath ./; +#X text 391 387 input sample; +#X text 392 411 output sample; +#X obj 277 412 table \$0-output; +#X obj 284 388 table \$0-input; +#X obj 161 137 bng 18 250 50 0 \$0-read dummy Read -38 9 0 13 #dfdfdf +#000000 #202020; +#X obj 161 161 bng 18 250 50 0 \$0-run dummy Run -31 9 0 13 #dfdfdf +#000000 #000000; +#X obj 161 186 bng 18 250 50 0 \$0-start dummy Start -46 9 0 13 #dfdfdf +#000000 #000000; +#X obj 161 210 bng 18 250 50 0 \$0-hear dummy Hear -40 9 0 13 #dfdfdf +#000000 #000000; +#X obj 161 234 bng 18 250 50 0 \$0-save dummy Save -40 9 0 13 #dfdfdf +#000000 #000000; +#X obj 161 259 bng 18 250 50 0 \$0-save-normalized dummy Normalized +-87 9 0 13 #dfdfdf #000000 #000000; +#X text 90 494 Outputs are saved as "wav" files \, although you can +edit the patch to choose other (like "aiff") instead., f 54; +#X text 48 20 Ring modulator. Read in a sample first \, then you can +either set a frequency and hit the "run" button or else hit the "start" button and start the transformation by dragging on the frequency control. -The output level should be "100" for unit gain.; -#X text 22 361 Outputs are saved as "wav" files \, although you can -edit the patch to make "aiff" or "nextstep" instead. Any of the three -are OK for source files.; -#X text 397 302 LINE OUT LEVEL in dB (100 max); -#X connect 2 0 16 0; -#X connect 3 0 2 0; -#X connect 4 0 2 0; -#X connect 6 0 2 0; -#X connect 7 0 10 0; -#X connect 8 0 7 0; -#X connect 9 0 8 0; -#X connect 12 0 2 0; -#X connect 13 0 14 0; -#X connect 21 0 2 0; -#X connect 22 0 2 0; +, f 66; +#X text 174 319 Modulation frequency (Hz.); +#X text 70 101 Click below to:; +#X text 190 136 (read an input file); +#X text 190 160 (run the transformation); +#X text 190 185 (start transformation when I change frequency); +#X text 190 209 (hear the output sample); +#X text 190 233 (save the output sample); +#X text 190 258 (save the output sample normalized to 1); +#X connect 0 0 2 0; +#X connect 0 0 2 1; +#X connect 1 0 0 0; diff -Nru puredata-0.52.1+ds0/doc/7.stuff/soundfile-tools/2.bandpass.pd puredata-0.52.2+ds0/doc/7.stuff/soundfile-tools/2.bandpass.pd --- puredata-0.52.1+ds0/doc/7.stuff/soundfile-tools/2.bandpass.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/7.stuff/soundfile-tools/2.bandpass.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,202 +1,139 @@ -#N canvas 73 28 846 432 12; -#N canvas 213 187 495 352 input-sample 0; -#N canvas 0 0 450 300 graph1 0; -#X array array1 155948 float 0; -#X coords 0 1 155948 -1 400 300 1; -#X restore 55 22 graph; -#X text 149 386 INPUT SAMPLE; -#X restore 238 282 pd input-sample; -#N canvas 192 180 507 343 output-sample 0; -#N canvas 0 0 450 300 graph2 0; -#X array array2 160358 float 0; -#X coords 0 1 160358 -1 400 300 1; -#X restore 59 13 graph; -#X text 158 381 OUTPUT SAMPLE; -#X restore 237 305 pd output-sample; -#N canvas 116 150 735 425 guts 0; -#X msg 25 131 bang; -#X obj 25 354 openpanel; -#X obj 142 31 inlet; -#X obj 458 378 dac~; -#X obj 458 335 *~; -#X obj 473 312 line~; -#X obj 473 290 r master-amp; -#X msg 726 87 bang; -#X obj 726 109 savepanel; -#X obj 275 165 spigot; -#X msg 260 131 0; -#X msg 291 131 1; -#X obj 513 408 outlet; -#X obj 324 131 r frequency; -#X obj 263 320 tabwrite~ array2; -#X msg 263 194 bang; -#X obj 438 283 +~; -#X msg 143 131 \; pd dsp 1; -#X obj 458 356 hip~ 7; -#X obj 275 223 tabplay~ array1; -#X msg 453 127 bang; -#X obj 453 149 tabplay~ array2; -#X msg 726 130 write \$1 array2; -#X obj 726 151 soundfiler; -#X obj 142 52 route read run start hear save; -#N canvas 0 0 368 259 audio-transformation 0; -#X obj 111 70 r frequency; -#X obj 96 21 inlet~; -#X obj 96 178 outlet~; -#X obj 179 123 r q; -#X obj 111 94 pack 0 100; -#X obj 110 119 line~; -#X obj 96 153 vcf~; -#X connect 0 0 4 0; -#X connect 1 0 6 0; -#X connect 3 0 6 2; -#X connect 4 0 5 0; -#X connect 5 0 6 1; -#X connect 6 0 2 0; -#X restore 275 244 pd audio-transformation; -#X obj 513 387 env~ 16384; -#X obj 585 88 route normalized; -#X msg 585 184 write -normalize \$1 array2; -#X msg 585 142 bang; -#X obj 585 163 savepanel; -#X obj 585 209 soundfiler; -#X obj 25 406 soundfiler; -#X msg 25 383 read -resize -maxsize 1e+06 \$1 array1; -#X msg 25 452 \; array2 resize \$1; -#X obj 25 430 + 4410; -#X floatatom 94 428 0 0 0; -#X obj 413 132 r q; -#X connect 0 0 1 0; -#X connect 1 0 33 0; -#X connect 2 0 24 0; -#X connect 4 0 18 0; -#X connect 5 0 4 1; -#X connect 6 0 5 0; -#X connect 7 0 8 0; -#X connect 8 0 22 0; -#X connect 9 0 10 0; -#X connect 9 0 15 0; -#X connect 10 0 9 1; -#X connect 11 0 9 1; -#X connect 13 0 9 0; -#X connect 15 0 14 0; -#X connect 15 0 19 0; -#X connect 16 0 4 0; -#X connect 18 0 3 0; -#X connect 18 0 3 1; -#X connect 18 0 26 0; -#X connect 19 0 25 0; -#X connect 20 0 21 0; -#X connect 21 0 16 1; -#X connect 22 0 23 0; -#X connect 24 0 0 0; -#X connect 24 1 15 0; -#X connect 24 1 10 0; -#X connect 24 1 17 0; -#X connect 24 2 11 0; -#X connect 24 2 17 0; -#X connect 24 3 20 0; -#X connect 24 4 27 0; -#X connect 25 0 14 0; -#X connect 25 0 16 0; -#X connect 26 0 12 0; -#X connect 27 0 29 0; -#X connect 27 1 7 0; -#X connect 28 0 31 0; -#X connect 29 0 30 0; -#X connect 30 0 28 0; -#X connect 32 0 35 0; -#X connect 32 0 36 0; -#X connect 33 0 32 0; -#X connect 35 0 34 0; -#X connect 37 0 9 0; -#X restore 34 236 pd guts; -#X msg 34 131 run the transformation; -#X msg 34 173 hear the output buffer again; -#X text 34 91 click below to:; -#X msg 34 194 save the output buffer; -#X floatatom 562 334 0 0 120; -#N canvas 194 37 397 591 output 0; -#X obj 65 199 t b; -#X obj 65 150 f; -#X obj 65 100 inlet; -#X text 70 79 mute; -#X obj 65 224 f; -#X msg 132 240 0; -#X msg 65 125 bang; -#X obj 65 175 moses 1; -#X obj 132 215 t b f; -#X obj 94 434 outlet; -#X msg 94 409 set \$1; -#X obj 183 160 moses 1; -#X obj 221 437 dbtorms; -#X obj 221 461 pack 0 100; -#X obj 183 136 r master-lvl; -#X obj 94 375 r master-lvl; -#X obj 81 281 s master-lvl; -#X obj 221 486 s master-amp; -#X obj 204 240 loadbang; -#X msg 204 264 \; master-lvl 90; -#X connect 0 0 4 0; -#X connect 1 0 7 0; -#X connect 2 0 6 0; -#X connect 4 0 16 0; -#X connect 5 0 16 0; -#X connect 6 0 1 0; -#X connect 7 0 0 0; -#X connect 7 1 8 0; -#X connect 8 0 5 0; -#X connect 10 0 9 0; -#X connect 11 1 4 1; -#X connect 12 0 13 0; -#X connect 13 0 17 0; -#X connect 14 0 1 1; -#X connect 14 0 11 0; -#X connect 15 0 10 0; -#X connect 15 0 12 0; -#X connect 18 0 19 0; -#X restore 562 313 pd output; -#X msg 562 292 mute; -#X obj 562 355 s master-lvl; -#X text 604 291 <-- mute button; -#X floatatom 34 257 0 0 0; -#X text 35 300 100 maximum; -#X text 35 282 output meter; -#X text 600 335 <--set me; -#X msg 34 110 read an input file; -#X msg 34 215 save normalized to max amplitude; -#X msg 34 152 start transformation when I change f or q; -#X floatatom 479 164 0 0 0; -#X obj 479 185 s frequency; -#X text 479 85 center; -#X floatatom 482 229 0 0 10000; -#X text 482 210 "q"; -#X obj 482 252 s q; -#X obj 479 143 mtof; -#X floatatom 479 122 0 0 128; -#X text 536 163 <- set in Hz; -#X text 533 230 <--set selectivity; -#X text 479 103 frequency; -#X text 534 123 <- set in MIDI units; -#X text 31 341 Note -- you can shift-click on the controls to change -them in hundredths. You can also click and type numbers in \, followed -by the "enter" key.; -#X text 16 5 Bandpass filter. Read in a sample first \, then you can -either set a frequency and hit the "run" button or else hit the "start..." -button and start the transformation by dragging on the frequency or -q control.; -#X text 552 377 OUTPUT LEVEL in dB (100 norm); -#X connect 2 0 12 0; -#X connect 3 0 2 0; -#X connect 4 0 2 0; +#N canvas 639 41 626 658 12; +#X declare -stdpath ./; +#N canvas 412 191 1072 496 guts 0; +#X obj 469 27 inlet; +#N canvas 673 237 352 261 audio-transformation 0; +#X obj 97 41 inlet~; +#X obj 97 188 outlet~; +#X obj 158 109 line~; +#X obj 97 143 vcf~, f 18; +#X obj 158 41 inlet; +#X obj 220 41 inlet; +#X msg 158 77 \$1 100; +#X connect 0 0 3 0; +#X connect 2 0 3 1; +#X connect 3 0 1 0; +#X connect 4 0 6 0; +#X connect 5 0 3 2; #X connect 6 0 2 0; -#X connect 7 0 10 0; +#X restore 311 317 pd audio-transformation; +#X obj 101 207 openpanel; +#X obj 390 27 inlet; +#X obj 101 292 soundfiler; +#X msg 101 321 resize \$1; +#X obj 101 358 send \$0-output; +#X msg 101 267 read -resize \$1 \$2; +#X obj 101 239 list append \$0-input; +#X obj 885 238 savepanel; +#X obj 312 202 spigot; +#X msg 351 174 0; +#X msg 416 174 1; +#X msg 290 231 bang; +#X obj 547 367 +~; +#X msg 498 138 \; pd dsp 1; +#X obj 885 311 soundfiler; +#X obj 691 230 savepanel; +#X obj 691 319 soundfiler; +#X obj 547 447 outlet~; +#X obj 290 389 tabwrite~ \$0-output; +#X obj 565 278 tabplay~ \$0-output, f 9; +#X obj 311 271 tabplay~ \$0-input, f 8; +#X obj 885 262 list append \$0-output; +#X msg 885 286 write \$1 \$1; +#X msg 691 294 write -normalize \$1 \$2; +#X obj 691 261 list append \$0-output; +#X obj 691 203 r \$0-save; +#X obj 885 212 r \$0-save-normalized; +#X obj 565 241 r \$0-hear; +#X obj 101 178 r \$0-read; +#X obj 290 74 r \$0-run; +#X obj 498 76 r \$0-start; +#X connect 0 0 1 2; +#X connect 0 0 10 0; +#X connect 1 0 20 0; +#X connect 1 0 14 0; +#X connect 2 0 8 0; +#X connect 3 0 10 0; +#X connect 3 0 1 1; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 7 0 4 0; #X connect 8 0 7 0; -#X connect 9 0 8 0; -#X connect 16 0 2 0; -#X connect 17 0 2 0; -#X connect 18 0 2 0; -#X connect 19 0 20 0; -#X connect 22 0 24 0; -#X connect 25 0 19 0; +#X connect 9 0 23 0; +#X connect 10 0 11 0; +#X connect 10 0 13 0; +#X connect 11 0 10 1; +#X connect 12 0 10 1; +#X connect 13 0 20 0; +#X connect 13 0 22 0; +#X connect 14 0 19 0; +#X connect 17 0 26 0; +#X connect 21 0 14 1; +#X connect 22 0 1 0; +#X connect 23 0 24 0; +#X connect 24 0 16 0; +#X connect 25 0 18 0; #X connect 26 0 25 0; +#X connect 27 0 17 0; +#X connect 28 0 9 0; +#X connect 29 0 21 0; +#X connect 30 0 2 0; +#X connect 31 0 11 0; +#X connect 31 0 13 0; +#X connect 31 0 15 0; +#X connect 32 0 15 0; +#X connect 32 0 12 0; +#X restore 198 435 pd guts; +#X floatatom 176 395 7 0 0 0 - - - 0; +#X floatatom 244 395 5 0 10000 0 - - - 0; +#X obj 176 365 mtof; +#X floatatom 176 339 7 0 128 0 - - - 0; +#X text 47 21 Bandpass filter. Read in a sample first \, then you can +either set a frequency and hit the "run" button or else hit the "start..." +button and start the transformation by dragging on the frequency or +q control., f 71; +#X text 445 456 input sample; +#X text 446 479 output sample; +#X obj 331 480 table \$0-output; +#X obj 331 456 table \$0-input; +#X text 71 102 Click below to:; +#X obj 198 475 output~; +#X obj 374 92 declare -stdpath ./; +#X obj 179 313 hsl 128 15 24 90 0 0 empty empty empty -2 -8 0 10 #dfdfdf +#000000 #000000 0 1; +#X text 184 311 center frequency; +#X obj 247 367 hsl 128 15 1 100 1 0 empty empty empty -2 -8 0 10 #dfdfdf +#000000 #000000 0 1; +#X text 121 380 set in Hz -->, f 6; +#X text 86 324 set in MIDI units ---->, f 11; +#X text 74 566 Note -- you can shift-click on the number boxes to change +them in hundredths. You can also click and type numbers in \, followed +by the "enter" key., f 67; +#X obj 161 137 bng 18 250 50 0 \$0-read dummy Read -38 9 0 13 #dfdfdf +#000000 #202020; +#X obj 161 161 bng 18 250 50 0 \$0-run dummy Run -31 9 0 13 #dfdfdf +#000000 #000000; +#X obj 161 186 bng 18 250 50 0 \$0-start dummy Start -46 9 0 13 #dfdfdf +#000000 #000000; +#X obj 161 210 bng 18 250 50 0 \$0-hear dummy Hear -40 9 0 13 #dfdfdf +#000000 #000000; +#X obj 161 234 bng 18 250 50 0 \$0-save dummy Save -40 9 0 13 #dfdfdf +#000000 #000000; +#X obj 161 259 bng 18 250 50 0 \$0-save-normalized dummy Normalized +-87 9 0 13 #dfdfdf #000000 #000000; +#X text 190 136 (read an input file); +#X text 190 160 (run the transformation); +#X text 190 209 (hear the output sample); +#X text 190 233 (save the output sample); +#X text 190 258 (save the output sample normalized to 1); +#X text 190 185 (start transformation when I change frequency or Q) +; +#X text 286 394 <-- set "Q"; +#X connect 0 0 11 0; +#X connect 0 0 11 1; +#X connect 1 0 0 0; +#X connect 2 0 0 1; +#X connect 3 0 1 0; +#X connect 4 0 3 0; +#X connect 13 0 4 0; +#X connect 15 0 2 0; diff -Nru puredata-0.52.1+ds0/doc/7.stuff/soundfile-tools/3.phase.vocoder.pd puredata-0.52.2+ds0/doc/7.stuff/soundfile-tools/3.phase.vocoder.pd --- puredata-0.52.1+ds0/doc/7.stuff/soundfile-tools/3.phase.vocoder.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/7.stuff/soundfile-tools/3.phase.vocoder.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,225 +1,170 @@ -#N canvas 223 113 913 495 12; -#X floatatom 457 258 0 0 0; -#X floatatom 793 114 0 0 0; -#X floatatom 654 114 0 0 0; -#N canvas 249 280 600 398 loc&precess 0; -#X floatatom 218 312 0 0 0; -#X msg 369 239 set \$1; -#X obj 367 282 outlet; -#X obj 114 364 outlet; -#X obj 233 96 r location; -#X msg 113 321 set \$1; -#X obj 368 203 r speed; -#X obj 75 95 r see-location; -#X obj 92 139 t b f; -#X obj 113 292 f; -#X obj 73 173 int; -#X obj 73 206 sel 0; -#X msg 209 139 1; -#X msg 275 138 0; -#X obj 150 245 del 300; -#X connect 1 0 2 0; -#X connect 4 0 8 0; -#X connect 5 0 3 0; -#X connect 6 0 1 0; -#X connect 7 0 8 0; -#X connect 8 0 10 0; -#X connect 8 1 9 1; -#X connect 9 0 5 0; -#X connect 10 0 11 0; -#X connect 11 0 12 0; -#X connect 11 0 14 0; -#X connect 12 0 10 1; -#X connect 13 0 10 1; -#X connect 14 0 13 0; -#X connect 14 0 9 0; -#X restore 654 91 pd loc&precess; -#N canvas 0 0 600 400 setlocprecess 0; -#X obj 235 113 inlet; -#X obj 100 109 inlet; -#X obj 231 144 s speed; -#X obj 101 144 s location; -#X connect 0 0 2 0; -#X connect 1 0 3 0; -#X restore 654 138 pd setlocprecess; -#X obj 457 279 s transpo; -#X obj 457 216 r transpo; -#X msg 457 237 set \$1; -#X msg 673 387 \; location 0 \; speed 200; -#X text 200 8 PHASE VOCODER; -#X text 609 18 set location; -#X text 609 36 and stop; -#X text 609 54 precession; -#X text 785 53 precession; -#X text 785 71 speed in; -#X text 785 89 hundredths; -#X text 457 179 transposition; -#X text 457 197 in cents; -#X text 666 360 contraction; -#X text 784 360 expansion; -#X msg 776 387 \; location 0 \; speed 10; -#X text 30 349 100 maximum; -#X text 30 331 output meter; -#X floatatom 610 218 0 5 60; -#X text 645 218 <--set me to change length; -#N canvas 0 0 265 196 length 0; -#X obj 46 23 inlet; -#X obj 48 101 * 44100; -#X msg 84 125 \; array2 resize \$1; -#X obj 46 48 min 60; -#X obj 60 75 s output-length; -#X obj 46 159 s maxoutsize; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 1 0 5 0; -#X connect 3 0 1 0; +#N canvas 379 75 912 528 12; +#X declare -stdpath ./; +#X floatatom 544 155 7 0 0 1 - \$0-transpo-set \$0-transpo 16; +#X floatatom 544 187 7 0 0 0 - \$0-speed-set \$0-speed 16; +#X text 75 25 PHASE VOCODER; +#X floatatom 546 252 7 1 60 0 - \$0-length-set \$0-length 16; +#N canvas 461 191 1070 579 guts 0; +#X obj 778 250 savepanel; +#X obj 147 208 spigot; +#X msg 187 171 0; +#X msg 219 171 1; +#X obj 296 383 +~; +#X obj 778 442 soundfiler; +#X obj 801 359 savepanel; +#N canvas 470 56 686 815 fft-analysis 0; +#X obj 298 512 *~; +#X obj 266 512 *~; +#X obj 266 534 -~; +#X obj 364 513 *~; +#X obj 333 513 *~; +#X obj 333 536 +~; +#X obj 379 338 *~; +#X obj 348 338 *~; +#X obj 319 338 *~; +#X obj 287 338 *~; +#X obj 287 361 +~; +#X obj 256 391 *~; +#X obj 120 708 *~; +#X obj 426 461 rfft~; +#X obj 427 263 rfft~; +#X obj 427 228 *~; +#X obj 473 257 *~; +#X obj 120 677 *~; +#X obj 150 642 rifft~; +#X obj 120 754 outlet~; +#X obj 392 75 line~; +#X obj 454 104 +~; +#X obj 225 391 *~; +#X obj 225 413 +~; +#X obj 225 439 rsqrt~; +#X obj 348 361 -~; +#X obj 268 469 *~; +#X obj 329 469 *~; +#X obj 138 591 /; +#X obj 172 322 sig~ 1.5e-20; +#X obj 465 537 switch~ 2048 4; +#X obj 454 130 tabread4~ \$0-input; +#X obj 392 160 tabread4~ \$0-input; +#X obj 491 194 tabreceive~ \$0-hanning; +#X obj 266 630 tabsend~ \$0-phase-real; +#X obj 333 578 tabsend~ \$0-phase-imag; +#X obj 320 244 tabreceive~ \$0-phase-imag, f 13; +#X obj 216 244 tabreceive~ \$0-phase-real, f 13; +#X obj 465 513 r \$0-running; +#X msg 138 563 1 \$1; +#X obj 138 532 r \$0-window-size; +#N canvas 732 116 607 605 control 0; +#X obj 208 275 f; +#X obj 203 108 t b f; +#X obj 185 140 /; +#X obj 208 246 bang~; +#X obj 185 166 * 1000; +#X text 50 169 window size (msec); +#X obj 248 277 +; +#X obj 257 223 *; +#X obj 240 432 +; +#X obj 208 381 t f f; +#X msg 121 502 \$1 \, \$2 \$3; +#X obj 298 304 / 1000; +#X obj 208 352 *; +#X text 238 352 reading location (samples); +#X obj 279 493 / 4; +#X text 310 494 hop size (samples); +#X text 258 103 (overlap times parent SR); +#X text 258 89 local sample rate; +#X obj 257 168 * 0.01; +#X obj 279 453 *; +#X obj 447 300 * 0.01; +#X obj 447 327 + 69; +#X obj 447 353 mtof; +#X obj 447 382 / 440; +#X obj 291 427 t b f; +#X obj 257 192 t b f; +#X obj 121 474 pack f f f; +#X obj 447 274 r \$0-transpo; +#X obj 257 144 r \$0-speed; +#X obj 295 225 r \$0-location; +#X obj 298 281 r \$0-sample-rate; +#X obj 203 60 r \$0-sample-rate; +#X obj 279 380 r \$0-window-size; +#X obj 185 26 r \$0-window-size; +#X obj 121 536 outlet; +#X obj 279 536 outlet; +#X obj 203 85 * 4; +#N canvas 47 74 450 300 loop 0; +#X obj 190 201 s \$0-see-location; +#X obj 191 90 r \$0-length-ms; +#X obj 152 89 /; +#X obj 152 117 wrap; +#X obj 173 154 *; +#X obj 151 52 inlet; +#X obj 169 234 outlet; +#X connect 1 0 2 1; +#X connect 1 0 4 1; +#X connect 2 0 3 0; #X connect 3 0 4 0; -#X restore 610 239 pd length; -#N canvas 219 38 198 151 /SUBPATCH/ 0; -#X obj 77 118 outlet; -#X obj 77 72 loadbang; -#X msg 77 95 10; +#X connect 4 0 0 0; +#X connect 4 0 6 0; +#X connect 5 0 2 0; +#X restore 208 306 pd loop; +#X connect 0 0 37 0; #X connect 1 0 2 0; -#X connect 2 0 0 0; -#X restore 610 197 pd; -#X text 610 259 length in seconds of the output; -#X text 610 277 buffer... maximum 60; -#N canvas 42 0 1083 546 guts 0; -#X msg 24 129 bang; -#X obj 24 405 openpanel; -#X obj 139 30 inlet; -#X obj 450 385 dac~; -#X obj 450 329 *~; -#X obj 465 306 line~; -#X obj 465 283 r master-amp; -#X msg 728 129 bang; -#X obj 728 150 savepanel; -#X obj 219 164 spigot; -#X msg 206 102 0; -#X msg 238 102 1; -#X obj 503 444 outlet; -#X obj 292 251 tabwrite~ array2; -#X obj 449 246 +~; -#X obj 450 356 hip~ 7; -#X msg 446 97 bang; -#X obj 446 118 tabplay~ array2; -#X msg 728 175 write \$1 array2; -#X obj 728 200 soundfiler; -#X obj 505 386 env~ 16384; -#X obj 591 101 route normalized; -#X msg 591 284 write -normalize \$1 array2; -#X msg 591 242 bang; -#X obj 591 263 savepanel; -#X obj 591 308 soundfiler; -#X obj 24 450 soundfiler; -#X msg 24 428 read -resize -maxsize 1e+06 \$1 array1; -#X floatatom 24 473 0 0 0; -#X obj 680 345 loadbang; -#X msg 680 368 \; window-size 2048 \; transpo 0; -#N canvas 9 7 835 599 fft-analysis 0; -#X obj 267 304 *~; -#X obj 235 304 *~; -#X obj 235 326 -~; -#X obj 333 305 *~; -#X obj 302 305 *~; -#X obj 302 328 +~; -#X obj 348 131 *~; -#X obj 317 131 *~; -#X obj 288 131 *~; -#X obj 256 131 *~; -#X obj 256 153 +~; -#X obj 225 183 *~; -#X obj 88 570 *~; -#X obj 375 256 rfft~; -#X obj 396 55 rfft~; -#X obj 488 652 *~; -#X obj 702 295 r window-size; -#X obj 770 211 r sample-rate; -#X obj 624 239 f; -#X obj 617 53 r sample-rate; -#X obj 592 30 r window-size; -#X obj 615 100 t b f; -#X obj 592 124 /; -#X obj 519 652 *~; -#X obj 89 549 *~; -#X obj 106 525 rifft~; -#X obj 89 596 outlet~; -#X obj 639 457 print~; -#X msg 639 428 bang; -#X text 155 526 inverse real FFT; -#X obj 603 215 bang~; -#X obj 528 434 line~; -#X obj 592 146 * 1000; -#X text 645 139 window size (msec); -#X obj 617 78 * 4; -#X obj 647 162 r speed; -#X obj 726 164 r location; -#X obj 655 240 +; -#X obj 648 204 *; -#X msg 726 193 0; -#X obj 624 349 +; -#X obj 615 305 t f f; -#X msg 528 406 \$1 \, \$2 \$3; -#X obj 528 378 pack 0 0 0; -#X obj 770 234 / 1000; -#X obj 624 276 *; -#X text 654 276 reading location (samples); -#X obj 652 390 / 4; -#X text 684 395 hop size (samples); -#X obj 578 476 sig~; -#X obj 546 474 +~; -#X text 653 85 (overlap times parent SR); -#X text 653 71 local sample rate; -#X obj 23 52 tabreceive~ phase-real; -#X obj 194 183 *~; -#X obj 194 205 +~; -#X obj 194 231 rsqrt~; -#X obj 317 153 -~; -#X obj 237 261 *~; -#X obj 298 261 *~; -#X obj 203 52 tabreceive~ phase-imag; -#X obj 108 390 sig~; -#X obj 90 319 t b f; -#X msg 90 340 1; -#X obj 104 364 /; -#X obj 232 447 tabsend~ phase-real; -#X obj 262 418 tabsend~ phase-imag; -#X obj 107 136 sig~ 1.5e-20; -#X obj 647 184 * 0.01; -#X obj 708 217 s speed; -#X obj 479 256 s see-location; -#X floatatom 688 368 0 0 0; -#X obj 686 347 *; -#X obj 848 245 r transpo; -#X obj 848 264 * 0.01; -#X obj 849 285 + 69; -#X obj 851 307 mtof; -#X obj 851 327 / 440; -#X obj 705 324 t b f; -#X obj 90 297 r window-size; -#X floatatom 855 361 0 0 0; -#X obj 564 556 tabreceive~ hanning; -#X obj 549 500 tabread4~ array1; -#X obj 514 524 tabread4~ array1; -#X obj 612 608 r running; -#X obj 612 632 switch~ 2048 4; +#X connect 1 1 2 1; +#X connect 2 0 4 0; +#X connect 3 0 0 0; +#X connect 4 0 7 0; +#X connect 4 0 26 2; +#X connect 6 0 0 1; +#X connect 7 0 6 1; +#X connect 8 0 26 1; +#X connect 9 0 26 0; +#X connect 9 1 8 0; +#X connect 10 0 34 0; +#X connect 11 0 12 1; +#X connect 12 0 9 0; +#X connect 14 0 35 0; +#X connect 18 0 25 0; +#X connect 19 0 8 1; +#X connect 19 0 14 0; +#X connect 20 0 21 0; +#X connect 21 0 22 0; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 24 0 19 0; +#X connect 24 1 19 1; +#X connect 25 0 7 0; +#X connect 25 1 7 1; +#X connect 26 0 10 0; +#X connect 27 0 20 0; +#X connect 28 0 18 0; +#X connect 29 0 0 1; +#X connect 30 0 11 0; +#X connect 31 0 36 0; +#X connect 32 0 19 0; +#X connect 33 0 2 0; +#X connect 36 0 1 0; +#X connect 37 0 12 0; +#X connect 37 0 6 0; +#X restore 392 44 pd control; +#X obj 165 705 tabreceive~ \$0-hanning; #X connect 0 0 2 1; #X connect 1 0 2 0; -#X connect 2 0 65 0; -#X connect 2 0 25 0; +#X connect 2 0 18 0; +#X connect 2 0 34 0; #X connect 3 0 5 1; #X connect 4 0 5 0; -#X connect 5 0 66 0; -#X connect 5 0 25 1; -#X connect 6 0 57 1; -#X connect 7 0 57 0; +#X connect 5 0 18 1; +#X connect 5 0 35 0; +#X connect 6 0 25 1; +#X connect 7 0 25 0; #X connect 8 0 10 1; #X connect 9 0 10 0; -#X connect 10 0 58 1; -#X connect 10 0 54 0; -#X connect 10 0 54 1; -#X connect 11 0 55 1; -#X connect 12 0 26 0; +#X connect 10 0 26 1; +#X connect 10 0 22 0; +#X connect 10 0 22 1; +#X connect 11 0 23 1; +#X connect 12 0 19 0; #X connect 13 0 1 1; #X connect 13 0 3 1; #X connect 13 1 0 1; @@ -229,323 +174,304 @@ #X connect 14 1 6 1; #X connect 14 1 8 1; #X connect 15 0 14 0; -#X connect 16 0 72 0; -#X connect 17 0 44 0; -#X connect 18 0 37 0; -#X connect 18 0 45 0; -#X connect 18 0 70 0; -#X connect 19 0 34 0; -#X connect 20 0 22 0; -#X connect 21 0 22 0; -#X connect 21 1 22 1; -#X connect 22 0 32 0; -#X connect 23 0 13 0; -#X connect 24 0 12 0; -#X connect 25 0 24 1; -#X connect 28 0 27 0; -#X connect 30 0 18 0; -#X connect 31 0 27 0; -#X connect 31 0 50 0; -#X connect 31 0 83 0; -#X connect 32 0 43 2; -#X connect 32 0 38 1; -#X connect 34 0 21 0; -#X connect 35 0 68 0; -#X connect 36 0 39 0; -#X connect 36 0 18 1; -#X connect 37 0 18 1; -#X connect 38 0 37 1; -#X connect 39 0 69 0; -#X connect 40 0 43 1; -#X connect 41 0 43 0; -#X connect 41 1 40 0; -#X connect 42 0 31 0; -#X connect 43 0 42 0; -#X connect 44 0 45 1; -#X connect 45 0 41 0; -#X connect 47 0 49 0; -#X connect 49 0 50 1; -#X connect 50 0 82 0; -#X connect 53 0 9 0; -#X connect 53 0 6 0; -#X connect 54 0 55 0; -#X connect 55 0 56 0; -#X connect 56 0 58 0; -#X connect 56 0 59 0; -#X connect 57 0 59 1; -#X connect 57 0 11 0; -#X connect 57 0 11 1; -#X connect 58 0 1 0; -#X connect 58 0 4 0; -#X connect 59 0 0 0; -#X connect 59 0 3 0; -#X connect 60 0 7 0; -#X connect 60 0 8 0; -#X connect 61 0 24 0; -#X connect 62 0 63 0; -#X connect 62 1 64 1; -#X connect 63 0 64 0; -#X connect 64 0 61 0; -#X connect 67 0 10 0; -#X connect 68 0 38 0; -#X connect 71 0 47 0; -#X connect 71 0 40 1; -#X connect 72 0 71 0; -#X connect 73 0 74 0; -#X connect 74 0 75 0; -#X connect 75 0 76 0; -#X connect 76 0 77 0; -#X connect 77 0 78 0; -#X connect 77 0 80 0; -#X connect 78 0 72 0; -#X connect 78 1 72 1; -#X connect 79 0 62 0; -#X connect 81 0 23 1; -#X connect 81 0 15 1; -#X connect 81 0 12 1; -#X connect 82 0 23 0; -#X connect 83 0 15 0; -#X connect 84 0 85 0; -#X restore 291 222 pd fft-analysis; -#X msg 203 187 bang; -#X obj 38 225 samplerate~; -#X obj 38 247 s sample-rate; -#N canvas 260 23 647 768 phase-tables 0; -#N canvas 0 0 450 300 graph2 0; -#X array phase-imag 4096 float 0; -#X coords 0 1 4096 -1 400 300 1; -#X restore 234 396 graph; -#N canvas 0 0 450 300 graph3 0; -#X array phase-real 4096 float 0; -#X coords 0 1 4096 -1 400 300 1; -#X restore 232 23 graph; -#X msg 229 769 \; phase-real resize 4096 \; phase-imag resize 4096 -; -#X restore 681 423 pd phase-tables; -#N canvas 138 111 767 761 hanning-window 0; -#X obj 125 281 phasor~; -#X obj 125 319 cos~; -#X obj 31 448 tabwrite~ hanning; -#X obj 41 345 -~; -#X obj 38 298 sig~ 1; -#X msg 51 246 0; -#X text 193 19 CALCULATE HANNING; -#X text 193 37 WINDOW TABLE; -#N canvas 0 0 450 300 graph1 0; -#X array hanning 4096 float 0; -#X coords 0 1 4096 -1 400 300 1; -#X restore 375 384 graph; -#X obj 126 233 sig~; -#X text 239 202 sample rate / window size; -#X msg 31 196 bang; -#X obj 90 367 sig~ 0.5; -#X obj 67 409 *~; -#X obj 128 109 samplerate~; -#X obj 34 31 r window-size; +#X connect 16 0 13 0; +#X connect 17 0 12 0; +#X connect 18 0 17 0; +#X connect 20 0 21 0; +#X connect 20 0 32 0; +#X connect 21 0 31 0; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 24 0 26 0; +#X connect 24 0 27 0; +#X connect 25 0 27 1; +#X connect 25 0 11 0; +#X connect 25 0 11 1; +#X connect 26 0 1 0; +#X connect 26 0 4 0; +#X connect 27 0 0 0; +#X connect 27 0 3 0; +#X connect 28 0 17 1; +#X connect 29 0 10 0; +#X connect 31 0 16 0; +#X connect 32 0 15 0; +#X connect 33 0 16 1; +#X connect 33 0 15 1; +#X connect 36 0 7 0; +#X connect 36 0 8 0; +#X connect 37 0 9 0; +#X connect 37 0 6 0; +#X connect 38 0 30 0; +#X connect 39 0 28 0; +#X connect 40 0 39 0; +#X connect 41 0 20 0; +#X connect 41 1 21 1; +#X connect 42 0 12 1; +#X restore 155 329 pd fft-analysis; +#X obj 296 499 outlet~; +#N canvas 536 50 293 373 length 0; +#X msg 85 262 resize \$1; +#X obj 67 63 clip 1 60; +#X obj 99 229 samplerate~; +#X obj 67 193 t f b; +#X obj 67 229 *; +#X obj 99 128 s \$0-length-ms; +#X obj 99 100 * 1000; +#X obj 85 288 s \$0-output; +#X obj 67 323 s \$0-maxoutsize; +#X obj 67 28 r \$0-length; +#X connect 0 0 7 0; +#X connect 1 0 3 0; +#X connect 1 0 6 0; +#X connect 2 0 4 1; +#X connect 3 0 4 0; +#X connect 3 1 2 0; +#X connect 4 0 0 0; +#X connect 4 0 8 0; +#X connect 6 0 5 0; +#X connect 9 0 1 0; +#X restore 525 141 pd length; +#X obj 499 437 r \$0-length-ms; +#X obj 438 433 timer; +#X obj 470 406 metro 100; +#X obj 406 360 t b b; +#X obj 438 329 sel 1; +#X obj 481 467 /; +#X obj 481 499 outlet; +#N canvas 146 172 310 442 see-loc 0; +#X obj 86 372 outlet; +#X obj 72 139 t b f; +#X obj 86 332 f; +#X obj 72 272 del 100, f 3; +#X obj 40 239 t b b; +#X obj 40 202 sel 1; +#X msg 222 149 1; +#X msg 208 118 0; +#X obj 84 174 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 40 173 int 1; +#X obj 73 58 r \$0-location; +#X obj 87 93 r \$0-see-location; +#X connect 1 0 9 0; +#X connect 1 1 2 1; +#X connect 2 0 0 0; +#X connect 3 0 6 0; +#X connect 3 0 2 0; +#X connect 4 0 7 0; +#X connect 4 1 3 0; +#X connect 5 0 4 0; +#X connect 6 0 8 0; +#X connect 7 0 8 0; +#X connect 8 0 9 1; +#X connect 9 0 5 0; +#X connect 10 0 1 0; +#X connect 11 0 1 0; +#X restore 613 400 pd see-loc; +#X obj 613 499 outlet; +#X obj 631 433 r \$0-length-ms; +#X obj 613 463 /; +#X obj 778 224 r \$0-save; +#X obj 801 333 r \$0-save-normalized; +#X obj 129 126 r \$0-run; +#X obj 219 122 r \$0-start; +#X obj 314 297 r \$0-hear; +#X obj 131 237 b; +#X obj 314 327 tabplay~ \$0-output, f 9; +#X obj 134 387 tabwrite~ \$0-output; +#X obj 778 275 list append \$0-output; +#X obj 801 384 list append \$0-output; +#X obj 742 140 openpanel; +#X obj 742 112 r \$0-read; +#X msg 742 197 read -resize \$1 \$2; +#X obj 742 169 list append \$0-input; +#X obj 438 305 r \$0-running; +#X msg 778 301 write \$1 \$2; +#X msg 801 409 write \$1 \$2; +#N canvas 404 465 524 247 init 0; +#N canvas 566 82 696 526 hanning-window 0; +#X obj 105 281 phasor~; +#X obj 105 309 cos~; +#X msg 63 238 0; +#N canvas 0 0 450 300 (subpatch) 0; +#X array \$0-hanning 2048 float 0; +#X coords 0 1 2047 0 400 150 1 0 0; +#X restore 212 221 graph; +#X obj 105 149 samplerate~; #X obj 34 72 t b f; -#X msg 375 746 \; hanning resize 4096; -#X obj 126 180 /; +#X obj 105 230 /; +#X obj 34 416 tabwrite~ \$0-hanning; +#X obj 34 31 r \$0-window-size; +#X text 193 19 CALCULATE HANNING WINDOW TABLE, f 17; +#X obj 105 336 *~ -0.5; +#X obj 105 361 +~ 0.5; #X connect 0 0 1 0; -#X connect 1 0 3 1; -#X connect 3 0 13 0; -#X connect 4 0 3 0; -#X connect 5 0 0 1; -#X connect 9 0 0 0; -#X connect 11 0 2 0; -#X connect 11 0 5 0; -#X connect 12 0 13 1; -#X connect 13 0 2 0; -#X connect 14 0 18 0; +#X connect 1 0 10 0; +#X connect 2 0 0 1; +#X connect 4 0 6 0; +#X connect 5 0 4 0; +#X connect 5 0 2 0; +#X connect 5 0 7 0; +#X connect 5 1 6 1; +#X connect 6 0 0 0; +#X connect 8 0 5 0; +#X connect 10 0 11 0; +#X connect 11 0 7 0; +#X restore 224 145 pd hanning-window; +#X obj 224 93 table \$0-phase-real 1024; +#X obj 224 118 table \$0-phase-imag 1024; +#X obj 58 35 loadbang; +#X obj 58 59 f \$0; +#X msg 58 95 \; \$1-window-size 2048 \; \$1-length-set 10 \; \$1-transpo-set +-300 \; \$1-speed-set 20; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X restore 529 89 pd init \; tables; +#N canvas 559 92 586 577 run 0; +#X obj 372 190 samplerate~; +#X obj 90 400 delay; +#X obj 379 341 timer; +#X obj 379 371 * 44.1; +#X obj 411 312 sel 1; +#X obj 379 450 moses; +#X obj 122 369 / 44.1; +#X obj 379 135 f; +#X obj 379 75 r \$0-start-loc; +#X obj 411 253 r \$0-stop; +#X obj 90 428 s \$0-stop; +#X obj 185 367 pack \$0 f; +#X msg 185 395 \; \$1-running 1 \; \$1-output resize \$2 \; pd dsp +1; +#X obj 411 284 v \$0-running; +#X obj 379 501 send \$0-output; +#X msg 379 475 resize \$1; +#X obj 395 423 s \$0-running; +#X msg 395 398 0; +#X obj 185 46 inlet; +#X obj 245 328 r \$0-maxoutsize; +#X obj 430 451 r \$0-maxoutsize; +#X obj 379 161 s \$0-location; +#X obj 372 216 s \$0-sample-rate; +#X obj 379 106 *; +#X obj 412 103 r \$0-length-ms; +#X connect 0 0 22 0; +#X connect 1 0 10 0; +#X connect 2 0 3 0; +#X connect 3 0 5 0; +#X connect 3 0 17 0; +#X connect 4 0 2 1; +#X connect 5 0 15 0; +#X connect 6 0 1 1; +#X connect 7 0 21 0; +#X connect 8 0 23 0; +#X connect 9 0 13 0; +#X connect 11 0 12 0; +#X connect 13 0 4 0; +#X connect 15 0 14 0; +#X connect 17 0 16 0; +#X connect 18 0 2 0; +#X connect 18 0 7 0; +#X connect 18 0 11 0; +#X connect 18 0 0 0; +#X connect 18 0 1 0; +#X connect 19 0 6 0; +#X connect 19 0 11 1; +#X connect 20 0 5 1; +#X connect 23 0 7 0; +#X connect 24 0 23 1; +#X restore 155 270 pd run; +#X obj 54 53 r \$0-transpo; +#X obj 108 99 r \$0-speed; +#X obj 86 76 r \$0-location; +#X connect 0 0 29 0; +#X connect 1 0 2 0; +#X connect 1 0 26 0; +#X connect 2 0 1 1; +#X connect 3 0 1 1; +#X connect 4 0 8 0; +#X connect 6 0 30 0; +#X connect 7 0 4 0; +#X connect 7 0 28 0; +#X connect 10 0 15 1; +#X connect 11 0 15 0; +#X connect 12 0 11 1; +#X connect 13 0 12 0; +#X connect 13 1 11 0; +#X connect 14 0 13 0; +#X connect 14 1 12 0; #X connect 15 0 16 0; -#X connect 16 0 14 0; -#X connect 16 0 11 0; -#X connect 16 1 18 1; -#X connect 18 0 9 0; -#X restore 681 447 pd hanning-window; -#X obj 100 335 delay; -#X obj 160 332 + 100; -#X obj 139 51 route read run start hear save stop; -#X obj 895 245 timer; -#X obj 895 269 * 44.1; -#X obj 232 314 r maxoutsize; -#X obj 217 338 f; -#X msg 217 360 \; array2 resize \$1; -#X msg 100 358 \; action stop; -#X obj 186 30 r action; -#X obj 910 172 r running; -#X obj 894 195 f; -#X obj 894 219 sel 1; -#X obj 895 344 moses; -#X obj 946 345 r maxoutsize; -#X msg 895 366 \; array2 resize \$1; -#X msg 918 293 \; running 0; -#X msg 293 277 \; running 1; -#X obj 160 310 / 44.1; -#X msg 751 10 bang; -#X obj 277 92 r location; -#X obj 277 115 r speed; -#X obj 278 137 r transpo; -#X msg 43 283 \; pd dsp 1; -#X obj 503 414 int; -#X connect 0 0 1 0; -#X connect 1 0 27 0; -#X connect 2 0 39 0; -#X connect 4 0 15 0; -#X connect 5 0 4 1; -#X connect 6 0 5 0; -#X connect 7 0 8 0; -#X connect 8 0 18 0; -#X connect 9 0 10 0; -#X connect 9 0 32 0; -#X connect 10 0 9 1; -#X connect 11 0 9 1; -#X connect 14 0 4 0; -#X connect 15 0 3 0; -#X connect 15 0 3 1; -#X connect 15 0 20 0; -#X connect 16 0 17 0; -#X connect 17 0 14 1; -#X connect 18 0 19 0; -#X connect 20 0 61 0; -#X connect 21 0 23 0; -#X connect 21 1 7 0; -#X connect 22 0 25 0; -#X connect 23 0 24 0; -#X connect 24 0 22 0; +#X connect 17 0 20 0; +#X connect 19 0 20 1; +#X connect 20 0 18 0; +#X connect 21 0 0 0; +#X connect 22 0 6 0; +#X connect 23 0 2 0; +#X connect 23 0 26 0; +#X connect 24 0 3 0; +#X connect 25 0 27 0; #X connect 26 0 28 0; -#X connect 27 0 26 0; -#X connect 29 0 30 0; -#X connect 31 0 13 0; -#X connect 31 0 14 0; -#X connect 32 0 33 0; -#X connect 32 0 37 0; -#X connect 32 0 40 0; -#X connect 32 0 43 0; -#X connect 32 0 13 0; -#X connect 32 0 54 0; -#X connect 32 0 60 0; -#X connect 33 0 34 0; -#X connect 37 0 45 0; -#X connect 38 0 37 1; -#X connect 39 0 0 0; -#X connect 39 1 10 0; -#X connect 39 1 32 0; -#X connect 39 2 11 0; -#X connect 39 3 16 0; -#X connect 39 4 21 0; -#X connect 39 5 56 0; -#X connect 40 0 41 0; -#X connect 41 0 53 0; -#X connect 41 0 50 0; -#X connect 42 0 43 1; -#X connect 42 0 55 0; -#X connect 43 0 44 0; -#X connect 46 0 39 0; -#X connect 47 0 48 1; -#X connect 48 0 49 0; -#X connect 49 0 40 1; -#X connect 50 0 52 0; -#X connect 51 0 50 1; -#X connect 55 0 38 0; -#X connect 56 0 48 0; -#X connect 57 0 9 0; -#X connect 58 0 9 0; -#X connect 59 0 9 0; -#X connect 61 0 12 0; -#X restore 30 290 pd guts; -#X msg 30 164 run the transformation; -#X msg 30 227 hear the output buffer again; -#X text 30 124 click below to:; -#X msg 30 248 save the output buffer; -#X floatatom 30 311 0 0 0; -#X msg 30 143 read an input file; -#X msg 30 269 save normalized to max amplitude; -#N canvas 213 187 495 352 input-sample 0; -#N canvas 0 0 450 300 graph1 0; -#X array array1 63024 float 0; -#X coords 0 1 63023 -1 400 300 1; -#X restore 55 22 graph; -#X text 146 379 INPUT SAMPLE; -#X restore 41 401 pd input-sample; -#N canvas 192 180 507 343 output-sample 0; -#N canvas 0 0 450 300 graph2 0; -#X array array2 2.646e+06 float 0; -#X coords 0 1 2.646e+06 -1 400 300 1; -#X restore 58 13 graph; -#X text 155 375 OUTPUT SAMPLE; -#X restore 41 426 pd output-sample; -#X floatatom 385 382 0 0 120; -#N canvas 194 37 397 591 output 0; -#X obj 64 196 t b; -#X obj 64 147 f; -#X obj 64 99 inlet; -#X text 68 78 mute; -#X obj 64 220 f; -#X msg 130 235 0; -#X msg 64 123 bang; -#X obj 64 172 moses 1; -#X obj 130 211 t b f; -#X obj 93 427 outlet; -#X msg 93 403 set \$1; -#X obj 180 158 moses 1; -#X obj 217 429 dbtorms; -#X obj 217 454 pack 0 100; -#X obj 180 133 r master-lvl; -#X obj 93 369 r master-lvl; -#X obj 80 276 s master-lvl; -#X obj 217 478 s master-amp; -#X obj 201 235 loadbang; -#X msg 201 260 \; master-lvl 90; -#X connect 0 0 4 0; -#X connect 1 0 7 0; -#X connect 2 0 6 0; -#X connect 4 0 16 0; -#X connect 5 0 16 0; -#X connect 6 0 1 0; -#X connect 7 0 0 0; -#X connect 7 1 8 0; -#X connect 8 0 5 0; -#X connect 10 0 9 0; -#X connect 11 1 4 1; -#X connect 12 0 13 0; -#X connect 13 0 17 0; -#X connect 14 0 1 1; -#X connect 14 0 11 0; -#X connect 15 0 10 0; -#X connect 15 0 12 0; -#X connect 18 0 19 0; -#X restore 385 361 pd output; -#X msg 385 340 mute; -#X obj 385 403 s master-lvl; -#X text 427 339 <-- mute button; -#X text 422 381 <--set me; -#X text 385 423 LINE OUT LEVEL in dB (100 norm); -#X text 14 25 This is a Fourier-based analysis/resynthesis tool.; -#X text 22 45 You can move forward or backward in the sample \, or -"freeze" at any point using the "precession" and "location" controls. -Transposition is in hundredths of a half-tone.; -#X msg 30 185 start transformation when I change controls; -#X msg 30 206 stop the transformation; -#X text 731 329 examples:; -#X msg 614 94 -40; -#X connect 0 0 5 0; -#X connect 1 0 4 1; -#X connect 2 0 4 0; -#X connect 3 0 2 0; -#X connect 3 1 1 0; -#X connect 6 0 7 0; -#X connect 7 0 0 0; -#X connect 23 0 25 0; -#X connect 26 0 23 0; -#X connect 29 0 34 0; -#X connect 30 0 29 0; -#X connect 31 0 29 0; -#X connect 33 0 29 0; -#X connect 35 0 29 0; -#X connect 36 0 29 0; -#X connect 39 0 42 0; -#X connect 40 0 39 0; -#X connect 41 0 40 0; -#X connect 48 0 29 0; -#X connect 49 0 29 0; -#X connect 51 0 2 0; +#X connect 26 0 39 0; +#X connect 27 0 4 1; +#X connect 29 0 36 0; +#X connect 30 0 37 0; +#X connect 31 0 34 0; +#X connect 32 0 31 0; +#X connect 33 0 5 0; +#X connect 34 0 33 0; +#X connect 35 0 14 0; +#X connect 36 0 5 0; +#X connect 37 0 5 0; +#X connect 40 0 1 0; +#X connect 41 0 1 0; +#X connect 42 0 1 0; +#X restore 363 394 pd guts; +#X obj 305 443 output~; +#X floatatom 545 219 7 0 1 0 - \$0-start-loc-set \$0-start-loc 16; +#X text 625 157 Transposition in cents; +#X text 625 190 Speed in hundredths; +#X obj 412 455 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 #fcfcfc +#000000 #000000 0 1; +#X obj 412 424 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 #fcfcfc +#000000 #000000 0 1; +#X text 63 146 click below to:; +#X obj 151 183 bng 18 250 50 0 \$0-read dummy Read -38 9 0 13 #dfdfdf +#000000 #202020; +#X obj 151 207 bng 18 250 50 0 \$0-run dummy Run -31 9 0 13 #dfdfdf +#000000 #000000; +#X obj 151 232 bng 18 250 50 0 \$0-start dummy Start -46 9 0 13 #dfdfdf +#000000 #000000; +#X obj 151 279 bng 18 250 50 0 \$0-hear dummy Hear -40 9 0 13 #dfdfdf +#000000 #000000; +#X obj 151 303 bng 18 250 50 0 \$0-save dummy Save -40 9 0 13 #dfdfdf +#000000 #000000; +#X obj 151 328 bng 18 250 50 0 \$0-save-normalized dummy Normalized +-87 9 0 13 #dfdfdf #000000 #000000; +#X text 180 182 (read an input file); +#X text 180 206 (run the transformation); +#X text 180 278 (hear the output sample); +#X text 180 302 (save the output sample); +#X text 180 327 (save the output sample normalized to 1); +#X text 180 231 (start transformation when I change controls); +#X obj 151 255 bng 18 250 50 0 \$0-stop dummy Stop -40 9 0 13 #dfdfdf +#000000 #000000; +#X text 180 254 (stop the transformation); +#X obj 572 301 table \$0-input; +#X obj 566 329 table \$0-output; +#X text 682 302 input sample; +#X text 682 328 output sample; +#X text 548 422 current read location; +#X text 551 454 current buffer recording; +#X obj 690 16 declare -stdpath ./; +#X text 625 222 Set location in sample (0-1); +#X text 48 55 This is a Fourier-based analysis/resynthesis tool. You +can perform pitch shift in cents and perform a time stretch or compress +with a speed parameter. The sample can move forward (positive speed) +\, backward (negatie speed) or "freeze" at any point (0 speed). The +location control sets the start location but also sets the location +while running the transformation. The length is a maximum recording +length \, you can stop before and it'll resize the buffer so you can +export a .wav file., f 113; +#X text 625 255 Set buffer length in seconds (1-60); +#X connect 4 0 5 0; +#X connect 4 0 5 1; +#X connect 4 1 9 0; +#X connect 4 2 10 0; diff -Nru puredata-0.52.1+ds0/doc/7.stuff/soundfile-tools/4.looper.pd puredata-0.52.2+ds0/doc/7.stuff/soundfile-tools/4.looper.pd --- puredata-0.52.1+ds0/doc/7.stuff/soundfile-tools/4.looper.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/7.stuff/soundfile-tools/4.looper.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,97 +1,67 @@ -#N canvas 0 16 878 417 12; -#N canvas 213 187 495 352 input-sample 0; -#N canvas 0 0 450 300 graph1 0; -#X array array1 63024 float 0; -#X coords 0 1 63023 -1 400 300 1; -#X restore 56 23 graph; -#X text 151 393 INPUT SAMPLE; -#X restore 143 301 pd input-sample; -#N canvas 192 180 507 343 output-sample 0; -#N canvas 0 0 450 300 graph2 0; -#X array array2 441000 float 0; -#X coords 0 1 440999 -1 400 300 1; -#X restore 60 13 graph; -#X text 161 388 OUTPUT SAMPLE; -#X restore 143 325 pd output-sample; -#N canvas 41 102 912 552 guts 0; -#X msg 25 133 bang; -#X obj 15 468 openpanel; -#X obj 144 28 inlet; -#X obj 478 392 dac~; -#X obj 478 342 *~; -#X obj 494 301 line~; -#X obj 494 276 r master-amp; -#X msg 759 352 bang; -#X obj 759 377 savepanel; -#X obj 274 203 spigot; -#X msg 248 133 0; -#X msg 281 133 1; -#X obj 555 384 outlet; -#X obj 268 325 tabwrite~ array2; -#X msg 262 232 bang; -#X obj 456 312 +~; -#X obj 478 367 hip~ 7; -#X msg 480 228 bang; -#X obj 480 253 tabplay~ array2; -#X msg 759 402 write \$1 array2; -#X obj 759 427 soundfiler; -#N canvas 92 118 921 631 audio-transformation 0; -#X obj 320 509 outlet~; -#X obj 221 41 r transposition; -#X obj 287 175 r looplength; -#X obj 221 66 / 120; -#X obj 235 139 pow; -#X obj 221 91 t b f; -#X msg 221 115 2; -#X text 305 107 2 to the power (octaves); -#X text 304 123 gives speed change for the; -#X text 305 141 desired transposition; -#X text 280 65 transposition in octaves; -#X obj 470 264 * 441; -#X floatatom 470 234 0 0 0; -#X obj 426 352 samphold~; -#X obj 545 335 -~ 0.5; -#X obj 545 461 clip~ -0.5 0.5; -#X obj 545 437 *~ 1; -#X obj 545 486 cos~; -#X obj 545 365 wrap~; -#X obj 545 400 -~ 0.5; -#X obj 545 532 *~ -0.5; -#X obj 545 508 -~ 1; -#X floatatom 617 406 0 0 0; -#X obj 601 254 r smoothing; -#X obj 470 208 r startpoint; -#X obj 617 431 max 1; -#X obj 602 308 max 0.001; -#X obj 602 334 t b f; -#X obj 602 358 1; -#X obj 617 382 /; -#X obj 320 482 *~; -#X obj 320 456 tabread4~ array1; -#X obj 320 430 +~; -#X obj 227 472 print~; -#X msg 227 443 bang; -#X obj 601 61 loadbang; -#X msg 598 91 \; transposition 0 \; looplength 0 \; startpoint 0 \; +#N canvas 449 86 995 460 12; +#X declare -stdpath ./; +#N canvas 373 178 1040 659 guts 0; +#X obj 274 243 spigot; +#X msg 248 173 0; +#X msg 281 173 1; +#X obj 456 352 +~; +#N canvas 325 131 667 659 audio-transformation 0; +#X obj 178 601 outlet~; +#X obj 128 54 r transposition; +#X obj 167 191 r looplength; +#X obj 118 82 / 120; +#X obj 132 155 pow; +#X obj 118 107 t b f; +#X msg 118 131 2; +#X text 202 123 2 to the power (octaves); +#X text 201 139 gives speed change for the; +#X text 202 157 desired transposition; +#X text 177 81 transposition in octaves; +#X obj 241 281 * 441; +#X floatatom 241 251 0 0 0 0 - - - 0; +#X obj 197 364 samphold~; +#X obj 322 351 -~ 0.5; +#X obj 322 477 clip~ -0.5 0.5; +#X obj 322 453 *~ 1; +#X obj 322 502 cos~; +#X obj 322 381 wrap~; +#X obj 322 416 -~ 0.5; +#X obj 322 548 *~ -0.5; +#X obj 322 524 -~ 1; +#X floatatom 394 422 0 0 0 0 - - - 0; +#X obj 378 270 r smoothing; +#X obj 241 225 r startpoint; +#X obj 394 447 max 1; +#X obj 379 324 max 0.001; +#X obj 379 350 t b f; +#X obj 379 374 1; +#X obj 394 398 /; +#X obj 178 454 *~; +#X obj 178 402 +~; +#X obj 449 73 loadbang; +#X msg 449 103 \; transposition 0 \; looplength 0 \; startpoint 0 \; smoothing 0; -#X obj 236 263 loop~; -#X obj 285 233 * 441; -#X obj 284 307 *~; -#X obj 133 41 loadbang; -#X obj 78 174 r running; -#X obj 78 203 sel 1; -#X obj 602 282 * 0.01; -#X obj 286 202 max 0.01; +#X obj 133 279 loop~; +#X obj 165 249 * 441; +#X obj 135 327 *~; +#X obj 119 27 loadbang; +#X obj 61 201 r running; +#X obj 61 230 sel 1; +#X obj 379 298 * 0.01; +#X obj 166 218 max 0.01; +#X obj 178 428 tabread4~ \$0-input; +#X obj 179 559 *~; +#X obj 197 531 r running; #X connect 1 0 3 0; -#X connect 2 0 44 0; +#X connect 2 0 41 0; #X connect 3 0 5 0; -#X connect 4 0 37 0; +#X connect 4 0 34 0; #X connect 5 0 6 0; #X connect 5 1 4 1; #X connect 6 0 4 0; #X connect 11 0 13 0; #X connect 12 0 11 0; -#X connect 13 0 32 1; +#X connect 13 0 31 1; #X connect 14 0 18 0; #X connect 15 0 17 0; #X connect 16 0 15 0; @@ -101,7 +71,7 @@ #X connect 20 0 30 1; #X connect 21 0 20 0; #X connect 22 0 25 0; -#X connect 23 0 43 0; +#X connect 23 0 40 0; #X connect 24 0 12 0; #X connect 25 0 16 1; #X connect 26 0 27 0; @@ -109,230 +79,184 @@ #X connect 27 1 29 1; #X connect 28 0 29 0; #X connect 29 0 22 0; -#X connect 30 0 0 0; -#X connect 31 0 30 0; -#X connect 32 0 31 0; +#X connect 30 0 43 0; +#X connect 31 0 42 0; #X connect 32 0 33 0; -#X connect 34 0 33 0; -#X connect 35 0 36 0; -#X connect 37 0 13 1; -#X connect 37 0 39 0; -#X connect 37 0 14 0; -#X connect 37 1 39 1; -#X connect 38 0 37 1; -#X connect 39 0 32 0; -#X connect 40 0 3 0; -#X connect 41 0 42 0; -#X connect 42 0 37 0; -#X connect 43 0 26 0; -#X connect 44 0 38 0; -#X restore 274 283 pd audio-transformation; -#X obj 553 331 env~ 16384; -#X obj 665 317 route normalized; -#X msg 667 457 write -normalize \$1 array2; -#X msg 667 407 bang; -#X obj 667 432 savepanel; -#X obj 667 482 soundfiler; -#X obj 15 518 soundfiler; -#X msg 15 493 read -resize -maxsize 1e+06 \$1 array1; -#X obj 330 100 r transposition; -#X obj 330 125 r looplength; -#X obj 330 175 r smoothing; -#X obj 708 110 timer; -#X obj 708 135 * 44.1; -#X obj 724 37 r running; -#X obj 708 60 f; -#X obj 708 85 sel 1; -#X obj 708 227 moses; -#X obj 753 227 r maxoutsize; -#X msg 708 252 \; array2 resize \$1; -#X msg 685 37 bang; -#X obj 144 53 route read run start hear save stop; -#X obj 312 427 delay; -#X obj 331 404 + 100; -#X obj 145 329 r maxoutsize; -#X obj 86 329 f; -#X msg 86 354 \; array2 resize \$1; -#X msg 312 452 \; action stop; -#X obj 331 379 / 44.1; -#X msg 62 271 \; pd dsp 1; -#X msg 334 240 \; running 1; -#X obj 202 28 r action; -#X msg 733 160 \; running 0 \; pd dsp 0; -#X obj 330 150 r startpoint; -#X obj 553 357 int; +#X connect 34 0 13 1; +#X connect 34 0 36 0; +#X connect 34 0 14 0; +#X connect 34 1 36 1; +#X connect 35 0 34 1; +#X connect 36 0 31 0; +#X connect 37 0 3 0; +#X connect 38 0 39 0; +#X connect 39 0 34 0; +#X connect 40 0 26 0; +#X connect 41 0 35 0; +#X connect 42 0 30 0; +#X connect 43 0 0 0; +#X connect 44 0 43 1; +#X restore 297 295 pd audio-transformation; +#X obj 330 140 r transposition; +#X obj 330 165 r looplength; +#X obj 330 215 r smoothing; +#X obj 611 234 timer; +#X obj 611 259 * 44.1; +#X obj 629 159 r running; +#X obj 611 184 f; +#X obj 611 209 sel 1; +#X obj 611 351 moses; +#X obj 656 351 r maxoutsize; +#X obj 270 538 delay; +#X obj 302 511 + 100; +#X obj 302 453 r maxoutsize; +#X obj 302 486 / 44.1; +#X obj 330 190 r startpoint; +#X obj 456 416 outlet~; +#X obj 262 272 b; +#X obj 807 282 savepanel; +#X obj 807 474 soundfiler; +#X obj 830 391 savepanel; +#X obj 807 256 r \$0-save; +#X obj 830 365 r \$0-save-normalized; +#X obj 807 307 list append \$0-output; +#X obj 830 416 list append \$0-output; +#X obj 771 172 openpanel; +#X obj 771 144 r \$0-read; +#X msg 771 229 read -resize \$1 \$2; +#X obj 771 201 list append \$0-input; +#X msg 807 333 write \$1 \$2; +#X msg 830 441 write \$1 \$2; +#X obj 611 135 r \$0-stop; +#X obj 475 268 r \$0-hear; +#X obj 196 116 r \$0-run; +#X obj 282 107 r \$0-start; +#X obj 270 566 s \$0-stop; +#X obj 474 321 tabplay~ \$0-output; +#X obj 611 404 s \$0-output; +#X msg 611 376 resize \$1; +#X obj 298 362 tabwrite~ \$0-output; +#X obj 111 501 pack \$0 f; +#X msg 111 531 \; pd dsp 1 \; running 1 \; \$1-output resize \$2; +#X msg 631 288 \; running 0; #X connect 0 0 1 0; -#X connect 1 0 29 0; -#X connect 2 0 42 0; -#X connect 4 0 16 0; -#X connect 5 0 4 1; -#X connect 6 0 5 0; -#X connect 7 0 8 0; -#X connect 8 0 19 0; -#X connect 9 0 10 0; -#X connect 9 0 14 0; -#X connect 10 0 9 1; -#X connect 11 0 9 1; -#X connect 14 0 13 0; -#X connect 14 0 46 0; -#X connect 14 0 43 0; -#X connect 14 0 50 0; -#X connect 14 0 51 0; -#X connect 14 0 33 0; -#X connect 15 0 4 0; -#X connect 15 0 22 0; -#X connect 16 0 3 0; -#X connect 16 0 3 1; +#X connect 0 0 21 0; +#X connect 1 0 0 1; +#X connect 2 0 0 1; +#X connect 3 0 20 0; +#X connect 4 0 3 0; +#X connect 4 0 43 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 9 0; +#X connect 9 0 46 0; +#X connect 9 0 13 0; +#X connect 10 0 11 1; +#X connect 11 0 12 0; +#X connect 12 0 8 1; +#X connect 13 0 42 0; +#X connect 14 0 13 1; +#X connect 15 0 39 0; +#X connect 16 0 15 1; #X connect 17 0 18 0; -#X connect 18 0 15 1; -#X connect 19 0 20 0; -#X connect 21 0 13 0; +#X connect 17 0 44 1; +#X connect 18 0 16 0; +#X connect 19 0 0 0; #X connect 21 0 15 0; -#X connect 22 0 55 0; -#X connect 23 0 25 0; -#X connect 23 1 7 0; -#X connect 24 0 27 0; -#X connect 25 0 26 0; +#X connect 21 0 8 0; +#X connect 21 0 43 0; +#X connect 21 0 44 0; +#X connect 22 0 27 0; +#X connect 24 0 28 0; +#X connect 25 0 22 0; #X connect 26 0 24 0; -#X connect 29 0 28 0; -#X connect 30 0 9 0; -#X connect 31 0 9 0; -#X connect 32 0 9 0; -#X connect 33 0 34 0; -#X connect 34 0 53 0; -#X connect 34 0 38 0; -#X connect 35 0 36 1; -#X connect 36 0 37 0; -#X connect 37 0 33 1; -#X connect 38 0 40 0; -#X connect 39 0 38 1; -#X connect 41 0 36 0; -#X connect 42 0 0 0; -#X connect 42 1 14 0; -#X connect 42 1 10 0; -#X connect 42 2 11 0; -#X connect 42 3 17 0; -#X connect 42 4 23 0; -#X connect 42 5 41 0; -#X connect 43 0 48 0; -#X connect 44 0 43 1; -#X connect 45 0 46 1; -#X connect 45 0 49 0; -#X connect 46 0 47 0; -#X connect 49 0 44 0; -#X connect 52 0 42 0; -#X connect 54 0 9 0; -#X connect 55 0 12 0; -#X restore 19 228 pd guts; -#X msg 19 96 run the transformation; -#X msg 19 163 hear the output buffer again; -#X text 19 55 click below to:; -#X msg 19 185 save the output buffer; -#X floatatom 367 337 0 0 120; -#N canvas 194 37 397 591 output 0; -#X obj 66 203 t b; -#X obj 66 152 f; -#X obj 66 102 inlet; -#X text 71 81 mute; -#X obj 66 228 f; -#X msg 134 244 0; -#X msg 66 127 bang; -#X obj 66 178 moses 1; -#X obj 134 218 t b f; -#X obj 96 442 outlet; -#X msg 96 416 set \$1; -#X obj 186 163 moses 1; -#X obj 224 444 dbtorms; -#X obj 224 469 pack 0 100; -#X obj 186 138 r master-lvl; -#X obj 96 382 r master-lvl; -#X obj 83 286 s master-lvl; -#X obj 224 494 s master-amp; -#X obj 208 244 loadbang; -#X msg 208 269 \; master-lvl 90; -#X connect 0 0 4 0; -#X connect 1 0 7 0; -#X connect 2 0 6 0; -#X connect 4 0 16 0; -#X connect 5 0 16 0; -#X connect 6 0 1 0; -#X connect 7 0 0 0; -#X connect 7 1 8 0; -#X connect 8 0 5 0; -#X connect 10 0 9 0; -#X connect 11 1 4 1; -#X connect 12 0 13 0; -#X connect 13 0 17 0; -#X connect 14 0 1 1; -#X connect 14 0 11 0; -#X connect 15 0 10 0; -#X connect 15 0 12 0; -#X connect 18 0 19 0; -#X restore 367 316 pd output; -#X msg 367 294 mute; -#X obj 367 359 s master-lvl; -#X text 410 293 <-- mute button; -#X floatatom 19 250 0 0 0; -#X text 20 294 100 maximum; -#X text 20 276 output meter; -#X text 405 336 <--set me; -#X msg 19 74 read an input file; -#X text 367 379 LINE OUT LEVEL in dB (100 norm); -#X msg 19 206 save normalized to max amplitude; -#X floatatom 368 73 0 0 1000; -#X floatatom 369 19 0 0 0; -#X obj 369 47 s transposition; -#X floatatom 369 170 0 0 100; -#X obj 369 192 s smoothing; -#X obj 368 95 s looplength; -#X text 418 73 <- loop length \, hundredths of a second; -#X floatatom 369 122 0 0 60000; -#X obj 369 144 s startpoint; -#X text 420 123 <- start point \, hundredths of a second; -#X text 419 171 <- envelope smoothing \, 0-100; -#X text 38 9 looping sample player.; -#X msg 19 118 start looping when I change something; -#X msg 19 140 stop looping; -#X floatatom 368 239 0 0 60; -#N canvas 0 0 265 196 length 0; +#X connect 27 0 33 0; +#X connect 28 0 34 0; +#X connect 29 0 32 0; +#X connect 30 0 29 0; +#X connect 31 0 23 0; +#X connect 32 0 31 0; +#X connect 33 0 23 0; +#X connect 34 0 23 0; +#X connect 35 0 11 0; +#X connect 36 0 40 0; +#X connect 37 0 21 0; +#X connect 37 0 1 0; +#X connect 38 0 2 0; +#X connect 40 0 3 1; +#X connect 42 0 41 0; +#X connect 44 0 45 0; +#X restore 141 317 pd guts; +#X text 148 70 click below to:; +#X floatatom 557 38 6 0 0 0 - - - 0; +#X obj 557 66 s transposition; +#X obj 561 271 s smoothing; +#X obj 557 134 s looplength; +#X text 607 112 <- loop length \, hundredths of a second; +#X obj 558 203 s startpoint; +#X text 609 182 <- start point \, hundredths of a second; +#X text 613 249 <- envelope smoothing \, 0-100; +#X text 129 32 looping sample player.; +#N canvas 581 112 275 258 length 0; #X obj 48 24 inlet; #X obj 49 104 * 44100; -#X msg 86 130 \; array2 resize \$1; #X obj 48 49 min 60; #X obj 62 78 s output-length; -#X obj 48 164 s maxoutsize; -#X connect 0 0 3 0; -#X connect 1 0 2 0; +#X obj 43 220 s maxoutsize; +#X msg 73 139 resize \$1; +#X obj 73 163 s \$0-output; +#X connect 0 0 2 0; #X connect 1 0 5 0; -#X connect 3 0 1 0; -#X connect 3 0 4 0; -#X restore 368 260 pd length; -#N canvas 219 38 198 151 /SUBPATCH/ 0; -#X obj 79 122 outlet; -#X obj 79 74 loadbang; -#X msg 79 98 10; -#X connect 1 0 2 0; -#X connect 2 0 0 0; -#X restore 368 217 pd; -#X text 455 241 length in seconds of the output; -#X text 453 259 buffer... maximum 60; -#X text 404 241 <- set; -#X text 408 20 <- transposition up or down \, 10ths of a half step +#X connect 1 0 4 0; +#X connect 2 0 1 0; +#X connect 2 0 3 0; +#X connect 5 0 6 0; +#X restore 560 384 pd length; +#X text 666 359 length in seconds of the output; +#X text 664 377 buffer... maximum 60; +#X text 615 359 <- set; +#X text 609 39 <- transposition up or down \, 10ths of a half step ; -#X connect 2 0 12 0; -#X connect 3 0 2 0; -#X connect 4 0 2 0; -#X connect 6 0 2 0; -#X connect 7 0 10 0; -#X connect 8 0 7 0; -#X connect 9 0 8 0; -#X connect 16 0 2 0; -#X connect 18 0 2 0; -#X connect 19 0 24 0; -#X connect 20 0 21 0; -#X connect 22 0 23 0; -#X connect 26 0 27 0; -#X connect 31 0 2 0; -#X connect 32 0 2 0; -#X connect 33 0 34 0; -#X connect 35 0 33 0; +#X obj 176 106 bng 18 250 50 0 \$0-read dummy Read -38 9 0 13 #dfdfdf +#000000 #202020; +#X obj 176 130 bng 18 250 50 0 \$0-run dummy Run -31 9 0 13 #dfdfdf +#000000 #000000; +#X obj 176 155 bng 18 250 50 0 \$0-start dummy Start -46 9 0 13 #dfdfdf +#000000 #000000; +#X obj 176 202 bng 18 250 50 0 \$0-hear dummy Hear -40 9 0 13 #dfdfdf +#000000 #000000; +#X obj 176 226 bng 18 250 50 0 \$0-save dummy Save -40 9 0 13 #dfdfdf +#000000 #000000; +#X obj 176 251 bng 18 250 50 0 \$0-save-normalized dummy Normalized +-87 9 0 13 #dfdfdf #000000 #000000; +#X text 205 105 (read an input file); +#X text 205 129 (run the transformation); +#X text 205 201 (hear the output sample); +#X text 205 225 (save the output sample); +#X text 205 250 (save the output sample normalized to 1); +#X obj 176 178 bng 18 250 50 0 \$0-stop dummy Stop -40 9 0 13 #dfdfdf +#000000 #000000; +#X obj 261 339 table \$0-input; +#X obj 255 367 table \$0-output; +#X text 371 340 input sample; +#X text 371 366 output sample; +#X text 205 154 (start looping when I change something); +#X text 205 177 (stop looping); +#X obj 141 363 output~; +#X floatatom 557 112 6 0 0 0 - - - 0; +#X floatatom 558 181 6 0 0 0 - - - 0; +#X floatatom 561 249 6 0 0 0 - - - 0; +#X floatatom 560 358 6 0 0 0 - - - 0; +#X obj 560 305 loadbang; +#X msg 560 329 10; +#X obj 348 30 declare -stdpath ./; +#X connect 0 0 34 0; +#X connect 0 0 34 1; +#X connect 2 0 3 0; +#X connect 35 0 5 0; +#X connect 36 0 7 0; +#X connect 37 0 4 0; +#X connect 38 0 11 0; +#X connect 39 0 40 0; +#X connect 40 0 38 0; diff -Nru puredata-0.52.1+ds0/doc/7.stuff/soundfile-tools/5.reverb.pd puredata-0.52.2+ds0/doc/7.stuff/soundfile-tools/5.reverb.pd --- puredata-0.52.1+ds0/doc/7.stuff/soundfile-tools/5.reverb.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/7.stuff/soundfile-tools/5.reverb.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,214 +1,128 @@ -#N canvas 186 43 739 364 12; -#N canvas 213 187 495 352 input-sample 0; -#N canvas 0 0 450 300 graph1 0; -#X array array1 63024 float 0; -#X coords 0 1 63023 -1 400 300 1; -#X restore 54 22 graph; -#X text 145 376 INPUT SAMPLE; -#X restore 154 226 pd input-sample; -#N canvas 192 180 507 343 output-sample 0; -#N canvas 0 0 450 300 graph2 0; -#X array array2 504024 float 0; -#X coords 0 1 504023 -1 400 300 1; -#X restore 57 13 graph; -#X text 154 372 OUTPUT SAMPLE; -#X restore 155 249 pd output-sample; -#N canvas 116 150 735 421 guts 0; -#X msg 24 128 bang; -#X obj 24 345 openpanel; -#X obj 138 30 inlet; -#X obj 446 368 dac~; -#X obj 446 327 *~; -#X obj 461 304 line~; -#X obj 461 283 r master-amp; -#X msg 707 85 bang; -#X obj 707 106 savepanel; -#X obj 268 161 spigot; -#X msg 253 128 0; -#X msg 284 128 1; -#X obj 500 398 outlet; -#X obj 316 128 r frequency; -#X obj 256 312 tabwrite~ array2; -#X msg 256 189 bang; -#X obj 427 276 +~; -#X msg 139 128 \; pd dsp 1; -#X obj 446 347 hip~ 7; -#X obj 268 217 tabplay~ array1; -#X msg 442 124 bang; -#X obj 442 145 tabplay~ array2; -#X msg 707 126 write \$1 array2; -#X obj 707 147 soundfiler; -#X obj 138 51 route read run start hear save; -#N canvas 0 0 632 395 audio-transformation 0; +#N canvas 595 160 822 441 12; +#X declare -stdpath ./; +#N canvas 162 150 1098 501 guts 0; +#X obj 501 296 +~; +#N canvas 393 122 417 410 audio-transformation 0; #X obj 101 49 inlet~; -#X obj 105 268 outlet~; -#X obj 101 148 rev1~ xxx; -#X obj 339 79 r revgain; -#X obj 338 102 dbtorms; -#X obj 338 130 pack 0 50; -#X obj 338 154 line~; +#X obj 105 328 outlet~; +#X obj 253 89 r revgain; +#X obj 252 112 dbtorms; +#X obj 252 140 pack 0 50; +#X obj 252 164 line~; #X obj 103 204 *~; -#X obj 181 51 r revtime; -#X obj 213 236 *~; -#X obj 340 209 dbtorms; -#X obj 340 237 pack 0 50; -#X obj 340 261 line~; -#X obj 294 37 inlet; -#X msg 293 61 bang; -#X obj 342 186 r drygain; -#X connect 0 0 2 0; -#X connect 0 0 9 0; -#X connect 2 0 7 0; +#X obj 149 85 r revtime; +#X obj 67 233 *~; +#X obj 150 239 dbtorms; +#X obj 150 267 pack 0 50; +#X obj 150 291 line~; +#X obj 234 48 inlet; +#X obj 152 216 r drygain; +#X obj 101 148 rev1~, f 14; +#X connect 0 0 8 0; +#X connect 0 0 14 0; +#X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 5 0; -#X connect 5 0 6 0; -#X connect 6 0 7 1; -#X connect 7 0 1 0; -#X connect 8 0 2 1; -#X connect 9 0 1 0; -#X connect 10 0 11 0; -#X connect 11 0 12 0; -#X connect 12 0 9 1; -#X connect 13 0 14 0; -#X connect 14 0 2 2; -#X connect 15 0 10 0; -#X restore 268 238 pd audio-transformation; -#X obj 500 377 env~ 16384; -#X obj 570 86 route normalized; -#X msg 570 179 write -normalize \$1 array2; -#X msg 570 138 bang; -#X obj 570 159 savepanel; -#X obj 570 204 soundfiler; -#X obj 24 396 soundfiler; -#X msg 24 374 read -resize -maxsize 1e+06 \$1 array1; -#X msg 24 440 \; array2 resize \$1; -#X obj 402 129 r q; -#X obj 24 419 + 441000; -#X connect 0 0 1 0; -#X connect 1 0 33 0; -#X connect 2 0 24 0; -#X connect 4 0 18 0; -#X connect 5 0 4 1; -#X connect 6 0 5 0; -#X connect 7 0 8 0; -#X connect 8 0 22 0; +#X connect 5 0 6 1; +#X connect 6 0 1 0; +#X connect 7 0 14 1; +#X connect 8 0 1 0; #X connect 9 0 10 0; -#X connect 9 0 15 0; -#X connect 10 0 9 1; -#X connect 11 0 9 1; +#X connect 10 0 11 0; +#X connect 11 0 8 1; +#X connect 12 0 14 2; #X connect 13 0 9 0; -#X connect 15 0 14 0; -#X connect 15 0 19 0; -#X connect 15 0 25 1; -#X connect 16 0 4 0; -#X connect 18 0 3 0; -#X connect 18 0 3 1; -#X connect 18 0 26 0; -#X connect 19 0 25 0; -#X connect 20 0 21 0; -#X connect 21 0 16 1; -#X connect 22 0 23 0; -#X connect 24 0 0 0; -#X connect 24 1 15 0; -#X connect 24 1 10 0; -#X connect 24 1 17 0; -#X connect 24 2 11 0; -#X connect 24 2 17 0; -#X connect 24 3 20 0; -#X connect 24 4 27 0; -#X connect 25 0 14 0; -#X connect 25 0 16 0; -#X connect 26 0 12 0; -#X connect 27 0 29 0; -#X connect 27 1 7 0; -#X connect 28 0 31 0; -#X connect 29 0 30 0; -#X connect 30 0 28 0; -#X connect 32 0 36 0; -#X connect 33 0 32 0; -#X connect 35 0 9 0; -#X connect 36 0 34 0; -#X restore 35 190 pd guts; -#X msg 35 85 run the transformation; -#X msg 35 127 hear the output buffer again; -#X text 35 45 click below to:; -#X msg 35 148 save the output buffer; -#X floatatom 445 285 0 0 120; -#N canvas 194 37 397 591 output 0; -#X obj 63 194 t b; -#X obj 63 146 f; -#X obj 63 98 inlet; -#X text 68 77 mute; -#X obj 63 218 f; -#X msg 129 233 0; -#X msg 63 122 bang; -#X obj 63 170 moses 1; -#X obj 129 209 t b f; -#X obj 92 423 outlet; -#X msg 92 399 set \$1; -#X obj 178 156 moses 1; -#X obj 215 425 dbtorms; -#X obj 215 450 pack 0 100; -#X obj 178 132 r master-lvl; -#X obj 92 366 r master-lvl; -#X obj 79 274 s master-lvl; -#X obj 215 474 s master-amp; -#X obj 199 233 loadbang; -#X msg 199 258 \; master-lvl 90; -#X connect 0 0 4 0; -#X connect 1 0 7 0; -#X connect 2 0 6 0; -#X connect 4 0 16 0; -#X connect 5 0 16 0; -#X connect 6 0 1 0; -#X connect 7 0 0 0; -#X connect 7 1 8 0; -#X connect 8 0 5 0; -#X connect 10 0 9 0; -#X connect 11 1 4 1; -#X connect 12 0 13 0; -#X connect 13 0 17 0; -#X connect 14 0 1 1; -#X connect 14 0 11 0; -#X connect 15 0 10 0; -#X connect 15 0 12 0; -#X connect 18 0 19 0; -#X restore 445 264 pd output; -#X msg 445 243 mute; -#X obj 445 306 s master-lvl; -#X text 486 242 <-- mute button; -#X floatatom 35 211 0 0 0; -#X text 13 251 100 maximum; -#X text 13 233 output meter; -#X text 482 284 <--set me; -#X msg 35 64 read an input file; -#X text 445 326 LINE OUT LEVEL in dB (100 norm); -#X msg 35 169 save normalized to max amplitude; -#X msg 35 106 start transformation when I change f or q; -#X floatatom 445 82 0 0 120; -#X floatatom 445 40 0 0 100; -#X obj 445 61 s revtime; -#X obj 445 103 s revgain; -#X floatatom 446 184 0 0 120; -#X text 494 84 <-- reverb gain; -#X text 482 185 <-- dry gain; -#X obj 446 205 s drygain; -#X obj 446 142 loadbang; -#X msg 446 163 100; -#X text 486 39 <- reverb time 0-100; -#X text 23 15 Reverberator. Read in a sample first.; -#X connect 2 0 12 0; -#X connect 3 0 2 0; -#X connect 4 0 2 0; -#X connect 6 0 2 0; -#X connect 7 0 10 0; +#X connect 14 0 6 0; +#X restore 338 254 pd audio-transformation; +#X obj 501 389 outlet~; +#X obj 82 165 openpanel; +#X obj 82 250 soundfiler; +#X msg 82 319 resize \$1; +#X obj 82 346 send \$0-output; +#X msg 82 225 read -resize \$1 \$2; +#X obj 82 197 list append \$0-input; +#X obj 853 217 savepanel; +#X obj 853 290 soundfiler; +#X obj 656 204 savepanel; +#X obj 656 293 soundfiler; +#X obj 853 241 list append \$0-output; +#X msg 853 265 write \$1 \$1; +#X msg 656 268 write -normalize \$1 \$2; +#X obj 656 235 list append \$0-output; +#X obj 656 177 r \$0-save; +#X obj 853 191 r \$0-save-normalized; +#X obj 82 136 r \$0-read; +#X obj 326 300 tabwrite~ \$0-output, f 9; +#X obj 518 231 tabplay~ \$0-output, f 9; +#X obj 518 198 r \$0-hear; +#X obj 338 212 tabplay~ \$0-input, f 9; +#X msg 325 130 bang \; pd dsp 1; +#X obj 325 97 r \$0-run; +#X obj 85 286 + 44100; +#X connect 0 0 2 0; +#X connect 1 0 0 0; +#X connect 1 0 20 0; +#X connect 3 0 8 0; +#X connect 4 0 26 0; +#X connect 5 0 6 0; +#X connect 7 0 4 0; #X connect 8 0 7 0; -#X connect 9 0 8 0; -#X connect 16 0 2 0; -#X connect 18 0 2 0; -#X connect 19 0 2 0; -#X connect 20 0 23 0; -#X connect 21 0 22 0; -#X connect 24 0 27 0; -#X connect 28 0 29 0; -#X connect 29 0 24 0; +#X connect 9 0 13 0; +#X connect 11 0 16 0; +#X connect 13 0 14 0; +#X connect 14 0 10 0; +#X connect 15 0 12 0; +#X connect 16 0 15 0; +#X connect 17 0 11 0; +#X connect 18 0 9 0; +#X connect 19 0 3 0; +#X connect 21 0 0 1; +#X connect 22 0 21 0; +#X connect 23 0 1 0; +#X connect 24 0 1 1; +#X connect 24 0 20 0; +#X connect 24 0 23 0; +#X connect 25 0 24 0; +#X connect 26 0 5 0; +#X restore 170 285 pd guts; +#X floatatom 572 37 6 0 100 0 - - - 0; +#X obj 572 68 s revtime; +#X obj 572 136 s revgain; +#X text 621 111 <-- reverb gain; +#X text 629 230 <-- dry gain; +#X obj 573 255 s drygain; +#X obj 573 177 loadbang; +#X msg 573 203 100; +#X text 624 36 <- reverb time 0-100; +#X text 107 42 Reverberator. Read in a sample first.; +#X obj 142 330 output~; +#X text 95 87 Click below to:; +#X obj 185 122 bng 18 250 50 0 \$0-read dummy Read -38 9 0 13 #dfdfdf +#000000 #202020; +#X obj 185 146 bng 18 250 50 0 \$0-run dummy Run -31 9 0 13 #dfdfdf +#000000 #000000; +#X obj 185 172 bng 18 250 50 0 \$0-hear dummy Hear -40 9 0 13 #dfdfdf +#000000 #000000; +#X obj 185 196 bng 18 250 50 0 \$0-save dummy Save -40 9 0 13 #dfdfdf +#000000 #000000; +#X obj 185 221 bng 18 250 50 0 \$0-save-normalized dummy Normalized +-87 9 0 13 #dfdfdf #000000 #000000; +#X text 214 121 (read an input file); +#X text 214 145 (run the transformation); +#X text 214 171 (hear the output sample); +#X text 214 195 (save the output sample); +#X text 214 220 (save the output sample normalized to 1); +#X text 407 322 input sample; +#X text 408 345 output sample; +#X obj 293 346 table \$0-output; +#X obj 293 322 table \$0-input; +#X floatatom 572 109 6 0 100 0 - - - 0; +#X floatatom 573 229 6 0 100 0 - - - 0; +#X obj 645 360 declare -stdpath ./; +#X connect 0 0 11 0; +#X connect 0 0 11 1; +#X connect 1 0 2 0; +#X connect 7 0 8 0; +#X connect 8 0 28 0; +#X connect 27 0 3 0; +#X connect 28 0 6 0; diff -Nru puredata-0.52.1+ds0/doc/7.stuff/soundfile-tools/6.vocoder.pd puredata-0.52.2+ds0/doc/7.stuff/soundfile-tools/6.vocoder.pd --- puredata-0.52.1+ds0/doc/7.stuff/soundfile-tools/6.vocoder.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/7.stuff/soundfile-tools/6.vocoder.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,314 +1,222 @@ -#N canvas 73 102 706 428 12; -#X floatatom 462 162 0 0 100; -#X msg 462 137 set \$1; -#X text 29 322 100 maximum; -#X text 29 304 output meter; -#N canvas 145 136 937 540 guts 0; -#X msg 5 296 bang; -#X obj 5 321 openpanel; -#X obj 136 29 inlet; -#X obj 452 375 dac~; -#X obj 452 323 *~; -#X obj 467 300 line~; -#X obj 467 280 r master-amp; -#X msg 689 157 bang; -#X obj 689 177 savepanel; -#X obj 506 393 outlet; -#X obj 297 238 tabwrite~ array2; -#X obj 454 238 +~; -#X obj 452 343 hip~ 7; -#X msg 446 108 bang; -#X obj 446 133 tabplay~ array2; -#X msg 689 197 write \$1 array2; -#X obj 689 218 soundfiler; -#X obj 506 373 env~ 16384; -#X obj 587 129 route normalized; -#X msg 587 250 write -normalize \$1 array2; -#X msg 587 209 bang; -#X obj 587 230 savepanel; -#X obj 587 274 soundfiler; -#X obj 5 365 soundfiler; -#X msg 5 343 read -resize -maxsize 1e+06 \$1 array1; -#X obj 676 338 loadbang; -#N canvas 0 0 690 470 fft-analysis 0; -#X obj 275 314 *~; -#X obj 257 348 *~; -#X obj 218 348 *~; -#X obj 105 163 *~; -#X obj 66 156 *~; -#X obj 66 182 +~; -#X obj 216 104 *~; -#X obj 253 104 inlet~; -#X obj 216 130 rfft~; -#X obj 42 371 *~; -#X floatatom 458 208 0 0 0; -#X obj 334 177 *~; -#X obj 66 104 *~; -#X obj 103 104 inlet~; -#X obj 45 65 tabreceive~ hanning; -#X obj 66 130 rfft~; -#X obj 218 374 rifft~; -#X obj 42 397 outlet~; -#X obj 297 177 *~; -#X obj 297 203 +~; -#X obj 307 314 sig~ 0.001; -#X text 122 214 modulus; -#X obj 66 208 sqrt~; -#X obj 275 288 *~; -#X obj 457 58 r squelch; -#X obj 329 418 block~ 1024 4; -#X obj 297 229 rsqrt~; -#X obj 341 203 sig~ 1e-20; -#X obj 297 255 clip~; -#X obj 458 130 t f f; -#X obj 458 156 *; -#X obj 458 182 * 0.01; -#X obj 456 94 max 1; -#X obj 559 58 loadbang; -#X obj 458 234 max 0; -#X connect 0 0 1 1; -#X connect 0 0 2 1; -#X connect 1 0 16 1; -#X connect 2 0 16 0; -#X connect 3 0 5 1; -#X connect 4 0 5 0; -#X connect 5 0 22 0; -#X connect 6 0 8 0; -#X connect 7 0 6 1; -#X connect 8 0 18 0; -#X connect 8 0 18 1; -#X connect 8 0 2 0; -#X connect 8 1 11 0; -#X connect 8 1 11 1; -#X connect 8 1 1 0; -#X connect 9 0 17 0; -#X connect 10 0 34 0; -#X connect 11 0 19 1; -#X connect 12 0 15 0; -#X connect 13 0 12 1; -#X connect 14 0 12 0; -#X connect 14 0 6 0; -#X connect 14 0 9 0; -#X connect 15 0 4 0; -#X connect 15 0 4 1; -#X connect 15 1 3 0; -#X connect 15 1 3 1; -#X connect 16 0 9 1; -#X connect 18 0 19 0; -#X connect 19 0 26 0; -#X connect 20 0 0 1; -#X connect 22 0 23 0; -#X connect 23 0 0 0; -#X connect 24 0 32 0; -#X connect 26 0 28 0; -#X connect 27 0 26 0; -#X connect 28 0 23 1; -#X connect 29 0 30 0; -#X connect 29 0 30 1; +#N canvas 598 66 696 473 12; +#X declare -stdpath ./; +#X floatatom 515 251 0 1 100 0 - - - 0; +#N canvas 263 241 966 450 guts 0; +#X obj 604 251 +~; +#X obj 280 250 loadbang; +#N canvas 443 23 575 507 fft-analysis 0; +#X obj 274 324 *~; +#X obj 235 324 *~; +#X obj 122 139 *~; +#X obj 83 132 *~; +#X obj 83 158 +~; +#X obj 233 80 *~; +#X obj 270 80 inlet~; +#X obj 233 106 rfft~; +#X obj 59 347 *~; +#X obj 347 153 *~; +#X obj 83 80 *~; +#X obj 120 80 inlet~; +#X obj 62 41 tabreceive~ hanning; +#X obj 83 106 rfft~; +#X obj 235 350 rifft~; +#X obj 59 423 outlet~; +#X obj 310 153 *~; +#X obj 310 179 +~; +#X text 137 185 modulus; +#X obj 83 184 sqrt~; +#X obj 292 264 *~; +#X obj 445 132 r squelch; +#X obj 310 205 rsqrt~; +#X obj 354 179 sig~ 1e-20; +#X obj 310 231 clip~; +#X obj 445 220 * 0.01; +#X obj 445 165 max 1; +#X obj 445 246 max 0; +#X obj 292 290 *~ 0.001; +#X obj 399 367 block~; +#X obj 399 304 r window-size; +#X msg 399 335 set \$1 4; +#X obj 445 194 pow 2; +#X connect 0 0 14 1; +#X connect 1 0 14 0; +#X connect 2 0 4 1; +#X connect 3 0 4 0; +#X connect 4 0 19 0; +#X connect 5 0 7 0; +#X connect 6 0 5 1; +#X connect 7 0 16 0; +#X connect 7 0 16 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 15 0; +#X connect 9 0 17 1; +#X connect 10 0 13 0; +#X connect 11 0 10 1; +#X connect 12 0 10 0; +#X connect 12 0 5 0; +#X connect 12 0 8 0; +#X connect 13 0 3 0; +#X connect 13 0 3 1; +#X connect 13 1 2 0; +#X connect 13 1 2 1; +#X connect 14 0 8 1; +#X connect 16 0 17 0; +#X connect 17 0 22 0; +#X connect 19 0 20 0; +#X connect 20 0 28 0; +#X connect 21 0 26 0; +#X connect 22 0 24 0; +#X connect 23 0 22 0; +#X connect 24 0 20 1; +#X connect 25 0 27 0; +#X connect 26 0 32 0; +#X connect 27 0 24 2; +#X connect 28 0 0 1; +#X connect 28 0 1 1; #X connect 30 0 31 0; -#X connect 31 0 10 0; -#X connect 32 0 29 0; -#X connect 33 0 32 0; -#X connect 34 0 28 2; -#X restore 296 194 pd fft-analysis; -#X msg 202 86 bang; -#N canvas 46 0 723 534 hanning-window 0; -#X obj 122 273 phasor~; -#X obj 122 311 cos~; -#X obj 31 436 tabwrite~ hanning; -#X obj 40 336 -~; -#X obj 37 290 sig~ 1; -#X msg 50 240 0; -#X text 188 18 CALCULATE HANNING; -#X text 188 36 WINDOW TABLE; -#N canvas 0 0 450 300 graph1 0; +#X connect 31 0 29 0; +#X connect 32 0 25 0; +#X restore 446 207 pd fft-analysis; +#N canvas 287 79 718 470 hanning-window 0; +#X obj 122 213 phasor~; +#X obj 122 251 cos~; +#X obj 31 376 tabwrite~ hanning; +#X msg 50 160 0; +#N canvas 0 0 450 300 (subpatch) 0; #X array hanning 1024 float 0; -#X coords 0 1 1023 -1 400 300 1; -#X restore 342 235 graph; -#X obj 123 227 sig~; -#X text 156 173 sample rate / window size; -#X msg 31 191 bang; -#X obj 88 357 sig~ 0.5; -#X obj 66 399 *~; +#X coords 0 1 1023 0 400 150 1 0 0; +#X restore 227 213 graph; +#X text 156 153 sample rate / window size; #X obj 124 106 samplerate~; -#X obj 33 31 r window-size; -#X obj 123 175 /; -#X msg 262 106 \; hanning resize \$1; -#X obj 31 70 t b f f; -#X connect 0 0 1 0; -#X connect 1 0 3 1; -#X connect 3 0 13 0; -#X connect 4 0 3 0; -#X connect 5 0 0 1; -#X connect 9 0 0 0; -#X connect 11 0 2 0; -#X connect 11 0 5 0; -#X connect 12 0 13 1; -#X connect 13 0 2 0; -#X connect 14 0 16 0; -#X connect 15 0 18 0; -#X connect 16 0 9 0; -#X connect 18 0 14 0; -#X connect 18 0 11 0; -#X connect 18 1 16 1; -#X connect 18 2 17 0; -#X restore 673 403 pd hanning-window; -#X obj 181 29 r action; -#X msg 150 163 \; pd dsp 1; -#X msg 389 106 stop; -#X msg 58 455 \; array2 resize \$1; -#X obj 58 434 + 4410; -#X obj 136 50 route read AND run hear save stop; -#X obj 58 412 min; -#X obj 107 380 t b f; -#X obj 107 270 openpanel; -#X obj 107 314 soundfiler; -#X msg 107 293 read -resize -maxsize 1e+06 \$1 array3; -#X msg 106 239 bang; -#X msg 676 360 \; window-size 1024 \;; -#X obj 296 145 tabplay~ array1; -#X obj 314 167 tabplay~ array3; +#X obj 31 31 r window-size; +#X obj 123 155 /; +#X msg 225 101 \; hanning resize \$1; +#X obj 31 70 t b f f, f 16; +#X obj 121 281 *~ -0.5; +#X obj 121 307 +~ 0.5; +#X text 157 37 CALCULATE HANNING WINDOW TABLE; #X connect 0 0 1 0; -#X connect 1 0 24 0; -#X connect 2 0 34 0; -#X connect 4 0 12 0; -#X connect 5 0 4 1; -#X connect 6 0 5 0; -#X connect 7 0 8 0; -#X connect 8 0 15 0; -#X connect 11 0 4 0; -#X connect 12 0 3 0; -#X connect 12 0 3 1; -#X connect 12 0 17 0; -#X connect 13 0 14 0; -#X connect 14 0 11 1; -#X connect 15 0 16 0; -#X connect 17 0 9 0; +#X connect 1 0 11 0; +#X connect 3 0 0 1; +#X connect 6 0 8 0; +#X connect 7 0 10 0; +#X connect 8 0 0 0; +#X connect 10 0 6 0; +#X connect 10 0 3 0; +#X connect 10 0 2 0; +#X connect 10 1 8 1; +#X connect 10 2 9 0; +#X connect 11 0 12 0; +#X connect 12 0 2 0; +#X restore 278 317 pd hanning-window; +#X msg 359 189 \; pd dsp 1; +#X msg 280 274 \; window-size 1024 \;; +#X obj 604 374 outlet~; +#X obj 728 88 savepanel; +#X obj 728 280 soundfiler; +#X obj 751 197 savepanel; +#X obj 728 62 r \$0-save; +#X obj 751 171 r \$0-save-normalized; +#X obj 728 113 list append \$0-output; +#X obj 751 222 list append \$0-output; +#X msg 728 139 write \$1 \$2; +#X msg 751 247 write \$1 \$2; +#X obj 55 84 openpanel; +#X obj 55 56 r \$0-read; +#X msg 55 141 read -resize \$1 \$2; +#X obj 55 113 list append \$0-input; +#X obj 55 174 soundfiler; +#X obj 215 84 openpanel; +#X msg 215 141 read -resize \$1 \$2; +#X obj 215 174 soundfiler; +#X obj 215 113 list append \$0-anal; +#X obj 146 256 min; +#X obj 145 214 t b f; +#X msg 146 284 resize \$1; +#X obj 215 56 r \$0-read-2; +#X obj 446 161 tabplay~ \$0-input, f 8; +#X obj 548 161 tabplay~ \$0-anal, f 8; +#X obj 622 149 r \$0-hear; +#X obj 436 88 r \$0-run; +#X obj 436 256 tabwrite~ \$0-output, f 9; +#X obj 622 180 tabplay~ \$0-output, f 9; +#X obj 146 313 s \$0-output; +#X connect 0 0 6 0; +#X connect 1 0 5 0; +#X connect 2 0 0 0; +#X connect 2 0 33 0; +#X connect 7 0 12 0; +#X connect 9 0 13 0; +#X connect 10 0 7 0; +#X connect 11 0 9 0; +#X connect 12 0 14 0; +#X connect 13 0 15 0; +#X connect 14 0 8 0; +#X connect 15 0 8 0; +#X connect 16 0 19 0; +#X connect 17 0 16 0; #X connect 18 0 20 0; -#X connect 18 1 7 0; -#X connect 19 0 22 0; -#X connect 20 0 21 0; -#X connect 21 0 19 0; -#X connect 23 0 35 0; -#X connect 24 0 23 0; -#X connect 25 0 41 0; -#X connect 26 0 10 0; -#X connect 26 0 11 0; -#X connect 27 0 10 0; -#X connect 27 0 30 0; -#X connect 27 0 42 0; -#X connect 27 0 43 0; -#X connect 29 0 34 0; -#X connect 31 0 14 0; -#X connect 33 0 32 0; -#X connect 34 0 0 0; -#X connect 34 1 40 0; -#X connect 34 2 27 0; -#X connect 34 3 13 0; -#X connect 34 4 18 0; -#X connect 34 5 31 0; -#X connect 35 0 33 0; -#X connect 36 0 35 0; -#X connect 36 1 35 1; -#X connect 37 0 39 0; -#X connect 38 0 36 0; -#X connect 39 0 38 0; -#X connect 40 0 37 0; -#X connect 42 0 26 0; -#X connect 43 0 26 1; -#X restore 29 263 pd guts; -#X msg 29 158 run the transformation; -#X msg 29 200 hear the output buffer again; -#X text 29 97 click below to:; -#X msg 29 221 save the output buffer; -#X floatatom 29 284 0 0 0; -#X msg 29 242 save normalized to max amplitude; -#N canvas 130 10 488 287 input-sample 0; -#N canvas 0 0 450 300 graph1 0; -#X array array1 188955 float 0; -#X coords 0 1 188954 -1 400 100 1; -#X restore 53 21 graph; -#N canvas 0 0 450 300 graph3 0; -#X array array3 225280 float 0; -#X coords 0 1 225279 -1 400 100 1; -#X restore 54 146 graph; -#X text 227 279 INPUT SAMPLES; -#X restore 169 368 pd input-sample; -#N canvas 192 180 507 343 output-sample 0; -#N canvas 0 0 450 300 graph2 0; -#X array array2 193365 float 0; -#X coords 0 1 193364 -1 400 300 1; -#X restore 56 12 graph; -#X text 151 365 OUTPUT SAMPLE; -#X restore 168 393 pd output-sample; -#X floatatom 408 365 0 0 0; -#N canvas 194 37 397 591 output 0; -#X obj 62 191 t b; -#X obj 62 144 f; -#X obj 62 96 inlet; -#X text 67 76 mute; -#X obj 62 215 f; -#X msg 127 229 0; -#X msg 62 120 bang; -#X obj 62 167 moses 1; -#X obj 127 206 t b f; -#X obj 90 416 outlet; -#X msg 90 392 set \$1; -#X obj 175 154 moses 1; -#X obj 211 418 dbtorms; -#X obj 211 442 pack 0 100; -#X obj 175 130 r master-lvl; -#X obj 90 359 r master-lvl; -#X obj 78 269 s master-lvl; -#X obj 211 466 s master-amp; -#X obj 195 229 loadbang; -#X msg 195 253 \; master-lvl 90; -#X connect 0 0 4 0; -#X connect 1 0 7 0; -#X connect 2 0 6 0; -#X connect 4 0 16 0; -#X connect 5 0 16 0; -#X connect 6 0 1 0; -#X connect 7 0 0 0; -#X connect 7 1 8 0; -#X connect 8 0 5 0; -#X connect 10 0 9 0; -#X connect 11 1 4 1; -#X connect 12 0 13 0; -#X connect 13 0 17 0; -#X connect 14 0 1 1; -#X connect 14 0 11 0; -#X connect 15 0 10 0; -#X connect 15 0 12 0; -#X connect 18 0 19 0; -#X restore 408 344 pd output; -#X msg 408 323 mute; -#X obj 408 386 s master-lvl; -#X text 449 322 <-- mute button; -#X text 444 363 <--set me; -#X text 408 406 LINE OUT LEVEL in dB (100 norm); -#X msg 29 179 stop the transformation; -#X text 193 9 (old-fashioned) VOCODER; -#X text 28 31 This takes in two soundfiles and uses the first to "vocode" +#X connect 19 0 18 0; +#X connect 20 0 25 0; +#X connect 21 0 24 0; +#X connect 22 0 23 0; +#X connect 23 0 26 0; +#X connect 24 0 22 0; +#X connect 25 0 27 0; +#X connect 26 0 25 0; +#X connect 26 1 25 1; +#X connect 27 0 35 0; +#X connect 28 0 21 0; +#X connect 29 0 2 0; +#X connect 30 0 2 1; +#X connect 31 0 34 0; +#X connect 32 0 29 0; +#X connect 32 0 30 0; +#X connect 32 0 4 0; +#X connect 32 0 33 0; +#X connect 34 0 0 1; +#X restore 143 339 pd guts; +#X text 81 22 (old-fashioned) VOCODER; +#X text 76 60 This takes in two soundfiles and uses the first to "vocode" the second. The resulting sound is as long as the shorter of the two -inputs.; -#X msg 29 116 read the analysis sound from file; -#X msg 29 137 AND read the sound to be processed from file; -#X text 462 97 SQUELCH; -#X obj 462 116 r squelch; -#X obj 462 187 s squelch; -#X text 526 161 1-100 or so; -#X connect 0 0 27 0; -#X connect 1 0 0 0; -#X connect 4 0 9 0; -#X connect 5 0 4 0; -#X connect 6 0 4 0; -#X connect 8 0 4 0; -#X connect 10 0 4 0; -#X connect 13 0 16 0; -#X connect 14 0 13 0; -#X connect 15 0 14 0; -#X connect 20 0 4 0; -#X connect 23 0 4 0; -#X connect 24 0 4 0; -#X connect 26 0 1 0; +inputs., f 71; +#X obj 515 276 s squelch; +#X text 560 245 1-100 or so; +#X obj 143 387 output~; +#X text 85 118 click below to:; +#X obj 113 147 bng 18 250 50 0 \$0-read dummy Input -45 9 0 13 #dfdfdf +#000000 #202020; +#X obj 113 198 bng 18 250 50 0 \$0-run dummy Run -31 9 0 13 #dfdfdf +#000000 #000000; +#X obj 113 226 bng 18 250 50 0 \$0-hear dummy Hear -40 9 0 13 #dfdfdf +#000000 #000000; +#X obj 113 250 bng 18 250 50 0 \$0-save dummy Save -40 9 0 13 #dfdfdf +#000000 #000000; +#X obj 113 275 bng 18 250 50 0 \$0-save-normalized dummy Normalized +-87 9 0 13 #dfdfdf #000000 #000000; +#X text 142 197 (run the transformation); +#X text 142 225 (hear the output sample); +#X text 142 249 (save the output sample); +#X text 142 274 (save the output sample normalized to 1); +#X obj 113 165 bng 18 250 50 0 \$0-read-2 dummy Anal -38 9 0 13 #dfdfdf +#000000 #202020; +#X obj 297 348 table \$0-input; +#X obj 290 404 table \$0-output; +#X text 407 349 input sample; +#X text 406 403 output sample; +#X obj 304 367 table \$0-anal; +#X text 407 368 analysis sample; +#X msg 515 226 70; +#X obj 515 201 loadbang; +#X text 142 145 (load sound file to be processed \, like a speech) +; +#X text 142 165 (load analysis sound file \, like a tonal); +#X obj 508 19 declare -stdpath ./; +#X connect 0 0 4 0; +#X connect 1 0 6 0; +#X connect 1 0 6 1; +#X connect 24 0 0 0; +#X connect 25 0 24 0; diff -Nru puredata-0.52.1+ds0/doc/7.stuff/synth/1.poly.synth.pd puredata-0.52.2+ds0/doc/7.stuff/synth/1.poly.synth.pd --- puredata-0.52.1+ds0/doc/7.stuff/synth/1.poly.synth.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/7.stuff/synth/1.poly.synth.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,311 +1,138 @@ -#N canvas 232 162 657 719 12; -#X floatatom 424 666 0 0 100 0 - - -; -#N canvas 269 205 698 344 output 0; -#X obj 388 156 t b; -#X obj 388 105 f; -#X obj 388 54 inlet; -#X obj 388 181 f; -#X msg 482 174 0; -#X msg 388 79 bang; -#X obj 388 130 moses 1; -#X obj 482 149 t b f; -#X obj 444 111 moses 1; -#X obj 91 148 dbtorms; -#X obj 444 86 r master-lvl; -#X obj 91 48 r master-lvl; -#X obj 388 207 s master-lvl; -#X obj 28 169 inlet~; -#X obj 213 195 inlet; -#X obj 229 218 s master-lvl; -#X msg 101 72 set \$1; -#X obj 101 98 outlet; -#X msg 213 241 \; pd dsp 1; -#X obj 91 201 line~; -#X obj 31 219 *~; -#X obj 31 247 dac~; -#X obj 91 173 pack 0 50; -#X text 17 149 audio in; -#X obj 28 194 hip~ 1; -#X connect 0 0 3 0; -#X connect 1 0 6 0; -#X connect 2 0 5 0; -#X connect 3 0 12 0; -#X connect 4 0 12 0; -#X connect 5 0 1 0; -#X connect 6 0 0 0; -#X connect 6 1 7 0; -#X connect 7 0 4 0; -#X connect 8 1 3 1; -#X connect 9 0 22 0; -#X connect 10 0 1 1; -#X connect 10 0 8 0; -#X connect 11 0 9 0; -#X connect 11 0 16 0; -#X connect 13 0 24 0; -#X connect 14 0 15 0; -#X connect 14 0 18 0; -#X connect 16 0 17 0; -#X connect 19 0 20 1; -#X connect 20 0 21 0; -#X connect 20 0 21 1; -#X connect 22 0 19 0; -#X connect 24 0 20 0; -#X restore 386 690 pd output; -#X msg 462 666 MUTE; -#X obj 16 382 unpack; -#X obj 16 299 notein; -#X obj 16 327 pack; -#X obj 329 213 numset amp x; -#X obj 329 242 numset aa x; -#X obj 329 329 numset ar x; -#X obj 329 271 numset ad x; -#X obj 329 300 numset as x; -#N canvas 248 85 884 761 synth 0; -#X obj 114 588 synthvoice; -#X obj 114 561 synthvoice; -#X obj 114 534 synthvoice; -#X obj 114 507 synthvoice; -#X obj 114 480 synthvoice; -#X obj 114 453 synthvoice; -#X obj 114 426 synthvoice; -#X obj 114 399 synthvoice; -#X obj 40 91 t b f; -#X obj 22 185 f; -#X obj 44 130 + 1; -#X obj 44 158 mod 1e+06; -#X obj 317 670 outlet~; -#X obj 45 24 r syn-note; -#X obj 454 25 r syn-noteon; -#X text 445 652 todo: field to stamp note for later messages; -#X obj 22 212 + 1e+06; -#X obj 55 239 makenote; -#X obj 109 309 moses 1e+06; -#X obj 26 352 r all-off; -#X msg 26 377 stop; -#X obj 196 368 route 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16; -#X obj 317 644 synthvoice; -#X obj 317 617 synthvoice; -#X obj 317 590 synthvoice; -#X obj 317 563 synthvoice; -#X obj 317 536 synthvoice; -#X obj 317 509 synthvoice; -#X obj 317 482 synthvoice; -#X obj 317 455 synthvoice; -#X obj 55 279 poly 16 1; -#X obj 45 54 unpack 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; -#X obj 455 51 unpack 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; -#X obj 196 339 pack 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; -#X connect 0 0 29 0; -#X connect 1 0 0 0; -#X connect 2 0 1 0; -#X connect 3 0 2 0; -#X connect 4 0 3 0; -#X connect 5 0 4 0; -#X connect 6 0 5 0; -#X connect 7 0 6 0; -#X connect 8 0 9 0; -#X connect 8 1 33 2; -#X connect 9 0 10 0; -#X connect 9 0 16 0; -#X connect 10 0 11 0; -#X connect 11 0 9 1; -#X connect 13 0 31 0; -#X connect 14 0 32 0; -#X connect 16 0 17 0; -#X connect 17 0 30 0; -#X connect 17 1 30 1; -#X connect 18 0 33 2; -#X connect 19 0 20 0; -#X connect 20 0 30 0; -#X connect 21 0 7 1; -#X connect 21 1 6 1; -#X connect 21 2 5 1; -#X connect 21 3 4 1; -#X connect 21 4 3 1; -#X connect 21 5 2 1; -#X connect 21 6 1 1; -#X connect 21 7 0 1; -#X connect 21 8 29 1; -#X connect 21 9 28 1; -#X connect 21 10 27 1; -#X connect 21 11 26 1; -#X connect 21 12 25 1; -#X connect 21 13 24 1; -#X connect 21 14 23 1; -#X connect 21 15 22 1; -#X connect 22 0 12 0; -#X connect 23 0 22 0; -#X connect 24 0 23 0; -#X connect 25 0 24 0; -#X connect 26 0 25 0; -#X connect 27 0 26 0; -#X connect 28 0 27 0; -#X connect 29 0 28 0; -#X connect 30 0 33 0; -#X connect 30 1 18 0; -#X connect 30 2 33 1; -#X connect 31 0 8 0; -#X connect 31 1 17 1; -#X connect 31 2 17 2; -#X connect 31 3 33 3; -#X connect 31 4 33 4; -#X connect 31 5 33 5; -#X connect 31 6 33 6; -#X connect 31 7 33 7; -#X connect 31 8 33 8; -#X connect 31 9 33 9; -#X connect 31 10 33 10; -#X connect 31 11 33 11; -#X connect 31 12 33 12; -#X connect 31 13 33 13; -#X connect 31 14 33 14; -#X connect 31 15 33 15; -#X connect 31 16 33 16; -#X connect 32 0 30 0; -#X connect 32 1 30 1; -#X connect 32 2 33 3; -#X connect 32 3 33 4; -#X connect 32 4 33 5; -#X connect 32 5 33 6; -#X connect 32 6 33 7; -#X connect 32 7 33 8; -#X connect 32 8 33 9; -#X connect 32 9 33 10; -#X connect 32 10 33 11; -#X connect 32 11 33 12; -#X connect 32 12 33 13; -#X connect 32 13 33 14; -#X connect 32 14 33 15; -#X connect 32 15 33 16; -#X connect 33 0 21 0; -#X restore 386 640 pd synth; -#X obj 24 351 r syn-midinoteon; -#X obj 16 649 s syn-noteon; -#N canvas 0 0 690 415 tables 0; -#X msg 107 49 bang; -#X obj 107 78 t b b; -#X obj 159 142 f; -#X obj 197 142 + 1; -#X msg 181 115 0; -#X obj 107 107 until; -#X obj 161 177 t f f; -#X obj 109 210 mtof; -#X obj 90 177 sel 129; -#X obj 109 237 tabwrite mtof; -#X text 48 15 patch to regenerate the mtof table; -#N canvas 0 0 450 300 graph2 0; -#X array mtof 130 float 1; -#A 0 8.1758 8.66196 9.17702 9.72272 10.3009 10.9134 11.5623 12.2499 -12.9783 13.75 14.5676 15.4339 16.3516 17.3239 18.354 19.4454 20.6017 -21.8268 23.1247 24.4997 25.9565 27.5 29.1352 30.8677 32.7032 34.6478 -36.7081 38.8909 41.2034 43.6535 46.2493 48.9994 51.9131 55 58.2705 -61.7354 65.4064 69.2957 73.4162 77.7817 82.4069 87.3071 92.4986 97.9989 -103.826 110 116.541 123.471 130.813 138.591 146.832 155.563 164.814 -174.614 184.997 195.998 207.652 220 233.082 246.942 261.626 277.183 -293.665 311.127 329.628 349.228 369.994 391.995 415.305 440 466.164 -493.883 523.251 554.365 587.33 622.254 659.255 698.456 739.989 783.991 -830.609 880 932.328 987.767 1046.5 1108.73 1174.66 1244.51 1318.51 -1396.91 1479.98 1567.98 1661.22 1760 1864.66 1975.53 2093 2217.46 2349.32 -2489.02 2637.02 2793.83 2959.96 3135.96 3322.44 3520 3729.31 3951.07 -4186.01 4434.92 4698.64 4978.03 5274.04 5587.65 5919.91 6271.93 6644.88 -7040 7458.62 7902.13 8372.02 8869.84 9397.27 9956.06 10548.1 11175.3 -11839.8 12543.9 13289.8 14080; -#X coords 0 12000 130 0 200 100 1; -#X restore 381 116 graph; -#X text 391 224 ------ 130 samples ------; -#X text 590 209 0; -#X text 592 109 12000; +#N canvas 559 63 649 755 12; +#X obj 79 451 unpack; +#X obj 113 377 notein; +#X obj 113 405 pack; +#X obj 392 142 numset amp x; +#A saved 94; +#X obj 392 171 numset aa x; +#A saved 6; +#X obj 392 258 numset ar x; +#A saved 207; +#X obj 392 200 numset ad x; +#A saved 11; +#X obj 392 229 numset as x; +#A saved 81; +#N canvas 685 207 485 367 synth 0; +#X msg 60 112 stop; +#X obj 99 180 poly 16 1; +#X obj 142 38 inlet; +#X obj 60 87 r flush; +#X obj 99 206 - 1; +#X obj 143 298 outlet~; +#X obj 143 235 pack f f f f f f f f f f f f f f f f f; +#X obj 142 74 unpack f f f f f f f f f f f f f f f f; +#X obj 143 265 clone 16 synthvoice; #X connect 0 0 1 0; -#X connect 1 0 5 0; -#X connect 1 1 4 0; -#X connect 2 0 3 0; -#X connect 2 0 6 0; -#X connect 2 0 8 0; -#X connect 3 0 2 1; -#X connect 4 0 2 1; -#X connect 5 0 2 0; -#X connect 6 0 7 0; -#X connect 6 1 9 1; -#X connect 7 0 9 0; -#X connect 8 0 5 1; -#X restore 186 132 pd tables; -#X obj 25 117 metro 500; -#X floatatom 67 178 5 0 0 0 - - -; -#X obj 25 203 makenote 64 250; -#X obj 27 229 pack; -#X obj 27 253 s syn-midinoteon; -#X obj 25 98 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 -; -#X obj 329 358 numset fil x; -#X obj 329 387 numset fb x; -#X obj 329 416 numset fa x; -#X obj 329 445 numset fd x; -#X obj 329 474 numset fs x; -#X obj 329 503 numset fr x; -#X obj 329 532 numset q x; -#X floatatom 101 96 5 0 0 0 - - -; -#X floatatom 155 176 5 0 0 0 - - -; -#X floatatom 115 149 5 0 0 0 - - -; -#X obj 25 178 + 24; -#X obj 25 149 random 48; -#X obj 329 15 preset preset1 x; -#X obj 329 62 preset preset2 x; -#X obj 329 108 preset preset3 x; -#X obj 329 155 preset preset4 x; -#X obj 330 561 numset 2nd x; -#X obj 16 626 pack 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; -#X text 451 219 amplitude; -#X text 440 246 amp attack time; -#X text 445 279 amp decay time; -#X text 448 305 amp sustain level (%); -#X text 448 331 amp release time; -#X text 454 362 filter sweep; -#X text 445 392 filter base pitch; -#X text 444 424 filter attack time; -#X text 444 450 filter decay time; -#X text 448 480 filter sustain; -#X text 448 507 filter release time; -#X text 453 535 q; -#X text 450 566 2nd osc detune; -#X text 444 596 2nd osc amp (%); -#X text 508 666 OUTPUT LEVEL; -#X text 41 14 polyphonic synth with; -#X text 40 37 voice presets; -#X text 21 74 random-note tester; -#X obj 330 590 numset 2pc x; -#X connect 0 0 1 1; -#X connect 1 0 0 0; -#X connect 2 0 1 2; -#X connect 3 0 38 0; -#X connect 3 1 38 1; -#X connect 4 0 5 0; -#X connect 4 1 5 1; -#X connect 5 0 3 0; -#X connect 6 0 38 2; -#X connect 7 0 38 3; -#X connect 8 0 38 6; -#X connect 9 0 38 4; -#X connect 10 0 38 5; -#X connect 11 0 1 0; -#X connect 12 0 3 0; -#X connect 15 0 32 0; -#X connect 16 0 31 1; -#X connect 17 0 18 0; -#X connect 17 1 18 1; -#X connect 18 0 19 0; -#X connect 20 0 15 0; -#X connect 21 0 38 7; -#X connect 22 0 38 8; -#X connect 23 0 38 9; -#X connect 24 0 38 10; -#X connect 25 0 38 11; -#X connect 26 0 38 12; -#X connect 27 0 38 13; -#X connect 28 0 15 1; -#X connect 29 0 17 2; -#X connect 30 0 32 1; -#X connect 31 0 17 0; -#X connect 32 0 31 0; -#X connect 37 0 38 14; -#X connect 38 0 13 0; -#X connect 57 0 38 15; +#X connect 1 0 4 0; +#X connect 1 1 6 1; +#X connect 1 2 6 2; +#X connect 2 0 7 0; +#X connect 3 0 0 0; +#X connect 4 0 6 0; +#X connect 6 0 8 0; +#X connect 7 0 1 0; +#X connect 7 1 1 1; +#X connect 7 2 6 3; +#X connect 7 3 6 4; +#X connect 7 4 6 5; +#X connect 7 5 6 6; +#X connect 7 6 6 7; +#X connect 7 7 6 8; +#X connect 7 8 6 9; +#X connect 7 9 6 10; +#X connect 7 10 6 11; +#X connect 7 11 6 12; +#X connect 7 12 6 13; +#X connect 7 13 6 14; +#X connect 7 14 6 15; +#X connect 7 15 6 16; +#X connect 8 0 5 0; +#X restore 79 592 pd synth; +#X obj 80 203 metro 500; +#X floatatom 122 264 5 0 0 0 - - - 0; +#X obj 80 289 makenote 64 250; +#X obj 80 181 tgl 17 0 empty empty empty 0 -6 0 8 #dfdfdf #000000 #000000 +0 1; +#X obj 392 287 numset fil x; +#A saved 51; +#X obj 392 316 numset fb x; +#A saved 15; +#X obj 392 345 numset fa x; +#A saved 2; +#X obj 392 374 numset fd x; +#A saved 509; +#X obj 392 403 numset fs x; +#A saved 37; +#X obj 392 432 numset fr x; +#A saved 200; +#X obj 392 461 numset q x; +#A saved 0.48; +#X floatatom 140 179 5 0 0 0 - - - 0; +#X floatatom 182 264 5 0 0 0 - - - 0; +#X floatatom 158 211 5 0 0 0 - - - 0; +#X obj 80 264 + 24; +#X obj 80 235 random 48; +#X obj 63 68 preset preset1 x; +#X obj 184 68 preset preset2 x; +#X obj 310 68 preset preset3 x; +#X obj 435 68 preset preset4 x; +#X obj 393 490 numset 2nd x; +#A saved 1200; +#X text 76 156 random-note tester; +#X obj 393 519 numset 2pc x; +#A saved 0; +#X obj 357 652 s flush; +#X obj 357 619 bng 17 250 50 0 empty empty empty 17 7 0 10 #dfdfdf +#000000 #000000; +#X obj 79 640 output~; +#X text 476 145 amplitude; +#X text 476 174 amp attack time; +#X text 476 203 amp decay time; +#X text 476 232 amp sustain level (%); +#X text 476 261 amp release time; +#X text 476 290 filter sweep; +#X text 476 319 filter base pitch; +#X text 476 348 filter attack time; +#X text 476 377 filter decay time; +#X text 476 406 filter sustain; +#X text 476 435 filter release time; +#X text 476 493 2nd osc detune; +#X text 476 522 2nd osc amp (%); +#X text 382 619 flush hanging notes; +#X obj 79 555 pack f f f f f f f f f f f f f f f f; +#X text 99 25 polyphonic synth with voice presets; +#X obj 79 325 pack f f; +#X connect 0 0 49 0; +#X connect 0 1 49 1; +#X connect 1 0 2 0; +#X connect 1 1 2 1; +#X connect 2 0 0 0; +#X connect 3 0 49 2; +#X connect 4 0 49 3; +#X connect 5 0 49 6; +#X connect 6 0 49 4; +#X connect 7 0 49 5; +#X connect 8 0 34 0; +#X connect 8 0 34 1; +#X connect 9 0 24 0; +#X connect 10 0 23 1; +#X connect 11 0 51 0; +#X connect 11 1 51 1; +#X connect 12 0 9 0; +#X connect 13 0 49 7; +#X connect 14 0 49 8; +#X connect 15 0 49 9; +#X connect 16 0 49 10; +#X connect 17 0 49 11; +#X connect 18 0 49 12; +#X connect 19 0 49 13; +#X connect 20 0 9 1; +#X connect 21 0 11 2; +#X connect 22 0 24 1; +#X connect 23 0 11 0; +#X connect 24 0 23 0; +#X connect 29 0 49 14; +#X connect 31 0 49 15; +#X connect 33 0 32 0; +#X connect 49 0 8 0; +#X connect 51 0 0 0; diff -Nru puredata-0.52.1+ds0/doc/7.stuff/synth/gadsr.pd puredata-0.52.2+ds0/doc/7.stuff/synth/gadsr.pd --- puredata-0.52.1+ds0/doc/7.stuff/synth/gadsr.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/7.stuff/synth/gadsr.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,4 +1,4 @@ -#N canvas 71 56 698 578 12; +#N canvas 425 105 698 578 12; #X obj 9 412 inlet; #X obj 24 314 inlet; #X text 21 437 trigger; @@ -7,30 +7,30 @@ #X obj 289 316 inlet; #X obj 426 321 inlet; #X obj 566 321 inlet; -#X text 26 366 level; +#X text 44 103 level; #X obj 156 512 outlet~; -#X text 148 365 attack; -#X text 284 366 decay; -#X text 390 366 sustain; -#X text 536 374 release; +#X text 73 103 attack; +#X text 118 104 decay; +#X text 140 101 sustain; +#X text 182 102 release; #X obj 460 480 snapshot~; #X obj 460 452 metro 200; #X msg 460 508 set \$1; -#X floatatom 475 13 5 0 0; +#X floatatom 208 54 5 0 0 0 - - - 0; #X obj 15 286 f \$1; #X obj 460 426 loadbang; #X obj 13 233 loadbang; -#X obj 273 58 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 346 63 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X msg 346 85 0; -#X obj 206 60 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X msg 206 81 1; -#X msg 273 83 -1; +#X obj 161 55 bng 15 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#000000; +#X obj 176 55 bng 15 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#000000; +#X msg 347 133 0; +#X obj 146 55 bng 15 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#000000; +#X msg 207 129 1; +#X msg 274 131 -1; #X obj 143 288 f \$2; -#X floatatom 143 342 4 0 0; +#X floatatom 88 76 4 0 0 0 - - - 0; #N canvas 110 169 840 732 control 0; #X obj 368 662 outlet; #X obj 37 46 inlet; @@ -95,15 +95,15 @@ #X obj 280 288 f \$2; #X obj 410 286 f \$2; #X obj 543 286 f \$2; -#X floatatom 280 345 4 0 0; -#X floatatom 410 345 4 0 0; -#X floatatom 543 346 4 0 0; +#X floatatom 121 76 4 0 0 0 - - - 0; +#X floatatom 155 76 4 0 0 0 - - - 0; +#X floatatom 190 76 4 0 0 0 - - - 0; #X obj 489 74 pack 0 20; #X msg 495 110 0; #X obj 489 47 t f b; #X text 104 541 gadsr - arguments: level \, attack time \, decay time \, sustain percentage \, release time; -#X floatatom 15 341 4 0 0; +#X floatatom 53 76 4 0 0 0 - - - 0; #X connect 0 0 29 0; #X connect 1 0 40 0; #X connect 3 0 28 0; @@ -143,4 +143,4 @@ #X connect 38 0 36 0; #X connect 38 1 37 0; #X connect 40 0 29 1; -#X coords 0 0 1 1 200 40 1; +#X coords 0 0 1 1 200 48 1 50 50; diff -Nru puredata-0.52.1+ds0/doc/7.stuff/synth/numset.pd puredata-0.52.2+ds0/doc/7.stuff/synth/numset.pd --- puredata-0.52.1+ds0/doc/7.stuff/synth/numset.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/7.stuff/synth/numset.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,27 +1,37 @@ -#N canvas 672 25 448 396 10; -#X obj 11 240 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 0 0 10 --262144 -1 -1 0 256; -#X obj 11 262 outlet; -#X obj 78 267 s \$1-out; -#X obj 189 49 r \$1-in; -#X obj 191 130 r \$2-in; -#X obj 191 177 route \$1 -record-; -#X obj 191 205 f; -#X obj 245 289 pack s 0; -#X obj 248 203 b; -#X obj 245 340 s \$2-out; -#X msg 245 315 add list \$1 \$2; -#X obj 248 228 symbol \$1-in; -#X connect 0 0 1 0; -#X connect 0 0 2 0; -#X connect 0 0 7 1; -#X connect 3 0 0 0; -#X connect 4 0 5 0; -#X connect 5 0 6 0; -#X connect 5 1 8 0; -#X connect 6 0 0 0; -#X connect 7 0 10 0; -#X connect 8 0 11 0; -#X connect 10 0 9 0; -#X connect 11 0 7 0; -#X coords 0 0 1 1 80 24 1; +#N canvas 946 107 629 541 10; +#X obj 282 416 outlet; +#X obj 128 172 r \$2-in; +#X obj 128 219 route \$1 -record-; +#X obj 128 247 f; +#X obj 177 245 b; +#X obj 177 352 s \$2-out; +#X msg 177 327 add list \$1 \$2; +#X obj 177 270 symbol \$1-in; +#X obj 177 301 pack s f; +#X floatatom 21 301 7 0 0 0 - \$1-in \$1-out 16; +#X obj 128 283 s \$1-in; +#X obj 282 307 r \$1-out; +#X obj 394 310 savestate; +#X obj 445 352 f; +#X obj 394 374 s \$1-in; +#X obj 462 324 r \$1-out; +#X obj 355 266 loadbang; +#X obj 355 307 f; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 10 0; +#X connect 4 0 7 0; +#X connect 6 0 5 0; +#X connect 7 0 8 0; +#X connect 8 0 6 0; +#X connect 11 0 8 1; +#X connect 11 0 0 0; +#X connect 12 0 14 0; +#X connect 12 0 17 1; +#X connect 12 1 13 0; +#X connect 13 0 12 0; +#X connect 15 0 13 1; +#X connect 16 0 17 0; +#X connect 17 0 0 0; +#X coords 0 0 1 1 74 24 2 20 300; diff -Nru puredata-0.52.1+ds0/doc/7.stuff/synth/preset.pd puredata-0.52.2+ds0/doc/7.stuff/synth/preset.pd --- puredata-0.52.1+ds0/doc/7.stuff/synth/preset.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/7.stuff/synth/preset.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,54 +1,50 @@ -#N canvas 69 59 443 360 12; +#N canvas 849 54 433 485 12; #X obj 210 286 textfile; -#X obj 8 174 bng 15 250 50 0 empty empty store 16 7 0 10 -262144 -1 --1; -#X obj 8 320 bng 15 250 50 0 empty empty recall 15 7 0 10 -262144 -1 --1; -#X obj 408 330 tgl 10 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 -1; +#X obj 203 421 bng 15 250 50 0 empty empty store 16 7 0 10 #fcfcfc +#000000 #000000; +#X obj 257 422 bng 15 250 50 0 empty empty recall 16 7 0 10 #fcfcfc +#000000 #000000; #X obj 104 59 t b b b; -#X msg 219 121 clear; -#X msg 114 149 -record-; -#X obj 61 207 symbol \$1.txt; -#X obj 363 115 1; +#X msg 210 137 clear; +#X msg 127 107 -record-; +#X obj 73 201 symbol \$1.txt; #X obj 310 191 symbol \$1.txt; #X obj 312 165 loadbang; #X msg 310 216 read \$1 cr; -#X msg 62 234 write \$1 cr; -#X obj 75 299 until; +#X msg 73 228 write \$1 cr; +#X obj 17 333 until; #X msg 210 322 \; \$1 \$2; -#X obj 112 175 s \$2-in; +#X obj 127 133 s \$2-in; #X obj 224 187 r \$2-out; -#X obj 77 265 t b b; -#X msg 140 268 rewind; -#X obj 308 295 print; +#X obj 17 290 t b b; +#X msg 70 351 rewind; #X obj 224 220 spigot; -#X obj 311 126 1; -#X obj 278 124 0; -#X connect 0 0 14 0; -#X connect 0 1 13 1; -#X connect 1 0 4 0; -#X connect 2 0 17 0; -#X connect 4 0 7 0; -#X connect 4 0 8 0; -#X connect 4 0 22 0; -#X connect 4 1 6 0; -#X connect 4 2 5 0; -#X connect 4 2 21 0; -#X connect 5 0 0 0; -#X connect 6 0 15 0; -#X connect 7 0 12 0; -#X connect 8 0 3 0; -#X connect 9 0 11 0; -#X connect 10 0 9 0; +#X obj 311 126 f 1; +#X obj 278 124 f 0; +#X obj 272 332 print; +#X connect 0 0 12 0; +#X connect 0 0 20 0; +#X connect 0 1 11 1; +#X connect 1 0 3 0; +#X connect 2 0 15 0; +#X connect 3 0 6 0; +#X connect 3 0 19 0; +#X connect 3 1 5 0; +#X connect 3 2 4 0; +#X connect 3 2 18 0; +#X connect 4 0 0 0; +#X connect 5 0 13 0; +#X connect 6 0 10 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 9 0 0 0; +#X connect 10 0 0 0; #X connect 11 0 0 0; -#X connect 12 0 0 0; -#X connect 13 0 0 0; -#X connect 16 0 20 0; -#X connect 17 0 13 0; -#X connect 17 1 18 0; -#X connect 18 0 0 0; -#X connect 20 0 0 0; -#X connect 21 0 20 1; -#X connect 22 0 20 1; -#X coords 0 0 1 1 90 35 1; +#X connect 14 0 17 0; +#X connect 15 0 11 0; +#X connect 15 1 16 0; +#X connect 16 0 0 0; +#X connect 17 0 0 0; +#X connect 18 0 17 1; +#X connect 19 0 17 1; +#X coords 0 0 1 1 110 40 1 200 400; diff -Nru puredata-0.52.1+ds0/doc/7.stuff/synth/synthvoice.pd puredata-0.52.2+ds0/doc/7.stuff/synth/synthvoice.pd --- puredata-0.52.1+ds0/doc/7.stuff/synth/synthvoice.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/7.stuff/synth/synthvoice.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,73 +1,73 @@ -#N canvas 218 43 728 639 12; -#X obj 61 616 outlet~; -#X obj 363 475 *~; -#X obj 166 328 *~; +#N canvas 854 108 685 630 12; +#X obj 146 571 outlet~; +#X obj 146 534 *~; +#X obj 166 318 *~; #X obj 166 351 *~; -#X obj 40 325 mtof; +#X obj 22 325 mtof; #X obj 180 52 inlet; -#X obj 61 565 inlet~; -#X obj 61 592 +~; -#X obj 473 266 gadsr; +#X obj 418 265 gadsr; #X obj 166 265 gadsr; -#X obj 106 115 dbtorms; -#X obj 106 141 sqrt; -#X obj 106 166 sqrt; -#X obj 461 322 +~; -#X obj 461 348 tabread4~ mtof; -#X obj 405 464 vcf~; -#X obj 42 416 phasor~; -#X obj 106 349 + 0.3; -#X obj 106 377 phasor~; -#X obj 42 455 +~; -#X obj 180 75 unpack 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; +#X obj 204 187 dbtorms; +#X obj 204 213 sqrt; +#X obj 204 238 sqrt; +#X obj 400 373 +~; +#X obj 22 493 vcf~, f 11; +#X obj 22 386 phasor~; +#X obj 86 349 + 0.3; +#X obj 86 377 phasor~; +#X obj 22 415 +~; #X text 173 19 on/off pitch amp a d s r filt filt-bias a d s r filt-q 2nd-interval 2nd-percentage; -#X obj 106 281 +; -#X obj 106 319 mtof; -#X obj 120 414 *~ 1; -#X obj 345 391 * 0.01; -#X obj 133 241 * 0.01; -#X connect 1 0 7 1; +#X obj 86 281 +; +#X obj 86 319 mtof; +#X obj 86 414 *~ 1; +#X obj 345 392 * 0.01; +#X obj 104 251 * 0.01; +#X obj 180 75 unpack f f f f f f f f f f f f f f f f; +#X obj 22 446 *~ 2; +#X obj 22 469 -~ 1; +#X obj 400 404 mtof~; +#X connect 1 0 0 0; #X connect 2 0 3 0; #X connect 2 0 3 1; -#X connect 3 0 1 0; -#X connect 4 0 16 0; -#X connect 5 0 20 0; -#X connect 6 0 7 0; -#X connect 7 0 0 0; -#X connect 8 0 13 1; -#X connect 9 0 2 0; -#X connect 9 0 2 1; -#X connect 10 0 11 0; -#X connect 11 0 12 0; -#X connect 12 0 9 1; -#X connect 13 0 14 0; -#X connect 14 0 15 1; -#X connect 15 0 1 1; -#X connect 16 0 19 0; -#X connect 17 0 18 0; -#X connect 18 0 24 0; -#X connect 19 0 15 0; -#X connect 20 0 9 0; -#X connect 20 0 8 0; -#X connect 20 1 4 0; -#X connect 20 1 22 0; -#X connect 20 2 10 0; -#X connect 20 3 9 2; -#X connect 20 4 9 3; -#X connect 20 5 9 4; -#X connect 20 6 9 5; -#X connect 20 7 8 1; -#X connect 20 8 13 0; -#X connect 20 9 8 2; -#X connect 20 10 8 3; -#X connect 20 11 8 4; -#X connect 20 12 8 5; -#X connect 20 13 15 2; -#X connect 20 14 26 0; -#X connect 20 15 25 0; -#X connect 22 0 23 0; -#X connect 23 0 17 0; -#X connect 24 0 19 1; -#X connect 25 0 24 1; -#X connect 26 0 22 1; +#X connect 3 0 1 1; +#X connect 4 0 13 0; +#X connect 5 0 23 0; +#X connect 6 0 11 1; +#X connect 7 0 2 0; +#X connect 7 0 2 1; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 7 1; +#X connect 11 0 26 0; +#X connect 12 0 1 0; +#X connect 13 0 16 0; +#X connect 14 0 15 0; +#X connect 15 0 20 0; +#X connect 16 0 24 0; +#X connect 18 0 19 0; +#X connect 19 0 14 0; +#X connect 20 0 16 1; +#X connect 21 0 20 1; +#X connect 22 0 18 1; +#X connect 23 0 18 0; +#X connect 23 0 4 0; +#X connect 23 1 7 0; +#X connect 23 1 6 0; +#X connect 23 2 8 0; +#X connect 23 3 7 2; +#X connect 23 4 7 3; +#X connect 23 5 7 4; +#X connect 23 6 7 5; +#X connect 23 7 6 1; +#X connect 23 8 11 0; +#X connect 23 9 6 2; +#X connect 23 10 6 3; +#X connect 23 11 6 4; +#X connect 23 12 6 5; +#X connect 23 13 12 2; +#X connect 23 14 22 0; +#X connect 23 15 21 0; +#X connect 24 0 25 0; +#X connect 25 0 12 0; +#X connect 26 0 12 1; diff -Nru puredata-0.52.1+ds0/doc/7.stuff/synth/test-gadsr.pd puredata-0.52.2+ds0/doc/7.stuff/synth/test-gadsr.pd --- puredata-0.52.1+ds0/doc/7.stuff/synth/test-gadsr.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/7.stuff/synth/test-gadsr.pd 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -#N canvas 45 88 785 525 10; -#X obj 208 171 gadsr; diff -Nru puredata-0.52.1+ds0/doc/7.stuff/tools/latency.pd puredata-0.52.2+ds0/doc/7.stuff/tools/latency.pd --- puredata-0.52.1+ds0/doc/7.stuff/tools/latency.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/7.stuff/tools/latency.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,5 +1,5 @@ #N canvas 292 145 707 484 12; -#X floatatom 211 98 4 0 0 0 - - adc-gain; +#X floatatom 211 98 4 0 0 0 - - adc-gain 0; #X text 289 17 latency measurement; #N canvas 340 47 928 842 guts 0; #X obj 292 35 adc~ 1 2 3 4 5 6 7 8; @@ -24,7 +24,7 @@ #X msg 59 177 set \$1; #X obj 59 201 s inchannel-set; #N canvas 0 22 450 300 (subpatch) 0; -#X array pulse 120 float 3; +#X array pulse 120 float 1; #A 0 0 0 0 0 0 0 0 0 0 0 -0 -6.19458e-05 -0.000494103 -0.00165937 -0.00390618 -0.00756153 -0.0129244 -0.0202596 -0.0297923 -0.0417031 -0.0561239 -0.0731343 -0.0927595 -0.114969 -0.139674 -0.166732 -0.195943 -0.227055 @@ -48,8 +48,8 @@ #X obj 52 616 until; #X obj 123 676 t f f; #X obj 46 780 tabwrite pulse; -#X obj 50 563 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 --1; +#X obj 50 563 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000; #X msg 143 570 \; pulse const 0; #X msg 140 620 0; #X obj 44 676 sel 100; @@ -57,8 +57,8 @@ #X obj 67 712 * 0.06283; #X obj 615 264 metro 1000; #X obj 615 218 r metro-on; -#X obj 614 243 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 -1; +#X obj 614 243 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000 0 1; #X obj 628 326 vline~; #X obj 627 357 tabread4~ pulse; #X obj 687 31 r inchannel; @@ -76,8 +76,8 @@ #X obj 650 581 dac~ 1 2 3 4 5 6 7 8; #X obj 431 268 bp~ 220 0.7; #X obj 693 622 env~ 65536; -#X floatatom 693 649 4 0 0 0 - - -; -#X floatatom 749 329 5 0 0 0 - - -; +#X floatatom 693 649 4 0 0 0 - - - 0; +#X floatatom 749 329 5 0 0 0 - - - 0; #X obj 704 414 +~; #X obj 430 292 rzero~ -1; #X obj 431 317 rzero~ -1; @@ -92,10 +92,10 @@ #X obj 332 245 dbtorms; #X obj 290 246 *~ 1; #X obj 160 281 env~ 65536; -#X floatatom 160 308 4 0 0 0 - - -; +#X floatatom 160 308 4 0 0 0 - - - 0; #X obj 431 370 bonk~; -#X obj 431 395 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 --1 -1; +#X obj 431 395 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; #X obj 412 489 -~ 0.1; #X obj 414 656 -~ 1; #X obj 414 683 *~ -1; @@ -103,7 +103,7 @@ #X msg 616 714 0; #X obj 664 703 del 800; #X obj 665 728 snapshot~; -#X floatatom 665 779 6 0 0 0 - - -; +#X floatatom 665 779 6 0 0 0 - - - 0; #X obj 666 756 * 1000; #X obj 87 328 s adc-db; #X obj 733 646 s dac-db; @@ -239,20 +239,20 @@ #X connect 94 0 93 0; #X connect 95 0 76 0; #X restore 571 350 pd guts; -#X floatatom 214 50 4 1 8 0 inchannel inchannel-set inchannel; -#X floatatom 563 229 6 0 0 0 - latency -; +#X floatatom 214 50 4 1 8 0 inchannel inchannel-set inchannel 0; +#X floatatom 563 229 6 0 0 0 - latency - 0; #X text 80 96 adjust gain here:; #X text 392 231 latency in milliseconds; #X text 508 207 THE ANSWER IS:; -#X floatatom 464 144 4 0 0 0 - adc-db -; -#X floatatom 463 93 4 0 0 0 - dac-db -; +#X floatatom 464 144 4 0 0 0 - adc-db - 0; +#X floatatom 463 93 4 0 0 0 - dac-db - 0; #X text 503 143 RMS amplitude in; #X text 500 94 RMS amplitude out; #X text 78 142 so that RMS amplitude in is between 60 and 70; #X text 80 121 (typically between -20 and 20); #X text 444 421 updated for Pd version 0.43; #X obj 272 216 bng 25 250 50 0 empty discontinuity empty 17 7 0 10 --262144 -1 -1; +#fcfcfc #000000 #000000; #X text 75 212 discontinuity: this flashes if there are audio errors , f 27; #X text 60 275 To use this patch \, connect your audio output back diff -Nru puredata-0.52.1+ds0/doc/7.stuff/tools/testtone16.pd puredata-0.52.2+ds0/doc/7.stuff/tools/testtone16.pd --- puredata-0.52.1+ds0/doc/7.stuff/tools/testtone16.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/7.stuff/tools/testtone16.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,25 +1,25 @@ #N canvas 350 198 706 319 12; -#X floatatom 86 283 3 0 0 0 - - -; +#X floatatom 96 283 3 0 0 0 - - - 0; #X obj 36 232 notein; #X obj 36 258 stripnote; -#X floatatom 36 283 3 0 0 0 - - -; -#X text 224 229 MIDI OUT; +#X floatatom 36 283 3 0 0 0 - - - 0; +#X text 244 229 MIDI OUT; #X text 36 208 MIDI IN; -#X floatatom 171 282 3 0 0 0 - - -; -#X floatatom 132 282 3 0 0 0 - - -; -#X obj 132 257 ctlin; -#N canvas 0 0 484 446 midi 0; +#X floatatom 191 282 3 0 0 0 - - - 0; +#X floatatom 152 282 3 0 0 0 - - - 0; +#X obj 152 257 ctlin; +#N canvas 0 23 484 446 midi 0; #X obj 96 65 inlet; #X obj 96 262 noteout; -#X floatatom 96 92 0 0 0 0 - - -; +#X floatatom 96 92 0 0 0 0 - - - 0; #X obj 338 113 loadbang; #X obj 96 184 metro; #X obj 96 236 makenote; -#X floatatom 189 166 0 0 0 0 - - -; +#X floatatom 189 166 0 0 0 0 - - - 0; #X obj 96 210 f; -#X floatatom 145 166 0 0 0 0 - - -; -#X floatatom 233 166 0 0 0 0 - - -; -#X floatatom 276 166 0 0 0 0 - - -; +#X floatatom 145 166 0 0 0 0 - - - 0; +#X floatatom 233 166 0 0 0 0 - - - 0; +#X floatatom 276 166 0 0 0 0 - - - 0; #X msg 338 148 500; #X msg 370 148 60; #X msg 399 148 64; @@ -29,7 +29,7 @@ #X text 232 145 vel; #X text 268 146 length; #X obj 230 257 ctlout 1; -#X floatatom 230 228 0 0 0 0 - - -; +#X floatatom 230 228 0 0 0 0 - - - 0; #X connect 0 0 2 0; #X connect 2 0 4 0; #X connect 3 0 11 0; @@ -49,22 +49,22 @@ #X connect 13 0 9 0; #X connect 14 0 10 0; #X connect 20 0 19 0; -#X restore 224 279 pd midi; -#X floatatom 170 107 3 0 0 0 - #0-tone-vu1 -; -#X floatatom 197 107 3 0 0 0 - #0-tone-vu2 -; -#X obj 170 144 tgl 20 0 \$0-tone-ch1 \$0-tone-ch1 1 5 -8 0 12 -262144 --1 -1 1 1; -#X obj 195 144 tgl 20 0 \$0-tone-ch2 \$0-tone-ch2 2 5 -8 0 12 -262144 --1 -1 1 1; -#X obj 224 253 tgl 20 0 empty empty empty 20 8 0 8 -262144 -1 -1 0 -1; +#X restore 244 279 pd midi; +#X floatatom 170 107 3 0 0 0 - \$0-tone-vu1 - 0; +#X floatatom 197 107 3 0 0 0 - \$0-tone-vu2 - 0; +#X obj 170 144 tgl 20 0 \$0-tone-ch1 \$0-tone-ch1 1 5 -8 0 12 #fcfcfc +#000000 #000000 0 1; +#X obj 195 144 tgl 20 0 \$0-tone-ch2 \$0-tone-ch2 2 5 -8 0 12 #fcfcfc +#000000 #000000 0 1; +#X obj 244 253 tgl 20 0 empty empty empty 20 8 0 8 #fcfcfc #000000 +#000000 0 1; #N canvas 540 324 662 344 more 0; -#X floatatom 42 209 0 0 0 0 - - -; +#X floatatom 42 209 0 0 0 0 - - - 0; #X obj 42 183 f; #X obj 79 183 + 1; #X obj 42 150 metro 1000; -#X obj 42 123 tgl 20 0 empty empty empty 20 8 0 8 -262144 -1 -1 0 1 -; +#X obj 42 123 tgl 20 0 empty empty empty 20 8 0 8 #fcfcfc #000000 #000000 +0 1; #X msg 264 142 \; pd restart-audio; #X text 24 30 this window has various weird debugging stuff...; #X text 218 97 ALSA gets twisted after a few; @@ -73,8 +73,8 @@ #X text 22 93 measurement works:; #X obj 516 159 adc~; #X obj 515 206 print~; -#X obj 524 183 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; +#X obj 524 183 bng 15 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#000000; #X connect 1 0 2 0; #X connect 1 0 0 0; #X connect 2 0 1 1; @@ -83,28 +83,28 @@ #X connect 11 0 12 0; #X connect 13 0 12 0; #X restore 584 272 pd more; -#X obj 228 144 tgl 20 0 \$0-tone-ch3 \$0-tone-ch3 3 5 -8 0 12 -262144 --1 -1 1 1; -#X obj 253 144 tgl 20 0 \$0-tone-ch4 \$0-tone-ch4 4 5 -8 0 12 -262144 --1 -1 1 1; -#X obj 286 144 tgl 20 0 \$0-tone-ch5 \$0-tone-ch5 5 5 -8 0 12 -262144 --1 -1 1 1; -#X obj 311 144 tgl 20 0 \$0-tone-ch6 \$0-tone-ch6 6 5 -8 0 12 -262144 --1 -1 1 1; -#X obj 647 132 bng 15 250 50 0 \$0-tone-all empty ALL 20 8 0 12 -262144 --1 -1; -#X obj 647 153 bng 15 250 50 0 \$0-tone-none empty NONE 20 8 0 12 -262144 --1 -1; -#X floatatom 227 107 3 0 0 0 - #0-tone-vu3 -; -#X floatatom 254 107 3 0 0 0 - #0-tone-vu4 -; -#X floatatom 285 107 3 0 0 0 - #0-tone-vu5 -; -#X floatatom 312 107 3 0 0 0 - #0-tone-vu6 -; -#X floatatom 345 107 3 0 0 0 - #0-tone-vu7 -; -#X floatatom 372 107 3 0 0 0 - #0-tone-vu8 -; -#X obj 345 144 tgl 20 0 \$0-tone-ch7 \$0-tone-ch7 7 5 -8 0 12 -262144 --1 -1 1 1; -#X obj 370 144 tgl 20 0 \$0-tone-ch8 \$0-tone-ch8 8 5 -8 0 12 -262144 --1 -1 1 1; +#X obj 228 144 tgl 20 0 \$0-tone-ch3 \$0-tone-ch3 3 5 -8 0 12 #fcfcfc +#000000 #000000 0 1; +#X obj 253 144 tgl 20 0 \$0-tone-ch4 \$0-tone-ch4 4 5 -8 0 12 #fcfcfc +#000000 #000000 0 1; +#X obj 286 144 tgl 20 0 \$0-tone-ch5 \$0-tone-ch5 5 5 -8 0 12 #fcfcfc +#000000 #000000 0 1; +#X obj 311 144 tgl 20 0 \$0-tone-ch6 \$0-tone-ch6 6 5 -8 0 12 #fcfcfc +#000000 #000000 0 1; +#X obj 647 132 bng 15 250 50 0 \$0-tone-all empty ALL 20 8 0 12 #fcfcfc +#000000 #000000; +#X obj 647 153 bng 15 250 50 0 \$0-tone-none empty NONE 20 8 0 12 #fcfcfc +#000000 #000000; +#X floatatom 227 107 3 0 0 0 - \$0-tone-vu3 - 0; +#X floatatom 254 107 3 0 0 0 - \$0-tone-vu4 - 0; +#X floatatom 285 107 3 0 0 0 - \$0-tone-vu5 - 0; +#X floatatom 312 107 3 0 0 0 - \$0-tone-vu6 - 0; +#X floatatom 345 107 3 0 0 0 - \$0-tone-vu7 - 0; +#X floatatom 372 107 3 0 0 0 - \$0-tone-vu8 - 0; +#X obj 345 144 tgl 20 0 \$0-tone-ch7 \$0-tone-ch7 7 5 -8 0 12 #fcfcfc +#000000 #000000 0 1; +#X obj 370 144 tgl 20 0 \$0-tone-ch8 \$0-tone-ch8 8 5 -8 0 12 #fcfcfc +#000000 #000000 0 1; #N canvas 637 91 321 422 audio 0; #X obj 25 303 s~ \$0-tone-mon; #X obj 25 277 line~; @@ -149,8 +149,8 @@ #N canvas 731 146 468 559 \$0-tone-generator 0; #X obj 22 187 osc~; #X obj 22 81 mtof; -#X floatatom 22 58 0 0 0 0 - - -; -#X floatatom 22 103 0 0 0 0 - - -; +#X floatatom 22 58 0 0 0 0 - - - 0; +#X floatatom 22 103 0 0 0 0 - - - 0; #X obj 22 163 sig~; #X obj 22 33 r \$0-tone-pitch; #X obj 119 179 noise~; @@ -163,11 +163,11 @@ #X obj 119 210 *~; #X msg 191 199 \$1 20; #X msg 281 200 \$1 20; -#X floatatom 273 109 0 0 0 0 - - -; +#X floatatom 273 109 0 0 0 0 - - - 0; #X obj 64 504 *~; #X obj 86 477 line~; #X obj 86 450 pack 0 50; -#X floatatom 201 365 0 0 0 0 - - -; +#X floatatom 201 365 0 0 0 0 - - - 0; #X obj 86 423 dbtorms; #X obj 64 530 s~ \$0-tone-osc; #X obj 201 282 r \$0-tone-radio; @@ -242,7 +242,7 @@ #X connect 41 0 44 0; #X connect 42 0 43 0; #X connect 44 0 2 0; -#X restore 24 68 pd \$0-tone-generator; +#X restore 34 68 pd \$0-tone-generator; #N canvas 184 0 1014 892 assigns 0; #X obj 12 71 hip~ 5; #X obj 20 122 int; @@ -709,8 +709,8 @@ #X connect 238 0 192 0; #X connect 239 0 203 0; #X restore 38 387 pd assigns; -#X obj 178 87 loadbang; -#X obj 178 111 1; +#X obj 161 108 loadbang; +#X obj 161 132 f 1; #X connect 1 0 0 0; #X connect 2 0 1 0; #X connect 3 0 2 0; @@ -719,30 +719,30 @@ #X connect 10 0 11 0; #X connect 11 0 4 0; #X restore 584 249 pd audio; -#X floatatom 408 108 3 0 0 0 - #0-tone-vu9 -; -#X floatatom 435 108 3 0 0 0 - #0-tone-vu10 -; -#X floatatom 466 108 3 0 0 0 - #0-tone-vu11 -; -#X floatatom 493 108 3 0 0 0 - #0-tone-vu12 -; -#X floatatom 524 108 3 0 0 0 - #0-tone-vu13 -; -#X floatatom 551 108 3 0 0 0 - #0-tone-vu14 -; -#X floatatom 584 108 3 0 0 0 - #0-tone-vu15 -; -#X floatatom 611 108 3 0 0 0 - #0-tone-vu16 -; -#X obj 408 144 tgl 20 0 \$0-tone-ch9 \$0-tone-ch9 9 5 -8 0 12 -262144 --1 -1 1 1; -#X obj 433 144 tgl 20 0 \$0-tone-ch10 \$0-tone-ch10 10 5 -8 0 12 -262144 --1 -1 1 1; -#X obj 466 144 tgl 20 0 \$0-tone-ch11 \$0-tone-ch11 11 5 -8 0 12 -262144 --1 -1 1 1; -#X obj 491 144 tgl 20 0 \$0-tone-ch12 \$0-tone-ch12 12 5 -8 0 12 -262144 --1 -1 1 1; -#X obj 524 144 tgl 20 0 \$0-tone-ch13 \$0-tone-ch13 13 5 -8 0 12 -262144 --1 -1 1 1; -#X obj 549 144 tgl 20 0 \$0-tone-ch14 \$0-tone-ch14 14 5 -8 0 12 -262144 --1 -1 1 1; -#X obj 583 144 tgl 20 0 \$0-tone-ch15 \$0-tone-ch15 15 5 -8 0 12 -262144 --1 -1 1 1; -#X obj 608 144 tgl 20 0 \$0-tone-ch116 \$0-tone-ch16 16 5 -8 0 12 -262144 --1 -1 1 1; +#X floatatom 408 107 3 0 0 0 - \$0-tone-vu9 - 0; +#X floatatom 435 107 3 0 0 0 - \$0-tone-vu10 - 0; +#X floatatom 466 107 3 0 0 0 - \$0-tone-vu11 - 0; +#X floatatom 493 107 3 0 0 0 - \$0-tone-vu12 - 0; +#X floatatom 524 107 3 0 0 0 - \$0-tone-vu13 - 0; +#X floatatom 551 107 3 0 0 0 - \$0-tone-vu14 - 0; +#X floatatom 584 107 3 0 0 0 - \$0-tone-vu15 - 0; +#X floatatom 611 107 3 0 0 0 - \$0-tone-vu16 - 0; +#X obj 408 144 tgl 20 0 \$0-tone-ch9 \$0-tone-ch9 9 5 -8 0 12 #fcfcfc +#000000 #000000 0 1; +#X obj 433 144 tgl 20 0 \$0-tone-ch10 \$0-tone-ch10 10 5 -8 0 12 #fcfcfc +#000000 #000000 0 1; +#X obj 466 144 tgl 20 0 \$0-tone-ch11 \$0-tone-ch11 11 5 -8 0 12 #fcfcfc +#000000 #000000 0 1; +#X obj 491 144 tgl 20 0 \$0-tone-ch12 \$0-tone-ch12 12 5 -8 0 12 #fcfcfc +#000000 #000000 0 1; +#X obj 524 144 tgl 20 0 \$0-tone-ch13 \$0-tone-ch13 13 5 -8 0 12 #fcfcfc +#000000 #000000 0 1; +#X obj 549 144 tgl 20 0 \$0-tone-ch14 \$0-tone-ch14 14 5 -8 0 12 #fcfcfc +#000000 #000000 0 1; +#X obj 583 144 tgl 20 0 \$0-tone-ch15 \$0-tone-ch15 15 5 -8 0 12 #fcfcfc +#000000 #000000 0 1; +#X obj 608 144 tgl 20 0 \$0-tone-ch116 \$0-tone-ch16 16 5 -8 0 12 #fcfcfc +#000000 #000000 0 1; #X text 235 25 16 channel test tone patch; #X text 316 77 AUDIO INPUT (RMS dB); #X text 337 175 AUDIO OUTPUT ON/OFF; @@ -750,19 +750,20 @@ #X text 101 88 noise; #X text 100 105 tone; #X obj 84 90 vradio 15 1 0 2 \$0-tone-type \$0-tone-type-set empty -0 -6 0 8 -262144 -1 -1 1; +0 -6 0 8 #fcfcfc #000000 #000000 0; #X obj 22 91 vradio 15 1 0 3 \$0-tone-radio \$0-tone-radio-set empty -0 -6 0 8 -262144 -1 -1 2; -#X floatatom 22 144 3 0 100 1 - #0-tone-level-set #0-tone-level; -#X floatatom 84 123 5 0 100 1 pitch #0-tone-pitch-set #0-tone-pitch +0 -6 0 8 #fcfcfc #000000 #000000 0; +#X floatatom 22 144 3 0 100 1 - \$0-tone-level-set \$0-tone-level 0 ; -#X floatatom 84 145 5 0 20000 1 HZ #0-tone-hz-set #0-tone-hz; +#X floatatom 84 123 5 0 100 1 pitch \$0-tone-pitch-set \$0-tone-pitch +0; +#X floatatom 84 145 5 0 20000 1 HZ \$0-tone-hz-set \$0-tone-hz 0; #X text 48 145 dB; #X text 28 67 TEST TONES; #X obj 265 201 tgl 15 0 \$0-tone-monitor set-tone-monitor monitor-inputs -23 8 0 12 -262144 -1 -1 0 1; +23 8 0 12 #fcfcfc #000000 #000000 0 1; #X obj 424 202 tgl 15 0 \$0-tone-hipass \$0-tone-hipass-set input-hipass -23 8 0 12 -262144 -1 -1 1 1; +23 8 0 12 #fcfcfc #000000 #000000 0 1; #X text 39 88 80; #X text 39 105 60; #X connect 1 0 2 0; diff -Nru puredata-0.52.1+ds0/doc/7.stuff/tools/testtone.pd puredata-0.52.2+ds0/doc/7.stuff/tools/testtone.pd --- puredata-0.52.1+ds0/doc/7.stuff/tools/testtone.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/7.stuff/tools/testtone.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,62 +1,60 @@ -#N canvas 273 107 607 373 12; +#N canvas 355 108 607 373 12; #X floatatom 87 273 3 0 0 0 - - - 0; #X obj 27 221 notein; #X obj 27 247 stripnote; #X floatatom 27 272 3 0 0 0 - - - 0; -#X text 219 234 MIDI OUT; +#X text 251 232 MIDI OUT; #X text 27 197 MIDI IN; #X floatatom 170 272 3 0 0 0 - - - 0; #X floatatom 140 271 3 0 0 0 - - - 0; #X obj 140 246 ctlin; -#N canvas 0 50 484 446 midi 0; +#N canvas 587 106 553 387 midi 0; #X obj 96 65 inlet; -#X obj 96 262 noteout; -#X floatatom 96 92 0 0 0 0 - - - 0; -#X obj 338 113 loadbang; -#X obj 96 184 metro; -#X obj 96 236 makenote; -#X floatatom 189 166 0 0 0 0 - - - 0; -#X obj 96 210 f; -#X floatatom 145 166 0 0 0 0 - - - 0; -#X floatatom 233 166 0 0 0 0 - - - 0; -#X floatatom 276 166 0 0 0 0 - - - 0; -#X msg 338 148 500; -#X msg 370 148 60; -#X msg 399 148 64; -#X msg 427 148 250; -#X text 144 145 rate; -#X text 187 145 pitch; -#X text 232 145 vel; -#X text 268 146 length; -#X obj 230 257 ctlout 1; -#X floatatom 230 228 0 0 0 0 - - - 0; -#X connect 0 0 2 0; -#X connect 2 0 4 0; -#X connect 3 0 11 0; -#X connect 3 0 12 0; -#X connect 3 0 13 0; -#X connect 3 0 14 0; -#X connect 4 0 7 0; -#X connect 5 0 1 0; -#X connect 5 1 1 1; -#X connect 6 0 7 1; -#X connect 7 0 5 0; -#X connect 8 0 4 1; -#X connect 9 0 5 1; -#X connect 10 0 5 2; -#X connect 11 0 8 0; -#X connect 12 0 6 0; -#X connect 13 0 9 0; -#X connect 14 0 10 0; -#X connect 20 0 19 0; -#X restore 217 285 pd midi; -#X floatatom 178 85 3 0 0 0 - #0-tone-vu1 - 0; -#X floatatom 205 85 3 0 0 0 - #0-tone-vu2 - 0; +#X obj 271 311 noteout; +#X floatatom 156 166 4 0 0 0 - - - 0; +#X msg 156 137 500; +#X msg 200 137 60; +#X msg 243 137 64; +#X msg 294 137 250; +#X text 154 112 rate; +#X text 200 112 pitch; +#X text 245 112 vel; +#X text 281 112 length; +#X obj 384 207 ctlout 1; +#X floatatom 384 168 4 0 0 0 - - - 0; +#X obj 96 194 metro 500; +#X obj 192 271 makenote 64 250; +#X obj 147 231 float 60; +#X floatatom 200 166 4 0 0 0 - - - 0; +#X floatatom 243 166 4 0 0 0 - - - 0; +#X floatatom 294 166 4 0 0 0 - - - 0; +#X obj 96 134 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 384 65 inlet; +#X connect 0 0 19 0; +#X connect 2 0 13 1; +#X connect 3 0 2 0; +#X connect 4 0 16 0; +#X connect 5 0 17 0; +#X connect 6 0 18 0; +#X connect 12 0 11 0; +#X connect 13 0 15 0; +#X connect 14 0 1 0; +#X connect 14 1 1 1; +#X connect 15 0 14 0; +#X connect 16 0 15 1; +#X connect 17 0 14 1; +#X connect 18 0 14 2; +#X connect 19 0 13 0; +#X connect 20 0 12 0; +#X restore 249 283 pd midi; +#X floatatom 178 85 3 0 0 0 - \$0-tone-vu1 - 0; +#X floatatom 205 85 3 0 0 0 - \$0-tone-vu2 - 0; #X obj 177 132 tgl 20 0 \$0-tone-ch1 \$0-tone-ch1 1 5 -8 0 12 #fcfcfc #000000 #000000 0 1; #X obj 202 132 tgl 20 0 \$0-tone-ch2 \$0-tone-ch2 2 5 -8 0 12 #fcfcfc #000000 #000000 0 1; -#X obj 217 258 tgl 20 0 empty empty empty 20 8 0 8 #fcfcfc #000000 +#X obj 249 256 tgl 20 0 empty empty empty 20 8 0 8 #fcfcfc #000000 #000000 0 1; #X text 40 120 OFF; #X obj 443 86 tgl 15 0 \$0-tone-hipass \$0-tone-hipass-set input-hipass @@ -73,10 +71,10 @@ #000000 #000000; #X obj 428 146 bng 15 250 50 0 \$0-tone-none empty NONE 20 8 0 12 #fcfcfc #000000 #000000; -#X floatatom 244 85 3 0 0 0 - #0-tone-vu3 - 0; -#X floatatom 272 85 3 0 0 0 - #0-tone-vu4 - 0; -#X floatatom 310 85 3 0 0 0 - #0-tone-vu5 - 0; -#X floatatom 338 85 3 0 0 0 - #0-tone-vu6 - 0; +#X floatatom 244 85 3 0 0 0 - \$0-tone-vu3 - 0; +#X floatatom 272 85 3 0 0 0 - \$0-tone-vu4 - 0; +#X floatatom 310 85 3 0 0 0 - \$0-tone-vu5 - 0; +#X floatatom 338 85 3 0 0 0 - \$0-tone-vu6 - 0; #X text 237 65 AUDIO INPUT (RMS dB); #X text 101 88 noise; #X text 100 105 tone; @@ -84,8 +82,8 @@ 0 -6 0 8 #fcfcfc #000000 #000000 0; #X obj 22 91 vradio 15 1 0 3 \$0-tone-radio \$0-tone-radio-set empty 0 -6 0 8 #fcfcfc #000000 #000000 0; -#X floatatom 376 85 3 0 0 0 - #0-tone-vu7 - 0; -#X floatatom 404 85 3 0 0 0 - #0-tone-vu8 - 0; +#X floatatom 376 85 3 0 0 0 - \$0-tone-vu7 - 0; +#X floatatom 404 85 3 0 0 0 - \$0-tone-vu8 - 0; #X obj 375 132 tgl 20 0 \$0-tone-ch7 \$0-tone-ch7 7 5 -8 0 12 #fcfcfc #000000 #000000 0 1; #X obj 400 132 tgl 20 0 \$0-tone-ch8 \$0-tone-ch8 8 5 -8 0 12 #fcfcfc @@ -127,102 +125,83 @@ #X connect 8 0 11 0; #X connect 9 0 8 0; #X restore 52 76 pd glue+loadbang; -#N canvas 396 142 502 570 tone-generator 0; -#X obj 22 187 osc~; -#X obj 22 81 mtof; -#X floatatom 22 58 0 0 0 0 - - - 0; -#X floatatom 22 103 0 0 0 0 - - - 0; -#X obj 22 163 sig~; -#X obj 22 33 r \$0-tone-pitch; -#X obj 119 179 noise~; -#X obj 65 249 +~; -#X obj 282 140 - 1; -#X obj 282 172 * -1; -#X obj 191 228 line~; -#X obj 281 229 line~; -#X obj 22 211 *~; -#X obj 119 210 *~; -#X msg 191 199 \$1 20; -#X msg 281 200 \$1 20; -#X floatatom 273 109 0 0 0 0 - - - 0; -#X obj 64 504 *~; -#X obj 86 477 line~; -#X obj 86 450 pack 0 50; -#X floatatom 201 365 0 0 0 0 - - - 0; -#X obj 86 423 dbtorms; -#X obj 64 530 s~ \$0-tone-osc; -#X obj 201 282 r \$0-tone-radio; -#X obj 201 310 sel 0 1 2; -#X msg 270 333 0; -#X msg 201 335 80; -#X msg 234 335 60; -#X obj 273 86 r \$0-tone-type; -#X obj 89 359 r \$0-tone-level; -#X obj 178 453 s \$0-tone-level-set; -#X msg 177 428 set \$1; -#X obj 329 452 s \$0-tone-radio-set; -#X obj 327 369 sel 80 60 0; -#X msg 327 394 0; -#X msg 360 394 1; -#X msg 393 394 2; -#X msg 329 426 set \$1; -#X msg 423 394 2; -#X obj 72 89 s \$0-tone-pitch-set; -#X msg 72 66 set \$1; -#X obj 177 29 r \$0-tone-hz; -#X msg 75 117 set \$1; -#X obj 75 140 s \$0-tone-hz-set; -#X obj 177 55 ftom; -#X connect 0 0 12 0; +#N canvas 762 44 421 591 tone-generator 0; +#X obj 32 187 osc~; +#X obj 32 111 mtof; +#X floatatom 32 78 6 0 0 0 - - - 0; +#X floatatom 32 137 6 0 0 0 - - - 0; +#X obj 32 33 r \$0-tone-pitch; +#X obj 129 269 noise~; +#X obj 75 269 +~; +#X obj 283 160 - 1; +#X obj 283 192 * -1; +#X obj 201 238 line~; +#X obj 283 249 line~; +#X obj 32 231 *~; +#X obj 129 310 *~; +#X msg 201 209 \$1 20; +#X msg 283 220 \$1 20; +#X floatatom 283 129 0 0 0 0 - - - 0; +#X obj 74 524 *~; +#X obj 92 497 line~; +#X obj 92 470 pack 0 50; +#X floatatom 235 385 4 0 0 0 - - - 0; +#X obj 92 443 dbtorms; +#X obj 74 550 s~ \$0-tone-osc; +#X obj 201 302 r \$0-tone-radio; +#X msg 269 355 0; +#X msg 201 355 80; +#X msg 235 355 60; +#X obj 283 106 r \$0-tone-type; +#X obj 92 385 r \$0-tone-level; +#X obj 235 473 s \$0-tone-level-set; +#X msg 235 440 set \$1; +#X obj 86 131 s \$0-tone-pitch-set; +#X msg 86 108 set \$1; +#X obj 156 19 r \$0-tone-hz; +#X msg 75 165 set \$1; +#X obj 75 188 s \$0-tone-hz-set; +#X obj 156 45 ftom; +#X obj 201 330 select 0 1 2, f 15; +#X connect 0 0 11 0; #X connect 1 0 3 0; #X connect 2 0 1 0; -#X connect 2 0 40 0; -#X connect 3 0 4 0; -#X connect 3 0 42 0; -#X connect 4 0 0 0; -#X connect 5 0 2 0; -#X connect 6 0 13 0; -#X connect 7 0 17 0; -#X connect 8 0 9 0; -#X connect 9 0 15 0; +#X connect 2 0 31 0; +#X connect 3 0 33 0; +#X connect 3 0 0 0; +#X connect 4 0 2 0; +#X connect 5 0 12 0; +#X connect 6 0 16 0; +#X connect 7 0 8 0; +#X connect 8 0 14 0; +#X connect 9 0 11 1; #X connect 10 0 12 1; -#X connect 11 0 13 1; -#X connect 12 0 7 0; -#X connect 13 0 7 1; +#X connect 11 0 6 0; +#X connect 12 0 6 1; +#X connect 13 0 9 0; #X connect 14 0 10 0; -#X connect 15 0 11 0; -#X connect 16 0 8 0; -#X connect 16 0 14 0; -#X connect 17 0 22 0; -#X connect 18 0 17 1; -#X connect 19 0 18 0; -#X connect 20 0 21 0; -#X connect 20 0 31 0; -#X connect 21 0 19 0; -#X connect 23 0 24 0; -#X connect 24 0 26 0; -#X connect 24 1 27 0; -#X connect 24 2 25 0; -#X connect 25 0 20 0; -#X connect 26 0 20 0; +#X connect 15 0 7 0; +#X connect 15 0 13 0; +#X connect 16 0 21 0; +#X connect 17 0 16 1; +#X connect 18 0 17 0; +#X connect 19 0 20 0; +#X connect 19 0 29 0; +#X connect 20 0 18 0; +#X connect 22 0 36 0; +#X connect 23 0 19 0; +#X connect 24 0 19 0; +#X connect 25 0 19 0; +#X connect 26 0 15 0; #X connect 27 0 20 0; -#X connect 28 0 16 0; -#X connect 29 0 31 0; -#X connect 29 0 21 0; +#X connect 29 0 28 0; #X connect 31 0 30 0; +#X connect 32 0 35 0; #X connect 33 0 34 0; -#X connect 33 1 35 0; -#X connect 33 2 36 0; -#X connect 33 3 38 0; -#X connect 34 0 37 0; -#X connect 35 0 37 0; -#X connect 36 0 37 0; -#X connect 37 0 32 0; -#X connect 38 0 37 0; -#X connect 40 0 39 0; -#X connect 41 0 44 0; -#X connect 42 0 43 0; -#X connect 44 0 2 0; +#X connect 35 0 2 0; +#X connect 36 0 24 0; +#X connect 36 1 25 0; +#X connect 36 2 23 0; #X restore 52 50 pd tone-generator; #N canvas 651 232 819 380 channel-select 0; #X obj 39 55 sel 0 1 2 3 4 5 6 7; @@ -514,11 +493,12 @@ #X connect 5 0 3 0; #X connect 10 0 11 0; #X connect 11 0 2 0; -#X restore 373 252 pd audio; -#X floatatom 22 144 3 0 100 1 - #0-tone-level-set #0-tone-level 0; -#X floatatom 84 123 5 0 136 1 pitch #0-tone-pitch-set #0-tone-pitch +#X restore 384 252 pd audio; +#X floatatom 22 144 3 0 100 1 - \$0-tone-level-set \$0-tone-level 0 +; +#X floatatom 84 123 5 0 136 1 pitch \$0-tone-pitch-set \$0-tone-pitch 0; -#X floatatom 84 145 6 0 20000 1 HZ #0-tone-hz-set #0-tone-hz 0; +#X floatatom 84 145 6 0 20000 1 HZ \$0-tone-hz-set \$0-tone-hz 0; #X text 48 145 dB; #X text 34 67 TEST TONES; #X text 233 156 AUDIO OUTPUT ON/OFF; @@ -545,38 +525,38 @@ #X text 542 227 9-16; #X text 543 242 11-18; #X text 543 257 17-24; -#X floatatom 340 188 5 0 120 0 input-monitor-gain #0-input-monitor-gain-set -#0-input-monitor-gain 0; +#X floatatom 340 188 5 0 120 0 input-monitor-gain \$0-input-monitor-gain-set +\$0-input-monitor-gain 0; #X text 507 122 channel assign:, f 7; #X text 496 289 in; #X text 519 290 out; -#N canvas 178 52 578 350 tests 0; -#X floatatom 42 209 0 0 0 0 - - - 0; -#X obj 42 183 f; -#X obj 79 183 + 1; -#X obj 42 150 metro 1000; -#X obj 42 123 tgl 20 0 empty empty empty 20 8 0 8 #fcfcfc #000000 #000000 +#N canvas 567 82 578 350 tests 0; +#X floatatom 68 206 0 0 0 0 - - - 0; +#X obj 68 180 f; +#X obj 105 180 + 1; +#X obj 68 147 metro 1000; +#X obj 68 120 tgl 20 0 empty empty empty 20 8 0 8 #fcfcfc #000000 #000000 0 1; -#X text 24 30 this window has various weird debugging stuff...; -#X text 22 74 see if Pd's time; -#X text 22 93 measurement works:; -#X obj 227 127 adc~; -#X obj 226 224 print~; -#X obj 235 201 bng 15 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#X text 50 27 this window has various weird debugging stuff...; +#X text 48 71 see if Pd's time; +#X text 48 90 measurement works:; +#X obj 268 143 adc~; +#X obj 268 240 print~; +#X obj 244 210 bng 15 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 #000000; -#X obj 227 152 *~ 1; -#X obj 302 138 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X obj 268 208 *~ 1; +#X obj 312 114 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X obj 302 158 sel 0 1; -#X obj 301 183 1; -#X obj 333 185 1000; -#X text 226 94 print out literal values from ADC 1; -#X text 323 136 optionally multiply by 1000; -#X obj 53 264 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X text 262 81 print out literal values from ADC 1; +#X text 333 112 optionally multiply by 1000; +#X obj 79 261 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X floatatom 53 309 5 0 0 0 - - - 0; -#X obj 53 284 samplerate~; -#X text 163 287 get current sample rate; +#X floatatom 79 306 5 0 0 0 - - - 0; +#X obj 79 281 samplerate~; +#X text 169 281 get current sample rate; +#X obj 312 174 f 1; +#X obj 345 174 f 1000; +#X obj 312 134 select 0 1; #X connect 1 0 2 0; #X connect 1 0 0 0; #X connect 2 0 1 1; @@ -585,15 +565,18 @@ #X connect 8 0 11 0; #X connect 10 0 9 0; #X connect 11 0 9 0; -#X connect 12 0 13 0; -#X connect 13 0 14 0; -#X connect 13 1 15 0; -#X connect 14 0 11 1; -#X connect 15 0 11 1; -#X connect 18 0 20 0; -#X connect 20 0 19 0; -#X restore 373 275 pd tests; +#X connect 12 0 21 0; +#X connect 15 0 17 0; +#X connect 17 0 16 0; +#X connect 19 0 11 1; +#X connect 20 0 11 1; +#X connect 21 0 19 0; +#X connect 21 1 20 0; +#X restore 384 275 pd tests; #X text 543 274 25-32; +#X floatatom 295 256 4 0 0 0 - - - 0; +#X text 328 256 ctl; +#X text 214 257 note; #X connect 1 0 2 0; #X connect 1 1 2 1; #X connect 2 0 3 0; @@ -603,3 +586,4 @@ #X connect 8 0 7 0; #X connect 8 1 6 0; #X connect 14 0 9 0; +#X connect 65 0 9 1; diff -Nru puredata-0.52.1+ds0/doc/8.topics/expr.html puredata-0.52.2+ds0/doc/8.topics/expr.html --- puredata-0.52.1+ds0/doc/8.topics/expr.html 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/8.topics/expr.html 2022-03-27 22:30:03.000000000 +0000 @@ -161,7 +161,7 @@ Expr family objects by Shahrokh Yadegari -

To see a directory listing of downloadable files, which also inlcudes older releases, click here.
+

To see a directory listing of downloadable files, which also includes older releases, click here.

Back to the Software Page
@@ -354,6 +354,16 @@ round a float to a nearby integer +floor() +1 +largest integral value not greater than argument (added in version 0.4) + + +ceil() +1 +smallest integral value not less than argument (added in version 0.4) + + float () 1 convert to float @@ -413,10 +423,14 @@ 2 floating-point remainder function (added in version 0.4) + +fmod() +1 + floating-point remainder function (added in version 0.4) + -

power functions

@@ -492,7 +506,7 @@
-

Trigonometric

+

Trigonometric (all trigonometric functions here work with radians)

@@ -568,21 +582,6 @@ - - - - - - - - - - - - - - -
1 inverse hyperbolic tangent
floor()1largest integral value not greater than argument (added in version 0.4)
ceil()1smallest integral value not less than argument (added in version 0.4)
fmod()1 floating-point remainder function (added in version 0.4)
diff -Nru puredata-0.52.1+ds0/doc/Makefile.am puredata-0.52.2+ds0/doc/Makefile.am --- puredata-0.52.1+ds0/doc/Makefile.am 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/doc/Makefile.am 2022-03-27 22:30:03.000000000 +0000 @@ -299,12 +299,16 @@ ./5.reference/acoustics-help.pd \ ./5.reference/acoustics~-help.pd \ ./5.reference/adc~_dac~-help.pd \ + ./5.reference/all_guis.pd \ ./5.reference/append-help.pd \ ./5.reference/array-object-help.pd \ ./5.reference/array-object-help.txt \ ./5.reference/bag-help.pd \ ./5.reference/bang-help.pd \ ./5.reference/bang~-help.pd \ + ./5.reference/binops-help.pd \ + ./5.reference/binops-other-help.pd \ + ./5.reference/binops-tilde-help.pd \ ./5.reference/biquad~-help.pd \ ./5.reference/block~-help.pd \ ./5.reference/bng-help.pd \ @@ -315,6 +319,7 @@ ./5.reference/clip~-help.pd \ ./5.reference/clone-abstraction.pd \ ./5.reference/clone-help.pd \ + ./5.reference/cnv-help.pd \ ./5.reference/cos~-help.pd \ ./5.reference/cpole~-help.pd \ ./5.reference/cputime-help.pd \ @@ -334,11 +339,10 @@ ./5.reference/file-help.pd \ ./5.reference/float-help.pd \ ./5.reference/framp~-help.pd \ - ./5.reference/fudiformat-help.pd \ - ./5.reference/fudiparse-help.pd \ - ./5.reference/gatom-help.pd \ + ./5.reference/fudi-format-parse-help.pd \ ./5.reference/get-help.pd \ ./5.reference/getsize-help.pd \ + ./5.reference/gui-boxes-help.pd \ ./5.reference/hdl-help.pd \ ./5.reference/help-intro.pd \ ./5.reference/hip~-help.pd \ @@ -346,7 +350,7 @@ ./5.reference/hslider-help.pd \ ./5.reference/inlet-outlet-help.pd \ ./5.reference/int-help.pd \ - ./5.reference/key-help.pd \ + ./5.reference/key-input-help.pd \ ./5.reference/line-help.pd \ ./5.reference/line~-help.pd \ ./5.reference/list-help.pd \ @@ -360,18 +364,14 @@ ./5.reference/metro-help.pd \ ./5.reference/midi-help.pd \ ./5.reference/moses-help.pd \ - ./5.reference/my_canvas-help.pd \ ./5.reference/namecanvas-help.pd \ + ./5.reference/nbx-help.pd \ ./5.reference/netreceive-help.pd \ ./5.reference/netsend-help.pd \ ./5.reference/noise~-help.pd \ - ./5.reference/numbox2-help.pd \ ./5.reference/openpanel-help.pd \ - ./5.reference/operators-help.pd \ - ./5.reference/oscformat-help.pd \ - ./5.reference/oscparse-help.pd \ + ./5.reference/osc-format-parse-help.pd \ ./5.reference/osc~-help.pd \ - ./5.reference/otherbinops-help.pd \ ./5.reference/pack-help.pd \ ./5.reference/pdcontrol-abs.pd \ ./5.reference/pdcontrol-help.pd \ @@ -401,11 +401,10 @@ ./5.reference/scalar-object-help.pd \ ./5.reference/select-help.pd \ ./5.reference/send-receive-help.pd \ - ./5.reference/send~-help.pd \ + ./5.reference/send-receive-tilde-help.pd \ ./5.reference/set-help.pd \ ./5.reference/setsize-help.pd \ ./5.reference/setsize.txt \ - ./5.reference/sigbinops-help.pd \ ./5.reference/sig~-help.pd \ ./5.reference/slop~-help.pd \ ./5.reference/snapshot~-help.pd \ @@ -432,7 +431,7 @@ ./5.reference/textfile-help.pd \ ./5.reference/textfile.txt \ ./5.reference/threshold~-help.pd \ - ./5.reference/throw~-help.pd \ + ./5.reference/throw~-catch~-help.pd \ ./5.reference/timer-help.pd \ ./5.reference/toggle-help.pd \ ./5.reference/trace-help.pd \ @@ -449,7 +448,6 @@ ./5.reference/vu-help.pd \ ./5.reference/wrap~-help.pd \ ./5.reference/writesf~-help.pd \ - ./5.reference/x_all_guis.pd \ ./6.externs/0.README.txt \ ./6.externs/dspobj~.c \ ./6.externs/makefile \ @@ -481,7 +479,6 @@ ./7.stuff/synth/preset3.txt \ ./7.stuff/synth/preset4.txt \ ./7.stuff/synth/synthvoice.pd \ - ./7.stuff/synth/test-gadsr.pd \ ./7.stuff/tools/latency.pd \ ./7.stuff/tools/load-meter.pd \ ./7.stuff/tools/miditester.pd \ diff -Nru puredata-0.52.1+ds0/extra/bob~/bob~.c puredata-0.52.2+ds0/extra/bob~/bob~.c --- puredata-0.52.1+ds0/extra/bob~/bob~.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/bob~/bob~.c 2022-03-27 22:30:03.000000000 +0000 @@ -209,7 +209,7 @@ t_float *cutoffin = (t_float *)(w[3]); t_float *resonancein = (t_float *)(w[4]); t_float *out = (t_float *)(w[5]); - /* bug fix: output is last state varable, not first */ + /* bug fix: output is last state variable, not first */ double *outstate = (pd_compatibilitylevel > 51? &x->x_state[3] : &x->x_state[0]); int n = (int)(w[6]), i, j; diff -Nru puredata-0.52.1+ds0/extra/bob~/bob~-help.pd puredata-0.52.2+ds0/extra/bob~/bob~-help.pd --- puredata-0.52.1+ds0/extra/bob~/bob~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/bob~/bob~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,179 +1,221 @@ -#N canvas 558 96 1068 762 12; +#N canvas 342 39 941 659 12; #X declare -stdpath ./; -#X obj 231 347 env~ 8192, f 4; -#X floatatom 230 387 5 0 0 0 - - - 0; -#X floatatom 408 193 5 0 200 0 - - - 0; -#X obj 39 260 env~ 8192, f 5; -#X floatatom 39 300 5 0 0 0 - - - 0; -#X obj 279 317 bob~; -#X obj 408 215 / 25; -#X msg 950 229 print; -#X obj 87 259 output~; -#X floatatom 291 179 5 0 150 0 - - - 0; -#X obj 291 201 mtof; -#X obj 292 246 pack 0 50; -#X obj 292 271 line~; -#X msg 886 227 clear; -#X obj 279 349 output~; -#X floatatom 291 224 7 0 0 0 - - - 0; -#X floatatom 611 177 5 0 999 0 - - - 0; -#X msg 611 223 saturation \$1; -#X obj 611 127 loadbang; -#X obj 611 199 / 100; -#X text 885 183 clear or print; -#X text 889 202 filter state; -#X floatatom 748 197 5 1 10 0 - - - 0; -#X text 744 122 oversampling; -#X msg 748 224 oversample \$1; -#X text 419 88 "resonance"; -#X text 418 105 (>4 to oscillate); -#X obj 748 145 loadbang; -#X msg 748 170 2; -#X text 456 211 scaled to 0-8; -#X text 455 193 0-200 control; -#X text 263 86 resonant or cutoff frequency, f 16; -#X text 300 60 ----- filter parameters ----; -#X text 609 59 ------ optimizations / setup params -------; -#X text 899 161 debugging:; -#X text 603 88 saturation point; -#X text 600 105 of "transistors"; -#X msg 611 152 300; -#X obj 408 142 loadbang; -#X msg 408 167 10; -#X text 561 523 "Clear" momentarily shorts out the capacitors in case -the filter has gone unstable and stopped working.; -#X text 563 308 By default bob~ does one step of 4th-order Runge-Kutte +#X obj 166 293 bob~, f 15; +#X msg 868 230 print; +#X obj 58 220 output~; +#X msg 804 227 clear; +#X obj 108 335 output~; +#X floatatom 532 177 5 0 999 0 - - - 0; +#X msg 532 223 saturation \$1; +#X obj 532 127 loadbang; +#X obj 532 199 / 100; +#X text 803 183 clear or print; +#X text 807 202 filter state; +#X floatatom 666 197 5 1 10 0 - - - 0; +#X text 662 122 oversampling; +#X msg 666 224 oversample \$1; +#X obj 666 145 loadbang; +#X msg 666 170 2; +#X text 246 65 ----- filter parameters ----; +#X text 817 161 debugging:; +#X text 524 88 saturation point; +#X text 521 105 of "transistors"; +#X msg 532 152 300; +#N canvas 635 124 513 424 test 0; +#X obj 313 147 min~; +#X obj 357 123 -~ 1; +#X obj 357 148 *~ -50; +#X floatatom 105 104 5 0 128 0 - - - 0; +#X obj 233 52 mtof; +#X text 301 49 test signal; +#X text 147 104 pitch; +#X text 122 142 sawtooth; +#X obj 313 90 phasor~ 220; +#X obj 233 107 osc~ 220; +#X text 123 126 sine; +#X text 122 157 noise; +#X obj 65 26 loadbang; +#X msg 105 69 57; +#X msg 65 103 1; +#X obj 362 239 noise~; +#X obj 233 277 *~ 0; +#X obj 313 244 *~ 0; +#X obj 362 287 *~ 0; +#X obj 295 338 +~; +#X obj 295 373 outlet~; +#X obj 59 316 declare -stdpath ./; +#X obj 105 129 vradio 15 1 0 3 empty empty empty 0 -8 0 10 #fcfcfc +#000000 #000000 0; +#X obj 259 225 == 0; +#X obj 105 199 == 2; +#X obj 338 206 == 1; +#X obj 313 172 -~ 0.5; +#X connect 0 0 26 0; +#X connect 1 0 2 0; +#X connect 2 0 0 1; +#X connect 3 0 4 0; +#X connect 4 0 8 0; +#X connect 4 0 9 0; +#X connect 8 0 0 0; +#X connect 8 0 1 0; +#X connect 9 0 16 0; +#X connect 12 0 13 0; +#X connect 12 0 14 0; +#X connect 13 0 3 0; +#X connect 14 0 22 0; +#X connect 15 0 18 0; +#X connect 16 0 19 0; +#X connect 17 0 19 1; +#X connect 18 0 19 1; +#X connect 19 0 20 0; +#X connect 22 0 23 0; +#X connect 22 0 25 0; +#X connect 22 0 24 0; +#X connect 23 0 16 1; +#X connect 24 0 18 1; +#X connect 25 0 17 1; +#X connect 26 0 17 0; +#X coords 0 -1 1 1 93 81 2 100 100; +#X restore 116 93 pd test; +#X text 98 397 output monitor; +#X text 43 282 input monitor; +#X obj 27 13 bob~; +#X text 67 14 - Runge-Kutte numerical simulation of the Moog analog +resonant filter, f 69; +#X text 19 600 see also:; +#X obj 99 599 lop~; +#X obj 140 599 hip~; +#X obj 182 599 bp~; +#X obj 220 599 vcf~; +#X text 723 619 updated for Pd version 0.52; +#X obj 30 627 biquad~; +#X obj 89 627 slop~, f 7; +#X obj 148 627 cpole~, f 7; +#X obj 210 627 fexpr~; +#X text 265 626 - unfriendly filters; +#N canvas 446 160 286 365 (subpatch) 0; +#X floatatom 110 168 5 0 150 0 - - - 0; +#X obj 46 184 mtof; +#X obj 109 234 pack 0 50; +#X obj 109 265 line~; +#X floatatom 109 194 7 0 0 0 - - - 0; +#X obj 110 36 loadbang; +#X msg 110 61 69; +#X obj 113 146 hsl 100 15 35 150 0 0 empty empty empty -2 -8 0 10 #fcfcfc +#000000 #000000 0 1; +#X text 155 168 MIDI; +#X text 166 193 Hz; +#X obj 109 295 outlet~; +#X text 102 121 cutoff frequency; +#X text 120 104 resonant or, f 13; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 2 0 3 0; +#X connect 3 0 10 0; +#X connect 4 0 2 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 0 0; +#X coords 0 -1 1 1 128 121 2 100 100; +#X restore 217 93 pd; +#N canvas 446 160 500 456 (subpatch) 0; +#X obj 114 43 loadbang; +#X obj 117 149 hsl 100 15 0 8 0 0 empty empty empty -2 -8 0 10 #fcfcfc +#000000 #000000 0 1; +#X floatatom 114 173 5 0 8 0 - - - 0; +#X msg 114 71 0.4; +#X obj 114 262 sig~; +#X text 160 173 (0-8); +#X text 121 106 "resonance"; +#X text 103 124 (> 4 to oscillate); +#X obj 114 317 outlet~; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 2 0 4 0; +#X connect 3 0 1 0; +#X connect 4 0 8 0; +#X coords 0 -1 1 1 140 100 2 100 100; +#X restore 351 114 pd; +#X text 109 65 - test input -; +#X obj 666 287 s \$0-parameters; +#X obj 342 242 r \$0-parameters; +#X text 538 65 --------- optimizations / setup params ----------; +#X obj 6 44 cnv 1 925 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 853 12 <= click; +#N canvas 755 157 571 371 reference 0; +#X obj 17 17 bob~; +#X text 57 18 - Runge-Kutte numerical simulation of the Moog analog +resonant filter, f 69; +#X obj 9 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 85 cnv 1 550 1 empty empty 1st: 8 12 0 13 #000000 #000000 +0; +#X obj 9 270 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 307 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 339 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 190 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #000000 #000000 +0; +#X obj 8 230 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #000000 #000000 +0; +#X text 89 239 float/signal - resonannce., f 64; +#X text 89 199 float/signal - resonant or cutoff frequency in hertz. +, f 64; +#X text 131 280 signal - filtered signal.; +#X text 47 109 saturation - sent saturation point of "transistors". +, f 71; +#X text 89 91 float/signal - input to be filtered., f 65; +#X text 47 127 oversample - sent oversampling., f 71; +#X text 138 145 clear - clear internal state., f 58; +#X text 138 164 print - post internal state and parameters on Pd's +window.; +#X text 139 316 NONE; +#X restore 759 12 pd reference; +#X text 661 406 Compatibility note: there was a bug in this module +\, fixed for Pd version 0.52. YOu can get the (incorrect) pre-0.52 +behavior by setting pd's compatibility level to 0.51., f 32; +#X text 808 506 old behaviour; +#X text 806 544 new behaviour; +#X msg 660 501 \; pd compatibility 51; +#X msg 660 538 \; pd compatibility 52; +#X text 23 426 By default bob~ does one step of 4th-order Runge-Kutte integration per audio sample. This works OK for resonant/cutoff frequencies up to about 1/2 Nyquist. To improve accuracy and/or to extend the range of the filter to higher cutoff frequencies you can oversample by any factor - but note that computation time rises accordingly. At high cutoff frequencies/resonance values the RK approximation can go unstable. -You can combat this by raising the oversampling factor.; -#X obj 407 243 line~; -#N canvas 743 303 450 300 test 0; -#X obj 102 122 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 -#000000 0 1; -#X obj 313 127 min~; -#X obj 357 103 -~ 1; -#X obj 357 128 *~ -50; -#X floatatom 102 102 5 0 128 0 - - - 0; -#X obj 235 72 mtof; -#X obj 102 141 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 -#000000 0 1; -#X text 196 32 test signal; -#X text 147 102 pitch; -#X text 119 140 sawtooth; -#X obj 312 70 phasor~ 220; -#X obj 233 107 osc~ 220; -#X obj 102 160 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 -#000000 0 1; -#X text 121 120 sine; -#X text 120 159 noise; -#X floatatom 103 181 3 0 100 0 - - - 0; -#X obj 62 24 loadbang; -#X msg 62 49 57; -#X msg 48 163 80; -#X text 133 180 dB out; -#X msg 60 111 1; -#X obj 362 189 noise~; -#X obj 204 207 *~ 0; -#X obj 316 184 *~ 0; -#X obj 315 217 *~ 0; -#X obj 208 238 +~; -#X obj 208 263 outlet~; -#X connect 0 0 22 1; -#X connect 1 0 23 0; -#X connect 2 0 3 0; -#X connect 3 0 1 1; -#X connect 4 0 5 0; -#X connect 5 0 10 0; -#X connect 5 0 11 0; -#X connect 6 0 23 1; -#X connect 10 0 1 0; -#X connect 10 0 2 0; -#X connect 11 0 22 0; -#X connect 12 0 24 1; -#X connect 16 0 17 0; -#X connect 16 0 18 0; -#X connect 16 0 20 0; -#X connect 17 0 4 0; -#X connect 18 0 15 0; -#X connect 20 0 6 0; -#X connect 21 0 24 0; -#X connect 22 0 25 0; -#X connect 23 0 25 1; -#X connect 24 0 25 1; -#X connect 25 0 26 0; -#X coords 0 -1 1 1 95 100 2 100 100; -#X restore 101 96 pd test; -#X text 227 410 output monitor; -#X text 35 321 input monitor; -#X obj 291 130 loadbang; -#X msg 291 155 69; -#X text 47 65 ----- test input ----; -#X text 24 538 The design is based on papers by Tim Stilson \, Timothy -E. Stinchcombe \, and Antti Huovilainen. See README.txt for pointers. -; -#X text 23 459 The three audio inputs are the signal to filter \, the +You can combat this by raising the oversampling factor., f 84; +#X text 255 331 The design of bob~ is based on papers by Tim Stilson +\, Timothy E. Stinchcombe \, and Antti Huovilainen. See README.txt +for pointers. The three audio inputs are the signal to filter \, the cutoff/resonant frequency in cycles per second \, and "resonance" (the sharpness of the filter). Nominally \, a resonance of 4 should be the -limit of stability -- above that \, the filter oscillates.; -#X text 562 463 The saturation parameter determines at what signal -level the "transistors" in the model saturate. The maximum output amplitude -is about 2/3 of that value.; -#X text 178 598 Compatibility note: there was a bug in this module -\, fixed for Pd version 0.52. YOu can get the (incorrect) pre-0.52 -behavior by setting pd's compatibility level to 0.51.; -#X obj 38 11 bob~; -#X text 78 12 - Runge-Kutte numerical simulation of the Moog analog -resonant filter, f 69; -#X text 355 366 <= adjust output "dB" to hear filter output., f 22 -; -#X text 51 680 see also:; -#X obj 132 679 lop~; -#X obj 173 679 hip~; -#X obj 215 679 bp~; -#X obj 253 679 vcf~; -#X obj 825 15 declare -stdpath ./; -#X text 606 585 old behaviour; -#X text 766 584 new behaviour; -#X msg 598 604 \; pd compatibility 51; -#X msg 758 604 \; pd compatibility 52; -#X text 756 699 updated for Pd version 0.52; -#X obj 63 709 biquad~; -#X obj 122 708 slop~, f 7; -#X obj 181 708 cpole~, f 7; -#X obj 243 708 fexpr~; -#X text 299 708 - unfriendly filters; -#X connect 0 0 1 0; -#X connect 2 0 6 0; -#X connect 3 0 4 0; -#X connect 5 0 0 0; -#X connect 5 0 14 0; -#X connect 5 0 14 1; -#X connect 6 0 42 0; -#X connect 7 0 5 0; -#X connect 9 0 10 0; -#X connect 10 0 15 0; -#X connect 11 0 12 0; -#X connect 12 0 5 1; -#X connect 13 0 5 0; +limit of stability -- above that \, the filter oscillates., f 90; +#X text 23 517 The saturation parameter determines at what signal level +the "transistors" in the model saturate. The maximum output amplitude +is about 2/3 of that value. "Clear" momentarily shorts out the capacitors +in case the filter has gone unstable and stopped working., f 84; +#X obj 6 586 cnv 1 925 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X connect 0 0 4 0; +#X connect 0 0 4 1; +#X connect 1 0 40 0; +#X connect 3 0 40 0; +#X connect 5 0 8 0; +#X connect 6 0 40 0; +#X connect 7 0 20 0; +#X connect 8 0 6 0; +#X connect 11 0 13 0; +#X connect 13 0 40 0; +#X connect 14 0 15 0; #X connect 15 0 11 0; -#X connect 16 0 19 0; -#X connect 17 0 5 0; -#X connect 18 0 37 0; -#X connect 19 0 17 0; -#X connect 22 0 24 0; -#X connect 24 0 5 0; -#X connect 27 0 28 0; -#X connect 28 0 22 0; -#X connect 37 0 16 0; -#X connect 38 0 39 0; -#X connect 39 0 2 0; -#X connect 42 0 5 2; -#X connect 43 0 8 0; -#X connect 43 0 8 1; -#X connect 43 0 3 0; -#X connect 43 0 5 0; -#X connect 46 0 47 0; -#X connect 47 0 9 0; +#X connect 20 0 5 0; +#X connect 21 0 2 0; +#X connect 21 0 2 1; +#X connect 21 0 0 0; +#X connect 37 0 0 1; +#X connect 38 0 0 2; +#X connect 41 0 0 0; diff -Nru puredata-0.52.1+ds0/extra/bob~/GNUmakefile.am puredata-0.52.2+ds0/extra/bob~/GNUmakefile.am --- puredata-0.52.1+ds0/extra/bob~/GNUmakefile.am 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/bob~/GNUmakefile.am 2022-03-27 22:30:03.000000000 +0000 @@ -17,11 +17,11 @@ dist_external_DATA = $(PATCHES) $(OTHERDATA) AUTOMAKE_OPTIONS = foreign -AM_CFLAGS = @EXTERNAL_CFLAGS@ -AM_CPPFLAGS += -I$(top_srcdir)/src -DPD +AM_CFLAGS = @EXTERNAL_CFLAGS@ @PD_CFLAGS@ +AM_CPPFLAGS += -I$(top_srcdir)/src -DPD @PD_CPPFLAGS@ bob__la_LIBADD = $(LIBM) AM_LDFLAGS = -module -avoid-version -shared @EXTERNAL_LDFLAGS@ \ - -shrext .@EXTERNAL_EXTENSION@ -L$(top_builddir)/src + -shrext .@EXTERNAL_EXTENSION@ -L$(top_builddir)/src @PD_LDFLAGS@ externaldir = $(pkglibdir)/extra/$(NAME) diff -Nru puredata-0.52.1+ds0/extra/bonk~/bonk~-help.pd puredata-0.52.2+ds0/extra/bonk~/bonk~-help.pd --- puredata-0.52.1+ds0/extra/bonk~/bonk~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/bonk~/bonk~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,149 +1,126 @@ -#N canvas 588 81 967 645 12; -#X obj 487 579 spigot; -#X msg 484 284 bang; -#X obj 455 494 bonk~; -#X msg 507 352 print; -#X obj 393 398 adc~; -#X obj 404 579 spigot; -#N canvas 1028 240 305 506 synth 0; -#X obj 72 77 r bonk-cooked; -#X obj 72 109 unpack; +#N canvas 321 38 941 662 12; +#X obj 464 555 spigot; +#X msg 461 298 bang; +#X obj 385 555 spigot; +#N canvas 906 141 305 506 synth 0; #X obj 72 159 * 12; #X obj 72 184 div 7; -#X obj 72 134 + 1; #X obj 72 234 mtof; -#X obj 72 299 osc~; -#X obj 72 324 cos~; -#X obj 72 209 + 47; -#X obj 156 339 line~; -#X obj 156 364 *~; -#X obj 156 389 lop~ 500; -#X obj 72 349 *~; -#X obj 72 441 dac~; +#X obj 72 339 osc~; +#X obj 72 364 cos~; +#X obj 141 339 line~; +#X obj 141 364 *~; +#X obj 141 389 lop~ 500; +#X obj 72 389 *~; +#X obj 72 461 dac~; #X obj 174 261 dbtorms; -#X obj 174 211 * 0.5; -#X obj 174 236 + 50; -#X obj 156 287 f; -#X obj 174 27 inlet; -#X obj 72 392 hip~ 5; -#X obj 72 274 sig~; -#X msg 156 314 \$1 \, 0 200; +#X obj 141 287 f; +#X obj 174 97 inlet; +#X obj 72 412 hip~ 5; +#X msg 141 314 \$1 \, 0 200; #X obj 141 263 b; +#X obj 72 97 inlet; +#X obj 72 129 t f; +#X obj 72 209 + 48; #X connect 0 0 1 0; -#X connect 1 0 4 0; +#X connect 1 0 18 0; +#X connect 2 0 15 0; #X connect 2 0 3 0; -#X connect 3 0 8 0; -#X connect 4 0 2 0; -#X connect 5 0 20 0; -#X connect 5 0 22 0; +#X connect 3 0 4 0; +#X connect 4 0 8 0; +#X connect 5 0 6 0; +#X connect 5 0 6 1; #X connect 6 0 7 0; -#X connect 7 0 12 0; -#X connect 8 0 5 0; -#X connect 9 0 10 0; -#X connect 9 0 10 1; -#X connect 10 0 11 0; -#X connect 11 0 12 1; -#X connect 12 0 19 0; -#X connect 14 0 17 1; -#X connect 15 0 16 0; -#X connect 16 0 14 0; -#X connect 17 0 21 0; -#X connect 18 0 15 0; -#X connect 19 0 13 1; -#X connect 19 0 13 0; -#X connect 20 0 6 0; -#X connect 21 0 9 0; -#X connect 22 0 17 0; -#X restore 640 524 pd synth; -#X floatatom 640 498 4 0 0 0 - - - 0; -#X msg 606 466 0; -#X msg 640 466 90; -#X text 24 352 In this patch \, after starting DSP \, you can print +#X connect 7 0 8 1; +#X connect 8 0 13 0; +#X connect 10 0 11 1; +#X connect 11 0 14 0; +#X connect 12 0 10 0; +#X connect 13 0 9 1; +#X connect 13 0 9 0; +#X connect 14 0 5 0; +#X connect 15 0 11 0; +#X connect 16 0 17 0; +#X connect 17 0 0 0; +#X connect 18 0 2 0; +#X restore 546 522 pd synth; +#X floatatom 599 497 4 0 0 0 - - - 0; +#X msg 565 469 0; +#X msg 599 469 90; +#X text 15 382 In this patch \, after starting DSP \, you can print out the raw or cooked output using the two "spigots" or listen to a -synthesizer output by raising its volume., f 47; -#X text 675 469 output volume; -#X text 689 487 (0-100); -#X msg 421 127 mask 4 0.7; -#X text 507 113 Describes how energy in each frequency band masks later +synthesizer output by raising its volume., f 44; +#X msg 398 146 mask 4 0.7; +#X text 484 132 Describes how energy in each frequency band masks later energy in the band. Here the masking is total for 4 analysis periods -and then drops by 0.7 each period.; -#X text 526 277 Poll the current spectrum via "raw" outlet \, You can +and then drops by 0.7 each period., f 62; +#X text 503 291 Poll the current spectrum via "raw" outlet \, You can set a very high threshold if you don't want attacks mixed in.; -#X msg 496 321 debug 0; -#X obj 443 556 tgl 15 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#X msg 471 334 debug 0; +#X obj 424 532 tgl 15 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 #000000 0 1; -#X obj 526 556 tgl 15 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 +#X obj 503 532 tgl 15 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 #000000 0 1; -#X obj 487 609 print cooked; -#X obj 404 609 print raw; -#X text 276 579 enable printout:; -#X text 519 202 Minimum "velocity" to output (quieter notes are ignored.) -; -#X obj 503 525 s bonk-cooked; -#X text 24 192 Bonk's two outputs are the raw spectrum of the attack -(provided as a list of 11 numbers giving the signal "loudness" in the -11 frequency bands used) \, and the "cooked" output which gives only -an instrument number (counting up from zero) and a "velocity". This -"velocity" is the sum of the square roots of the amplitudes of the -bands \, normalized so that 100 is an attack of amplitude of about -1 The instrument number is significant only if Bonk has a "template -set" in memory., f 47; -#X text 501 33 Set low and high thresholds. Signal growth must exceed +#X obj 464 585 print cooked; +#X obj 385 585 print raw; +#X text 267 555 enable printout:; +#X text 496 216 Minimum "velocity" to output (quieter notes are ignored.) +, f 59; +#X text 470 53 Set low and high thresholds. Signal growth must exceed the high one and then fall to the low one to make an attack. The unit is the sum of the proportional growth in the 11 filter bands. Proportional -growth is essentially the logarithmic time derivative.; -#X msg 516 380 print 1; -#X text 24 53 The Bonk object takes an audio signal input and looks +growth is essentially the logarithmic time derivative., f 64; +#X text 15 73 The Bonk object takes an audio signal input and looks for "attacks" defined as sharp changes in the spectral envelope of the incoming sound. Optionally \, and less reliably \, you can have Bonk check the attack against a collection of stored templates to try to guess which of two or more instruments was hit. Bonk is described theoretically in the 1998 ICMC proceedings \, reprinted on msp.ucsd.edu. , f 47; -#N canvas 544 116 707 637 creation-arguments 0; +#N canvas 488 108 694 491 creation-arguments 0; #X text 228 14 creation arguments for bonk~; -#X text 70 272 -npts 256; -#X text 44 244 default value:; -#X text 70 308 -hop 128; -#X text 70 342 -nfilters 11; -#X text 68 380 -halftones 6; -#X text 76 514 -overlap 1; -#X text 79 567 -firstbin 1; -#X text 71 454 -minbandwidth 1.5; -#X text 122 147 All frequency parameters are specified in 'bins'. One +#X text 33 114 All frequency parameters are specified in 'bins'. One bin is the sample rate divided by the window size. The minimum possible bandwidth is 1.5 bins. Higher bandwidths give numerically more robust -outputs.; -#X text 43 229 Arguments and; -#X text 212 270 window size in points; -#X text 210 306 analysis period ("hop size") in points; -#X text 212 340 number of filters to use; -#X text 212 379 desired bandwidth of filters in halftones \, effective +outputs., f 88; +#X text 204 200 window size in points, f 60; +#X text 204 224 analysis period ("hop size") in points, f 60; +#X text 204 247 number of filters to use, f 60; +#X text 204 270 desired bandwidth of filters in halftones \, effective in the exponentially spaced region. (At lower center frequencies the -bandwidth is supported by the "minbandwidth" parameter below).; -#X text 212 511 overlap factor between filters. If 1 \, the filters +bandwidth is supported by the "minbandwidth" parameter below)., f +60; +#X text 204 385 overlap factor between filters. If 1 \, the filters are spaced to line up at their half-power points. Other values specify more or fewer filters proportionally.; -#X text 121 49 bonk~ uses a filterbank whose center frequencies are +#X text 33 48 bonk~ uses a filterbank whose center frequencies are spaced equally at low frequencies and proportionally at high ones - i.e. \, they increase linearly \, then exponentially. They are determined by the filters' bandwidths and overlap. The bandwidths are specified proportionally to frequency but bounded below by a specified minimum. -; -#X text 210 455 minimum bandwidth in bins. If the bandwidth specified +, f 88; +#X text 204 334 minimum bandwidth in bins. If the bandwidth specified by "halftones" is smaller than this \, this value is used. This must -be at least 1.5.; -#X text 212 567 center frequency \, in bins \, of the lowest filter. -The others are computed from this.; -#X restore 198 506 pd creation-arguments; -#N canvas 654 163 692 327 templates 0; +be at least 1.5., f 60; +#X text 204 434 center frequency \, in bins \, of the lowest filter. +The others are computed from this., f 60; +#X text 43 173 flags and default values:; +#X text 101 202 -npts (256):; +#X text 108 226 -hop (128):; +#X text 80 249 -nfilters (11):; +#X text 80 271 -halftones (6):; +#X text 45 337 -minbandwidth (1.5):; +#X text 94 388 -overlap (1):; +#X text 87 436 -firstbin (1):; +#X restore 82 539 pd creation-arguments; +#N canvas 654 163 685 300 templates 0; #X msg 79 97 learn 0; #X msg 90 137 forget; #X msg 101 174 write templates.txt; #X msg 117 204 read templates.txt; #X msg 52 38 debounce 0; #X msg 66 66 learn 10; -#X obj 69 273 outlet; +#X obj 69 253 outlet; #X text 171 65 Forget all templates and start learning new ones. The argument gives the number of times you will hit each instrument (10 recommended.) Turn on the output volume above for audible feedback @@ -161,51 +138,135 @@ #X connect 3 0 6 0; #X connect 4 0 6 0; #X connect 5 0 6 0; -#X restore 524 412 pd templates; -#X msg 399 56 thresh 2.5 5; -#X msg 437 176 attack-frames 1; -#X msg 449 201 minvel 7; -#X msg 456 228 spew 0; -#X msg 467 254 useloudness 0; -#X text 664 588 Updated for Pd version 0.42; -#X text 24 416 By default bonk's analysis is carried out on a 256-point +#X restore 501 428 pd templates; +#X msg 371 76 thresh 2.5 5; +#X msg 414 188 attack-frames 1; +#X msg 426 215 minvel 7; +#X msg 434 242 spew 0; +#X msg 444 268 useloudness 0; +#X text 15 446 By default bonk's analysis is carried out on a 256-point window (6 msec at 44.1 kHz) and the analysis period is 128 samples. These and other parameters may be overridden using creation arguments -as shown in the subpatch below:, f 47; -#X obj 55 14 bonk~; -#X text 107 13 - attack detection and spectral envelope measurement +as shown in the subpatch below:, f 44; +#X obj 36 11 bonk~; +#X text 82 10 - attack detection and spectral envelope measurement ; -#X text 508 229 Turn spew mode on/off.; -#X text 557 176 Number of frames over which to measure growth.; -#X text 571 253 experimental: use alternative loudness units.; -#X text 557 321 Turn debugging on or off.; -#X text 553 351 Print out settings and templates.; -#X text 577 380 Print out filterbank settings.; -#X text 619 413 More messages for managing templates.; -#X msg 63 572 \; pd dsp \$1; -#X obj 63 548 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X text 486 243 Turn spew mode on/off.; +#X text 534 188 Number of frames over which to measure growth., f +54; +#X text 548 267 experimental: use alternative loudness units.; +#X text 532 334 Turn debugging on or off.; +#X text 528 364 Print out settings and templates.; +#X text 552 393 Print out filterbank settings.; +#X msg 738 549 \; pd dsp \$1; +#X obj 738 525 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 90 547 DSP on/off; -#X connect 0 0 19 0; -#X connect 1 0 2 0; -#X connect 2 0 5 0; -#X connect 2 1 0 0; -#X connect 2 1 23 0; -#X connect 3 0 2 0; -#X connect 4 0 2 0; -#X connect 5 0 20 0; -#X connect 7 0 6 0; -#X connect 8 0 7 0; -#X connect 9 0 7 0; -#X connect 13 0 2 0; -#X connect 16 0 2 0; -#X connect 17 0 5 1; -#X connect 18 0 0 1; -#X connect 26 0 2 0; -#X connect 29 0 2 0; -#X connect 30 0 2 0; -#X connect 31 0 2 0; -#X connect 32 0 2 0; -#X connect 33 0 2 0; -#X connect 34 0 2 0; -#X connect 47 0 46 0; +#X text 765 524 DSP on/off; +#X obj 7 42 cnv 1 925 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 840 10 <= click; +#N canvas 585 77 723 566 reference 0; +#X obj 8 35 cnv 5 700 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 307 cnv 2 700 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 386 cnv 2 700 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 7 540 cnv 5 700 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 7 330 cnv 1 700 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 37 7 bonk~; +#X text 83 6 - attack detection and spectral envelope measurement; +#X obj 7 357 cnv 1 700 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 7 409 cnv 1 700 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X text 158 45 signal - signal input to be analyzed., f 75; +#X text 53 62 thresh - set low and high thresholds. +, f 90; +#X text 152 413 '-npts': window size in points (default 256)., f 69 +; +#X text 159 430 '-hop': analysis period ("hop size") in points (default +128)., f 68; +#X text 124 447 '-nfilters': number of filters to use (default 11). +, f 73; +#X text 117 464 '-halftones': filter bandwidth of filters in halftones +(default 6)., f 74; +#X text 96 481 '-minbandwidth': minimum bandwidth in bins (default +1.5)., f 77; +#X text 131 498 '-overlap': overlap factor between filters (default +1), f 72; +#X text 124 515 '-firstbin': center frequency \, in bins \, of the +lowest filter (default 1)., f 73; +#X text 53 96 attack-frames - set number of frames over which +to measure growth., f 90; +#X text 88 113 minlevel - set minimum "velocity" to output +(ignore quieter notes)., f 85; +#X text 67 147 useloudness - nonzero sets to alternative loudness +units (experimental)., f 88; +#X text 172 164 bang - poll the current spectrum via "raw" outlet. +, f 73; +#X text 109 181 debug - nonzero sets to debugging mode., f +82; +#X text 88 215 debounce - set minimum time (in msec) between +attacks in learn mode., f 85; +#X text 109 232 learn - forget and learn for a given number +of times (10 recommended)., f 82; +#X text 158 249 forget - forget the last template., f 75; +#X text 109 283 read - read templates from a file., f 82 +; +#X text 102 266 write - write templates to a file., f 83 +; +#X text 109 198 print - print out settings \, templates and +filterbank settings for nonzero., f 82; +#X text 67 79 mask - set energy mask profile: number +of analysis and drop factor., f 88; +#X text 116 130 spew - nonzero turns spew mode on \, zero sets +it off., f 81; +#X text 82 333 list - raw: attack's spectrum (loudness values for the +11 frequency bands used)., f 80; +#X text 82 363 list - cooked: instrument number (if there's a template) +\, velocity and temperature., f 83; +#X restore 746 11 pd reference; +#X obj 7 620 cnv 1 925 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 705 631 updated for Pd version 0.42; +#X text 632 467 output volume (0-100); +#X obj 432 483 bonk~; +#X text 596 429 <= Messages for managing templates.; +#X msg 482 365 print; +#X msg 491 393 print 1; +#X obj 367 419 adc~ 1; +#X text 15 205 Bonk's two outputs are the raw spectrum of the attack +(provided as a list of 11 numbers giving the signal "loudness" in the +11 frequency bands used) \, and the "cooked" output which gives an +instrument number (counting up from zero) \, "velocity" and "color +temperature". The instrument number is significant only if bonk~ has +a "template set" in memory. The "velocity" is the sum of the square +roots of the amplitudes of the bands (normalized so that 100 is an +attack of amplitude of about 1). The "temperature" is a sort of 'spectral +centroid' that correlates with perceived brilliance., f 51; +#X connect 0 0 14 0; +#X connect 1 0 45 0; +#X connect 2 0 15 0; +#X connect 4 0 3 1; +#X connect 5 0 4 0; +#X connect 6 0 4 0; +#X connect 8 0 45 0; +#X connect 11 0 45 0; +#X connect 12 0 2 1; +#X connect 13 0 0 1; +#X connect 21 0 45 0; +#X connect 22 0 45 0; +#X connect 23 0 45 0; +#X connect 24 0 45 0; +#X connect 25 0 45 0; +#X connect 26 0 45 0; +#X connect 37 0 36 0; +#X connect 45 0 2 0; +#X connect 45 1 0 0; +#X connect 45 1 3 0; +#X connect 47 0 45 0; +#X connect 48 0 45 0; +#X connect 49 0 45 0; diff -Nru puredata-0.52.1+ds0/extra/bonk~/GNUmakefile.am puredata-0.52.2+ds0/extra/bonk~/GNUmakefile.am --- puredata-0.52.1+ds0/extra/bonk~/GNUmakefile.am 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/bonk~/GNUmakefile.am 2022-03-27 22:30:03.000000000 +0000 @@ -17,11 +17,11 @@ dist_external_DATA = $(PATCHES) $(OTHERDATA) AUTOMAKE_OPTIONS = foreign -AM_CFLAGS = @EXTERNAL_CFLAGS@ -AM_CPPFLAGS += -I$(top_srcdir)/src -DPD +AM_CFLAGS = @EXTERNAL_CFLAGS@ @PD_CFLAGS@ +AM_CPPFLAGS += -I$(top_srcdir)/src -DPD @PD_CPPFLAGS@ bonk__la_LIBADD = $(LIBM) AM_LDFLAGS = -module -avoid-version -shared @EXTERNAL_LDFLAGS@ \ - -shrext .@EXTERNAL_EXTENSION@ -L$(top_builddir)/src + -shrext .@EXTERNAL_EXTENSION@ -L$(top_builddir)/src @PD_LDFLAGS@ externaldir = $(pkglibdir)/extra/$(NAME) diff -Nru puredata-0.52.1+ds0/extra/choice/choice-help.pd puredata-0.52.2+ds0/extra/choice/choice-help.pd --- puredata-0.52.1+ds0/extra/choice/choice-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/choice/choice-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,50 +1,74 @@ -#N canvas 668 121 643 708 12; -#X obj 102 286 choice; -#X msg 69 82 print; -#X msg 137 150 clear; -#X msg 102 115 add 1 0 0 \, add 0 1 0 \, add 0 0 1 \, add 1 1 1 \, -add 1 1 0; -#X floatatom 200 183 5 0 0 0 - - - 0; -#X floatatom 102 317 0 0 0 0 - - - 0; -#X obj 177 287 choice 1; -#X floatatom 177 318 0 0 0 0 - - - 0; -#X obj 106 22 choice; -#X text 162 21 - search for a best match to an incoming list; -#X text 51 372 The choice object holds a list of vectors \, each having +#N canvas 562 31 635 661 12; +#X obj 72 345 choice; +#X msg 49 151 print; +#X msg 107 217 clear; +#X msg 72 184 add 1 0 0 \, add 0 1 0 \, add 0 0 1 \, add 1 1 1 \, add +1 1 0; +#X floatatom 172 251 5 0 0 0 - - - 0; +#X floatatom 72 378 5 0 0 0 - - - 0; +#X obj 147 346 choice 1; +#X floatatom 147 378 5 0 0 0 - - - 0; +#X obj 23 14 choice; +#X text 79 13 - search for a best match to an incoming list; +#X text 52 60 The choice object holds a list of vectors \, each having up to ten elements. When sent a list of numbers \, it outputs the index of the known vector that matches most closely. The quality of the match is the dot product of the two vectors after normalizing them \, i.e. \, the vector whose direction is closest to that of the input wins. , f 76; -#X text 51 453 If given a nonzero creation argument \, choice tries +#X text 52 416 If given a nonzero creation argument \, choice tries to avoid repetitious outputs by weighting less recently output vectors preferentially., f 76; -#X text 51 492 You can use this to choose interactively between a number +#X text 52 455 You can use this to choose interactively between a number of behaviors depending on their attributes. For example \, you might have stored a number of melodies \, of which some are syncopated \, some chromatic \, some are more than 100 years old \, some are bugle calls \, and some are Christmas carols. You could then ask to find a syncopated bugle call (1 \, 0 \, 0 \, 1 \, 0) and you'll get the thing most closely matching the request., f 76; -#X text 51 590 You can use numbers other than 0 and 1 to indicate relative +#X text 52 553 You can use numbers other than 0 and 1 to indicate relative strengths of the attributes \, or even use negative numbers to indicate opposites \, either in the incoming lists or in the stored ones., f 76; -#X text 181 149 delete all stored vectors; -#X text 487 115 add vectors; -#X text 117 82 debugging printout; -#X text 371 178 tweak the numbers and hit "bang" to input a list, +#X text 151 216 delete all stored vectors; +#X text 457 184 add vectors; +#X text 97 151 debugging printout; +#X text 341 247 tweak the numbers and hit "bang" to input a list, f 25; -#X text 257 288 creation argument to avoid repeated output; -#X text 220 317 output is the index of best match \, counting from +#X text 217 346 creation argument to avoid repeated output; +#X text 193 377 output is the index of best match \, counting from zero; -#X obj 177 183 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X obj 147 251 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 177 229 pack float float float; -#X obj 177 205 f; -#X floatatom 328 183 5 0 0 0 - - - 0; -#X floatatom 252 183 5 0 0 0 - - - 0; -#X text 408 657 updated for Pd version 0.30.; +#X obj 147 300 pack float float float; +#X obj 147 275 f, f 4; +#X floatatom 298 251 5 0 0 0 - - - 0; +#X floatatom 222 251 5 0 0 0 - - - 0; +#X text 413 630 updated for Pd version 0.30.; +#X text 542 13 <= click; +#N canvas 694 154 569 239 reference 0; +#X obj 8 49 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 128 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 167 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 209 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 33 14 choice; +#X text 89 13 - search for a best match to an incoming list; +#X text 100 62 print - post debugging information in the print out +window., f 61; +#X text 65 82 add - add vectors into the objects., f 66; +#X text 100 102 clear - delete all stored vectors., f 61; +#X text 100 137 float - index of best match (from zero).; +#X text 116 178 1) float - non zero avoids repeated output (default +0).; +#X restore 448 14 pd reference; +#X obj 5 47 cnv 1 620 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 4 616 cnv 1 620 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 0 0 5 0; #X connect 1 0 0 0; #X connect 2 0 0 0; diff -Nru puredata-0.52.1+ds0/extra/choice/GNUmakefile.am puredata-0.52.2+ds0/extra/choice/GNUmakefile.am --- puredata-0.52.1+ds0/extra/choice/GNUmakefile.am 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/choice/GNUmakefile.am 2022-03-27 22:30:03.000000000 +0000 @@ -17,11 +17,11 @@ dist_external_DATA = $(PATCHES) $(OTHERDATA) AUTOMAKE_OPTIONS = foreign -AM_CFLAGS = @EXTERNAL_CFLAGS@ -AM_CPPFLAGS += -I$(top_srcdir)/src -DPD +AM_CFLAGS = @EXTERNAL_CFLAGS@ @PD_CFLAGS@ +AM_CPPFLAGS += -I$(top_srcdir)/src -DPD @PD_CPPFLAGS@ choice_la_LIBADD = $(LIBM) AM_LDFLAGS = -module -avoid-version -shared @EXTERNAL_LDFLAGS@ \ - -shrext .@EXTERNAL_EXTENSION@ -L$(top_builddir)/src + -shrext .@EXTERNAL_EXTENSION@ -L$(top_builddir)/src @PD_LDFLAGS@ externaldir = $(pkglibdir)/extra/$(NAME) diff -Nru puredata-0.52.1+ds0/extra/complex-mod~-help.pd puredata-0.52.2+ds0/extra/complex-mod~-help.pd --- puredata-0.52.1+ds0/extra/complex-mod~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/complex-mod~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,35 +1,71 @@ -#N canvas 716 85 557 437 12; -#X floatatom 52 137 4 0 0 0 - - - 0; +#N canvas 709 71 579 441 12; +#X floatatom 52 137 5 0 0 0 - - - 0; #X obj 52 267 complex-mod~; #X obj 52 199 cos~; #X obj 92 219 cos~; #X obj 92 195 -~ 0.25; -#X text 76 65 The complex modulator takes two signals in which it considers +#X text 46 60 The complex modulator takes two signals in which it considers to be the real and imaginary part of a complex-valued signal. It then does a complex multiplication by a sinusoid to shift all frequencies -up or down by any frequency shift in Hz., f 61; -#X obj 406 396 hilbert~; -#X text 328 396 See also:; -#X obj 101 29 complex-mod~; -#X text 198 29 - complex amplitude modulator; -#X obj 62 321 output~; -#X floatatom 164 197 4 0 0 0 - - - 0; -#X text 200 199 Frequency shift; -#X obj 164 220 sig~; -#X text 204 252 The left output is the frquency shifted by the amount +up or down by any frequency shift in Hz., f 68; +#X obj 109 401 hilbert~; +#X text 31 401 See also:; +#X obj 29 15 complex-mod~; +#X text 126 15 - complex amplitude modulator; +#X obj 62 311 output~; +#X floatatom 164 181 5 0 0 0 - - - 0; +#X obj 164 210 sig~; +#X text 211 234 The left output is the frquency shifted by the amount of the frequency shift. The right outlet gives us the other side band \, which is shifted by the same amount in reverse., f 44; -#X text 197 321 (for instance \, if the shift is 100 \, left output +#X text 198 304 (for instance \, if the shift is 100 \, left output shifts the frequency up by 100 and the right shifts it down by 100) , f 47; #X obj 52 165 phasor~ 440; -#X connect 0 0 16 0; +#X text 482 14 <= click; +#N canvas 767 120 577 325 reference 0; +#X obj 8 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 174 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 257 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 294 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 146 268 NONE, f 52; +#X obj 8 107 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 8 82 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 8 221 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 8 196 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 29 15 complex-mod~; +#X text 126 15 - complex amplitude modulator; +#X text 142 85 signal - real part of signal input., f 53; +#X text 142 114 signal - imaginary part of signal input., f 53; +#X obj 8 139 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 +0; +#X text 100 146 float/signal - frequency shift amount in hz., f 53 +; +#X text 138 199 signal - frequency shifted side band., f 53; +#X text 138 229 signal - opposite side band (shifted in reverse).; +#X restore 388 15 pd reference; +#X obj 5 47 cnv 1 560 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 5 387 cnv 1 560 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 207 182 Frequency shift in hz; +#X text 157 127 This is also known as 'single side band modulation' +and relates to ring modulation (which has two sidebands); +#X connect 0 0 15 0; #X connect 1 0 10 0; #X connect 1 1 10 1; #X connect 2 0 1 0; #X connect 3 0 1 1; #X connect 4 0 3 0; -#X connect 11 0 13 0; -#X connect 13 0 1 2; -#X connect 16 0 2 0; -#X connect 16 0 4 0; +#X connect 11 0 12 0; +#X connect 12 0 1 2; +#X connect 15 0 2 0; +#X connect 15 0 4 0; diff -Nru puredata-0.52.1+ds0/extra/fiddle~/fiddle~-help.pd puredata-0.52.2+ds0/extra/fiddle~/fiddle~-help.pd --- puredata-0.52.1+ds0/extra/fiddle~/fiddle~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/fiddle~/fiddle~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,17 +1,17 @@ -#N canvas 442 52 1097 717 12; -#X obj 760 582 unpack; -#X msg 580 414 print; -#X obj 843 582 unpack; -#X obj 927 582 unpack; -#X obj 579 582 unpack; -#X obj 461 602 print attack; -#X obj 370 602 print pitch; -#X text 50 113 The Fiddle object estimates the pitch and amplitude +#N canvas 158 23 1062 700 12; +#X obj 696 555 unpack; +#X msg 515 416 print; +#X obj 779 555 unpack; +#X obj 862 555 unpack; +#X obj 510 528 unpack; +#X obj 404 548 print attack; +#X obj 313 548 print pitch; +#X text 19 117 The Fiddle object estimates the pitch and amplitude of an incoming sound \, both continuously and as a stream of discrete "note" events. Fiddle optionally outputs a list of detected sinusoidal peaks used to make the pitch determination. Fiddle is described theoretically in the 1998 ICMC proceedings \, reprinted on msp.ucsd.edu., f 51; -#X text 51 230 Fiddle's creation arguments specify an analysis window +#X text 19 234 Fiddle's creation arguments specify an analysis window size \, the maximum polyphony (i.e. \, the number of simultaneous "pitches" to try to find) \, the number of peaks in the spectrum to consider \, and the number of peaks \, if any \, to output "raw." The outlets @@ -19,131 +19,180 @@ envelope (a bang) \, one or more voices of continuous pitch and amplitude \, overall amplitude \, and optionally a sequence of messages with the peaks., f 51; -#X text 52 392 The analysis hop size is half the window size so in +#X text 19 388 The analysis hop size is half the window size so in the example shown here \, one analysis is done every 512 samples (11.6 msec at 44K1) \, and the analysis uses the most recent 1024 samples (23.2 msec at 44K1). The minimum frequency that Fiddle will report is 2-1/2 cycles per analysis windows \, or about 108 Hz. (just below MIDI 45.), f 51; -#X text 770 473 number of pitch outlets (1-3 \, default 1), f 43; -#X text 770 490 number of peaks to find (1-100 \, default 20); -#X text 770 507 number of peaks to output (default 0.), f 43; -#X msg 478 38 amp-range 40 50; -#X msg 509 162 reattack 100 10; -#X msg 522 225 npartial 7; -#X msg 496 99 vibrato 50 0.5; -#X text 611 94 A period in milliseconds (50) over which the raw pitch +#X text 701 463 number of pitch outlets (1-3 \, default 1), f 43; +#X text 701 480 number of peaks to find (1-100 \, default 20); +#X msg 404 66 amp-range 40 50; +#X msg 440 187 reattack 100 10; +#X msg 453 246 npartial 7; +#X msg 427 122 vibrato 50 0.5; +#X text 542 110 A period in milliseconds (50) over which the raw pitch may not deviate more than an interval in half-tones (0.5) from the average pitch to report it as a note to the "cooked" pitch outlet. -; -#X text 629 158 A period in milliseconds (100) over which a re-attack +, f 70; +#X text 560 172 A period in milliseconds (100) over which a re-attack is reported if the amplitude rises more than (1) dB. The re-attack will result in a "bang" in the attack outlet and may give rise to repeated -notes in the cooked pitch output.; -#X obj 514 491 fiddle~ 1024 1 20 3; -#X text 758 656 individual sinusoidal components; -#X text 670 654 amplitude; -#X text 680 669 (dB); -#X text 568 651 raw pitch; -#X text 555 666 and amplitude; -#X text 542 683 (up to 3 outputs); -#X text 467 622 bang on; -#X text 467 637 attack; -#X msg 535 284 auto 1; -#X msg 542 306 auto 0; -#X msg 574 384 bang; -#X text 612 383 poll current values --- useful if not in auto mode -\,; -#X text 605 222 Higher partials are weighed less strongly than lower +notes in the cooked pitch output., f 68; +#X obj 445 482 fiddle~ 1024 1 20 3; +#X text 694 627 individual sinusoidal components; +#X text 607 600 amplitude; +#X text 621 615 (dB), f 7; +#X msg 466 285 auto 1; +#X msg 473 307 auto 0; +#X msg 487 336 bang; +#X text 536 236 Higher partials are weighed less strongly than lower ones in determining the pitch. This specifies the number of the partial -(7) which will be weighted half as strongly as the fundamental.; -#X text 597 287 start and stop "auto" mode (on by default.) If off -\, output only appears on "bang" (poll mode)., f 47; -#X text 625 413 print out all settings; -#X text 770 456 window size (128-2048 \, default 1024), f 43; -#X msg 555 333 npoints 2048; -#X text 662 337 number of points in analysis window (power of 2 \, +(7) which will be weighted half as strongly as the fundamental., f +72; +#X text 528 288 start and stop "auto" mode (on by default.) If off +\, output only appears on "bang" (poll mode)., f 51; +#X text 560 415 print out all settings; +#X text 701 446 window size (128-2048 \, default 1024), f 43; +#X msg 498 364 npoints 2048; +#X text 601 366 number of points in analysis window (power of 2 \, 128-2048), f 29; -#X msg 561 354 npoints 1024; -#X obj 364 54 sigmund~; -#X text 59 54 NOTE: fiddle~ is obsolete - consider using; -#X obj 58 22 fiddle~; -#X text 116 21 - pitch estimator and sinusoidal peak finder; -#X text 657 490 ---- arguments:; -#X text 379 626 cooked pitch output, f 6; -#X obj 760 542 route 1 2 3; -#N canvas 481 154 386 332 test-input 0; -#X obj 152 192 phasor~; -#X obj 152 170 sig~; -#X floatatom 152 148 0 0 0 0 - - - 0; -#X obj 152 126 mtof; -#X floatatom 152 104 0 0 0 0 - - - 0; -#X obj 224 221 *~; -#X obj 211 52 loadbang; -#X obj 242 190 sig~; -#X floatatom 242 168 0 0 0 0 - - - 0; -#X msg 211 146 1; -#X msg 242 146 0; -#X text 32 102 test input pitch; -#X text 219 112 test input; -#X text 219 125 amplitude; -#X msg 152 82 57; -#X obj 224 255 outlet~; -#X connect 0 0 5 0; +#X msg 504 385 npoints 1024; +#X obj 184 78 sigmund~; +#X obj 34 11 fiddle~; +#X text 92 10 - pitch estimator and sinusoidal peak finder; +#X text 588 481 ---- arguments:; +#X text 308 570 cooked pitch output, f 12; +#X obj 696 525 route 1 2 3, f 36; +#N canvas 481 154 288 293 test-input 0; +#X obj 85 166 phasor~; +#X floatatom 85 144 4 0 0 0 - - - 0; +#X obj 85 120 mtof; +#X floatatom 85 98 4 0 0 0 - - - 0; +#X obj 137 195 *~; +#X obj 155 29 loadbang; +#X text 37 76 test input pitch, f 5; +#X msg 85 76 57; +#X obj 137 229 outlet~; +#X obj 155 163 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000 0 1; +#X text 175 154 test input amplitude, f 10; +#X connect 0 0 4 0; #X connect 1 0 0 0; #X connect 2 0 1 0; #X connect 3 0 2 0; -#X connect 4 0 3 0; -#X connect 5 0 15 0; -#X connect 6 0 14 0; -#X connect 6 0 9 0; -#X connect 7 0 5 1; -#X connect 8 0 7 0; -#X connect 9 0 8 0; -#X connect 10 0 8 0; -#X connect 14 0 4 0; -#X restore 589 449 pd test-input; -#X text 601 33 A low and high amplitude threshold: if signal amplitude +#X connect 4 0 8 0; +#X connect 5 0 7 0; +#X connect 5 0 9 0; +#X connect 7 0 3 0; +#X connect 9 0 4 1; +#X restore 530 447 pd test-input; +#X text 527 55 A low and high amplitude threshold: if signal amplitude is below the low threshold \, no pitches or peaks are output. The high -threshold is a minimum at which "cooked" outputs may appear.; -#X msg 125 599 \; pd dsp \$1; -#X obj 125 575 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +threshold is a minimum at which "cooked" outputs may appear., f 68 +; +#X msg 140 563 \; pd dsp \$1; +#X obj 140 539 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 148 575 DSP on/off; -#X floatatom 579 632 7 0 0 0 - - - 0; -#X floatatom 760 632 7 0 0 0 - - - 0; -#X floatatom 774 609 7 0 0 0 - - - 0; -#X floatatom 843 632 7 0 0 0 - - - 0; -#X floatatom 857 609 7 0 0 0 - - - 0; -#X floatatom 927 632 7 0 0 0 - - - 0; -#X floatatom 941 609 7 0 0 0 - - - 0; -#X floatatom 687 633 7 0 0 0 - - - 0; -#X floatatom 593 609 7 0 0 0 - - - 0; -#X connect 0 0 52 0; -#X connect 0 1 53 0; -#X connect 1 0 19 0; -#X connect 2 0 54 0; -#X connect 2 1 55 0; -#X connect 3 0 56 0; -#X connect 3 1 57 0; -#X connect 4 0 51 0; -#X connect 4 1 59 0; -#X connect 13 0 19 0; -#X connect 14 0 19 0; -#X connect 15 0 19 0; -#X connect 16 0 19 0; -#X connect 19 0 6 0; -#X connect 19 1 5 0; -#X connect 19 2 4 0; -#X connect 19 3 58 0; -#X connect 19 4 45 0; -#X connect 28 0 19 0; -#X connect 29 0 19 0; -#X connect 30 0 19 0; -#X connect 36 0 19 0; -#X connect 38 0 19 0; -#X connect 45 0 0 0; -#X connect 45 1 2 0; -#X connect 45 2 3 0; -#X connect 46 0 19 0; -#X connect 49 0 48 0; +#X text 163 539 DSP on/off; +#X floatatom 510 578 7 0 0 0 - - - 0; +#X floatatom 696 605 7 0 0 0 - - - 0; +#X floatatom 710 582 7 0 0 0 - - - 0; +#X floatatom 779 605 7 0 0 0 - - - 0; +#X floatatom 793 582 7 0 0 0 - - - 0; +#X floatatom 862 605 7 0 0 0 - - - 0; +#X floatatom 876 582 7 0 0 0 - - - 0; +#X floatatom 618 578 7 0 0 0 - - - 0; +#X floatatom 524 555 7 0 0 0 - - - 0; +#X obj 4 42 cnv 1 1050 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 932 10 <= click; +#N canvas 555 109 718 492 reference 0; +#X obj 6 35 cnv 5 700 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 6 207 cnv 2 700 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 6 378 cnv 2 700 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 5 466 cnv 5 700 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 5 230 cnv 1 700 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 5 257 cnv 1 700 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 +0; +#X text 147 45 signal - signal input to be analyzed., f 74; +#X obj 32 8 fiddle~; +#X text 90 7 - pitch estimator and sinusoidal peak finder; +#X obj 5 284 cnv 1 700 1 empty empty 3rd: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 5 313 cnv 1 700 1 empty empty 4th: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 5 344 cnv 1 700 1 empty empty 5th: 8 12 0 13 #9f9f9f #000000 +0; +#X text 154 386 1) float - window size (128-2048 \, default 1024); +#X text 154 403 2) float - number of pitch outlets (1-3 \, default +1); +#X text 154 420 3) float - number of peaks to find (1-100 \, default +20); +#X text 154 437 4) float - number of peaks to output (default 0); +#X text 197 262 bang - a bang is sent on new attacks., f 57; +#X text 197 289 list - continuous raw pitch and amplitude., f 57; +#X text 190 233 float - cooked pitch output., f 58; +#X text 21 62 amp-range - set low and high amplitude +threshold, f 92; +#X text 35 79 vibrato - set period in msec and pitch +deviation for "cooked" pitch outlet., f 90; +#X text 28 96 reattack - set period in msec and amplitude +in dB to report re-attack., f 91; +#X text 77 113 npartial - set partial number to be weighted +half as strongly as the fundamental., f 89; +#X text 105 130 auto - nonzero sets to auto mode (default) +and zero sets it off., f 85; +#X text 161 147 bang - poll current values (useful when auto mode is +off)., f 73; +#X text 84 164 npoints - sets number of points in analysis +window., f 84; +#X text 98 181 print - print out settings., f 82; +#X text 190 318 float - amplitude in dB., f 58; +#X text 197 350 list - peak number \, frequency and amplitude., f +56; +#X restore 838 11 pd reference; +#X text 68 58 NOTE: fiddle~ is obsolete! consider using, f 27; +#X text 484 596 raw pitch and amplitude (up to 3 outputs), f 13; +#X text 415 568 bang on attack, f 7; +#X obj 4 657 cnv 1 1050 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 701 497 number of peaks to output (default 0), f 43; +#X text 525 335 poll current values (useful when not in auto mode) +; +#X text 30 668 see also:; +#X obj 108 668 sigmund~; +#X text 174 667 (newer and better replacement for fiddle~); +#X connect 0 0 44 0; +#X connect 0 1 45 0; +#X connect 1 0 18 0; +#X connect 2 0 46 0; +#X connect 2 1 47 0; +#X connect 3 0 48 0; +#X connect 3 1 49 0; +#X connect 4 0 43 0; +#X connect 4 1 51 0; +#X connect 12 0 18 0; +#X connect 13 0 18 0; +#X connect 14 0 18 0; +#X connect 15 0 18 0; +#X connect 18 0 6 0; +#X connect 18 1 5 0; +#X connect 18 2 4 0; +#X connect 18 3 50 0; +#X connect 18 4 37 0; +#X connect 22 0 18 0; +#X connect 23 0 18 0; +#X connect 24 0 18 0; +#X connect 29 0 18 0; +#X connect 31 0 18 0; +#X connect 37 0 0 0; +#X connect 37 1 2 0; +#X connect 37 2 3 0; +#X connect 38 0 18 0; +#X connect 41 0 40 0; diff -Nru puredata-0.52.1+ds0/extra/fiddle~/GNUmakefile.am puredata-0.52.2+ds0/extra/fiddle~/GNUmakefile.am --- puredata-0.52.1+ds0/extra/fiddle~/GNUmakefile.am 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/fiddle~/GNUmakefile.am 2022-03-27 22:30:03.000000000 +0000 @@ -17,11 +17,11 @@ dist_external_DATA = $(PATCHES) $(OTHERDATA) AUTOMAKE_OPTIONS = foreign -AM_CFLAGS = @EXTERNAL_CFLAGS@ -AM_CPPFLAGS += -I$(top_srcdir)/src -DPD +AM_CFLAGS = @EXTERNAL_CFLAGS@ @PD_CFLAGS@ +AM_CPPFLAGS += -I$(top_srcdir)/src -DPD @PD_CPPFLAGS@ fiddle__la_LIBADD = $(LIBM) AM_LDFLAGS = -module -avoid-version -shared @EXTERNAL_LDFLAGS@ \ - -shrext .@EXTERNAL_EXTENSION@ -L$(top_builddir)/src + -shrext .@EXTERNAL_EXTENSION@ -L$(top_builddir)/src @PD_LDFLAGS@ externaldir = $(pkglibdir)/extra/$(NAME) diff -Nru puredata-0.52.1+ds0/extra/hilbert~-help.pd puredata-0.52.2+ds0/extra/hilbert~-help.pd --- puredata-0.52.1+ds0/extra/hilbert~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/hilbert~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,33 +1,77 @@ -#N canvas 688 134 621 453 12; -#X obj 67 124 hilbert~; +#N canvas 608 46 607 415 12; +#X obj 47 214 hilbert~; #N canvas 0 22 450 278 (subpatch) 0; -#X array out-left 882 float 0; -#X array out-right 882 float 0; -#X coords 0 1 881 -1 300 170 1; -#X restore 299 84 graph; -#X obj 67 257 tabwrite~ out-left; -#X obj 120 228 tabwrite~ out-right; -#X floatatom 67 65 4 0 0 0 - - - 0; -#X text 82 322 The Hilbert transform (the name is abused here according +#X array real 882 float 0; +#X array imaginary 882 float 0; +#X coords 0 1 881 -1 300 170 1 0 0; +#X restore 272 151 graph; +#X floatatom 47 125 4 0 0 0 - - - 0; +#X text 47 59 The Hilbert transform (the name is abused here according to computer music tradition) puts out a phase quadrature version of the input signal suitable for signal sideband modulation via complex-mod~. , f 68; -#X text 120 392 see also:; -#X obj 197 392 complex-mod~; -#X obj 54 15 hilbert~; -#X text 125 16 - Hilbert transform; -#X obj 134 148 loadbang; -#X obj 67 93 osc~ 110; -#X obj 134 177 metro 200; -#X obj 167 63 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X text 23 379 see also:; +#X obj 100 379 complex-mod~; +#X obj 24 15 hilbert~; +#X text 95 16 - Hilbert transform; +#X obj 124 218 loadbang; +#X obj 47 153 osc~ 110; +#X obj 124 247 metro 200; +#X obj 143 133 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X msg 167 89 \; pd dsp \$1; -#X text 185 59 DSP on/off; -#X connect 0 0 2 0; -#X connect 0 1 3 0; -#X connect 4 0 11 0; -#X connect 10 0 12 0; -#X connect 11 0 0 0; -#X connect 12 0 3 0; -#X connect 12 0 2 0; -#X connect 13 0 14 0; +#X msg 143 159 \; pd dsp \$1; +#X text 161 129 DSP on/off; +#X text 510 10 <= click; +#N canvas 767 120 577 295 reference 0; +#X obj 8 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 138 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 221 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 258 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 122 85 signal - signal input., f 53; +#X text 146 232 NONE, f 52; +#X obj 24 15 hilbert~; +#X text 95 16 - Hilbert transform; +#X obj 8 107 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 8 82 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 136 112 bang - clear filter's state., f 53; +#X obj 8 185 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 8 160 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 138 163 signal - real part of transformed signal., f 53; +#X text 138 193 signal - imaginary part of transformed signal., f +53; +#X restore 416 11 pd reference; +#X obj 5 45 cnv 1 590 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 100 188 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#X text 58 187 clear; +#X text 24 125 hz; +#X obj 5 365 cnv 1 590 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 47 327 tabwrite~ real; +#X obj 100 298 tabwrite~ imaginary; +#X text 314 328 real = red / imaginary = green; +#N canvas 1105 147 263 139 init 0; +#X obj 31 22 loadbang; +#X msg 31 48 \; real width 2 \, color 900 \; imaginary width 2 \, color +90; +#X connect 0 0 1 0; +#X restore 520 124 pd init; +#X text 380 379 updated for Pd version 0.52; +#X connect 0 0 21 0; +#X connect 0 1 22 0; +#X connect 2 0 9 0; +#X connect 8 0 10 0; +#X connect 9 0 0 0; +#X connect 10 0 21 0; +#X connect 10 0 22 0; +#X connect 11 0 12 0; +#X connect 17 0 0 1; diff -Nru puredata-0.52.1+ds0/extra/loop~/GNUmakefile.am puredata-0.52.2+ds0/extra/loop~/GNUmakefile.am --- puredata-0.52.1+ds0/extra/loop~/GNUmakefile.am 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/loop~/GNUmakefile.am 2022-03-27 22:30:03.000000000 +0000 @@ -17,11 +17,11 @@ dist_external_DATA = $(PATCHES) $(OTHERDATA) AUTOMAKE_OPTIONS = foreign -AM_CFLAGS = @EXTERNAL_CFLAGS@ -AM_CPPFLAGS += -I$(top_srcdir)/src -DPD +AM_CFLAGS = @EXTERNAL_CFLAGS@ @PD_CFLAGS@ +AM_CPPFLAGS += -I$(top_srcdir)/src -DPD @PD_CPPFLAGS@ AM_LIBS = $(LIBM) AM_LDFLAGS = -module -avoid-version -shared @EXTERNAL_LDFLAGS@ \ - -shrext .@EXTERNAL_EXTENSION@ -L$(top_builddir)/src + -shrext .@EXTERNAL_EXTENSION@ -L$(top_builddir)/src @PD_LDFLAGS@ externaldir = $(pkglibdir)/extra/$(NAME) diff -Nru puredata-0.52.1+ds0/extra/loop~/loop~-help.pd puredata-0.52.2+ds0/extra/loop~/loop~-help.pd --- puredata-0.52.1+ds0/extra/loop~/loop~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/loop~/loop~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,67 +1,104 @@ -#N canvas 748 47 676 603 12; +#N canvas 643 40 620 646 12; #X declare -stdpath ./; -#X floatatom 51 206 3 0 0 0 - - - 0; -#X obj 272 396 print~; -#X msg 272 361 bang; -#X obj 59 352 loop~; -#X floatatom 91 293 0 0 0 0 - - - 0; -#X msg 73 266 bang; -#X obj 201 396 print~; -#X msg 201 361 bang; +#X floatatom 21 186 6 0 0 0 - - - 0; +#X obj 265 435 print~; +#X msg 265 394 bang; +#X floatatom 105 287 7 0 0 0 - - - 0; +#X msg 93 247 bang; +#X obj 214 435 print~; +#X msg 214 392 bang; #N canvas 0 0 450 300 (subpatch) 0; -#X array array2 150000 float 0; -#X coords 0 1 149999 -1 200 150 1; -#X restore 395 361 graph; -#X obj 387 255 soundfiler; -#X obj 69 474 tabread4~ array2; -#X obj 69 411 *~; -#X obj 114 416 samphold~; -#X obj 69 444 +~; -#X floatatom 114 317 0 0 0 0 - - - 0; -#X obj 114 340 *~ 1000; -#X msg 387 200 read ../doc/sound/bell.aiff array2; -#X msg 62 241 set 0.5; -#X text 78 202 left signal input is transposition (1 is normal \, 2 -is up an octave \, etc), f 37; -#X text 122 242 set phase (0 to 1); -#X text 110 266 reset phase to 0; -#X text 117 292 right signal input is window size in samples; -#X text 142 316 here's how to handle onsets; -#X text 205 340 print outputs; -#X text 41 54 loop~ takes input signals to set a window size and transposition -\, and outputs a phase and a sampled window size. The window size only -changes at phase zero crossings and the phase output is adjusted so -that changing window size doesn't change the transposition., f 79 -; -#X text 41 116 You can send "bang" or "set" message to force the phase +#X array sample 155944 float 0; +#X coords 0 1 155943 -1 250 150 1 0 0; +#X restore 347 406 graph; +#X obj 296 253 soundfiler; +#X obj 87 422 *~; +#X obj 128 449 samphold~; +#X obj 87 453 +~; +#X floatatom 128 337 5 0 0 0 - - - 0; +#X obj 128 363 *~ 1000; +#X msg 73 221 set 0.5; +#X text 133 220 set phase (0 to 1); +#X text 130 247 reset phase to 0; +#X text 187 310 right signal input is window size in samples; +#X text 169 337 here's how to handle onsets; +#X text 212 368 print outputs; +#X text 25 118 You can send "bang" or "set" message to force the phase to zero--you should mute the output before doing so. This may be desirable if you've set a large window size but then want to decrease it without -waiting for the next phase crossing., f 79; -#X msg 399 226 read ../doc/sound/voice.wav array2; -#X obj 76 17 loop~; -#X text 120 16 - phase generator for looping samplers; -#X obj 69 509 output~; -#X obj 471 16 declare -stdpath ./; -#X obj 387 176 loadbang; -#X msg 395 523 \; array2 resize 150000; -#X connect 0 0 3 0; +waiting for the next phase crossing., f 80; +#X obj 43 16 loop~; +#X text 87 15 - phase generator for looping samplers; +#X obj 87 523 output~; +#X obj 471 251 declare -stdpath ./; +#X obj 296 174 loadbang; +#X text 522 14 <= click; +#N canvas 608 98 577 290 reference 0; +#X obj 8 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 144 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 227 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 264 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 146 238 NONE, f 52; +#X obj 8 107 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 8 82 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 8 191 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 8 166 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 33 16 loop~; +#X text 77 15 - phase generator for looping samplers; +#X text 109 85 float/signal - transposition value., f 53; +#X text 109 113 float/signal - window size in samples., f 53; +#X text 138 199 signal - sampled window size.; +#X text 138 169 signal - phase output from 0 to 1, f 53; +#X restore 428 15 pd reference; +#X obj 5 47 cnv 1 610 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 5 590 cnv 1 610 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 72 179 transposition (1 is normal \, 2 is up an octave \, etc) +, f 27; +#X floatatom 296 280 7 0 0 0 - - - 0; +#X obj 21 221 sig~ 1; +#X msg 296 198 read -resize ../doc/sound/bell.aiff sample; +#X msg 308 224 read -resize ../doc/sound/voice.wav sample; +#X obj 87 485 tabread4~ sample; +#X text 25 56 loop~ takes input signals to set transposition and window +size \, and outputs a phase and a sampled window size. The window size +only changes at phase zero crossings and the phase output is adjusted +so that changing window size doesn't change the transposition., f +80; +#X text 41 605 see also:; +#X obj 122 605 tabread4~; +#X obj 105 310 sig~ 22050; +#X obj 73 371 loop~; +#X connect 0 0 32 0; #X connect 2 0 1 0; -#X connect 3 0 6 0; -#X connect 3 0 11 0; -#X connect 3 0 12 1; -#X connect 3 1 1 0; -#X connect 3 1 11 1; -#X connect 4 0 3 1; -#X connect 5 0 3 0; -#X connect 7 0 6 0; -#X connect 10 0 29 0; -#X connect 10 0 29 1; -#X connect 11 0 13 0; -#X connect 12 0 13 1; +#X connect 3 0 39 0; +#X connect 4 0 40 0; +#X connect 6 0 5 0; +#X connect 8 0 31 0; +#X connect 9 0 11 0; +#X connect 10 0 11 1; +#X connect 11 0 35 0; +#X connect 12 0 13 0; #X connect 13 0 10 0; -#X connect 14 0 15 0; -#X connect 15 0 12 0; -#X connect 16 0 9 0; -#X connect 17 0 3 0; -#X connect 26 0 9 0; -#X connect 31 0 16 0; +#X connect 14 0 40 0; +#X connect 25 0 33 0; +#X connect 32 0 40 0; +#X connect 33 0 8 0; +#X connect 34 0 8 0; +#X connect 35 0 23 0; +#X connect 35 0 23 1; +#X connect 39 0 40 1; +#X connect 40 0 5 0; +#X connect 40 0 9 0; +#X connect 40 0 10 1; +#X connect 40 1 1 0; +#X connect 40 1 9 1; diff -Nru puredata-0.52.1+ds0/extra/lrshift~/GNUmakefile.am puredata-0.52.2+ds0/extra/lrshift~/GNUmakefile.am --- puredata-0.52.1+ds0/extra/lrshift~/GNUmakefile.am 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/lrshift~/GNUmakefile.am 2022-03-27 22:30:03.000000000 +0000 @@ -17,11 +17,11 @@ dist_external_DATA = $(PATCHES) $(OTHERDATA) AUTOMAKE_OPTIONS = foreign -AM_CFLAGS = @EXTERNAL_CFLAGS@ -AM_CPPFLAGS += -I$(top_srcdir)/src -DPD +AM_CFLAGS = @EXTERNAL_CFLAGS@ @PD_CFLAGS@ +AM_CPPFLAGS += -I$(top_srcdir)/src -DPD @PD_CPPFLAGS@ AM_LIBS = $(LIBM) AM_LDFLAGS = -module -avoid-version -shared @EXTERNAL_LDFLAGS@ \ - -shrext .@EXTERNAL_EXTENSION@ -L$(top_builddir)/src + -shrext .@EXTERNAL_EXTENSION@ -L$(top_builddir)/src @PD_LDFLAGS@ externaldir = $(pkglibdir)/extra/$(NAME) diff -Nru puredata-0.52.1+ds0/extra/lrshift~/lrshift~-help.pd puredata-0.52.2+ds0/extra/lrshift~/lrshift~-help.pd --- puredata-0.52.1+ds0/extra/lrshift~/lrshift~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/lrshift~/lrshift~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,33 +1,54 @@ -#N canvas 695 83 620 378 12; -#X msg 304 300 bang; -#X obj 280 325 print~; -#X msg 169 301 bang; -#X obj 145 325 print~; -#X msg 32 261 bang; -#X obj 32 325 print~; -#X text 99 273 shift left, f 5; -#X text 231 274 shift right, f 6; -#X obj 145 275 lrshift~ 1; -#X obj 280 274 lrshift~ -1; -#X text 47 50 Acting at whatever vector size the window is running +#N canvas 620 66 653 405 12; +#X msg 288 291 bang; +#X obj 265 326 print~; +#X msg 154 292 bang; +#X obj 130 326 print~; +#X msg 73 289 bang; +#X obj 54 326 print~; +#X text 84 244 shift left, f 5; +#X text 216 245 shift right, f 6; +#X obj 130 246 lrshift~ 1; +#X obj 265 245 lrshift~ -1; +#X text 41 58 Acting at whatever vector size the window is running at \, lrshift~ shifts samples to the left (toward the beginning sample) or to the right. The argument gives the direction and the amount of the shift. The rightmost (or leftmost) samples are set to zero., f -68; +81; #N canvas 0 22 450 300 (subpatch) 0; #X array shiftin 64 float 1; #A 0 0 1 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; -#X coords 0 1 63 0 200 140 1 0 0; -#X restore 390 147 graph; -#X obj 145 208 tabreceive~ shiftin; -#X obj 78 11 lrshift~; -#X text 146 11 - shift signal vector elements left or right; -#X msg 164 150 \; pd dsp \$1; -#X obj 164 127 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X coords 0 1 63 0 250 140 1 0 0; +#X restore 384 158 graph; +#X obj 55 175 tabreceive~ shiftin; +#X obj 38 11 lrshift~; +#X text 106 11 - shift signal vector elements left or right; +#X msg 236 148 \; pd dsp \$1; +#X obj 236 125 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 186 125 DSP on/off; -#X text 399 323 Updated for Pd versin 0.31.; +#X text 258 123 DSP on/off; +#X text 562 10 <= click; +#N canvas 767 120 572 199 reference 0; +#X obj 8 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 8 91 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 8 132 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 169 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 35 19 lrshift~; +#X text 103 19 - shift signal vector elements left or right; +#X text 138 63 signal - input signal vector to shift., f 53; +#X text 116 143 1) float - shift amount \, positive or negative (default +0).; +#X text 138 102 signal - shifted signal vector., f 53; +#X restore 468 11 pd reference; +#X obj 5 42 cnv 1 640 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 5 360 cnv 1 640 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 418 375 Updated for Pd version 0.31.; #X connect 0 0 1 0; #X connect 2 0 3 0; #X connect 4 0 5 0; diff -Nru puredata-0.52.1+ds0/extra/output~-help.pd puredata-0.52.2+ds0/extra/output~-help.pd --- puredata-0.52.1+ds0/extra/output~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/output~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,21 +1,55 @@ -#N canvas 757 123 504 445 12; -#X obj 193 313 output~; -#X obj 193 225 osc~ 440; -#X obj 251 258 osc~ 880; -#X text 77 31 output~ - simple stereo output GUI abstraction.; -#X text 66 401 see also:; -#X obj 147 402 dac~; -#X text 261 285 right signal input; -#X text 61 282 left signal input; -#X text 273 401 updated for Pd version 0.52; -#X text 32 72 Output~ takes a stereo signal and has GUI controls to -set the volume game and mute it. The number box sets the output gain -in dB (from 0 to 100) and whenever you click on it to drag \, the DSP -engine is turned on. The mute bang turns the volume off (sets to 0) -but restores to the last setting when you click back on it to unmute. -, f 57; -#X text 32 167 This is a very simple abstraction that is widely used -in Pd's documentation and examples. It is included here just for convenience. -; +#N canvas 596 63 608 443 12; +#X obj 222 320 output~; +#X obj 222 232 osc~ 440; +#X obj 280 265 osc~ 880; +#X text 26 411 see also:; +#X obj 107 412 dac~; +#X text 346 267 right signal input; +#X text 287 233 left signal input; +#X text 383 411 updated for Pd version 0.52; +#X text 22 98 Output~ takes a stereo signal and has GUI controls to +set the volume gain and mute it. The number box sets the output gain +in dB (from 0 to 100) and whenever you click on it to drag it \, the +DSP engine is turned on. The mute bang turns the volume off (sets to +0) but restores to the last setting when you click back on it to unmute. +, f 80; +#X msg 234 281 bang; +#X msg 146 282 level \$1; +#X floatatom 146 259 5 0 100 0 - - - 0; +#X text 22 57 This is a very simple abstraction that is widely used +in Pd's documentation (help files and examples). It is included here +just for convenience., f 75; +#X text 22 176 The left inlet also takes a bang message to mute/unmute +and a 'level' message to control the level output in dB., f 80; +#X text 23 13 [output~] - simple stereo output GUI abstraction.; +#X text 514 12 <= click; +#N canvas 760 120 479 279 reference 0; +#X obj 8 48 cnv 5 450 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 181 cnv 2 450 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 222 cnv 2 450 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 +0; +#X obj 7 259 cnv 5 450 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 156 233 NONE, f 36; +#X obj 8 150 cnv 1 450 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 +0; +#X obj 8 78 cnv 1 450 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 +0; +#X text 23 13 [output~] - simple stereo output GUI abstraction.; +#X text 132 81 signal - left signal input., f 39; +#X text 132 155 signal - right signal input., f 39; +#X text 156 193 NONE, f 36; +#X text 83 101 level - sets output level., f 46; +#X text 146 121 bang - mute/unmute., f 37; +#X restore 420 13 pd reference; +#X obj 10 45 cnv 1 590 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 10 395 cnv 1 590 1 empty empty empty 8 12 0 13 #000000 #000000 +0; #X connect 1 0 0 0; #X connect 2 0 0 1; +#X connect 9 0 0 0; +#X connect 10 0 0 0; +#X connect 11 0 10 0; diff -Nru puredata-0.52.1+ds0/extra/output~.pd puredata-0.52.2+ds0/extra/output~.pd --- puredata-0.52.1+ds0/extra/output~.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/output~.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,64 +1,70 @@ -#N canvas 670 92 567 603 12; -#X obj 350 490 t b; -#X obj 350 437 f; -#X obj 350 515 f; -#X msg 396 513 0; -#X obj 350 467 moses 1; -#X obj 400 437 moses 1; -#X obj 29 101 dbtorms; -#X obj 82 190 inlet~; -#X msg 242 317 \; pd dsp 1; -#X obj 29 210 line~; -#X obj 64 262 *~; -#X obj 64 292 dac~; -#X obj 29 131 pack 0 50; -#X text 101 164 audio in; -#X floatatom 323 219 3 0 100 0 dB - - 0; -#X obj 350 240 bng 15 250 50 0 empty empty mute -38 7 0 12 #fcfcfc +#N canvas 670 92 576 603 12; +#X obj 374 510 t b; +#X obj 374 457 f; +#X obj 374 535 f; +#X msg 420 533 0; +#X obj 374 487 moses 1; +#X obj 424 457 moses 1; +#X obj 42 101 dbtorms; +#X msg 274 388 \; pd dsp 1; +#X obj 42 270 line~; +#X obj 77 322 *~; +#X obj 77 352 dac~; +#X obj 42 131 pack 0 50; +#X floatatom 347 219 4 0 100 0 dB - - 0; +#X obj 374 240 bng 15 250 50 0 empty empty mute -38 7 0 12 #fcfcfc #000000 #000000; -#X obj 143 190 inlet~; -#X obj 124 261 *~; -#X text 408 383 MUTE logic:; -#X obj 323 174 r \$0-master-lvl; -#X obj 396 544 s \$0-master-lvl; -#X obj 323 279 s \$0-master-out; -#X obj 29 75 r \$0-master-out; -#X obj 400 408 r \$0-master-out; -#X obj 82 212 hip~ 3; -#X obj 142 212 hip~ 3; -#X text 89 100 <= convert from dB to linear units; -#X text 101 130 <= make a ramp to avoid clicks or zipper noise; -#X text 49 326 automatically start DSP =>; -#X text 182 421 recall previous; -#X text 126 518 previous nonzero master-lvl =>; -#X text 153 492 if true convert to bang =>; -#X text 181 469 test if less than 1 =>; -#X text 182 439 value of master-lvl =>; -#X text 60 9 Level control abstraction \, part of 'extra' used in many +#X obj 175 170 inlet~; +#X obj 157 321 *~; +#X text 432 403 MUTE logic:; +#X obj 347 174 r \$0-master-lvl; +#X obj 420 564 s \$0-master-lvl; +#X obj 347 279 s \$0-master-out; +#X obj 42 75 r \$0-master-out; +#X obj 424 428 r \$0-master-out; +#X obj 95 272 hip~ 3; +#X obj 175 272 hip~ 3; +#X text 102 100 <= convert from dB to linear units; +#X text 114 130 <= make a ramp to avoid clicks or zipper noise; +#X text 81 397 automatically start DSP =>; +#X text 206 441 recall previous; +#X text 150 538 previous nonzero master-lvl =>; +#X text 177 512 if true convert to bang =>; +#X text 205 489 test if less than 1 =>; +#X text 206 459 value of master-lvl =>; +#X text 84 9 Level control abstraction \, part of 'extra' used in many of the Pd example and help patches. The "level" and "mute" controls show up on the parent \, calling patch., f 61; +#X obj 95 170 inlet~ fwd; +#X obj 187 200 route bang level; +#X obj 241 240 clip 0 100; +#X text 227 168 <= audio in; #X connect 0 0 2 0; #X connect 1 0 4 0; -#X connect 2 0 20 0; -#X connect 3 0 20 0; +#X connect 2 0 18 0; +#X connect 3 0 18 0; #X connect 4 0 0 0; #X connect 4 1 3 0; #X connect 5 1 2 1; -#X connect 6 0 12 0; -#X connect 7 0 24 0; -#X connect 9 0 17 0; +#X connect 6 0 11 0; +#X connect 8 0 15 0; +#X connect 8 0 9 0; #X connect 9 0 10 0; -#X connect 10 0 11 0; -#X connect 12 0 9 0; -#X connect 14 0 8 0; -#X connect 14 0 21 0; -#X connect 15 0 1 0; -#X connect 16 0 25 0; -#X connect 17 0 11 1; -#X connect 19 0 14 0; -#X connect 22 0 6 0; -#X connect 23 0 1 1; -#X connect 23 0 5 0; -#X connect 24 0 10 1; -#X connect 25 0 17 1; -#X coords 0 0 1 1 65 55 1 300 200; +#X connect 11 0 8 0; +#X connect 12 0 7 0; +#X connect 12 0 19 0; +#X connect 13 0 1 0; +#X connect 14 0 23 0; +#X connect 15 0 10 1; +#X connect 17 0 12 0; +#X connect 20 0 6 0; +#X connect 21 0 1 1; +#X connect 21 0 5 0; +#X connect 22 0 9 1; +#X connect 23 0 15 1; +#X connect 33 0 22 0; +#X connect 33 1 34 0; +#X connect 34 0 13 0; +#X connect 34 1 35 0; +#X connect 35 0 12 0; +#X coords 0 0 1 1 65 55 1 325 200; diff -Nru puredata-0.52.1+ds0/extra/pd~/GNUmakefile.am puredata-0.52.2+ds0/extra/pd~/GNUmakefile.am --- puredata-0.52.1+ds0/extra/pd~/GNUmakefile.am 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/pd~/GNUmakefile.am 2022-03-27 22:30:03.000000000 +0000 @@ -19,11 +19,11 @@ dist_external_DATA = $(PATCHES) $(OTHERDATA) AUTOMAKE_OPTIONS = foreign -AM_CFLAGS = @EXTERNAL_CFLAGS@ -AM_CPPFLAGS += -I$(top_srcdir)/src -DPD +AM_CFLAGS = @EXTERNAL_CFLAGS@ @PD_CFLAGS@ +AM_CPPFLAGS += -I$(top_srcdir)/src -DPD @PD_CPPFLAGS@ pd__la_LIBADD = $(LIBM) AM_LDFLAGS = -module -avoid-version -shared @EXTERNAL_LDFLAGS@ \ - -shrext .@EXTERNAL_EXTENSION@ -L$(top_builddir)/src + -shrext .@EXTERNAL_EXTENSION@ -L$(top_builddir)/src @PD_LDFLAGS@ externaldir = $(pkglibdir)/extra/$(NAME) diff -Nru puredata-0.52.1+ds0/extra/pd~/pd~-help.pd puredata-0.52.2+ds0/extra/pd~/pd~-help.pd --- puredata-0.52.1+ds0/extra/pd~/pd~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/pd~/pd~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,79 +1,140 @@ -#N canvas 721 23 630 827 12; -#X msg 63 301 foo bar baz; -#X obj 155 396 osc~ 440; -#X obj 160 566 env~ 8192; -#X floatatom 160 615 5 0 0 0 - - - 0; -#X msg 46 256 pd~ stop; -#X obj 160 591 i; -#X obj 274 567 env~ 8192; -#X floatatom 274 617 5 0 0 0 - - - 0; -#X obj 274 593 i; -#X obj 155 431 *~; -#X obj 190 432 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#N canvas 463 23 631 702 12; +#X msg 80 269 foo bar baz; +#X obj 228 354 osc~ 440; +#X obj 145 488 env~ 8192; +#X floatatom 145 537 5 0 0 0 - - - 0; +#X msg 34 227 pd~ stop; +#X obj 145 513 i; +#X obj 229 489 env~ 8192; +#X floatatom 229 539 5 0 0 0 - - - 0; +#X obj 229 515 i; +#X obj 162 389 *~; +#X obj 197 390 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X obj 221 432 *~; -#X obj 256 433 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X obj 228 390 *~; +#X obj 263 391 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X obj 46 595 print x; -#X msg 29 233 pd~ start pd~-subprocess.pd; -#X obj 46 474 pd~ -ninsig 2 -noutsig 2 -fifo 20; -#X obj 71 19 pd~; -#X text 100 19 - run a pd sub-process; -#X text 47 53 The pd~ object starts and manages a Pd sub-process that +#X obj 63 517 print x; +#X msg 17 204 pd~ start pd~-subprocess.pd; +#X obj 37 13 pd~; +#X text 72 12 - run a pd sub-process; +#X text 13 51 The pd~ object starts and manages a Pd sub-process that can communicate with the super-process (this one) via audio channels and/or Pd messages. In this way you can take advantage of multi-core CPUs \, and/or use Pd features from within Max (if you're using the -Max version of pd~)., f 73; -#X text 233 231 Sending a new "start" message will stop the sub-process -and start a new one. If you just want to stop the sub-process \, send -"stop"., f 44; -#X text 156 289 Any message besides "pd~" is sent to the sub-process. +Max version of pd~)., f 85; +#X text 173 257 Any message besides "pd~" is sent to the sub-process. For instance \, the message below sends "bar baz" to any object in the sub-process named "foo" \, such as a "receive" object., f 59; -#X text 94 353 Audio signals appear in adc~ objects in the sub-process. +#X text 117 310 Audio signals appear in adc~ objects in the sub-process. The sub-process doesn't open real audio devices., f 56; -#X text 307 393 Creation args:, f 41; -#X text 307 410 -insig sets input audio channels, f 41; -#X text 307 428 -outsig sets output channels, f 41; -#X text 307 464 -fifo sets round-trip delay in blocks; -#X text 307 482 -pddir sets Pd directory \, e.g. \,, f 41; -#X text 342 498 .../Pd-0.42.app/Contents/Resources, f 36; -#X text 307 514 -scheddir sets scheduler dir \, e.g. \,, f 41 +#X text 307 355 Creation args:, f 41; +#X text 307 423 -fifo sets round-trip delay in blocks; +#X text 307 439 -pddir sets Pd directory \, e.g. \,, f 41; +#X text 342 455 .../Pd-0.42.app/Contents/Resources, f 36; +#X text 307 471 -scheddir sets scheduler dir \, e.g. \,, f 41 ; -#X text 342 530 .../.../Resources/extra/pd~, f 36; -#X text 307 446 -sr sets sample rate, f 41; -#X text 45 669 The first outlet reports messages the sub-process sends +#X text 342 487 .../.../Resources/extra/pd~, f 36; +#X text 307 406 -sr sets sample rate, f 41; +#X text 34 590 The first outlet reports messages the sub-process sends us via "stdout" objects. Any other outlets are signals corresponding -to "dac~" objects in the sub-process., f 66; -#X text 45 722 ATTENTION: DSP must be running in this process for the +to "dac~" objects in the sub-process., f 81; +#X text 34 626 ATTENTION: DSP must be running in this process for the sub-process to run. This is because its clock is slaved to audio I/O -it gets from us!, f 66; -#X text 355 786 Updated for Pd version 0.42.; -#X text 47 116 Messages with "pd~" selector control the sub-process. -"pd~ start" takes as arguments any startup arguments you wish to send -the sub-process. For example \, specify "-nogui" to stop the sub-process's +it gets from us!, f 81; +#X text 403 677 Updated for Pd version 0.42.; +#X obj 402 518 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#000000 0 1; +#X msg 402 543 \; pd dsp \$1; +#X text 424 518 DSP on/off; +#X obj 4 43 cnv 1 620 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 542 12 <= click; +#N canvas 555 116 719 472 reference 0; +#X obj 6 35 cnv 5 700 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 6 209 cnv 2 700 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 6 297 cnv 2 700 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 5 445 cnv 5 700 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 5 238 cnv 1 700 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 5 265 cnv 1 700 1 empty empty n: 8 12 0 13 #9f9f9f #000000 0 +; +#X obj 42 6 pd~; +#X text 77 5 - run a pd sub-process; +#X obj 5 323 cnv 1 700 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X text 102 329 -ninsig : sets number of input audio channels +(default 2)., f 74; +#X text 102 347 -noutsig : sets number of output audio channels +(default 2)., f 74; +#X obj 6 67 cnv 1 700 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 +0; +#X text 60 73 pd~ start -; +#X text 221 73 start a new sub-process. This message takes startup +flags and needs a pd file to open., f 67; +#X text 144 105 pd~ stop - stops the pd sub-process., f 78; +#X text 158 153 signal - signal input if there's a corresponding adc~ +input., f 76; +#X text 144 122 anything -; +#X text 221 122 messages besides "pd~" are sent to corresponding objects +in the sub-process with the same name as the first element in the message. +, f 67; +#X obj 6 180 cnv 1 700 1 empty empty n: 8 12 0 13 #9f9f9f #000000 0 +; +#X text 158 186 signal - signal input if there's a corresponding adc~ +input., f 76; +#X text 158 270 signal - signal output if there's a corresponding dac~ +output., f 63; +#X text 94 216 total number of 'n' signal outlets is given as a creation +argument., f 69; +#X text 94 44 total number of 'n' signal inlets is given as a creation +argument., f 67; +#X text 143 241 anything - messages from the sub-process sent via "stdout" +objects., f 67; +#X text 102 383 -fifo : sets number of blocks for round-trip +(default 5)., f 74; +#X text 102 365 -sr : sets sample rate of subprocess (default +pd's current)., f 74; +#X text 102 401 -pddir : sets Pd's directory (needed if different +than default)., f 74; +#X text 102 419 -scheddir : sets scheduler's directory (also +needed if different)., f 74; +#X restore 448 13 pd reference; +#X obj 4 667 cnv 1 620 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 40 677 see also:; +#X obj 116 678 stdout; +#X text 307 372 -ninsig sets input audio channels, f 41; +#X text 307 389 -noutsig sets output channels, f 41; +#X obj 63 426 pd~ -ninsig 2 -noutsig 2 -fifo 20, f 24; +#X text 223 194 Sending a new "start" message will stop the sub-process +(if there's one) and start a new process by opening a patch. The "stop" +message only stops the sub-process., f 55; +#X text 13 112 Messages with "pd~" selector control the sub-process. +"pd~ start" takes as arguments any startup flags you wish to send the +sub-process. For example \, specify "-nogui" to stop the sub-process's GUI from appearing. You don't have to specify the number of channels in and out \, since that's set by creation arguments below. Audio config arguments arguments (-audiobuf \, -audiodev \, etc.) are ignored., -f 73; -#X obj 397 576 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 -#000000 0 1; -#X msg 397 601 \; pd dsp \$1; -#X text 419 576 DSP on/off; -#X connect 0 0 15 0; +f 85; +#X connect 0 0 41 0; #X connect 1 0 9 0; #X connect 1 0 11 0; #X connect 2 0 5 0; -#X connect 4 0 15 0; +#X connect 4 0 41 0; #X connect 5 0 3 0; #X connect 6 0 8 0; #X connect 8 0 7 0; -#X connect 9 0 15 0; +#X connect 9 0 41 0; #X connect 10 0 9 1; -#X connect 11 0 15 1; +#X connect 11 0 41 1; #X connect 12 0 11 1; -#X connect 14 0 15 0; -#X connect 15 0 13 0; -#X connect 15 1 2 0; -#X connect 15 2 6 0; -#X connect 35 0 36 0; +#X connect 14 0 41 0; +#X connect 30 0 31 0; +#X connect 41 0 13 0; +#X connect 41 1 2 0; +#X connect 41 2 6 0; diff -Nru puredata-0.52.1+ds0/extra/pique/GNUmakefile.am puredata-0.52.2+ds0/extra/pique/GNUmakefile.am --- puredata-0.52.1+ds0/extra/pique/GNUmakefile.am 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/pique/GNUmakefile.am 2022-03-27 22:30:03.000000000 +0000 @@ -17,11 +17,11 @@ dist_external_DATA = $(PATCHES) $(OTHERDATA) AUTOMAKE_OPTIONS = foreign -AM_CFLAGS = @EXTERNAL_CFLAGS@ -AM_CPPFLAGS += -I$(top_srcdir)/src -DPD +AM_CFLAGS = @EXTERNAL_CFLAGS@ @PD_CFLAGS@ +AM_CPPFLAGS += -I$(top_srcdir)/src -DPD @PD_CPPFLAGS@ pique_la_LIBADD = $(LIBM) AM_LDFLAGS = -module -avoid-version -shared @EXTERNAL_LDFLAGS@ \ - -shrext .@EXTERNAL_EXTENSION@ -L$(top_builddir)/src + -shrext .@EXTERNAL_EXTENSION@ -L$(top_builddir)/src @PD_LDFLAGS@ externaldir = $(pkglibdir)/extra/$(NAME) diff -Nru puredata-0.52.1+ds0/extra/pique/pique-help.pd puredata-0.52.2+ds0/extra/pique/pique-help.pd --- puredata-0.52.1+ds0/extra/pique/pique-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/pique/pique-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,37 +1,64 @@ -#N canvas 667 74 758 469 12; +#N canvas 421 58 724 502 12; #X obj 47 11 pique; -#X obj 143 205 rfft~; -#X obj 102 136 osc~ 2000; +#X obj 116 194 rfft~; +#X obj 39 151 osc~ 2000; #N canvas 0 22 450 278 (subpatch) 0; #X array fft-real 64 float 0; #X coords 0 64 63 -64 200 140 1; -#X restore 516 67 graph; +#X restore 496 96 graph; #N canvas 0 22 450 278 (subpatch) 0; #X array fft-imag 64 float 0; #X coords 0 64 63 -64 200 140 1; -#X restore 516 236 graph; -#X obj 143 289 tabwrite~ fft-real; -#X obj 225 259 tabwrite~ fft-imag; -#X obj 225 223 metro 1000; -#X obj 225 196 loadbang; -#X obj 125 399 pique; -#X msg 125 372 64 fft-real fft-imag 10; -#X obj 125 426 print; -#X obj 143 162 osc~ 5000; -#X text 25 64 pique takes unwindowed FFT analyses as input (they should +#X restore 496 265 graph; +#X obj 116 268 tabwrite~ fft-real; +#X obj 198 238 tabwrite~ fft-imag; +#X obj 198 202 metro 1000; +#X obj 198 175 loadbang; +#X obj 117 383 pique; +#X msg 117 356 64 fft-real fft-imag 10; +#X obj 117 410 print; +#X obj 116 151 osc~ 5000; +#X text 17 79 pique takes unwindowed FFT analyses as input (they should be stored in arrays) and outputs a list of peaks \, giving their peak number \, frequency \, amplitude \, and phase (as a cosine/sine pair.) , f 64; -#X text 41 325 message arguments: number of FFT points \, fft real +#X text 20 308 message arguments: number of FFT points \, fft real part \, fft imaginary part \, maximum number of peaks to report.; -#X text 557 398 updated for Pd 0.31.; +#X text 554 462 updated for Pd 0.31.; #X text 97 12 - find peaks in an FFT spectrum; -#X msg 334 171 \; pd dsp \$1; -#X obj 334 144 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X msg 346 180 \; pd dsp \$1; +#X obj 346 153 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 354 145 DSP on/off; -#X obj 351 40 sigmund~; -#X text 46 40 NOTE: fiddle~ is obsolete - consider using; +#X text 366 154 DSP on/off; +#X obj 343 55 sigmund~; +#X text 38 55 NOTE: pique~ is obsolete - consider using; +#X obj 5 43 cnv 1 710 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 639 12 <= click; +#N canvas 735 153 528 215 reference 0; +#X obj 6 37 cnv 5 500 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 6 99 cnv 2 500 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 6 150 cnv 2 500 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 5 188 cnv 5 500 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X text 154 158 NONE.; +#X obj 25 7 pique; +#X text 75 8 - find peaks in an FFT spectrum; +#X text 79 48 list -; +#X text 135 47 number of FFT points \, table name for real part \, +table name forimaginary part and maximum number of peaks to report. +, f 48; +#X text 79 108 list -; +#X text 135 107 partial index \, frequency in hz \, amplitude \, cosine +and sine components., f 42; +#X restore 545 13 pd reference; +#X obj 5 444 cnv 1 710 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 40 458 see also:; +#X obj 117 458 sigmund~; #X connect 1 0 5 0; #X connect 1 1 6 0; #X connect 2 0 1 0; diff -Nru puredata-0.52.1+ds0/extra/rev1~-help.pd puredata-0.52.2+ds0/extra/rev1~-help.pd --- puredata-0.52.1+ds0/extra/rev1~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/rev1~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,48 +1,46 @@ -#N canvas 702 63 681 529 12; -#X floatatom 160 282 5 0 100 0 - db - 0; -#X obj 47 120 metro 2000; -#X text 194 309 clear; -#X text 272 146 This is an experimental reverberator design composed +#N canvas 598 23 648 487 12; +#X floatatom 142 255 5 0 100 0 - db - 0; +#X obj 29 93 metro 2000; +#X text 176 282 clear; +#X text 243 109 This is an experimental reverberator design composed of a series of allpass filters with exponentially growing delay times. Each allpass filter has a gain of 0.7. The reverb time is adjusted by adjusting the input gains of the allpass filters. The last unit is modified so that its first two "echos" mimic those of an allpass but its loop gain depends on reverb time., f 53; -#X text 272 252 Reverb time is controlled by specifying the dB gain +#X text 243 215 Reverb time is controlled by specifying the dB gain (100 normal) after one second \, so that 100 corresponds to infinite reverb time \, 70 to two seconds \, 40 to one second \, and 0 to 0 , f 53; -#X text 72 474 modified for Pd version 0.30.; -#X text 440 415 The rev1~ module eats about 18% of my 300mHz P2 machine. +#X text 418 376 The rev1~ module eats about 18% of my 300mHz P2 machine. , f 28; -#X obj 144 334 rev1~; -#X text 272 317 The "clear" button impolitely clears out all the delay +#X obj 126 307 rev1~; +#X text 243 280 The "clear" button impolitely clears out all the delay lines \, You may immediately resume pumping the reverberator \, but the input signal should be cleanly enveloped. The output \, too \, must be enveloped and may not be opened until 5 msec after the "clear" message is sent., f 53; -#X obj 47 148 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X obj 29 121 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 47 98 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 +#X obj 29 71 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X obj 176 310 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X obj 158 283 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X text 117 263 dB after 1 sec, f 8; -#X msg 135 93 20; -#X msg 144 116 100; -#X msg 157 163 1000; -#X floatatom 135 194 5 0 0 0 - - - 0; -#X msg 151 140 500; -#X floatatom 91 194 5 0 0 0 - freq - 0; -#X text 87 173 pitch; -#X obj 522 28 loadbang; -#X obj 78 37 rev1~; -#X text 130 37 - a simple 1-in \, 1-out reverberator; -#X text 418 483 see also:; -#X obj 498 482 rev2~, f 7; -#X obj 564 482 rev3~, f 8; -#X text 66 147 impulse; -#N canvas 863 156 393 438 test-input 0; +#X text 99 236 dB after 1 sec, f 8; +#X msg 117 66 20; +#X msg 126 89 100; +#X msg 139 136 1000; +#X floatatom 117 167 5 0 0 0 - - - 0; +#X msg 133 113 500; +#X floatatom 73 167 5 0 0 0 - freq - 0; +#X text 69 146 pitch; +#X obj 30 13 rev1~; +#X text 82 12 - a simple 1-in \, 1-out reverberator; +#X text 30 447 see also:; +#X obj 110 448 rev2~, f 7; +#X obj 176 448 rev3~, f 8; +#X text 48 120 impulse; +#N canvas 806 163 502 434 test-input 0; #X obj 248 191 line~; #X obj 248 214 cos~; #X obj 259 96 loadbang; @@ -65,6 +63,8 @@ #X msg 48 181 1000 \$1; #X obj 48 259 vline~; #X msg 48 233 1 \, 0 0 \$1; +#X obj 357 155 loadbang; +#X msg 357 181 \; freq 69 \; db 80; #X connect 0 0 1 0; #X connect 1 0 4 0; #X connect 2 0 3 0; @@ -92,25 +92,53 @@ #X connect 19 0 18 0; #X connect 20 0 13 0; #X connect 21 0 20 0; -#X restore 47 231 pd test-input; -#X text 180 93 <= tone burst durtion in ms, f 14; -#X obj 48 377 output~; -#X obj 143 377 output~; -#X msg 522 54 \; freq 69 \; db 80; -#X connect 0 0 7 1; -#X connect 1 0 9 0; -#X connect 7 0 30 0; -#X connect 7 0 30 1; -#X connect 9 0 27 0; -#X connect 10 0 1 0; -#X connect 11 0 7 2; -#X connect 13 0 16 0; -#X connect 14 0 16 0; -#X connect 15 0 16 0; -#X connect 16 0 27 2; -#X connect 17 0 16 0; -#X connect 18 0 27 1; -#X connect 20 0 31 0; -#X connect 27 0 7 0; -#X connect 27 0 29 0; -#X connect 27 0 29 1; +#X connect 22 0 23 0; +#X restore 29 204 pd test-input; +#X obj 30 350 output~; +#X obj 126 350 output~; +#X obj 6 44 cnv 1 630 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 552 12 <= click; +#N canvas 755 157 577 298 reference 0; +#X obj 9 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 85 cnv 1 550 1 empty empty 1st: 8 12 0 13 #000000 #000000 +0; +#X obj 9 200 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 +0; +#X obj 9 237 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 269 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 120 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #000000 #000000 +0; +#X obj 8 160 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #000000 #000000 +0; +#X text 199 246 NONE; +#X obj 22 16 rev1~; +#X text 74 15 - a simple 1-in \, 1-out reverberator; +#X text 131 91 signal - reverb input., f 56; +#X text 131 210 signal - reverb output.; +#X text 138 131 float - dB after 1 second., f 55; +#X text 145 169 bang - clear the reverb., f 55; +#X restore 458 13 pd reference; +#X obj 6 429 cnv 1 630 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 417 447 updated for Pd version 0.30.; +#X text 156 66 <= tone burst durtions in ms; +#X connect 0 0 6 1; +#X connect 1 0 8 0; +#X connect 6 0 27 0; +#X connect 6 0 27 1; +#X connect 8 0 25 0; +#X connect 9 0 1 0; +#X connect 10 0 6 2; +#X connect 12 0 15 0; +#X connect 13 0 15 0; +#X connect 14 0 15 0; +#X connect 15 0 25 2; +#X connect 16 0 15 0; +#X connect 17 0 25 1; +#X connect 25 0 6 0; +#X connect 25 0 26 0; +#X connect 25 0 26 1; diff -Nru puredata-0.52.1+ds0/extra/rev2~-help.pd puredata-0.52.2+ds0/extra/rev2~-help.pd --- puredata-0.52.1+ds0/extra/rev2~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/rev2~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,40 +1,27 @@ -#N canvas 752 97 676 558 12; -#X floatatom 90 318 4 0 120 0 - - - 0; -#X text 121 318 level \, dB; -#X floatatom 124 342 4 0 100 0 - - - 0; -#X text 157 342 liveness \, 0-100; -#X text 417 500 modified for Pd version 0.37; -#X floatatom 158 366 6 0 0 0 - - - 0; -#X floatatom 193 392 4 0 100 0 - - - 0; -#X text 206 366 crossover frequency \, Hz.; -#X text 228 393 HF damping \, percent; -#X text 339 117 The creation arguments (level \, liveness \, crossover -frequency \, HF damping) may also be supplied in four inlets as shown. -The "liveness" (actually the internal feedback percentage) should be -100 for infinite reverb \, 90 for longish \, and 80 for short. The -crossover frequency and HF damping work together: at frequencies above -crossover \, the feedback is diminished by the "damping" as a percentage. -So zero HF damping means equal reverb time at all frequencies \, and -100% damping means almost nothing above the crossover frequency gets -through., f 43; -#X obj 88 37 rev2~, f 7; -#X text 151 37 - a simple 1-in \, 4-out reverberator; -#X text 526 360 see also:; -#X obj 532 386 rev1~; -#X obj 532 416 rev3~, f 8; -#X obj 56 119 metro 2000; -#X obj 56 147 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#N canvas 593 23 646 530 12; +#X floatatom 90 273 4 0 120 0 - - - 0; +#X floatatom 124 297 4 0 100 0 - - - 0; +#X floatatom 158 321 6 0 0 0 - - - 0; +#X floatatom 193 347 4 0 100 0 - - - 0; +#X text 206 321 crossover frequency \, Hz.; +#X obj 35 10 rev2~, f 7; +#X text 98 10 - a simple 1-in \, 4-out reverberator; +#X text 21 495 see also:; +#X obj 95 495 rev1~; +#X obj 143 495 rev3~, f 8; +#X obj 56 109 metro 2000; +#X obj 56 137 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 56 97 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 +#X obj 56 87 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X msg 144 92 20; -#X msg 153 115 100; -#X msg 166 162 1000; -#X floatatom 144 193 5 0 0 0 - - - 0; -#X msg 160 139 500; -#X floatatom 100 193 5 0 0 0 - freq - 0; -#X text 96 172 pitch; -#X text 75 146 impulse; +#X msg 144 77 20; +#X msg 153 100 100; +#X msg 166 147 1000; +#X floatatom 144 183 5 0 0 0 - - - 0; +#X msg 160 124 500; +#X floatatom 100 183 5 0 0 0 - freq - 0; +#X text 96 162 pitch; +#X text 76 136 impulse; #N canvas 863 156 393 438 test-input 0; #X obj 241 191 line~; #X obj 241 214 cos~; @@ -58,6 +45,8 @@ #X msg 41 181 1000 \$1; #X obj 41 259 vline~; #X msg 41 233 1 \, 0 0 \$1; +#X obj 285 296 loadbang; +#X msg 285 322 \; freq 69; #X connect 0 0 1 0; #X connect 1 0 4 0; #X connect 2 0 3 0; @@ -85,26 +74,93 @@ #X connect 19 0 18 0; #X connect 20 0 13 0; #X connect 21 0 20 0; -#X restore 56 230 pd test-input; -#X text 189 89 <= tone burst durtion in ms, f 14; -#X obj 216 209 loadbang; -#X obj 56 423 rev2~ 100 90 3000 20; -#X obj 52 468 output~; -#X msg 216 235 \; freq 69; +#X connect 22 0 23 0; +#X restore 56 220 pd test-input; +#X text 189 74 <= tone burst durtion in ms, f 28; +#X obj 52 408 output~; +#X obj 6 44 cnv 1 630 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 552 12 <= click; +#N canvas 746 67 578 447 reference 0; +#X obj 9 39 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 69 cnv 1 550 1 empty empty 1st: 8 12 0 13 #000000 #000000 +0; +#X obj 9 199 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 341 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 422 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 92 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #000000 #000000 +0; +#X obj 8 120 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #000000 #000000 +0; +#X text 131 72 signal - reverb input., f 56; +#X obj 25 12 rev2~, f 7; +#X text 88 12 - a simple 1-in \, 4-out reverberator; +#X obj 8 146 cnv 1 550 1 empty empty 4th: 8 12 0 13 #000000 #000000 +0; +#X obj 8 173 cnv 1 550 1 empty empty 5th: 8 12 0 13 #000000 #000000 +0; +#X obj 8 224 cnv 1 550 1 empty empty 1st: 8 12 0 13 #000000 #000000 +0; +#X obj 8 251 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #000000 #000000 +0; +#X obj 8 281 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #000000 #000000 +0; +#X obj 8 308 cnv 1 550 1 empty empty 4th: 8 12 0 13 #000000 #000000 +0; +#X text 138 98 float - level in dB., f 55; +#X text 138 124 float - liveness (internal feedback percentage)., +f 55; +#X text 138 151 float - Crossover frequency in Hz., f 55; +#X text 138 177 float - High Freuqnecy damping in percentage., f 55 +; +#X text 131 228 signal - first reverb output., f 56; +#X text 131 258 signal - second reverb output., f 56; +#X text 131 285 signal - third reverb output., f 56; +#X text 131 314 signal - fourth reverb output.; +#X text 109 346 1) float - level in dB (default 0)., f 54; +#X text 109 364 2) float - liveness / internal feedback percentage +(default 0)., f 63; +#X text 109 382 3) float - Crossover frequency in Hz (default 3000). +, f 54; +#X text 109 400 4) float - High Frequnecy damping in percentage (default +0).; +#X restore 458 13 pd reference; +#X obj 6 479 cnv 1 630 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 417 492 updated for Pd version 0.37; +#X obj 56 376 rev2~ 100 90 3000 20; +#X text 264 106 The creation arguments (output level \, liveness \, +crossover frequency \, HF damping) may also be supplied in four inlets +as shown. The "liveness" (actually the internal feedback percentage) +should be 100 for infinite reverb \, 90 for longish \, and 80 for short. +The crossover frequency and HF damping work together: at frequencies +above crossover \, the feedback is diminished by the "damping" as a +percentage. So zero HF damping means equal reverb time at all frequencies +\, and 100% damping means almost nothing above the crossover frequency +gets through., f 50; +#X text 157 297 liveness/feedback (in percent: 0-100; +#X text 228 348 High Frequency damping (in percent: 0-100); +#X obj 142 408 output~; +#X text 124 272 output level dB; #X connect 0 0 29 1; -#X connect 2 0 29 2; -#X connect 5 0 29 3; -#X connect 6 0 29 4; +#X connect 1 0 29 2; +#X connect 2 0 29 3; +#X connect 3 0 29 4; +#X connect 10 0 11 0; +#X connect 11 0 21 0; +#X connect 12 0 10 0; +#X connect 13 0 16 0; +#X connect 14 0 16 0; #X connect 15 0 16 0; -#X connect 16 0 26 0; -#X connect 17 0 15 0; -#X connect 18 0 21 0; -#X connect 19 0 21 0; -#X connect 20 0 21 0; -#X connect 21 0 26 2; -#X connect 22 0 21 0; -#X connect 23 0 26 1; -#X connect 26 0 29 0; -#X connect 28 0 31 0; -#X connect 29 0 30 0; -#X connect 29 1 30 1; +#X connect 16 0 21 2; +#X connect 17 0 16 0; +#X connect 18 0 21 1; +#X connect 21 0 29 0; +#X connect 29 0 23 0; +#X connect 29 1 23 1; +#X connect 29 2 33 0; +#X connect 29 3 33 1; diff -Nru puredata-0.52.1+ds0/extra/rev3~-help.pd puredata-0.52.2+ds0/extra/rev3~-help.pd --- puredata-0.52.1+ds0/extra/rev3~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/rev3~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,32 +1,22 @@ -#N canvas 755 89 729 523 12; -#X obj 48 405 rev3~ 100 90 3000 20; -#X text 336 127 The creation arguments (level \, liveness \, crossover -frequency \, HF damping) may also be supplied in four inlets as shown. -The "liveness" (actually the internal feedback percentage) should be -100 for infinite reverb \, 90 for longish \, and 80 for short. The -crossover frequency and HF damping work together: at frequencies above -crossover \, the feedback is diminished by the "damping" as a percentage. -So zero HF damping means equal reverb time at all frequencies \, and -100% damping means almost nothing above the crossover frequency gets -through., f 50; -#X text 325 102 (A more expensive \, presumably better \, one than -rev2~.); -#X text 446 466 modified for Pd version 0.37-1; -#X obj 57 23 rev3~, f 9; -#X text 134 22 - hard-core \, 2-in \, 4-out reverberator; -#X obj 48 124 metro 2000; -#X obj 48 152 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#N canvas 620 97 730 518 12; +#X obj 38 362 rev3~ 100 90 3000 20; +#X text 316 81 (A more expensive \, presumably better \, one than rev2~.) +; +#X obj 27 14 rev3~, f 9; +#X text 104 13 - hard-core \, 2-in \, 4-out reverberator; +#X obj 38 94 metro 2000; +#X obj 38 122 bng 17 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 48 100 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 -#000000 0 1; -#X msg 136 97 20; -#X msg 145 120 100; -#X msg 158 167 1000; -#X floatatom 136 198 5 0 0 0 - - - 0; -#X msg 152 144 500; -#X floatatom 92 198 5 0 0 0 - freq - 0; -#X text 88 177 pitch; -#X text 67 151 impulse; +#X obj 38 70 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 +0 1; +#X msg 126 67 20; +#X msg 135 90 100; +#X msg 148 137 1000; +#X floatatom 126 168 5 0 0 0 - - - 0; +#X msg 142 114 500; +#X floatatom 82 168 5 0 0 0 - freq - 0; +#X text 78 147 pitch; +#X text 57 121 impulse; #N canvas 863 156 393 438 test-input 0; #X obj 241 191 line~; #X obj 241 214 cos~; @@ -50,6 +40,8 @@ #X msg 41 181 1000 \$1; #X obj 41 259 vline~; #X msg 41 233 1 \, 0 0 \$1; +#X obj 277 292 loadbang; +#X msg 277 318 \; freq 69; #X connect 0 0 1 0; #X connect 1 0 4 0; #X connect 2 0 3 0; @@ -77,39 +69,106 @@ #X connect 19 0 18 0; #X connect 20 0 13 0; #X connect 21 0 20 0; -#X restore 48 235 pd test-input; -#X text 181 94 <= tone burst durtion in ms, f 14; -#X obj 215 160 loadbang; -#X floatatom 102 297 4 0 120 0 - - - 0; -#X text 133 297 level \, dB; -#X floatatom 130 321 4 0 100 0 - - - 0; -#X text 163 321 liveness \, 0-100; -#X floatatom 157 345 6 0 0 0 - - - 0; -#X floatatom 185 371 4 0 100 0 - - - 0; -#X text 205 345 crossover frequency \, Hz.; -#X text 220 372 HF damping \, percent; -#X text 563 341 see also:; -#X obj 569 397 rev3~, f 8; -#X obj 569 367 rev2~, f 7; -#X msg 215 186 \; freq 69; -#X obj 42 437 output~; -#X obj 134 437 output~; -#X connect 0 0 32 0; -#X connect 0 1 32 1; -#X connect 0 2 33 0; -#X connect 0 3 33 1; -#X connect 6 0 7 0; -#X connect 7 0 17 0; -#X connect 8 0 6 0; -#X connect 9 0 12 0; -#X connect 10 0 12 0; -#X connect 11 0 12 0; -#X connect 12 0 17 2; -#X connect 13 0 12 0; -#X connect 14 0 17 1; -#X connect 17 0 0 0; -#X connect 19 0 31 0; -#X connect 20 0 0 2; -#X connect 22 0 0 3; -#X connect 24 0 0 4; -#X connect 25 0 0 5; +#X connect 22 0 23 0; +#X restore 38 205 pd test-input; +#X text 171 64 <= tone burst durtion in ms, f 14; +#X floatatom 92 259 4 0 120 0 - - - 0; +#X floatatom 120 283 4 0 100 0 - - - 0; +#X floatatom 147 307 6 0 0 0 - - - 0; +#X floatatom 175 333 4 0 100 0 - - - 0; +#X text 195 307 crossover frequency \, Hz.; +#X text 31 483 see also:; +#X obj 32 394 output~; +#X obj 124 394 output~; +#X obj 6 44 cnv 1 715 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 622 12 <= click; +#N canvas 746 67 573 478 reference 0; +#X obj 9 39 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 +0; +#X obj 8 69 cnv 1 550 1 empty empty 1st: 8 12 0 13 #000000 #000000 +0; +#X obj 9 229 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 9 371 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 8 452 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 8 94 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #000000 #000000 +0; +#X obj 8 122 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #000000 #000000 +0; +#X obj 8 148 cnv 1 550 1 empty empty 4th: 8 12 0 13 #000000 #000000 +0; +#X obj 8 175 cnv 1 550 1 empty empty 5th: 8 12 0 13 #000000 #000000 +0; +#X obj 8 254 cnv 1 550 1 empty empty 1st: 8 12 0 13 #000000 #000000 +0; +#X obj 8 281 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #000000 #000000 +0; +#X obj 8 311 cnv 1 550 1 empty empty 3rd: 8 12 0 13 #000000 #000000 +0; +#X obj 8 338 cnv 1 550 1 empty empty 4th: 8 12 0 13 #000000 #000000 +0; +#X text 138 128 float - level in dB., f 55; +#X text 138 154 float - liveness (internal feedback percentage)., +f 55; +#X text 138 181 float - Crossover frequency in Hz., f 55; +#X text 138 207 float - High Freuqnecy damping in percentage., f 55 +; +#X text 131 258 signal - first reverb output., f 56; +#X text 131 288 signal - second reverb output., f 56; +#X text 131 315 signal - third reverb output., f 56; +#X text 131 344 signal - fourth reverb output.; +#X text 109 376 1) float - level in dB (default 0)., f 54; +#X text 109 394 2) float - liveness / internal feedback percentage +(default 0)., f 63; +#X text 109 412 3) float - Crossover frequency in Hz (default 3000). +, f 54; +#X text 109 430 4) float - High Frequnecy damping in percentage (default +0).; +#X obj 27 11 rev3~, f 9; +#X text 104 10 - hard-core \, 2-in \, 4-out reverberator; +#X obj 8 202 cnv 1 550 1 empty empty 6th: 8 12 0 13 #000000 #000000 +0; +#X text 131 72 signal - left channel reverb input., f 56; +#X text 131 99 signal - right channel reverb input., f 56; +#X restore 528 13 pd reference; +#X obj 104 483 rev1~; +#X text 480 480 updated for Pd version 0.37-1; +#X obj 5 468 cnv 1 715 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X obj 50 306 *~ -1; +#X obj 152 483 rev2~, f 8; +#X text 123 259 output level (dB); +#X text 153 283 liveness \, feedback percentage (0-100); +#X text 271 109 The creation arguments (output level \, liveness \, +crossover frequency \, HF damping) may also be supplied in four inlets +as shown. The "liveness" (actually the internal feedback percentage) +should be 100 for infinite reverb \, 90 for longish \, and 80 for short. +The crossover frequency and HF damping work together: at frequencies +above crossover \, the feedback is diminished by the "damping" as a +percentage. So zero HF damping means equal reverb time at all frequencies +\, and 100% damping means almost nothing above the crossover frequency +gets through., f 62; +#X text 210 334 High Frequency damping \, percentage (0-100); +#X connect 0 0 23 0; +#X connect 0 1 23 1; +#X connect 0 2 24 0; +#X connect 0 3 24 1; +#X connect 4 0 5 0; +#X connect 5 0 15 0; +#X connect 6 0 4 0; +#X connect 7 0 10 0; +#X connect 8 0 10 0; +#X connect 9 0 10 0; +#X connect 10 0 15 2; +#X connect 11 0 10 0; +#X connect 12 0 15 1; +#X connect 15 0 0 0; +#X connect 15 0 31 0; +#X connect 17 0 0 2; +#X connect 18 0 0 3; +#X connect 19 0 0 4; +#X connect 20 0 0 5; +#X connect 31 0 0 1; diff -Nru puredata-0.52.1+ds0/extra/sigmund~/GNUmakefile.am puredata-0.52.2+ds0/extra/sigmund~/GNUmakefile.am --- puredata-0.52.1+ds0/extra/sigmund~/GNUmakefile.am 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/sigmund~/GNUmakefile.am 2022-03-27 22:30:03.000000000 +0000 @@ -17,11 +17,11 @@ dist_external_DATA = $(PATCHES) $(OTHERDATA) AUTOMAKE_OPTIONS = foreign -AM_CFLAGS = @EXTERNAL_CFLAGS@ -AM_CPPFLAGS += -I$(top_srcdir)/src -DPD +AM_CFLAGS = @EXTERNAL_CFLAGS@ @PD_CFLAGS@ +AM_CPPFLAGS += -I$(top_srcdir)/src -DPD @PD_CPPFLAGS@ sigmund__la_LIBADD = $(LIBM) AM_LDFLAGS = -module -avoid-version -shared @EXTERNAL_LDFLAGS@ \ - -shrext .@EXTERNAL_EXTENSION@ -L$(top_builddir)/src + -shrext .@EXTERNAL_EXTENSION@ -L$(top_builddir)/src @PD_LDFLAGS@ externaldir = $(pkglibdir)/extra/$(NAME) diff -Nru puredata-0.52.1+ds0/extra/sigmund~/sigmund~-help.pd puredata-0.52.2+ds0/extra/sigmund~/sigmund~-help.pd --- puredata-0.52.1+ds0/extra/sigmund~/sigmund~-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/sigmund~/sigmund~-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,5 +1,5 @@ -#N canvas 749 35 512 783 12; -#N canvas 582 131 541 606 using-with-tables 0; +#N canvas 485 23 632 677 12; +#N canvas 597 58 541 606 using-with-tables 0; #X obj 40 376 print peak; #N canvas 0 50 450 300 (subpatch) 0; #X array insignal 1024 float 0; @@ -34,20 +34,19 @@ #X connect 11 0 0 0; #X connect 12 0 11 0; #X connect 18 0 4 0; -#X restore 304 616 pd using-with-tables; -#X obj 48 626 phasor~; -#X obj 48 522 loadbang; -#X floatatom 48 576 4 0 120 0 - - - 0; -#X floatatom 48 678 5 0 0 0 - - - 0; -#X floatatom 241 680 5 0 0 0 - - - 0; -#X obj 48 601 mtof; -#X text 47 696 pitch; -#X text 231 699 envelope; -#X text 31 45 Sigmund~ analyzes an incoming sound into sinusoidal components +#X restore 405 532 pd using-with-tables; +#X obj 72 548 phasor~; +#X obj 72 447 loadbang; +#X floatatom 72 498 4 0 120 0 - - - 0; +#X floatatom 72 600 8 0 0 0 - - - 0; +#X floatatom 265 600 7 0 0 0 - - - 0; +#X obj 72 523 mtof; +#X text 137 599 pitch; +#X text 15 53 Sigmund~ analyzes an incoming sound into sinusoidal components \, which may be reported individually or combined to form a pitch estimate. -Possible outputs are specified as creation arguments:; -#X text 74 106 pitch - output pitch continuously; -#N canvas 517 73 502 713 setting-parameters 0; +Possible outputs are specified as creation arguments:, f 85; +#X text 158 86 pitch - output pitch continuously, f 57; +#N canvas 589 25 499 697 setting-parameters 0; #X msg 182 66 print; #X floatatom 192 92 5 0 0 0 - - - 0; #X msg 192 113 minpower \$1; @@ -87,116 +86,213 @@ #X connect 0 0 3 0; #X connect 1 0 2 0; #X connect 2 0 3 0; -#X restore 304 594 pd setting-parameters; -#N canvas 961 117 544 802 sinusoid-tracking 0; -#X obj 80 240 sigmund~ -npeak 10 peaks; -#X obj 80 210 phasor~; -#X obj 80 140 loadbang; -#X floatatom 80 186 5 0 120 0 - - - 0; -#X obj 80 268 route 0 1 2 3 4 5 6 7 8 9; -#X floatatom 80 392 5 0 0 0 - - - 0; -#X floatatom 111 370 5 0 0 0 - - - 0; -#X floatatom 143 347 5 0 0 0 - - - 0; -#X floatatom 175 325 5 0 0 0 - - - 0; -#X floatatom 234 392 5 0 0 0 - - - 0; -#X floatatom 265 370 5 0 0 0 - - - 0; -#X floatatom 297 347 5 0 0 0 - - - 0; -#X floatatom 329 325 5 0 0 0 - - - 0; -#X text 275 391 frequency (Hz.); -#X text 306 369 peak amplitude (linear); -#X text 337 347 cosine component; -#X text 370 324 sine component; -#X text 82 422 loudest partial; -#X text 241 424 quietest partial; -#X text 48 25 You can ask for sinusoidal peaks in decreasing order +#X restore 405 510 pd setting-parameters; +#N canvas 345 23 976 452 sinusoid-tracking 0; +#X obj 86 230 sigmund~ -npeak 10 peaks; +#X obj 86 200 phasor~; +#X obj 86 130 loadbang; +#X floatatom 86 176 5 0 120 0 - - - 0; +#X obj 86 258 route 0 1 2 3 4 5 6 7 8 9; +#X floatatom 86 382 5 0 0 0 - - - 0; +#X floatatom 117 360 5 0 0 0 - - - 0; +#X floatatom 149 337 5 0 0 0 - - - 0; +#X floatatom 181 315 5 0 0 0 - - - 0; +#X floatatom 240 382 5 0 0 0 - - - 0; +#X floatatom 271 360 5 0 0 0 - - - 0; +#X floatatom 303 337 5 0 0 0 - - - 0; +#X floatatom 335 315 5 0 0 0 - - - 0; +#X text 281 381 frequency (Hz.); +#X text 312 359 peak amplitude (linear); +#X text 343 337 cosine component; +#X text 376 314 sine component; +#X text 77 409 loudest partial; +#X text 241 409 quietest partial; +#X text 29 21 You can ask for sinusoidal peaks in decreasing order of amplitude or arranged into maximally continuous tracks for resynthesis. (Or you can ask for both.) If you ask for peaks \, out come lists of five numbers \, one for each sinusoid at each analysis period. The first is the index number of the sinusoid (so you can use "route" to claw them apart). The other four are as shown:, f 65; -#X obj 130 559 osc~ 440; -#X obj 130 593 *~; -#X obj 172 595 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X obj 542 184 *~; +#X obj 560 155 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 60 470 If you ask for "tracks" \, the output is four numbers: +#X text 515 30 If you ask for "tracks" \, the output is four numbers: index \, frequency \, and amplitude as before \, and finally a flag which is one for a new track \, zero for a continuation \, minus one -for an empty track.; -#X obj 130 621 sigmund~ -npts 16384 -hop 8192 -npeak 1 tracks; -#X obj 234 299 unpack f f f f; -#X obj 80 300 unpack f f f f; -#X msg 80 163 440; -#X floatatom 130 752 5 0 0 0 - - - 0; -#X floatatom 161 730 5 0 0 0 - - - 0; -#X floatatom 193 707 5 0 0 0 - - - 0; -#X floatatom 225 685 5 0 0 0 - - - 0; -#X obj 130 660 unpack f f f f; +for an empty track., f 62; +#X obj 240 289 unpack f f f f; +#X obj 86 290 unpack f f f f; +#X msg 86 153 440; +#X floatatom 542 392 5 0 0 0 - - - 0; +#X floatatom 582 370 7 0 0 0 - - - 0; +#X floatatom 623 347 5 0 0 0 - - - 0; +#X obj 542 222 sigmund~ -npts 16384 -hop 8192 -npeak 2 tracks; +#X obj 542 258 route 0 1, f 22; +#X floatatom 674 392 5 0 0 0 - - - 0; +#X floatatom 714 370 7 0 0 0 - - - 0; +#X floatatom 755 347 5 0 0 0 - - - 0; +#X obj 542 120 phasor~ 440; +#X obj 542 300 unpack f f f; +#X obj 674 300 unpack f f f; +#X text 715 393 frequency (Hz.); +#X text 773 370 peak amplitude (linear); +#X text 795 349 flag; +#X text 584 153 <= turn on and off; #X connect 0 0 4 0; #X connect 1 0 0 0; -#X connect 2 0 27 0; +#X connect 2 0 25 0; #X connect 3 0 1 0; -#X connect 4 0 26 0; -#X connect 4 9 25 0; -#X connect 20 0 21 0; -#X connect 21 0 24 0; -#X connect 22 0 21 1; -#X connect 24 0 32 0; -#X connect 25 0 9 0; -#X connect 25 1 10 0; -#X connect 25 2 11 0; -#X connect 25 3 12 0; -#X connect 26 0 5 0; -#X connect 26 1 6 0; -#X connect 26 2 7 0; -#X connect 26 3 8 0; -#X connect 27 0 3 0; -#X connect 32 0 28 0; -#X connect 32 1 29 0; -#X connect 32 2 30 0; -#X connect 32 3 31 0; -#X restore 304 571 pd sinusoid-tracking; -#X text 70 176 tracks - output sinusoidal peaks organized into tracks +#X connect 4 0 24 0; +#X connect 4 9 23 0; +#X connect 20 0 29 0; +#X connect 21 0 20 1; +#X connect 23 0 9 0; +#X connect 23 1 10 0; +#X connect 23 2 11 0; +#X connect 23 3 12 0; +#X connect 24 0 5 0; +#X connect 24 1 6 0; +#X connect 24 2 7 0; +#X connect 24 3 8 0; +#X connect 25 0 3 0; +#X connect 29 0 30 0; +#X connect 30 0 35 0; +#X connect 30 1 36 0; +#X connect 34 0 20 0; +#X connect 35 0 26 0; +#X connect 35 1 27 0; +#X connect 35 2 28 0; +#X connect 36 0 31 0; +#X connect 36 1 32 0; +#X connect 36 2 33 0; +#X restore 405 487 pd sinusoid-tracking; +#X text 158 154 tracks - output sinusoidal peaks organized into tracks +, f 57; +#X text 158 103 notes - output pitch at the beginning of notes, f +57; +#X text 414 464 more details:; +#X text 69 206 npts - number of points in each analysis window (1024) ; -#X text 74 122 notes - output pitch at the beginning of notes; -#X text 313 548 more details:; -#X text 28 204 Parameters you may set (in creation arguments or messages): +#X text 69 223 hop - number of points between each analysis (512), +f 54; +#X text 69 240 npeak - number of sinusoidal peaks (20), f 54; +#X text 69 303 vibrato - depth of vibrato to expect in 1/2-tones (1) +, f 54; +#X text 158 137 peaks - output all sinusoidal peaks in order of amplitude ; -#X text 78 224 npts - number of points in each analysis window (1024) -; -#X text 78 242 hop - number of points between each analysis (512); -#X text 78 259 npeak - number of sinusoidal peaks (20); -#X text 79 335 vibrato - depth of vibrato to expect in 1/2-tones (1) -; -#X obj 48 652 sigmund~ -hop 4096 pitch env; -#X text 72 158 peaks - output all sinusoidal peaks in order of amplitude -; -#X text 35 426 The npts and hop parameters are in samples \, and are -powers of two. The example below specifies a huge hop of 4096 (to slow -the output down) and to output "pitch" and "env". (Those are the default -outputs.); -#X text 79 277 maxfreq - maximum sinusoid frequency in Hz. (1000000) -; -#X text 73 139 env - output amplitude continuously; -#X text 139 298 (... the 4 parameters below affect only note detection -\, not raw pitch:), f 36; -#X text 78 354 stabletime - time (msec) to wait to report notes (50) -; -#X text 80 372 minpower - minimum power (dB) to report a note (50) -; -#X text 80 391 growth - growth (dB) to report a repeated note (7); -#X msg 48 551 69; -#X obj 51 15 sigmund~; -#X text 112 14 - sinusoidal analysis and pitch tracking; -#X obj 143 546 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X text 69 257 maxfreq - maximum sinusoid frequency in Hz. (1000000) +, f 54; +#X text 158 120 env - output amplitude continuously, f 57; +#X text 69 320 stabletime - time (msec) to wait to report notes (50) +, f 54; +#X text 69 337 minpower - minimum power (dB) to report a note (50) +, f 54; +#X text 69 354 growth - growth (dB) to report a repeated note (7), +f 54; +#X msg 72 473 69; +#X obj 38 12 sigmund~; +#X text 107 11 - sinusoidal analysis and pitch tracking; +#X obj 242 468 tgl 17 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X msg 143 570 \; pd dsp \$1; -#X text 163 546 DSP on/off; -#X text 284 745 updated for Pd version0.46; -#X connect 1 0 21 0; -#X connect 2 0 30 0; +#X msg 242 492 \; pd dsp \$1; +#X text 262 468 DSP on/off; +#X text 33 280 (. the parameters below affect note detection \, not +raw pitch .), f 63; +#X obj 6 41 cnv 1 620 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 545 11 <= click; +#N canvas 626 44 667 648 reference 0; +#X obj 6 40 cnv 5 650 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 6 244 cnv 2 650 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 6 391 cnv 2 650 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 5 619 cnv 5 650 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 5 271 cnv 1 650 1 empty empty pitch: 8 12 0 13 #9f9f9f #000000 +0; +#X text 103 49 signal - signal input to be analyzed., f 77; +#X obj 39 11 sigmund~; +#X text 103 10 - sinusoidal analysis and pitch tracking; +#X text 88 250 (number of outlets \, order and type depend on creation +arguments), f 65; +#X obj 5 295 cnv 1 650 1 empty empty notes: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 5 319 cnv 1 650 1 empty empty env: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 5 342 cnv 1 650 1 empty empty peaks: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 5 365 cnv 1 650 1 empty empty tracks: 8 12 0 13 #9f9f9f #000000 +0; +#X text 117 274 float - pitch in MIDI.; +#X text 117 298 float - pitch in MIDI at the beginning of notes.; +#X text 117 321 float - amplitude in dB.; +#X obj 5 415 cnv 1 650 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 5 577 cnv 1 650 1 empty empty arguments: 8 12 0 13 #9f9f9f #000000 +0; +#X text 124 344 list - partial index \, frequency \, amplitude \, cosine +and sine components., f 72; +#X text 124 368 list - partial index \, frequency \, amplitude and +flag., f 72; +#X text 61 97 npts - set number of points in each analysis +window), f 83; +#X text 68 114 hop - set number of points between each analysis. +, f 82; +#X text 54 131 npeak - set number of sinusoidal peaks for 'peaks' +output., f 84; +#X text 40 148 maxfreq - set maximum sinusoid frequency in +Hz., f 86; +#X text 40 165 vibrato - set depth of vibrato to expect in +semitones (for note output)., f 86; +#X text 19 182 stabletime - set time in msec to wait to report +new notes (note output)., f 89; +#X text 33 199 minpower - set minimum amplitude in dB to report +a new note (note output)., f 87; +#X text 47 216 growth - set amplitude growth in dB to report +a repeated note (note output)., f 85; +#X text 149 418 -t: analyzes waveforms stored in arrays., f 69; +#X text 72 435 -npts : set number of points in each analysis +window (default 1024)., f 80; +#X text 79 452 -hop : set number of points between each analysis +(default 512)., f 79; +#X text 65 469 -npeak : set number of sinusoidal peaks for 'peaks' +output (default 20)., f 81; +#X text 51 486 -maxfreq : set maximum sinusoid frequency in +Hz (default 1000000)., f 83; +#X text 51 503 -vibrato : set depth of vibrato to expect in +semitones (default 1)., f 83; +#X text 30 520 -stabletime : set time in msec to wait to report +new notes (default 50)., f 86; +#X text 44 537 -minpower : set minimum amplitude in dB to report +a new note (default 50)., f 84; +#X text 58 554 -growth : set amplitude growth in dB to report +a repeated note (default 7)., f 82; +#X text 117 67 list -; +#X text 166 66 analyze an array (with the '-t' flag): table name \, +number of points \, index of first point \, sample rate and debug flag. +, f 68; +#X text 114 581 1) list -; +#X text 186 581 sets outlets and types: pitch \, notes \, env \, peaks +\, tracks (default: "pitch env").; +#X restore 450 11 pd reference; +#X obj 6 636 cnv 1 620 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 324 599 envelope (amplitude); +#X text 413 646 updated for Pd version 0.46; +#X text 39 186 Parameters you may set in creation arguments as flags +or messages:, f 67; +#X text 26 383 The npts and hop parameters are in samples \, and are +powers of two. The example below specifies a huge hop of 4096 (to slow +the output down) and to output "pitch" and "env" (the default outputs). +, f 82; +#X obj 72 574 sigmund~ -hop 4096 pitch env; +#X connect 1 0 40 0; +#X connect 2 0 25 0; #X connect 3 0 6 0; #X connect 6 0 1 0; -#X connect 21 0 4 0; -#X connect 21 1 5 0; -#X connect 30 0 3 0; -#X connect 33 0 34 0; +#X connect 25 0 3 0; +#X connect 28 0 29 0; +#X connect 40 0 4 0; +#X connect 40 1 5 0; diff -Nru puredata-0.52.1+ds0/extra/stdout/GNUmakefile.am puredata-0.52.2+ds0/extra/stdout/GNUmakefile.am --- puredata-0.52.1+ds0/extra/stdout/GNUmakefile.am 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/stdout/GNUmakefile.am 2022-03-27 22:30:03.000000000 +0000 @@ -17,11 +17,11 @@ dist_external_DATA = $(PATCHES) $(OTHERDATA) AUTOMAKE_OPTIONS = foreign -AM_CFLAGS = @EXTERNAL_CFLAGS@ -AM_CPPFLAGS += -I$(top_srcdir)/src -DPD +AM_CFLAGS = @EXTERNAL_CFLAGS@ @PD_CFLAGS@ +AM_CPPFLAGS += -I$(top_srcdir)/src -DPD @PD_CPPFLAGS@ AM_LIBS = $(LIBM) AM_LDFLAGS = -module -avoid-version -shared @EXTERNAL_LDFLAGS@ \ - -shrext .@EXTERNAL_EXTENSION@ -L$(top_builddir)/src + -shrext .@EXTERNAL_EXTENSION@ -L$(top_builddir)/src @PD_LDFLAGS@ externaldir = $(pkglibdir)/extra/$(NAME) diff -Nru puredata-0.52.1+ds0/extra/stdout/stdout-help.pd puredata-0.52.2+ds0/extra/stdout/stdout-help.pd --- puredata-0.52.1+ds0/extra/stdout/stdout-help.pd 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/extra/stdout/stdout-help.pd 2022-03-27 22:30:03.000000000 +0000 @@ -1,39 +1,67 @@ -#N canvas 696 95 617 480 12; -#X msg 78 208 walk the dog; -#X msg 54 161 1; -#X obj 69 245 stdout; -#X obj 59 14 stdout; -#X text 112 15 - write messages to standard output; -#X msg 69 184 1 2; -#X obj 119 431 pd~; -#X text 44 431 see also:; -#X text 24 56 Sends messages to Pd's standard output. This is useful -in conjunction with the pd~ object \, which starts a pd sub-process. -Messages sent to the sub-process standard output appear on the output -of the pd~ object in the owning process. This might also be useful -in other situations. Note that there's no corresponding "stdin" object -- there seems to be no one canonical way such a thing should act., -f 81; -#X msg 208 208 walk the dog; -#X msg 189 161 1; -#X msg 199 184 1 2; -#X text 375 429 updated for Pd version 0.48; -#X obj 199 245 stdout -cr; -#X msg 335 183 100 111 117 98 108 101 32 32 115 112 97 99 101 44 32 +#N canvas 573 28 617 452 12; +#X msg 77 206 walk the dog; +#X msg 53 159 1; +#X obj 68 243 stdout; +#X obj 38 14 stdout; +#X msg 68 182 1 2; +#X obj 93 417 pd~; +#X text 18 416 see also:; +#X msg 207 206 walk the dog; +#X msg 188 159 1; +#X msg 198 182 1 2; +#X text 386 416 updated for Pd version 0.48; +#X obj 198 243 stdout -cr; +#X msg 334 181 100 111 117 98 108 101 32 32 115 112 97 99 101 44 32 80 100 10, f 32; -#X obj 335 245 stdout -b; -#X text 49 294 special flags:; -#X text 80 319 -cr: omit trailing semicolon in output (like [print]) -; -#X text 83 339 -b \, -binary: binary mode; -#X text 83 379 -nf \, -noflush: do not fflush the output after each -message; -#X text 83 359 -f \, -flush: fflush the output after each message (default +#X obj 334 243 stdout -b; +#X text 45 282 special flags:; +#X obj 6 43 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 515 12 <= click; +#N canvas 627 114 663 251 reference 0; +#X obj 6 40 cnv 5 640 5 empty empty INLET: 8 18 0 13 #202020 #000000 +0; +#X obj 6 79 cnv 2 640 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 +0; +#X obj 6 107 cnv 2 640 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 +0; +#X obj 5 224 cnv 5 640 5 empty empty empty 8 18 0 13 #202020 #000000 +0; +#X obj 5 135 cnv 1 640 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 +0; +#X obj 34 9 stdout; +#X text 87 9 - write messages to standard output; +#X text 119 50 anything - any message to be written/sent to standard +output., f 62; +#X text 148 84 NONE.; +#X text 124 159 -b: -binary: sets to binary mode., f 65; +#X text 117 141 -cr: omit trailing semicolon in output (like [print]). +, f 66; +#X text 124 177 -f: -flush: flush the output after each message (default +on W32)., f 65; +#X text 117 195 -nf: -noflush: do not flush the output after each message. +, f 66; +#X restore 421 13 pd reference; +#X obj 6 403 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 +0; +#X text 77 324 -b: -binary: binary mode, f 65; +#X text 70 360 -nf: -noflush: do not flush the output after each message +, f 66; +#X text 19 61 The 'stdout' object is useful in conjunction with the +pd~ object \, which starts a Pd sub-process. Messages sent to the sub-process +standard output appear on the left output of the pd~ object in the +owning process. This might also be useful in other situations. Note +that there's no corresponding "stdin" object - there seems to be no +one canonical way such a thing should act., f 81; +#X text 70 306 -cr: omit trailing semicolon in output (like [print]) +, f 66; +#X text 91 14 - write messages to standard output; +#X text 77 342 -f: -flush: flush the output after each message (default on W32), f 65; #X connect 0 0 2 0; #X connect 1 0 2 0; -#X connect 5 0 2 0; -#X connect 9 0 13 0; -#X connect 10 0 13 0; -#X connect 11 0 13 0; -#X connect 14 0 15 0; +#X connect 4 0 2 0; +#X connect 7 0 11 0; +#X connect 8 0 11 0; +#X connect 9 0 11 0; +#X connect 12 0 13 0; diff -Nru puredata-0.52.1+ds0/INSTALL.txt puredata-0.52.2+ds0/INSTALL.txt --- puredata-0.52.1+ds0/INSTALL.txt 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/INSTALL.txt 2022-03-27 22:30:03.000000000 +0000 @@ -319,12 +319,12 @@ # 64 bit pacman -S mingw-w64-x86_64-toolchain mingw-w64-x86_64-clang \ - make pkgconfig autoconf automake libtool \ + make autoconf automake libtool \ mingw-w64-x86_64-gettext # 32 bit pacman -S mingw-w64-i686-toolchain mingw-w64-i686-clang \ - make pkgconfig autoconf automake libtool \ + make autoconf automake libtool \ mingw-w64-i686-gettext Install git if you want to clone the Pd sources from Github, etc: diff -Nru puredata-0.52.1+ds0/libpd/README.txt puredata-0.52.2+ds0/libpd/README.txt --- puredata-0.52.1+ds0/libpd/README.txt 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/libpd/README.txt 2022-03-27 22:30:03.000000000 +0000 @@ -15,5 +15,9 @@ make ./test_libpd -Note: On Windows, the makefile will try to find the libwinpthread-1.dll included - with MinGW and copy it to the test_libpd directory to run the example. +On Windows, the test_libpd makefile will try to find the libwinpthread-1.dll +included with MinGW and copy it to the test_libpd directory to run the example. + +On macOS and Linux, the test_libpd makefile can statically link libpd by using: + + make STATIC=true diff -Nru puredata-0.52.1+ds0/libpd/test_libpd/Makefile puredata-0.52.2+ds0/libpd/test_libpd/Makefile --- puredata-0.52.1+ds0/libpd/test_libpd/Makefile 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/libpd/test_libpd/Makefile 2022-03-27 22:30:03.000000000 +0000 @@ -7,14 +7,17 @@ ifeq ($(UNAME), Darwin) # Mac SOLIB_EXT = dylib + STATICLIB_EXT = a PLATFORM = mac else ifeq ($(OS), Windows_NT) # Windows, use Mingw SOLIB_PREFIX = SOLIB_EXT = dll + STATICLIB_EXT = lib PLATFORM = windows else # assume Linux SOLIB_EXT = so + STATICLIB_EXT = a PLATFORM = linux endif endif @@ -22,28 +25,27 @@ PD_DIR = ../.. LIBPD_DIR = .. LIBPD = $(SOLIB_PREFIX)pd.$(SOLIB_EXT) +LIBPD_STATIC = $(LIBPD_DIR)/libpd.$(STATICLIB_EXT) SRC_FILES = test_libpd.c TARGET = test_libpd CFLAGS = -I$(PD_DIR)/src -O3 -LDFLAGS = $(LIBPD) .PHONY: libs clean-libs clean clobber -##### all - -$(TARGET): ${SRC_FILES:.c=.o} libs - $(CC) -o $@ ${SRC_FILES:.c=.o} $(LDFLAGS) +all: $(TARGET) ##### libs $(LIBPD): cp $(LIBPD_DIR)/$(LIBPD) . -# on windowes, copy libpd and MinGW winpthread dll to here +# on windows, copy libpd and MinGW winpthread dll to here ifeq ($(PLATFORM), windows) +LDFLAGS = $(LIBPD) + PTHREAD_DIR = ${MINGW_PREFIX}/bin PTHREAD = libwinpthread-1.dll @@ -55,16 +57,27 @@ clean-libs: rm -f $(LIBPD) $(PTHREAD) -# mac & linux, copy libpd to here +# mac & linux else +# force static linking? make STATIC=true +ifeq ($(STATIC), true) +LDFLAGS = $(LIBPD_STATIC) +else # copy libpd to here by default +LDFLAGS = $(LIBPD) libs: $(LIBPD) +endif clean-libs: rm -f $(LIBPD) endif +##### target + +$(TARGET): ${SRC_FILES:.c=.o} libs + $(CC) -o $@ ${SRC_FILES:.c=.o} $(LDFLAGS) + ##### clean clean: clean-libs diff -Nru puredata-0.52.1+ds0/libpd/test_libpd/test_libpd.c puredata-0.52.2+ds0/libpd/test_libpd/test_libpd.c --- puredata-0.52.1+ds0/libpd/test_libpd/test_libpd.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/libpd/test_libpd/test_libpd.c 2022-03-27 22:30:03.000000000 +0000 @@ -21,7 +21,7 @@ /* one input channel, two output channels, block size 64, one tick per buffer: */ float inbuf[64], outbuf[128]; - char *filename = "test2.pd", *dirname = "."; + char *filename = "test_libpd.pd", *dirname = "."; /* accept overrides from the commandline: $ pdtest_multi file.pd ../dir */ diff -Nru puredata-0.52.1+ds0/mac/patches/tk8.6.12_NSBitmapFormatAlphaFirst.patch puredata-0.52.2+ds0/mac/patches/tk8.6.12_NSBitmapFormatAlphaFirst.patch --- puredata-0.52.1+ds0/mac/patches/tk8.6.12_NSBitmapFormatAlphaFirst.patch 1970-01-01 00:00:00.000000000 +0000 +++ puredata-0.52.2+ds0/mac/patches/tk8.6.12_NSBitmapFormatAlphaFirst.patch 2022-03-27 22:30:03.000000000 +0000 @@ -0,0 +1,65 @@ +From e3db95d5882e8cf0750989b7311f69c3fdabf065 Mon Sep 17 00:00:00 2001 +From: culler +Date: Tue, 9 Nov 2021 20:34:22 +0000 +Subject: [PATCH] Fix [e699a7b606]: Fix build on macOS<10.12 - patch from + Christopher Chavez. + +--- + macosx/tkMacOSXConstants.h | 1 + + macosx/tkMacOSXImage.c | 7 ++++--- + 2 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/macosx/tkMacOSXConstants.h b/macosx/tkMacOSXConstants.h +index 0b6ae2b83..9d4079c1f 100644 +--- a/macosx/tkMacOSXConstants.h ++++ b/macosx/tkMacOSXConstants.h +@@ -96,6 +96,7 @@ typedef NSInteger NSModalResponse; + #define NSMiniaturizableWindowMask NSWindowStyleMaskMiniaturizable + #define NSBorderlessWindowMask NSWindowStyleMaskBorderless + #define NSFullScreenWindowMask NSWindowStyleMaskFullScreen ++#define NSAlphaFirstBitmapFormat NSBitmapFormatAlphaFirst + #endif + + #if MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 +diff --git a/macosx/tkMacOSXImage.c b/macosx/tkMacOSXImage.c +index 1ca7b6488..f256d7ab4 100644 +--- a/macosx/tkMacOSXImage.c ++++ b/macosx/tkMacOSXImage.c +@@ -13,6 +13,7 @@ + */ + + #include "tkMacOSXPrivate.h" ++#include "tkMacOSXConstants.h" + #include "xbytes.h" + + static CGImageRef CreateCGImageFromPixmap(Drawable pixmap); +@@ -68,7 +69,7 @@ typedef struct RGBA32pixel_t { + /* + * ARGB32 0xAARRGGBB (Byte order is ARGB on big-endian systems.) + * This is used by Aqua Tk for XImages and by NSBitmapImageReps whose +- * bitmapFormat property is NSBitmapFormatAlphaFirst. ++ * bitmapFormat property is NSAlphaFirstBitmapFormat. + */ + + typedef struct ARGB32pixel_t { +@@ -775,7 +776,7 @@ XGetImage( + size = [bitmapRep bytesPerPlane]; + bytes_per_row = [bitmapRep bytesPerRow]; + bitmap = (char *)ckalloc(size); +- if ((bitmap_fmt != 0 && bitmap_fmt != NSBitmapFormatAlphaFirst) ++ if ((bitmap_fmt != 0 && bitmap_fmt != NSAlphaFirstBitmapFormat) + || [bitmapRep samplesPerPixel] != 4 + || [bitmapRep isPlanar] != 0 + || bytes_per_row < 4 * width +@@ -802,7 +803,7 @@ XGetImage( + flipped.rgba.blue = pixel.argb.blue; + flipped.rgba.alpha = pixel.argb.alpha; + *((pixel32 *)(bitmap + m)) = flipped; +- } else { // bitmap_fmt = NSBitmapFormatAlphaFirst ++ } else { // bitmap_fmt = NSAlphaFirstBitmapFormat + *((pixel32 *)(bitmap + m)) = pixel; + } + } +-- +2.34.1 + diff -Nru puredata-0.52.1+ds0/po/de.po puredata-0.52.2+ds0/po/de.po --- puredata-0.52.1+ds0/po/de.po 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/po/de.po 2022-03-27 22:30:03.000000000 +0000 @@ -954,7 +954,7 @@ msgid "Cancelling download of %s: No installation directory given." msgstr "Abbruch des Downloads von %s: Kein Installationsverzeichnis angegeben." -msgid "Installing to non-existant directory failed" +msgid "Installing to non-existent directory failed" msgstr "" "Die Installation in ein nicht-existierendes Verzeichnis ist fehlgeschlagen" diff -Nru puredata-0.52.1+ds0/po/es.po puredata-0.52.2+ds0/po/es.po --- puredata-0.52.1+ds0/po/es.po 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/po/es.po 2022-03-27 22:30:03.000000000 +0000 @@ -939,7 +939,7 @@ msgstr "" "Cancelando la descarga de %s: No fue dado el directorio de instalación ." -msgid "Installing to non-existant directory failed" +msgid "Installing to non-existent directory failed" msgstr "Falla al instalar en un directorio que no existe." #, tcl-format diff -Nru puredata-0.52.1+ds0/po/fr.po puredata-0.52.2+ds0/po/fr.po --- puredata-0.52.1+ds0/po/fr.po 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/po/fr.po 2022-03-27 22:30:03.000000000 +0000 @@ -948,7 +948,7 @@ "Annulation du téléchargement de %s : aucun répertoire d'installation n'a " "été indiqué." -msgid "Installing to non-existant directory failed" +msgid "Installing to non-existent directory failed" msgstr "L'installation dans un répertoire inexistant a échoué" #, tcl-format diff -Nru puredata-0.52.1+ds0/po/template.pot puredata-0.52.2+ds0/po/template.pot --- puredata-0.52.1+ds0/po/template.pot 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/po/template.pot 2022-03-27 22:30:03.000000000 +0000 @@ -923,7 +923,7 @@ msgid "Cancelling download of %s: No installation directory given." msgstr "" -msgid "Installing to non-existant directory failed" +msgid "Installing to non-existent directory failed" msgstr "" #, tcl-format diff -Nru puredata-0.52.1+ds0/portaudio/Makefile.am puredata-0.52.2+ds0/portaudio/Makefile.am --- puredata-0.52.1+ds0/portaudio/Makefile.am 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/portaudio/Makefile.am 2022-03-27 22:30:03.000000000 +0000 @@ -4,10 +4,12 @@ ##### Defaults & Paths ##### AUTOMAKE_OPTIONS = foreign -AM_CFLAGS = -DNEWBUFFER +AM_CFLAGS = -DNEWBUFFER @PD_CFLAGS@ AM_CPPFLAGS += \ -I$(top_srcdir)/portaudio/portaudio/include \ - -I$(top_srcdir)/portaudio/portaudio/src/common + -I$(top_srcdir)/portaudio/portaudio/src/common \ + @PD_CPPFLAGS@ +AM_LDFLAGS = @PD_LDFLAGS@ ######################################### ##### Files, Binaries, & Libs ##### @@ -73,7 +75,7 @@ endif # empty var for headers list footer -empty= +empty = # include the headers in the dist so you can build # find portaudio -type file -name *.h | sort | awk '{print " ", $1, "\\"}'; echo ' $(empty)' diff -Nru puredata-0.52.1+ds0/portmidi/Makefile.am puredata-0.52.2+ds0/portmidi/Makefile.am --- puredata-0.52.1+ds0/portmidi/Makefile.am 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/portmidi/Makefile.am 2022-03-27 22:30:03.000000000 +0000 @@ -4,10 +4,12 @@ ##### Defaults & Paths ##### AUTOMAKE_OPTIONS = foreign -AM_CFLAGS = -DNEWBUFFER +AM_CFLAGS = -DNEWBUFFER @PD_CFLAGS@ AM_CPPFLAGS += \ -I$(top_srcdir)/portmidi/portmidi/pm_common \ - -I$(top_srcdir)/portmidi/portmidi/porttime + -I$(top_srcdir)/portmidi/portmidi/porttime \ + @PD_CPPFLAGS@ +AM_LDFLAGS = @PD_LDFLAGS@ ######################################### ##### Files, Binaries, & Libs ##### @@ -47,7 +49,7 @@ endif # empty var for headers list footer -empty= +empty = # include the headers in the dist so you can build # find portmidi -type file -name *.h | sort | awk '{print " ", $1, "\\"}'; echo ' $(empty)' diff -Nru puredata-0.52.1+ds0/src/d_arithmetic.c puredata-0.52.2+ds0/src/d_arithmetic.c --- puredata-0.52.1+ds0/src/d_arithmetic.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/d_arithmetic.c 2022-03-27 22:30:03.000000000 +0000 @@ -96,7 +96,7 @@ sizeof(t_plus), 0, A_GIMME, 0); class_addmethod(plus_class, (t_method)plus_dsp, gensym("dsp"), A_CANT, 0); CLASS_MAINSIGNALIN(plus_class, t_plus, x_f); - class_sethelpsymbol(plus_class, gensym("sigbinops")); + class_sethelpsymbol(plus_class, gensym("binops-tilde")); scalarplus_class = class_new(gensym("+~"), 0, 0, sizeof(t_scalarplus), 0, 0); CLASS_MAINSIGNALIN(scalarplus_class, t_scalarplus, x_f); diff -Nru puredata-0.52.1+ds0/src/d_fft_fftsg.c puredata-0.52.2+ds0/src/d_fft_fftsg.c --- puredata-0.52.1+ds0/src/d_fft_fftsg.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/d_fft_fftsg.c 2022-03-27 22:30:03.000000000 +0000 @@ -49,43 +49,40 @@ return (0); if (n > ooura_maxn) { - if (n > ooura_maxn) /* recheck in case it got set while we waited */ + if (ooura_maxn) { - if (ooura_maxn) - { - t_freebytes(ooura_bitrev, ooura_bitrevsize); - t_freebytes(ooura_costab, ooura_maxn * sizeof(FFTFLT) / 2); - t_freebytes(ooura_buffer, ooura_maxn * sizeof(FFTFLT)); - } - ooura_bitrevsize = sizeof(int) * (2 + (1 << (ilog2(n)/2))); - ooura_bitrev = (int *)t_getbytes(ooura_bitrevsize); - ooura_bitrev[0] = 0; - if (!ooura_bitrev) - { - pd_error(0, "out of memory allocating FFT buffer"); - ooura_maxn = 0; - return (0); - } - ooura_costab = (FFTFLT *)t_getbytes(n * sizeof(FFTFLT)/2); - if (!ooura_costab) - { - pd_error(0, "out of memory allocating FFT buffer"); - t_freebytes(ooura_bitrev, ooura_bitrevsize); - ooura_maxn = 0; - return (0); - } - ooura_buffer = (FFTFLT *)t_getbytes(n * sizeof(FFTFLT)); - if (!ooura_buffer) - { - pd_error(0, "out of memory allocating FFT buffer"); - t_freebytes(ooura_bitrev, ooura_bitrevsize); - t_freebytes(ooura_costab, n * sizeof(FFTFLT) / 2); - ooura_maxn = 0; - return (0); - } - ooura_maxn = n; - ooura_bitrev[0] = 0; + t_freebytes(ooura_bitrev, ooura_bitrevsize); + t_freebytes(ooura_costab, ooura_maxn * sizeof(FFTFLT) / 2); + t_freebytes(ooura_buffer, ooura_maxn * sizeof(FFTFLT)); } + ooura_bitrevsize = sizeof(int) * (2 + (1 << (ilog2(n)/2))); + ooura_bitrev = (int *)t_getbytes(ooura_bitrevsize); + ooura_bitrev[0] = 0; + if (!ooura_bitrev) + { + pd_error(0, "out of memory allocating FFT buffer"); + ooura_maxn = 0; + return (0); + } + ooura_costab = (FFTFLT *)t_getbytes(n * sizeof(FFTFLT)/2); + if (!ooura_costab) + { + pd_error(0, "out of memory allocating FFT buffer"); + t_freebytes(ooura_bitrev, ooura_bitrevsize); + ooura_maxn = 0; + return (0); + } + ooura_buffer = (FFTFLT *)t_getbytes(n * sizeof(FFTFLT)); + if (!ooura_buffer) + { + pd_error(0, "out of memory allocating FFT buffer"); + t_freebytes(ooura_bitrev, ooura_bitrevsize); + t_freebytes(ooura_costab, n * sizeof(FFTFLT) / 2); + ooura_maxn = 0; + return (0); + } + ooura_maxn = n; + ooura_bitrev[0] = 0; } return (1); } diff -Nru puredata-0.52.1+ds0/src/d_global.c puredata-0.52.2+ds0/src/d_global.c --- puredata-0.52.1+ds0/src/d_global.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/d_global.c 2022-03-27 22:30:03.000000000 +0000 @@ -68,6 +68,7 @@ CLASS_MAINSIGNALIN(sigsend_class, t_sigsend, x_f); class_addmethod(sigsend_class, (t_method)sigsend_dsp, gensym("dsp"), A_CANT, 0); + class_sethelpsymbol(sigsend_class, gensym("send-receive-tilde")); } /* ----------------------------- receive~ ----------------------------- */ @@ -184,7 +185,7 @@ A_SYMBOL, 0); class_addmethod(sigreceive_class, (t_method)sigreceive_dsp, gensym("dsp"), A_CANT, 0); - class_sethelpsymbol(sigreceive_class, gensym("send~")); + class_sethelpsymbol(sigreceive_class, gensym("send-receive-tilde")); } /* ----------------------------- catch~ ----------------------------- */ @@ -260,7 +261,7 @@ (t_method)sigcatch_free, sizeof(t_sigcatch), CLASS_NOINLET, A_DEFSYM, 0); class_addmethod(sigcatch_class, (t_method)sigcatch_dsp, gensym("dsp"), A_CANT, 0); - class_sethelpsymbol(sigcatch_class, gensym("throw~")); + class_sethelpsymbol(sigcatch_class, gensym("throw~-catch~")); } /* ----------------------------- throw~ ----------------------------- */ @@ -343,6 +344,7 @@ CLASS_MAINSIGNALIN(sigthrow_class, t_sigthrow, x_f); class_addmethod(sigthrow_class, (t_method)sigthrow_dsp, gensym("dsp"), A_CANT, 0); + class_sethelpsymbol(sigthrow_class, gensym("throw~-catch~")); } /* ----------------------- global setup routine ---------------- */ diff -Nru puredata-0.52.1+ds0/src/d_soundfile.c puredata-0.52.2+ds0/src/d_soundfile.c --- puredata-0.52.1+ds0/src/d_soundfile.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/d_soundfile.c 2022-03-27 22:30:03.000000000 +0000 @@ -126,13 +126,13 @@ static char sf_typeargs[MAXPDSTRING] = {0}; /* built-in type implementations */ -void soundfile_wave_setup( void); -void soundfile_aiff_setup( void); -void soundfile_caf_setup( void); -void soundfile_next_setup( void); +void soundfile_wave_setup(void); +void soundfile_aiff_setup(void); +void soundfile_caf_setup(void); +void soundfile_next_setup(void); /** set up built-in types */ -void soundfile_type_setup( void) +void soundfile_type_setup(void) { soundfile_wave_setup(); /* default first */ soundfile_aiff_setup(); @@ -158,7 +158,7 @@ } /** return type list head pointer */ -static t_soundfile_type **soundfile_firsttype( void) +static t_soundfile_type **soundfile_firsttype(void) { return &sf_types[0]; } @@ -1101,7 +1101,7 @@ /* soundfiler_read ... - usage: read [flags] filename table ... + usage: read [flags] filename [tablename] ... flags: -skip ... frames to skip in file -raw @@ -1118,7 +1118,7 @@ int argc, t_atom *argv) { t_soundfile sf = {0}; - int fd = -1, resize = 0, ascii = 0, i; + int fd = -1, resize = 0, ascii = 0, raw = 0, i; size_t skipframes = 0, finalsize = 0, maxsize = SFMAXFRAMES, framesread = 0, bufframes, j; ssize_t nframes, framesinfile; @@ -1176,6 +1176,7 @@ sf.sf_bigendian = sys_isbigendian(); sf.sf_samplerate = sys_getsr(); sf.sf_bytesperframe = sf.sf_nchannels * sf.sf_bytespersample; + raw = 1; argc -= 5; argv += 5; } else if (!strcmp(flag, "resize")) @@ -1300,19 +1301,25 @@ } if (!finalsize) finalsize = SFMAXFRAMES; - if ((ssize_t)finalsize > framesinfile) + if (framesinfile >= 0 && finalsize > (size_t)framesinfile) finalsize = framesinfile; /* no tablenames, try to use header info instead of reading */ if (argc == 0 && - !(sf.sf_headersize >= 0 || /* read if raw */ + !(raw || /* read if raw */ finalsize == SFMAXFRAMES)) /* read if unknown size */ { framesread = finalsize; +#ifdef DEBUG_SOUNDFILE + post("skipped reading frames"); +#endif goto done; } /* read */ +#ifdef DEBUG_SOUNDFILE + post("reading frames"); +#endif bufframes = SAMPBUFSIZE / sf.sf_bytesperframe; for (framesread = 0; framesread < finalsize;) { @@ -1511,7 +1518,7 @@ soundfile_xferout_words(sf, vectors, (unsigned char *)sampbuf, thiswrite, wa.wa_onsetframes, normfactor); byteswritten = write(sf->sf_fd, sampbuf, datasize); - if (byteswritten < (ssize_t)datasize) + if (byteswritten < 0 || (size_t)byteswritten < datasize) { object_sferror(obj, "soundfiler write", wa.wa_filesym->s_name, errno, sf); @@ -1797,7 +1804,7 @@ wantbytes = fifosize - x->x_fifohead; if (wantbytes > READSIZE) wantbytes = READSIZE; - if ((ssize_t)wantbytes > sf.sf_bytelimit) + if (sf.sf_bytelimit >= 0 && wantbytes > (size_t)sf.sf_bytelimit) wantbytes = sf.sf_bytelimit; #ifdef DEBUG_SOUNDFILE_THREADS fprintf(stderr, "readsf~: head %d, tail %d, size %ld\n", @@ -1838,7 +1845,7 @@ continue; } else wantbytes = READSIZE; - if ((ssize_t)wantbytes > sf.sf_bytelimit) + if (sf.sf_bytelimit >= 0 && wantbytes > (size_t)sf.sf_bytelimit) wantbytes = sf.sf_bytelimit; } #ifdef DEBUG_SOUNDFILE_THREADS @@ -2395,7 +2402,7 @@ if (x->x_requestcode != REQUEST_BUSY && x->x_requestcode != REQUEST_CLOSE) break; - if (byteswritten < (ssize_t)writebytes) + if (byteswritten < 0 || (size_t)byteswritten < writebytes) { #ifdef DEBUG_SOUNDFILE_THREADS fprintf(stderr, "writesf~: fileerror %d\n", errno); diff -Nru puredata-0.52.1+ds0/src/d_soundfile.h puredata-0.52.2+ds0/src/d_soundfile.h --- puredata-0.52.1+ds0/src/d_soundfile.h 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/d_soundfile.h 2022-03-27 22:30:03.000000000 +0000 @@ -70,7 +70,7 @@ /** copy src soundfile info into dst */ void soundfile_copy(t_soundfile *dst, const t_soundfile *src); - /** returns 1 if bytes need to be swapped due to endianess, otherwise 0 */ + /** returns 1 if bytes need to be swapped due to endianness, otherwise 0 */ int soundfile_needsbyteswap(const t_soundfile *sf); /** generic soundfile errors */ @@ -94,13 +94,13 @@ /** read format info from soundfile header, returns 1 on success or 0 on error - note: set sf_bytelimit = sound data size, optionaly set errno + note: set sf_bytelimit = sound data size, optionally set errno this may be called in a background thread */ typedef int (*t_soundfile_readheaderfn)(t_soundfile *sf); /** write header to beginning of an open file from an info struct returns header bytes written or < 0 on error - note: optionaly set errno + note: optionally set errno this may be called in a background thread */ typedef int (*t_soundfile_writeheaderfn)(t_soundfile *sf, size_t nframes); @@ -158,20 +158,20 @@ /** swap 8 bytes and return if doit = 1, otherwise return n */ uint64_t swap8(uint64_t n, int doit); - /** swap a 64 bit signed int and return if do it = 1, otherwise return n */ + /** swap a 64 bit signed int and return if doit = 1, otherwise return n */ int64_t swap8s(int64_t n, int doit); /** swap 4 bytes and return if doit = 1, otherwise return n */ uint32_t swap4(uint32_t n, int doit); - /** swap a 32 bit signed int and return if do it = 1, otherwise return n */ + /** swap a 32 bit signed int and return if doit = 1, otherwise return n */ int32_t swap4s(int32_t n, int doit); /** swap 2 bytes and return if doit = 1, otherwise return n */ uint16_t swap2(uint16_t n, int doit); - /** swap a 4 byte string in place if do it = 1, otherewise do nothing */ + /** swap a 4 byte string in place if doit = 1, otherwise do nothing */ void swapstring4(char *foo, int doit); - /** swap an 8 byte string in place if do it = 1, otherwise do nothing */ + /** swap an 8 byte string in place if doit = 1, otherwise do nothing */ void swapstring8(char *foo, int doit); diff -Nru puredata-0.52.1+ds0/src/g_array.c puredata-0.52.2+ds0/src/g_array.c --- puredata-0.52.1+ds0/src/g_array.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/g_array.c 2022-03-27 22:30:03.000000000 +0000 @@ -39,7 +39,7 @@ } /* jsarlo { */ -void garray_arrayviewlist_close(t_garray *x); +static void garray_arrayviewlist_close(t_garray *x); /* } jsarlo */ void array_resize(t_array *x, int n) @@ -475,87 +475,70 @@ } /* jsarlo { */ -void garray_arrayviewlist_new(t_garray *x) +static void garray_arrayviewlist_fillpage(t_garray *x, + t_float fPage, + t_float fTopItem) { - int i, yonset=0, elemsize=0; - t_float yval; - char cmdbuf[200]; - t_array *a = garray_getarray_floatonly(x, &yonset, &elemsize); + int i, size=0, topItem=(int)fTopItem; + int pagesize=ARRAYPAGESIZE, page=(int)fPage, maxpage; + t_word *data=0; - if (!a) - { - /* FIXME */ - pd_error(0, "error in garray_arrayviewlist_new()"); + if(!garray_getfloatwords(x, &size, &data)) { + pd_error(x, "error in %s()", __FUNCTION__); + return; } - x->x_listviewing = 1; - sprintf(cmdbuf, - "pdtk_array_listview_new %%s %s %d\n", - x->x_realname->s_name, - 0); - gfxstub_new(&x->x_gobj.g_pd, x, cmdbuf); - for (i = 0; i < ARRAYPAGESIZE && i < a->a_n; i++) + + /* make sure the requested page is within range */ + maxpage = (size - 1) / pagesize; + if(page > maxpage) + page = maxpage; + if(page < 0) + page = 0; + + sys_vgui("::dialog_array::listview_setpage {%s} %d %d %d\n", + x->x_realname->s_name, + page, maxpage+1, pagesize); + + sys_vgui("::dialog_array::listview_setdata {%s} %ld", + x->x_realname->s_name, + (long long)(page * pagesize)); + for (i = page * pagesize; + (i < (page + 1) * pagesize && i < size); + i++) { - yval = *(t_float *)(a->a_vec + - elemsize * i + yonset); - sys_vgui(".%sArrayWindow.lb insert %d {%d) %g}\n", - x->x_realname->s_name, - i, - i, - yval); + sys_vgui(" %g", data[i].w_float); } + sys_vgui("\n"); + + sys_vgui("::dialog_array::listview_focus {%s} %d\n", + x->x_realname->s_name, + topItem); } -void garray_arrayviewlist_fillpage(t_garray *x, - t_float page, - t_float fTopItem) +static void garray_arrayviewlist_new(t_garray *x) { - int i, yonset=0, elemsize=0, topItem; - t_float yval; - t_array *a = garray_getarray_floatonly(x, &yonset, &elemsize); + char cmdbuf[200]; + int size=0; + t_word*data=0; - topItem = (int)fTopItem; - if (!a) - { - /* FIXME */ - pd_error(0, "error in garray_arrayviewlist_new()"); + if(!garray_getfloatwords(x, &size, &data)) { + pd_error(x, "error in %s()", __FUNCTION__); + return; } + x->x_listviewing = 1; + sprintf(cmdbuf, + "pdtk_array_listview_new %%s {%s} %d\n", + x->x_realname->s_name, + 0); + gfxstub_new(&x->x_gobj.g_pd, x, cmdbuf); - if (page < 0) { - page = 0; - sys_vgui("pdtk_array_listview_setpage %s %d\n", - x->x_realname->s_name, - (int)page); - } - else if ((page * ARRAYPAGESIZE) >= a->a_n) { - page = (int)(((int)a->a_n - 1)/ (int)ARRAYPAGESIZE); - sys_vgui("pdtk_array_listview_setpage %s %d\n", - x->x_realname->s_name, - (int)page); - } - sys_vgui(".%sArrayWindow.lb delete 0 %d\n", - x->x_realname->s_name, - ARRAYPAGESIZE - 1); - for (i = page * ARRAYPAGESIZE; - (i < (page + 1) * ARRAYPAGESIZE && i < a->a_n); - i++) - { - yval = *(t_float *)(a->a_vec + \ - elemsize * i + yonset); - sys_vgui(".%sArrayWindow.lb insert %d {%d) %g}\n", - x->x_realname->s_name, - i % ARRAYPAGESIZE, - i, - yval); - } - sys_vgui(".%sArrayWindow.lb yview %d\n", - x->x_realname->s_name, - topItem); + garray_arrayviewlist_fillpage(x, 0, 0); } -void garray_arrayviewlist_close(t_garray *x) +static void garray_arrayviewlist_close(t_garray *x) { x->x_listviewing = 0; - sys_vgui("pdtk_array_listview_closeWindow %s\n", + sys_vgui("pdtk_array_listview_closeWindow {%s}\n", x->x_realname->s_name); } /* } jsarlo */ @@ -801,7 +784,7 @@ else { if (x->x_listviewing) - sys_vgui("pdtk_array_listview_fillpage %s\n", + sys_vgui("pdtk_array_listview_fillpage {%s}\n", x->x_realname->s_name); } /* } jsarlo */ diff -Nru puredata-0.52.1+ds0/src/g_canvas.c puredata-0.52.2+ds0/src/g_canvas.c --- puredata-0.52.1+ds0/src/g_canvas.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/g_canvas.c 2022-03-27 22:30:03.000000000 +0000 @@ -1789,24 +1789,25 @@ for (i = 0; i < argc; i++) { const char *flag = atom_getsymbolarg(i, argc, argv)->s_name; - if ((argc > i+1) && !strcmp(flag, "-path")) + const char *item = (argc > i+1)?atom_getsymbolarg(i+1, argc, argv)->s_name:0; + if ((item) && !strcmp(flag, "-path")) { - canvas_path(x, e, atom_getsymbolarg(i+1, argc, argv)->s_name); + canvas_path(x, e, item); i++; } - else if ((argc > i+1) && !strcmp(flag, "-stdpath")) + else if ((item) && !strcmp(flag, "-stdpath")) { - canvas_stdpath(e, atom_getsymbolarg(i+1, argc, argv)->s_name); + canvas_stdpath(e, item); i++; } - else if ((argc > i+1) && !strcmp(flag, "-lib")) + else if ((item) && !strcmp(flag, "-lib")) { - canvas_lib(x, e, atom_getsymbolarg(i+1, argc, argv)->s_name); + canvas_lib(x, e, item); i++; } - else if ((argc > i+1) && !strcmp(flag, "-stdlib")) + else if ((item) && !strcmp(flag, "-stdlib")) { - canvas_stdlib(e, atom_getsymbolarg(i+1, argc, argv)->s_name); + canvas_stdlib(e, item); i++; } else post("declare: %s: unknown declaration", flag); diff -Nru puredata-0.52.1+ds0/src/g_editor.c puredata-0.52.2+ds0/src/g_editor.c --- puredata-0.52.1+ds0/src/g_editor.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/g_editor.c 2022-03-27 22:30:03.000000000 +0000 @@ -2854,12 +2854,14 @@ else if (x->gl_editor->e_onmotion == MA_REGION) canvas_doregion(x, xpos, ypos, 1); else if ((x->gl_editor->e_onmotion == MA_MOVE || - x->gl_editor->e_onmotion == MA_RESIZE) && !x->gl_editor->e_lastmoved) + x->gl_editor->e_onmotion == MA_RESIZE)) { - /* if there's only one text item selected *and* the mouse hasn't moved, - activate the text, i.e. standard click/drag behavior: - - single click, no motion: enter object for editing. - - click-drag with motion: move object, keep it selected */ + /* if there's only one text item selected activate the text. + LATER consider under sme conditions not activating it, for instance + if it appears to have been desired only to move the object. Maybe + shift-click could allow dragging without activating text? A + different solution (only activating if the object wasn't moved + (commit f0df4e586) turned out to flout ctrlD+move+retype. */ if (x->gl_editor->e_selection && !(x->gl_editor->e_selection->sel_next)) { @@ -3482,7 +3484,7 @@ { t_gobj *g; int n; - + for (g = gl->gl_list; g; g = g->g_next) { if (((const void *)g == error_object) || (message_get_responder(g) == error_object)) @@ -4796,8 +4798,6 @@ if (whichresize != 3) realresx = realresize; if (whichresize != 2) realresy = realresize; canvas_dofont(x2, font, realresx, realresy); - if ((realresx != 1 || realresx != 1) || (oldfont != (int)font)) - canvas_dirty(x2, 1); canvas_undo_add(x2, UNDO_FONT, "font", canvas_undo_set_font(x2, oldfont, realresize, whichresize)); diff -Nru puredata-0.52.1+ds0/src/g_mycanvas.c puredata-0.52.2+ds0/src/g_mycanvas.c --- puredata-0.52.1+ds0/src/g_mycanvas.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/g_mycanvas.c 2022-03-27 22:30:03.000000000 +0000 @@ -411,7 +411,7 @@ my_canvas_widgetbehavior.w_visfn = iemgui_vis; my_canvas_widgetbehavior.w_clickfn = NULL; class_setwidget(my_canvas_class, &my_canvas_widgetbehavior); - class_sethelpsymbol(my_canvas_class, gensym("my_canvas")); + class_sethelpsymbol(my_canvas_class, gensym("cnv")); class_setsavefn(my_canvas_class, my_canvas_save); class_setpropertiesfn(my_canvas_class, my_canvas_properties); } diff -Nru puredata-0.52.1+ds0/src/g_numbox.c puredata-0.52.2+ds0/src/g_numbox.c --- puredata-0.52.1+ds0/src/g_numbox.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/g_numbox.c 2022-03-27 22:30:03.000000000 +0000 @@ -936,7 +936,7 @@ my_numbox_widgetbehavior.w_visfn = iemgui_vis; my_numbox_widgetbehavior.w_clickfn = my_numbox_newclick; class_setwidget(my_numbox_class, &my_numbox_widgetbehavior); - class_sethelpsymbol(my_numbox_class, gensym("numbox2")); + class_sethelpsymbol(my_numbox_class, gensym("nbx")); class_setsavefn(my_numbox_class, my_numbox_save); class_setpropertiesfn(my_numbox_class, my_numbox_properties); } diff -Nru puredata-0.52.1+ds0/src/g_rtext.c puredata-0.52.2+ds0/src/g_rtext.c --- puredata-0.52.1+ds0/src/g_rtext.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/g_rtext.c 2022-03-27 22:30:03.000000000 +0000 @@ -464,6 +464,7 @@ sys_vgui(".x%lx.c select clear\n", canvas); sys_vgui(".x%lx.c icursor %s %d\n", canvas, x->x_tag, u8_charnum(x->x_buf, selstart_b)); + sys_vgui("focus .x%lx.c\n", canvas); sys_vgui(".x%lx.c focus %s\n", canvas, x->x_tag); } } diff -Nru puredata-0.52.1+ds0/src/g_text.c puredata-0.52.2+ds0/src/g_text.c --- puredata-0.52.1+ds0/src/g_text.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/g_text.c 2022-03-27 22:30:03.000000000 +0000 @@ -933,7 +933,7 @@ return (1); } - /* probably never used but included in case needed for compatibilty */ + /* probably never used but included in case needed for compatibility */ static void gatom_click(t_gatom *x, t_floatarg xpos, t_floatarg ypos, t_floatarg shift, t_floatarg ctrl, t_floatarg alt) { @@ -1761,4 +1761,5 @@ A_GIMME, 0); class_setwidget(gatom_class, &gatom_widgetbehavior); class_setpropertiesfn(gatom_class, gatom_properties); + class_sethelpsymbol(gatom_class, gensym("gui-boxes")); } diff -Nru puredata-0.52.1+ds0/src/Makefile.am puredata-0.52.2+ds0/src/Makefile.am --- puredata-0.52.1+ds0/src/Makefile.am 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/Makefile.am 2022-03-27 22:30:03.000000000 +0000 @@ -2,17 +2,23 @@ ##### Defaults & Paths ##### AUTOMAKE_OPTIONS = foreign -CLEANFILES= +CLEANFILES = bin_SCRIPTS = noinst_SCRIPTS = -pd_CFLAGS = -DPD -DINSTALL_PREFIX=\"$(prefix)\" -DPD_INTERNAL -pd_LDFLAGS = +AM_CPPFLAGS = @PD_CPPFLAGS@ +AM_CFLAGS = @PD_CFLAGS@ +AM_LDFLAGS = @PD_LDFLAGS@ + +pd_CFLAGS = -DPD -DPD_INTERNAL -DINSTALL_PREFIX=\"$(prefix)\" @PD_CFLAGS@ +pd_LDFLAGS = @PD_LDFLAGS@ pd_LDADD = -libpd_la_CPPFLAGS = -DPD -DPD_INTERNAL -DUSEAPI_DUMMY + +libpd_la_CPPFLAGS = -DPD -DPD_INTERNAL -DUSEAPI_DUMMY @PD_CPPFLAGS@ +libpd_la_CFLAGS = @PD_CFLAGS@ libpd_la_LIBADD = -libpd_la_LDFLAGS = +libpd_la_LDFLAGS = @PD_LDFLAGS@ libpdincludedir = $(includedir)/libpd libpdinclude_HEADERS = @@ -20,14 +26,14 @@ # for the DLL and the EXE, other OSes simply set pd_* = $(pd_*_core) later # also, the "_core" suffix is used as this keeps automake from thinking these # are library or binary variables since we only need them as placeholders -pd_LDFLAGS_core = +pd_LDFLAGS_core = @PD_LDFLAGS@ pd_LDADD_core = -pd_LDFLAGS_standalone = +pd_LDFLAGS_standalone = @PD_LDFLAGS@ pd_LDADD_standalone = -pdsend_CFLAGS = -pdreceive_CFLAGS = -pd_watchdog_CFLAGS = +pdsend_CFLAGS = @PD_CFLAGS@ +pdreceive_CFLAGS = @PD_CFLAGS@ +pd_watchdog_CFLAGS = @PD_CFLAGS@ LIBS = @LIBS@ @@ -87,8 +93,6 @@ $(empty) endif - - # on Windows, pd.exe contains only s_entry.c and links against pd.dll # (where all the logic resides), that's why we have to split the sources # (only to later merge them again for non-Windows systems) @@ -199,7 +203,7 @@ # we want these in the dist tarball EXTRA_DIST = CHANGELOG.txt notes.txt pd.rc \ - makefile.gnu makefile.mac makefile.mingw makefile.msvc \ + makefile.gnu makefile.mac makefile.mingw makefile.msvc \ d_soundfile.h s_audio_audiounit.c s_audio_esd.c # add WISH define if it's set @@ -302,7 +306,7 @@ endif - +##### Jack Audio Connection Kit ##### if JACK pd_SOURCES_standalone += s_audio_paring.c else !JACK @@ -311,7 +315,6 @@ endif PORTAUDIO endif !JACK - ##### NO API? ##### # if no audio or midi api was detected/specified, fall back to dummy apis # ie. GNU/HURD, IPHONEOS, ... have no MIDI (not even OSS) @@ -389,6 +392,11 @@ libpd_la_LIBADD += -ldl -lm -lpthread libpd_la_LDFLAGS += -framework CoreFoundation +# PERTHREAD requires macOS 10.9+ SDK +if LIBPD_MULTIINSTANCE +libpd_la_CFLAGS += -mmacosx-version-min=10.9 +endif + endif ##### Windows ##### diff -Nru puredata-0.52.1+ds0/src/m_pd.h puredata-0.52.2+ds0/src/m_pd.h --- puredata-0.52.1+ds0/src/m_pd.h 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/m_pd.h 2022-03-27 22:30:03.000000000 +0000 @@ -10,7 +10,7 @@ #define PD_MAJOR_VERSION 0 #define PD_MINOR_VERSION 52 -#define PD_BUGFIX_VERSION 1 +#define PD_BUGFIX_VERSION 2 #define PD_TEST_VERSION "" extern int pd_compatibilitylevel; /* e.g., 43 for pd 0.43 compatibility */ @@ -42,11 +42,11 @@ #endif /* EXTERN */ /* On most c compilers, you can just say "struct foo;" to declare a - structure whose elements are defined elsewhere. On MSVC, when compiling - C (but not C++) code, you have to say "extern struct foo;". So we make - a stupid macro: */ + structure whose elements are defined elsewhere. On very old MSVC versions, + when compiling C (but not C++) code, you have to say "extern struct foo;". + So we make a stupid macro: */ #if defined(_MSC_VER) && !defined(_LANGUAGE_C_PLUS_PLUS) \ - && !defined(__cplusplus) + && !defined(__cplusplus) && (_MSC_VER < 1700) #define EXTERN_STRUCT extern struct #else #define EXTERN_STRUCT struct diff -Nru puredata-0.52.1+ds0/src/m_sched.c puredata-0.52.2+ds0/src/m_sched.c --- puredata-0.52.1+ds0/src/m_sched.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/m_sched.c 2022-03-27 22:30:03.000000000 +0000 @@ -23,6 +23,7 @@ #define SYS_QUIT_QUIT 1 #define SYS_QUIT_RESTART 2 static int sys_quit; +extern int sys_nosleep; int sys_usecsincelastsleep(void); int sys_sleepgrain; @@ -333,8 +334,6 @@ sys_initmidiqueue(); while (!sys_quit) /* outer loop runs once per tick */ { - int timeforward; - sys_addhist(0); sched_tick(); sys_addhist(1); @@ -349,12 +348,13 @@ sched_referencelogicaltime = pd_this->pd_systime; continue; } + sys_pollgui(); sys_pollmidiqueue(); sys_addhist(2); while (!sys_quit) /* inner loop runs until it can transfer audio */ { - int sentdacs; /* YES if audio was transferred, NO if not, - or SLEPT if yes but time elapsed during xfer */ + int timeforward; /* SENDDACS_YES if audio was transferred, SENDDACS_NO if not, + or SENDDACS_SLEPT if yes but time elapsed during xfer */ sys_unlock(); if (sched_useaudio == SCHED_AUDIO_NONE) { @@ -372,7 +372,7 @@ else timeforward = sys_send_dacs(); sys_addhist(3); /* test for idle; if so, do graphics updates. */ - if (timeforward != SENDDACS_YES && !sched_idletask()) + if (timeforward != SENDDACS_YES && !sched_idletask() && !sys_nosleep) { /* if even that had nothing to do, sleep. */ sys_addhist(4); diff -Nru puredata-0.52.1+ds0/src/pd.rc puredata-0.52.2+ds0/src/pd.rc --- puredata-0.52.1+ds0/src/pd.rc 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/pd.rc 2022-03-27 22:30:03.000000000 +0000 @@ -1,7 +1,7 @@ id ICON "../tcl/pd.ico" 1 VERSIONINFO -FILEVERSION 0,52,0,0 -PRODUCTVERSION 0,52,0,0 +FILEVERSION 0,52,2,0 +PRODUCTVERSION 0,52,2,0 BEGIN BLOCK "StringFileInfo" BEGIN @@ -9,12 +9,12 @@ BEGIN VALUE "CompanyName", "puredata.info" VALUE "FileDescription", "Pure Data Application" - VALUE "FileVersion", "0.52-0" + VALUE "FileVersion", "0.52-2" VALUE "InternalName", "pd.exe" VALUE "LegalCopyright", "Miller Puckette, et al." VALUE "OriginalFilename", "pd.exe" VALUE "ProductName", "Pure Data" - VALUE "ProductVersion", "0.52-0" + VALUE "ProductVersion", "0.52-2" END END diff -Nru puredata-0.52.1+ds0/src/s_audio.c puredata-0.52.2+ds0/src/s_audio.c --- puredata-0.52.1+ds0/src/s_audio.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/s_audio.c 2022-03-27 22:30:03.000000000 +0000 @@ -22,6 +22,7 @@ #include #include #include +#include #ifdef _MSC_VER #define snprintf _snprintf @@ -354,7 +355,16 @@ { int blksize = (as.a_blocksize ? as.a_blocksize : 64); int nbufs = (double)sys_schedadvance / 1000000. * as.a_srate / blksize; - if (nbufs < 1) nbufs = 1; + /* make sure that the delay is not smaller than the hardware blocksize */ + if (nbufs < 1) + { + int delay = ((double)sys_schedadvance / 1000.) + 0.5; + int limit = ceil(blksize * 1000. / (double)as.a_srate); + nbufs = 1; + post("warning: 'delay' setting (%d ms) too small for current blocksize " + "(%d samples); falling back to minimum value (%d ms)", + delay, blksize, limit); + } outcome = pa_open_audio((as.a_nindev > 0 ? as.a_chindevvec[0] : 0), (as.a_noutdev > 0 ? as.a_choutdevvec[0] : 0), as.a_srate, STUFF->st_soundin, STUFF->st_soundout, blksize, nbufs, diff -Nru puredata-0.52.1+ds0/src/s_audio_jack.c puredata-0.52.2+ds0/src/s_audio_jack.c --- puredata-0.52.1+ds0/src/s_audio_jack.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/s_audio_jack.c 2022-03-27 22:30:03.000000000 +0000 @@ -10,6 +10,7 @@ #include #include #include +#include #include "m_pd.h" #include "s_stuff.h" #include "s_audio_paring.h" @@ -160,7 +161,10 @@ static int jack_srate (jack_nframes_t srate, void *arg) { + const t_float oldrate = STUFF->st_dacsr; STUFF->st_dacsr = srate; + if (oldrate != STUFF->st_dacsr) + canvas_update_dsp(); return 0; } @@ -409,10 +413,18 @@ STUFF->st_dacsr = jack_get_sample_rate (jack_client); jack_blocksize = jack_get_buffer_size (jack_client); - advance_samples = sys_schedadvance * (float)STUFF->st_dacsr / 1.e6; + advance_samples = sys_schedadvance * (double)STUFF->st_dacsr / 1.e6; advance_samples -= (advance_samples % DEFDACBLKSIZE); - if (advance_samples < DEFDACBLKSIZE) - advance_samples = DEFDACBLKSIZE; + /* make sure that the delay is not smaller than the Jack blocksize! */ + if (advance_samples < jack_blocksize) + { + int delay = ((double)sys_schedadvance / 1000.) + 0.5; + int limit = ceil(jack_blocksize * 1000. / (double)STUFF->st_dacsr); + advance_samples = jack_blocksize; + post("warning: 'delay' setting (%d ms) too small for current blocksize " + "(%d samples); falling back to minimum value (%d ms)", + delay, jack_blocksize, limit); + } /* create the ports */ @@ -498,7 +510,7 @@ jack_blocksize = 0; /* this should never be necessary since jack_close_audio() should - only be called form the main thread. Still, it doens't hurt + only be called form the main thread. Still, it doesn't hurt anything. */ pthread_cond_broadcast(&jack_sem); diff -Nru puredata-0.52.1+ds0/src/s_entry.c puredata-0.52.2+ds0/src/s_entry.c --- puredata-0.52.1+ds0/src/s_entry.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/s_entry.c 2022-03-27 22:30:03.000000000 +0000 @@ -11,10 +11,8 @@ #include #include -int WINAPI WinMain(HINSTANCE hInstance, - HINSTANCE hPrevInstance, - LPSTR lpCmdLine, - int nCmdShow) +int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, + LPSTR lpCmdLine, int nCmdShow) { __try { sys_main(__argc,__argv); diff -Nru puredata-0.52.1+ds0/src/s_inter.c puredata-0.52.2+ds0/src/s_inter.c --- puredata-0.52.1+ds0/src/s_inter.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/s_inter.c 2022-03-27 22:30:03.000000000 +0000 @@ -193,8 +193,6 @@ #endif } -extern int sys_nosleep; - /* sleep (but cancel the sleeping if any file descriptors are ready - in that case, dispatch any resulting Pd messages and return. Called with sys_lock() set. We will temporarily release the lock if we actually @@ -1647,6 +1645,9 @@ inter->i_fdpoll = 0; inter->i_nfdpoll = 0; } +#if PDTHREADS + pthread_mutex_destroy(&INTER->i_mutex); +#endif freebytes(inter, sizeof(*inter)); } diff -Nru puredata-0.52.1+ds0/src/s_net.h puredata-0.52.2+ds0/src/s_net.h --- puredata-0.52.1+ds0/src/s_net.h 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/s_net.h 2022-03-27 22:30:03.000000000 +0000 @@ -70,7 +70,6 @@ return; } */ - int addrinfo_get_list(struct addrinfo **ailist, const char *hostname, int port, int protocol); diff -Nru puredata-0.52.1+ds0/src/s_print.c puredata-0.52.2+ds0/src/s_print.c --- puredata-0.52.1+ds0/src/s_print.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/s_print.c 2022-03-27 22:30:03.000000000 +0000 @@ -225,7 +225,7 @@ /* keep this in the Pd app for binary extern compatibility but don't include in libpd because it conflicts with the posix pd_error(0, ) function. */ #ifdef PD_INTERNAL -void error(const char *fmt, ...) +EXTERN void error(const char *fmt, ...) { char buf[MAXPDSTRING]; va_list ap; diff -Nru puredata-0.52.1+ds0/src/s_stuff.h puredata-0.52.2+ds0/src/s_stuff.h --- puredata-0.52.1+ds0/src/s_stuff.h 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/s_stuff.h 2022-03-27 22:30:03.000000000 +0000 @@ -98,7 +98,7 @@ likely to offer a working device takes precedence so that if you start up Pd for the first time there's a reasonable chance you'll have sound. (You'd think portaudio would be best but it seems to default - to jack on linux, and and on Windows we only use it for ASIO). + to jack on linux, and on Windows we only use it for ASIO). If nobody shows up, define DUMMY and make it the default.*/ #if defined(USEAPI_MMIO) # define API_DEFAULT API_MMIO diff -Nru puredata-0.52.1+ds0/src/x_arithmetic.c puredata-0.52.2+ds0/src/x_arithmetic.c --- puredata-0.52.1+ds0/src/x_arithmetic.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/x_arithmetic.c 2022-03-27 22:30:03.000000000 +0000 @@ -751,8 +751,8 @@ void x_arithmetic_setup(void) { - t_symbol *binop1_sym = gensym("operators"); - t_symbol *binop23_sym = gensym("otherbinops"); + t_symbol *binop1_sym = gensym("binops"); + t_symbol *binop23_sym = gensym("binops-other"); t_symbol *math_sym = gensym("math"); binop1_plus_class = class_new(gensym("+"), (t_newmethod)binop1_plus_new, 0, diff -Nru puredata-0.52.1+ds0/src/x_file.c puredata-0.52.2+ds0/src/x_file.c --- puredata-0.52.1+ds0/src/x_file.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/x_file.c 2022-03-27 22:30:03.000000000 +0000 @@ -171,8 +171,6 @@ rp--; } } - - *wp++=0; return to; } @@ -1270,7 +1268,7 @@ static void file_join_list(t_file_handle*x, t_symbol*s, int argc, t_atom*argv) { /* luckily for us, the path-separator in Pd is always '/' */ - size_t bufsize = 0; + size_t bufsize = 1; char*buffer = getbytes(bufsize); (void)s; while(argc--) { @@ -1280,16 +1278,18 @@ size_t alen; atom_string(argv++, abuf, MAXPDSTRING); alen = strlen(abuf); - if(!alen || '/' == abuf[alen-1]) + if(!alen) continue; + if('/' == abuf[alen-1]) needsep = 0; newsize = bufsize + alen + needsep; if (!(newbuffer = resizebytes(buffer, bufsize, newsize))) break; buffer = newbuffer; - strcpy(buffer+bufsize, abuf); + strcpy(buffer+bufsize-1, abuf); if(needsep) - buffer[newsize-1]='/'; + buffer[newsize-2]='/'; bufsize = newsize; } + buffer[bufsize-1] = 0; outlet_symbol(x->x_dataout, gensym(do_pathnormalize(buffer, buffer))); freebytes(buffer, bufsize); } diff -Nru puredata-0.52.1+ds0/src/x_gui.c puredata-0.52.2+ds0/src/x_gui.c --- puredata-0.52.1+ds0/src/x_gui.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/x_gui.c 2022-03-27 22:30:03.000000000 +0000 @@ -387,18 +387,19 @@ (t_newmethod)key_new, (t_method)key_free, sizeof(t_key), CLASS_NOINLET, 0); class_addfloat(key_class, key_float); + class_sethelpsymbol(key_class, gensym("key-input")); keyup_class = class_new(gensym("keyup"), (t_newmethod)keyup_new, (t_method)keyup_free, sizeof(t_keyup), CLASS_NOINLET, 0); class_addfloat(keyup_class, keyup_float); - class_sethelpsymbol(keyup_class, gensym("key")); + class_sethelpsymbol(keyup_class, gensym("key-input")); keyname_class = class_new(gensym("keyname"), (t_newmethod)keyname_new, (t_method)keyname_free, sizeof(t_keyname), CLASS_NOINLET, 0); class_addlist(keyname_class, keyname_list); - class_sethelpsymbol(keyname_class, gensym("key")); + class_sethelpsymbol(keyname_class, gensym("key-input")); } /* ------------------------ pdcontrol --------------------------------- */ diff -Nru puredata-0.52.1+ds0/src/x_interface.c puredata-0.52.2+ds0/src/x_interface.c --- puredata-0.52.1+ds0/src/x_interface.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/x_interface.c 2022-03-27 22:30:03.000000000 +0000 @@ -116,14 +116,12 @@ else if (argv->a_type == A_FLOAT) { int i; + /* print first (numeric) atom, to avoid a leading space */ if (*x->x_sym->s_name) - print_startlogpost(x, "%s: ", x->x_sym->s_name); + print_startlogpost(x, "%s: %g", x->x_sym->s_name, atom_getfloat(argv)); else - { - /* print first (numeric) atom, to avoid a trailing space */ print_startlogpost(x, "%g", atom_getfloat(argv)); - argc--; argv++; - } + argc--; argv++; for (i = 0; i < argc; i++) { char buf[MAXPDSTRING]; diff -Nru puredata-0.52.1+ds0/src/x_list.c puredata-0.52.2+ds0/src/x_list.c --- puredata-0.52.1+ds0/src/x_list.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/x_list.c 2022-03-27 22:30:03.000000000 +0000 @@ -555,7 +555,14 @@ if (!outc) outc = 1; /* default */ else if (outc < 0) + { outc = x->x_alist.l_n - onset; /* till the end of the list */ + if (outc <= 0) /* onset out of range */ + { + outlet_bang(x->x_out2); + return; + } + } if (onset < 0 || (onset + outc > x->x_alist.l_n)) { outlet_bang(x->x_out2); diff -Nru puredata-0.52.1+ds0/src/x_misc.c puredata-0.52.2+ds0/src/x_misc.c --- puredata-0.52.1+ds0/src/x_misc.c 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/src/x_misc.c 2022-03-27 22:30:03.000000000 +0000 @@ -476,6 +476,7 @@ oscparse_class = class_new(gensym("oscparse"), (t_newmethod)oscparse_new, 0, sizeof(t_oscparse), 0, A_GIMME, 0); class_addlist(oscparse_class, oscparse_list); + class_sethelpsymbol(oscparse_class, gensym("osc-format-parse")); } /* --------- oscformat - format simple OSC messages -------------- */ @@ -691,6 +692,7 @@ class_addmethod(oscformat_class, (t_method)oscformat_format, gensym("format"), A_DEFSYM, 0); class_addlist(oscformat_class, oscformat_list); + class_sethelpsymbol(oscformat_class, gensym("osc-format-parse")); } @@ -780,8 +782,9 @@ sizeof(t_fudiparse), CLASS_DEFAULT, 0); class_addlist(fudiparse_class, fudiparse_list); + class_sethelpsymbol(fudiparse_class, gensym("fudi-format-parse")); } -/* --------- oscformat - format Pd (FUDI) messages to bytelists ------------ */ +/* --------- fudiformat - format Pd (FUDI) messages to bytelists ------------ */ static t_class *fudiformat_class; @@ -853,6 +856,7 @@ sizeof(t_fudiformat), CLASS_DEFAULT, A_DEFSYMBOL, 0); class_addanything(fudiformat_class, fudiformat_any); + class_sethelpsymbol(fudiformat_class, gensym("fudi-format-parse")); } diff -Nru puredata-0.52.1+ds0/tcl/dialog_array.tcl puredata-0.52.2+ds0/tcl/dialog_array.tcl --- puredata-0.52.1+ds0/tcl/dialog_array.tcl 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/tcl/dialog_array.tcl 2022-03-27 22:30:03.000000000 +0000 @@ -9,39 +9,102 @@ } # global variables for the listview -array set pd_array_listview_entry {} -array set pd_array_listview_id {} -array set pd_array_listview_page {} -set pd_array_listview_pagesize 0 +array set ::dialog_array::listview_entry {} +array set ::dialog_array::listview_id {} +array set ::dialog_array::listview_page {} +set ::dialog_array::listview_pagesize 1000 # this stores the state of the "save me" check button -array set saveme_button {} +array set ::dialog_array::saveme_button {} # this stores the state of the "draw as" radio buttons -array set drawas_button {} +array set ::dialog_array::drawas_button {} # this stores the state of the "in new graph"/"in last graph" radio buttons # and the "delete array" checkbutton -array set otherflag_button {} +array set ::dialog_array::otherflag_button {} ############ pdtk_array_dialog -- dialog window for arrays ######### +proc ::dialog_array::listview_windowname {arrayName} { + set id $::dialog_array::listview_id($arrayName) + return "${id}_listview" +} +proc ::dialog_array::listview_lbname {arrayName} { + set id $::dialog_array::listview_id($arrayName) + return "${id}_listview.data.lb" +} + +proc ::dialog_array::listview_setpage {arrayName page {numpages {}} {pagesize {}}} { + set ::dialog_array::listview_page($arrayName) $page + if {$pagesize ne {} && [string is double $pagesize]} { + set ::dialog_array::listview_pagesize $pagesize + } +} +proc ::dialog_array::listview_setdata {arrayName startIndex args} { + set lb [listview_lbname $arrayName] + if { [catch { + # treeview + ${lb} delete [${lb} children {}] + set idx $startIndex + foreach x $args { + ${lb} insert {} end -values [list $idx $x] + incr idx + } + } ] } { + # listbox + ${lb} delete 0 end + set idx 0 + foreach x $args { + ${lb} insert $idx "[expr $startIndex + $idx]) $x" + incr idx + } + } +} +proc ::dialog_array::listview_focus {arrayName item} { + set lb [listview_lbname $arrayName] + ${lb} yview $item +} proc ::dialog_array::pdtk_array_listview_setpage {arrayName page} { - set ::pd_array_listview_page($arrayName) $page + listview_setpage $arrayName $page } proc ::dialog_array::listview_changepage {arrayName np} { pdtk_array_listview_setpage \ - $arrayName [expr $::pd_array_listview_page($arrayName) + $np] + $arrayName [expr $::dialog_array::listview_page($arrayName) + $np] pdtk_array_listview_fillpage $arrayName } proc ::dialog_array::pdtk_array_listview_fillpage {arrayName} { - set windowName [format ".%sArrayWindow" $arrayName] - set topItem [expr [lindex [$windowName.lb yview] 0] * \ - [$windowName.lb size]] + set lb [listview_lbname ${arrayName}] - if {[winfo exists $windowName]} { - set cmd "$::pd_array_listview_id($arrayName) \ + # get the index of the topmost visible element + # (so the scroll does not change after updating the elements) + if {[winfo exists $lb]} { + if { [catch { + # treeview + + # this is index of the 'selected' element + # (not what we want, but a good fallback...) + set topItem [$lb index [$lb focus]] + + # search for the first visible cell + set xy 0 + for { set xy 0 } { $xy < 500 } { incr xy } { + if { [$lb identify region $xy $xy ] eq "cell" } { + # usually the first cell we find is still hidden + # increment by one more pixel to get a valid one + incr xy + + set item [$lb identify item $xy $xy] + set topItem [$lb index $item] + break + } + } + } ] } { + # listbox (much simpler) + set topItem [expr [lindex [$lb yview] 0] * [$lb size]] + } + set cmd "$::dialog_array::listview_id($arrayName) \ arrayviewlistfillpage \ - $::pd_array_listview_page($arrayName) \ + $::dialog_array::listview_page($arrayName) \ $topItem" pdsend $cmd @@ -49,160 +112,223 @@ } proc ::dialog_array::pdtk_array_listview_new {id arrayName page} { - set ::pd_array_listview_page($arrayName) $page - set ::pd_array_listview_id($arrayName) $id - set windowName [format ".%sArrayWindow" $arrayName] - if [winfo exists $windowName] then [destroy $windowName] + set ::dialog_array::listview_page($arrayName) $page + set ::dialog_array::listview_id($arrayName) $id + set windowName [listview_windowname ${arrayName}] + destroy $windowName + toplevel $windowName -class DialogWindow wm group $windowName . wm protocol $windowName WM_DELETE_WINDOW \ - "::dialog_array::listview_close $id $arrayName" + "::dialog_array::listview_close $id \{$arrayName\}" wm title $windowName [concat $arrayName "(list view)"] - # FIXME - set font 12 - set $windowName.lb [listbox $windowName.lb -height 20 -width 25\ - -selectmode extended \ - -relief solid -background white -borderwidth 1 \ - -font [format {{%s} %d %s} $::font_family $font $::font_weight]\ - -yscrollcommand "$windowName.lb.sb set"] - set $windowName.lb.sb [scrollbar $windowName.lb.sb \ - -command "$windowName.lb yview" -orient vertical] - place configure $windowName.lb.sb -relheight 1 -relx 0.9 -relwidth 0.1 - pack $windowName.lb -expand 1 -fill both - bind $windowName.lb \ - "::dialog_array::listview_edit $arrayName $page $font" + + + frame $windowName.data + pack $windowName.data -fill "both" -side top + frame $windowName.buttons + pack $windowName.buttons -fill "x" -side bottom + + set lb $windowName.data.lb + set sb $windowName.data.sb + if { [ catch { + # treeview + ttk::treeview $lb \ + -columns {index value} -show headings \ + -height 20 \ + -selectmode extended \ + -yscrollcommand "$sb set" + $lb heading index -text "#" -anchor center + $lb heading value -text $arrayName -anchor center + $lb column index -width 75 -anchor e + } stderr ] } { + # listview + listbox $lb -height 20 -width 25 \ + -selectmode extended \ + -relief solid -background white -borderwidth 1 \ + -yscrollcommand "$sb set" + } + scrollbar $sb \ + -command "$lb yview" -orient vertical + pack $lb -expand 1 -fill both -side left + pack $sb -fill y -side right + bind $lb \ + "::dialog_array::listview_edit \{$arrayName\} $page" # handle copy/paste - switch -- $::windowingsystem { - "x11" {selection handle $windowName.lb \ - "::dialog_array::listview_lbselection $arrayName"} - "win32" {bind $windowName.lb \ - "::dialog_array::listview_popup $arrayName"} - } - set $windowName.prevBtn [button $windowName.prevBtn -text "<-" \ - -command "::dialog_array::listview_changepage $arrayName -1"] - set $windowName.nextBtn [button $windowName.nextBtn -text "->" \ - -command "::dialog_array::listview_changepage $arrayName 1"] - pack $windowName.prevBtn -side left -ipadx 20 -pady 10 -anchor s - pack $windowName.nextBtn -side right -ipadx 20 -pady 10 -anchor s + catch { + # this probably only works on X11 + selection handle $lb \ + "::dialog_array::listview_lbselection \{$arrayName\}" + } + # a Copy/Paste popup menu + bind $lb \ + "::dialog_array::listview_popup \{$arrayName\}" + bind $lb <> \ + "::dialog_array::listview_paste \{$arrayName\}; break" + bind $lb <> \ + "::dialog_array::listview_copy \{$arrayName\}; break" + + button $windowName.buttons.prev -text "\u2190" \ + -command "::dialog_array::listview_changepage \{$arrayName\} -1" + button $windowName.buttons.next -text "\u2192" \ + -command "::dialog_array::listview_changepage \{$arrayName\} 1" + + entry $windowName.buttons.page -textvariable ::dialog_array::listview_page($arrayName) \ + -validate key -validatecommand "string is double %P" \ + -justify "right" -width 5 + bind $windowName.buttons.page \ + "::dialog_array::listview_changepage \{$arrayName\} 0" + + pack $windowName.buttons.prev -side left -ipadx 20 -pady 10 -anchor s + pack $windowName.buttons.page -side left -padx 20 -pady 10 -anchor s + pack $windowName.buttons.next -side right -ipadx 20 -pady 10 -anchor s focus $windowName } proc ::dialog_array::listview_lbselection {arrayName off size} { - set windowName [format ".%sArrayWindow" $arrayName] - set itemNums [$windowName.lb curselection] - set cbString "" - for {set i 0} {$i < [expr [llength $itemNums] - 1]} {incr i} { - set listItem [$windowName.lb get [lindex $itemNums $i]] - append cbString [string range $listItem \ - [expr [string first ") " $listItem] + 2] \ - end] - append cbString "\n" - } - set listItem [$windowName.lb get [lindex $itemNums $i]] - append cbString [string range $listItem \ - [expr [string first ") " $listItem] + 2] \ - end] - set last $cbString + set lb [listview_lbname ${arrayName}] + set items {} + if { [catch { + foreach idx [$lb selection] { + lappend items [lindex [$lb item $idx -values] 1] + } + } ] } { + foreach idx [$lb curselection] { + set v [$lb get $idx] + lappend items [string range $v [string first ") " $v]+2 end] + } + } + + return [join $items "\n"] +} + +# parses 'data' into numbers, and sends them to the Pd-core so it +# can set the values in 'arrayName' starting from 'startIndex' +proc ::dialog_array::listview_edit+paste {arrayName startIndex data} { + set values {} + set offset [expr $startIndex \ + + $::dialog_array::listview_pagesize \ + * $::dialog_array::listview_page($arrayName)] + foreach value [split $data ", \n"] { + if {$value eq {}} {continue} + if {! [string is double $value]} {continue} + lappend values $value + } + if { $values ne {} } { + pdsend "$::dialog_array::listview_id($arrayName) $offset $values" + pdtk_array_listview_fillpage $arrayName + } } -# Win32 uses a popup menu for copy/paste +# a popup menu for copy/paste proc ::dialog_array::listview_popup {arrayName} { - set windowName [format ".%sArrayWindow" $arrayName] - if [winfo exists $windowName.popup] then [destroy $windowName.popup] - menu $windowName.popup -tearoff false - $windowName.popup add command -label [_ "Copy"] \ - -command "::dialog_array::listview_copy $arrayName; \ - destroy $windowName.popup" - $windowName.popup add command -label [_ "Paste"] \ - -command "::dialog_array::listview_paste $arrayName; \ - destroy $windowName.popup" - tk_popup $windowName.popup [winfo pointerx $windowName] \ + set windowName [listview_windowname ${arrayName}] + set lb [listview_lbname ${arrayName}] + set popup ${lb}.popup + destroy $popup + + # check if there's no selection, disable the popup + set cur {} + if { [catch { + set cur [$lb selection] + } ] } { + set cur [$lb curselection] + } + if { $cur eq {} } { + return + } + + menu $popup -tearoff false + $popup add command -label [_ "Copy"] \ + -command "::dialog_array::listview_copy \{$arrayName\}; \ + destroy $popup" + $popup add command -label [_ "Paste"] \ + -command "::dialog_array::listview_paste \{$arrayName\}; \ + destroy $popup" + tk_popup $popup [winfo pointerx $windowName] \ [winfo pointery $windowName] 0 } +# copy current selection to clipboard (called from the copy/paste popup) proc ::dialog_array::listview_copy {arrayName} { - set windowName [format ".%sArrayWindow" $arrayName] - set itemNums [$windowName.lb curselection] - set cbString "" - for {set i 0} {$i < [expr [llength $itemNums] - 1]} {incr i} { - set listItem [$windowName.lb get [lindex $itemNums $i]] - append cbString [string range $listItem \ - [expr [string first ") " $listItem] + 2] \ - end] - append cbString "\n" - } - set listItem [$windowName.lb get [lindex $itemNums $i]] - append cbString [string range $listItem \ - [expr [string first ") " $listItem] + 2] \ - end] + set sel [listview_lbselection $arrayName {} {}] clipboard clear - clipboard append $cbString + clipboard append $sel } +# when data is pasted (called from the copy/paste popup), update the values proc ::dialog_array::listview_paste {arrayName} { - set cbString [selection get -selection CLIPBOARD] - set lbName [format ".%sArrayWindow.lb" $arrayName] - set itemNum [lindex [$lbName curselection] 0] - set splitChars ", \n" - set itemString [split $cbString $splitChars] - set flag 1 - for {set i 0; set counter 0} {$i < [llength $itemString]} {incr i} { - if {[lindex $itemString $i] ne {}} { - pdsend "$arrayName [expr $itemNum + \ - [expr $counter + \ - [expr $::pd_array_listview_pagesize \ - * $::pd_array_listview_page($arrayName)]]] \ - [lindex $itemString $i]" - incr counter - set flag 0 + set sel {} + set itemNum {} + # get data from CLIPBOARD + if { $sel eq {} } {catch { set sel [selection get -selection CLIPBOARD] }} + # if that failed, get it from the PRIMARY copy buffer + if { $sel eq {} } {catch { set sel [selection get -selection PRIMARY] }} + + if { $sel eq {} } { + # giving up + return + } + + # get the selection start, so we know where to paste to + set lb [::dialog_array::listview_lbname $arrayName] + if { [catch { + set itemId [lindex [$lb selection] 0] + if { $itemId ne {} } { + set itemNum [$lb index ${itemId} ] } + } ] } { + set itemNum [lindex [$lb curselection] 0] } + + if { $itemNum ne {} } { + ::dialog_array::listview_edit+paste $arrayName $itemNum $sel + } + } -proc ::dialog_array::listview_edit {arrayName page font} { - set lbName [format ".%sArrayWindow.lb" $arrayName] - if {[winfo exists $lbName.entry]} { +proc ::dialog_array::listview_edit {arrayName page {font {}}} { + set lb [listview_lbname ${arrayName}] + set entry ${lb}.entry + if {[winfo exists $entry]} { ::dialog_array::listview_update_entry \ - $arrayName $::pd_array_listview_entry($arrayName) - unset ::pd_array_listview_entry($arrayName) + $arrayName $::dialog_array::listview_entry($arrayName) + unset ::dialog_array::listview_entry($arrayName) } - set itemNum [$lbName index active] - set ::pd_array_listview_entry($arrayName) $itemNum - set bbox [$lbName bbox $itemNum] - set y [expr [lindex $bbox 1] - 4] - set $lbName.entry [entry $lbName.entry \ - -font [format {{%s} %d %s} $::font_family $font $::font_weight]] - $lbName.entry insert 0 [] - place configure $lbName.entry -relx 0 -y $y -relwidth 1 - lower $lbName.entry - focus $lbName.entry - bind $lbName.entry \ - "::dialog_array::listview_update_entry $arrayName $itemNum;" + destroy $entry + if { [catch { + set focus [$lb focus] + foreach {x y w h} [$lb bbox $focus 1] {break} + entry $entry + place configure ${lb}.entry -x ${x} -y ${y} -width ${w} -height ${h} + set itemNum [$lb index $focus] + } stderr ] } { + set itemNum [$lb index active] + + set bbox [$lb bbox $itemNum] + set y [expr [lindex $bbox 1] - 4] + entry $entry + place configure $entry -relx 0 -y $y -relwidth 1 + } + set ::dialog_array::listview_entry($arrayName) $itemNum + + $entry insert 0 [] + lower $entry + focus $entry + bind $entry \ + "::dialog_array::listview_update_entry \{$arrayName\} $itemNum; break" + bind $entry \ + "destroy $entry; break" } proc ::dialog_array::listview_update_entry {arrayName itemNum} { - set lbName [format ".%sArrayWindow.lb" $arrayName] - set splitChars ", \n" - set itemString [split [$lbName.entry get] $splitChars] - set flag 1 - for {set i 0; set counter 0} {$i < [llength $itemString]} {incr i} { - if {[lindex $itemString $i] ne {}} { - pdsend "$arrayName [expr $itemNum + \ - [expr $counter + \ - [expr $::pd_array_listview_pagesize \ - * $::pd_array_listview_page($arrayName)]]] \ - [lindex $itemString $i]" - incr counter - set flag 0 - } - } - pdtk_array_listview_fillpage $arrayName - destroy $lbName.entry + set entry [listview_lbname $arrayName].entry + ::dialog_array::listview_edit+paste $arrayName $itemNum [$entry get] + destroy $entry } proc ::dialog_array::pdtk_array_listview_closeWindow {arrayName} { - set mytoplevel [format ".%sArrayWindow" $arrayName] - destroy $mytoplevel + destroy [listview_windowname ${arrayName}] } proc ::dialog_array::listview_close {mytoplevel arrayName} { @@ -214,8 +340,8 @@ pdsend "$mytoplevel arraydialog \ [::dialog_gatom::escape [$mytoplevel.array.name.entry get]] \ [$mytoplevel.array.size.entry get] \ - [expr $::saveme_button($mytoplevel) + (2 * $::drawas_button($mytoplevel))] \ - $::otherflag_button($mytoplevel)" + [expr $::dialog_array::saveme_button($mytoplevel) + (2 * $::dialog_array::drawas_button($mytoplevel))] \ + $::dialog_array::otherflag_button($mytoplevel)" } proc ::dialog_array::openlistview {mytoplevel} { @@ -242,9 +368,9 @@ $mytoplevel.array.name.entry insert 0 [::dialog_gatom::unescape $name] $mytoplevel.array.size.entry insert 0 $size - set ::saveme_button($mytoplevel) [expr $flags & 1] - set ::drawas_button($mytoplevel) [expr ( $flags & 6 ) >> 1] - set ::otherflag_button($mytoplevel) 0 + set ::dialog_array::saveme_button($mytoplevel) [expr $flags & 1] + set ::dialog_array::drawas_button($mytoplevel) [expr ( $flags & 6 ) >> 1] + set ::dialog_array::otherflag_button($mytoplevel) 0 # pd -> tcl # 2 * (int)(template_getfloat(template_findbyname(sc->sc_template), gensym("style"), x->x_scalar->sc_vec, 1))); @@ -278,18 +404,18 @@ pack $mytoplevel.array.size.entry $mytoplevel.array.size.label -side right checkbutton $mytoplevel.array.saveme -text [_ "Save contents"] \ - -variable ::saveme_button($mytoplevel) -anchor w + -variable ::dialog_array::saveme_button($mytoplevel) -anchor w pack $mytoplevel.array.saveme -side top # draw as labelframe $mytoplevel.drawas -text [_ "Draw as:"] -padx 20 -borderwidth 1 pack $mytoplevel.drawas -side top -fill x radiobutton $mytoplevel.drawas.points -value 0 \ - -variable ::drawas_button($mytoplevel) -text [_ "Polygon"] + -variable ::dialog_array::drawas_button($mytoplevel) -text [_ "Polygon"] radiobutton $mytoplevel.drawas.polygon -value 1 \ - -variable ::drawas_button($mytoplevel) -text [_ "Points"] + -variable ::dialog_array::drawas_button($mytoplevel) -text [_ "Points"] radiobutton $mytoplevel.drawas.bezier -value 2 \ - -variable ::drawas_button($mytoplevel) -text [_ "Bezier curve"] + -variable ::dialog_array::drawas_button($mytoplevel) -text [_ "Bezier curve"] pack $mytoplevel.drawas.points -side top -anchor w pack $mytoplevel.drawas.polygon -side top -anchor w pack $mytoplevel.drawas.bezier -side top -anchor w @@ -299,9 +425,9 @@ labelframe $mytoplevel.options -text [_ "Put array into:"] -padx 20 -borderwidth 1 pack $mytoplevel.options -side top -fill x radiobutton $mytoplevel.options.radio0 -value 0 \ - -variable ::otherflag_button($mytoplevel) -text [_ "New graph"] + -variable ::dialog_array::otherflag_button($mytoplevel) -text [_ "New graph"] radiobutton $mytoplevel.options.radio1 -value 1 \ - -variable ::otherflag_button($mytoplevel) -text [_ "Last graph"] + -variable ::dialog_array::otherflag_button($mytoplevel) -text [_ "Last graph"] pack $mytoplevel.options.radio0 -side top -anchor w pack $mytoplevel.options.radio1 -side top -anchor w } else { @@ -311,7 +437,7 @@ -command "::dialog_array::openlistview $mytoplevel [$mytoplevel.array.name.entry get]" pack $mytoplevel.options.listview -side top checkbutton $mytoplevel.options.deletearray -text [_ "Delete array"] \ - -variable ::otherflag_button($mytoplevel) -anchor w + -variable ::dialog_array::otherflag_button($mytoplevel) -anchor w pack $mytoplevel.options.deletearray -side top } @@ -364,7 +490,7 @@ $mytoplevel.buttonframe.cancel config -highlightthickness 0 } - position_over_window "$mytoplevel" "$::focused_window" + position_over_window ${mytoplevel} ${::focused_window} } # for live widget updates on OSX diff -Nru puredata-0.52.1+ds0/tcl/dialog_font.tcl puredata-0.52.2+ds0/tcl/dialog_font.tcl --- puredata-0.52.1+ds0/tcl/dialog_font.tcl 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/tcl/dialog_font.tcl 2022-03-27 22:30:03.000000000 +0000 @@ -22,13 +22,20 @@ # this could probably just be apply, but keep the old one for tcl plugins that # might use apply for "stretch" -proc ::dialog_font::radio_apply {mytoplevel myfontsize} { +proc ::dialog_font::do_apply {mytoplevel myfontsize stretchval whichstretch} { if {$mytoplevel eq ".pdwindow"} { foreach font [font names] { font configure $font -size $myfontsize } if {[winfo exists ${mytoplevel}.text]} { - ${mytoplevel}.text.internal configure -font "-size $myfontsize" + set font [lindex [${mytoplevel}.text.internal cget -font] 0] + if { ${font} eq {} } { + set font $::font_family + } + ${mytoplevel}.text.internal configure -font [list $font $myfontsize] + } + catch { + ttk::style configure Treeview -rowheight [expr {[font metrics TkDefaultFont -linespace] + 2}] } # repeat a "pack" command so the font dialog can resize itself @@ -39,7 +46,16 @@ ::pd_guiprefs::write menu-fontsize "$myfontsize" } else { - pdsend "$mytoplevel font $myfontsize 0 2" + pdsend "$mytoplevel font $myfontsize $stretchval $whichstretch" + pdsend "$mytoplevel dirty 1" + } +} + +proc ::dialog_font::radio_apply {mytoplevel myfontsize} { + variable fontsize + if {$myfontsize != $fontsize} { + set fontsize $myfontsize + ::dialog_font::do_apply $mytoplevel $myfontsize 0 2 } } @@ -51,31 +67,18 @@ if {$stretchval == ""} { set stretchval 100 } + if {$stretchval == 100} { + return + } pdsend "$gfxstub font $fontsize $stretchval $whichstretch" + pdsend "$gfxstub dirty 1" } } proc ::dialog_font::apply {mytoplevel myfontsize} { - if {$mytoplevel eq ".pdwindow"} { - foreach font [font names] { - font configure $font -size $myfontsize - } - if {[winfo exists ${mytoplevel}.text]} { - ${mytoplevel}.text.internal configure -font "-size $myfontsize" - } - - # repeat a "pack" command so the font dialog can resize itself - if {[winfo exists .font]} { - pack .font.buttonframe -side bottom -fill x -pady 2m - } - - ::pd_guiprefs::write menu-fontsize "$myfontsize" - - } else { - variable stretchval - variable whichstretch - pdsend "$mytoplevel font $myfontsize $stretchval $whichstretch" - } + variable stretchval + variable whichstretch + ::dialog_font::do_apply $mytoplevel $myfontsize $stretchval $whichstretch } proc ::dialog_font::cancel {gfxstub} { @@ -123,6 +126,7 @@ } else { create_dialog $gfxstub } + .font.fontsize.radio$fontsize select } proc ::dialog_font::create_dialog {gfxstub} { @@ -156,7 +160,6 @@ # this is whacky Tcl at its finest, but I couldn't resist... foreach size $::dialog_font::sizes { radiobutton .font.fontsize.radio$size -value $size -text $size \ - -variable ::dialog_font::fontsize \ -command [format {::dialog_font::radio_apply \ $::dialog_font::canvaswindow %s} $size] pack .font.fontsize.radio$size -side top -anchor w diff -Nru puredata-0.52.1+ds0/tcl/pd_connect.tcl puredata-0.52.2+ds0/tcl/pd_connect.tcl --- puredata-0.52.1+ds0/tcl/pd_connect.tcl 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/tcl/pd_connect.tcl 2022-03-27 22:30:03.000000000 +0000 @@ -34,11 +34,14 @@ } # if pd-gui opens first, it creates socket and requests a port. The function -# then returns the portnumber it receives. pd then connects to that port. -proc ::pd_connect::create_socket {} { - if {[catch {set sock [socket -server ::pd_connect::from_pd -myaddr localhost 0]}]} { - puts stderr "ERROR: failed to allocate port, exiting!" - exit 3 +# then returns the portnumber it receives. pd then connects to that port. If +# portno is nonzero we're specifying the port; this is to allow us to serve a pd +# that is started independently. +proc ::pd_connect::create_socket {portno} { + if {[catch \ + {set sock [socket -server ::pd_connect::from_pd -myaddr localhost $portno]}]} { + puts stderr "ERROR: failed to allocate port $portno, exiting!" + exit 3 } return [lindex [fconfigure $sock -sockname] 2] } diff -Nru puredata-0.52.1+ds0/tcl/pd_deken.tcl puredata-0.52.2+ds0/tcl/pd_deken.tcl --- puredata-0.52.1+ds0/tcl/pd_deken.tcl 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/tcl/pd_deken.tcl 2022-03-27 22:30:03.000000000 +0000 @@ -1767,7 +1767,7 @@ set installdir [::deken::ensure_installdir "" ${filename}] if { "${installdir}" == "" } { ::deken::utilities::debug [format [_ "Cancelling download of %s: No installation directory given." ] $filename] - ::deken::status [format [_ "Installing to non-existant directory failed" ] $filename] + ::deken::status [format [_ "Installing to non-existent directory failed" ] $filename] return } set fullpkgfile [file join $installdir $filename] diff -Nru puredata-0.52.1+ds0/tcl/pd-gui.tcl puredata-0.52.2+ds0/tcl/pd-gui.tcl --- puredata-0.52.1+ds0/tcl/pd-gui.tcl 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/tcl/pd-gui.tcl 2022-03-27 22:30:03.000000000 +0000 @@ -499,7 +499,7 @@ ::pdwindow::verbose 0 "using font: $::font_family $::font_weight\n" } -# finds sizes of the chosen font that just fit into the requried metrics +# finds sizes of the chosen font that just fit into the required metrics # e.g. if the metric requires the 'M' to be 15x10 pixels, # and the given font at size 12 is 15x7 and at size 16 it is 19x10, # then we would pick size 12. @@ -779,7 +779,12 @@ proc load_startup_plugins {} { # load built-in plugins load_plugin_script [file join $::sys_guidir pd_deken.tcl] - load_plugin_script [file join $::sys_guidir pd_docsdir.tcl] + + if { $::port > 0 && $::host ne "" } { } else { + # only run the docsdir plugin if Pd is started via the GUI + # (to prevent a dialog from popping up on systems without keyboard/mouse) + load_plugin_script [file join $::sys_guidir pd_docsdir.tcl] + } # load other installed plugins foreach pathdir [concat $::sys_temppath $::sys_searchpath $::sys_staticpath] { @@ -822,12 +827,18 @@ init_for_platform # ::host and ::port are parsed from argv by parse_args - if { $::port > 0 && $::host ne "" } { - # 'pd' started first and launched us, so get the port to connect to - ::pd_connect::to_pd $::port $::host + if { $::port > 0 } { + if { $::host ne "" } { + # 'pd' started a server and launched us, so connect to it as client + ::pd_connect::to_pd $::port $::host + } else { + # wait for a client 'pd' to connect to us; we're the server + # to do this, invoke as "pd-gui.tcl :1234" and start pd separately. + ::pd_connect::create_socket $::port + } } else { # the GUI is starting first, so create socket and exec 'pd' - set ::port [::pd_connect::create_socket] + set ::port [::pd_connect::create_socket 0] set pd_exec [file join [file dirname [info script]] ../bin/pd] set ::pd_startup_args \ [string map {\{ "" \} ""} $::pd_startup_args] diff -Nru puredata-0.52.1+ds0/tcl/pd_menucommands.tcl puredata-0.52.2+ds0/tcl/pd_menucommands.tcl --- puredata-0.52.1+ds0/tcl/pd_menucommands.tcl 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/tcl/pd_menucommands.tcl 2022-03-27 22:30:03.000000000 +0000 @@ -232,6 +232,11 @@ proc ::pd_menucommands::menu_aboutpd {} { set versionstring "Pd $::PD_MAJOR_VERSION.$::PD_MINOR_VERSION.$::PD_BUGFIX_VERSION$::PD_TEST_VERSION" set filename "$::sys_libdir/doc/1.manual/1.introduction.txt" + if {![file exists $filename]} { + ::pdwindow::error [format [_ "ignoring '%s': doesn't exist"] $filename] + ::pdwindow::error "\n" + #return + } if {[winfo exists .aboutpd]} { wm deiconify .aboutpd raise .aboutpd @@ -248,14 +253,20 @@ pack .aboutpd.text -side left -fill both -expand 1 bind .aboutpd <$::modifier-Key-w> "destroy .aboutpd" - set textfile [open $filename] - while {![eof $textfile]} { - set bigstring [read $textfile 1000] - regsub -all PD_BASEDIR $bigstring $::sys_libdir bigstring2 - regsub -all PD_VERSION $bigstring2 $versionstring bigstring3 - .aboutpd.text insert end $bigstring3 + if { [catch { + set textfile [open $filename] + while {![eof $textfile]} { + set bigstring [read $textfile 1000] + regsub -all PD_BASEDIR $bigstring $::sys_libdir bigstring2 + regsub -all PD_VERSION $bigstring2 $versionstring bigstring3 + .aboutpd.text insert end $bigstring3 + } + close $textfile + } stderr ] } { + ::pdwindow::error [format [_ "couldn't read \"%s\" document" ] [_ "About Pd" ] ] + ::pdwindow::error "\n\t$stderr\n" + destroy .aboutpd } - close $textfile } } diff -Nru puredata-0.52.1+ds0/tcl/pdwindow.tcl puredata-0.52.2+ds0/tcl/pdwindow.tcl --- puredata-0.52.1+ds0/tcl/pdwindow.tcl 2021-12-19 23:22:59.000000000 +0000 +++ puredata-0.52.2+ds0/tcl/pdwindow.tcl 2022-03-27 22:30:03.000000000 +0000 @@ -413,15 +413,13 @@ label .pdwindow.header.ioframe.iostate \ -text [_ "Audio off"] -borderwidth 1 \ -background lightgray -foreground black \ - -takefocus 0 \ - -font {$::font_family -14} + -takefocus 0 # DIO error label label .pdwindow.header.ioframe.dio \ -text [_ "Audio I/O error"] -borderwidth 1 \ -background lightgray -foreground lightgray \ - -takefocus 0 \ - -font {$::font_family -14} + -takefocus 0 pack .pdwindow.header.ioframe.iostate .pdwindow.header.ioframe.dio \ -side top @@ -450,7 +448,7 @@ frame .pdwindow.tcl -borderwidth 0 pack .pdwindow.tcl -side bottom -fill x # TODO this should use the pd_font_$size created in pd-gui.tcl - text .pdwindow.text -relief raised -bd 2 -font {$::font_family 10} \ + text .pdwindow.text -relief raised -bd 2 -font [list $::font_family 10] \ -highlightthickness 0 -borderwidth 1 -relief flat \ -yscrollcommand ".pdwindow.scroll set" -width 60 \ -undo false -autoseparators false -maxundo 1 -takefocus 0