Views
Here are my attempts at defining Pd's data types. I do not attempt to define "bang" or "pointer" since I think the current definitions are clear enough.
Basic Data Types
These are the basic data types of Pd. Each one has a distinct behavior and therefore should be classified as a distinct type so that people can clearly talk about what's happening in a Pd program.
- atom
- the most basic unit of data in a message. They are usually delineated by white space.
- numeric atom
- any element which is a functional representation of a number. In Pd, a numeric atom is the same as a float, they can be used interchangeably.
- symbolic atom
- any atom which is not a functional representation of a number, usually in the form of words
- pointer atom
- a position pointer to a
struct - signal
- numeric data processed at the audio rate
- gemlist
- numeric data processed at the message rate used between Gem objects.
- pdp packet
- numeric data processed at the message rate used between PDP objects.
- gridflow grid
- a matrix of data
Messages
Messages are any series of atoms passed to an object. Every message has a "selector" followed by any number of arguments.
- selector
- The selector is a symbolic atom, which is a non-numeric string with no white space, semicolons, or commas. In the case of messages whose first element is a numeric atom, the selector is implied.
Data Structures
These structures are made up from the basic data types. They can be broken down into elements of the above types.
- bang
- a bang is any message that has a selector "bang".
- float
- a float is a two atom series where the first atom is the "float" selector and the second atom is a numeric atom. Can be used interchangeably with messages that are just a numeric atom.
- symbol
- a symbol is a two atom series where the first element is the "symbol" selector and the second element is a symbolic atom. Any series with a selector of "symbol" with more than two atom is automatically converted to a symbol by truncating all other atom except the "symbol" selector and the second atom.
- comma
- a comma has a special meaning in Pd, therefore its also an atom
- semi-colon
- a semi-colon has a special meaning in Pd, therefore its also an atom
- dollar
- don't know how to define this
- dollarg
- don't know how to define this
- list
- a series of 2 or more atoms whose first atom is either the selector "list", or a numeric atom, which causes the "list" selector to be implied. A 0-atom list is a bang, a 1-atoms list is either a float or a symbol. Are there any exceptions where a 0- or 1-element lists actually exists? I suppose only in a message box.
- selector series
- a series of 2 or more elements whose first atom is neither the selector "list" nor a numeric atom.
- array
- an array is a series of numeric atoms with a graphical representation
- struct
- an