this is polyphonic earthsea. it takes what was in ansible earthsea and expands it to:

  • ability to run on any of the trilogy modules (white whale, earthsea, meadowphysics) or ansible
  • simultaneous multiple pattern playback
  • up to 8 voices
  • direct control of er-301, just friends and telexo via i2c
  • octave, transposition and volume can be set individually for each output
  • for telexo you can also set attack, decay, waveform (individually as well)
  • each voice can be assigned to any combination of devices and outputs
  • pattern start triggers can be assigned to any gate output
  • each voice can be used as a modulation source (x/y/key)
  • modulations can be assigned to outputs or any of the 8 mod buses
  • arc can be used as a modulation source (assigned to mod buses 1-4)
  • mod buses can be used to modulate any output parameter
  • polyphonic midi support

please note this is an early beta, so there will be bugs (especially the i2c part).
bug reports will be greatly appreciated!

documentation: polyearthsea · scanner-darkly/polyearthsea Wiki · GitHub
i will expand it and add a couple of videos in coming days.

for i2c control you will need to use a powered i2c board or txb module

please note that flashing new firmware will erase your presets

latest betas


polyearthsea_ans.hex (188.6 KB)
poly_es_ans.zip (59.5 KB)


polyearthsea_es.hex (187.9 KB)
poly_es_es.zip (59.1 KB)


polyearthsea_mp.hex (186.3 KB)
poly_es_mp.zip (58.6 KB)

white whale:

polyearthsea_ww.hex (187.0 KB)
poly_es_ww.zip (58.9 KB)


2023 mar 29:

  • fixed the meadowphysics module version

2022 aug 7:

  • new grid edition (USB-C) is now supported

2018 dec 18:

  • 2 new speed runes - increase/decrease by 10%
  • octave range expanded to 5 octaves
  • midi recording
  • midi learn
  • midi channels are mapped to patterns
  • fix: midi will use the current pattern voices only
  • fix: midi notes raised by 2 octaves
  • ability to deselect leader pattern
  • ability to use leader pattern as the master clock
  • fix: hanging txo notes
  • fix: txo parameters not properly initialized
  • fix: external clock is not half rate anymore
  • fix: pattern start not working when on another pattern or ext clock
  • UI improvements
  • shnth support

2018 nov 16:

  • bug fixed: front panel button stopped working on ansible

2018 nov 14:

  • midi keyboard support
  • bug fixed with clock input on ansible
  • ansible buttons work for next/prev pattern now
  • ansible reset input fixed
  • knobs are mapped to mod buses
  • new parameter for txo: waveform fine
  • bug fixed: just friends volume 0 didn’t work
  • long press on front panel button will save current preset
  • LED on ansible indicates current pattern start

2018 nov 7:

  • pattern copying
  • preset copying
  • arc support
  • bug fixed: pressing half speed too many times would result in pattern not playing
  • bug fixed: switching between arc/grid caused freezing
  • bug fixed: rogue LED on gate settings page
  • bug fixed: not being able to select fixed width of 1
  • bug fixed: glyphs didn’t save

how is it related to other earthsea versions?

this expands on ansible earthsea (which itself was a polyphonic implementation of earthsea done as part of ansible firmware). i might also refer to this as multipass earthsea (see next question). this version was basically me porting ansible earthsea to the multipass platform and adding a direct control of i2c enabled devices. this was the initial plan but somehow i ended up adding some features originally planned for archipelago. but this will likely be it for this version of earthsea with the exception of fixing bugs. all other features will become archipelago - which will be a much expanded earthsea with a completely rewritten codebase. no plans to port this to norns (which has its own earthsea), but if somebody wants to try that i’ll be happy to help!

what is multipass?

multipass is a lightweight framework i’m developing which will make it possible to write firmware that will run on any of the trilogy modules or ansible (and possibly more in the future). i’m planning to make it public at some point (once i have a chance to document it properly). all my future firmware development (excluding teletype) will be done using multipass. i will be porting orca next.

what’s the point of running earthsea on meadowphysics…

… as it only has gate outputs? well, you could still use it as a trigger sequencer. but really what makes multipass useful is that it supports direct control of i2c enabled devices - er-301 / just friends / telexo. so even if you don’t have any CV outputs you can still use meadowphysics to sequence 6 voices of just friends, for instance. or do the same with white whale and use its CV outputs as modulation for other parameters.

but different modules have different hardware…

multipass allows the same firmware engine to configure itself for a specific hardware configuration. so on ansible you can use the module buttons to switch between patterns, on meadowphysics you’ll have a knob for controlling clock speed, on earthsea the other 2 knobs could be mapped to mod buses 1&2 etc. and it will use whatever outputs are available.

so, archipelago…

or, why not just continue developing this version? a couple of reasons - there is a lot of duct tape on this engine by now. rewriting it from scratch will allow to develop new features easier. also breaking away from earthsea will make it easier to introduce more significant changes, including the UI itself. while polyearthsea did employ several features originally planned for archipelago there is a couple of features that will (i hope) really set archipelago apart.

what’s next for this version?

inverted modulation
midi recording
midi learn
modulation for transpose


cheers! I’ve been wondering; how does multipass Earthsea play with Teletype as far as i2c leadership is concerned?


Wow. Seriously badass stuff. I’ve been dealing with life changes that have sidelined music most days. But I’m going to carve out some time tonight for this epic gift. Thanks!


i did some tweaks to the i2c code to make it more reliable and tried to fine tune the settings for the best combination of reliability / speed. some of the fixes could potentially be applied to teletype at some point as well - they could prevent freezing, hopefully. still early to say, and i think polyearthsea is a good way to test this.

i did have a teletype connected (or rather 2 teletypes in 2 different cases / configurations) at the same time, and even had it sending to the same modules - it was fine in one set up but it did freeze occasionally in another (the teletypes didn’t have the fix applied).

need to play with it some more, i’d love to be able to run a multi leader set up.

also, it should be okay to have this and teletype on the same bus as long as they don’t send at the same time (but might actually work even if you do!).


To clarify, this basically this means I can’t connect Ansible directly to JF without the powered i2c board (or a TXo) even if it is just to 1 module?

yeah, it needs a proper board unfortunately (as the trilogy/ansible weren’t meant to run as i2c leader), or the upcoming @bpcmusic’s txb module.




Nice work! Looking forward to digging into this. Thank you

This is amazing @scanner_darkly. Thank you for your tireless work. If I try this ansible version, does it replace all apps (midi, etc)? or just replace earthsea?

it will replace the whole ansible firmware. i’ll see if i can make it work as part of the ansible firmware.


Wow my first pass using the TXo’s is amazing. I can’t wait for @bpcmusic to release the updated Teensy for these.


yeah, txo is so insanely deep it’s nice to be able to make some of its features more immediately accessible, and i’m really looking forward to trying it with the upgraded version! i’m already thinking about splitting waveform control into coarse and fine…

it’s great fun to just randomly select the waveform on each note. open voices page, select “note” parameter and your voice and press the top button in the 3rd column from the right. that column is mod buses. assigning a note will make it choose a random value each time that voice is used. then open txo parameters select a range for some parameter, then press the top button in the 4th column from the left (this is mod buses but as sources of modulations) and then touch the range you want to modulate.

1 Like

So we are offered 8 CV/Gates on the ER-301 by choosing one of the steps in the column for that device, is there a way to move beyond that 8?

yeah it only supports 8 voices. could do more but the UI is already fairly complex. also, the way it’ll work is:

  • SC.CV ports 1-8 - pitch CVs
  • SC.CV ports 17-24 - volume CVs
  • SC.TR ports 1-8 - gates
  • SC.TR ports 17-32 - pattern starts (whichever ones are assigned) edit: looks like i forgot to do this so for now it will send to SC.TR 1-8 as well. i’ll change this in the future.

and maybe add some sets of additional SC.CVs of generic parameters that could be controlled from polyearthsea or could be modulated by note/pattern events.


bug reports here or github?

also, really fun.

1 Like

Just Friends: what switch setting do you recommend to begin with if using oscillator function?

I see or it appears to me that a cable into RUN at this time doesn’t change modes with JF?

Will W/ join the orchestra in the future? It looks like there’s room.

This is just nuts…I have seven voices talking at me all being run by the GRID. WOW!

1 Like

here is better i think, this way people can comment if they run into similar bugs, could help with investigations.

press the jf mode button (see the diagram in the wiki) so that it’s lit. this will place jf into just type synth mode. set it to “sound” on the module. you can either set it to triggers (and control the envelope yourself) or set it to gates and it will use your original timing (which you can also modify with gate settings on each pattern)

edit: @unity2k realized i didn’t answer some of the questions in your previous post. cable into RUN: not sure tbh but it should behave exactly the same as JF controlled by TT. re W/ - possibly but it’s not a pitched sound source, so probably not a good fit for polyes?


Bugs regarding setting gate type/length

  1. When setting the gate length along the bottom, once you set to something other than the shortest, you can’t go back to the first option.

  2. Same page, Rogue LED tied to the first option, under the 3rd option.

I’m seeing some weird behaviour related to having a clock signal, but haven’t narrowed them down yet, definitely different behaviour than the other poly earthsea

yep, i think i know where #1 bug is. will fix.

ha i saw the rogue LED, and been sorta avoiding it because i like that it’s rogue :slight_smile: it’s a glitch!


Bug in Presets: glyphs sometimes disappear, but the preset still loads

Bug? When retriggering sections of the loop by tapping around in the top row, there is no was to retrig the beginning of the loop, it starts and stops it, maybe a long press to stop? and a regular tap to retrig?

Aside, I found the “drawing mode” to draw note patterns on the grid—hold too right key, then tap a key to light it up, tap again to make it brighter. Pretty cool! Questions:

  1. Why does that key have multiple visual states or any state other than “pressed”?
  2. Maybe it could draw in all matching notes? maybe this is why it could have multiple states.
  3. so rad? (rhetorical, yes, cooler than chord display from the other version)