From 36cd7fbda4b3ee47eaa0867a9a4dd9f062e4421f Mon Sep 17 00:00:00 2001 From: Albert Graef Date: Sun, 6 Aug 2023 09:44:42 +0200 Subject: [PATCH] Update Debian files from IOhannes latest package. --- debian/README.source | 45 ------ debian/changelog | 86 ++++++++++ debian/compat | 1 - debian/control | 40 +++-- debian/control.in | 29 ---- debian/copyright | 15 +- debian/copyright_hints | 234 +++++++++++++++------------ debian/docs | 3 +- debian/git-tuneclone.sh | 35 ---- debian/install | 4 - debian/patches/cross-building.patch | 26 +++ debian/patches/format-security.patch | 22 --- debian/patches/pd-lib-builder.patch | 19 +++ debian/patches/series | 3 +- debian/rules | 63 ++++---- debian/salsa-ci.yml | 4 + debian/source/local-options | 2 - debian/upstream/metadata | 5 + debian/watch | 11 +- 19 files changed, 352 insertions(+), 295 deletions(-) delete mode 100644 debian/README.source delete mode 100644 debian/compat delete mode 100644 debian/control.in delete mode 100755 debian/git-tuneclone.sh delete mode 100644 debian/install create mode 100644 debian/patches/cross-building.patch delete mode 100644 debian/patches/format-security.patch create mode 100644 debian/patches/pd-lib-builder.patch create mode 100644 debian/salsa-ci.yml delete mode 100644 debian/source/local-options create mode 100644 debian/upstream/metadata diff --git a/debian/README.source b/debian/README.source deleted file mode 100644 index e5e0abc..0000000 --- a/debian/README.source +++ /dev/null @@ -1,45 +0,0 @@ -Building this package for Debian --------------------------------- - -This source package need no special handling for normal package builds. - - -Developing this package for Debian ----------------------------------- - -This package uses CDBS as the build system and git for maintainance. -NMUs need not (but are encouraged to) make special use of these tools. -In particular, the debian/control.in file can be completely ignored. - -For a quick start, see - http://wiki.debian.org/CDBS+git-buildpackage - - -editing debian/control ----------------------- -Please note, that we would welcome it if you do NOT modify debian/control -directly, as this file will be generated from debian/control.in using CDBS. -Therefore you ought to change debian/control.in and trigger a re-creation of -debian/control using: -$ DEB_MAINTAINER_MODE=1 dpkg-buildpackage -rfakeroot - - -- IOhannes m zmoelnig Thu, 04 Aug 2011 17:10:99 +0200 - - -git-tuneclone.sh ----------------- - -This package comes with a script 'debian/git-tuneclone.sh'. -Running it after a fresh clone of the packaging repository -will fine-tune your local copy, namely: -- make git ignore any .pc/ directory (created by quilt) -- enable the "-follow-tags" when running 'git-push', so it's harder - to forget to push packaging tags along with the branches. -- do an initial checkout of the 3 packaging branches (master, pristine-tar, - upstream) -The script only needs to run once (though running it multiple times shouldn't -matter). -You are of course free to *not* run the script, if you prefer. - - -- IOhannes m zmölnig (Debian/GNU) Tue, 11 Nov 2015 11:11:03 +0100 - diff --git a/debian/changelog b/debian/changelog index 6f7ba0f..5bca246 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,89 @@ +pd-lua (0.11.6+ds1-1) unstable; urgency=medium + + * New upstream version 0.11.6+ds1 + + Drop obsolete patches + + Switch buildsystem to pd-lib-builder + + Add patch for cross-building + + B-D on liblua5.4-dev + * Build for both single and double-precision Pd + * Repack upstream sources + + Exclude repository config from source tarball + + Exclude generated documentation + + Add '+ds' repacksuffix + * Update upstream information + + Update upstream contact + + Watch new upstream repository + * Update copyright information + + Update d/copyright + + Exclude binary files from 'licensecheck' + + Re-generate d/copyright_hints + * Apply 'wrap-and-sort -ast' + * Bump standards version to 4.6.2 + + -- IOhannes m zmölnig (Debian/GNU) Wed, 05 Jul 2023 15:02:17 +0200 + +pd-lua (0.7.3-6) unstable; urgency=medium + + * Modernize 'licensecheck' target + + Ensure that 'licensecheck' is run with the C.UTF-8 locale + + Exclude debian/ from 'licensecheck' + + Re-generate d/copyright_hints + + -- IOhannes m zmölnig (Debian/GNU) Wed, 07 Dec 2022 10:47:01 +0100 + +pd-lua (0.7.3-5) unstable; urgency=medium + + * Apply "warp-and-sort -ast" + * Bump standards version to 4.6.1 + + -- IOhannes m zmölnig (Debian/GNU) Sun, 04 Sep 2022 13:55:19 +0200 + +pd-lua (0.7.3-4) unstable; urgency=medium + + [ Debian Janitor ] + * Set upstream metadata fields: Archive, Bug-Database, Bug-Submit, + Repository, Repository-Browse. + + [ IOhannes m zmölnig (Debian/GNU) ] + * Add salsa-ci configuration + * Bump dh-compat to 13 + * Bump standards version to 4.5.0 + + -- IOhannes m zmölnig (Debian/GNU) Wed, 19 Aug 2020 21:48:05 +0200 + +pd-lua (0.7.3-3) unstable; urgency=medium + + [ Ondřej Nový ] + * Use debhelper-compat instead of debian/compat + + [ IOhannes m zmölnig ] + * Fix FTCBFS + + Supply pkg-config from dpkg's buildtools.mk + + Don't strip during make install. + Thanks to Helmut Grohne (Closes: #930944) + * Declare that building this package doesn't require "root" powers + * Remove obsolete d/source/local-options + * Bump dh compat to 12 + * Bump standards version to 4.4.0 + + -- IOhannes m zmölnig (Debian/GNU) Wed, 11 Sep 2019 15:40:38 +0200 + +pd-lua (0.7.3-2) unstable; urgency=medium + + * Switched buildsystem from dh to cdbs + * Bumped dh compat to 11 + * Enabled hardening + * Fixed spelling of 'Lua' + * Updated Vcs-* stanzas to salsa.d.o + * Updated maintainer address + * Switched URLs to https:// + * Removed obsolete d/git-tuneclone.sh + * Dropped d/README.source from docs + * Updated d/copyright_hints + * Bumped standards version to 4.1.3 + + -- IOhannes m zmölnig (Debian/GNU) Thu, 01 Feb 2018 23:19:43 +0100 + pd-lua (0.7.3-1) unstable; urgency=medium * Imported Upstream version 0.7.3 diff --git a/debian/compat b/debian/compat deleted file mode 100644 index 7f8f011..0000000 --- a/debian/compat +++ /dev/null @@ -1 +0,0 @@ -7 diff --git a/debian/control b/debian/control index 0d38675..a193c52 100644 --- a/debian/control +++ b/debian/control @@ -1,32 +1,40 @@ Source: pd-lua Priority: optional -Maintainer: Debian Multimedia Maintainers -Uploaders: IOhannes m zmölnig (Debian/GNU) -Build-Depends: cdbs (>= 0.4.91~), - debhelper, - dh-buildinfo, +Maintainer: Debian Multimedia Maintainers +Uploaders: + IOhannes m zmölnig (Debian/GNU) , +Build-Depends: + debhelper-compat (= 13), devscripts, + dh-buildinfo, + dh-sequence-pd-lib-builder, + liblua5.4-dev, pkg-config, - liblua5.2-dev, - puredata-dev | puredata -Standards-Version: 3.9.6 +Standards-Version: 4.6.2 Section: sound -Homepage: http://download.puredata.info/pdlua -Vcs-Git: https://anonscm.debian.org/git/pkg-multimedia/pd-lua.git -Vcs-Browser: https://anonscm.debian.org/cgit/pkg-multimedia/pd-lua.git +Homepage: https://download.puredata.info/pdlua +Vcs-Git: https://salsa.debian.org/multimedia-team/pd/pd-lua.git +Vcs-Browser: https://salsa.debian.org/multimedia-team/pd/pd-lua +Rules-Requires-Root: no Package: pd-lua Architecture: any -Depends: ${shlibs:Depends}, +Depends: + pd-libdir, ${misc:Depends}, - puredata | pd -Description: lua bindings for Pure Data + ${puredata:Depends}, + ${shlibs:Depends}, +Recommends: + ${puredata:Recommends}, +Suggests: + ${puredata:Suggests}, +Description: Lua bindings for Pure Data pd-lua adds a new loader to Pure Data (Pd), that allows one to load - objectclasses written in the popular lua programming language. + objectclasses written in the popular Lua programming language. . Some programming problems are complicated to express in graphical dataflow languages like Pd, requiring the user to ressort to objectclasses written in more general purpose languages. For those who do not want to use compiled languages like C/C++, this package offers the possibility to write first-class objectclasses in the lightweight - programming language "lua". + programming language "Lua". diff --git a/debian/control.in b/debian/control.in deleted file mode 100644 index cf4b1e9..0000000 --- a/debian/control.in +++ /dev/null @@ -1,29 +0,0 @@ -Source: pd-lua -Priority: optional -Maintainer: Debian Multimedia Maintainers -Uploaders: IOhannes m zmölnig (Debian/GNU) -Build-Depends: @cdbs@, - pkg-config, - liblua5.2-dev, - puredata-dev | puredata -Standards-Version: 3.9.6 -Section: sound -Homepage: http://download.puredata.info/pdlua -Vcs-Git: https://anonscm.debian.org/git/pkg-multimedia/pd-lua.git -Vcs-Browser: https://anonscm.debian.org/cgit/pkg-multimedia/pd-lua.git - -Package: pd-lua -Architecture: any -Depends: ${shlibs:Depends}, - ${misc:Depends}, - puredata | pd -Description: lua bindings for Pure Data - pd-lua adds a new loader to Pure Data (Pd), that allows one to load - objectclasses written in the popular lua programming language. - . - Some programming problems are complicated to express in graphical - dataflow languages like Pd, requiring the user to ressort to objectclasses - written in more general purpose languages. - For those who do not want to use compiled languages like C/C++, this package - offers the possibility to write first-class objectclasses in the lightweight - programming language "lua". diff --git a/debian/copyright b/debian/copyright index be74a0d..bb25ba7 100644 --- a/debian/copyright +++ b/debian/copyright @@ -1,7 +1,11 @@ -Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: pdlua -Upstream-Contact: Martin Peach -Source: https://svn.code.sf.net/p/pure-data/svn/trunk/externals/loaders/pdlua +Upstream-Contact: Albert Gräf +Source: https://github.com/agraef/pd-lua/ +Files-Excluded: + .git* + tutorial/pd-lua-intro.html + pdlua/tutorial/pd-lua-intro.pdf Files: * Copyright: @@ -9,10 +13,11 @@ Copyright: 2007, Frank Barknecht 2011-2014, Martin Peach 2014-2016, IOhannes m zmölnig + 2017-2023, Albert Gräf License: GPL-2+ Files: debian/* -Copyright: 2014, IOhannes m zmölnig +Copyright: 2014-2023, IOhannes m zmölnig License: GPL-2+ License: GPL-2+ @@ -30,4 +35,4 @@ Comment: License version 2 can be found in "/usr/share/common-licenses/GPL-2". . You should have received a copy of the GNU General Public License - along with this program. If not, see . \ No newline at end of file + along with this program. If not, see . diff --git a/debian/copyright_hints b/debian/copyright_hints index 9247b1a..773e221 100644 --- a/debian/copyright_hints +++ b/debian/copyright_hints @@ -1,135 +1,167 @@ -Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: FIXME Upstream-Contact: FIXME Source: FIXME -Disclaimer: Autogenerated by CDBS +Disclaimer: Autogenerated by licensecheck Files: Makefile - debian/README.source - debian/compat - debian/control - debian/control.in - debian/docs - debian/gbp.conf - debian/git-tuneclone.sh - debian/install - debian/links - debian/patches/format-security.patch - debian/patches/series - debian/source/format - debian/source/local-options - debian/watch + Makefile.pdlibbuilder doc/Makefile doc/internal.txt doc/lua.txt doc/luax.txt doc/pdlua.tex - examples/complex-help.pd - examples/complex.pd_lua - examples/complex.pd_luax - examples/dispatchertest-help.pd - examples/dispatchertest.pd_lua - examples/dispatchertest.pd_luax - examples/dumptypes.pd_luax - examples/errors-help.pd - examples/errors.pd_lua - examples/ldelay-help.pd - examples/ldelay.pd_lua - examples/ldelay2-help.pd - examples/ldelay2.pd_lua - examples/ldemux-help.pd - examples/ldemux.pd_lua - examples/lexpr-help.pd - examples/lexpr.pd_lua - examples/lfloat2bytes-help.pd - examples/lfloat2bytes.pd_lua - examples/list-pak-help.pd - examples/list-pak.pd_lua - examples/list-unpack-help.pd - examples/list-unpack-test-gem.pd - examples/list-unpack.pd_lua - examples/llist-drip-help.pd - examples/llist-drip.pd_lua - examples/llist-rdrip-help.pd - examples/llist-rdrip.pd_lua - examples/lpipe-help.pd - examples/lpipe.pd_lua - examples/lreceive-help.pd - examples/lreceive.pd_lua - examples/lsend-help.pd - examples/lsend.pd_lua - examples/lsymbol-drip-help.pd - examples/lsymbol-drip.pd_lua - examples/lsymbol2bytes-help.pd - examples/lsymbol2bytes.pd_lua - examples/ltabdump-help.pd - examples/ltabdump.pd_lua - examples/ltabfill-help.pd - examples/ltabfill.pd_lua - examples/ltextfile-drip-help.pd - examples/luametro-help.pd - examples/luametro.pd_lua - examples/lurn-help.pd - examples/lurn.pd_lua - examples/mutatee.pd_lua - examples/mutator-help.pd - examples/mutator.pd_lua - examples/nop-help.pd - examples/nop-test-gem.pd - examples/nop.pd_lua - examples/peekbag-help.pd - examples/peekbag.pd_lua - examples/requirer-help.pd - examples/requirer.pd_lua - examples/revalue-help.pd - examples/revalue.pd_lua - examples/reverb-calculator-help.pd - examples/reverb-calculator.pd_lua - examples/reverb.pd - examples/shared-help.pd - examples/shared.pd_lua - examples/shared.pd_luax - examples/simplecounter-help.pd - examples/simplecounter.pd_lua - examples/simplecounter.pd_luax - examples/swarm-help.pd - examples/swarm.pd_lua - hello-help.pd - hello.lua - hello.pd_lua - hello.pd_luax pdlua-help.pd pdlua-meta.pd + pdlua/examples/complex-help.pd + pdlua/examples/complex.pd_lua + pdlua/examples/complex.pd_luax + pdlua/examples/dispatchertest-help.pd + pdlua/examples/dispatchertest.pd_lua + pdlua/examples/dispatchertest.pd_luax + pdlua/examples/dumptypes.pd_luax + pdlua/examples/errors-help.pd + pdlua/examples/errors.pd_lua + pdlua/examples/ldelay-help.pd + pdlua/examples/ldelay.pd_lua + pdlua/examples/ldelay2-help.pd + pdlua/examples/ldelay2.pd_lua + pdlua/examples/ldemux-help.pd + pdlua/examples/ldemux.pd_lua + pdlua/examples/lexpr-help.pd + pdlua/examples/lexpr.pd_lua + pdlua/examples/lfloat2bytes-help.pd + pdlua/examples/lfloat2bytes.pd_lua + pdlua/examples/list-pak-help.pd + pdlua/examples/list-pak.pd_lua + pdlua/examples/list-unpack-help.pd + pdlua/examples/list-unpack.pd_lua + pdlua/examples/llist-drip-help.pd + pdlua/examples/llist-drip.pd_lua + pdlua/examples/llist-rdrip-help.pd + pdlua/examples/llist-rdrip.pd_lua + pdlua/examples/lpipe-help.pd + pdlua/examples/lpipe.pd_lua + pdlua/examples/lreceive-help.pd + pdlua/examples/lreceive.pd_lua + pdlua/examples/lsend-help.pd + pdlua/examples/lsend.pd_lua + pdlua/examples/lsymbol-drip-help.pd + pdlua/examples/lsymbol-drip.pd_lua + pdlua/examples/lsymbol2bytes-help.pd + pdlua/examples/lsymbol2bytes.pd_lua + pdlua/examples/ltabdump-help.pd + pdlua/examples/ltabdump.pd_lua + pdlua/examples/ltabfill-help.pd + pdlua/examples/ltabfill.pd_lua + pdlua/examples/ltextfile-drip-help.pd + pdlua/examples/ltextfile-drip.pd_lua + pdlua/examples/luametro-help.pd + pdlua/examples/luametro.pd_lua + pdlua/examples/lurn-help.pd + pdlua/examples/lurn.pd_lua + pdlua/examples/mutatee.pd_lua + pdlua/examples/mutator-help.pd + pdlua/examples/mutator.pd_lua + pdlua/examples/nop-help.pd + pdlua/examples/nop.pd_lua + pdlua/examples/paths-example/hello.txt + pdlua/examples/paths-example/lpaths-help.pd + pdlua/examples/paths-example/lpaths.pd_lua + pdlua/examples/paths-example/subdir/hello.txt + pdlua/examples/paths-example/subdir/lpaths.pd_lua + pdlua/examples/peekbag-help.pd + pdlua/examples/peekbag.pd_lua + pdlua/examples/requirer-help.pd + pdlua/examples/requirer.pd_lua + pdlua/examples/revalue-help.pd + pdlua/examples/revalue.pd_lua + pdlua/examples/reverb-calculator-help.pd + pdlua/examples/reverb-calculator.pd_lua + pdlua/examples/reverb.pd + pdlua/examples/shared-help.pd + pdlua/examples/shared.pd_lua + pdlua/examples/shared.pd_luax + pdlua/examples/simplecounter-help.pd + pdlua/examples/simplecounter.pd_lua + pdlua/examples/simplecounter.pd_luax + pdlua/examples/swarm-help.pd + pdlua/examples/swarm.pd_lua + pdlua/hello-help.pd + pdlua/hello.lua + pdlua/hello.pd_lua + pdlua/hello.pd_luax + pdlua/tutorial/examples/fibs.pd + pdlua/tutorial/examples/fibs.pd_lua + pdlua/tutorial/examples/foo-test-luax.pd + pdlua/tutorial/examples/foo-test.pd + pdlua/tutorial/examples/foo.pd_luax + pdlua/tutorial/examples/loadtest.lua + pdlua/tutorial/examples/loadtest.pd + pdlua/tutorial/examples/luarecv.pd + pdlua/tutorial/examples/luarecv.pd_lua + pdlua/tutorial/examples/luasend.pd + pdlua/tutorial/examples/luasend.pd_lua + pdlua/tutorial/examples/luatab.pd + pdlua/tutorial/examples/luatab.pd_lua + pdlua/tutorial/examples/pd-remote.pd + pdlua/tutorial/examples/tictoc.pd + pdlua/tutorial/examples/tictoc.pd_lua pdluax-help.pd -Copyright: *No copyright* +Copyright: NONE License: UNKNOWN FIXME +Files: tutorial/pd-lua-intro.md +Copyright: Foo software. + Foo software.") +License: CC-BY-SA-4.0 + FIXME + +Files: pdlua/tutorial/examples/pd-remote.el +Copyright: 2023, Albert Graef +License: Expat + FIXME + +Files: COPYING +Copyright: 1989, 1991, Free Software Foundation, Inc. +License: GPL-2 + FIXME + +Files: pdlua/tutorial/examples/pdx.lua +Copyright: 2020, Albert Gräf +License: GPL-2+ + FIXME + Files: README - pdlua.c -Copyright: 2007-2008, Claude Heiland-Allen - 2007-2009, Claude Heiland-Allen +Copyright: 2007-2009, 2013, Claude Heiland-Allen + 2012, Martin Peach martin.peach@sympatico.ca License: GPL-2+ FIXME Files: pd.lua Copyright: 2007-2008, Claude Heiland-Allen 2012, Martin Peach martin.peach@sympatico.ca + if nil ~= pd._clocks[c] then License: GPL-2+ FIXME -Files: debian/rules -Copyright: 2011-2014, IOhannes m zmölnig +Files: pdlua.c +Copyright: 2007-2008, Claude Heiland-Allen + class_addmethod(c, (t_method)pdlua_menu_open, gensym("menu-open"), A_NULL); (mrpeach 20111025) + clock_unset(c->clock); License: GPL-2+ FIXME -Files: COPYING -Copyright: 1989, 1991 Free Software Foundation, Inc -License: GPL-ever +Files: pdlua/tutorial/examples/foo.pd_lua +Copyright: Foo software.") +License: UNKNOWN FIXME -Files: examples/ltextfile-drip.pd_lua -Copyright: .. "_") end +Files: tutorial/pd-lua-intro.html +Copyright: Foo software.")
This will print the message just once, right after the first foo object is created. There's another finalize method which can be used to perform any kind of cleanup when an object gets destroyed. For instance, let's rework our example so that it keeps track of the actual number of foo objects, and prints an additional message when the last foo object is deleted. To these ends, we turn foo.init into a counter which keeps track of the number of foo objects:

