Forums > MaxMSP

Is this tutor right or wrong?

October 5, 2006 | 3:31 pm

I’m not asking for any advice on building this project…just any comments regarding a rather harsh reply i’ve recieved from someone who, in my opinion anyway, knows less than they think!

This is a suggestion for a potential final year degree project posted on our university website:

TUTOR POSTS:
"Project: Drum Pattern Generator

Aim: To build a piece of software capable of generating drum patterns. The user should be able to select a style, adjust some sliders controlling the degree of "swing", "aggression", etc, and the program should generate a plausible drum pattern matching their requirements. The software does not have to be too accurate, getting one good pattern out of ten trials should be enough.

Requirements: Students wishing to undertake this project should have some programming experience. It would be possible to implement this project in Java or other general purpose programming languages, and it should be possible to author it in Macromedia though it might be fiddly programming the rules for generating patterns in Lingo. You should really be a drummer or have significant drum programming experience."

I POST A REPLY:
"This would certainly appear to be feasible in Max/MSP without too much difficulty, that is of course if you like that kind of thing. There’s been a lot of discussion about similar, often more complicated things on the forums at the development companies support forums.

Areas of research that you might also want to consider to start of for this would be "markov chains", which on face value would be feasible for performing the basis of this task.

(All advertising and product names removed, as per requested)"

END OF REPLY

(The advertising referred to was only Cycling 74′s 9 month academic licence! I did actually post a step by step approach to how i would do it in Max too, but as it was unecessarily patronising i deleted that part too).

TUTOR REPLIES:
"My background is in Artificial Intelligence, and I’d be thinking of Java/JSyn as the background for this. Markov chains are really a bit too simple an approach for what I envisage the system would be about. More advanced techniques such as generative grammars as taught in TECH2006 are beyond what is possible in Max/MSP, and I would expect a student taking this project to use a knowledge based approach. Again beyond what is possible in Max/MSP.

Your posting looks a bit much like an advertisement. Could you please remove the bit about products and prices or I’ll have to remove your whole posting."

END OF POSTS, (so far)

The temptation to get into a prolonged "debate" is pretty overwhelming although not necessarily beneficial to myself, so i’m going to avoid that, but before i post my final and succinct reply, (after which i’ll ask if we can agree to disagree), i thought i’d make sure i was roughly on the right track first!

My points:

Firstly: This is more than possible in Max/MSP (surely it’s what it was designed for).

Secondly: Whilst Markov Chains are an unecessarily simplistic approach, they would be a usefull starting point for someone researching this subject…after all i haven’t got all day to tell you how to do it!

Thridly: It would seem rather disingenuous to ban the "advertising" of a product (which is very reasonably priced) and perfect for the job!

(Surely if that logic was applied here then nobody would ever mention Tap.Tools for example!!!)

Any thoughts or comments would be really appreciated, (and yes, regardless the blokes a bit of a retard! ;-)


October 5, 2006 | 3:52 pm

On Oct 5, 2006, at 8:31 AM, john inder wrote:

> Firstly: This is more than possible in Max/MSP (surely it’s what it
> was designed for).

I have been working on a complex rhythm generator, called Kinetic
Engine, for quite a while now.

http://www.sfu.ca/~eigenfel/research.html

Not exactly what you describe, but musically intelligent. All
patterns and variations are generated by musical rules.

No Markov Chains, but some fuzzy logic (check out Peter Elsa’s
tutorial http://arts.ucsc.edu/EMS/Music/research/FuzzyLogicTutor/
FuzzyTut.html)

While Max may not be designed to do this kind of stuff easily, it is
certainly possible to do so, provided you adopt more structured
programming methods.


October 5, 2006 | 3:53 pm

Obviously this guy has not heard of a C/C++ compiler.
It is clearly something "beyond what is possible" for him.
Sometimes ignorance is hard to ignore. And although you
mean well in trying to inform someone, there’s not much
one can do about stubborness.

Anthony


October 5, 2006 | 4:01 pm

max can’t do this. try solidworks.


October 5, 2006 | 4:11 pm

Sure Max can do this, their may not be a native
object that does it. But you can do it in Java or C++.

Anthony

—– Original Message —–
From: matthew aidekman

Date: Thursday, October 5, 2006 11:06 am
Subject: Re: [maxmsp] Is this tutor right or wrong?

> max can’t do this. try solidworks.
>


October 5, 2006 | 4:20 pm

To his credit he does mention doing it Java however, in my opinion, for it to be of much use in a "musical manner" encapsulating it into the Max environment would be the way to go…and as such developing a Max Object, as Antonio has said, would surely provide the best of both worlds.

Matthew: I’ve just searched for solidworks and come up with a CAD package…is this what you’re referring to or have i missed the boat?


October 5, 2006 | 4:53 pm


October 5, 2006 | 5:08 pm

Well the "project" is purely theoretical as far as i’m concerned because i’m planning to develop something completely different…but the temptation to now build it over the next week or two and then go shove it into his, (choose orifice as you see fit), is rapidly building!

You’re all welcome to help contribute to a patch, just to show him that he’s a patronising (insert expletive), but with all due respect to everyone here…i feel compelled to complete my own, different, final project myself for my own academic integrity…although no doubt i’ll be asking all your advice along the way.

Fortunately, i won’t be inviting this guy to supervise my project as it will be in Max and he doesn’t know much about either Max or music, (having bought a full licence with the extremely generous academic discount, it’d be inappropriate not to).

I am looking through Peter Elsea’s Fuzz Logic at the moment to support any future arguments i’m going to have with him…but if you can build an "internet chat" patch in Max, i fail to see how you can’t develop what he’s talking about, (even if it is in some very roundabout kind of way).

After all, i’ve developed some surprisingly complex (and wonderfully textured) rhythms using delay lines attached to the outputs of a simple FFT based frequency dividing patch and then playing a single looped hit of a snare drum through it…but as he’s not a musician i don’t think he quite understands the concept of rhythm…bet he can’t dance either ;-)


October 5, 2006 | 5:42 pm

On 5 oct. 06, at 18:01, matthew aidekman wrote:

> try solidworks.

Nice one :-)

ej


October 6, 2006 | 12:45 am

I saw yet another CNN piece on Gil Weinberg (at Georgia Tech.) and his robotic drumming partner. Here is a collection of algorithms that allow the robot to transform its drumming patterns based on what it hears from the human drummer, measuring pattern similarities and balancing more patterned with more chaotic drumming. The video zooms in on an iBook (MacBook?) with a Max patch as he points out his "application" that runs the whole setup. I would venture that this is at least as complex as anything your tutor has in mind…
(Link to the CNN story: http://www.cnn.com/2006/TECH/10/03/musical.robot/index.html)

Tim


October 6, 2006 | 1:00 am


October 6, 2006 | 7:44 am

> After all, i’ve developed some surprisingly complex (and wonderfully textured) rhythms using delay lines attached to the outputs of a simple FFT based frequency dividing patch and then playing a single looped hit of a snare drum through it

In fairness to your tutor, this isn’t what he was asking for. A patch like that is relatively easy to create in Max. Musically interesting? Perhaps. Musically intelligent? No.

It’s relatively easy to create a drum grid, fill it randomly, and assign it to various drum samples. Do it several times, and you have a random drum machine. Again, while this may be musically interesting (for short periods of time), there isn’t any intelligence. A drummer would most likely not create such a pattern (at least not in this way).

Creating a patch that generates "plausible" drum patterns is actually harder than it seems. But Max can certainly do it.



f.e
October 6, 2006 | 2:42 pm

yeah :-o

f.e

Emmanuel Jourdan wrote:
> On 5 oct. 06, at 18:01, matthew aidekman wrote:
>
>> try solidworks.
>
> Nice one :-)
>
> ej
>
>
>


October 6, 2006 | 3:12 pm

I once made a very simple timed sample triggering system in Java and I can say that without extra libraries, Java is absolutely incapable of that task (the javax.sound.* classes are much to messy and thus not useful for anything more advanced than playing a single sound when you press a button).

Talking about extra libraries one could say that MSP is a very complete and diverse sound processing library for C++ and Java.

I must say it seems like a typical academic thing to want to build everything from scratch instead of building on others work. I understand the reasoning behind this but, not suprisingly, only very few of these projects get beyond a very basic stage of practical implementation.

Mattijs


October 6, 2006 | 8:23 pm

Welcome John,

Do not let yourself stop by one reply, which I found at least strange, I
didn’t get the aim of that reply at all…

john inder wrote:
> Aim: To build a piece of software capable of generating drum
> patterns. The user should be able to select a style, adjust some
> sliders controlling the degree of "swing", "aggression", etc, and the
> program should generate a plausible drum pattern matching their
> requirements. The software does not have to be too accurate, getting
> one good pattern out of ten trials should be enough.

This info was lacking in your first post, might have been essential…;-)

> TUTOR REPLIES: "My background is in Artificial Intelligence, and I’d
> be thinking of Java/JSyn as the background for this. Markov chains
> are really a bit too simple an approach for what I envisage the
> system would be about. More advanced techniques such as generative
> grammars as taught in TECH2006 are beyond what is possible in
> Max/MSP, and I would expect a student taking this project to use a
> knowledge based approach. Again beyond what is possible in Max/MSP.

Your tutor is certainly wrong regarding what is beyond Max/MSP. As
Max/MSP is even capable of including Java code, your tutor would even be
able to aid you in that part. Doing a knowledge based approach isn’t
quite a beginners task, but as I guess you took the classes, it
shouldn’t be beyond your skills.
For this approach definitelt look into the FTM library of Ircam. The do
a lot "knowledge based" stuff with it.

> My points:
>
> Firstly: This is more than possible in Max/MSP (surely it’s what it
> was designed for).

absolutely correct

> Secondly: Whilst Markov Chains are an unecessarily simplistic
> approach, they would be a usefull starting point for someone
> researching this subject…after all i haven’t got all day to tell
> you how to do it!

I agree, because if the part which actually will play the drums is
ready, you can easily exchange the parts which take the decisions. You
could start even simpler with a pure probabilistic approach (random
generator)…

Devolping inteligent algorithms is way more effective, if you can test
them immediatly with your ears… You can trash some ideas pretty
quickly after listening to them. I think Max would help you to get
closer to a 1 pleasing result out of 1 instead of out of 10. Something
your tutor with a lack of experience with that fast turnaround couldn’t
imagine… ;-)

Even if you want to do the actual algorithm in Java, Max would be the
apprpriate tool, as for sure the drum playing part will be put together
way faster and you can easily concentrate on the intelligence problems…

> Imagination is more important than knowledge – A. Einstein

What could I add to that quote… ???

Stefan


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


October 6, 2006 | 10:17 pm

Sorry, i’ve been meaning to come back and update this thread…so thanks for the motivation Stefan, (however this was always going to be a long post so please forgive any perceived rambling).

Firstly, the drumming robot is a damned impressive implementation of Max, a fine example of implementing a much more complex idea of this suggested "project" and also appeals to his passion for artificial intelligence…which by all accounts he is pretty specialised in. I have passed the link on to him in the hope that he might reconsider his position on Max’s capacity to perform the given task.

The initial basis for this post began because the tutor in question had published the previously given proposal in the "project bank" forum of our final year, "independent projects" (we call them dissetations in England, i’m not sure what the equivalent is in the US), for the final project of our degrees. The project bank is open to all 3rd year students who are members of our particular "school", so there’s suggestions, made by tutors and students, for projects which relate to all the associated disciplines such as computer sciences, engineering and music technology (my particular degree).

I’m trying not to push my luck in responding to vigorously to his reply as the discussion i’m undertaking with him is occurring in a semi-public forum, with about 200 students and 30 or so tutors, not to mention he could actually end up secondary marking my work at the end of the year! However, the idea of placing proposals on this forum is for people to pick up ideas for their "independently chosen" project and/or discuss ideas that might be relevant to some of the proposed projects which have already been submitted by students or tutors who would like to supervise that particular project for one reason or another…imagine it like a dating agency with tutors and students trying to marry their projects to one another, so to speak.

Quite why this particular tutor proposed that he’d like to supervise this particular project remains to be seen, most likely because he can see some bearing upon his own knowledge base, but i also suspect that it’s been dressed up in this way to seem more appealing than an artificial intellegence project (which in most cases would be beyond the scope of most of the students at our university), whilst still introducing some of the fundamental concepts…albeit in a more palatable form.

Having seen this initial proposal, i felt i might be able to add something to the knowledge base for the proposal, and whilst it didn’t interest me personally, i might be able to offer some plausible starting points for other students to investigate and decide whether it was a project that interested them. After all, once you’re signed up to it…you’re signed up and that is pretty much that!

As you can see from his rather OTT response, i don’t think he liked my idea of using Max for his project, (despite it being the most obvious and appropriate tool in my opinon), because it’s not something he’s overly familiar with and therefore probably wouldn’t want to supervise a project in it. However, as you can see from his response, instead of taking a logical approach and forming an argument that would entice students from other disciplines to take up his challenge he immediately proceeded to rubbish my initial reply out of hand, demanded i removed any "advertising" for a 9 month academic Max licence and then challenged me with "grammars" and other associated logic knowing that my knowledge is likely to be based on the DSP side of things! (You’ve got to love the "applied knowledge" bit which essentially excludes anyone from outside his discipline, without actually coming out and saying it directly).

Having never taught me before, he has no idea what i’m like and instead of being intimidated by his aggressive approach i veiwed that as a challenge to a debate. I began by looking into the generation and testing of grammars, the basics of which do look perfectly possible in Max, (having looked at Curtis Road’s book), by using the simple logical operators and a bit of roundabout Max’ing (my usual way of doing it sadly, but i’m improving slowly).

Instead of charging in headlong into a debate with my limited understanding of the complex probability algorithms he seemed to be proposing, i thought it prudent to ask the opinions of the much wiser Max’ers here…not necessarily to quote, more to have an understanding of the feasibility of such a project within the Max environment, after all there are some pretty Max literate tutors who also have access to the same forum (who’d be too tactful to publicly contradict a colleague, but would be quick to correct me if the situation arose).

And so it goes in the bizzare and ridiculous politics of the academic world…through their silence they’re actually agreeing with what i’m saying, if that makes any kind of sense, and as i’m hoping one of them will be willing to supervise my project i really don’t want to alienate them with arrogant, excessive or poorly thought out statements. Whilst the logical approach would have been not to respond to the initial proposal, that in itself would have been rather disingenuous for other students who might have an interest in this area, (well in my opinion anyway).

I have since posted a reply to his statements further clarifying my position and requesting further clarification of what he’s looking for as an outcome to the overall project. I’ve also requested a personal meeting to further discuss the project face to face with a veiw to undertaking it…as to be fair to him, it does provide some interesting subject matter which would be beneficial to my learning…but i’d definitely want to do it in Max and i don’t think that’s what he has in mind!

Thus far he hasn’t replied, and i’m still not sure what his intended output for this project is, (MIDI, Audio, Numbers, Pink Elephants???). I have also provided him a detailed breakdown of how i would conduct this project in Max, possibly using an [MXJ] object to encapsulate some Java code to perform some of the more computationally difficult elements which he has suggested, and [JSUI] for developing a pleasing user interface.

I’ve also asked his opinion on whether Fuzzy Logic might be a usefull approach to create the desired outcomes, Peter Elsea’s tutorial provides an interesting overveiw and this is surely an area in which he’d be interested and to which his expertise lends itself. I’m desperately trying to avoid confrontation with him, and to that end i’m not sure it’d make for a good working relationship, however i suspect he’s now in the equivalent of an academic sulk…god forbid a pupil might know something about something he doesn’t, (and worse still dare to air it in pubic)!

I sincerely hope that i’m not giving a distorted veiw of the situation in question, as thus far he hasn’t replied/and or been able to give his position on the debate in this forum, (don’t forget there’s two sides to every story)! Hopefully by passing on the link of Hallie, (the drumming robot), it should ease any potential tension, as that’s certainly not something i’ve tried to create, although he could take it the wrong way and see it as a further challenge to him…a kind of "look at what Max can do, and you’re not up to speed with it" scenario, and again that’s something i’d be looking to avoid at all costs too!

I haven’t mentioned that i’ve been discussing it here, again to avoid bruising any academic egos or seem to be running to some "higher authority" as from what i can tell…within his specialised area of "probability logic" and artificial intellegence i’m sure he’d give even the most seasoned power user a run for their money on that particular area of expertise.

