Commit a29d7948 authored by nik gaffney's avatar nik gaffney

Merge branch 'master' of repo.fo.am:foam/ephemeral-garden

parents 69a1dff0 0ec048f6
......@@ -3,4 +3,3 @@
"The Ephemeral Garden evokes the sense of convivial gatherings under a pergola. The murmur of conversation, complemented with the sound of animate matter. Growing plants, crackling wood, expanding rocks, crawling insects and the invisible signals emanating from all-pervasive electronic devices. Human and non-human voices intermingle. An ambience that is thick and alive, filled with liminal whispers otherwise unheard. Field recordings and synthetic sounds combine to create a continuously changing atmosphere. Beings come and go, the noise rises and subsides. The garden awakens with daylight, buzzes with activity throughout the day, then quietens at dusk. Its character adapting to the changing of seasons..."
https://fo.am/pergola/
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
# in foam's crontab. check timezone and clock sync
# */5 * * * * /home/foam/ephemeral-garden/check.sh >> /home/foam/ephemeral-garden/test.log 2>&1
* 07 * * * /home/foam/ephemeral-garden/morning.sh >> /home/foam/ephemeral-garden/test.log 2>&1
* 22 * * * /home/foam/ephemeral-garden/evening.sh >> /home/foam/ephemeral-garden/test.log 2>&1
# in root's crontab. check timing
# 0 4 * * * /sbin/shutdown -r now
///// // / / / / / / /
//
// supercollider tests
//
////// / /
"e p h e m e r a l g a r d e n".postln;
// sc server
s = Server.local;
//s.options.memSize = 1024 * 1024;
//s.options.maxNodes = 1024 * 1024;
//s.options.numBuffers = 1024 * 1024 * 1024;
//s.latency = 0.05;
s.options.sampleRate = 44100;
s.boot;
"...".postln;
~background = {
"background >> ".post;
// list of soundfiles
~sources = [
"/home/foam/snd/39-incomprehensible-restaurtant-chatter-02.wav",
"/home/foam/snd/39-incomprehensible-restaurtant-chatter-03.wav",
"/home/foam/snd/39-incomprehensible-restaurtant-chatter-04.wav",
"/home/foam/snd/46-afternoon-chorus-02.wav",
"/home/foam/snd/46-afternoon-chorus-03.wav",
"/home/foam/snd/46-afternoon-chorus-04.wav",
];
// select random element from the list
~file = ~sources.choose;
~file.postln;
// read file then play buffer
Buffer.read (server: s, path: ~file, action: ~play1);
};
~foreground = {
"foreground >> ".post;
// list of soundfiles
~sources = [
"/home/foam/snd/26-multilayered-conversations-01.wav",
"/home/foam/snd/26-multilayered-conversations-02.wav",
"/home/foam/snd/39-incomprehensible-restaurtant-chatter-02.wav",
"/home/foam/snd/39-incomprehensible-restaurtant-chatter-03.wav",
"/home/foam/snd/39-incomprehensible-restaurtant-chatter-04.wav",
"/home/foam/snd/26-party-chatter-02.wav",
"/home/foam/snd/26-party-chatter-03.wav",
"/home/foam/snd/26-party-chatter-04.wav",
"/home/foam/snd/06-uw-pebbles-urchins-waves.wav",
"/home/foam/snd/17-uw-waves-crashing-on-pebble-beach-slow.wav"
];
// select random element from the list
~file = ~sources.choose;
~file.postln;
// read file then play buffer
Buffer.read (server: s, path: ~file, action: ~play2);
};
~play1 = { arg b1;
Routine {
"~play [bg - ".post; b1.path.post; "]".postln;
{(PlayBuf.ar(1, b1, rate: 1, loop: 0, doneAction: 2) * 0.1).dup }.play.waitForFree;
// free buffer once done?
"freed [bg - ".post; b1.path.post; "]".postln;
b1.free;
~background.value;
}.play;
};
~play2 = { arg b2;
Routine {
"~play [fg - ".post; b2.path.post; "]".postln;
{(PlayBuf.ar(1, b2, rate: 1, loop: 0, doneAction: 2) * 0.1).dup }.play.waitForFree;
// free buffer once done?
"freed [fg - ".post; b2.path.post; "]".postln;
b2.free;
~foreground.value;
}.play;
};
s.waitForBoot {
"booted...".postln;
i = 0;
j = 0;
p = 2; // how many background layers?
q = 3; // how many foreground layers?
while ( { i < p }, { i = i + 1; ~background.value;});
while ( { j < q }, { j = j + 1; ~foreground.value;});
};
// 167/31 -> 175/31 -> 168/31
// via http://danielnouri.org/docs/SuperColliderHelp/Tutorials/Getting-Started/Buffers.html
// Streaming a File in From Disk
// In some cases, for instance when working with very large files, you might not want to load a sound completely into memory. Instead, you can stream it in from disk a bit at a time, using the UGen DiskIn, and Buffer's 'cueSoundFile' method:
// (
// SynthDef("tutorial-Buffer-cue",{ arg out=0,bufnum;
// Out.ar(out,
// DiskIn.ar( 1, bufnum )
// )
// }).send(s);
// )
// b = Buffer.cueSoundFile(s,"sounds/a11wlk01-44_1.aiff", 0, 1);
// y = Synth.new("tutorial-Buffer-cue", [\bufnum,b.bufnum], s);
// b.free; y.free;
// This is not as flexible as PlayBuf (no rate control), but can save memory.
\ No newline at end of file
#!/bin/bash
# evening. clean up and stop processes
echo "evening: `date`"
#!/bin/bash
# morning. set up and start processes
echo "morning: `date`"
[Unit]
Description=Supercollisions under a pergola
After=multi-user.target sound.target
[Service]
Type=simple
User=foam
Group=audio
ExecStart=/home/foam/ephemeral-garden/pre-setup.sh
StandardOutput=syslog+console
StandardError=syslog+console
[Install]
Alias=cloud-pergola.service
Requires=sound.target
#!/bin/bash
# to be run as root to setup/start/sclang
#runuser -l foam -c 'screen -S test -m -d /home/foam/ephemeral-garden/setup.sh'
# to be run from user 'foam' crontab
screen -S test -m -d /home/foam/ephemeral-garden/setup.sh
# -*- mode: enh-ruby; coding: utf-8; -*-
play 72
sleep 1
snd = "~/snd/"
sample snd, "29", rrand_i(1,2), amp: 1.5
sample snd, "31", rrand_i(1,2), lpf: 70, amp: 1.5
snd = "/home/foam/snd/"
loop do
sample snd, "29", rrand_i(1,2), amp: 1.5
#sample snd, "29", rrand_i(1,2), lpf: 70, amp: 1.5
end
#!/bin/bash
# via -> http://sc3howto.blogspot.be/2015/04/how-to-keep-installation-running-on.html
export DISPLAY=:0
#export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1001/bus
#export XDG_RUNTIME_DIR=/run/user/1001
export JACK_NO_AUDIO_RESERVATION=1
port=57110
echo "ephemeral: ------------------------------------------------------------"
echo "ephemeral: `/bin/date`"
echo "ephemeral: as user `whoami`"
#echo "ephemeral: with env -> `env`"
echo "ephemeral: waiting..."
sleep 5
echo "ephemeral: sclang starting..."
#runuser -l foam -c 'screen -S test -m -d /usr/local/bin/sclang /home/foam/ephemeral-garden/sc3-test.sc >> /home/foam/ephemeral-garden/test.log 2>&1'
/usr/local/bin/sclang /home/foam/ephemeral-garden/sc3-test.sc 2>&1 >> /home/foam/ephemeral-garden/test.log
echo "ephemeral: sclang spawned..."
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment