Coral Carrier Incarnadine [cci.dev]

in case this is useful… (run the first paren’d block to create a rudimentary sea space and define tuned SFX synths, then run the Synth(\menu*)s to generate events)

(
Routine {
	
	~rootNote = 60;
	
	SynthDef(\menuMove, {
		arg outBus;
		var trig = Impulse.ar(0); // LFNoise0.kr(0.5, 1, 1.5));
		var ping = BPF.ar(WhiteNoise.ar(Decay.ar(trig, 0.06) * 0.2), 5000, 0.6);
		var freq = 4000 + WhiteNoise.ar(Decay.ar(trig, 0.1) * 300);
		var ring = Formlet.ar(trig, freq, 0.01, 0.1);
		var output = ping + ring * 0.8;
		DetectSilence.ar(output, doneAction: Done.freeSelf);
		Out.ar(outBus, output);
	}).add;
	
	SynthDef(\menuOK, {
		arg outBus;
		var trig = Impulse.ar(0);
		var freq = (~rootNote + 12).midicps * Trig.ar(trig, 0.08).range(1, 3/4);
		var tone = LFTri.ar(freq) * EnvGen.ar(Env.asr(0.05, 1, 0.5), Trig.ar(trig, 0.23), doneAction: Done.freeSelf) * 0.5;
		Out.ar(outBus, tone);
	}).add;
	
	SynthDef(\menuCancel, {
		arg outBus;
		var trig = Impulse.ar(0);
		var freq = (~rootNote).midicps * 11/12; //  * Trig.ar(trig, 0.05).range(1.5.sqrt, 1) * Trig.ar(trig, 0.12).range(0.5.sqrt, 1);
		var mod = SinOscFB.ar(freq, Decay.ar(trig, 0.3)) * EnvGen.ar(Env.perc(0.001, 0.4), trig);
		var car = SinOsc.ar(freq / 2, mod * 6) * EnvGen.ar(Env.perc(0.01, 0.3), trig, doneAction: Done.freeSelf) * 0.3;
		Out.ar(outBus, car);
	}).add;
	
	SynthDef(\menuErr, {
		arg outBus;
		var trig = Impulse.ar(0);
		var freq = (~rootNote).midicps * Trig.ar(trig, 0.05).range(1.5.sqrt, 1) * Trig.ar(trig, 0.12).range(0.5.sqrt, 1);
		var mod = SinOscFB.ar(freq - 7, Decay.ar(trig, 0.6) * 1.1);
		var car = SinOsc.ar(freq / 2, mod * 7) * EnvGen.ar(Env.perc(0.01, 0.6), trig, doneAction: Done.freeSelf) * 0.3;
		Out.ar(outBus, car);
	}).add;
	
	SynthDef(\sea, {
		arg inBus;
		var input = In.ar(inBus);
		var times = SinOsc.kr([1.3, 0.39, 0.9], 0, [0.002, 0.0008, 0.003], [0.08, 0.18, 0.13]);
		var fb = LocalIn.ar(3);
		var delays;
		var ap = 0.05;
		var diff = AllpassN.ar(fb * -2.dbamp + input, 0.1, SampleDur.ir * 190, 0.05);
		diff = AllpassN.ar(diff, 0.1, SampleDur.ir * 213, 0.05);
		diff = AllpassN.ar(diff, 0.1, SampleDur.ir * 241, 0.05);
		delays = DelayL.ar(LPF.ar(diff, 3000), 1, times);
		LocalOut.ar(delays.rotate(-1));
		Out.ar(0, Splay.ar(delays) * 0.4 + (input ! 2));
	}).add;
	
	s.sync;
	
	~seaIn = Bus.audio;
	~sea = Synth(\sea, [\inBus, ~seaIn]);
	
}.play;
)

Synth(\menuMove, [\outBus, ~seaIn]);
Synth(\menuOK, [\outBus, ~seaIn]);
Synth(\menuCancel, [\outBus, ~seaIn]);
Synth(\menuErr, [\outBus, ~seaIn]);

edit: diffusion! maybe there should be a longer delay line in the mix too, eventually… too-short delays evoke a small tub of jelly reef jigglers…

(recycling as a game mechanic really helped sell me on this)

7 Likes

Really cool idea! Not sure I have any of the skill sets to contribute at the moment but I’ll follow along and see if I can pitch in :slight_smile:

1 Like

the contemporaneity between the birth of this project and the submarine eruption of the Hunga volcano in the Tonga Islands, in my opinion, cannot be ignored! :slight_smile:

so:

Name: submarine eruption
Description: a gigantic bang, everything changes, the maximum expression of the force of nature
Burden: 1mln (or a max valute)
Rarity: extremely rare

4 Likes
Name Description Burden Rarity
Slibby (0.5m) A curious creature that farms meshmel. 1.0 uncommon
Ringscope A ring that strengthens the synaptic connections between touch and hearing. 0.000002 rare
Meshmel (1kg) A large leafy vegetable that provides sustenance, heavy in cadmium and potassium. 0.001 common
Slibby wheel (0.2kg) A appendage-augmentation device for propelled locomotion. 0.0002 uncommon

Slibby
IMG_0503

Ringscope
IMG_0501

Meshmel
IMG_0500

Slibby wheel
IMG_0504

8 Likes

@desolationjones i am not sure i understand the question. yes, norns is monochromatic in that it doesn’t have colors. it is a black and white display that supports levels 0 - 15.

