some new max/msp utilities

JBranciforte's icon

I recently finished a batch of 50 utility abstractions for max and msp. They do things like list processing, data matching/routing, string functions, statistics, and some awkward things useful to my own work (like determining the internal range of a UI object, or the mode of list). As this is my first foray into releasing things publicly, I'm sure there are numerous improvements that could be made - so feel free to mess around and make suggestions. I hope some of the work may be helpful...

-Joe Branciforte

geraldg@gmx.de's icon

Nice abstracions! I didnt test them yet, but they seem to be very useful! Thaks for sharing!

Gerald

(karrrlo)'s icon

nice, some interesting utilities in there .
thanks for sharing ;)

Stefan Tiedje's icon

Joe Branciforte schrieb:
> I recently finished a batch of 50 utility abstractions for max and
> msp.

A nice collection, congrats...

the pattrrecall/pattrgate creates a stack overflow by just opening it
though...

And there is a jb.thru.help in the help folder, which is the same as
jb.pass.help, I guess its obsolete...

I made a text file to include this collection into my Overviews patch:

Save this as jb.utilitie.txt, and place it into
Documentation/overviews/3rdParty/
(In case my overviews are installed...)

Author, Control;
jb.block, block the next n items from an input stream;
jb.delay, delay for any kind of input, in ms or events;
jb.pass, allow a percentage of input to pass through;
jb.uzi, send out a fast-as-possible linear count;
Author, Data;
jb.=, test the equality of various data types;
jb.!=, test the unequality of various data types;
jb.change, separate dynamic and static input;
jb.decode, decode data using index numbers;
jb.encode, encode data using index numbers;
jb.match, pass input list if nth element(s) matches search term(s);
jb.multichange, "change" for any number of indexed variables;
jb.sieve, a dynamic data sieve;
jb.skeptic, don't "believe" input until it occurs n-times in a row;
Author, List Processing;
jb.iter, iterate a list at a variable rate;
jb.slice, slice a list in a multitude of ways;
jb.tandem, iterate two lists in tandem;
jb.unique, remove duplicates items from a list (preserving order);
jb.weave, weave two lists together using a variable pattern;
jb.xerox, extend a list with copies of itself;
Author, Numbers;
jb.%, modulo operator with integer quotient;
jb.delta, calculate difference between successive values;
jb.fi, separate floats and ints, treat whole-number floats as ints;
jb.float, store and interally operate upon a floating-point value;
jb.grid, snap numerical input to a grid;
jb.histo, a histogram for floating-point numbers;
jb.interp, linear interpolation between two numerical lists;
jb.normalize, return the normalized weights of a numerical list;
jb.series, perform basic operations a 12-element series;
jb.split, float/list version of 'split' object;
Author, Pattr-family;
jb.pattr.mml, return the min/max/length of all pattr-enabled objects;
jb.pattrgate, a system of initiating pattrstorage recalls with no output;
jb.pattrrecall, a system of initiating pattrstorage recalls with no output;
Author, Statistics;
jb.collstats, return statistics on a coll;
jb.mean, calculate the mean of alist with n% trimmed;
jb.median, return the median value of a numerical list;
jb.mode, return the mode of a list;
jb.range, return the range of a list with n% trimmed;
jb.sum, return the sum of a list of numbers;
Author, Strings;
jb.itoa, queue-based integer to ASCII conversion;
jb.strinsert, insert a substring at the specified position;
jb.strjoin, join two strings;
jb.strlen, return the length of a string;
jb.strrev, reverse a string;
jb.strsieve, separate characters out of a string;
jb.strslice, slice a string at the specified position;
jb.strsub, return the position(s) of a substring;
Author, User-interface;
jb.cellblock, storage mechanism for jit.cellblock;
jb.label, label objects with name or objectclass;
jb.mml, return the min/max/length of named UI objects;
jb.taptempo, basic tap-tempo implementation;

--
Stefan Tiedje------------x-------
--_____-----------|--------------
--(_|_ ----|-----|-----()-------
-- _|_)----|-----()--------------
----------()--------www.ccmix.com

lists@lowfrequency.or's icon

Hi Joe,

What sort of license do you have for these? BSD, GPL, Creative
Commons sharealike 2.0?

Cheers
Evan

On Aug 6, 2007, at 11:20 PM, Joe Branciforte wrote:

