patch repositories?

schedal's icon

hello max/msp friends,

I was wondering if there is a good patch repository on the net?

I know about the object and library site where I can find lots of really
cool objects and components, but what about completed patches?

I'm looking for some simple effects that I can peek under the hood and
then modify to my needs.

Thanks!

Seb.

Peter McCulloch's icon
schedal's icon

thats really disappointing, with thousands of people all using max-msp;
why reinvent the wheel over and over again...?!?!
:/

Peter McCulloch's icon

While looking at other people's patches can be very helpful, too many
examples can sometimes stifle creative thinking. I'm teaching a class
in MaxMSP and spend a good deal of time trying to get my students to
think of objects in an abstract sense, rather than just the examples
they've seen. For example, consider a synthesizer that comes with 5000
preset sounds. Most people simply won't bother making their own
sounds. I think example patches are great touchstones, but I think
it's much more important for people to develop their own style and
processes. I generally prefer not to give people fully-realized
patches because it limits their imagination. I would much rather give
the germ of the idea, and let them run with it, so that they come up
with something that is their own.

I do agree that there should be certain things that are standardized in
Max. A really decent (no offense intended to anyone) reverb that came
with Max, much like the omx objects, would be really great. That being
said, there are often many, many ways to solve a problem in Max, and
different ones will be appropriate in different contexts. (bearing in
mind issues such as speed, scaleability, flexibility, elegance, etc.)
Oftentimes, I've learned more by reinventing the wheel rather than
using something off-the-shelf, and in building that wheel, I've stuck
in some square parts where there should have been round ones, and
gotten some really interesting sounds that set me off on a completely
different path that I probably wouldn't have thought of outside of that
context. For instance, try throwing kink~ into the read heads of a
pitchshifter...

The one lesson I keep (re)learning in Max is that monolithic solutions
(e.g. the perfect mixer, multitap delay, etc. that does everything)
rarely exist because they can't anticipate all the possible ways they
can be used, and that, for me at least, it's often more interesting to
put flawed but interesting processes together. My patches are
constantly changing and reflect my evolving thoughts about how to
organize processes. While I'm happy to show them to people, I'm
ultimately writing music and not software, so the documentation is what
I need, rather than enterprise-level. (though there are many of us who
are writing software) As an example, Pattr is a really great and
amazing preset system, but there are still lots of feature requests for
it because we all use it in slightly different ways. (what should be
the scope of a preset system?) Similarly, I've seen patches that tried
to be the universal systems for creating pieces, and, more often than
not, they lack character. Of course, these are just my opinions.

I think that if we could have a dependency tracker in the build
dialogue, that might provide a better way of encapsulating patches for
online distribution.

Peter McCulloch

schedal's icon

Thanks Peter for your input.

The whole objective in teaching is to pass on ones mistakes and
successes onto another; teaching is also about efficiency: how can I
pass on more information to new generations faster and more efficiently
than I had to learn?

If I make all my students constantly build things from scratch, its good
for the theory, but its bad for any kind of real world application of
your skills. Not only that, but if I always build things on my own; i
will continually make the same mistakes, over and over.

Its like teaching an artist to paint with a few lessons, and then
telling them they can't look at any other artists paintings anymore,
because they might start copying them and therefore make the same bad
paintings their peers are making...?????

I am not looking for example because i don't know how to use max, i'm
looking for examples so I can build a complex architecture system using
modular components, in a reasonable amount of time. Since I need many
standard component components, it would seem logical that these already
exist for me to copy, integrate and modify to fit my architectural
requirements - but somehow in max/msp land; these do not exist
publicly... [i am starting to discover].

Are people paranoid about their work? People seriously need to become
less possessive about their "creations", or we all suffer. Art doesn't
thrive in a cupboard.

While I am no fan of Reason, the software does come with a community
website with many-many patches to download and examine... th benefit of
this platform is huge, why would max/msp users be except from such benefits?

f.e's icon

Well, since i'm a max user, it's a subject we have deal with a thousands
times

