OMFG the arc is alive.
Just having a quick play with it now — I deeply appreciate being able to remap the arc controls! Curious to see what you do for the note select animation. Traffic is one of my favorite arc implementations for performance controls partly because of how it does transpose and modulate.
Other quick-and-shallow thoughts: Cell select feels great, didn’t know I that I wanted it but now it feels obvious. Noticing some arc animation slowdowns on the analysis page when scrubbing through structures, but I didn’t hear that affecting the audio or midi timing so I feel weird even mentioning it.
I love spending time in this script. Thank you.
Here’s a 100% reproducible (for me, norns shield) pset issue I’ve been meaning to send your way for a few minor versions now (apologies for late reporting): If I disable any structure(s) in Edit and save that as pset 01 so that it’s my default settings, I get error: init the next time I load the script. Only by deleting pset 01 will arcologies load again.
Matron messages during `error: init` load:
# script load: /home/we/dust/code/arcologies/arcologies.lua
### cleanup failed with error: /home/we/dust/code/arcologies/lib/_midi.lua:52: attempt to index a nil value (field 'devices')
# script clear
ERROR (i2c/hp) failed to write
including /home/we/dust/code/arcologies/lib/includes.lua
including /home/we/dust/code/arcologies/lib/config.lua
including /home/we/dust/code/arcologies/lib/structures.lua
including /home/we/dust/code/arcologies/lib/Cell.lua
including /home/we/dust/code/arcologies/lib/mixins/bearing_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/capacity_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/channel_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/charge_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/clockwise_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/crow_out_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/crumble_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/deflect_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/device_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/docs_stub_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/drift_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/duration_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/er_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/level_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/mapping_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/metabolism_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/network_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/notes_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/offset_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/operator_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/output_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/ports_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/probability_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/pulses_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/range_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/resilience_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/state_index_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/structure_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/territory_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/topography_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/turing_mixin.lua
including /home/we/dust/code/arcologies/lib/mixins/velocity_mixin.lua
including /home/we/dust/code/arcologies/lib/Signal.lua
including /home/we/dust/code/arcologies/lib/functions.lua
including /home/we/dust/code/arcologies/lib/saveload.lua
including /home/we/dust/code/arcologies/lib/_arc.lua
including /home/we/dust/code/arcologies/lib/_crow.lua
including /home/we/dust/code/arcologies/lib/counters.lua
including /home/we/dust/code/arcologies/lib/docs.lua
including /home/we/dust/code/arcologies/lib/filesystem.lua
including /home/we/dust/code/arcologies/lib/_grid.lua
including /home/we/dust/code/arcologies/lib/glyphs.lua
including /home/we/dust/code/arcologies/lib/graphics.lua
including /home/we/dust/code/arcologies/lib/keeper.lua
including /home/we/dust/code/arcologies/lib/menu.lua
including /home/we/dust/code/arcologies/lib/_midi.lua
including /home/we/dust/code/arcologies/lib/page.lua
including /home/we/dust/code/arcologies/lib/parameters.lua
including /home/we/dust/code/arcologies/lib/popup.lua
including /home/we/dust/code/arcologies/lib/_softcut.lua
including /home/we/dust/code/arcologies/lib/sound.lua
including /home/we/dust/code/arcologies/lib/api.lua
pset >> write: /home/we/dust/data/system.pset
# script run
loading engine: PolyPerc
>> reading PMAP /home/we/dust/data/arcologies/arcologies.pmap
Engine.register_commands; count: 7
___ engine commands ___
amp f
cutoff f
gain f
hz f
pan f
pw f
release f
___ polls ___
amp_in_l
amp_in_r
amp_out_l
amp_out_r
cpu_avg
cpu_peak
pitch_in_l
pitch_in_r
# script init
pset >> read: /home/we/dust/data/arcologies/arcologies-01.pset
### SCRIPT ERROR: init
/home/we/dust/code/arcologies/lib/keeper.lua:403: attempt to index a nil value (field 'selected_cell')
stack traceback:
/home/we/norns/lua/core/norns.lua:136: in metamethod '__index'
/home/we/dust/code/arcologies/lib/keeper.lua:403: in method 'delete_all_structures'
/home/we/dust/code/arcologies/lib/structures.lua:66: in method 'delete_disabled'
/home/we/dust/code/arcologies/lib/parameters.lua:118: in field 'action'
/home/we/norns/lua/core/params/option.lua:51: in function 'core/params/option.bang'
/home/we/norns/lua/core/params/option.lua:36: in function 'core/params/option.set'
/home/we/norns/lua/core/paramset.lua:389: in function 'core/paramset.read'
/home/we/norns/lua/core/paramset.lua:408: in function 'core/paramset.default'
/home/we/dust/code/arcologies/lib/parameters.lua:131: in field 'init'
/home/we/dust/code/arcologies/arcologies.lua:17: in global 'init'
/home/we/norns/lua/core/script.lua:105: in function 'core/script.init'
[C]: in function 'xpcall'
/home/we/norns/lua/core/norns.lua:137: in field 'try'
/home/we/norns/lua/core/engine.lua:91: in function </home/we/norns/lua/core/engine.lua:89>