Learning Max through a dream of Earthsea (isomorphic M4L 128)

Continuing the discussion from Midi Programming Monome Fourths and Semitones - Earthsea Introduction:

as I continue my journey down the Max rabbit hole, I’ve held onto a hope that I know a few of us won’t let go of – having a Max/M4L port of the playful and expressive Earthsea. as @tehn has rightly reminded, the module code is open source and can be translated with perseverance.

I learn best by embarking on projects, so I spent some time today and broke out some of the core elements of Earthsea’s appeal. the first thing on the laundry list was a patch that mirrored the isomorphic layout.

after going through the tutorials and C74’s reference pages, I figured out this very base level piece!

ESomorphic.maxpat (6.4 KB)
ESomorphic.amxd (7.9 KB)
also, git: https://github.com/dndrks/max_patches

progress is measured in inches, right? but it mirrors the playable keyboard stuff that’s featured in the Earthsea video and scale docs. everything is MIDI based, so it plays friendly. it is, for right now, the entire 128 grid.

the next tweaks that are unknowns to me:

  • add autofocus
  • mimic ‘last key pressed stays illuminated’ behavior of the module. this means figuring out a way to leave the button’s light on while the MIDI sends a ‘note off’, right? woof.
  • without interrupting the playability of the whole grid, break out the bottom three rows for future CC behaviors, the top row for playhead, the left side for record/loop commands.
  • limit to monophonic so that the (eventual) shapes can morph between CC presets.
  • figure out how to tell Max to do something different with a button hold, specifically to adjust CC. I think this will be critical in translating the functionality of the knobs on the module.

I know folks will likely be able build this in their sleep, but I really am curious what could happen if we learn/teach our ways through this.

anyway. please let me know what y’all think! any feedback or help would be appreciated.


ah, accidental rename bump. so sorry! didn’t mean to.

1 Like

oh man would i love this. a m4l version of earthsea + aalto = my dream come true.


Good luck with this. Unfortunately I can’t contribute as I have no knowledge of max/programming in general but I’m really looking forward to see a earthsea m4l port.

1 Like

@und.leise + @trppng – thanks for the feedback and encouragement!

I’m hoping to spend some time on this can of worms, now that I’m starting to better understand serialosc. the issue is that I don’t have an Earthsea, myself, so I’m basing all development off of the tutorial videos and docs.

any essential functions that would be desired? for me, the big thing was the isomorphic keyboard, which I was able to create pretty easily above. is it the patterning? is it the glyphs? what’s really revving yr engines about this project?

Just thinking loud here, but for me earthsea is all about the pattern looper in addition with the arpeggiator and speed control:

  • The looper seems to be “free time” as not bound to a clock. For a m4l device it would be pretty great to have that as well as the ability to have the pattern recorder synced to live’s clock.

  • The ability to record a pattern and improvise with these patterns with the

  • arpeggiator by changing the root note and retriggering the recorded pattern with each press of any button is pretty cool.

  • Add a second adjustable speed for the arpeggiator (a box for the alternative speed setting, like 2x,3x, 4x, 6x, 8x the original speed in the GUI and then recallable via a “magic shape” or any single predefined top row button would totaly do it for me) and I have all I would imagine from a m4l earthsea.


i absolutely agree about the isomorphic keyboard. being able to record patterns while getting visual feedback is perhaps the coolest thing about earthsea to me. being able to transpose and change pattern speed would be a huge plus.

dreaming out loud here but i think it would also be cool to allow some part of the grid to be freely assignable to parameters. i imagine looping synthesizer note patterns on the left side meanwhile messing with harmonic content on the right (e.g lfo rate, filter cutoff, shape, timbre, mod index). i feel the grid would be perfect for visually representing / controlling these modulations.

whatever it is that you decide to make, i am more than happy to try it out. thank you for taking this on and sharing. i too wish i had more to contribute, though the most i have done with m4l is change the colors inside a patch to better suit my taste.

1 Like

a dream we share, for sure. this is a critical point for me, to retain the eurorack-ness of the module. an earthsea without parameter manipulation is a friggin’ earthPUDDLE, amirite?

but seriously, I can see such cool application for Aalto with this. one day. not soon, to be clear. but I’m slowly building.

1 Like

I dig all of this – really helpful to have concrete tasks in the queue.

http://archive.monome.org/community/discussion/18239/earthsea/p3.html – see @Galapagoose’s first post on this page. wild. absolutely wild.

Just wanted to chime in with another +1 for encouragement…

I’m a new-ish grid user (having coveted monome products from afar for years) - using predominantly with M4L and Madrona Labs plugins so far. Always thought that Earthsea intro video looked really cool, would be great to have it ported to M4L. Good luck, and thanks for taking this on… (I hope to be able to contribute to tasks like this myself one day as well)


just wondering if you are still working on this project or not.
I would love to see an M4L earthsea port.

1 Like