arcologies

an interactive environment for designing 2d sound arcologies with norns and grid

arcologies


— In Brief

  • Organize cells on the grid.
  • Cycle through their structures to define behavior.
  • Open their ports .
  • Toggle playback and watch as signals are released and captured.
  • Use signals to control logic, play synths, trigger samples, and route to outboard gear.
  • Analyze and sculpt the emergent system.
  • Save and share.

— Requirements

  • monome norns 200712
  • monome "varibright" grid

— Optional

  • monome arc

Interface


— norns

Encoder one (e1) always navigates horizontally between pages. Encoder two (e2) always scrolls through menu items. Encoder three (e3) always changes item values.

Key one (k1) always exits to the main norns menu. Key two (k2) always toggles playback. Key three (k3) always deletes the selected cell.

— grid

Press any key to create and/or select a cell. Press again to (or an empty key) to deselect. Press an adjacent key to toggle ports.

— norns (advanced)

Long press k3 to trigger a countdown and delete all cells.

When changing values with e3, some items will use a pop-up menu. Unless otherwise specified on the screen, a 0.5 second threshold of inactivity (i.e. less than half a second after you stop turning e3) will result in returning to the previous menu. Note that the value selection is instantaneous - not 0.5 seconds - and some pop-up menus have an ABORT option available at the "bottom" of the values (i.e. spin e3 counter-clockwise until you see ABORT).

Move any encoder to skip the Northern Information splash screen or dismiss an full screen notification (such as grid disconnect messages).

— grid (advanced)

Long press a cell to copy to your clipboard. Short press any empty key to paste. Release to clear your clipboard. While copying, ports disappear allowing you to paste to adjacent cells.

Cells


Cells are the building blocks of arcologies. Each key of grid represents a cell. Each cell has a structure, but these structures can be changed. Structures define qualities, behaviors, and attributes of a cell. Cells do one of three things:

  1. Manipulate signals.
  2. Play sounds on norns.
  3. Communicate with outboard gear.

Cells also have four ports, each of which can either be open or closed. Ports direct the flow of signals.

Cell

"[...] civilisations fall, sooner or later [...] and those forces which were always there, deeper than the foundations of the city walls: the desire to survive and the desire for meaning." — The Dark Mountain Manifesto


Each unlit key on the grid holds potential to become any structure.

— Attributes

  • None

Signals


Like photons, signals are the elementary particle of arcologies. All signals are created equal: they move at the same speed, have the same attributes, and interact with the world around them exactly as each other signal would. Signals really only have one meaningful attribute: a heading.

Signals move in straight lines. Signal headings are simply the cardinal directions of north, east, south, and west.

Signals allow cells to interact at a distance. Some cells emit signals. Other cells destroy signals. Yet others multiply, divide, and change the direction of signals.

If two (or more) would occupy the same coordinate at the same time, they will all be destroyed.

Signals are destroyed when they leave the boundaries of the grid.

In arcologies the glyph for a signal is Y.

Signals are like "bangs" from Max/MSP, PureData, Orca, etc.

Structures


Hive

"The pulse of life & the endless cycle of progress."


Emit signals at regular intervals. See this table for more info.

— Attributes

  • Offset
  • Metabolism
Shrine

"A holy site to the SuperCollider pantheon."


Plays single notes via onboard SuperCollider engine. Routes the flow of signals through open ports.

— Attributes

  • Note
  • Velocity
Gate

"The destinies of those who pass through are forever changed."


Routes the flow of signals through open ports. If a signal collides a closed port, invert all ports.

— Attributes

  • None
Rave

"Rolling drums and muffled subs in the distance."


Emits signals like a hive, but on spawn all ports are randomly toggled. See this table for more info.

— Attributes

  • Offset
  • Metabolism
Topiary

"A dangerously innocuous structure, the topiaries are endlessly groomed by the nuns and monks."


Like shrines but has eight notes. Each time a note plays, the next note is selected via topography. Routes the flow of signals through open ports.

— Attributes

  • Index
  • Notes 1 — 8
  • Topography
  • Velocity
Dome

"Geodesics reverberating with chlorophyll psalms."


Emits signals like a hive, but uses a Euclidian rhythm algorithm. The dome’s metabolism maps to total steps while pulses map to events/beats.

— Attributes

  • Offset
  • Metabolism
  • Pulses
Maze

"Legends speak of a being named Turing..."


Emits signals like a hive, but based on a simple Turing Machine (analog shift register) algorithm.

— Attributes

  • Offset
  • Metabolism
  • Probability
Crypt

"Either time or ghosts have rendered them all nameless."


Rudimentary one-shot mono sampler. Sources files matching the pattern {1,2,3,4,5,6}.wav from both /dust/audio/arcologies/crypt/* (the default) & /dust/audio/crypts/*/* (the DLC). Routes the flow of signals through open ports.

— Attributes

  • Index
  • Level
Vale

"At least it plays in key."


Randomly plays a synth or MIDI note within a range. Routes the flow of signals through open ports.

— Attributes

  • Range Min
  • Range Max
  • Velocity
  • Output
  • Duration
  • Channel
  • Device
Solarium

"Part greenhouse, part solar array."


Stores signals as charge. Once the capacity is met, on the following beat: temporarily invert all ports and emit a burst of signals.

— Attributes

  • Charge
  • Capacity
Uxb

"Beneath each uxb's dusty façade: a doorway to your own childhood."


Send single notes to connected MIDI devices. Routes the flow of signals through open ports.

— Attributes

  • Note
  • Velocity
  • Duration
  • Channel
  • Device
Casino

"Forget your troubles, see a show, gamble a little. Win some money, lose some money."


Is to uxbs what topiaries are to shrines. Routes the flow of signals through open ports.

— Attributes

  • Index
  • Notes 1 — 8
  • Topography
  • Velocity
  • Duration
  • Channel
  • Device
Tunnel

"Each echoes the other."


Routes incoming singles to each other tunnel on the same network.

— Attributes

  • Network
Aviary

"Go then, there are other worlds than these."


Send single velocity / trigger pairs to crow. Routes the flow of signals through open ports.

— Attributes

  • Note
  • Crow Out
Forest

"In this haze of green and gold."


Is to aviaries what topiaries are to shrines. Routes the flow of signals through open ports.

— Attributes

  • Index
  • Notes 1 — 8
  • Topography
  • Crow Out
Hydroponics

"Yeah... for growing food... right."


Modulate the metabolism at a distance of all cells within its territory. Hydroponics can operate on other hydroponics, but never on themselves. Routes the flow of signals through open ports.

— Attributes

  • Metabolism
  • Operator
  • Territory
Institution

"Steel and glass, a prototypical Augéian non-place. They don't last long anymore."


Signals against open ports cause it to crumble. When crumble reaches zero, the structure explodes in a burst of signals in all directions. Signals against closed ports are deflected.

— Attributes

  • Crumble
  • Deflect
Mirage

"From a fringe phenomenon to an everyday occurrence, no one could have anticipated what myriad of new mirages the anthropocene would cook up."


A drifting structure. Mirages will not collide with other structures. Routes the flow of signals through open ports.

— Attributes

  • Metabolism
  • Drift
Auton

"Every Auton was a fragment of the Consciousness..."


Is to spomeniks what topiaries are to shrines. Routes the flow of signals through open ports.

— Attributes

  • Index
  • Notes 1 — 8
  • Topography
Spomenik

"Peace is process, not a state."


Send single notes to Mannequins Just Friends via crow i2c. Routes the flow of signals through open ports.

— Attributes

  • Note
Kudzu

"You'll climb the wrist-thick kudzu vines that wrap the Sears Tower. And when you look down, you'll see tiny figures pounding corn, laying stripes of venison on the empty car pool lane of some abandoned superhighways."


Self-replicating structure. Blocks singal flow. Won’t grow over existing structures. Naturally deteriorates and dies back over time. Susceptible to cropdusting.

— Attributes

  • Metabolism
  • Resilience
  • Crumble
Windfarm

"For a whirlwind does not last a whole morning, nor does a sudden shower last a whole day."


Emits signals like a hive but spins.

— Attributes

  • Metabolism
  • Bearing
  • Clockwise
Fracture

"... a hypothetical traveller from another universe — presumably an older, more broken one — entering our own."


Plays a synth or MIDI note at a random velocity within a range. Routes signals to open ports.

— Attributes

  • Note
  • Range Min
  • Range Max
  • Output
  • Duration
  • Channel
  • Device