>
> I recently finished a batch of 50 utility abstractions for max and
> msp. They do things like list processing, data matching/routing,
> string functions, statistics, and some awkward things useful to my
> own work (like determining the internal range of a UI object, or
> the mode of list). As this is my first foray into releasing things
> publicly, I'm sure there are numerous improvements that could be
> made - so feel free to mess around and make suggestions. I hope
> some of the work may be helpful...
>
> jb.utilities: http://www.greyfade.com/joe/maxmsp.html
>
> -Joe Branciforte

pvillez@gmail.com's icon

many thanks for sharing, these are very useful, Pere

On 07/08/07, Joe Branciforte wrote:
>
> I recently finished a batch of 50 utility abstractions for max and msp. They do things like list processing, data matching/routing, string functions, statistics, and some awkward things useful to my own work (like determining the internal range of a UI object, or the mode of list). As this is my first foray into releasing things publicly, I'm sure there are numerous improvements that could be made - so feel free to mess around and make suggestions. I hope some of the work may be helpful...
>
> jb.utilities: http://www.greyfade.com/joe/maxmsp.html
>
> -Joe Branciforte
>

--
www.centuryofnoise.com
www.perevillez.com

JBranciforte's icon

> the pattrrecall/pattrgate creates a stack overflow by just
> opening it though...

What happens when you just open the abstraction themselves? I want to fix this as soon as possible. Thanks for the heads-up.

> What sort of license do you have for these? BSD, GPL, Creative
> Commons sharealike 2.0?

I don't have any license. Yet...

-Joe

jln's icon

Quote: JBranciforte wrote on Wed, 08 August 2007 14:58
----------------------------------------------------
> > the pattrrecall/pattrgate creates a stack overflow by just
> > opening it though...
>
> What happens when you just open the abstraction themselves? I want to fix this as soon as possible. Thanks for the heads-up.

Opening the abstraction's patch works fine.

Just want to say thanks anyway. Moreover, I just gave a quick look but your pattrmap thing looks more than nice !

Best,
Julien

Anthony Palomba's icon

so does that mean we are free to use this for what ever we want?

----- Original Message -----
From: "Joe Branciforte"
To:
Sent: Wednesday, August 08, 2007 7:58 AM
Subject: [maxmsp] Re: some new max/msp utilities

>
> > the pattrrecall/pattrgate creates a stack overflow by just
> > opening it though...
>
> What happens when you just open the abstraction themselves? I want to fix
this as soon as possible. Thanks for the heads-up.
>
>
> > What sort of license do you have for these? BSD, GPL, Creative
> > Commons sharealike 2.0?
>
>
> I don't have any license. Yet...
>
>
> -Joe
>

JBranciforte's icon

> so does that mean we are free to use this for what ever we want?

yes, free to use. unless you want to pay me large sums of money to use them. that would also be fine.

joe

JBranciforte's icon

Does this solve the jb.pattrgate/pattrrecall helpfile problem? I can't reproduce the problem on my machine, so this is just a conjecture.

Max Patch
Copy patch and select New From Clipboard in Max.

Stefan Tiedje's icon

Joe Branciforte schrieb:
> What happens when you just open the abstraction themselves? I want to
> fix this as soon as possible. Thanks for the heads-up.

The feedback is obviously in the help file.
The pipe 100 seems problematic in general. Maybe better prevent feedback
in a different way...

> I don't have any license. Yet...

Look into GPL or LGPL, both would be appropriate for this kind of stuff.
Creative Commons is also interesting, but more for artistic/final
output, not so much for a library...
If there is no license yet, everybody who wants to use it would have to
ask you first...

Stefan

--
Stefan Tiedje------------x-------
--_____-----------|--------------
--(_|_ ----|-----|-----()-------
-- _|_)----|-----()--------------
----------()--------www.ccmix.com

Stefan Tiedje's icon

Joe Branciforte schrieb:
> Does this solve the jb.pattrgate/pattrrecall helpfile problem? I
> can't reproduce the problem on my machine, so this is just a
> conjecture.

This doe not create a stack overflow, though I don't know whats
significantly different... I can only see an additional print...

I'd still recommend to get rid of pipe, I avoid pipe like the devil
avoids the holy water...

Stefan

--
Stefan Tiedje------------x-------
--_____-----------|--------------
--(_|_ ----|-----|-----()-------
-- _|_)----|-----()--------------
----------()--------www.ccmix.com

Roald Baudoux's icon
JBranciforte's icon

Maybe this is part of the problem, just guessing...

Where do you see an instance of "pipe"?

Confused,
Joe

arne_e's icon

