One of the coolest new Max-related websites to recently show up has been Znibbles, a home for the video content created by its developer, Julian Rubisch.
With tutorials on Node for Max, Jitter, Gen and other advanced parts of Max, it has become a go-to place to get a new skill. This week, we managed to tear Julian away from his patching to tell us a little bit about what he is doing, how he got started, what he chooses what to teach - and how.
Hi Julian! Thanks for doing this interview. To get started, could you tell us a little bit about the Znibbles concept and why you started doing these videos?
In my day job as a web developer, I consume a lot of screencasts, some of which I even pay good money for. At the level that I'm currently at, I often find it easier to watch somebody typing and hear them explain their ideas. Often it's more interesting, time-efficient, and up-to-date to hear someone express their thoughts than buy and read through a bunch of books.
That's not meant to say that I don't value books, but I will add that I'm a dad of a two-year old - so you'll understand why I appreciate short, succinct and to-the-point material.
I just couldn't find that in the Max world. Certainly, there are many tutorials for beginners, and there are also great ones for intermediate programmers (Delicious Max for example), but all in all I found them a bit lengthy. When I started working on my own tutorials, I set myself the goal (that I'm admittedly sometimes missing) to not go longer than 10 minutes - actually I'm trying to get as close to 5 minutes as possible.
At one point last year, I thought to myself, "Hey, I can do this!" I've taught this stuff at University (so I can draw from already prepared material), I had training in pedagogy and presentation, and I had a recording studio. All I needed was a little time and an MVP. So I started asking around on Reddit and in Facebook Groups and made the first videos. From there on it's been a wild journey.
I find the content very compelling - especially from the perspective of something that's used Max for a long time. How do you choose the subject that you cover?
As I already mentioned, it's partly from material I already have prepared from my former job of teaching Max at the University. Other stuff just "happens" - like when I just want to try something out or I kind of recycle ongoing projects. But lately, I've also been actively looking for problems people have on Twitter, Reddit and Facebook. One or two times it has also happened that someone just walked up to me with a topic that I found so interesting that I made an episode out of it.
You recently started doing some tutorials on interesting Node-based functions. What is it about Node, specifically, that caught your attention?
So Node... Well, why not? It does have a vibrant community, there are many projects you now can plug Max into, so I will decide to cherish it for what it is - a valuable option to have in your toolset if you want to set up complex interactive projects.
How did you initially learn Max, and what helped you keep growing throughout your use of it?
That's a very good question. I think my first contact with Max was version 4, back in 2006 or 2007. First I had some lessons at University and then I kept going because Max interfaced so well with a lot of other technology I was using. I even did some projects involving MXJ (which you probably can call an ancestor of Node for Max). All in all, my projects back then were more Max- than MSP-focused.
In 2012 I returned to University to study Computer Music, and Max was again part of the game. This time, I took a deep dive into MSP and digital signal processing in general and did a little bit of external development - with a slight detour into PureData.
One event that pulled me even closer to Max was the introduction of Max for Live, which gave me a way of actually doing DSP programming and interfacing everything with my preferred music composition software.
I must admit that I've also had some difficult times with Max too. While I love gen~ in general, I have so far found the documentation rather sparse and flaky. Also, it breaks my established workflow of "alt-click then copy-paste" so much that I've mostly shied away from it.
That said, what I find very relieving is that my greatest criticism of Max - that it has too many very discrete environments (poly~, gen~, pattr, jit.gl and so on) with their distinct Domain Specific Languages - seems to slowly fade away. I know that you have to view this in the timeline of Max's evolution and the need to stay backward-compatible. So it's ll the better that it seems that with Max 8 things are again consolidating - which is very good news (at least for me).
Max can cover a lot of disciplines - from video processing, to audio DSP, to Ableton Live hacking. What areas of Max do you find most personally interesting?
I'm an interface person, I love to connect things and people. More often than not, I think of myself not so much as an artist but as an art-enabler. So I hope you'll forgive me if I can't choose one discipline. If you scan the videos available, you'll even find some that aren't related to Max at all - some dealing with plain creative coding, and others with hardware.
That said, I'm certainly not a video or computer graphics expert. I know my Jitter (the longest playlist in my repertoire is concerned with it), but I always treat it as a data/signal container for applying processing.
Let me try a different perspective on the question: I love to destruct(ure) things... to take them apart and build them up in a different way than they were originally constructed or arranged. This entails a lot of analysis-resynthesis work, data-moshing and other similar efforts. Anything that helps in this pursuit is a valuable tool for me.
What is in the future for Znibbles? Where do you expect it to be a year (or two) from now?
When I started Znibbles, I deliberately decided against creating another teachable.com course or simple YouTube channel - because I wanted to do more for the community. In addition, I wanted full control over the look and features of the project, as wel. After all, this is also an experiment in how far you can get with the most simple incremental approach to product management. I didn't want to put too much effort into it upfront, so first I created a few videos, then the website, and then added feature after feature as I found them to be appropriate. I have also converted some of the lessons into Max4Live devices which I deliver to my Patreon subscribers as a small reward.
I even recorded a paid course called Docker for Creators, and called that a "Znibbles Power-Up". Frankly, I might have overestimated the demand for such a course - though I still believe there is value in such cross-discipline topics. Still, everything I do, in part, I do to learn, so I get my takeaways from that, too.
The long term the plan is to open it to the community in one way or another. I did a bit of investigation about what might be a good way of starting that process. Obviously, I don't want to build another forum, or discussion platform, or social network - there are good alternatives for that already, so it would be wasted effort. Again, my focus will be on getting the best experience for learning Max (or, potentially related technologies).
So I asked myself - in the past few years, which opportunities left me with the most impressive and longest-lasting takeaways? And that is indeed quite easy to answer: When I got feedback from peers (or mentors, for that matter).
In my day-to-day work, code review and pair programming is omnipresent: You can always learn something from an interested partner, no matter how advanced in the subject you already are. In this respect, I find the way exercism.io works amazing: Learning trails for 48 programming languages (at present), each backed by a vivid community of maintainers and mentors.
In fact, you cannot proceed until somebody has viewed and approved your exercise. That comes very close to my most intense and rewarding learning experiences.
I can see that a similar approach could be useful for learning Max (or any visual programming language, for that matter), even though it'd have to take a slightly different approach. If and when I can realize that vision depends on how much time I can spare, if I can get the community involved enough for creating and mentoring such learning trails with me, and if I can potentially raise some type of sponsorship. Time, and the community of creative coders will tell if that will come to realization; I’m certainly interested.
You can check out all of the Znibbles tutorial video threads at Julian’s site - and share the videos with your Max-ing friends!