Cloakroom

"The mechanisms of these liminal structures are as clandestine as they are abstract."


Remote modulation: increment or decrement all target attributes of of adjacent cells by one. South and west ports increment. North and east ports decrement. These “psyops” can also be triggered manually via the cell designer menu as well as the “GLOBAL PSYOP” arc binding.

— Attributes

  • Target
  • Psyop
Apiary

"To make a prairie it takes a clover and one bee, One clover, and a bee. And revery. The revery alone will do, If bees are few. — Emily Dickinson"


Plays notes using nb library and downloaded mods. Each time a note plays, the next note is selected via topography. Routes the flow of signals through open ports.

— Attributes

  • Index
  • Notes 1 — 8
  • Topography
  • Velocity
  • Duration
  • nb Voice
  • nb Select

Attributes


Bearing The conceptual direction the structure is facing.
Capacity Defines an upper limit before an event occurs.
Charge Measure of energy, typically paired with capacity.
Clockwise It either is or it isn't.
Crow Out Defines which output pair (1/2 or 3/4) to use.
Crumble How deteriorated a structure is. When it reaches zero, the structure is destroyed.
Deflect Direction a cell will deflect a signal. Matching signal headings and deflections result in the signal being sent "counter clockwise" away (i.e. an west-bound signal and an west-deflecting cell will result in a north-bound signal.)
Device Where to send MIDI signals. Remember to setup in the norns menu first.
Drift Directions avaiable for a cell to move.
Duration The length of a note. 1 is short, 16 is long.
Index Pointer a cell uses to keep track of its own state.
Level Percentage volume control.
Metabolism The rate at which a cell interacts with the transport.
Network Define a channel of operations.
Note Count How many notes a cell can store.
Note(s) A musical note.
Offset The distance a cell is shifted relative to the global length. Patterns wrap.
Operator ADD, SUBTRACT, MULTIPLY, DIVIDE, MODULO, or SET.
Output Either SYNTH (SuperCollider) or MIDI.
Probability Odds of a cell doing something.
Psyop Increments or decrements the targeted values of adjacent cells.
Pulses Affects sequential flow of data through time.
Range (Min & Max) Defines the scope within which a cell operates.
Resilience Probability of a structure crumbling each tick of its metabolism.
Structure Defines all attributes and behaviors of a cell.
Target Attributes avialable for psyops.
Territory A region of the grid relative to a cell. Inclusive of leylines. Possible territories are NORTH, EAST, SOUTH, WEST, N/E, S/E, S/W, N/W, ALL, and FRINGE.
Topography >>>>, <<<<, >><<, or DRUNK
Velocity MIDI velocity from 0-127.

Save


Save and load via the norns parameter edit menu.

Saving creates a .arcology and a .pset and places them in /dust/data/arcologies.

Saving does not store audio or crypt .wavs. You get to manage those on your own. However! If you contribute your samples to crypts you'll be able to share that way.

Here's a minimalist arcology to get you started:

Miscellanea


— Port Nuance

On the grid, ports are only displayed as adjacent to the selected cell. The ports are actually just attributes of a given cell/key. Each cell has 4 ports (unless the cell is along the perimeter of the grid in which case they have only 3 (or 2 for corners (sorry, I know it is complicated)).)

In other words, think of ports at little tardigrade-sized doors on the walls of the keys themselves.

This means cells can be right next to each other and talk freely between their ports. When you select a cell, that cells ports will be drawn over any adjacent cells, but the adjacent cells continue to exist.

— Cellular Memory

