A newer version of Max is available. Click here to access the latest version of this document.

bag

Store a collection of numbers

Description

You can add to or delete an integer from a bag, clear it, or ask for its contents. bag with any argument maintains multiple entries with the same item; with no argument it holds only one of each.

Arguments

Name Type Opt Description
duplicate-flag symbol opt The presence of any non-numerical argument causes the bag to store duplicate numbers. If there is no argument, bag will store only one of each number at a time. The argument must not be a number.

Messages

bang In left inlet: Causes bag to send all its numbers out the outlet.
int input [int]
In left inlet: The number is either added to or deleted from the collection of numbers stored in the bag object, depending on the number in the right inlet.

In right inlet: The number is stored as an indicator of whether to include or delete the next number received in the left inlet. If non-zero, the number received in the left inlet is added to the bag. If 0, the number is deleted from the bag.

No output is triggered by a number received in either inlet.
  (inlet1) include/exclude-flag (0 or non-zero) [int]
In right inlet: The number is stored as an indicator of whether to include or delete the next number received in the left inlet. If non-zero, the number received in the left inlet is added to the bag. If 0, the number is deleted from the bag.

No output is triggered by a number received in either inlet.
float input [float]
Converted to int.
clear In left inlet: Deletes the entire contents of the bag.
cut In left inlet: Sends out the oldest (earliest received) number stored in the bag object, and deletes it from the bag.
length In left inlet: Reports how many numbers are currently stored in the bag.
send receive-name [list]
In left inlet: The word send, followed by the name of a receive object, sends the result of a bang message to all receive objects with that name, instead of out the bag object's outlet.
list input [list]
Any list composed of two numbers behaves as though the first list item was sent to the left inlet and the second list item was sent to the right inlet. If the second element of the list is a non-zero number, the number is added to the collection.

Information for box attributes common to all objects

Output

int: When bang is received in the left inlet, all the numbers stored in bag are sent out one at a time, in reverse order from that in which they were stored.

When cut is received in the left inlet, the oldest stored number is sent out.

When length is received in the left inlet, the number of items in the bag object is sent out.

Examples

Store a collection of numbers........ Used here to detect held notes

See Also

Name Description
coll Store and edit a collection of different messages
funbuff Store x,y pairs of numbers together
offer Store x,y pairs of numbers temporarily