pulse wrote:
> Thanks Peter for your input.
>
> The whole objective in teaching is to pass on ones mistakes and
> successes onto another; teaching is also about efficiency: how can I
> pass on more information to new generations faster and more
> efficiently than I had to learn?
>
> If I make all my students constantly build things from scratch, its
> good for the theory, but its bad for any kind of real world
> application of your skills. Not only that, but if I always build
> things on my own; i will continually make the same mistakes, over and
> over.
No, because mistakes don't allow anything to work in max. So you always
have to struggle yourself to get it right, and, meanwhile, your
knowledge increases drasticaly. In my case, i'm on one of the simpliest
things to do with max (a polyphonic sample player) since a long time,
while i've already achieved much more complex engines ! Yes, a few
example patches would help, but i would have to rewrite them all on my
own anyway...
>
> Its like teaching an artist to paint with a few lessons, and then
> telling them they can't look at any other artists paintings anymore,
> because they might start copying them and therefore make the same bad
> paintings their peers are making...?????
Painting is a result. Max is a way to paint.
>
> I am not looking for example because i don't know how to use max, i'm
> looking for examples so I can build a complex architecture system
> using modular components, in a reasonable amount of time. Since I need
> many standard component components, it would seem logical that these
> already exist for me to copy, integrate and modify to fit my
> architectural requirements -
Buy Native Instrument's Reaktor instead, really !
> but somehow in max/msp land; these do not exist publicly... [i am
> starting to discover].
>
> Are people paranoid about their work? People seriously need to become
> less possessive about their "creations", or we all suffer. Art doesn't
> thrive in a cupboard.
When i think about all the time given by all the list members for this
kind of gratification, lord, i swear i could throw you a glass of bear
(not wine, it's hard to clean off shirts with) just to wake up your mind.
Everybody here share a lot of things without asking money for. Think
this list is the place where i learned max, without the need of any kind
of "classical" teaching. Just browse this week's messages, you'll find a
lot of things : patcher's ideas, externals, abstract solutions... Go to
maxobjects.com, thanks Mathieu and Ninh for the FREE work, check all
these objects, abstractions and classes here, for god's sake !!!!!!!!!!
Made with the free time of teachers, students, artists and much more.
Stop me i'm gonna kill someone...
>
> While I am no fan of Reason, the software does come with a community
> website with many-many patches to download and examine... th benefit
> of this platform is huge, why would max/msp users be except from such
> benefits?
One more time : go buy Reaktor and you'll be granted to access the
community library anytime you want.
>

schedal's icon

> While I am no fan of Reason, the software does come with a community
> website with many-many patches to download and examine... th benefit of
> this platform is huge, why would max/msp users be except from such
> benefits?

arg! i mean to say "reaktor", no "reason"; sorry 'bout the typo.

schedal's icon

> One more time : go buy Reaktor and you'll be granted to access the
> community library anytime you want.

please don't misunderstand, i speak from frustration, not anger. i
really love max, not reaktor. i realize there is a lot of resources out
there to building your own patches and excellent externals, this is not
an issue - its something i praise. It's just surprising that patches are
not readily available in any significant form - and I can't see why this
is such a horrible thing to ask, I can't see why "more information" is
worse than "less..."

Anyways, enough said,

with kind,

Seb.

jln's icon

I'm not sure it is that surprising in fact. On the contrary of
Reaktor library, for example, I think that a lot of patches are built
for one's particular project. And I'm quite sure some of those patch
wouldn't have any sense outside of the projects (if they can work at
all in some cases). There are still some part of patches that can be
useful in any context, but that's what that is shared on the list. I
understand it can be frustrating for one's curiosity but I'm sure
things are better this way, to learn. At least they are for me.

Just my 2 cents.

Julien;

PS: wow. My English is awful on this post. :)

nathan wolek's icon

On Mar 17, 2006, at 8:37 AM, pulse wrote:
> It's just surprising that patches are
> not readily available in any significant form

I think you want one thing but are saying something else. There are
*tons* of patches, objects, abstractions, art, etc out there. It is
simply de-centralized. There is not one web site to log onto and
download from.

It's out there, you just have to do more digging. And never hesitate
to drop some one a note on the list. 9 times out of 10 they will
send you the patch or code. Heck, even cycling74 will send you
certain bits of source if ask nicely and have a valid reason.

Max is interactive in a variety of ways. It's not just about the UI.
Hey, put that on the next poster. :)

-----
Nathan Wolek
nw@nathanwolek.com
http://www.nathanwolek.com

Peter McCulloch's icon

Cort Lippe has several of his pieces posted online at his website (I
don't have the url handy), such as Music For Flute & Computer, and
Clarinet and Computer. Those are definitely worth looking at, and have
some pretty intricate behaviors. Not a lot of comments the deeper you
go, so be ready to dive into the code.

Peter McCulloch

Timothy Place's icon

If you are interested in sharing patches, and in structring them for re-use, it might be good to check out Jamoma:
http://jamoma.org/

best wishes,
Tim

robotic-audio's icon

Yes ! check out Jamona ! it has a very beautifull structure.... very open, easy to use, reuse, mod or whatever you need..... and it's perfect for what you described, making a large system of many components.....

Gary Lee Nelson's icon

Did anyone mention MaxObjects.com?

While I agree in principle with Peter McCulloch, I find examples most useful
in my teaching of Max/MSP/Jitter and in my own creative projects. I temper
the potential dependency on these examples by showing in class ways that
they can be modified. It is there that I address issues of generality. I
have not found that examples stifle creativity.

My personal difficulty with the wealth of Max examples and patch sets is
that it becomes difficult to remember or find which ones I thought would be
useful. Reflecting on my own learning of music technology, I owe almost
everything to the generosity of those people who were wise enough to share.

Cheers,
Gary Lee Nelson
TIMARA Department
Oberlin College
www.timara.oberlin.edu/GaryLeeNelson

Joshua Kit Clayton's icon

Btw, we've working on making the new c74 web site better for this
sort of thing, and hope for it to improve. Please check out the
resource guide (specifically the section "Max/MSP/Jitter Patches/
Applications"):

And if any people have items they would like listed in the resource
guide, please email them to resourceguide@cycling74.com

Lastly, this mailing list itself is a great archive of patches.
Simply search on the subject you're looking for and there is often a
patch solution presented by one or more users.

-Joshua

Mathieu Chamagne's icon

There is a category in www.maxobjects.com called "patches".
We could add a filter in the search engine to search only for patches.
For the moment, only a few patches have been added by users, but MaxObjects
could be a cool Max patches database too. It's up to you (users) to add your
patches you want to share...

Mathieu Chamagne
www.maxobjects.com

Stefan Tiedje's icon

Peter McCulloch wrote:
> While looking at other people's patches can be very helpful, too many
> examples can sometimes stifle creative thinking.

I agree, but... the main source for learning is for me actually this
list. Especially if pretty simple problems show a lot of very different
approaches. Sometimes it looks like a competition for the most elegant
solution. These are the best examples you can actually learn from. If
you have a ready made patch, you might learn some not so elegant
solutions, but if you compare patches aimed at the same problem, you
learn much more, especially if you realized an own version before.

In terms of patches, I recommend to go to Maxobjects and just look for
abstractions. Beside my own library, I'd recommend the RTC from
Karl-Hein Essel. He also has some "real" patches one could learn from.
And finally though Jitter related the huge collection of Andrew Pask
weekly abstractions. Available at the C74 site. A lot of stuff is also
on the c74/share pages.

Stefan

--

[][] [][][] [][] [][][]
[][][][][][][][][][][][][][][]

Stefan Tiedje
Klanggestalter
Electronic Composition
&
Improvisation

/~~~~~
\ /|() ()|
))))) )| | |( \
/// _/)/ )))))
___/ ///

-------------------------x----
--_____-----------|-----------
--(_|_ ----|-----|-----()----
-- _|_)----|-----()-----------
----------()------------x-----

14, Av. Pr. Franklin Roosevelt,
94320 Thiais, France
Phone at CCMIX +33-1-57 42 91 09

dlurk's icon

> is such a horrible thing to ask, I can't see why "more information" is
> worse than "less..."

Would anyone else be interested in a SourceForge patch repository? Does
anyone know if that would be a bad idea, or have specific suggestions on
how it should be organized?

To address "digging deeper" on the web: max patches are relatively
difficult to search for. We have an application with a very common
name, a significant* chunk of the user population is more interested in
being elite and "artistic" than communicating clearly, and there is a
strong (understandable) tendency to share utilities but not systems. So
what if your system is unique? Unless you need to keep it private for
some reason, why not share? You don't know in most cases exactly how
unique your needs are... maybe less so than you think.

* They're significant because they like to show off what they do, but
they don't like to explain it... which is bad news for searching.

So if anyone has any great suggestions on how to search for patches,
please share!

I lack a good computer science background, and one of the major
stumbling blocks for me with Max - it's been a few years of work in
spare time - has been structuring my large project properly. There are
all sorts of subtle issues that I could have avoided had I any exposure
to other working projects of a similar scale (mine is a framework for
modules, very open ended). I find it almost sad when new features solve
a problem for me. It means that someone else more skilled could have
solved my problem a long time ago.

But the fact is that everything I have learned about good structure in
Max, which is almost certainly not enough, I could have learned just as
well from studying other patches. I agree with the pedagogical
avoidance of solving other people's problems - small problems, exercises
if you will, are definitely good to figure out on your own. On the
other hand, when we're talking about the benefits that a real computer
science education or many years of Maxing or just plain innate
brilliance can confer, cutting a few years of effort out of my life and
leaving me with the same understanding (or better) would be welcome.
Because while I enjoy programming, I'm a composer and a musician, and
the music is more important to me. (Yes, Max is the best environment
for me, I've looked at the others available.)

Esoteric or generalizable working projects of significant size are
almost never seen. It is not as if studying a patch is necessarily easy
or quick, especially for a beginner. There is potentially quite a lot
of someone else's thought to understand! We can talk about unique
individual intent all we want, but I can't believe that there aren't
basic methodologies or structural precepts that are useful to learn, and
I can't believe that these aren't represented in the elegant Max-works I
know exist out there... somewhere. Design patterns anyone?

As a final note, for what it's worth, I am not a believer in the
artistry of unintended consequences in this particular case. Sure
they're fun - but my big Max project is something that I can visualize
precisely as a working app. I know how I want it to work. I don't want
it to work some other way because it won't work some other way (except
maybe in re GUI). If I could better understand how to implement it from
the start, the work would go faster, it would be available sooner for
myself and others to play with, and I'd be a lot happier... because
making music is what I want to do. Max is a means to an end. As an end
in itself, it is less satisfying than the problem it is intended to solve.

Why is there any backlash at all when someone asks for more exposure to
others' techniques? That is an unnecessarily elitist, foolish, and
reactionary attitude. (Apologies to all the self-taught geniuses out
there that are too advanced to benefit from the efforts of others.) I'm
as annoyed as anyone by people who come to the list for questions that
could be resolved faster and/or better by the tutorials or a quick docs
search, but come on. This is different. Accelerating the pace of
learning in the community will only benefit the community. When we ask
people to RTFM or use the bug reporting guidelines, that's the point.
When we share interesting work, that's *still* the point.

Roman Thilenius's icon

> Are people paranoid about their work? People seriously need to become
> less possessive about their "creations", or we all suffer. Art doesn't
> thrive in a cupboard.

some people are paranoid, usually those which copy
most pof their work from others.

but i could tell you about 20 people offhand which
share at least some of their patches, including but
not limited to: litter, 110, eijes, tap tools v.1,
st.ools and whatnot (sorry about the other 15 which
i did not mention).

you said you know maxobjects.com. did you see that
several files up there _are patches?

then what about cycling74.com/share/, whats wrong
about that?

life is so simple if you know how google works!
http://www.google.de/search?hl=de&ie=ISO-8859-1&q=ma x+msp+patch&meta=

Roman Thilenius's icon

> Would anyone else be interested in a SourceForge patch repository?

not sure if open soource works with max patches.
well not that i would see a reason why cycling
should have a problem with it but hm. just a matter
of philosophical program.

sourceforge would be fine with me, once i almost put
my plug-ins up there.
it would introduce a new idea to making abstractions
or programs, because it suggests public, anonymous,
cooperation (not just with friedns like we all do
sometimes)
sourceforge means please finish my patch, solve my
bugs, add your ideas to my program.
i like that.

dlurk's icon

>> Would anyone else be interested in a SourceForge patch repository?
>
> not sure if open soource works with max patches.

My feeling is that the development environment does not restrict the
terms by which its products may be shared. Anything posted to the list
is essentially public domain. So I think it is a perfectly valid use of
SourceForge for people to share their patches with the share-friendly
license of their choice.

> sourceforge means please finish my patch, solve my
> bugs, add your ideas to my program.
> i like that.

I like it too. I also think they allow for user/context varying
permissions. I'll try to look into it more, talk to a few knowledgeable
people, and see how such a project (perhaps umbrella project) would be
structured.

Stefan Tiedje's icon

dlurk wrote:
> a significant* chunk of the user population is more interested in
> being elite and "artistic" than communicating clearly, and there is a
> strong (understandable) tendency to share utilities but not systems. So
> what if your system is unique? Unless you need to keep it private for
> some reason, why not share? You don't know in most cases exactly how
> unique your needs are... maybe less so than you think.

Its less about the uniqueness, its about how a patch is aimed at an
individual piece. I started several "universal" approaches, and always
came back to something more specific to a given piece.
This is not reenventing the wheel, big parts of it are reused all over
the place. As soon a concept seems worthwhile to keep for another
project, I'd throw it into my collections (which are shared for years).

I just do not have the feeling, that my performance patches are that
usefull, because they are cluttered with little quick fixes and bugs I
can work around as I know the whole thing. The fixes ususally serve one
piece.

A performance patch is never ever ready. If you share it, people will
ask thinks you can't or won't have time to answer as the focus already
shifted to something else.

Its like shareing your kitchen whithout having done a cleanup. For
personal use its fine but... even if you do the cleanup, others won't
know where to find the pan. Performance patches usually have no
documentation at all, they don't need to, because you made it for yourself.

Whenever I see those patches of others, I think its way easier to do it
myself (and obviously different) than digging into undocumented code.
This is even true for projects which are aimed at a public audience like
Klaus Filips looper which includes documentation and is set up very
modular (of course its also because my own patching does cover a lot of
what Klaus' patcher does as well).

Stefan

--

[][] [][][] [][] [][][]
[][][][][][][][][][][][][][][]

Stefan Tiedje
Klanggestalter
Electronic Composition
&
Improvisation

/~~~~~
\ /|() ()|
))))) )| | |( \
/// _/)/ )))))
___/ ///

-------------------------x----
--_____-----------|-----------
--(_|_ ----|-----|-----()----
-- _|_)----|-----()-----------
----------()------------x-----

14, Av. Pr. Franklin Roosevelt,
94320 Thiais, France
Phone at CCMIX +33-1-57 42 91 09

Stefan Tiedje's icon

dlurk wrote:
> Anything posted to the list is essentially public domain

I don't think so (in Germany f.e. you even can't give away your authors
rights at all), but maybe its time to think about licensing, I'd suggest
to assume anything which is posted to the list could be defined as GPL
UNLESS NOTED DIFFERENTLY. And put this up as a general rule. One of the
more restrictive Creative Commons licenses could also be choosen, but as
we usually do not think about licensing (In most cases its no issue
anyway because of lack of artistic/inventional value) its better to have
a default than nothing.

