commiting settings day before exhibition movein
This commit is contained in:
parent
0489f77199
commit
19232846d5
|
|
@ -38,7 +38,7 @@
|
|||
"linkId": "",
|
||||
"width": 520,
|
||||
"height": 480,
|
||||
"css": "> .panel {\n background-color: black;\n border: 2px solid grey;\n}\n:host {\n top:calc(50% - 156rem);\n left:calc(50% - 251rem);\n z-index:15;\n}",
|
||||
"css": "> .panel {\n background-color: black;\n border: 2px solid grey;\n}\n:host {\n top:calc(50% - 156rem);\n left:calc(50% - 251rem);\n z-index:15;\n font-size: 125%;\n}",
|
||||
"scroll": true,
|
||||
"default": "",
|
||||
"value": "",
|
||||
|
|
@ -545,7 +545,7 @@
|
|||
"traversing": false,
|
||||
"typeTags": "",
|
||||
"ignoreDefaults": false,
|
||||
"onCreate": "set(\"lock\", true)\nglobals.lockFunc = function(val){\n if(val >= 0){\n var i = 10\n set(\"lock\", false)\n var timeOut = setInterval(function() {\n i = i - 1\n set(\"message\", \"you may select another tiling/message in \" + i + \" seconds\")\n if(i < 1){\n set(\"lock\", true)\n set(\"message\", \"select another tiling/message\")\n clearInterval(timeOut)\n }\n }, 1000);\n }\n}",
|
||||
"onCreate": "set(\"lock\", true)\nglobals.lockFunc = function(val){\n if(val >= 0){\n var i = 180\n set(\"lock\", false)\n var timeOut = setInterval(function() {\n i = i - 1\n set(\"message\", \"you may select another tiling/message in \" + i + \" seconds\")\n if(i < 1){\n set(\"lock\", true)\n set(\"message\", \"select another tiling/message\")\n clearInterval(timeOut)\n }\n }, 1000);\n }\n}",
|
||||
"onValue": ""
|
||||
}
|
||||
],
|
||||
|
|
|
|||
|
|
@ -1,52 +1,51 @@
|
|||
(
|
||||
SynthDef(\hdpPlayer, {arg playBuf = 0, gate = 0;
|
||||
var playDur, fadeTime, changeTrig, playSig, fade;
|
||||
fadeTime = 30;
|
||||
playSig = PlayBuf.ar(2, playBuf, BufRateScale.kr(playBuf), gate, 0);
|
||||
fade = EnvGen.kr(Env.asr(fadeTime, 1, fadeTime), gate);
|
||||
Out.ar(0, playSig * fade);
|
||||
Out.ar([0, 1], BrownNoise.ar * 0.05 * (fade - 1).abs);
|
||||
}).add;
|
||||
);
|
||||
s.waitForBoot({
|
||||
var recDir, recPaths, recInfo, playBuf, player, isPlaying, playRoutine, localAddress;
|
||||
|
||||
(
|
||||
var recDir, recPaths, recInfo, playBuf, player, isPlaying, playRoutine, localAddress;
|
||||
recDir = "/home/mwinter/a_history_of_the_domino_problem/recs/";
|
||||
recPaths = ["berger_knuth.wav", "robinson.wav", "penrose.wav", "ammann.wav", "kari_culik.wav", "jaendel_rao.wav"].collect({arg file; recDir +/+ file});
|
||||
recInfo = recPaths.collect({arg path; var sndFile; sndFile = SoundFile.openRead(path); [sndFile.numFrames, sndFile.sampleRate]});
|
||||
playBuf = Buffer.read(s, recPaths[0]);
|
||||
//lock = false;
|
||||
isPlaying = false;
|
||||
player = Synth(\hdpPlayer, [\playBuf, playBuf]);
|
||||
localAddress = NetAddr.new("127.0.0.1", 57120);
|
||||
SynthDef(\hdpPlayer, {arg playBuf = 0, gate = 0;
|
||||
var playDur, fadeTime, changeTrig, playSig, fade;
|
||||
fadeTime = 30;
|
||||
playSig = PlayBuf.ar(2, playBuf, BufRateScale.kr(playBuf), gate, 0);
|
||||
fade = EnvGen.kr(Env.asr(fadeTime, 1, fadeTime), gate);
|
||||
Out.ar(0, playSig * fade);
|
||||
Out.ar([0, 1], BrownNoise.ar * 0.05 * (fade - 1).abs);
|
||||
}).add;
|
||||
|
||||
OSCFunc({ arg msg, time;
|
||||
[time, msg].postln;
|
||||
//lock.postln;
|
||||
playRoutine.stop;
|
||||
playRoutine = Routine({
|
||||
var playDur, piece, numPlayFrames, startFrame;
|
||||
if(isPlaying, {
|
||||
5.wait;
|
||||
|
||||
recDir = "/home/mwinter/a_history_of_the_domino_problem/recs/";
|
||||
recPaths = ["berger_knuth.wav", "robinson.wav", "penrose.wav", "ammann.wav", "kari_culik.wav", "jaendel_rao.wav"].collect({arg file; recDir +/+ file});
|
||||
recInfo = recPaths.collect({arg path; var sndFile; sndFile = SoundFile.openRead(path); [sndFile.numFrames, sndFile.sampleRate]});
|
||||
playBuf = Buffer.read(s, recPaths[0]);
|
||||
//lock = false;
|
||||
isPlaying = false;
|
||||
player = Synth(\hdpPlayer, [\playBuf, playBuf]);
|
||||
localAddress = NetAddr.new("127.0.0.1", 57120);
|
||||
|
||||
OSCFunc({ arg msg, time;
|
||||
[time, msg].postln;
|
||||
//lock.postln;
|
||||
playRoutine.stop;
|
||||
playRoutine = Routine({
|
||||
var playDur, piece, numPlayFrames, startFrame;
|
||||
if(isPlaying, {
|
||||
player.set(\gate, 0);
|
||||
30.wait;
|
||||
});
|
||||
isPlaying = true;
|
||||
piece = msg[1];
|
||||
playDur = (5.0.rand + 5) * 60;
|
||||
numPlayFrames = playDur * recInfo[piece][1];
|
||||
startFrame = (recInfo[piece][0] - numPlayFrames).rand;
|
||||
playBuf.free;
|
||||
playBuf = Buffer.read(s, recPaths[piece], startFrame, numPlayFrames, action: {arg buf;
|
||||
player.set(\gate, 1);
|
||||
});
|
||||
(playDur - 30).wait;
|
||||
player.set(\gate, 0);
|
||||
30.wait;
|
||||
});
|
||||
isPlaying = true;
|
||||
piece = msg[1];
|
||||
playDur = (5.0.rand + 5) * 60;
|
||||
numPlayFrames = playDur * recInfo[piece][1];
|
||||
startFrame = (recInfo[piece][0] - numPlayFrames).rand;
|
||||
playBuf.free;
|
||||
playBuf = Buffer.read(s, recPaths[piece], startFrame, numPlayFrames, action: {arg buf;
|
||||
player.set(\gate, 1);
|
||||
});
|
||||
(playDur - 30).wait;
|
||||
player.set(\gate, 0);
|
||||
30.wait;
|
||||
isPlaying = false;
|
||||
}).play
|
||||
},'/playTiling', localAddress);
|
||||
isPlaying = false;
|
||||
}).play
|
||||
},'/playTiling', localAddress);
|
||||
})
|
||||
)
|
||||
|
||||
n = NetAddr("127.0.0.1", 57120)
|
||||
n.sendMsg('/playTiling', 1)
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,10 @@ var imgPositions, imgIndexToAudioIndex, curPos, tarPos,
|
|||
netAddress, localAddress, serialPort, serialListener,
|
||||
moveTo, jogControl, jogHorizontal, jogVertical,
|
||||
imgSelect, imgCalibrate, lastSelect,
|
||||
trackerPos, trackerOffsetBaseDist, trackerOffset, trackLock;
|
||||
trackerPos, trackerOffsetBaseDist, trackerOffset, trackLock,
|
||||
dirTuples, dirAdjustRoutine, dirTuplesSeq;
|
||||
|
||||
"installation_audio_player.scd".loadRelative;
|
||||
|
||||
// init global vars
|
||||
imgPositions = 9.collect({nil});
|
||||
|
|
@ -30,6 +33,7 @@ trackerOffset = [
|
|||
[trackerOffsetBaseDist * -1, trackerOffsetBaseDist * -1]
|
||||
];
|
||||
trackLock = true;
|
||||
dirTuples = [ [ -1, -1 ], [ -1, 0 ], [ -1, 1 ], [ 0, -1 ], [ 0, 1 ], [ 1, -1 ], [ 1, 0 ], [ 1, 1 ] ];
|
||||
|
||||
~serialPort = SerialPort("/dev/ttyACM0", baudrate: 115200, crtscts: true);
|
||||
|
||||
|
|
@ -84,14 +88,14 @@ jogControl = {arg axis;
|
|||
jog = Task({
|
||||
loop{
|
||||
count = (count + 0.01).clip(0, 1);
|
||||
count.postln;
|
||||
//count.postln;
|
||||
jogRate = pow(count, 2) * 500;
|
||||
if(axis == '/jog_horizontal', {
|
||||
tarPos.x = curPos.x + (jogRate * jogDirection * -1);
|
||||
}, {
|
||||
tarPos.y = curPos.y + (jogRate * jogDirection);
|
||||
});
|
||||
curPos.postln;
|
||||
//curPos.postln;
|
||||
moveTo.value(tarPos);
|
||||
0.1.wait
|
||||
};
|
||||
|
|
@ -110,19 +114,40 @@ imgSelect = {
|
|||
var imgIndex, audioIndex;
|
||||
msg.postln;
|
||||
if((msg[1] > 0), {
|
||||
dirAdjustRoutine.stop;
|
||||
trackLock = false;
|
||||
imgIndex = msg[1] - 1;
|
||||
imgIndex.postln;
|
||||
//imgIndex.postln;
|
||||
if(imgPositions[imgIndex] != nil, {tarPos = imgPositions[imgIndex].deepCopy; moveTo.value(tarPos)});
|
||||
9.do({arg i; if(imgIndex != i, {
|
||||
netAddress.sendMsg("/STATE/SET", "{img_" ++ (i + 1).asString ++ "_select: " ++ (i + 1).neg ++ "}")})});
|
||||
lastSelect = imgIndex;
|
||||
audioIndex = imgIndexToAudioIndex[imgIndex];
|
||||
if(audioIndex != nil, {localAddress.sendMsg('/playTiling', audioIndex)});
|
||||
Routine({60.wait; trackLock = true}).play;
|
||||
dirTuplesSeq = dirTuples.deepCopy.scramble;
|
||||
dirAdjustRoutine = Routine({
|
||||
60.wait;
|
||||
imgPositions[imgIndex] = curPos.deepCopy;
|
||||
trackLock = true;
|
||||
10.wait;
|
||||
8.do({arg dirAdjust;
|
||||
"here".postln;
|
||||
tarPos = imgPositions[imgIndex].deepCopy + (dirTuplesSeq[dirAdjust] * 200);
|
||||
moveTo.value(tarPos);
|
||||
2.wait;
|
||||
trackLock = false;
|
||||
10.wait;
|
||||
trackLock = true;
|
||||
10.wait;
|
||||
});
|
||||
}).play;
|
||||
}, {
|
||||
lastSelect.postln;
|
||||
if(msg[1] == ((lastSelect + 1) * -1), {"here".postln; lastSelect = -1})
|
||||
//lastSelect.postln;
|
||||
if(msg[1] == ((lastSelect + 1) * -1), {
|
||||
lastSelect = -1;
|
||||
dirAdjustRoutine.stop;
|
||||
trackLock = true;
|
||||
})
|
||||
});
|
||||
}, '/img_select', netAddress)
|
||||
}.value;
|
||||
|
|
@ -175,9 +200,9 @@ trackerPos = OSCFunc({arg msg;
|
|||
)
|
||||
|
||||
//in case of emergency
|
||||
~serialPort.close
|
||||
~serialPort = SerialPort.new("/dev/ttyACM0", baudrate: 115200, crtscts: true);
|
||||
~serialListener.reset
|
||||
~serialListener.play(AppClock);
|
||||
//~serialPort.close
|
||||
//~serialPort = SerialPort.new("/dev/ttyACM0", baudrate: 115200, crtscts: true);
|
||||
//~serialListener.reset
|
||||
//~serialListener.play(AppClock);
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue