— arcologies —

hey! sorry you’re having troubles. can you try running this script and let me know if it works? pressing k2 should generate a random note on JF: athenaeum/jf.lua at main · northern-information/athenaeum · GitHub

1 Like

Thanks @tyleretters !!

Yes, this jf.lua works perfect.

I have been able to use JF with Arcologies if I first launch Initenere and connect with JF and then change script to Arcologies. It seems that if it is initialized by another script first if it responds.

Another note, after using arcologies if I want it to work again Initenere + JF I need diconnect usb cable and try another usb port on my norns. Then JF response is perfect.

Same here, I follow a similar procedure. When everything with crow and JF is connected, I power up norns and then power up the eurorack case. If still in arcologies, I start the awake script and then start arcologies. And then it works fine!

1 Like

@raw @riueru are you comfortable modifying some of the code to debug? if not let me know and i’ll package a new version of arcologies for you. i want to make sure this works before adding it to a main release.

  1. open up /we/dust/code/arcologies/lib/_crow.lua in maiden or a text editor.
  2. find this code:
function _crow.init()
  crow.output[2].action = "pulse(.025, 5)"
  crow.output[4].action = "pulse(.025, 5)"
  1. replace it with this:
function _crow.init()
  crow.output[2].action = "pulse(.025, 5)"
  crow.output[4].action = "pulse(.025, 5)"

(huge thanks to @Galapagoose for the assist!!!)


Thanks @tyleretters!
Replaced. I am going to try now.

First test: works great.

1 Like

After some tests with the replaced code, here my observations. From what I understood with norns and crow, I have to power up crow after it is connected to norns and after norns is powered up, so that crow starts as follower of norns. So basically I power up my eurorack case while some sort of script being active on norns.

What works: norns boots into arcologies, power up crow, restart arcologies, then JF works!

What does not work: norns boots into awake, power up crow, switch to arcologies, JF doesn’t react, restart arcologies, JF does still not react.

As far as I could find, crow works all the time, while the routine to make JF work seems to be: switch on eurorack while in arcologies, restart arcologies.

@raw yes!!

@riueru thank you for the detailed notes. i think i’ll build a little feature that checks for a crow connection post startup. it is super frustrating to have to remember some magic order to do all that.

1 Like

I know I’m late to the party by a year, but now that I have a grid and some idea what I’m doing I really love this script.


Apologies for this dumb question about this awesome script, but how exactly do I save an arcology? I tried via Load in the norns parameter edit menu, which gave me FILENAME.pset and FILENAME.arcology.

When I loaded FILENAME.arcology the structures on the grid were intact, but the parameters of the structures were all over the place. Loading FILENAME.pset afterwards did not fix it.

Please, what am I doing wrong?

that should be all you have to do! can you try testing with a simple project, maybe just 3 hives or something. see if you can save and recall it without the parameters getting mucked up.

Hi, very new Norns user here. I have everything up to date and other scripts and tape are outputting as expected, but I get no sound output at all from Arcologies (v1.2.7) for some reason :pleading_face:
I’ve tried setting up simple maps and also seeding random ones, but I only get silence out.
It’s very likely that I’ve made a mistake with something or inadvertently changed a setting I shouldn’t have, but I can’t figure it out.
Is there anything obvious I could have got wrong?

try setting up a hive and a shrine on the same row. open all the ports on each like this:

. . . . . . . . . . . . . . . . 
. . . + . . . . . . + . . . . . 
. . + h + . . . . + s + . . . . 
. . . + . . . . . . + . . . . . 
. . . . . . . . . . . . . . . . 

when you hit play the hive should emit signals and the shrine will receive them and play a note.

1 Like

Thank you. I don’t know was wrong before, but today it’s working as expected and is singing away. Looking forward to exploring these new worlds :slight_smile:

Is there any way to adjust the filter cutoff of the inbuilt sound engine?

well done! no way to control the cutoff from the app, but you should be able to do it via the maiden repl by typing engine.cutoff(your_new_cutoff_value_here)


Thank you for your answer, and sorry for the long delay in answering.

updated norns to lastest version.

I set up an very simple project (hive and shrine on same row),
tuned shrine to C2,
saved it as FILE via parameters > edit > save arcology
loaded FILE.arcology in parameters > edit > load arcology,
and the shrine is playing at C4

I’ve attached both FILE.arcology and FILE.pset
FILE.arcology (30.3 KB)
FILE.pset (1.4 KB)

Then I updated arcology via maiden project manager, restarted, repeated the steps above:
same result :frowning:

Then I put norns to sleep, started it, repeated the steps above:
same result :frowning:

Please, are the more information I can provide to help?

EDIT: I also tried un-installing and re-installing arcology, still no luck. :frowning:

@wolfgangschaltung this .arcology works for me. so your original issue with “parameters of the structures were all over the place” is solved? now it sounds like the issue is that it is playing c2 instead of c4?

@tyleretters, sorry, I was not clear in my description. Please let me try again.

I can store and recall how structures are distributed on the grid (i.e. which grid cell contains which structure). I do this via parameters > edit > save arcology and parameters > edit > load arcology (and load FILENAME.arcology, I don’t load FILENAME.pset).

But I have not yet found a way to store and recall the parameters of certain structures. When I do save/load arcology, the structures shrine and topiary have lost their parameters, e.g. a shrine loses note value, and topiary loses note count and note #x values. Interestingly, hive remembers its metabolism value. I have not yet tested other structures and their parameters.

Please help me understand what I am misunderstanding and doing wrong.

In addition to the steps I listed in my previous post, I just did a fresh install of norns (flashing it and installing norns disk image, update to latest version, updated arcology), but still hive and topiary lose their note-related parameter values.

1 Like

ahh i see. thank you for the detailed description of the issue. this sounds like a bug to me. i’ll test this over the next couple days and provide a fix. sorry for the trouble.

1 Like

@wolfgangschaltung i worked on this for a few hours. it is definitely a bug and not something you’re doing wrong. i don’t have an eta on a fix - it is some deeper issue that i can’t put my finger on yet.

@tgk i was unable to reproduce the transpose bug. it works for me going up and down. were you experiencing this with the “ROOT” note? because if you were…

@Autogeneric i was able to reproduce the ROOT note issue. haven’t been able to track down a fix yet. everything appears to be working ok.


@tyleretters thanks so much for arcologies <3. I’m slowly beginning to make sense of it.

There are some issues that I’ve come across which are very possible user errors, although not sure. If in the future you would like them on github rather than here, let me know.

First, Arcologies doesn’t seem to send a MIDI clock signal when MIDI is used, is that right? I’m driving some synths from Arcologies with MIDI so that MIDI flow of note on/off is working fine, but there doesn’t seem to be a clock. Am I overlooking a setting or is this by design?

Second: I have a Dome with Metabolism 5 and Pulses 3. The pattern I get is xxox ooxo xoox oxoo (spacing for readability, x is active, o is inactive - not sure where the actual start of the pattern is)
I’m using Euclidian Rhythms quite often in other gear and I was expecting a repeating sequence of xoxox. You do mention in a video that the pattern wraps around the barlength (which in my script is 16) but even then the pattern doesn’t generate 3 pulses every 5 steps. Any hints if that’s a bug or I’m understanding it wrong?

Third: Arcologies with internal clock is wonky with more than 15 structures or so. With MIDI external clock its better. This is on a Norns Shield, Raspberry 3B+. I am using OSCgrid and an Android tabled for grids, so it could be that, too. Other scripts have more stable clocks in my setup though.

Fourth: The shortest note duration (1) is still too long for plucky envelopes on MIDI gear. Have you thought about a global option to shorten the durations? That way you could be backwards compatible with a default value, but would support “arbitrarily” long / short minimum durations. E.g. I could set duration 1 to equal a 32th note, while the default is a 16ths (I believe it is anyway). Longer durations could be calculated relative to that set length.

Last: My .arcology safe files do work (in the sense I can load them again), but my Topiaries and their derivatives do forget their assigned notes. I.e. I have a single Topiary with 4 notes, all set to A3 for testing, when I load the script again the Topiary has reset to 8 notes and “random” notes. Multiple reloads result is different notes each time, length 8 is consistent.
I do load the .arcology file by the way, loading the .pset does nothing but I believe that is as expected.
[UPDATE] I just realized that this is the same behaviour as the one described by @wolfgangschaltung

As new user I cannot attach my test script but I can get it to you by other means if you’d find that useful.

Sorry for the wall of text - like I said I fully expect them to be user errors.

Possible fix:
I’ve had a look at the Lua code and the save file. Disclaimer: I’ve been coding all sorts of languages for several decades but this is my first real look at Lua, so this isn’t more than an educated guess, really.

It looks to me like the save file is correct:
The entry for my Topiary contains these two keys:


and the table entry #86 is this


69 might refer to MIDI note A4. since I’m setting the four notes of my Topiary to A3 (!) I’m guessing that is it and you simply store all 8 notes.

What is confusing me is the load process…
in saveload.lua you eventually call saveload:load_cells and within that tmp.change:checks() where tmp is an instance of Cell.
Within Cell.change_checks() is this:

elseif self:is("TOPIARY") then

where the functions in notes_mixin.lua simply set the note count to 8 and initialize all notes randomly.
The values from the save file are ignored there, this initialization-style code.

The above mentioned call to tmp:change_checks() does happen after you iterate over all tmp:get_save_keys() and assign the values to tmp.

On my norns I’ve moved tmp.change_checks() in saveload.lua from line 62 to line 58 – above the for-loop – and my save files seem to work. Thorough testing is required though.