So there’s the story so far, just as a clarification for everyone who’s read this post and commented thus far…i appreciate everyone’s input and you’re all free to draw your own conclusions as you see fit, but as i’ve already said, there’s two sides to every story and any possible statements about academic egos and the such like are purely my own speculation, (it is after all difficult to gauge someone from their posts in a forum)!

Regardless, i will continue to recommend/advertise the virtues of Max as a development environment, and defend it when necessary, because in my opinion it’s a phenomenal tool with an exceptional support base/community, (which is one of it’s greatest strengths).


October 9, 2006 | 11:15 am

I’m sorry but i cant help but feel for you… and i do think you should stand up for what you know!

yes, there are 2 sides to a story, but you have to make the decisions about your work. also, the tutor should realise that the student should be given the opportunity to make decisions about how they want to carry out a piece of work. admitedly, it’s good to steer ppl in the right direction, but a tutor should make sure that what he is saying is at least partly true, or in some way informed!!!

miller puckette designed max to go beyond the conventions of a traditional sequencer. u can argue all u want about academia and its way of doing things – but at the end of the day, max has been around for 20yrs or so… and plenty of ppl (including artists / musicians) are using it to do algorithmic programming (arranging / sequencing) of musical and visual material. so to say it’s not the right tool for the job is crap.

here are some apps made in MAX, which i think fit the bill. for your project you might want to adapt the "logic" or "AI" to have a certain style… but to me, these apps clearly demonstrate that max is at very least capable of doing this type of work.

M

http://www.cycling74.com/downloads/m

then there’s all twerk’s patches: (drool string / camel toe)

http://www.audibleoddities.com/twerk/index.php?p=sof

or even the new Nortron app:

http://dspaudio.com/software/nortron/nortron_overview.html

(others such as autechre, have used max extensively for algorithmic sequencing…)

also u might want to consider the work of Nick Collins and his BBCUT library – http://www.cus.cam.ac.uk/~nc272/bbcut2.html
which brings me to an alternative application, supercollider which (i believe) would also be a contender for this type of project. (i’m not just advertising for C74, honest!)

finally, if you can get someone else to mark your work who understands where you are coming from – or else your work might end up suffering, which would be totally unfair.

i am assuming that you are on some sort of music or digital media course… (dont name names) but having done quite a bit of max teaching in the uk, i am quite shocked by this reply!

good luck

j


October 9, 2006 | 11:15 am

(apologies for the dbl post, weird server msg)

I’m sorry but i cant help but feel for you… and i do think you should stand up for what you know!

yes, there are 2 sides to a story, but you have to make the decisions about your work. also, the tutor should realise that the student should be given the opportunity to make decisions about how they want to carry out a piece of work. admitedly, it’s good to steer ppl in the right direction, but a tutor should make sure that what he is saying is at least partly true, or in some way informed!!!

miller puckette designed max to go beyond the conventions of a traditional sequencer. u can argue all u want about academia and its way of doing things – but at the end of the day, max has been around for 20yrs or so… and plenty of ppl (including artists / musicians) are using it to do algorithmic programming (arranging / sequencing) of musical and visual material. so to say it’s not the right tool for the job is crap.

here are some apps made in MAX, which i think fit the bill. for your project you might want to adapt the "logic" or "AI" to have a certain style… but to me, these apps clearly demonstrate that max is at very least capable of doing this type of work.

M

http://www.cycling74.com/downloads/m

then there’s all twerk’s patches: (drool string / camel toe)

http://www.audibleoddities.com/twerk/index.php?p=sof

or even the new Nortron app:

http://dspaudio.com/software/nortron/nortron_overview.html

(others such as autechre, have used max extensively for algorithmic sequencing…)

also u might want to consider the work of Nick Collins and his BBCUT library – http://www.cus.cam.ac.uk/~nc272/bbcut2.html
which brings me to an alternative application, supercollider which (i believe) would also be a contender for this type of project. (i’m not just advertising for C74, honest!)

finally, if you can get someone else to mark your work who understands where you are coming from – or else your work might end up suffering, which would be totally unfair.

i am assuming that you are on some sort of music or digital media course… (dont name names) but having done quite a bit of max teaching in the uk, i am quite shocked by this reply!

good luck

j


Viewing 18 posts - 1 through 18 (of 18 total)