In general, cells will remember their attributes as they mutate between structures. This means you can have a hive with a metabolism configured, then switch it to a shrine, then back to a hive the same metabolism will remain. The shrine (which doesn't have metabolism) won't erase them.

One key exception to this is any structure with notes. Topiaries "re-roll" their notes every mutation. Fickle things, topiaries.

— Leylines

Leylines help you visualize the signal flow of your arcology. Opening a port will draw a leyline to a terminus (either a neighboring cell or the edge of the grid.) Leylines are purely decorative and have no functional impact on your arcology.

— Signal Feedback

All signal collisions are animated with a simple "blink" of the key. This means that signal-on-signal cancellations, signals-on-closed-port, and signal-on-open-port all look the same.

— Time Signature & Polyrhythms

The concept of time signatures and polyrhythms absolutely exist in arcologies - they just aren't labeled with traditional music terms. First, change "length" (on the home page) to set how many beats are in a bar. Then, select a hive (or any signal emitter: dome, maze, etc.) and set the metabolism. You'll graphically see how these two attributes interact ons-creen. With a global length of 16 and a hive with a metabolism of 10, for example, you'll be able to create a "1-2-3-4-5-6-7-1-2-3-4-5-6-7-1-2" type of rhythm.

Finally, change the hive's offset. Note that since signals all move at the same speed concepts like irregular rests or triplets don't exist. Perhaps one day there will be a triplet structure that fires off bursts...

— Seeding

Seeding is purely random process with some opinionated boundaries for the various parameters. Your existing arcology has no impact on the result of a seed. Seeding destroys the current arcology. Seeding is arbitrarily capped to 32 cells (anything more than this felt super chaotic to me.) Seeding is not intelligent - you may generate an inert arcology with just 20 gates (unlikely), or the most beautiful symphony of all time (even more unlikely.) I find the feature a really fun way to get inspired and start a session.

— Pun?

arcologies was not a pun on monome arc. However, I do plan to add optional arc features in the future.

— Crypt Management

By default, crypt cells source files matching the pattern {1,2,3,4,5,6}.wav from /home/we/dust/audio/arcologies/crypt/*. Note this directory is a descendant of audio/arcologies/. Just drop your files in this directory and you'll be ready to play samples.

If you wish to use DLC from crypts you can configure your the source directory via the norns parameters menu. An arcology can only use one crypt at a time.

To get started, either download or clone crypts to /home/we/dust/audio (i.e. cd dust/audio && git clone git@github.com:/tyleretters/crypts crypts). If you don't want to deal with that and just want to load your own samples, simply create the directories and drop the files in.

— Default Crypt Hierarchy

home
 ↳we
   ↳dust
     ↳audio
       ↳arcologies
         ↳crypt
            1.wav
            2.wav
            3.wav
            4.wav
            5.wav
            6.wav

— "crypts" & Custom Hierarchy

home
 ↳we
   ↳dust
     ↳audio
       ↳crypts
         ↳my_name_1
          1.wav
          2.wav
          3.wav
          4.wav
          5.wav
          6.wav
         ↳my_name_2
          1.wav
          2.wav
          3.wav
          4.wav
          5.wav
          6.wav
         ↳my_name_3
          1.wav
          2.wav
          3.wav
          4.wav
          5.wav
          6.wav
          ...
Note audio/crypts/ is a sibling of audio/arcologies/. Not a descendant.

— Hydroponics

Operations work thusly: (target metabolism) (hydroponics operator) (hydroponics metabolism) = (new target metabolism). So, a hydroponics with a metabolism of 1 and an operator of add operating on a target with a metabolism of 5 would look like this: 5 + 1 = 6. If an operation would result in a divide-by-zero, then zero is returned.

Hydroponics operate on every cell with a metabolism in their territory.

The south-east territory.

— Institutions

If a signal would be "cornered" by two or more institutions with contradictory deflections the signal will destroyed. Be kind to your signals.

— Debug

There are some debug features built in. Type these into the REPL: fn.arcdebug(), fn.screenshot(), and fn.wtfscale().

— The Direct Download Isn't Working?

Rename the directory "arcologies-main" to "arcologies" and place it in /dust/code/.

— Crow Isn't Working?

If crow is unresponsive when using Forests and Aviaries, simply unplug the USB from norns and plug it back in again to reestablish communications. When a Forest or Aviary receives a signal on an open port, it will first set the ASL action on a crow output then trigger the action. With Apiaries, nb voices that communicate with crow can be used simultaneously with Forests and Aviaries, however the nb voice should also set the ASL action on crow when the Apiary receives a signal, similar to Forests and Aviaries. Mix and match, your mileage may vary.

— Apiaries and Nota Bene (nb)

Nota Bene (nb) is a norns library that plays notes well. For more information, see the thread on lines. nb is a library that lets norns scripts trigger notes on nb voices which are installed as mods on norns. There are 4 voice selectors in arcologies named nb_1, nb_2, nb_3, and nb_4. Whenever an Apiary receives a signal on an open port, it plays a note using the nb voice listed by the voice selector. The attribute NB SELECT chooses which voice selector the Apiary is using. The attribute NB VOICE chooses which nb voice the voice selector uses. When changing NB VOICE for a voice selector, all other Apiaries using the same voice selector will be changed to the new selection as well. The attribute DURATION controls the amount of time between note_on() and note_off() when playing the nb voice. In the norns parameter menu, the 4 voice selectors and the parameters associated with each selected nb voice can be found in the NB / APIARY section of the menu.

— MIDI Isn't Working?

Be sure to set up your devices in the main norns menu first. arcologies uses the 2020 norns clock. This gives you access to internal, MIDI, Ableton Link, and crow sources.

— Nerdy ERD/Code/Architecture Stuff

All cells have one-and-only-one structure. Cells have many attributes. Signals are dumb. This file is important. So is the keeper.

— Metabolism Table

Hopefully this table makes clear the hidden story of how the metabolism on hives and raves work.

Metabolism of 0 is mute. Metabolism of 16 is straight quarter notes.

But 13 is your four-to-the-floor!

 0  =  0000000000000000
 1  =  1000000000000000
 2  =  1000000000000001
 3  =  1000000000000010
 4  =  1000000000000100
 5  =  1000000000001000
 6  =  1000000000010000
 7  =  1000000000100000
 8  =  1000000001000000
 9  =  1000000010000000
10  =  1000000100000010
11  =  1000001000001000
12  =  1000010000100001
13  =  1000100010001000
14  =  1001001001001001
15  =  1010101010101010
16  =  1111111111111111 

— Cloakroom

Cloakrooms conduct pysops on all adjacent cells. Note they do not split or route singals.

The cloakroom operational territory.

Challenges


These brief challenges are a great starting point for learning arcologies.

— Chords

  1. Using only one hive and three shrines, make a chord.
  2. Now change the hive into a gate. Add a new hive to send signals to the gate.
  3. Now add second chord by adding a second hive but only one more shrine.

— Arpeggio

  1. Using only one hive and six shrines, create an arpeggio.
  2. Add six more shrines to create a second arpeggio. (Hint: use the copy and paste grid interaction.)

— Interference

  1. Signals cancel each other out. Use this to your advantage and create a melody that gets mutilated by a rave, dome, or maze. Perhaps hives to the west, shrines to the east, and chaos between?

— Tunneling

  1. Continuing from where the "Interference" challenge left off - send a steady stream of signals from one side of the grid to the other with tunnels.
  2. Add a second tunnel network.
  3. Add more tunnels to each network.

— Packt

  1. Using five hives and five shrines (or topiaries), create a melody but make sure you cannot see any of the signals.

— Rainy Day

  1. Create a melody with topiaries and shrines that only receive signals from solariums.
  2. Perform by playing the solariae's charge.

— Tales from the Crypt

  1. Create (or dredge up) twelve samples.
  2. Create two directories and divide the files into two sets of six.
  3. Name each set 1.wav, 2.wav, 3.wav, 4.wav, 5.wav, & 6.wav.
  4. Copy the pair of directories to norns at /dust/audio/arcologies.
  5. Now, rename one of them to crypt and play the samples with a crypt cell.
  6. While playing, swap the directory names: mv crypt crypt_tmp && mv inactive_crypt crypt && mv crypt_tmp inactive_crypt. What (doesn't) happen?
  7. What happens when you adjust the index on a crypt?
  8. Install crypts & relaunch arcologies.
  9. Play samples with a crypt cell.
  10. While playing, navigate to the main norns edit menu and change the "CRYPT(S)" parameter.
  11. Share your samples!

— Syncopation

  1. Using two vales with low ranges and two hives with high metabolisms, create a syncopated bassline.

— Casino Nights

  1. Setup two casinos (or uxbs) but with different devices.
  2. Make a recording using only the audio output from the MIDI devices.

Ecosystem


the rewilding is the name of arcologies v1.3.0. This marks the introduction of nb.

arctangents & archangels is the name of arcogolies v1.2.0. This marks the introduction of monome arc support.

eternal september is the name of arcologies v1.1.0. This marks the introduction of hydroponics, institutions, mirages, banks, autons, kudzu, and windfarms.

crypts is a community sample pack / DLC for arcologies.

Changelog


v1.3.0

“the rewilding”

  • NEW Add “apiary” via @postsolarpunk. nb library via @sixolet.
  • FIX Crow now sets the ASL of an output before triggering the action on an output.
  • CHANGE Aviary and Forest now set crow output ASL each time a signal is received.
  • CHANGE Remove norns.online sharing capabilities.

v1.2.8
  • NEW “Grayscale” grid option makes signals always visible via @tgk.
  • FIX Dome bug infestation eradicated (euclidian rhythm bug) @MrOnak.
  • FIX Mazes are now solvable (bug with negative numbers and math) via @MrOnak.
  • FIX Save files now correctly store Topiary (and friends) data via @MrOnak.
  • FIX crow improvements via @trentgill.

v1.2.7
  • NEW Share your arcologies with via norns.online! Install norns.online, create a user, launch arcologies, and then navigate to PARAMETERS > SHARE.

v1.2.6
  • FIX Crow bug.

v1.2.5
  • FIX grid now plays nice with other scripts.
  • FIX Crypt’s from loaded arcologies no longer allow indices of 7 and 8.

v1.2.4
  • NEW Add cloakroom. The mechanisms of these liminal structures are as clandestine as they are abstract.
  • NEW Add “GLOBAL PSYOP” arc binding. This controls all cloakrooms simultaneously.
  • FIX “BROWSE CELLS” arc LEDs are now solid instead of sparkling.

v1.2.3
  • FIX ♯ notes on arc.

v1.2.2
  • FIX .arcology save/load issues.

v1.2.1
  • NEW Note select for arc is no longer lame.
  • FIX Resolve init error when loading pset’s with disabled structures.

v1.2.0

“arctangents & archangels”

  • NEW monome arc support. This allows you to map your arc to various controls: norns encoders 1-3, “browse cells”, change crypt directory, global transpose, BPM, and “danger zone” clock.sync(x). One interesting convention of note: encoders that “sparkle” will musically alter your arcology. Encoders that do not are “safe” and are reserved for tasks such as menu navigation. Map your arc encoders and set orientation via the norns parameters menu.

v1.1.15
  • NEW Add fringes territory: the cells immediately adjacent.
  • NEW Territories illuminate on the grid. This is very satisfying.
  • FIX Mazes with a metabolism of zero no longer cause a freeze.

v1.1.14
  • NEW Add <<< !!! DANGER ZONE !!! >>> parameter set. Life is too damn short. You can now fuck with the clock.sync() rate.

v1.1.13
  • FIX Fix regression issue where MIDI Channel and Device was not appearing for uxbs and casinos.

v1.1.12
  • NEW Fracture structure… a hypothetical traveller from another universe — presumably an older, more broken one — entering our own.
  • CHANGE Vales can now send MIDI.
  • CHANGE Remove superfluous midi:disconnect() calls to help with DIY gear.
  • FIX Cell designer menu jumping bug of doom has been isolated and fixed. It was the kudzu’s fault.
  • FIX Cropdusting was partially failing - kudzu was actually growing in the ornithopters targeting systems.
  • FIX Cells only mutate into structures when the popup goes away. Previously they would mutate while selecting leading to ports being toggled (in the case of raves and windfarms, for example) or immortal kudzu spawning.
  • DEV Stubby glyphs display properly.

v1.1.11

v1.1.10
  • NEW Multi-note structures now have topographies. This attribute allows you to set the direction the melodies play: forward, backward, pendulum, or drunk.
  • FIX Crypt samples are no longer panned slightly.
  • FIX Autons and spomeniks actually transpose notes!
  • CHANGE All midi notes are turned off when pausing.
  • DEV Introduce Cell:register_save_key().
  • DEV More adjustments to saveload.lua.

v1.1.9
  • FIX Fix load bug where all structures turned into hives.

v1.1.8
  • NEW Add windfarm. For a whirlwind does not last a whole morning, nor does a sudden shower last a whole day.
  • CHANGE Structures are globally enabled and disabled via norns parameters menu now - not just for seeding. Never want to see a particular structure again (i.e. maybe you don’t have a crow)? Now you don’t have to.
  • CHANGE Speaking of never wanting to see structures again… remove banks. They’re boring, un-predictable, not-inspiring, and not fun. Banks from old .arcology files will just be imported as hives. If this is upsetting, see 0aad26 to re-implement.
  • CHANGE Bank glyph is now the institution glyph. The institution glyph is now the forthcoming “fracture” glyph.
  • CHANGE Remove bank attributes: AMORTIZE, DEPRECIATE, NET INCOME, INTEREST, TAXES.
  • CHANGE The > indicator for multi-note structures now shows the note that just played not that note that is about to play. This was a highly controversial decision for me… The right brain won, today.
  • DEV Structure palette is now dynamically populated. Rows and cols are still hardcoded, however.
  • DEV Enormous refactor of “traits” - they are now all “mixins” and each encapsulates logic as well as view behavior. Some of the Cell’s methods have been moved to mixins.
  • DEV I am no longer embarrassed about popup.lua.
  • DEV More refactoring in saveload.lua.
  • DEV Move rerun() to functions.lua.
  • DEV Rename cell.structure_value to cell.structure_name.
  • DEV Rename seed_structure_<NAME> to structure_<NAME> in params.

v1.1.7
  • NEW Add kudzu structure. You’ll climb the wrist-thick kudzu vines that wrap the Sears Tower. And when you look down, you’ll see tiny figures pounding corn, laying stripes of venison on the empty car pool lane of some abandoned superhighways.
  • NEW Add kudzu management features in parameters menu. KUDZU METABOLISM, KUDZU RESILIENCE and KUDZU CRUMBLE set the defaults for newly created kudzu (children kudzu inherit metabolism and resilience from their parents.) KUDZU AGGRESSION sets how many growths happen each beat. KUDZU CROPDUST POTENCY sets how much the kudzu crumble with each > CROPDUST.
  • CHANGE Re-organize parameter menu.

v1.1.6
  • NEW Set NOTE COUNT for structures with multiple notes.
  • NEW Global transpose for MIDI and SuperCollider structures.
  • CHANGE Load and save routines have been rationalized. I was was maintaining separate logic for minor patch versions which was unsustainable. v1.0.3 and prior arcologies should be loaded with a ~95% accuracy. The great metabolism refactor of v1.0.4 still means you have to retune your metabolisms.
  • DEV Move structures out of config.lua and into their own file.
  • DEV Cleanup fn.cleanup().
  • DEV Add channel to m:all_off().
  • DEV Organize functions.lua.
  • DEV Structures without glyphs will render the default cell glyph instead.

v1.1.5
  • FIX Domes properly load from save files.

v1.1.4
  • NEW Sync tempo with MIDI devices, Ableton Link, and crow.
  • NEW Toggle playback with MIDI devices.
  • NEW Uxbs and casinos have a MIDI channel attribute.
  • NEW MIDI PANIC! action in the parameters menu to turn all notes off.
  • CHANGE Can now select JF i2c mode 0 in parameters menu.
  • FIX Moved JF i2c cleanup to happen before resetting crow.
  • FIX Bug with loading crypts from .arcology files.
  • DEV Moved fn.arcdebug(), fn.screenshot(), and fn.wtfscale() to functions.lua.

v1.1.3
  • FIX Regression issues on analysis page.

v1.1.2
  • NEW Add spomenik structure - play single notes on JF.
  • NEW Add parameters to init JF i2c mode 1 set tuning (“god mode”).
  • CHANGE The analysis page omits structures that don’t exist.
  • CHANGE The mirage glyph shimmers.
  • DEV Remove all the config.outputs defensive programming.
  • DEV Glyphs are drawn dynamically and require less configuration.

v1.1.1
  • NEW Add parameters for randomizing note min and max ranges. This applies to both seeding and creating new cells with notes.
  • FIX Address regression bug on changing global root & scale.
  • FIX Removed vestigial evolutionary branch from aviaries - they erroneously had Velocity.
  • DEV Ignore the dev.lua file.

v1.1.0

“eternal september”

  • NEW Hyrdoponics structure. Yeah… for growing food… right.
  • NEW Institution structure. Steel and glass, a prototypical Augéian non-place. They don’t last long anymore.
  • NEW Mirage structure. From a fringe phenomenon to an everyday occurrence, no one could have anticipated what myriad of new mirages the anthropocene would cook up.
  • NEW Bank structure. It depends how you count.
  • NEW Auton structure. Every Auton was a fragment of the Consciousness…
  • NEW Added parameter for “designer jump” - when disabled you will not jump to the cell designer page when creating a new cell. Now you can stare at the analysis page forever.
  • DEV Old save files have a separate load routine than new ones.
  • DEV Replace instances of ' with ". Old habits die hard.

v1.0.6
  • CHANGE Uxbs and casinos now have a duration attribute to control how long a note plays. This will affect older arcologies. To update your save files, set the duration of uxbs and casinos to 16.

v1.0.5
  • NEW Ports disappear while copying, allowing you to paste to adjacent cells.
  • FIX Crypts are saved/loaded via their name instead of directory index.
  • FIX Generation resets to 0 after seed instead of persisting.
  • FIX Step animation when metabolism set to 0.
  • DEV Remove local declarations at top of files.

v1.0.4
  • CHANGE Metabolism now defaults to 13. See the metabolism table in the docs for more information and rationale.
  • CHANGE Metabolism behavior on hives and raves is inverted. 1 is now slow, while 16 is now fast.
  • FIX Steps on the step sequencer for hives and raves accurately reflect when signals will fire.
  • CHANGE If the metabolism of a dome or a maze is less than the global length, then fill in the length by looping the pattern. This makes for much more musical results than what the “pure mathematics” would give us.
  • CHANGE Mazes erase from the beginning of the register instead of the end. This ensures the trains collide head-on instead of riding parallel into deadzones. Note a moving register can allow for notes to slip “under” the playhead. This is intentional.
  • CHANGE Structure is now at the bottom of the designer menu, instead of docs. This lets you crank e2 and know you’ll always land on the structure attribute - much better than landing on docs.
  • CHANGE Tightened up the analysis page.
  • CHANGE Seeding now happens in the parameters menu.
  • NEW Enable and disable structures for seeding on the parameters menu.
  • NEW Loaded arcology name displays on home page.

v1.0.3
  • CHANGE BPM now goes up to 480. Rage.
  • NEW Parameter for “popup patience.”
  • FIX Disconnecting grid no longer freezes playback.
  • FIX Hives and raves with 0 metabolism no longer freeze playback.
  • FIX Cell:has() properly navel-gazes.
  • FIX Harden s:one_shot() logic.

v1.0.2
  • CHANGE Creating a new structure now jumps to > designer page > structure item.

v1.0.1
  • NEW Add option to dismiss grid disconnect warning.

v1.0.0
  • NEW Initial release.

Philosophy


For monome norns and grid, arcologies is a 21st century instrument for musical composition and discovery.

The core design objective for this software is clarity. Each key and encoder on norns have a dedicated function. All the keys on the grid share the same behavior. The menus are built to be fast, intuitive, cohesive, and consistent. With a foundation that is (hopefully) quick to master, the arcologist's focus can shift to sculpting emergent and complex compositions.

The design of arcologies heavily inspired by the two-dimensionality of Orca, the polymorphism of ornament & crime, the immediacy of meadowphysics, and the uncompromising vision of cheat codes. I've always been interested in emergence and wanted to push that line of inquiry further than I have before. Other curios played a part, too: Dwarf Fortress, the tower defense genre, SimCity, and the Eno / Chilvers suite of generative applications, carbon-based life, water, the anthropocene, supply chains, The Mushroom at the End of the World, The Dark Mountain Project, Eco Futurism Corp, "seasteading", the gedankenexperiment-prompt: "sound artist's work in a William Gibson novel?", Conway's Game of Life, Garfield Park Conservatory, the Epcot Center, Buckminster Fuller, and the need to challenge myself and create something beautiful during this fucking pandemic. And, of course, actual arcologies and the architectural movement known as metabolism.

arcologies is free, open source, and licensed under the GNU General Public License v3.0.

crypts is free, open source, and — being a community sample pack that may wind up in recordings — is under the CC0 1.0 Universal Public Domain Dedication license.

Contributions welcome.

Credits


Software, design, & watercolors by Tyler Etters. Logo by Theresa Berg. Glyphs by both. This project would not have been possible without the generous mentorship, support, and patience of so many from the llllllll community. You know who you are! Thank you.