A rule like that would keep most peoples interests of at least being
mentiond and still would retain the freedom of the author to license it
differently.

Stefan

--

[][] [][][] [][] [][][]
[][][][][][][][][][][][][][][]

Stefan Tiedje
Klanggestalter
Electronic Composition
&
Improvisation

/~~~~~
\ /|() ()|
))))) )| | |( \
/// _/)/ )))))
___/ ///

-------------------------x----
--_____-----------|-----------
--(_|_ ----|-----|-----()----
-- _|_)----|-----()-----------
----------()------------x-----

14, Av. Pr. Franklin Roosevelt,
94320 Thiais, France
Phone at CCMIX +33-1-57 42 91 09

schedal's icon

Hello maxers!

Happy to see a positive turn around, and very cool that cycling is
considering this addition to their services. A new field in maxobjects
would be wonderful!

If people started to share patches, the issue of "neatness" would
automatically improve.

What I would envision is a database organized like the examples folders,
delays all in one place, compressors in another etc. with number of
downloads, comments etc. as useful value-added additions.

Like others on this list, I would rather spend what little time I have
in this life improving upon the successes of my peers. I believe that
the more current our root-base information is, the more innovation we
can stimulate. Standard effects have become common, everyone knows what
they are, so we can only benefit from the audio-brain equivalent of an
engram.

At the end of my current project I will have developed [one way or
another] 16+ re-usable modules [aka patches]. The modules will cover a
variety of different processing techniques and each one will have
standardized input/output protocols as well as an additional input for
reset and deactivation commands [for logic switching and processor load
management].

This approach is taken not only because of the huge flexibility and
clarity that results, but also because it means that a team of people
can develop each component module independently and then merge their
work together through a set of common framework standards. The benefit
is huge, and complex software design suddenly becomes manageable and
approachable.

Since from what I gather this concept of standardized patch development
is kinda off-beat to the one-off performance based development; I'll
definetly be considering publishing them to what-ever-source locations
we may deem centralized enough to store them.
;)

