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


#225

on pattern view it’s the 3 buttons to the right of the 4x4 square where you trigger pattern playback. to select a leader press and hold “set leader” button and then press the pattern you want to set as a leader (to deselect do this again).

by default a leader pattern doesn’t do anything, but using the 2 buttons below “set leader” button you can make it reset other playing patterns or use it as the master clock (or both).

this can be useful if you want to have several patterns playing in sync (you can do this with an external clock, of course, but since earthsea module doesn’t have a clock input this can be a workaround). but perhaps a more interesting use for this is recording a pattern and then changing its timing completely with a different pattern.

you can still apply speed and linearization runes to the leader pattern while it’s used as the master clock. you can see it in action here: https://www.instagram.com/p/Brjx4gsFfr1/.

there is one bug currently - if you are using a leader pattern as the master clock and you assign a different pattern as the leader, it will stop, and to restart it you need to deselect “clock” and select it again.

i’ve updated the doc: https://github.com/scanner-darkly/polyearthsea/wiki/pattern-playback-and-management (also updated other diagrams).


#226

great, will try it out. thanks for the update.


#227

i am really loving polyES here – it was a new life for my ww! :smiley:

but i couldnt make my shnth works –
shnth turns on (i can see the lights of a patch uploaded there) but:

  1. i had some patterns made on monome before and tried to turn some of them on/off using buttons and didnt work…
  2. i dont understand well how to assign and control mod buses with the bars… (can i use antennae?)

i am using a gs128 + ww here

any help?
thx in advance!


#228

hard to say with shnth since i couldn’t find a description of its HID package format, so the implementation is based on experimenting with my own unit. unfortunately there isn’t much i can do unless i have your unit to experiment with. let me think about, i might be able to make a version for you that will output some information using grid that will help me troubleshoot. i should have something next week.

for modulation see this page: https://github.com/scanner-darkly/polyearthsea/wiki/output-parameters-and-modulation

this will tell you how to assign mod buses to parameters. since you’re using ww the 2 knobs on ww will be mapped to mod buses 1&2, then when shnth is connected bar pressure will be mapped to buses 3-6 and antennas will be mapped to mod buses 7&8. this is all pre-mapped, you don’t have to do anything other than just assign mod buses to some parameters. for antennas i also found that i needed to press the top button - i wonder if this somehow depends on the actual shnth patch…


#229

i can copy the output of supercollider patch that peter includes on shbobo.zip, could this be of any help?