—-

@synthetivv this is so cool!! did you just have this code ready to go? what’s that chord that plays…

—-

@Doberman that is quite interesting. reminds me of how sage and i met during the bp oil spill in 2010. thanks for the event idea!

—-

@infinitedigits these are so coooooool. that hand illustration!!

4 Likes

I think this is more a consequence of the video flattening out the brightness levels of the screen.

2 Likes

oh oh i understand now. @edrapley is correct. the item browser is up on github if you want to see it in action

—-

cool cool .shell - ICANNWiki companies can own tld’s. i was trying to find a fun domain name for this project…

3 Likes

in addition to the video flattening out things, darker regions of a PNGs often appear brighter on norns screen than when seen on a computer (it’s quite notable on the drone station in pirate-radio).

there might be a way to darken PNGs before loading them on norns to have equivalent rendering.
i believe the imagemagick command for making screenshot (in the docs) does this operation in reverse. so it might be a good starting point!

3 Likes

There is a discussion about norns display gamma curve at Norns Display Gamma.

Meanwhile looks fun, I’m thinking:

Drexciya!

11 Likes

it is Bespoke, which is to say I got excited about making some watery UI bleeps and quickly put it together in the evening.

if you mean the final sound in the recordings, that’s the \menuErr synth, which started out as a “cancel” sound before I decided it was too aggressive/annoying for that purpose. Not really sure if it can or should be put to practical use.

3 Likes

I actually soft-bricked my norns last night trying to install a new kernel while working on this. Gotta reflash the image today so I can get back to it.

Anyway here a couple item ideas. Just realized I’ve never heard a bell ring underwater.

Name Description Burden Rarity
Gold Bell (750g) Shrouded in an enthralling glow, you’re not sure what will happen when you ring it. 13.0 mythic
Waterproof Map (10g) The maps seems to depict constellations, but they don’t look similar to anything you’ve seen in the sky. Perhaps they’re mycelial. 1.0 uncommon
5 Likes

Many years ago my degree was in Environmental Management and Sustainability, I focused on human environments, mainly cities.

Never ended up working in that area but have carried the ideas into my daily life. I’m enjoying thinking about them in the creative context of a game for norns.

All ideas offered with lightness, if they resonate then wonderful, if not still wonderful.

If the game wants to play with best practice then there are several considerations that are preferable to recycling. These fall broadly under the terms: reduce & reuse.

The best option is prevention, never creating waste in the first place. How can we imagine processes that don’t create waste products?

Then minimisation, creating the least amount of waste. What will use the least amount of material with the longest (re)useable lifespan?

Reuse is about having objects that can loop through stages in their lifecycle repeatedly. Glass bottles being returned, washed and reused being a real world example.

Then recycling, which comes this low because higher entropy is at play. The recycled material is often unavoidably of lower quality than it’s source material. This is especially true of plastics but also glass presents issues when recycled (weight, contamination, colour separation).

Energy recovery usually would involve clever ways of burning or composting things. In this world I think the externalities of combustion would make it similarly taboo to disposal. But composting would be a vital step for biological matter.

Then we can wander into imaginative territory.

Working with ghosts:

The best is prevention. Don’t create ghosts: avoid unnecessary, unjust deaths caused by humans.

Harm minimisation: we tend to the suffering of ghosts. We recognise and reflect upon the damage we have caused and alter our praxis in response. Listening. Grief tending. Restorative justice.

Respect. We ensure space for living beings to exist and experience the cycle of their existence. Caring for their environment and autonomy.

Reincarnation. We clear paths for souls to return to corporeal forms. We enable the finishing of earthly stories. There are things only the embodied can learn.

Return. The matter of dead things becomes the soil and water from which life grows again.

17 Likes

Desert islands would be coool. So you don’t know what you will encounter. And ofcourse hidden treasures =]

2 Likes

Submarine Eruption ?
volcano

3 Likes

@xmacex woah thanks for sharing this doc! i haven’t seen this before! i had no idea about the mythology. cc @license


@synthetivv :smiley: no no no i love that sound. there will be usage for it.


@Tyler thanks for the items! i’ve added them to the code.


@edrapley these notes are reallllly helpful. i’m wondering if there’s some aspect of this project you might be interested in taking ownership over? like, restorative/recycling mechanics and interactions? i was thinking about taking the canonical fire/water/earth/wind magic but mapping it to pollution/corruption/haunted/???. corrupt reefs are cancerous and growing out of control, need different treatment than oil polluted ones, etc. inflict despair (damage) in the form of “corruption”…


@Ukasz yes! desert islands. we’re far in the future and the tectonic plates and garbage tides have shifted things around quite a lot. the game takes place in the “pacific” but you probably wouldn’t recognize it if you looked at a map…


@Doberman this is great! thank you


all:

10 Likes

You should definitely also check out In Other Waters. Really lovely worldbuilding, and beautiful tone. I think you’ll enjoy it a lot.

4 Likes

@tyleretters Yes! That would be really appealing to me. I’ll message you.

1 Like

14 Likes

Just catching up with all this, very very very cool @tyleretters. Loving how much spontaneous world building is going on through the thread aswell. These item assets already look SO sick!

I’ll see what I can come up with for the zone landscapes.

3 Likes

I’d like to contribute! I made this quick generic characters to test my abilities, I could generate more specific (and conceptually accurate) ones as required :slight_smile:
char03_tst01
char02_tst01
char01_tst01

9 Likes