What will Max's role be once the browser is a more popular creative platform?

estevancarlos's icon

I have a friend who is moving away from Max related projects and is instead focused on recreating his projects in the browser. Chrome and Firefox offer great support for WebGL, Web-Audio, and Chrome also offers support for Web-MIDI. I don't think it will be shocking to understand that Google has intentions to turn Chrome into a sort of OS-lite. It currently has the ability to manage the types of projects one might choose to develop in Max/MSP/Jitter.

Now of course people will choose platforms based on different factors such as: learning curve, price, performance, and other factors. The browser offers the potential for a _substantial_ offering: it is free, projects are often open-source, and it's performance is improving.

What will or should Max do? Before Web-MIDI, WebGL, and Web-Audio I had many reasons to opt for a tool _like_ Max. I am not so sure what to choose anymore.

Here's one added feature of the browser: instant access to a larger audience.

With a Max project we have to deal with the intricacies of exporting an application and convincing people to either download it or receive it on some digital medium.

How will browser technologies alter our expectations or needs from Max/MSP?

estevancarlos's icon

I fear the browser + javascript will eat Max's lunch but that may not be a shared sentiment.

Anthony Palomba's icon

It is very unlikely that a web browser will every be able to handle DSP, graphics, video processing, sensor integraiton with the same efficency and level of performance as Max. Of course if you are doing something trivial, then a web browser might meet your needs.

estevancarlos's icon

In that case there may be a misunderstanding as to what is possible in the browser now and very soon - https://www.youtube.com/watch?v=TwuIRcpeUWE

There is also sensor integration with WebGL - https://www.youtube.com/watch?v=LqD6WuIOu7o

estevancarlos's icon

Webgl/Shader manipulation of webcam video - https://www.shadertoy.com/view/MsXcWl

This list goes on.

Roman Thilenius's icon

i can almost feel the arrival of pfft~ and poly~ for chrome.

and i bet it will be a great experience to transfer my 2200 max patches to html5, especially after my experience with googles "wave" project, which which pulled almost before the final release came out.

estevancarlos's icon

Wave was a commercial project built on a series of web technologies. HTML5 is a web technology standard. The fickleness of the Wave project doesnt' parallel HTML5.

Tutorial on fft in the Web Audio API. Web Audio is not a commercial project and works in Chrome and Firefox - https://www.sitepoint.com/using-fourier-transforms-web-audio-api/

estevancarlos's icon

@Benjamin Thornton

I assumed that would be an argument offered but I'm trying to point out that there is a killer feature in the browser: the ease of promotion.

I teach design and programming at a community college. I have students who ask me questions about "creative coding". Their understanding of it mostly revolves around Processing. When they ask me about alternative tools I am no longer able to offer a convincing argument in favor of Max outside of certain conditions.

If a student wants to focus on audio and producing music, I would recommend Max. If a student wants to make a visual or AV project, that's where the situation changes. I have to tell them the truth: it's easier to promote a visual and interactive project on the web.

This was not the case 10 years ago. It is the case now and so I have less incentive to promote Max (or Processing) to my students if they want to engage in interactive AV applications. Being able to quickly feature a project online is a major selling point to some of them.

It is also "freedom"--the freedom to not promote a project online. But as an instructor I would never discourage them from the professional significance of promoting an actual interactive application to a wider audience. It's very important.

These are the reasons I pose the question: what will Max's role be in some years? As an instructor I believe there are increasing reasons to choose JS+Web APIs above Max (and Processing).

estevancarlos's icon

The graphical, visual programming paradigm also exists on the web

Again, I bring this up because I caught myself by surprise realizing there's a decreasing argument in favor of Processing and Max/MSP.

Roman Thilenius's icon

i guess it depends on what ones main point is when creating something: the creation itself, the result - or how to promote it.

there is a tendency in society that people want to promote what they did - but most work published is crap and most humans are idiots.

better publishing tools will not make the works better.

you have a point though when it comes to teaching and learning (as one form of working in a group of people).

otoh, everyone who has serious interest in sharing their work have always found ways how to share stuff in the past 40 years of interwebz. why browser now? because of the majority? who always do what the companies are telling them? and who cares for those who are looking for something special? of which they think it could be totally worth to do 3 clicks more and copy a max patcher from the max forum in max7?

estevancarlos's icon

"why browser now?"

To answer that, if my students (or anyone) wants to know of effective ways to promote their creative work I will need to tell them that the web is optimal because it fits professional expectations. My argument about promotion revolves mostly around industry and professional expectations. Yes.