Lua errors

We all make mistakes. It's inevitable that you'll run into errors in the Lua code you wrote, so let's finally discuss how those mishaps are handled. Pd-Lua simply reports errors from the Lua interpreter in the Pd console. For instance, suppose that we mistyped pd.post as pd_post in the code for the one-time welcome message above. You'll see an error message like this in the console:
In this case the error happened in the initialize method, so the object couldn't actually be created, and you will have to correct the typo before going on. Fortunately, the message tells us exactly where the error occurred, so we can fix it easily. Syntax errors anywhere in the script file will be caught and handled in a similar fashion.Runtime errors in inlet methods, on the other hand, will allow your objects to be created and to start executing; they just won't behave as expected and cause somewhat cryptic errors to be printed in the console. For instance, let's suppose that you forgot the curly braces around the float value in self:outlet (a fairly common error), so that the method reads:
Lua is a dynamically-typed language, so this little glitch becomes apparent only when you actually send a bang message to the object, which causes the following errors to be logged in the console:
Ok, so the first message tells us that somewhere Pd-Lua expected a table but got a non-table value. The second message actually comes from the C routine deep down in the bowls of Pd-Lua which does the actual output to an outlet. If you see that message, it's a telltale sign that you tried to output an atom not properly wrapped in a Lua table, but it gives no indication of where that happened either, other than that you can use "Find Last Error" to locate the object which caused the problem.It goes without saying that the Pd-Lua developers could have chosen a better error message there. Well, at least we now have an idea what happened and in which object, but we may then still have to start peppering our code with pd.post calls in order to find (and fix) the issue.