With kindness,

Seb.

nick rothwell | project cassiel's icon

I think I agree with Stefan. I'm really not convinced (based on my
own creative process, and 15+ years of working with Max) that there's
an obvious path to an easy-flowing exchange of sophisticated patchers
and libraries.

Max is not a high-level programming language; there's no real
abstraction, and the modularity mechanisms provided are quite low
level compared to the conceptual structures used in any non-trivial
patcher. It's rarely possible to just lift out something like (say) a
granular synthesis engine, bung it onto a web site, and have everyone
use it as-is.

I think modular design - or, perhaps, I mean reusable design - *is*
possible in Max, but it requires extra effort over and above what's
involved in the project to hand. My Max coding tends to be pretty
modular, but it's rarely reusable - things get stripped down and
reworked for each new project.

Since the abstraction mechanisms in Max are fairly basic, we tend to
develop/adopt various kinds of frameworks in which to code - send/
receive matrices, mixers, dispatchers, timebase followers, that kind
of thing. This makes the content patchers even less modular.

(So, I do actually have large bodies of reusable code, such as the
timebase allocation system, the binder/scaler machinery, and the HID
drivers - but they're only reusable if you buy into the entire
framework, or go away and implement a pile of shims to fit them into
something else.)

Since lifting some useful patcher code out of a project is likely to
result in something which is still attached by tendrils and bits of
wire to its enclosing framework, I suspect people are loathe to do it
because of the implied support effort, as other people try to work
with the code and find it difficult to isolate.

