Polyphonic earthsea for trilogy/ansible and er-301/just friends/txo


Thanks for the reply. So dropping this into White Whale might be a little more useful if I wanted to get a couple of independent voices going?

I’m still trying to wrap my head around Voices and how they relate to outputs and how those assignments vary by Pattern… But getting there!


Think I understand now. 3rd column assigns which voice(s) go with each pattern. Then the 7th column is used to assign each voice to the destinations. The latter is common among all Patterns.


yeah, with ww you could get 2 independent voices and have 2 extra gates for something like pattern start triggers.

i need to do a write up on how voices and outputs relate but basically polyes gives you great flexibility in how you can set it up - while this might complicate things a bit the trade off is being able to do some really cool and interesting setups. like, you could send a gate from each note played to a gate output and send it to a sample&hold so that you’ll get a new value on each note played. or have one voice play chords, and have another voice work as a recordable x/y pad controller.

short explanation for now:

there are 8 voices available. you can select which voices are enabled for each pattern (by default all 8 voices are enabled for each pattern). patterns don’t know anything about outputs, whatever you play/record always works with the assigned voices. you can change this at any time too, when you record it just records notes, and it will play those notes to whatever voices are currently assigned.

now, each voice can be assigned to any combination of outputs. you could assign a voice to a CV/gate pair on the module, or to a jf voice, or both. or multiple outputs. you could assign voice 1 to all 6 jf voices (“outputs” if we use this terminology).

normally you probably just want to map each voice to an individual output - this is the most typical set up. by default this is how voices are assigned to CV/gate outputs (say, on ansible voice 1 will be assigned to CV/gate one, voice 2 to CV/gate 2 etc). why would you want to assign it to multiple outputs? could be good for thickening the sound (i like mixing both telexo and jf, for instance). but since you can also control octave/transpose on each output individually, you could assign voice 1 to 6 just friends outputs, set transposition on each and you get a 6 note chords - played from a single voice!

so to reiterate: patterns play on assigned voices. each voice can be mapped to any combination of outputs, where an output could be a CV/gate on the module itself, a just friends voice, a telex voice or CV/gate, or er-301 CV/gate. and you can control octave/transposition (and some other parameters) on each one of those outputs.

voice assignments and output parameters are stored per preset, so you have different setups for different presets. they are shared by all patterns within that preset. if you don’t change it often i’d dedicate one preset to be the “init” preset which you could copy to the actual preset you want to use.


Curiously, when I run ES on the WW, the CV info from A seems to bleed into B. If I’m running a pattern with A content, B gets effected by it. If I run a pattern with only B content, only B plays. Double-checked voice assignments.


do you have voice 1 mapped to CV A and voice 2 mapped to CV B? (this should be the default after flashing the firmware). if you do and you have both voice 1&2 enabled for the pattern then any overlapped notes will get output on B. i’ll double check if there is a bug when i get a chance.


@scanner_darkly on a slightly related but unrelated note, I was wondering if with the recent developments with Poly-ES, whether Kria would also get an update at some point and be able to i2c to other modules as well? I am hope to have a Kria type sequencer but outputting only gates/triggers (ala MP but more controllable) on a single module such as Ansible, or like PolyES, be able to assign some channels to other things over i2c.


It’s working as advertised today. Go figure!


so, still having the same issue. i can assign all 4 voices to the cv out, play and note and clear it. then go back and set the txo oscillator as the output. i get no sound until i send a TO.INIT 1 command to it via tt. it then works but the notes are always on, meaning no attack or decay.

that said the just friends is working perfectly and is, pardon my french, fucking amazing. thank you.

one other question, when clocking externally it seems to play at half the clack value i am sending it. i.e. if i send 16th it plays back 8ths. and also everything has the same timing. is there a way to retain the “performance” rhythm but quantized when clocking externally?


Yes, I was also requesting this above!


ha, auto-correct. . .


i’m only planning to do this for orca and any future apps (archipelago and whatever happens after that), no plans to port any other apps. if any other devs want to do this i’ll be happy to help.

weird! i’ll test with white whale anyway just to be sure.

hmm strange, usually that clears it for me. i’ll probably do another quick beta with just the fix for this, otherwise might not get to it until next week. will also check what’s going on with the clocking!


thank you! i sincerely hope that making this stuff is a rewarding for you as it is for us who get to use it :slight_smile:


more so when it works as expected :slight_smile:



Just wondering if this will work with the W/ over i2c?
Modulation control over THIS and THAT would be amazing!


@dudadius - so great, thanks for posting!

likely not - it’s a pretty special case, so i would be reluctant to complicate the UI for something that wouldn’t be used often. as a workaround you could just dedicate a CV output for modulation.


Yeah I thought so, no need to implement it then. I’ll use ansible’s outputs. It should be easy enough to send voltages between -5v and +5v.


wow, this is developing really fast! congrats @scanner_darkly!!
i would really like to try it but i think i cannot live without kria atm…
is there any development in the possibility of adding polyES to the original ansible firmware?


hate to be the bringer of bad news but ansible doesn’t go into negative range (none of the monome modules do), the range is 0…+10V, so you’ll need to offset it with some other module.

planning to try this at some point but looking at my coding backlog it will be a while before i have the time…


Yeah thats what I thought, I was planning on using a cold mac or triatt to do the offsetting.