If someone wants to be a software developer then expectations are different. If a person is just having fun then again, expectations would be different.

I use Max. I don't focus on promoting my Max work but when that issue comes up... I realize developing some projects on the web would serve me better.

Anthony Palomba's icon

I hate to be a wet blanket here, but I really don't see people doing serious media devlopment in a web browser in the near future, or far future for that mater. Any body doing serious audio development is using a DAW (ableton, logic, Protools). Video production is done natively (Finalcut, Premiere, etc). VJ artists use VDMX, resolume, modul8, all native. Serious game development is done nateively (Xbox, playstation, PC, iOS, Andriod). Causal gaming on the browser does exist, but it is a small percentage of all games. And of course there is Max, which can do all of these and more. Which brings me to my point, if you are a causal media producer, then the web browser is all you may need. But to do serious work, you need serious tools.

estevancarlos's icon

@anthony palomba

I don't think you're being a wet blanket. However based on your understanding of the APIs available in the browser and current trends, why do you characterize the browser+APIs as not a serious tool?

I'm also not comparing the browser to Ableton or Final Cut. I'm comparing it to MaxMSP and Processing. Basically I'm arguing that the browser+APIs is maturing enough to be a creative coding platform, competing very heavily with Max and Processing (and similar alternatives).

I am a VJ myself and a web developer. I can directly see how to execute some of my VJ/Max projects in the browser. Musically however I would opt for Max and Ableton. Why? Because my end goal is to mixdown an audio file for distribution. If, however, I am working on an AV project I now realize I should consider a web based approach in order to have the option of easier distribution.

estevancarlos's icon

@anthony palomba

If you have Chrome or Firefox and a decent GPU, this is WebGL2 - https://playcanv.as/b/SFIt5Ode/

There's also WebVR, which I teach as a part of a course - https://www.youtube.com/watch?v=Jzrqrji_2xk

Anthony Palomba's icon

Thats all fine, you should use what ever serves you best. I am just saying I don't see media creation tools and performance systems moving to the web browser any time soon.

estevancarlos's icon

@anthony palomba Then you may be very surprised in a few years.

Leo Mayberry's icon

My end product is live a/v performance at a physical venue, often with multi-screen output. I already have an operating system. So, throwing an extra layer in there serves no purpose to my end game of fast response/direct hardware interface.

Not saying what you are talking about isn't a similarly valid user scenario, but my case is one that exists completely outside of needing any web interaction.

estevancarlos's icon

@Leo Mayberry

That's a great scenario where the browser will lag behind for likely some time. I'm not suggesting web APIs will replace Max but will compete aggressively with it as a creative platform. An example I posted far above is of a drummer using mic input to control WebGL parameters. They are displaying video and appear to have custom shaders. This is a normal project a person could do in Max except they have the added benefit of uploading the project for an online experience.

Mikulas's icon

Another possibility would be to use Max as a backend, perhaps connected to the browser via Xebra.js.

There is nothing wrong with the fact that some work now done in Max will be done in the browser. This trend has been started by flash ages ago. And also, Max is paid, javascript is free. Similarly, with the advent od IoT, people were asking "will everyone start using PD instead of Max since Max does not run on a Raspberry Pi?" and for some use cases, that is the case. But there are many more things that can be done in Max. And there is no reason people should be using one tool only. I started trying to code synths in Python, then SuperCollider, then PD, I now use Max, but I don't mind learning other stuff given good enough reasons.

vichug's icon

yes, miraweb and xebra.js are the answers that came to my mind first about that topic. It is indeed a bit lagging behind js and stuff like that because it's not possible to do everything directly in the browser (programming a patcher i mean), and it's more complicated i guess to have a server running Max as backend software, and there is no audio afaik from Miraweb and Xebra.js. However it's not impossible that in a near-ish future, even if Max is a closed environnement, it will be more suited for web browser embedded applications ; look for example another closed-source (yet free/cheap and very cool) audio environnement, Sunvox, beginning to run in browser with javascript and emscripten (it's a still very very early stage though) : http://warmplace.ru/soft/sunvox/jsplay/ . So if there is any future for max inside a browser, i'd expect something along those lines.

estevancarlos's icon

@mikulas mrva Maybe you're right that Max is broad enough that if people stop using it for _certain_ kinds of projects that won't be a big deal. I personally feel less incentive to use it for simpler AV projects.

Regarding IoT: Yeah maybe that depends on the popularity of IoT projects. If that category of work was more popular, would it influence Max?