*** Welcome to SuperCollider 3.9.3. *** For help press Ctrl-D.
HID: found 1 devices
-> IdentityDictionary[ (0 -> a HIDInfo(, , IDs:26214, 26214, \?\hid#vid_6666&pid_6666#7&ffa5857&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}, , 2, -1)) ]
0: Usage name and page: GamePad, GenericDesktop
Vendor name:
Product name:
Vendor and product ID: 26214, 26214
Path: \?\hid#vid_6666&pid_6666#7&ffa5857&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
Serial Number:
Releasenumber and interfaceNumber: 2, -1
-> HID
HID: path was not set specified yet, chosen the one with path: \?\hid#vid_6666&pid_6666#7&ffa5857&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
index: 0
parent_collection: 0000000002DEBD40
io_type: 1
usage_page: 1
usage_min: 0
usage_max: 0
usage: 48
type: 2
isarray: 0
isrelative: 0
isvariable: 1
logical_min: -128
logical_max: 127
phys_min: 0
phys_max: 0
unit: 0
unit_exponent: 0
report_id: 0
report_size: 8
report_index: 1

open device 0000000002E8AD00
HID: Opened device: a HIDInfo(, , IDs:26214, 26214, \?\hid#vid_6666&pid_6666#7&ffa5857&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}, , 2, -1)
start polling thread for 48803072
-> a HID
-> nil
HID Element: 0, type: 1, 2, usage page: 1, usage index: 48
Description: GenericDesktop, X, input,
[ Data, Variable, Absolute, NoWrap, Linear, PreferredState, NoNullPosition, NonVolatile, BitField ]
Usage range: [ 0, 0 ]
Logical range: [ -128, 127 ]
Physical range: [ 0, 0 ], Unit: 0, Exponent: 0
Report ID: 0, size 8, index 1

HID Element: 1, type: 1, 2, usage page: 1, usage index: 49
Description: GenericDesktop, Y, input,
[ Data, Variable, Absolute, NoWrap, Linear, PreferredState, NoNullPosition, NonVolatile, BitField ]
Usage range: [ 0, 0 ]
Logical range: [ -128, 127 ]
Physical range: [ 0, 0 ], Unit: 0, Exponent: 0
Report ID: 0, size 8, index 1

HID Element: 2, type: 1, 2, usage page: 1, usage index: 50
Description: GenericDesktop, Z, input,
[ Data, Variable, Absolute, NoWrap, Linear, PreferredState, NoNullPosition, NonVolatile, BitField ]
Usage range: [ 0, 0 ]
Logical range: [ -128, 127 ]
Physical range: [ 0, 0 ], Unit: 0, Exponent: 0
Report ID: 0, size 8, index 1

HID Element: 3, type: 1, 2, usage page: 1, usage index: 51
Description: GenericDesktop, Rx, input,
[ Data, Variable, Absolute, NoWrap, Linear, PreferredState, NoNullPosition, NonVolatile, BitField ]
Usage range: [ 0, 0 ]
Logical range: [ -128, 127 ]
Physical range: [ 0, 0 ], Unit: 0, Exponent: 0
Report ID: 0, size 8, index 1

HID Element: 4, type: 1, 2, usage page: 1, usage index: 52
Description: GenericDesktop, Ry, input,
[ Data, Variable, Absolute, NoWrap, Linear, PreferredState, NoNullPosition, NonVolatile, BitField ]
Usage range: [ 0, 0 ]
Logical range: [ -128, 127 ]
Physical range: [ 0, 0 ], Unit: 0, Exponent: 0
Report ID: 0, size 8, index 1

HID Element: 5, type: 1, 2, usage page: 1, usage index: 53
Description: GenericDesktop, Rz, input,
[ Data, Variable, Absolute, NoWrap, Linear, PreferredState, NoNullPosition, NonVolatile, BitField ]
Usage range: [ 0, 0 ]
Logical range: [ -128, 127 ]
Physical range: [ 0, 0 ], Unit: 0, Exponent: 0
Report ID: 0, size 8, index 1

HID Element: 6, type: 1, 2, usage page: 1, usage index: 54
Description: GenericDesktop, Slider, input,
[ Data, Variable, Absolute, NoWrap, Linear, PreferredState, NoNullPosition, NonVolatile, BitField ]
Usage range: [ 0, 0 ]
Logical range: [ -128, 127 ]
Physical range: [ 0, 0 ], Unit: 0, Exponent: 0
Report ID: 0, size 8, index 1

HID Element: 7, type: 1, 2, usage page: 9, usage index: 1
Description: Button, b1, input,
[ Data, Variable, Absolute, NoWrap, Linear, PreferredState, NoNullPosition, NonVolatile, BitField ]
Usage range: [ 0, 0 ]
Logical range: [ 0, 1 ]
Physical range: [ 0, 0 ], Unit: 0, Exponent: 0
Report ID: 0, size 8, index 1

HID Element: 8, type: 1, 2, usage page: 9, usage index: 2
Description: Button, b2, input,
[ Data, Variable, Absolute, NoWrap, Linear, PreferredState, NoNullPosition, NonVolatile, BitField ]
Usage range: [ 0, 0 ]
Logical range: [ 0, 1 ]
Physical range: [ 0, 0 ], Unit: 0, Exponent: 0
Report ID: 0, size 8, index 1

HID Element: 9, type: 1, 2, usage page: 9, usage index: 3
Description: Button, b3, input,
[ Data, Variable, Absolute, NoWrap, Linear, PreferredState, NoNullPosition, NonVolatile, BitField ]
Usage range: [ 0, 0 ]
Logical range: [ 0, 1 ]
Physical range: [ 0, 0 ], Unit: 0, Exponent: 0
Report ID: 0, size 8, index 1

HID Element: 10, type: 1, 2, usage page: 9, usage index: 4
Description: Button, b4, input,
[ Data, Variable, Absolute, NoWrap, Linear, PreferredState, NoNullPosition, NonVolatile, BitField ]
Usage range: [ 0, 0 ]
Logical range: [ 0, 1 ]
Physical range: [ 0, 0 ], Unit: 0, Exponent: 0
Report ID: 0, size 8, index 1

HID Element: 11, type: 1, 2, usage page: 9, usage index: 5
Description: Button, b5, input,
[ Data, Variable, Absolute, NoWrap, Linear, PreferredState, NoNullPosition, NonVolatile, BitField ]
Usage range: [ 0, 0 ]
Logical range: [ 0, 1 ]
Physical range: [ 0, 0 ], Unit: 0, Exponent: 0
Report ID: 0, size 8, index 1

HID Element: 12, type: 1, 2, usage page: 9, usage index: 6
Description: Button, b6, input,
[ Data, Variable, Absolute, NoWrap, Linear, PreferredState, NoNullPosition, NonVolatile, BitField ]
Usage range: [ 0, 0 ]
Logical range: [ 0, 1 ]
Physical range: [ 0, 0 ], Unit: 0, Exponent: 0
Report ID: 0, size 8, index 1

HID Element: 13, type: 1, 2, usage page: 9, usage index: 7
Description: Button, b7, input,
[ Data, Variable, Absolute, NoWrap, Linear, PreferredState, NoNullPosition, NonVolatile, BitField ]
Usage range: [ 0, 0 ]
Logical range: [ 0, 1 ]
Physical range: [ 0, 0 ], Unit: 0, Exponent: 0
Report ID: 0, size 8, index 1

HID Element: 14, type: 1, 2, usage page: 9, usage index: 8
Description: Button, b8, input,
[ Data, Variable, Absolute, NoWrap, Linear, PreferredState, NoNullPosition, NonVolatile, BitField ]
Usage range: [ 0, 0 ]
Logical range: [ 0, 1 ]
Physical range: [ 0, 0 ], Unit: 0, Exponent: 0
Report ID: 0, size 8, index 1

-> a HID


#230

thanks, yeah this helps! somebody also graciously offered to lend me their shnth so i should be able to do some testing and troubleshooting with a different one.


#231

The extra octaves are really great but I have noticed that when controlling just friends the octave range is more the the higher range. Wondering if it would be possible to have jf respond -2,-1,0,1,2 oct?
Would love to get some deeper tones out.

Also a little cosmetic request, the keymapping seems lower in brightness then the other pages, would it be possible to have 3 brightness levels so in low light the current settings would be best and in daylight or bright light the 3rd brightness level could be used.

The update as a whole is really fantastic! Thank you.


#232

yeah, can definitely transpose jf range down!

not sure about adding another level for keymapping - i think this’ll make it more difficult to use… how about simply increasing brightness instead?


#233

Transposing the octave range down would be amazing!
Increasing the brightness would be great too, I’m struggling to see the key maps in the daylight.


#234

will include both in the next release!


#235

@scanner_darkly any idea why i can’t get the ansible to recognize a roland UM-ONE for midi recording?


#236

it’s hard to say based on a short description - can you elaborate? does it play any notes at all, or is it just the recording that doesn’t work? what exactly happens when you record?


#237

Sorry i’m not very good at explaining myself sometimes haha. But I was following the instructions for midi recording found in the github docs, specifically the line the that says to press the front button until notes are recorded if you’re not sure which state you’re in. But then I noticed that the lights on the UM-ONE weren’t lit up at all as if it wasn’t recognizing ansible as usb-midi device. And it does work with the normal anisible firmware’s midi mode, if that helps at all.


#238

when you use it with the original ansible firmware, are the lights lit up?
and when using with polyearthsea, can you play any notes? is it just recording that’s not working?


#239

The lights (on the umone) do activate when plugged in to the original firmware.
No notes get played in ployeaethsea through the umone, so i do not think its a recording problem.

This all came up as i do not have a usb midi keybaord on hand, so i was trying to send midi from my computer, through a midi interface, into the umone and then to ansible (again this set up works with the original firmware)

And this really isn’t a deal breaker for me as polyearthsea is amazing already, i just thought it could be fun to use norns or something like less concepts to record midi from.
I don’t want to distract from whatever else you got cookin


#240

Finally got around to testing my Ansible I2C busboard. Everything works ok! Board files are here:

If anyone in Australia wants one let me know!

Im not using it with PolyES actually, but my Teletype moves around a bit, so its easier for my I2C stuff to be connected to Ansible instead of Teletype


#241

@rdfm - strange, the midi code is based on what’s in the original ansible firmware. i’ll take a look - polyearthsea bugs are a priority, and i do want to make sure midi is working properly. as i don’t have umone would you be willing to help me with some testing? it’ll probably be next week before i have something to test.

@jimi23 - that’s great, thanks for sharing the files! i’ve added a link to the i2c setup page.


#242

good question, i haven’t considered this. so there are several options that would work:

  • i can provide a modified faderbank firmware that will use a different set of SC.CVs to avoid overlap
  • i can add an option to polyes to shift which SC.CVs it uses

the latter is probably better, since it can be switched in polyes itself without having to flash another firmware.

another question is - what if you want to use faderbank as a controller for polyes as well (i’m planning to add support for using txi and faderbank as polyes controllers at some point). in this case it would also make sense to shift polyes addresses instead of faderbank.

it’ll basically be a button on the voice configuration page that when enabled will shift SC addresses used by polyes by 16.


#243

The second option does sounds ideal. I really love the idea of it being addressed from polyes as it seems like a more flexible option. I also hadn’t considered using the 16n to control polyes, now that’s exciting!!!


#244

yeah, one of the next planned features is being able to map external controllers to mod buses (right now they are pre-mapped), so you could assign a fader to each mod bus, for instance.