-- MySQL dump 10.11
--
-- Host: localhost    Database: pure-data
-- ------------------------------------------------------
-- Server version	5.0.51a-3ubuntu5.4

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `object`
--

DROP TABLE IF EXISTS `object`;
SET @saved_cs_client     = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `object` (
  `idx` int(11) NOT NULL auto_increment,
  `name` varchar(127) collate utf8_unicode_ci NOT NULL,
  `synonym` varchar(127) collate utf8_unicode_ci NOT NULL,
  `tiny_desc` varchar(255) collate utf8_unicode_ci NOT NULL,
  `long_desc` text collate utf8_unicode_ci NOT NULL,
  `type` varchar(255) collate utf8_unicode_ci NOT NULL,
  `inlets` varchar(127) collate utf8_unicode_ci NOT NULL,
  `outlets` varchar(127) collate utf8_unicode_ci NOT NULL,
  `arguments` text collate utf8_unicode_ci NOT NULL,
  `methods` varchar(255) collate utf8_unicode_ci NOT NULL,
  `in_methods` text collate utf8_unicode_ci NOT NULL,
  `out_methods` text collate utf8_unicode_ci NOT NULL,
  `arg_methods` text collate utf8_unicode_ci NOT NULL,
  `helpname` varchar(255) collate utf8_unicode_ci NOT NULL,
  `see_also` varchar(255) collate utf8_unicode_ci NOT NULL,
  `library` varchar(255) collate utf8_unicode_ci NOT NULL,
  `maintainer` varchar(255) collate utf8_unicode_ci NOT NULL,
  `url` varchar(255) collate utf8_unicode_ci NOT NULL,
  PRIMARY KEY  (`idx`)
) ENGINE=MyISAM AUTO_INCREMENT=195 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
SET character_set_client = @saved_cs_client;

--
-- Dumping data for table `object`
--