> Where do you see an instance of "pipe"?

This brings up another difficulty in Max - trying to find a specific
object in a myriad of subpatchers.

Yes, I know I can search as text in a text editor, as well as the
usual Find, but it certainly isn't easy to go through huge patches to
find certain objects...

JBranciforte's icon

OK, after a few minutes of sleuthing I figured it out. Apparently there was was a very old version that used pipe. Here are the updated abstractions (also reflected in future downloads)...

jb.pattrgate:

Max Patch
Copy patch and select New From Clipboard in Max.

jb.pattrrecall :

Max Patch
Copy patch and select New From Clipboard in Max.

Joe

yair reshef's icon

agreed

On 8/10/07, Arne Eigenfeldt wrote:
>
> > Where do you see an instance of "pipe"?
>
> This brings up another difficulty in Max - trying to find a specific
> object in a myriad of subpatchers.
>
> Yes, I know I can search as text in a text editor, as well as the
> usual Find, but it certainly isn't easy to go through huge patches to
> find certain objects...
>

vade's icon

I have to say, Safari 3 and Firefox's highlighting/as you find would
be really nice to 'find' the object

searching for 'sel 0' would give me a forward/back and would snap the
origin of the viewport to the current 'sel 0' and put a colored
highlight box around it.

Hitting next takes me to the next sel 0 (or whatever my search term
was) and snaps to that.

- bored on a rainy friday trying to do my best to NOT patch.
On Aug 10, 2007, at 2:31 PM, yair reshef wrote:

> agreed
>
> On 8/10/07, Arne Eigenfeldt wrote:
> > Where do you see an instance of "pipe"?
>
> This brings up another difficulty in Max - trying to find a specific
> object in a myriad of subpatchers.
>
> Yes, I know I can search as text in a text editor, as well as the
> usual Find, but it certainly isn't easy to go through huge patches to
> find certain objects...
>

v a d e //

www.vade.info
abstrakt.vade.info

Stefan Tiedje's icon

Roald Baudoux schrieb:
> Apart from cases of patches with loops, is there any other reason?

In the past there where performance hits with pipe it has to store
anything which is going into it, and copy it back. It also had some
stability problems, but that might have been fixed...
In most cases, a combination of [zl reg] and delay is sufficient, that
stores just one message...

Stefan

--
Stefan Tiedje------------x-------
--_____-----------|--------------
--(_|_ ----|-----|-----()-------
-- _|_)----|-----()--------------
----------()--------www.ccmix.com

Stefan Tiedje's icon

Arne Eigenfeldt schrieb:
> This brings up another difficulty in Max - trying to find a specific
> object in a myriad of subpatchers.
>
> Yes, I know I can search as text in a text editor, as well as the
> usual Find, but it certainly isn't easy to go through huge patches to
> find certain objects...

You mean the useless find... ;-)

Even worse, if an objects prints an error, its pretty hard to find it.
The only way I know of, is to delete more and more parts of the patch
till it vanishes and then go on from there. Not very effective. I hope
there are some debugging aids boiling up for Max 5...

Stefan

--
Stefan Tiedje------------x-------
--_____-----------|--------------
--(_|_ ----|-----|-----()-------
-- _|_)----|-----()--------------
----------()--------www.ccmix.com

barry threw's icon

Of what I have seen of the debugging tools in Max 5, everyone should
be very happy. Myself included.

b

On Aug 15, 2007, at 9:44 AM, Stefan Tiedje wrote:

> Arne Eigenfeldt schrieb:
>> This brings up another difficulty in Max - trying to find a specific
>> object in a myriad of subpatchers.
>> Yes, I know I can search as text in a text editor, as well as the
>> usual Find, but it certainly isn't easy to go through huge patches to
>> find certain objects...
>
> You mean the useless find... ;-)
>
> Even worse, if an objects prints an error, its pretty hard to find it.
> The only way I know of, is to delete more and more parts of the patch
> till it vanishes and then go on from there. Not very effective. I hope
> there are some debugging aids boiling up for Max 5...
>
> Stefan
>
> --
> Stefan Tiedje------------x-------
> --_____-----------|--------------
> --(_|_ ----|-----|-----()-------
> -- _|_)----|-----()--------------
> ----------()--------www.ccmix.com
>
>

Barry Threw
Media Art and Technology

San Francisco, CA Work: 857-544-3967
Email: bthrew@gmail.com
IM: captogreadmore (AIM)
http:/www.barrythrew.com