(These criticisms of Max don't hold for something like MXJ, where the
software system provides support for modularity and encapsulation.
I'm already rolling out MXJ libraries for sharing, and it's a pretty
easy process, much easier than doing so purely in the Max world.)

    -- N.

nick rothwell -- composition, systems, performance -- http://
www.cassiel.com

Matthew Aidekman's icon

> "I think modular design - or, perhaps, I mean reusable design -
> *is* possible in Max, but it requires extra effort over and above
> what's involved in the project to hand. My Max coding tends to be
> pretty modular, but it's rarely reusable - things get stripped down
> and reworked for each new project."

first of all nick, thank you for highlighting something thats been on
my mind lately. It's odd how max provides an existing level of
organization and structure and projects seem stay at that level.
Personally I believe that max has the capability to yield far better
results than it's higher level modular counter parts such as reaktor
or reason for the same tasks. This is an argument for getting some
larger standard building blocks together in max. Which one can use
OR take apart. I've been shot down before on this but its just how I
feel. Jamoma should help. sorry tim, I kinda drifted away.

-matt

Roman Thilenius's icon

> Its less about the uniqueness, its about how a patch is aimed at an
> individual piece. I started several "universal" approaches, and always
> came back to something more specific to a given piece.

it is a borderline experience isn t it.
of course you should not share every [p stuff] you
ever made, nobody will be interested in it.

but there is much more behind sharing abstractions
than the patches and their usefulness.

i have never needed or used taptools or your patches,
for example. they are all useless for me.
but it is interesting to see how other people
make their abstractions, where they see the right
point for making interfaces (breaking their code up
into subpatchers), or you can learn from their patches.
(which is why i prefer patches over externals)

so when i ever want to learn about scripting, i know
who i have to email. i wouldn t know this when you
would not have released your objects.

there are about 1000 ideas and methods in my
imaginary library, but i have only made like 50
"objects" and shared like 30 of them.
2 of them are even based on other peoples work
(dudas newverb and some other thing) and i kind of
only changed the layout.

i would never exspect that anyone uses one of my
stupid pseudo objects, but i am sure it is interesting
for many to look at them.
and the more i _try to make generic stuff, the more i
learn about organisation of code.
and the more i will be able to reuse the patch later.
why would anyone write [110.pythagoras] new when he
needs it again in six weeks? some things deserve to
be generalised.

VG's icon