Inlets and outlets

As we've already seen, the number of inlets and outlets is set with the inlets and outlets member variables in the initialize method of an object. You can set these to any numbers you want, including zero. (In the current implementation, fractional numbers will be truncated to integers, and negative numbers will be treated as zero. If the variables aren't set at all, they also default to zero.)

Inlets

Let's have a look at the inlets first. Pd-Lua supports a number of different forms of inlet methods which enable us to process any kind of Pd message. In the following list, "1" stands for any literal inlet number (counting the inlets from left to right, starting at 1), and "sym" for any symbol denoting either one of the predefined Pd message types (bang, float, symbol, pointer, and list), or any other (selector) symbol at the beginning of a Pd meta message. Note that, as usual, in your code these methods are always prefixed with the class name, using Lua colon syntax.
  • in_1_sym(...) matches the given type or selector symbol on the given inlet; the method receives zero or one arguments (denoted ... here), depending on the selector symbol sym, see below
  • in_n_sym(n, ...) (with a verbatim "n" replacing the inlet number) matches the given type or selector symbol on any inlet; the actual inlet number is passed as the first argument (denoted n here), along with the zero or one extra arguments ... which, like above, depend on the selector symbol sym
  • in_1(sel, atoms) matches any type or selector symbol on the given inlet; the type or selector symbol is passed as a string sel, and the remaining arguments of the message are passed as a Lua table atoms containing number and string values
  • in_n(n, sel, atoms) matches any type or selector symbol on any inlet; the method is invoked with the inlet number n along with type/selector symbol sel and the remaining message arguments in the Lua table atoms
These alternatives are tried in the indicated order, i.e., from most specific to most general. In addition, Pd-Lua understands the following specific sym type selectors and adjusts the number and type of the extra ... arguments accordingly:
  • bang denotes a bang message and passes no arguments
  • float denotes a Pd float value, which is passed as a number argument
  • symbol denotes a Pd symbol, which is passed as a string argument
  • pointer denotes a Pd pointer, which is passed as a Lua userdata argument
  • list denotes a Pd list, which is passed as a Lua table argument containing all the list elements
  • any other sym value is taken as a literal Pd symbol to be matched against the selector symbol of the incoming message; the remaining arguments of the message are passed as a Lua table argument
Note that there can only be zero or one additional arguments in this case (besides the inlet number for in_n_sym). In contrast, the two most generic kinds of methods, in_1 and in_n, always have the type/selector symbol sel (a string) and the remaining message arguments atoms (a Lua table) as arguments.Among these, the methods for bang, float, and list are probably the most frequently used, along with in_1 or in_n as a catch-all method for processing any other kind of input message. We've already employed the in_1_bang method in our basic example above. Here are some (rather contrived) examples for the other methods; we'll see some real examples of some of these later on.