i feel bad because i promised @marcus_fischer to look into porting earthsea to ansible almost a year ago, and then got sidetracked with clock div/mult for white whale (which i couldn’t make work to my satisfaction) and then grid teletype integration.

so i’m going to see if i can do a quick port. basically, a 4 voice keyboard with 16 recordable patterns / 8 presets. will include loop/arp. no shapes.

how should ansible buttons and trigger inputs be utilized? i was thinking left trigger could play a pattern (restart if already playing), right trigger could reset it. buttons - prev/next pattern?

regarding input trigs, play/restart sounds functionally identical to reset, and play/restart already has a grid button, though additional voltage control is nice. what about using that second input for something like reverse current pattern direction? or a clock input, most definitely–though that would have to interact with the linearize+speed runes.

it’s too bad those are only trig inputs–if they were full cv in, they could be used to determine things like “play pattern from this point,” which would effectively be the mlr pattern recorder, perfect for jumbling up note sequences.

how are you going to handle the four voices? one per page, or spillover for overlapping notes/chords? i’d guess the former, but i just want to make sure.

it’s probably beyond the scope of your port, but i can imagine a single voice earthsea that still uses shapes, by sending via the cv outs. instead of knobs, set those values by reusing the grid-based playback speed speed mechanism: one row for coarse range, the row below for fine increments.

and even if sending shapes won’t happen, are you still including the runes? (linearize, double/half speed, etc.)

I would love to try this. I haven’t used Earthsea but have always been intrigued. I look forward to seeing how it goes and I thank you in advance for the hard work. (Unfortunately I don’t have the expertise to contribute)

teletype support: probably not on first iteration, keeping the scope small for now to get the work started. but yeah eventually it should have its own remote ops.

ioflow:

it’s too bad those are only trig inputs–if they were full cv in, they could be used to determine things like “play pattern from this point,” which would effectively be the mlr pattern recorder, perfect for jumbling up note sequences.

this would be a good candidate for a remote op.

clock:

it does make sense to use one of the trigger inputs as a clock since ES already supports it (i wasn’t sure if clock support was added or not). how does it work with ES.CLOCK right now? does it ignore recorded timing completely, so essentially it just non destructively linearizes the current pattern?

i assume it doesn’t need an internal clock, so when nothing is connected into the clock input it’ll just use recorded timing.

if the first trigger input is used for clock, i think it makes sense to use the 2nd trigger input to trigger pattern play (or restart it if it’s already playing).

ioflow:

what about using that second input for something like reverse current pattern direction?

this could be something for next version, supporting different direction, with a corresponding button and a remote op.

ioflow:

how are you going to handle the four voices? one per page, or spillover for overlapping notes/chords? i’d guess the former, but i just want to make sure.

it’ll round robin through available voices. if all 4 are currently playing it’ll steal the earliest. this will also apply if you’re playing over a recorded pattern. does this make sense?

ioflow:

it’s probably beyond the scope of your port, but i can imagine a single voice earthsea that still uses shapes, by sending via the cv outs.

yeah, something like this would increase the scope significantly, so i’ll leave it for somebody else. re: runes - the functionality they provide is important, but with polyphonic keyboard i’m not sure how would you distinguish between a rune and a chord being played. some functionality could be shifted to module buttons (prev/next pattern) or a modifier button could be used - how about using slew button for this?

it does make sense to use one of the trigger inputs as a clock since ES already supports it (i wasn’t sure if clock support was added or not). how does it work with ES.CLOCK right now? does it ignore recorded timing completely, so essentially it just non destructively linearizes the current pattern?

when clocked externally it’s easy to linearize it in monophonic version. for polyphonic it will need to decide which notes to play together (for chords), as there might be some timing fluctuations between notes within the same chord (see the video above for a truly horrible example of that). probably group notes that are close to each other? how do we define “close”? 10ms or less? different number?

10ms is the default time for the Max thresh object so that’s probably a good place to start. (Though I wonder if the assumptions about playing on a piano-style keyboard, which I imagine was the model for Max, vs. a grid might need to be different.)

it is very important. when using runes, or any other setting to play patterns at slower speeds, the note held length gets dragged out, so even quick button presses become long drones, which may be undesirable. being able to shorten that up by adjusting gate length is critical. or activating drone mode, for building washy soundscapes.

Press START/STOP to begin playback, and again to stop the pattern midway. The pattern will play through to the end and then stop.

this is not the behaviour i’m seeing on my earthsea running the latest official firmware. if a pattern is playing and i press start/stop button again it stops immediately. what’s the preferable behaviour?

i’ll be away for the weekend, so won’t be able to work more on this until next week. which is why i’m posting a beta without giving it more than just a quick test. as i need to wrap up teletype 2.3 development (and i don’t know earthsea all that well) i’m hoping to get help with testing from community. just remember it’s quite likely there might be bugs, and your presets will be gone when you update firmware!

earthsea is the 3rd grid app. switch the usual way (long press on the mode key) until the light turns amber white.

what’s done:

you have same buttons on the left, starting from the top: start/stop, pattern select, arm, loop, arp

polyphonic playing and recording

16 patterns and 8 banks, same as original

arp mode

what’s left:

edge mode

key map

teletype ops

what’s different from the original:

polyphonic!

no shapes (so slew button and screen are also gone)

runes now work differently - press the former slew button to see runes, press any to activate

portamento - i’m not sure how would this work in polyphonic context

external clock supported, it will autodetect if something is plugged into the first trigger input and use it as a clock (it will not play without a clock in this mode)

2nd trigger input can be used to trigger playback

buttons switch to prev/next pattern

operation should be very similar to the original module (all key shortcuts should be supported). there might be some differences as i ended up not using much of the original code, if you notice something it’ll be hugely helpful if you can confirm the behaviour being different on the original earthsea!