@Vichug: Max in the browser is interesting. What could be enticing is the ability to program at least _some_ things in the browser, export it as a patch, and then import into Max native where you have access to all the features. The benefit I imagine is that if a person is away from their computer that has the Max client OR is using a tablet, they could still program some patches in a browser interface. That is doable.

Peter Ostry's icon

Beside the price (unless you get a discount), Max is less modular than the applications which separate UI, API and engine. Although every user-driven application has those three parts in some way, developers tend to separate them completely. There are people making only APIs or engines, and people who make UIs based on existing APIs.

One drawback of modular applications is the lower overall speed, but with every new computer generation the lag gets smaller. People who need speed, flexibility and/or sophisticated programming will continue using Max. Others will move to powerful but simpler applications. I cannot foresee if the Max community will shrink, some new people may start with 'modern' apps, gain interest and probably migrate to the more powerful Max/MSP. Don't know about Jitter.

When we talk about Browsers, well, basically they are UIs and APIs. If a Browser manufacturer puts a complex engine behind the API, he may think that his browser is able to handle complicated tasks and maybe he will be right. If not, nobody cares much. Today people are used to get and lose applications.

I believe, at the moment these new approaches serve two groups of people very well: Newcomers who aren't sure what they want or get tired over the learning curve of Max, and experienced creative users who always seek for new and other methods.

Webserver – Oh my God, one of the most dumb things we have ;-) But it is an API, so why not.

estevancarlos's icon

That's an interesting and good way to put it.

David Martin's icon

I'm thinking through some of this myself at the moment -- big selling point is that I am a web developer by profession so I'm already quite comfortable with javascript. I've been playing around with some Node-js-based creative coding and liking the workflow quite a bit (even for "local" or "private" projects that I don't intend to publish immediately or ever). I forsee my own workflow continuing to move in that direction for visual and musical applications -- letting max / M4L handle the direct interfacing with the hardware (whether it's a midi controller, arduino, or projector output), and doing all my "data manipulation", for lack of better term, via a locally running Node HTTP server.

Mark Durham's icon

Max patches (well, gen~ patches) are running in the browser here:

vichug's icon

@markdurham nice find !

Yunus Emre Bahar's icon


hello my name is emre. I would like to share a project chrome on a server in the form of "www.emrebhr.com" for example but I do not know how to do it please in a project I do in max8 please ...

Federico-AmazingMaxStuff's icon

Like the topic! But I find the discussion a bit absurd.
Then we should start to compare all applications that do the same thing, and the browser is not even an application in that sense.
It offers you a set of tools which are mostly accessed through programming languages, so, pretty much another thing then Max.
Mostly you can accomplish every visuals you can do in Max also in OpenFrameworks, Processing, TouchDesigner, vvvv and so on.
I think every tool is the best for a specific job, and surely the browser with Three.js and so on is not the direct competitor of Max which will make it disappear. More stuff like TouchDesigner, Notch and other programs of this kind

estevancarlos's icon

You're right and my topic is a little bit absurd. I agree.

Roman Thilenius's icon

however, our aim should be to replace browers with max, not the other way round.

Yunus Emre Bahar's icon

This is my homework assignment. I did a piano practice at max8 but the teacher asked me to share it on google chrome or mozilla firefox. but I did not find it because I want to help you. if you help me i will be able to finish my school :). (node ​​js and or in a different way, I just want to be shared with the server from me how the teacher)

Yunus Emre Bahar's icon

or localhost..

Roman Thilenius's icon

what is the exact task? you should do it programatically? then what about uploading a little html file to some webspace, which you generated with max before and where you share a midifile or a video of the patch in action?

<html>
<head>
<head>
<body>
<a href="midfile.mi"> midi demo</a>
<body>


Yunus Emre Bahar's icon

previously I've never used max8 program so I know as amateur. I don't know how to write html or code, so I ask you for help. I would appreciate if you help :)

vichug's icon

you should build the user interface with node.js or Xebra.js, the UI will be displayed on a webpage in a browser ; which sends information to a web server hosted on your computer, which is running the max patch (i'm not sure i understood what you try to do well enough....)
Now that i think about it, i'm not sure there are mature enough tools to send back the sound from Max and into the web ; to be then output from your website. I don't know if node.js can do that. And it might be simpler to use only Web Audio API, with no Max at all....

Yunus Emre Bahar's icon

Thank you for the information you provided .. teacher using the max8 application piano made and wants to move it to the web page is my homework. I do not know how to do it. he asked me to investigate. they directed me here, they said they can find the answer here so I wrote my problem to get answers to this platform.