LOCK TABLES `object` WRITE;
/*!40000 ALTER TABLE `object` DISABLE KEYS */;
INSERT INTO `object` VALUES (1,'bang','b','output a bang message','SEND \"BANG\" MSSESSAGE. Outputs a \"bang\" message whatever it receives.','GLUE','1','1','','<anything> <bang>','1 <anything>','1 <bang>','','bang','loadbang','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(2,'float','f','store and recall a number','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.','GLUE','2','1','1 <float>(initial value)','<float> <bang>','1 <bang> <float>\r\n2 <float>','1 <float>','','float','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(3,'symbol','s','store and recall a symbol','The symbol object stores a symbol, initialized by its creation argument, which may be reset using its inlet and output by sending it the \"bang\" message. Sending a symbol sets a new value and outputs it.','GLUE','2','1','1 <symbol>(initial value)','<symbol> <bang>','1 <bang>(output stored value),  \r\n<symbol>(store and output value)\r\n2 <symbol>(store)','1 <symbol>','','nohelp','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(4,'int','i','store and recall an integer','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. The output is truncated to an integer ala Max.','GLUE','2','1','1 <int>(initial value)','<int> <float> <bang>','1 <float>(store and output), <bang>(output)\r\n2 <float>(store) ','1 <float>','','int','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(5,'send','s','send a message to a named object','\"Send\" sends messages to \"receive\" objects. Sends and receives are named to tell them whom to connect to. They work across windows too.','GLUE','1','','<symbol>(name of receive pair)','<anything>','1 <anything>(item to send)','','','send','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(7,'select','sel','test for matching numbers or symbols','In its simplest form shown below, Select checks its input agains the constant \"6\". If they match, the first outlet gives \"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. You can give several arguments. You get an outlet for each test value and finally an outlet for values which match none of them.','GLUE','2','1+n','n <symbol>||<float>(value checked against)','<symbol> <float> <bang>','1 <symbol>||<float>(value to check)\r\n2 <symbol>||<float>(value checked against)','n <bang>(matched value)\r\nn+1 <float>||<symbol>(non-match returned) ','','select','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(8,'route','','route messages according to first element','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.)\r\n\r\nIf a match is found, the rest of the message appears on the corresponding outlet. If no match, the message is repeated to the last \"rejection\" outlet. The number of outlets is the number of arguments plus one.','GLUE','1','n+1','n <symbol>(value to route)\r\n','<list> <symbol> <float> <bang> <anything>','1 <list>||<symbol>||<float>||<bang>(message to check)','n <list>||<symbol>||<float>||<bang>(successful match, output remaining elements of message)\r\nn+1','','route','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(6,'receive','r','catch \"sent\" messages','\"Receive\" outputs messages sent via \"send.\" Sends and receives are named to tell them whom to connect to. They work across windows too.','GLUE','','1','1 <symbol>(name of send pair)','<anything>','','1 <anything>(items received)','','receive','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(9,'pack','','make compound messages','The pack object takes a series of inputs and outputs a concatenated list. The number of creation arguments determines the number of inlets. The pack object takes a series of inputs and outputs a concatenated list. The number of creation arguments determines the number of inlets. \r\nA number in first inlet generates output. A bang generates output without resetting first value. Numbers and symbols in the corresponding inlets change the values without causing output (see \"trigger\" for a way to change this behavior.) Creation arguments specify the number of inlets and their types: a number make a numeric outlet (and initializes the value). A symbol argument can start with \"s\", \"f\", or \"p\" to specify a \"symbol\", \"float\" (number), or pointer outlet.\r\n','GLUE','n','1','n <symbol>(f = float, s = symbol, p = pointer)','<list> <float> <pointer> <bang> <symbol>','1 <bang>(generate output), <symbol>||<float>||<pointer>(value to concatenate)\r\nn+1 <symbol>||<float>||<pointer>(value to concatenate)','1 <list>(list of atoms)','','pack','[unpack]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(10,'unpack','','get elements of compound messages','unpack takes lists of atoms and distributes them to its outlets. The creation arguments specify float (any number or the symbol \'f\'), pointer (symbol \'p\') or symbol (symbol \'s\').','GLUE','1','n','n <symbol>(f = float, s = symbol, p = pointer)','<list> <float> <pointer> <bang> <symbol>','1 <list>(compound list of atoms)','n <symbol>||<float>||<pointer>(list element)','','unpack','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(11,'trigger','t','sequence and convert messages','The trigger object outputs its input from right to left, converting to the types indicated by its creation arguments. There is also a \"pointer\" argument type (see the pointer object.) note: \"anythings\" can only be converted to bang.','GLUE','1','n','n float || bang || symbol || list || anything || pointer','<float> bang <symbol> <list> <anything> <pointer>','1 <float> || bang || <symbol> || <list> || <anything> || <pointer>;','n <float> || bang || <symbol> || <list> || <anything> || <pointer> (output datatype based on argument in right to left order)','','trigger','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(12,'spigot','','interruptible message connection','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. Optional arg sets the initial state (0 by default)','GLUE','2','1','1 <bool>(initial state)','<anything>','1 <anything>;\r\n2 <bool>(toggle passage);','1 <anything>;','','','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(13,'moses','','part a numeric stream','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.','GLUE','2','2','<float>(initialize control value)','<float>','1 <float>(input stream);\r\n2 <float>(control value);','1 <float>(less than control value)\r\n2 <float>(equal or greater than control value)','','moses','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(14,'until','','looping mechanism','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. WARNING: if you bang an \"until\" which doesn\'t have a stopping mechanism, Pd goes into an infinite loop!','GLUE','2','1','','bang <float>','1 bang(start itteration), <float>(start itteration limited to n itterations);\r\n2 bang(stop loop);','1 bang(continuous stream of \'bang\'s);','','until','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(15,'print','','print out messages','Print prints out the messages it receives on the \"terminal window\" that Pd is run from. Long symbol arguments are truncated to 78 characters and marked with \"*\" (but message selectors are printed in full.)','GLUE','1','','1 <symbol>(label printed messages)','<anything>','1 <anything>(data stream to print)','','','print','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(16,'makefilename','','format a symbol with a variable field','The Makefilename object generates 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 putting \"%d\" or \"%s\" in the string. If you put \"%s\" in the string be sure to send it a symbol and vice versa... there\'s no checking.','GLUE','1','1','1 <symbol>(formated symbol)','<symbol> <float> set','1 list{set <symbol>}(set formatted symbol), <symbol>(symbol to replace \'%s\'), <float>(number to replace \'%d\');','1 <symbol>(output formatted symbol)','','makefilename','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(17,'change','','remove repeated numbers from a stream','The change object outputs its input only when it changes. You can \"set\" the current value, or bang to force output.','GLUE','1','1','1 <float>(initial value)','<float> set','1 <bang>(output current value), <float>(output value if different and set current value), list{set <float>}(set current value without outputting);','1 <float>(output changes in stream)','','change','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(18,'swap','','swap two numbers','The swap object stores numbers from its left inlet to output on its right inlet -- after repeating its right hand input out the left.','GLUE','2','2','1 <float>(initial first value)','<float> bang','1 bang(output stored values), <float>(set second value and output);\r\n2 <float>(set first value);','1 <float>(value from right inlet);\r\n2 <float>(value from left inlet);','','swap','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(19,'value','v','shared numeric value','\"Value\" stores a numeric value which is shared between all values with the same name (which need not be in the same Pd window.)','GLUE','1','1','1 <symbol>(global named variable)','<symbol> <float> bang','1 <float>(set variable and output), bang(output global variable);','1 <float>(outputted variable);','','value','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(20,'delay','','send a message after a time delay','The delay object sends a bang to its outlet after a delay in milliseconds specified by its right inlet or its creation argument. Note: sending a bang to a delay which is already set will reschedule its output, cancelling the old one.','TIME','2','1','1 <float>(initial delay time)','<float> bang stop','1 bang(event to delay), stop(cancel pending operation), <float>(schedule delay time and trigger event);\r\n2 <float>(set delay time in msec);','1 bang(delayed event);','','delay','[metro] [timer]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(21,'metro','','send a message periodically','The metro object sends a series of bangs at a constant rate. The right inlet takes the value in milliseconds between each bang. The left inlet takes a 1 or 0, turning the metronome on or off. Creation argument initializes rate in msec','TIME','2','1','','<bool> bang stop <float>','1 bang(start meronome), stop(stop metronome), <bool>(0=start, 1=stop); \r\n2 <float>(tick rate in msec);','bang(tick event);','','metro','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(22,'line','','send a series of linearly stepped numbers','The line object takes (target, time) pairs and slews to the specified target over the time given, updating its output at a \"grain rate\" given by the creation argument. If you dont\' specify a time, line jumps immediately to the target. Note that the inlet does not remember old values (unlike every other inlet in Pd) -- sending a float causes a jump in the output regardless of whatever time value was specified in some previous message. If the line object receives a message specifying some new target before reaching the previous one, it takes off from its current value.\r\nCreation arguments: 1 initial value\r\n2 time grain in milliseconds','TIME','2','1','1 <float>(initial value)\r\n2 <float>(time grain in msec)','<float> set stop','1 <float>(jump to value and output), list{<float> <float>}(target and time pair to ramp and output), stop(cancel pending operation), list{set <float>}(change value without output);\r\n2 <float>(time grain in msec);','1 <float>(ramp output);','','line','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(23,'timer','','measure time intervals','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. 1st inlet reset the timer with a bang message, 2nd inlet gets elapsed time with a bang message','TIME','2','1','','bang <float>','1 bang(reset timer);\r\n2 bang(output elasped time);','1 <float>(elapsed time in msec);','','timer','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(24,'cputime','','measure CPU time','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. 1st inlet rests with bang message, 2nd inlet gets elapsed CPU time, output in milliseconds.','TIME','2','1','','bang <float>','1 bang(reset timer);\r\n2 bang(output elasped CPU time);','1 <float>(elapsed CPU time in msec);','','cputime','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(25,'realtime','','measure real time','The realtime object measures elapsed real time, as measured by your operating system. 1st inlet rests with bang message, 2nd inlet gets elapsed CPU time, output in milliseconds.','TIME','2','1','','bang <float>','1 bang(reset timer);\r\n2 bang(output elasped real time);','1 <float>(elapsed real time in msec);','','realtime','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(26,'pipe','','dynamically growable delay line for numbers','The Pipe object stores a sequence of messages and outputs them after a specified delay time in miliseconds. You can change the delay time as you wish. The outputs are sorted automatically. You can specify compound messages (lists) by adding arguments which set their type and initial value as in \"pack.\" In this case the delay time comes last and is changed by the last inlet. You can also pack symbols and pointers but this feature is UNTESTED. 1st inlet takes a message to store and output, a \'flush\' message outputs the stored messages, a \'clear\' message clears the stored message buffer, 2nd inlet sets the delay time in milliseconds. Creation arguments sets delay time in milliseconds.','TIME','2','1','1 <float>(intialize delay time)','flush clear <float>','1 <float>(number to store and output), flush(output all stored numbers immediately), clear(forget stored numbers);\r\n2 <float>(set delay time in msec);','1 <float>(delayed output);','','pipe','[delay] [timer]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(27,'+','','add - arithmetic','The floating point binary operators are +, -, *, /, pow, max, and min. Note that pow only works for nonnegative mantissas.','MATH','2','1','1 <float>(initial value for right inlet)','<float> bang','1 <float>(set first value and output), bang(output);\r\n2 <float>(set second value);','1 <float>(product of arithmetic);','','operators','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(28,'-','','subtract - arithmetic','The floating point binary operators are +, -, *, /, pow, max, and min. Note that pow only works for nonnegative mantissas.','MATH','2','1','1 <float>(initial value for right inlet)','<float> bang','1 <float>(set first value and output), bang(output);\r\n2 <float>(set second value);','1 <float>(product of arithmetic);','','operators','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(29,'*','','multiply - arithmetic','The floating point binary operators are +, -, *, /, pow, max, and min. Note that pow only works for nonnegative mantissas.','MATH','2','1','1 <float>(initial value for right inlet)','<float> bang','1 <float>(set first value and output), bang(output);\r\n2 <float>(set second value);','1 <float>(product of arithmetic);','','operators','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(30,'/','','divide - arithmetic','The floating point binary operators are +, -, *, /, pow, max, and min. Note that pow only works for nonnegative mantissas.','MATH','2','1','1 <float>(initial value for right inlet)','<float> bang','1 <float>(set first value and output), bang(output);\r\n2 <float>(set second value);','1 <float>(product of arithmetic);','','operators','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(31,'pow','','power - arithmetic','The floating point binary operators are +, -, *, /, pow, max, and min. Note that pow only works for nonnegative mantissas.','MATH','2','1','1 <float>(initial value for right inlet)','<float> bang','1 <float>(set first value and output), bang(output);\r\n2 <float>(set second value);','1 <float>(product of arithmetic);','','operators','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(32,'&','','AND - bitwise operator','relational output is logical- and negative numbers BAD in bitwise logical operators. These operators as defined by C programming language. (inputs and outputs are converted to and from floating point).','MATH','2','1','1 <float>(initial value for right intlet)','<float> bang','1 <float>(set first value and output), bang(output);\r\n2 <float>(set second value);','1 <float>(product of bitwise operation);','','otherbinops','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(33,'|','','OR - bitwise operator','relational output is logical- and negative numbers BAD in bitwise logical operators. These operators as defined by C programming language. (inputs and outputs are converted to and from floating point).','MATH','2','1','1 <float>(initial value for right intlet)','<float> bang','1 <float>(set first value and output), bang(output);\r\n2 <float>(set second value);','1 <float>(product of bitwise operation);','','otherbinops','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(34,'&&','','AND - logical operator','relational output is logical- and negative numbers BAD in bitwise logical operators. These operators as defined by C programming language. (inputs and outputs are converted to and from floating point).','MATH','2','1','1 <float>(initial value for right intlet)','<float> bang','1 <float>(set first value and output), bang(output);\r\n2 <float>(set second value);','1 <float>(product of logical operation);','','otherbinops','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(35,'||','','OR - logical operator','relational output is logical- and negative numbers BAD in bitwise logical operators. These operators as defined by C programming language. (inputs and outputs are converted to and from floating point).','MATH','2','1','1 <float>(initial value for right intlet)','<float> bang','1 <float>(set first value and output), bang(output);\r\n2 <float>(set second value);','1 <float>(product of logical operation);','','otherbinops','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(36,'<<','','left bit shift','relational output is logical- and negative numbers BAD in bitwise logical operators. These operators as defined by C programming language. (inputs and outputs are converted to and from floating point).','MATH','2','1','1 <float>(initial value for right intlet)','<float> bang','1 <float>(set first value and output), bang(output);\r\n2 <float>(set second value);','1 <float>(product of bit shift);','','otherbinops','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(37,'>>','','right bit shift','relational output is logical- and negative numbers BAD in bitwise logical operators. These operators as defined by C programming language. (inputs and outputs are converted to and from floating point).','MATH','2','1','1 <float>(initial value for right intlet)','<float> bang','1 <float>(set first value and output), bang(output);\r\n2 <float>(set second value);','1 <float>(product of bit shift);','','otherbinops','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(38,'>','','greater - relational operator','relational output is logical- and negative numbers BAD in bitwise logical operators. These operators as defined by C programming language. (inputs and outputs are converted to and from floating point).','MATH','2','1','1 <float>(initial value for right intlet)','<float> bang','1 <float>(set first value and output), bang(output);\r\n2 <float>(set second value);','1 <float>(boolean comparrison);','','otherbinops','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(39,'>=','','greater or equal - relational operator','relational output is logical- and negative numbers BAD in bitwise logical operators. These operators as defined by C programming language. (inputs and outputs are converted to and from floating point).','MATH','2','1','1 <float>(initial value for right intlet)','<float> bang','1 <float>(set first value and output), bang(output);\r\n2 <float>(set second value);','1 <float>(boolean comparrison);','','otherbinops','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(40,'==','','equal - relational operator','relational output is logical- and negative numbers BAD in bitwise logical operators. These operators as defined by C programming language. (inputs and outputs are converted to and from floating point).','MATH','2','1','1 <float>(initial value for right intlet)','<float> bang','1 <float>(set first value and output), bang(output);\r\n2 <float>(set second value);','1 <float>(boolean comparrison);','','otherbinops','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(41,'!=','','not equal - relational operator','relational output is logical- and negative numbers BAD in bitwise logical operators. These operators as defined by C programming language. (inputs and outputs are converted to and from floating point).','MATH','2','1','1 <float>(initial value for right intlet)','<float> bang','1 <float>(set first value and output), bang(output);\r\n2 <float>(set second value);','1 <float>(boolean comparrison);','','otherbinops','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(42,'<=','','less or equal - relational operator','relational output is logical- and negative numbers BAD in bitwise logical operators. These operators as defined by C programming language. (inputs and outputs are converted to and from floating point).','MATH','2','1','1 <float>(initial value for right intlet)','<float> bang','1 <float>(set first value and output), bang(output);\r\n2 <float>(set second value);','1 <float>(boolean comparrison);','','otherbinops','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(43,'<','','less - relational operator','relational output is logical- and negative numbers BAD in bitwise logical operators. These operators as defined by C programming language. (inputs and outputs are converted to and from floating point).','MATH','2','1','1 <float>(initial value for right intlet)','<float> bang','1 <float>(set first value and output), bang(output);\r\n2 <float>(set second value);','1 <float>(boolean comparrison);','','otherbinops','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(44,'%','','find remainder - arithmetic','relational output is logical- and negative numbers BAD in bitwise logical operators. These operators as defined by C programming language. (inputs and outputs are converted to and from floating point).','MATH','2','1','1 <float>(initial value for right intlet)','<float> bang','1 <float>(set first value and output), bang(output);\r\n2 <float>(set second value);','1 <float>(output remainder);','','otherbinops','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(45,'mtof','','midi value to frequency (hertz)','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\" (a quarter tone higher than 69). Ftom does the reverse. A frequency of zero Hertz is given a MIDI value of -1500 (strictly speaking, it is negative infinity.)','MATH','1','1','','<float>','1 <float>(midi value);','1 <float>(frequency value);','','acoustics','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(46,'ftom','','frequency (hertz) to midi value','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\" (a quarter tone higher than 69). Ftom does the reverse. A frequency of zero Hertz is given a MIDI value of -1500 (strictly speaking, it is negative infinity.)','MATH','1','1','','<float>','1 <float>(frequency value);','1 <float>(midi value);','','acoustics','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(47,'dbtorms','','decibels to linear \"RMS\" amplitude','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.','MATH','1','1','','<float>','<float>(decibel value);','<float>(RMS value);','','acoustics','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(48,'rmstodb','','linear \"RMS\" amplitude to decibels','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.','MATH','1','1','','<float>','<float>(RMS value);','<float>(decibel value);','','acoustics','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(49,'dbtopow','','decibels to power units','dbtopow and powtodb convert decibels to and from power units, equal to the square of the \"RMS\" amplitude.','MATH','1','1','','<float>','<float>(decibel value);','<float>(power unit value);','','acoustics','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(50,'powtodb','','power units to decibels','dbtopow and powtodb convert decibels to and from power units, equal to the square of the \"RMS\" amplitude.','MATH','1','1','','<float>','<float>(power unit value);','<float>(decibel value);','','acoustics','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(51,'mod','','find remainder (negative corrected) - arithmetic','NO DOCUMENTATIONh','MATH','2','1','','<float> bang','1 <float>(set first value and output), bang(output);\r\n2 <float>(set second value);','1 <float>(output remainder);','','','[div]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(52,'div','','find quotient - arithmetic','NO DOCUMENTATION','MATH','2','1','','<float> bang','1 <float>(set first value and output), bang(output);\r\n2 <float>(set second value);','1 <float>(output remainder);','','','[mod]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(53,'sqrt','','square root - higher math','NO DOCUMENTATION','MATH','1','1','','<float>','1 <float>;','1 <float>;','','math','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(54,'log','','natural logarithm - higher math','NO DOCUMENTATION','MATH','1','1','','<float>','1 <float>;','1 <float>;','','math','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(55,'exp','','exponential - higher math','NO DOCUMENTATION','MATH','1','1','','<float>','1 <float>;','1 <float>;','','math','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(56,'abs','','absolute value - higher math','NO DOCUMENTATION','MATH','1','1','','<float>','1 <float>;','1 <float>;','','math','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(57,'sin','','sine - trigonometry','takes input in radians','MATH','1','1','','<float>','1 <float>(radian);','1 <float>;','','math','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(58,'cos','','cosine - trigonometry','takes input in radians','MATH','1','1','','<float>','1 <float>(radian);','1 <float>;','','math','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(59,'tan','','tangent - trigonometry','takes input in radians','MATH','1','1','','<float>','1 <float>(radian);','1 <float>;','','math','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(60,'atan','','inverse tangent - trigonometry','arc tangent','MATH','1','1','','<float>','1 <float>;','1 <float>;','','math','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(61,'atan2','','inverse tangent of quotient x/y - trigonometry','arc tangent, takes x/y pair and outputs between -pi and pi','MATH','2','1','','<float>','1 <float>(x);\r\n2 <float>(y);','1 <float>;','','math','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(62,'random','','pseudorandom integers','Random outputs pseudorandom 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.)\r\nOn 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 teh pseudorandom number generator. It isn\'t any standard one!','MATH','2','1','1 <float>(initialize range)','<float> <bang> seed','1 <bang>(output), list{seed <float>}(set seed);\r\n2 <float>(reset range);','1 <float>(pseudorandom integer);','','random','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(63,'min','','upper number limit','limit value to minimum output','MATH','2','1','1 <float>(initial value)','<float>','1 <float>(incoming stream);\r\n2 <float>(value to limit);','1 <float>;','','operators','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(64,'max','','lower number limit','limit value to maximum output','MATH','2','1','1 <float>(initial value)','<float>','1 <float>(incoming stream);\r\n2 <float>(value to limit);','1 <float>;','','operators','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(65,'notein','','MIDI note input','MIDI note input, creation argument sets channel input, no argument makes input omni.','MIDI','','3-n','1 <float>(optional channel number)','<float>','','1 <float>(pitch);\r\n2 <float>(velocity);\r\n3 <float>(!arg1, channel number);','','midi','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(66,'ctlin','','MIDI control input','MIDI control input, creation argument makes ctlin omni, 2nd argument sets channel, no argument inputs all control information','MIDI','','3-n','1 <float>(optional control number)\r\n2 <float>(optional channel number)','<float>','','1 <float>(value);\r\n2 <float>(!arg1, control number);\r\n3 <float>(!arg2, channel number);','','midi','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(67,'pgmin','','MIDI program change input','program change','MIDI','','2','1 <float>(optional channel number)','<float>','','1 <float>(value);\r\n2 <float>(!arg1, channel number);','','midi','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(68,'bendin','','MIDI pitch bend input','pitch bend','MIDI','','2','1 <float>(optional channel number)','<float>','','1 <float>(value);\r\n2 <float>(!arg1, channel number);','','midi','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(69,'touchin','','MIDI touch input','channel and poly aftertouch','MIDI','','2','1 <float>(optional channel number)','<float>','','1 <float>(value);\r\n2 <float>(!arg1, channel number);','','midi','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(70,'polytouchin','','MIDI poly aftertouch input','channel and poly aftertouch','MIDI','','3','1 <float>(optional channel number)','<float>','','1 <float>(value);\r\n2 <float>(pitch);\r\n3 <float>(!arg1, channel number);','','midi','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(71,'midiin','','raw MIDI input','always omni, ouputs the port number instead of the channel','MIDI','','2','','<float> <anything>','','1 <anything>(raw midi data);\r\n2 <float>(port number);','','midi','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(72,'sysexin','','MIDI system exclusive input','always omni, ouputs the port number instead of the channel','MIDI','','2','','<float> <anything>','','1 <anything>(system exclusive data);\r\n2 <float>(port number);','','midi','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(73,'noteout','','MIDI note output','Take an optional channel as creation argument, and ctlin takes a control number and a channel. You get inlets to change them in any case. IF you specify no channel, it\'s channel 1','MIDI','3','','1 <float>(channel number)','<float>','1 <float>(pitch);\r\n2 <float>(velocity);\r\n3 <float>(channel number);','','','midi','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(74,'ctlout','','MIDI control output','Control output. Takes an optional channel as creation argument, and ctlin takes a control number and a channel. You get inlets to change them in any case. IF you specify no channel, it\'s channel 1','MIDI','3','','1 <float>(channel number)','<float>','1 <float>(value);\r\n2 <float>(control number);\r\n3 <float>(channel number);','','','midi','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(75,'pgmout','','MIDI program change output','Program Change. Control output. Takes an optional channel as creation argument, and ctlin takes a control number and a channel. You get inlets to change them in any case. IF you specify no channel, it\'s channel 1','MIDI','2','','1 <float>(channel number)','<float>','1 <float>(value);\r\n2 <float>(channel number);','','','midi','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(76,'bendout','','MIDI pitch bend output','Pitch bend output. Takes an optional channel as creation argument, and ctlin takes a control number and a channel. You get inlets to change them in any case. IF you specify no channel, it\'s channel 1','MIDI','2','','1 <float>(channel number)','<float>','1 <float>(value);\r\n2 <float>(channel number);','','','midi','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(77,'touchout','','MIDI touch output','channel and poly aftertouch. Takes an optional channel as creation argument, and ctlin takes a control number and a channel. You get inlets to change them in any case. IF you specify no channel, it\'s channel 1','MIDI','2','','1 <float>(channel number)','<float>','1 <float>(value);\r\n2 <float>(channel number);','','','midi','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(78,'polytouchout','','MIDI poly aftertouch output','channel and poly aftertouch. Takes an optional channel as creation argument, and ctlin takes a control number and a channel. You get inlets to change them in any case. IF you specify no channel, it\'s channel 1','MIDI','3','','1 <float>(channel number)','<float>','1 <float>(value);\r\n2 <float>(pitch);\r\n3 <float>(channel number);','','','','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(79,'midiout','','raw MIDI output','raw MIDI output, second inlet is port number.','MIDI','2','','1 <float>(port number)','<float> <anything>','1 <anything>(raw midi data);\r\n2 <float>(port number);','','','midi','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(80,'makenote','','schedule a delayed \"note off\" message corresponding to a note-on','Makenote makes MIDI-style note-on/note-off pairs, which you can use for MIDI output or to drive note-like processes within Pd.\r\n1st inlet are \"pitches\" which may be integers or not. 2nd inlet is the \"velocity\", 3rd inlet is duration in milliseconds. creation arguments initialize velocity and duration.','MIDI','3','2','1 <float>(velocity)\r\n2 <float>(duration)','<float>','1 <float>(pitch);\r\n2 <float>(velocity);\r\n3 <float>(duration);','1 <float>(pitch);\r\n2 <float>(velocity);','','midinote','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(81,'stripnote','','strip \"note off\" messages','Stripnote takes note-off (zero-velocity) messages out of a stream of MIDI-style note message and passes the others through unchanged.','MIDI','2','2','','<float>','1 <float>(pitch);\r\n2 <float>(velocity);','1 <float>(pitch);\r\n2 <float>(velocity);','','midi','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(82,'tabread','','read a number from a table','tabread takes an index value for x and outputs the corresonding y value. you can set the table dynamically with a set message.','TABLES','1','1','1 <symbol>(table name)','<table> <float> <symbol>','1 <float>(index), list{set <symbol>}(set table name);','1 <float>(corresponding index value);','','tabread','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(83,'tabread4','','read an interpolated number from a table ','tabread4 takes an index value for x and outputs the corresonding y value, index values between steps are linear interpolated. you can set the table dynamically with a set message.','TABLES','1','1','1 <symbol>(table name)','<table> <float> <symbol>','1 <float>(index), list{set <symbol>}(set table name);','1 <float>(corresponding index value);','','no','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(84,'tabwrite','','write a number to a table','','TABLES','2','','1 <symbol>(table name)','<table> <float> <symbol>','1 <float>(set y value), list{set <symbol>}(set table name);\r\n2 <float>(select x index);','','','tabwrite','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(85,'soundfiler','','read and write a soundfile to a table','The soundfiler object reads and writes floating point arrays to binary soundfiles which may contain 2 or 3 byte fixed point or 4 byte floating point samples in wave, aiff, or next formats (no floating point aiff, though.). The number of channels of the soundfile need not match the number of arrays given (extras are dropped and unsupplied channels are zeroed out.)\r\nWhen reading you can leave soundfiler to figure out which of the three known soundfile formats the file belongs to or override all header information using the \"-raw\" flag.\r\nFlags fore reading:\r\n-skip <sample frames to skip in file>\r\n-nframes <maximum number of sample frames to read>\r\n-resize\r\n-maxsize <maximum number of samples we can resize to>\r\n-raw <headersize> <channels> <bytespersample> <endianness>\r\nThis causes all header information to be ignored. Endianness is \"l\" (\"little\") for Intel machines or \"b\" (\"big\") for Macintoshes and SGIs. You can give \"n\" (natural) to take the byte order your machine prefers.\r\nFlags for writing:\r\n-wave, -nextstep, -aiff\r\n-big, -little (nextstep only!)\r\n-skip <number of sample frames to skip in array>\r\n-nframes <maximum number to write>\r\n-bytes <2, 3, or 4>\r\n-normalize\r\n-rate <sample rate>\r\nThe number of channels is limited to 64','TABLES','1','1','','read write <table>','1 list{read (flags) <symbol> <symbol>}(read readflags filename tables, where tables may be multiple tables and readflags are possibly: -skip <float> [samples to skip], -nframes <float> [max samples to read>, -resize [dynamically change size of table], -maxsize <float> [max size to resize], -raw <float> <float> <float> <symbol> [headersize, channels, bytespersample, endianess, where endianess l=little, b=big, n=natural]), list{write (flags) <symbol> <symbol>}(write writeflags filename tables, where tables may be multiple tables and writeflags are possibly: -wave [wav format], -nextstep [au format], -aiff [aiff format], -big [big endian], -little [little endian, nextstep only], -skip [frames to skip in array], -nframes [max number of frames], -bytes [2, 3 or 4], -normalize [automatic normalization], -rate [the samplerate]);','1 <int>(soundfile length in samples);','','soundfiler','[tabwrite~] [tabplay~] [tabread4~] [readsf~] [writesf~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(86,'loadbang','','bang on load','loadbang sends a bang message to its outlet when the patch is first intiated','MISC','','1','','bang','','1 bang(on patch intialization);','','','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(87,'serial','','serial device control for NT only','NO DOCUMENTATION','MISC','1','','','','','','','','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(88,'netsend','','send messages over the internet','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.\r\nOpt@web.fm has made compatible objects for Max so that Pd and Max can intercommunicate: see ftp://fals.ch/pub/pdnets/.\r\nThe Linux version of Pd comes with \"pdsend\" and \"pdreceive\" standalone programs. These haven\'t been tested in Windows yet (but the source is included in the Pd distribution.)','MISC','1','1','1 <bool>(protocol type, 0=TCP, 1=UDP)','connect disconnect send','1 list{connect <symbol> <float>}(connect hostname port), disconnect(disconnect from host), list{send <symbol> <anything>}(send messageid data); ','1 <bool>(connection status, 0=closed, 1=open);','','netsend','[netreceive]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(89,'netreceive','','receive messages over the internet','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) have opened connections here.\r\nIncoming network messages appear on \"receive\" objects;\r\nit\'s up to the sender to select which one. Here, a \"receive foo\" fields messages sent from the Netsend help window, q.v\r\nThere are some possibilities for intercommunication with other programs... see the help for \"netsend.\"\r\nSECURITY ALERT: don\'t publish the port number of your netreceive unless you wouldn\'t mind other people being able to send you messages.\r\nfirst argument: portnumber = 3000\r\nsecond argument: 0 or none for TCP, nonzero for UDP','MISC','','1','1 <float>(port number)\r\n2 <bool>(protocol type, 0=TCP, 1=UDP)','<float> <bool> <anything> <list>','','1 list{<symbol> <anything>}(messageid streamdata);\r\n2 <float>(!arg2 || arg2==0, number of open connections);','','netreceive','[netsend]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(90,'qlist','','message sequencer','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.\r\nTo 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 diffrerent 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.\r\nTo run it manually, send \"rewind\" followed by \"next\". All messages not preceeded 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.\r\nYou 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.','MISC','1','2','','bang tempo rewind next clear add add2 read write <float>','1 bang(sequence automatically), list{tempo <float>}(set relative tempo), rewind(go to beginning and stop), next(single step forward), list{next 1}{step forward and supress message), clear(empty the qlist), list{add <float> <symbol> <anything>}(add delay id message, delay is optional, leading symbol outputs to destination object, message can be anything), list{add2 <anything>}(add to a message without temrinating), list{read <symbol>}(read from file), list{write <symbol>}(write to file);','1 <float>(output leading number);\r\n2 bang(end of qlist, with 1000ms delay);','','qlist','[textfile]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(91,'textfile','','file to message converter','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.\r\nTo 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.\r\nYou can also use this object simply for storing heterogeneous sequences of lists.','MISC','1','2','','bang rewind clear add add2 set read write print','1 rewind(return to beginning), bang(output single line as list), clear(empty the object), list{add <list>}(add a message), list{add2 <list>}(add unterminated message), list{set <list>}(clear object and add message), list{read <symbol> (cr)}(read from file, cr=with carriage return termination), list{write <symbol> (cr)}(write to file, cr=with carriage return termination), print(print debugging information);','1 <list>(line sequences);\r\n2 bang(end of squence);','','textfile','[qlist]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(92,'openpanel','','\"Open\" dialog','When Openpanel gets a \"bang\" an \"Open file\" browser appears on the screen. If you select a file, its name appears on the outlet.','MISC','1','1','','<symbol> bang','1 bang(open dialog for current directory), <symbol>(set directory to read and open dialog);','1 <symbol>(selected directory+filename);','','openpanel','[savepanel]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(93,'savepanel','','\"Save as\" dialog','When Savepanel gets a \"bang\" a \"Save As\" file browser appears on the screen, If you choose a filename, it appears on the outlet.','MISC','1','1','','','1 bang(open dialog for current directory), <symbol>(set directory to read and open dialog);','1 <symbol>(save directory+filename);','','savepanel','[openpanel]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(94,'bag','','set of numbers','The bag object takes (value, flag) pairs. If the flag is true (nonzero), the value is added to the collection;\r\nif false, it\'s removed. 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.','MISC','2','1','','<list> flush clear','1 list{<float> <float>}(value, flag pair), flush(output and empty collection), clear(empty collection);','1 <float>(stream of collectd values flagged nonzero);','','bag','[poly] [makenote]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(95,'poly','','polyphonic voice allocation','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. Poly can be configured to do voice stealing or not (the default.)','MISC','2','3','1 <float>(number of voices)\r\n2 <bool>(voice stealing, 0=off, 1=on)','<float> <list> stop clear','1 <float>(pitch), list{<float> <float>}(pitch + velocity pair), stop(return all voices to zero velocity), clear(empty voice bank);\r\n2 <float>(velocity);','1 <float>(voice number);\r\n2 <float>(pitch);\r\n3 <float>(velocity);','','poly','[route] [makenote]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(96,'key','','numeric key values from keyboard','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\".\r\nCaveat -- 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.','MISC','','1','','<float>','','1 <float>(key number on trigger);','','key','[keyup] [keyname]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(97,'keyup','','numeric key values from keyboard on release','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\".\r\nCaveat -- 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.','MISC','','1','','<float>','','1 <float>(key number on release);','','key','[key] [keyname]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(98,'keyname','','symbolic key name','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\".\r\nCaveat -- 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.','MISC','','2','','<float> <symbol>','','1 <bool>(key status, 0=release, 1=trigger);\r\n2 <symbol>(symbolic key name);','','key','[key] [keyup]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(99,'declare','','set search path and/or load libraries','put \"declare\" objects in a patch to tell it about the environment in\r\nwhich objects should be created in this canvas.  This includes directories to\r\nsearch (\"-path\", \"-stdpath\") and object libraries to load\r\n(\"-lib\" and \"-stdlib\").  These must be set before the patch containing\r\nthe \"declare\" object is filled in with its contents; so when the patch is\r\nsaved,  we throw early messages to the canvas to set the environment\r\nbefore any objects are created in it.','MISC','','','n <symbol>(valid search flags/paths/libs)','','','','','no','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(100,'+~','','add - arithmetic on audio signals','The binary signal operators can be configured to combine two signals as above, or, if you give a numeric argument, audio signals are combined with scalars.\r\nThe right inlet takes audio signals or numbers depending on whether the argument is present or not.The right inlet takes audio signals or numbers depending on whether the argument is present or not.','AUDIO MATH','2','1','1 <float>(scalar);','<float> dsp','1 dsp;\r\n2 dsp, <float>(scalar);','1 dsp;','','sigbinops','[-~] [*~] [/~] [max~] [min~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(101,'-~','','subtract - arithmetic on audio signals','The binary signal operators can be configured to combine two signals as above, or, if you give a numeric argument, audio signals are combined with scalars.\r\nThe right inlet takes audio signals or numbers depending on whether the argument is present or not.The right inlet takes audio signals or numbers depending on whether the argument is present or not.','AUDIO MATH','2','1','1 <float>(scalar);','<float> dsp','1 dsp;\r\n2 dsp, <float>(scalar);','1 dsp;','','sigbinops','[+~] [*~] [/~] [max~] [min~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(102,'*~','','multiply - arithmetic on audio signals','The binary signal operators can be configured to combine two signals as above, or, if you give a numeric argument, audio signals are combined with scalars.\r\nThe right inlet takes audio signals or numbers depending on whether the argument is present or not.The right inlet takes audio signals or numbers depending on whether the argument is present or not.','AUDIO MATH','2','1','1 <float>(scalar);','<float> dsp','1 dsp;\r\n2 dsp, <float>(scalar);','1 dsp;','','sigbinops','[+~] [-~] [/~] [max~] [min~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(103,'/~','','divide - arithmetic on audio signals','The binary signal operators can be configured to combine two signals as above, or, if you give a numeric argument, audio signals are combined with scalars.\r\nThe right inlet takes audio signals or numbers depending on whether the argument is present or not.The right inlet takes audio signals or numbers depending on whether the argument is present or not.','AUDIO MATH','2','1','1 <float>(scalar);','<float> dsp','1 dsp;\r\n2 dsp, <float>(scalar);','1 dsp;','','sigbinops','[+~] [-~] [*~] [max~] [min~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(104,'max~','','maximum or minimum of 2 input signals','The binary signal operators can be configured to combine two signals as above, or, if you give a numeric argument, audio signals are combined with scalars.\r\nThe right inlet takes audio signals or numbers depending on whether the argument is present or not.The right inlet takes audio signals or numbers depending on whether the argument is present or not.','AUDIO MATH','2','1','1 <float>(scalar);','<float> dsp','1 dsp;\r\n2 dsp, <float>(scalar);','1 dsp;','','sigbinops','[+~] [-~] [*~] [/~] [min~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(105,'min~','','maximum or minimum of 2 input signals','The binary signal operators can be configured to combine two signals as above, or, if you give a numeric argument, audio signals are combined with scalars.\r\nThe right inlet takes audio signals or numbers depending on whether the argument is present or not.The right inlet takes audio signals or numbers depending on whether the argument is present or not.','AUDIO MATH','2','1','1 <float> (scalar);','<float> dsp','1 dsp;\r\n2 dsp, <float> (scalar);','1 dsp;','','sigbinops','[+~] [-~] [*~] [/~] [max~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(106,'clip~','','constrict signal to lie between two bounds','The clip~ object passes its signal input to its output, clipping it to lie between two limits.','AUDIO MATH','3','1','1 <float> (lower limit); \r\n2 <float> (upper limit);','<float> dsp','1 dsp; \r\n2 <float> (lower limit); \r\n3 <float> (upper limit);','1 dsp;','','clip~','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(107,'q8_rsqrt~','rsqrt~','8 bit reciprocal square root','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).','AUDIO MATH','1','1','','dsp','1 dsp;','1 dsp;','','rsqrt~','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(108,'q8_sqrt~','sqrt~','8 bit signal square root','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).','AUDIO MATH','1','1','','dsp','1 dsp;','1 dsp;','','sqrt~','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(109,'wrap~','','wraparound (remainder modulo 1 - fractional part)','wrap~ gives the difference between the input and the largest integer not exceeding it (for positive numbers this is the fractional part).','AUDIO MATH','1','1','','dsp','1 dsp;','1 dsp;','','wrap~','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(110,'fft~','','complex forward discrete Fourier transform','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).\r\nThe 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.\r\nThere is no normalization, so that an FFT followed by an IFFT has a gain of N.','AUDIO MATH','2','2','','dsp','1 dsp (real); \r\n2 dsp (imaginary);','1 dsp; \r\n2 dsp;','','fft~','[ifft~] [rfft~] [rifft~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(111,'ifft~','','complex inverse discrete Fourier transform','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).\r\nThe 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.\r\nThere is no normalization, so that an FFT followed by an IFFT has a gain of N.','AUDIO MATH','2','2','','dsp','1 dsp (real);\r\n2 dsp (imaginary);','1 dsp; \r\n2 dsp;','','fft~','[fft~] [rfft~] [rifft~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(112,'rfft~','','real forward discrete Fourier transform','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).\r\nThe 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.\r\nThere is no normalization, so that an FFT followed by an IFFT has a gain of N.','AUDIO MATH','1','2','','dsp','1 dsp (real);','1 dsp (real); \r\n2 dsp (imaginary);','','fft~','[fft~] [ifft~] [rifft~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(113,'rifft~','','real inverse discrete Fourier transform','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).\r\nThe 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.\r\nThere is no normalization, so that an FFT followed by an IFFT has a gain of N.','AUDIO MATH','2','1','','dsp','1 dsp (real);\r\n2 dsp (imaginary);','1 dsp;','','fft~','[fft~] [ifft~] [rfft~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(114,'framp~','','estimate frequency and amplitude of FFT components','Framp~ takes as input a rectangular-windowed FFT and outputs, for each FFT channel, the estimated amplitude and frequency of any component feedinf 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.','AUDIO MATH','2','2','','dsp','1 dsp (real); \r\n2 dsp (imaginary);','1 dsp (frequency); \r\n2 dsp (amplitude);','','framp~','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(115,'mtof~','','acoustic conversion for audio signals (midi to frequency)','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.\r\nBoundary conditions are handled \"reasonably\". 100 db is assigned an RMS of 1, and dbtorms~ and dbtopow~ output true zero for 0 dB and less.','AUDIO MATH','1','1','','dsp','1 dsp (midi pitch);','1 dsp (frequency HZ);','','acoustics~','[mtof] [ftom] [dbtorms] [rmstodb] [dbtopow] [powtodb]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(116,'ftom~','','acoustic conversion for audio signals (frequency to midi)','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.\r\nBoundary conditions are handled \"reasonably\". 100 db is assigned an RMS of 1, and dbtorms~ and dbtopow~ output true zero for 0 dB and less.','AUDIO MATH','1','1','','dsp','1 dsp (frequency HZ);','1 dsp (midi pitch);','','acoustics~','[mtof] [ftom] [dbtorms] [rmstodb] [dbtopow] [powtodb]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(117,'dbtorms~','','acoustic conversion for audio signals (dB to RMS)','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.\r\nBoundary conditions are handled \"reasonably\". 100 db is assigned an RMS of 1, and dbtorms~ and dbtopow~ output true zero for 0 dB and less.','AUDIO MATH','1','1','','dsp','1 dsp (dB);','1 dsp (RMS);','','acoustics~','[mtof] [ftom] [dbtorms] [rmstodb] [dbtopow] [powtodb]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(118,'rmstodb~','','acoustic conversion for audio signals (RMS to dB)','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.\r\nBoundary conditions are handled \"reasonably\". 100 db is assigned an RMS of 1, and dbtorms~ and dbtopow~ output true zero for 0 dB and less.','AUDIO MATH','1','1','','dsp','1 dsp (RMS);','1 dsp (dB);','','acoustics~','[mtof] [ftom] [dbtorms] [rmstodb] [dbtopow] [powtodb]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(119,'dbtopow~','','acoustic conversion for audio signals (dB to power)','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.\r\nBoundary conditions are handled \"reasonably\". 100 db is assigned an RMS of 1, and dbtorms~ and dbtopow~ output true zero for 0 dB and less.','AUDIO MATH','1','1','','dsp','1 dsp (dB);','1 dsp (power);','','acoustics~','[mtof] [ftom] [dbtorms] [rmstodb] [dbtopow] [powtodb]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(120,'powtodb~','','acoustic conversion for audio signals (power to dB)','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.\r\nBoundary conditions are handled \"reasonably\". 100 db is assigned an RMS of 1, and dbtorms~ and dbtopow~ output true zero for 0 dB and less.','AUDIO MATH','1','1','','dsp','1 dsp (power);','1 dsp (dB);','','acoustics~','[mtof] [ftom] [dbtorms] [rmstodb] [dbtopow] [powtodb]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(121,'dac~','','audio output','Adc~ and dac~ rovide real-time audio input and output for Pd, respectively, whether analog or digital. By default they are stereo but you can specify channel numbers.\r\nThe actual number of channels Pd inputs and outputs are set on Pd\'s command line. You can open patches that want to use more channels, and channel numbers out of rance will be dropped (dac~) or appear as zero (adc~).','AUDIO GLUE','n','0','n <int>(channel number)','dsp','n dsp;','','','adc~_dac~','[adc~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(122,'adc~','','audio input','Adc~ and dac~ rovide real-time audio input and output for Pd, respectively, whether analog or digital. By default they are stereo but you can specify channel numbers.\r\nThe actual number of channels Pd inputs and outputs are set on Pd\'s command line. You can open patches that want to use more channels, and channel numbers out of rance will be dropped (dac~) or appear as zero (adc~).','AUDIO GLUE','1','n','n <int>(channel number)','dsp','1 unknown;','n dsp;','','adc~_dac~','[dac~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(123,'sig~','','convert numbers to audio signal','the sig~ object converts numbers to an audio signal.','AUDIO GLUE','1','1','','dsp <float>','1 <float>;','1 dsp;','','sig~','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(124,'line~','','generate audio ramps','The line~ object generates linear ramps whose levels and timing are determined by messages you send it. The messages may be a single target value (causing the output to jump to the target) or a target and a time in milliseconds (to start a new ramp.)','AUDIO GLUE','2','1','','<float> stop dsp','1 list{<float> <int>}, stop; \r\n2 <int>','1 dsp;','','line~','[line] [vline~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(125,'threshold~','','detect signal thresholds','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.','AUDIO GLUE','2','2','1 trigger threshold \r\n2 trigger debounce time\r\n3 rest threshold\r\n4 rest debounce time','<float> stop dsp','1 dsp, list{set <float> <float> <float> <float>}; \r\n2 <bool>','1 <float> (trigger); \r\n2 <float> (rest);','<float> <float> <float> <float>','threshold~','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(126,'snapshot~','','sample a signal (convert it back to a number)','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.\r\nA \'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','AUDIO GLUE','1','1','','<bang> set dsp','1 dsp, list{set <float>}, <bang>;','1 <float>;','','snapshot~','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(127,'vsnapshot~','','deluxe snapshot~','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.\r\nA \'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','AUDIO GLUE','1','1','','<bang> set dsp','1 dsp, list{set <float>}, <bang>;','1 <float>;','','nohelp','[snapshot~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(128,'bang~','','send a bang message after each DSP block','Bang~ outputs a bang after each DSP cycle (at the same logical time as the DSP cycle.) This is primarily useful for sampling the outputs of analysis algorithms.','AUDIO GLUE','1','1','','dsp <bang>','1 dsp;','1 <bang>;','','bang~','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(129,'samplerate~','','get the sample rate','NO DOCUMENTATION','AUDIO GLUE','1','1','','','1 dsp;','1 <float>;','','nohelp','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(130,'send~','s~','nonlocal signal connection with fanout','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.\r\nReceive~ takes \"set\" messages to switch between send~s.\r\nSend~/Receive~ only work for the default block size (64)','AUDIO GLUE','1','','1 <symbol>(signal name)','dsp','1 dsp;','','','send~','[receive~] [tabreceive~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(131,'receive~','r~','get signal from send~','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.\r\nReceive~ takes \"set\" messages to switch between send~s.\r\nSend~/Receive~ only work for the default block size (64)','AUDIO GLUE','1','1','1 <symbol> (signal name)','dsp set','1 list{set <symbol>};','1 dsp;','','send~','[send~] [tabreceive~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(132,'throw~','','add to a summing bus','Summing signal bus and non-local connection. Any number of throw~ objects can add into one catch~ object (but two catch~ objects cannot share the same name.)\r\nYou can redirect throw~ via a \"set\" message.','AUDIO GLUE','1','','1 <symbol>(signal name)','dsp set','1 dsp, list{set <symbol>};','','','throw~','[catch~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(133,'catch~','','define and read a summing bus','Summing signal bus and non-local connection. Any number of throw~ objects can add into one catch~ object (but two catch~ objects cannot share the same name.)\r\nYou can redirect throw~ via a \"set\" message.','AUDIO GLUE','','1','1 <symbol> (signal name)','dsp','','1 dsp;','','throw~','[throw~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(134,'block~','','specify block size and overlap','The block~ and switch~ objects set the block size, overlap, and up/down-sampling ratio for the window. (The overlap and resampling ratio are relative to the super-patch.)\r\nSwitch~, in addition, allows you to switch DSP on and off for the 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.)\r\nA switch~ with no arguments does not reblock audio computation -- in other words, block size and sample rate are as in the parent patch.\r\nYou may have at most one block~/switch~ object in any window.\r\nPd\'s default block size is 64 samples.\r\nINTERACTIONS WITH OTHER OBJECTS:\r\nDac~ 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.\r\nIf 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~.\r\nPatches 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 wierdness.','AUDIO GLUE','1','','1 <int>(blocksize)','dsp','1 <int>(blocksize);','','','block~','[switch~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(135,'switch~','','switch DSP computation on and off','The block~ and switch~ objects set the block size, overlap, and up/down-sampling ratio for the window. (The overlap and resampling ratio are relative to the super-patch.)\r\nSwitch~, in addition, allows you to switch DSP on and off for the 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.)\r\nA switch~ with no arguments does not reblock audio computation -- in other words, block size and sample rate are as in the parent patch.\r\nYou may have at most one block~/switch~ object in any window.\r\nPd\'s default block size is 64 samples.\r\nINTERACTIONS WITH OTHER OBJECTS:\r\nDac~ 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.\r\nIf 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~.\r\nPatches 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 wierdness.','AUDIO GLUE','1','','1 <int> (blocksize)\r\n2 <int> overlap\r\n3 <float> up/downsampling','','1 list{set <int> <int> <float>};','','','block~','[block~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(136,'readsf~','','soundfile playback from disk','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.\r\n\r\nThe wave, aiff, and nextstep formats are parsed automatically, although only 2- 3- and 4- byte samples are accepted (4 bytes implies floating point and is not available in aiff format.)\r\nOpen 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 channel, and endianness.','AUDIO GLUE','1','n','1 <int> (#channels)\r\n2 <int> (buffer size per channel - bytes)','<bool> open print','1 list{open <symbol> <int> <int> <int><int> <symbol>};','n dsp;','','readsf~','[soundfiler] [writesf~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(137,'writesf~','','record sound to disk','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.\r\nThe soundfile is 2- or 3-byte fixed point (\"pcm\") or 4-byte floating-point. The soundfile format is determined by the file extent (\"foo.wav\", \"foo.aiff\", or \"foo.snd\").\r\nThe \"open\" message may take flag-style arguments as follows\r\n-wave, -nextstep, -aiff\r\n-big, -little (nextstep only!)\r\n-bytes <2, 3, or 4>\r\n-rate <sample rate>\r\n(setting sample rate will affect the soundfile header but the file will _not_ be resampled.)','AUDIO GLUE','1+n','','1 <int> (#channels n)','dsp open start stop print ','1 list{open <flags> <symbol>}, start, stop, print, dsp; \r\n1+n dsp;','','','writesf~','[soundfiler] [readsf~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(138,'phasor~','','sawtooth oscillator','The phasor~ object outputs a sawtooth signal, traditionally used for table lookup via cos~ or tabread4~. If no argument is supplied, the input is taken to be an audio signal;\r\nwith a floating-point argument, phasor~ takes floating-point messages to change frequency.\r\nInvoked above with argument for non-signal input. Incoming messages override the initial value.','AUDIO OSCILALLATORS AND TABLES','2','1','1 <float> (frequency);','dsp <float>','1 dsp || <float> (frequency);\r\n2 <bang> (reset phase);','1 dsp;','','phasor~','[osc~] [cos~] [tabread~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(139,'cos~','','cosine waveshaper','The cos~ object outputs the cosine of its signal input.','AUDIO OSCILALLATORS AND TABLES','1','1','','dsp <float>','1 dsp;','1 dsp;','','cos~','[osc~] [phasor~] [tabread~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(140,'osc~','','cosine oscillator','The osc~ object outputs a cosine wave. If no argument is supplied, the input is taken to be an audio signal. With a floating-point argument, osc~ takes floating-point messages to change frequency.','AUDIO OSCILALLATORS AND TABLES','2','1','1 <float> (initial frequency);','dsp <float>','1 <float> (frequency); \r\n2 <bang> (reset phase)','1 dsp;','','osc~','[cos~] [phasor~] [tabread~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(141,'tabwrite~','','write to a table','tabwrite~ takes a signal and outputs to a table buffer with a \"bang\" message, you can stop recording with a \"stop\" message.','AUDIO OSCILALLATORS AND TABLES','1','','1 <symbol> (table);','dsp set bang stop','1 dsp, <bang> (start recording), \r\n  stop (stop recording, \r\n  list{set <symbol>} (set table);','','','tabwrite~','[tabread4~] [tabread] [tabwrite] [tabsend~] [tabreceive~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(142,'tabplay~','','play back from a table (non-transposing)','The tabplay~ object plays a sample, or part of one, with no transposition or interpolation. It is cheaper than tabread4~ and there are none of tabread4~\'s interpolation artifacts.','AUDIO OSCILALLATORS AND TABLES','1','2','1 <symbol> (table);','dsp set bang <float> list{<float>x <float>y}','1 <bang> (play whole sample), \r\n  list{set <symbol>} (set table),\r\n  list{<float> <float> (play from x sample, for y samples), \r\n  <float> (play from sample position);','1 dsp; \r\n2 <bang>(playback end)','','tabplay~','[tabread4~] [tabread] [tabwrite] [tabsend~] [tabreceive~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(143,'tabread~','','non-interpolating table read','NO DOCUMENTATION','AUDIO OSCILALLATORS AND TABLES','1','1','1 <symbol> (table);','dsp set','1 list{set <symbol>}(set table),\r\n  dsp(signal index);','1 dsp;','','nohelp','[tabread4~] [tabread] [tabwrite] [tabsend~] [tabreceive~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(144,'tabread4~','','four-point interpolating table read','Tabread4~ is used to build samplers and other table lookup algorithms. The interpolation scheme is 4-point polynomial.\r\nincoming 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.','AUDIO OSCILALLATORS AND TABLES','1','1','1 <symbol> (table);','dsp set','1 list{set <symbol>}(set table), \r\n  dsp(signal index x(n));','1 dsp;','','nohelp','[tabwrite~] [tabplay~] [tabread] [tabwrite] [tabsend~] [tabreceive~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(145,'tabosc4~','','4-point interpolating wavetable oscillator','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 at the beginning and two at the end, which should be wraparound copies 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.\r\n\r\nFor 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\r\n\r\nDon\'t send new \"sinesum\" messages to tables while you\'re running -- instead, use \"set\" messages to switch between tables.','AUDIO OSCILALLATORS AND TABLES','2','1','1 <symbol> (table);','dsp set <float>','1 list{set <symbol>} (set table),\r\n  dsp(signal index); \r\n2 <float>(reset phase);','1 dsp;','','tabosc4~','[tabwrite~] [tabread4~] [tabplay~] [tabread] [tabwrite] [tabsend~] [tabreceive~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(146,'tabsend~','','write one block continuously to a table','writes one block of a signal continuously to an array. creation argument: name of array. By default a block is 64 samples;\r\nthis can be reset using the block~ object.','AUDIO OSCILALLATORS AND TABLES','1','','1 <symbol> (table);','dsp <symbol>','1 dsp;','','','tabsend~','[tabosc~] [tabwrite~] [tabread4~] [tabplay~] [tabread] [tabwrite] [tabsend~] [tabreceive~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(147,'tabreceive~','','read one block continuously from a table','read a block of a signal from an array continuously. creation argument: name of array. By default a block is 64 samples;\r\nthis can be reset using the block~ object.','AUDIO OSCILALLATORS AND TABLES','1','1','1 <symbol> (table);','dsp <symbol>','1 UNKNOWN;','1 dsp;','','tabsend~','[tabsend~] [tabosc~] [tabwrite~] [tabread4~] [tabplay~] [tabread] [tabwrite]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(148,'vcf~','','voltage controlled bandpass filter','vcf~ is like bp~ except that it takes 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 than bp~ in CPU time but more powerful too.','AUDIO FILTERS','3','2','1 <float>(initialize Q)','dsp <float>','1 dsp(test frequency); \r\n2 dsp(center frequency); \r\n3 <float>(Q - filter sharpness);','1 dsp;\r\n2 unknown;','','vcf~','[bp~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(149,'noise~','','uniformly distributed white noise','uniformly distributed white noise. the output range is -1 to 1.','AUDIO FILTERS','1','1','','dsp <float>','1 unknown;','1 dsp;','','noise~','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(150,'env~','','envelope follower','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.\r\n\r\nThe analysis is Hanning windowed.\r\n\r\nThe optional creation argument is the analysis window size in samples, and should be a power of two. The analysis windows overlap by two, so that the period of output is half the window size..','AUDIO FILTERS','1','1','1 <float>(window size)','dsp <float>','1 dsp;','1 <float>(RMS amplitude);','','env~','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(151,'hip~','','one-pole high pass filter','hip~ is a one-pole high pass filter with a specified rolloff frequency.\r\nThe left inlet is the incoming audio signal. The right inlet is the cutoff frequency in Hz.','AUDIO FILTERS','2','1','1 <float>(rolloff frequency)','dsp <float> clear','1 dsp, \r\n  clear(reinitialize); \r\n2 <float>(cutoff frequency);','1 dsp;','','hip~','[lop~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(152,'lop~','','one-pole low pass filter','lop~ is a one-pole high pass filter with a specified rolloff frequency.\r\nThe left inlet is the incoming audio signal. The right inlet is the cutoff frequency in Hz.','AUDIO FILTERS','2','1','1 <float>(rolloff frequency)','dsp <float> clear','1 dsp, clear(reinitialize); \r\n2 <float>(cutoff frequency) ','1 dsp;','','lop~','[hip~] [bp~] [vcf~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(153,'bp~','','band pass filter','bp~ passes a sinusoid at the center frequency at unit gain (approximately). Other frequencies are attenuated.\r\n\r\nThe left inlet is the incoming audio signal, the middle control input sets center frequency and the rigth input sets \"Q\".','AUDIO FILTERS','3','1','1 <float>(center frequency)\r\n2 <float>(Q)','dsp <float> clear','1 dsp, clear(reinitialize); \r\n2 <float>(center frequency); \r\n3 <float>(Q) ','1 dsp;','','bp~','[vcf~] [hip~] [lop~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(154,'biquad~','','2-pole-2-zero-filter','calculates the following difference equation:\r\ny(n) = ff1 * w(n) + ff2 * w(n-1) + ff3 * w(n-2)\r\nw(n) = x(n) + fb1 * w(n-1) + fb2 * w(n-2)\r\nSyntax: biquad~ fb1 fb2 ff1 ff2 ff3','AUDIO FILTERS','1','1','1 <float>(fb1)\r\n2 <float>(fb2)\r\n3 <float>(ff1)\r\n4 <float>(ff2)\r\n5 <float>(ff3)','dsp <float> list{<float> <float> <float> <float> <float>} list{set <float> <float>} clear','1 dsp, clear(reinitialize), list{<float>(fb1) <float>(fb2) <float>(ff1) <float>(ff2) <float>(ff3), list{set <float> <float>};','1 dsp;','','biquad~','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(155,'samphold~','','sample and hold unit','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.\r\n\r\nThe \"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.','AUDIO FILTERS','2','1','','dsp <float> list{reset <float>} list{set <float>} reset','1 dsp(sample signal), reset(reset to default 1e+20 forces next sample), list{reset <float>}(reset previous value for control inlet), list{set <float>}(set ouptut to a number); \r\n2 dsp(control signal)','1 dsp;','','samphold~','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(156,'print~','','print out raw values of a signal','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.','AUDIO FILTERS','1','1','','dsp <float> <bang>','1 dsp, <bang>(print one vector), <float>(print n vectors);','1 dsp;','','print~','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(157,'rpole~','','raw real-valued one-pole filter','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).\r\n\r\nThe action of rpole~ is:\r\ny[n] = y[n-1] + a[n] * x[n]\r\nwhere y[n] is the output, x[n] the input, and a[n] the filter coefficient. The filter is unstable if/when |a[n]|>1.\r\n\r\nThe transfer function is H(Z) = 1/(1 - aZ^-1).\r\n\r\n(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://crca.ucsd.edu/~msp/techniques for an introduction to the necessary theory.)','AUDIO FILTERS','2','1','1 <float>(filter coefficient)','dsp clear list{set <float>}','1 dsp, clear(clear internal state to zero), list{set <float>}(set internal state);\r\n2 dsp || <float>(filter coefficient);','1 dsp;','','rpole~','[rzero~] [rzero_rev~] [cpole~] [czero~] [czero_rev~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(158,'rzero~','','raw real-valued one-zero filter','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).\r\n\r\nThe action of rzero~ is:\r\ny[n] = x[n] - a[n] * x[n-1]\r\nwhere y[n] is the output, x[n] the input, and a[n] the filter coefficient. The filter is always stable.\r\n\r\nThe transfer function is H(Z) = 1 - aZ^-1.\r\n\r\n(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://crca.ucsd.edu/~msp/techniques for an introduction to the necessary theory.)(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://crca.ucsd.edu/~msp/techniques for an introduction to the necessary theory.)','AUDIO FILTERS','2','1','1 <float>(filter coefficient)','dsp clear list{set <float>}','1 dsp, clear(clear internal state to zero), list{set <float>}(set internal state);\r\n2 dsp || <float>(filter coefficient);','1 dsp;','','rzero~','[rpole~] [rzero_rev~] [cpole~] [czero~] [czero_rev~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(159,'rzero_rev~','','raw real-valued one-zero \"reverse\" filter','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.\r\n\r\nThe action of rpole_rev~ is:\r\ny[n] = -a[n] * x[n] + x[n-1]\r\nwhere y[n] is the output, x[n] the input, and a[n] the filter coefficient. The filter is always stable.\r\n\r\nThe transfer function is H(Z) = -a + Z^-1.\r\n\r\n(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://crca.ucsd.edu/~msp/techniques for an introduction to the necessary theory.)','AUDIO FILTERS','2','1','1 <float>(filter coefficient);','dsp clear list{set <float>}','1 dsp, clear(clear internal state to zero), list{set <float>}(set internal state);\r\n2 dsp || <float>(filter coefficient);','1 dsp;','','rzero_rev~','[rpole~] [rzero~] [cpole~] [czero~] [czero_rev~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(160,'cpole~','','complex one-pole (recursive) filter','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).\r\n\r\nThe action of cpole~ is:\r\ny[n] = y[n-1] + a[n] * x[n]\r\nwhere 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.\r\n\r\nThe transfer function is H(Z) = 1/(1 - aZ^-1).\r\n\r\n(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://crca.ucsd.edu/~msp/techniques for an introduction to the necessary theory.)','AUDIO FILTERS','4','2','1 <float>(filter coefficient - real) \r\n2 <float>(filter coefficient - imaginary)','dsp clear list{set <float> <float>}','1 dsp (signal to filter - real), clear(clear internal state to zero), list{set <float> <float>}(set internal state (real & imaginary)); \r\n2 dsp(signal to filter - imaginary part); \r\n3 dsp(filter coefficient - real part)\r\n4 dsp(filter coefficient - imaginary part);','1 dsp; \r\n2 dsp;','','cpole~','[rpole~] [rzero~] [rzero_rev~] [czero~] [czero_rev~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(161,'czero~','','complex one-zero (non-recursive) filter','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).\r\n\r\nThe action of czero~ is:\r\ny[n] = x[n] - a[n] * x[n-1]\r\nwhere y[n] is the output, x[n] the input, and a[n] the filter coefficient (all complex numbers). The filter is always stable.\r\n\r\nThe transfer function is H(Z) = 1 - aZ^-1.\r\n\r\n(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://crca.ucsd.edu/~msp/techniques for an introduction to the necessary theory.)','AUDIO FILTERS','4','2','1 <float>(filter coefficient - real) \r\n2 <float>(filter coefficient - imaginary)','dsp clear list{set <float> <float>}','1 dsp (signal to filter - real), clear(clear internal state to zero), list{set <float> <float>}(set internal state (real & imaginary));\r\n2 dsp(signal to filter - imaginary part); \r\n3 dsp(filter coefficient - real part);\r\n4 dsp(filter coefficient - imaginary part);','1 dsp; \r\n2 dsp;','','czero~','[rpole~] [rzero~] [rzero_rev~] [cpole~] [czero_rev~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(162,'czero_rev~','','complex one-zero (non-recursive) \"reverse\" filter','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.\r\n\r\nThe action of czero~ is:\r\ny[n] = - a[n] * x[n] + x[n-1]\r\nwhere y[n] is the output, x[n] the input, and a[n] the filter coefficient (all complex numbers). The filter is always stable.\r\n\r\nThe transfer function is H(Z) = -a + Z^-1.\r\n\r\n(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://crca.ucsd.edu/~msp/techniques for an introduction to the necessary theory.)','AUDIO FILTERS','4','2','1 <float>(filter coefficient - real) \r\n2 <float>(filter coefficient - imaginary)','dsp clear list{set <float> <float>}','1 dsp (signal to filter - real), clear(clear internal state to zero), list{set <float> <float>}(set internal state (real & imaginary)); \r\n2 dsp(signal to filter - imaginary part); \r\n3 dsp(filter coefficient - real part); \r\n4 dsp(filter coefficient - imaginary part);','1 dsp; \r\n2 dsp;','','czero_rev~','[rpole~] [rzero~] [rzero_rev~] [cpole~] [czero~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(163,'delwrite~','','writes a signal in a delay line','Delwrite~ allocates memory for a delay line and writes an audio signal into it. Delread~ objects by hte same name read from the delay line.','AUDIO DELAY','1','','1 <symbol>(delay line name) \r\n2 <float>(length in msec)','dsp <float>','1 dsp;','1 dsp;','','delwrite~','[delread~] [vd~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(164,'delread~','','read a signal from a delay line','You can use more than one delread~ objects for the same delay line.\r\nIf the specified delay time is longer than the size of the delay line or less than zero it is clipped to the length of the delay line.\r\nNote: if the delaywrite~ runs after the delread~ the minimum delay is actually one DSP period, not zero.','AUDIO DELAY','1','1','1 <symbol>(delay line name) \r\n2 <float>(delay time in msec)','dsp <float> <symbol>','1 <float>(delay time in msec);','1 dsp(delayed signal);','','delread~','[delwrite~] [vd~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(165,'vd~','','read from a delay line at a variable delay timec','vd~ implements a 4-point interpolating delay tap from a corresponding delwrite~ object. The delay in milliseconds of the tap is specified by the incoming signal.\r\nThe delay time is always at least one sample and at most the length of the delay line (specified by hte delwrite~). In addition, in case the delwrite~ runs later in the DSP loop than the vd~, the delay is constrained below by one vector length (64 samples.)','AUDIO DELAY','1','1','1 <symbol>(delay line name) \r\n2 <float>(delay time in msec)','dsp <symbol>','1 dsp(delay time in msec);','1 dsp(delayed signal);','','vd~','[delwrite~] [delread~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(166,'pd','','define a subwindow','create a localized subwindow, number of inlets and outlets are defined with the respective inlet and outlet objects','SUBWINDOWS','n','n','<symbol>(subpatch name)','<anything>','n <anything>;','n <anything>;','','canvas','[table] [inlet] [outlet] [inlet~] [outlet~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(167,'table','','array of numbers in a subwindow','\"Table\" builds a subpatch with a graphical array inside. The creation arguments specify the name and an optional size in points.\r\nNote that the data (and other properties) of the array aren\'t saved with the patch. You can resize, save to and/or read from an external file as you would with \"array\" objects. See \"arrays\" in the 2.control examples under the \"pure documentation\" help menu item.\r\nYou can also send messages to the array by name:\r\n[; <symbol>name read <symbol>textfile[\r\n[; <symbol>name write <symbol>textfile[\r\nUnfortunately there\'s no way to set vertical range, etc.','SUBWINDOWS','','','1 <symbol>(table name)\r\n2 <int>size','<symbol><float>','','','','canvas','[pd] [inlet] [outlet] [inlet~] [outlet~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(168,'inlet','','add an inlet to a pd subwindow','you can put inlets and outlets by making \"inlet\" objects, etc, in the subpatch, this change is reflected in the parent patch.','SUBWINDOWS','','1','','<anything>','','1 <anything>;','','pd','[pd] [outlet] [inlet~] [outlet~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(169,'outlet','','add an outlet to a pd subwindow','you can put inlets and outlets by making \"inlet\" objects, etc, in the subpatch, this change is reflected in the parent patch.','SUBWINDOWS','1','','','<anything>','1 <anything>;','','','pd','[pd] [inlet] [inlet~] [outlet~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(170,'inlet~','','add a signal inlet to a pd subwindow','you can put inlets and outlets by making \"inlet\" objects, etc, in the subpatch, this change is reflected in the parent patch.','SUBWINDOWS','','1','','dsp','','1 dsp;','','pd','[pd] [inlet] [outlet] [outlet~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(171,'outlet~','','add a signal outlet to a pd subwindow','you can put inlets and outlets by making \"inlet\" objects, etc, in the subpatch, this change is reflected in the parent patch.','SUBWINDOWS','1','','','dsp','1 dsp;','','','pd','[pd] [inlet] [outlet] [inlet~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(172,'struct','','define the fields in a data structure','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;\r\nand for array fields, a third argument specifies the template that the array elements should belong to.','DATA TEMPLATES','','1','1 <symbol>(structure name)\r\nn+1 { <symbol>(data type) <symbol>(data name) <symbol>(for type \'array\', template name) }','template','','1 temnplate','','struct','[drawcurve] [filledcurve] [drawpolygon] [filledpolygon] [plot] [drawnumber]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(173,'drawcurve','','draw a curve','drawpolygon and drawcurve take these arguments:\r\n- optional \"-n\" flag to make invisible initially\r\n- alternatively, an optional \"-v [variable]\" flag to assign a variable to make this visible/invisible.\r\n- RGB color (0=black, 999=white, 900=red, 90=green, 9=blue, 555=grey, etc.)\r\n- line width\r\n- two or more (x, y) pairs giving coordinates.\r\n\r\nAny of these (except the flags) can be \r\nnumbers or field names, like \"weasel\" here. The example above draws a vertical black line of height \"weasel\".','DATA TEMPLATES','1','','0 flags{-n(intialize invisible), -v [variable](assiign variable to make invisible) }\r\n1 <int>(color - RGB triplet 0-9)\r\n2 <float>(line width)\r\n3+n <float>(x coord)\r\n4+n <float>(y coord)','template <bool>','1 <bool>(toggle visibility)','','','drawpolygon','[struct] [filledcurve] [drawpolygon] [filledpolygon] [plot] [drawnumber]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(174,'drawpolygon','','draw a polygon','drawpolygon and drawcurve take these arguments:\r\n- optional \"-n\" flag to make invisible initially\r\n- alternatively, an optional \"-v [variable]\" flag to assign a variable to make this visible/invisible.\r\n- RGB color (0=black, 999=white, 900=red, 90=green, 9=blue, 555=grey, etc.)\r\n- line width\r\n- two or more (x, y) pairs giving coordinates.\r\n\r\nAny of these (except the flags) can be \r\nnumbers or field names, like \"weasel\" here. The example above draws a vertical black line of height \"weasel\".','DATA TEMPLATES','1','','0 flags{-n(intialize invisible), -v [variable](assiign variable to make invisible) }\r\n1 <int>(color - RGB triplet 0-9)\r\n2 <float>(line width)\r\n3+n <float>(x coord)\r\n4+n <float>(y coord)','template <bool>','1 <bool>(toggle visibility)','','','drawpolygon','[struct] [filledcurve] [drawcurve] [filledpolygon] [plot] [drawnumber]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(175,'filledpolygon','','draw a filled polygon','drawpolygon and drawcurve take these arguments:\r\n- optional \"-n\" flag to make invisible initially\r\n- alternatively, an optional \"-v [variable]\" flag to assign a variable to make this visible/invisible.\r\n- RGB color (0=black, 999=white, 900=red, 90=green, 9=blue, 555=grey, etc.)\r\n- line width\r\n- two or more (x, y) pairs giving coordinates.\r\n\r\nAny of these (except the flags) can be \r\nnumbers or field names, like \"weasel\" here. The example above draws a vertical black line of height \"weasel\".\r\nfilledpolyconn and filledcurve take the same arguments, except that a new first argument is added to specify interior color. Here the interior color is red (900), the outline color is controlled by the \"dog\" field, and the three points describe a triangle of altitude \"cat\". The fields x and y automatically govern the placement of the object as a whole.\r\n','DATA TEMPLATES','1','','0 flags{-n(intialize invisible), -v [variable](assiign variable to make invisible) }\r\n1 <int>(fill color - RGB triplet 0-9)\r\n2 <float>(line width)\r\n3+n <float>(x coord)\r\n4+n <float>(y coord)','template <bool>','1 <bool>(toggle visibility)','','','drawpolygon','[struct] [filledcurve] [drawcurve] [drawpolygon] [plot] [drawnumber]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(176,'filledcurve','','draw a filled curve','drawpolygon and drawcurve take these arguments:\r\n- optional \"-n\" flag to make invisible initially\r\n- alternatively, an optional \"-v [variable]\" flag to assign a variable to make this visible/invisible.\r\n- RGB color (0=black, 999=white, 900=red, 90=green, 9=blue, 555=grey, etc.)\r\n- line width\r\n- two or more (x, y) pairs giving coordinates.\r\n\r\nAny of these (except the flags) can be \r\nnumbers or field names, like \"weasel\" here. The example above draws a vertical black line of height \"weasel\".\r\nfilledpolyconn and filledcurve take the same arguments, except that a new first argument is added to specify interior color. Here the interior color is red (900), the outline color is controlled by the \"dog\" field, and the three points describe a triangle of altitude \"cat\". The fields x and y automatically govern the placement of the object as a whole.\r\n','DATA TEMPLATES','1','','0 flags{-n(intialize invisible), -v [variable](assiign variable to make invisible) }\r\n1 <int>(fill color - RGB triplet 0-9)\r\n2 <float>(line width)\r\n3+n <float>(x coord)\r\n4+n <float>(y coord)','template <bool>','1 <bool>(toggle visibility)','','','drawpolygon','[struct] [drawcurve] [drawpolygon] [plot] [drawnumber]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(177,'plot','','draw array elements of scalars','creation arguments:\r\n- optional \"-n\" flag to make invisible initially\r\n- alternatively, an optional \"-v [variable]\" flag to assign a variable to make this visible/invisible.\r\n- Opional \"-vs [constant or variable] to set visibility of scalars along the path of the plot.\r\n- optional \"-x [variable]\" flag to use different x variable\r\n- optional \"-y [variable]\" flag to use different y variable\r\n- optional \"-w [variable]\" flag to use different w variable\r\n- optional word \"curve\" to specify bezier\r\n- field to plot (the array)\r\n- RGB color (0=black, 999=white, 900=red, 90=green, 9=blue, 555=grey, etc.)\r\n- line width\r\n- relative x and y location\r\n- x spacing\r\nTo see the data itself, select \"properties\" for the scalar by right clicking on the plotted object.','DATA TEMPLATES','1','','0 flags{ -n(initialize invisible), -v [variable](assign variable to toggle visible/invisible), -vs [constant or variable](set visibility of scalars), -x [variable](set different \'x\' variable), -y [variable](set different \'y\' variable), -w [variable](set different \'w\' variable), curve(make plot bezier)}\r\n1 <symbol>(array to plot)\r\n2 <int>(fill color - RGB triplet 0-9)\r\n3 <float>(line width)\r\n4 <float>(relative x location)\r\n5 <float>(relative y location)\r\n6 <float>(x spacing)','template <bool>','1 <bool>(toggle visibility)','','','plot','[struct] [drawcurve] [drawpolygon] [filledcurve] [filledpolygon] [drawnumber]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(178,'drawnumber','','draw numeric fields from data structures','drawnumber takes arguments specifying:\r\n- optional \"-n\" flag to make invisible initially\r\n- alternatively, an optional \"-v [variable]\" flag to assign a variable to make this visible/invisible.\r\n- the number to draw\r\n- an (x, y) pair giving relative coordinates;\r\n- RGB color (0=black, 999=white, 900=red, 90=green, 9=blue, 555=grey, etc.)\r\n- an optional label (\"cat=\" for instance)\r\nAny of these (except the two flags) can be numbers or field names, like \"dog\" and \"cat\" here.\r\nWhen not in \"edit\" mode, you can click and drag vertically on the numbers to change their values. (In edit mode you can move, cut, copy, and paste the objects.)\r\nKeyboard entry isn\'t supported yet.','DATA TEMPLATES','1','','0 flags{-n(initalize invisible) -v [variable](assign a variable to toggle visibility) }\r\n1 <float>(the number to draw)\r\n2 <float>(relative x coordinate)\r\n3 <float>(relative y coordinate)\r\n4 <int>(fill color - RGB triplet 0-9)\r\n5 <symbol>(optional label)','template <bool>','1 <bool>(toggle visibility)','','','drawnumber','[struct] [drawcurve] [drawpolygon] [filledcurve] [filledpolygon] [plot]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(179,'pointer','','point to an object belonging to a template','\"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.\r\n\r\nThe 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.\r\n\r\nPointers are \"safe\": if you delete a scalar pointers to it are marked invalid.','ACCESSING DATA','2','2+n','n <template>(select according to the class of the scalar being output)','template <bool>','1 list{traverse <symbol>} (sets to \'head\' of the list), \r\n  bang (outputs current value),\r\n  next (moves forward one item and outputs pointer value, sends bang to right outlet on end), \r\n  list{vnext <bool>} (vnext 0 - gets next object, vnext 1 - gets next visible selected object ); \r\n2 gpointer(store a pointer)','n gpointer(output pointer according to n class)\r\n1 gpointer(output pointer)\r\n2 bang(end of list)','','pointer','[get] [set] [append] [getsize] [setsize] [element] [sublist] [struct]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(180,'get','','get numeric fields from a scalar','\"Get\", when sent a pointer to a scalar, retrieves fields from it by name. The fields can be float or symbol. In the future this will also allow access to sublists of scalars.\r\nIf you have data whose template varies (from a heterogeneous list, for example) you can use \"pointer\" to select according to template before sending to \"get\".','ACCESSING DATA','2','n','1 <template>\r\nn <symbol>(field names)','template pointer anything','1 pointer; \r\n2 unknown;','n <float>||<symbol>(field value)','','get','[pointer] [set] [append] [getsize] [setsize] [element] [sublist] [struct]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(181,'set','','set value fields in a scalar','\"Set\" takes a pointer to a scalar in its rightmost inlet;\r\nthe remaining inlets set numeric values of fields. Only the leftmost inlet is \"hot\". You can\'t \"set\" arrays or sublists. Instead, you can get pointers into them using \"element\" and \"sublist\" (probably not working yet) and set individual items.\r\nTo 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.)','ACCESSING DATA','n+1','','1 <template>\r\nn <symbol>(field names)','template pointer <symbol> <float>','1 <float> (field value), \r\n  <<symbol> (symbol value, using -symbol flag); \r\n2 pointer;','','','set','[pointer] [get] [append] [getsize] [setsize] [element] [sublist] [struct]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(182,'element','','get pointer to an element of an array','\"element\" takes a pointer at right and a 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 number. There are no pointers to arrays themselves, just to individual elements. The template and field mane are specified as creation arguments.\r\nIndices range from 0 to the number of elements minus one;\r\nindices out of range are quietly replaced by the nearest endpoint.','ACCESSING DATA','2','1','1 <symbol>(template name)\r\n2 <symbol>(feild name)','template pointer <symbol> <float>','1 <int> (element index);\r\n2 pointer;','1 pointer (to single element)','','element','[pointer] [get] [set] [getsize] [setsize] [element] [sublist] [struct]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(183,'getsize','','get the size of an array','When sent a pointer, \"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.\r\n\r\nThe smallest possible size is one.','ACCESSING DATA','1','1','1 <symbol>(template name)\r\n2 <symbol>(feild name)','template pointer <symbol> <float>','1 pointer(plot array);\r\n','1 <int> (number of elements in pointer array);','','getsize','[pointer] [get] [set] [element] [setsize] [element] [sublist] [struct]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(184,'setsize','','change the size of an array','\"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.\r\nThe 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.','ACCESSING DATA','2','','1 <symbol>(template name)\r\n2 <symbol>(feild name)','template pointer <symbol> <float>','1 <int> (array size);\r\n2 pointer;','','','setsize','[pointer] [get] [set] [element] [getsize] [element] [sublist] [struct]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(185,'append','','add an element to a list','\"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.\r\nTo insert to the beginning of a list, you can append to the \"head\" of the list. You may append objects of different templates using different \"append\" objects.','ACCESSING DATA','n+1','1','1 <symbol>(template name)\r\nn <symbol>(feild name)','template pointer <symbol> <float>','1 <int>;\r\n2 pointer;','1 pointer;','','append','[pointer] [get] [set] [element] [getsize] [setsize] [sublist] [struct]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(186,'sublist','','get a list from a field of a scalar','Don\'t try this yet -- it\'s untested.\r\n\r\n\"sublist\" will take as creation arguments a template name and a field name;\r\nits one input takes a pointer. If you send a pointer (which should agree with the template name), \"sublist\" will output the field (which should be of type \"list\".) The output is in fact a pointer to the head of the sublist.','ACCESSING DATA','1','1','1 <symbol>(template name)\r\n2 <symbol>(feild name)','template pointer <symbol> <float>','1 pointer;\r\n','1 pointer(list(field));','','sublist','[pointer] [get] [set] [element] [getsize] [setsize] [append] [struct]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(187,'list append','list','append the second list to the first','Append - append (concatenate) the second list to the first.\r\n\"list append\" takes a list in the each inlet, appending the right inlet to left inlet. Any non-list input is conveted to a valid list. A bang is considered a 0-element list, so it is possible to use a \'list\' object in a similar way to a float.\r\n\"list append\" takes a list to append as a creation argument.','LISTS','2','1','1 list','list bang float','1 list, bang(zero-element list), float(single-element-list); \r\n2 list, bang(zero-element list), float(single-element-list); ','1 list;','','list','[list prepend] [list split] [list trim]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(188,'list prepend','','prepend the second list to the first','Prepend - prepend the second list to the first\r\n\"list prepend\" takes a list in each inlet, prepending the right inlet to left inlet. Any non-list input is conveted to a valid list. A bang is considered a 0-element list, so it is possible to use a \'list\' object in a similar way to a float.\r\n\"list prepend\" takes a list to prepend as a creation argument.','LISTS','2','1','1 list','list bang float','1 list, bang(zero-element list), float(single-element-list); \r\n2 list, bang(zero-element list), float(single-element-list); ','1 list;','','list','[list append] [list split] [list trim]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(189,'list split','','split a list in two','Split - cut a list into smaller ones\r\n\r\nThe \"list split\" object takes lists and outputs the first \"n\" items (left outlet) and the remaining ones (middle outlet). The two outputs appear in the usual right-to-left order. In case there are fewer than \"n\" items in the list, it is output (in its entirety) from the third outlet instead. The creation argument or the inlet sets the split point.','LISTS','2','3','1 <int>(split point)','list bang float','1 list, bang(zero-element list), float(single-element-list); \r\n2 <int>(split point)','1 list(elements until split point);\r\n2 list(elements after split point);\r\n3 list(elements smaller than split point);','','list','[list append] [list prepend] [list trim]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(190,'list trim','','trim the \"list\" selector off','trim - convert list to message, using first item as selector\r\nThe \"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.)','LISTS','1','1','','list bang float','1 list, float(single-element-list);','1 message','','list','[list append] [list prepend] [list split]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(191,'namecanvas','','attach a symbolic name to a canvas ','\"namecanvas\" takes a symbol argument and uses this symbol as an alternative symbolic name for a canvas (patch), which can be in turn used to recieve messages for the canvas. BEWARE improper use is dangerous.','OBSOLETE','','','1 <symbol>(new symbolic canvas name, can take $0/$1 values)','canvas','','','','namecanvas','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(192,'template','','use struct','','OBSOLETE','','','','','','','','','[struct]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(193,'scope','','use tabwrite~','','OBSOLETE','','','','','','','','','[tabwrite~]','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html'),(194,'scalar','','draw a scalar parent','','OBSOLETE','','','','','','','','','','pd-lib','Miller Puckette','http://crca.ucsd.edu/~msp/software.html');
/*!40000 ALTER TABLE `object` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2009-02-18  9:47:24
