Skip to content

Instantly share code, notes, and snippets.

@micromeeeter
Created July 31, 2017 04:14
Show Gist options
  • Save micromeeeter/d7056e52c4af40f359a74b1e6d2d1adc to your computer and use it in GitHub Desktop.
Save micromeeeter/d7056e52c4af40f359a74b1e6d2d1adc to your computer and use it in GitHub Desktop.
SFC17年度春学期 画像処理プログラミング最終作品"ふりかえってもいない"
//画像処理プログラミング 最終課題
//"ふりかえってもいない"
//松橋百葉(環境情報1年/71747568)
//参考: ProcessingでのUSBカメラ読み込み(https://office606.org/archives/529/)
import processing.video.*; //webcam使用用のライブラリ
import oscP5.*; //以下osc通信用のライブラリ
import netP5.*;
Capture video; //webcamから取得した画像
PImage background; //1フレ前のカメラ画像
PImage diff; //色抽出後の画像
final int camWidth = 640; //webcamから取得する画像のサイズ
final int camHeight = 480;
int pos_now_x, pos_now_y; //物体の現在座標
final int num = 10; //座標をバッファするフレーム数
int[] pos_prev_x = new int[num]; //iフレーム前の物体の座標
int[] pos_prev_y = new int[num];
int pos_goast_x, pos_goast_y; //背後の座標
float theta; //物体の動く方向角
//以下osc準備
OscP5 oscP5;
NetAddress myRemoteLocation;
void setup(){
size(640, 960);
frameRate(10);
colorMode(RGB);
background(0, 0, 0, 255);
video = new Capture(this, camWidth, camHeight, "USBカメラ"); //参考URLを参照
background = createImage(camWidth, camHeight, RGB);
diff = createImage(camWidth, camHeight, RGB);
pos_now_x = 0;
pos_now_y = 0;
for(int i = 0; i < num; i++){
pos_prev_x[i] = 0;
pos_prev_y[i] = 0;
}
pos_goast_x = 0;
pos_goast_y = 0;
theta = 0.0;
oscP5 = new OscP5(this, 12000);
myRemoteLocation = new NetAddress("133.27.82.198", 12001); //実行後のコンソールを見て番地を変更する
video.start();
}
void draw(){
if(video.available()){
video.read();
int preX = 0; //重心座標(pos_now)を計算するための変数
int preY = 0;
int sum = 0;
for(int x = 0; x < camWidth; x++){
for(int y = 0; y < camHeight; y++){
if(brightness(video.get(x,y)) < 50 && abs(brightness(video.get(x,y)) - brightness(background.get(x,y))) > 30){ //メモリにためておいた画像との差分のうち、黒いピクセルを抽出
preX += x; //黒いピクセルの重心座標を計算
preY += y;
sum++;
diff.set(x, y, color(0, 0, 255)); //黒と認められたピクセルは青く塗る
}else{
diff.set(x, y, color(0, 0, 0)); //黒と認められなかったピクセルは黒く塗る
}
}
}
if(sum > 10){
pos_now_x = int(preX / sum);
pos_now_y = int(preY / sum);
}
//確認用画面
image(video, 0, 0, camWidth, camHeight); //入力画像
image(diff, 0, camHeight, camWidth, camHeight); //黒色抽出画像
fill(255, 0, 0);
ellipse(pos_now_x, pos_now_y, 50, 50); //現在の重心座標を赤い丸で表示
//pos_prevに重心座標のバッファを貯める
if(frameCount == 0){
for(int i = 0; i < 10; i++){
pos_prev_x[i] = pos_now_x;
pos_prev_y[i] = pos_now_y;
}
}else{
for(int i = 9; i > 0; i--){
pos_prev_x[i] = pos_prev_x[i-1];
pos_prev_y[i] = pos_prev_y[i-1];
}
pos_prev_x[0] = pos_now_x;
pos_prev_y[0] = pos_now_y;
}
//10フレーム前の座標と現在の座標から進行方向角を計算
theta = atan2(pos_prev_y[9] - pos_now_y, pos_prev_x[9] - pos_now_x);
//現在の座標の背後を撮るようにpos_goastを設定
pos_goast_x = int(pos_now_x + 50 * cos(theta));
pos_goast_y = int(pos_now_y + 50 * sin(theta));
//pos_goastの座標を白い丸で表示
fill(255, 255, 255);
ellipse(pos_goast_x, pos_goast_y, 50, 50);
//以下OSC通信
OscMessage[][] mes = new OscMessage[2][2];
for(int i = 0; i < 2; i++){
for(int j = 0; j < 2; j++){
mes[i][j] = new OscMessage("/" + i + "_" + j);
}
}
mes[0][0].add(camWidth - pos_goast_x);
mes[0][1].add(pos_goast_x);
mes[1][0].add(camHeight - pos_goast_y);
mes[1][1].add(pos_goast_y);
for(int i = 0; i < 2; i++){
for(int j = 0; j < 2; j++){
oscP5.send(mes[i][j], myRemoteLocation);
}
}
}
}
//スペースを押すと差分画像を取得するための元画像をキープできる
void keyPressed(){
if(key == ' '){
background.copy(video, 0, 0, camWidth, camHeight, 0, 0, camWidth, camHeight);
}
}
{
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 7,
"minor" : 0,
"revision" : 0,
"architecture" : "x64",
"modernui" : 1
}
,
"rect" : [ 129.0, 79.0, 652.0, 717.0 ],
"bglocked" : 0,
"openinpresentation" : 0,
"default_fontsize" : 12.0,
"default_fontface" : 0,
"default_fontname" : "Arial",
"gridonopen" : 1,
"gridsize" : [ 15.0, 15.0 ],
"gridsnaponopen" : 1,
"objectsnaponopen" : 1,
"statusbarvisible" : 2,
"toolbarvisible" : 1,
"lefttoolbarpinned" : 0,
"toptoolbarpinned" : 0,
"righttoolbarpinned" : 0,
"bottomtoolbarpinned" : 0,
"toolbars_unpinned_last_save" : 0,
"tallnewobj" : 0,
"boxanimatetime" : 200,
"enablehscroll" : 1,
"enablevscroll" : 1,
"devicewidth" : 0.0,
"description" : "",
"digest" : "",
"tags" : "",
"style" : "",
"subpatcher_template" : "",
"boxes" : [ {
"box" : {
"id" : "obj-42",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 438.0, 177.0, 28.0, 20.0 ],
"style" : "",
"text" : "01"
}
}
, {
"box" : {
"id" : "obj-41",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 442.0, 435.0, 24.0, 20.0 ],
"style" : "",
"text" : "11"
}
}
, {
"box" : {
"id" : "obj-40",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 292.0, 435.0, 28.0, 20.0 ],
"style" : "",
"text" : "10"
}
}
, {
"box" : {
"id" : "obj-39",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 292.0, 177.0, 24.0, 20.0 ],
"style" : "",
"text" : "00"
}
}
, {
"box" : {
"id" : "obj-37",
"maxclass" : "newobj",
"numinlets" : 4,
"numoutlets" : 0,
"patching_rect" : [ 377.0, 609.5, 77.0, 22.0 ],
"style" : "",
"text" : "dac~ 1 2 3 4"
}
}
, {
"box" : {
"id" : "obj-35",
"maxclass" : "gain~",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "signal", "int" ],
"parameter_enable" : 0,
"patching_rect" : [ 473.0, 435.0, 22.0, 140.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-36",
"maxclass" : "gain~",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "signal", "int" ],
"parameter_enable" : 0,
"patching_rect" : [ 323.0, 435.0, 22.0, 140.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-34",
"maxclass" : "gain~",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "signal", "int" ],
"parameter_enable" : 0,
"patching_rect" : [ 473.0, 177.0, 22.0, 140.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-33",
"maxclass" : "gain~",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "signal", "int" ],
"parameter_enable" : 0,
"patching_rect" : [ 323.0, 177.0, 22.0, 140.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-31",
"maxclass" : "ezdac~",
"numinlets" : 2,
"numoutlets" : 0,
"patching_rect" : [ 541.0, 609.5, 45.0, 45.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-25",
"maxclass" : "number",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "bang" ],
"parameter_enable" : 0,
"patching_rect" : [ 473.0, 387.0, 50.0, 22.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-26",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "int" ],
"patching_rect" : [ 473.0, 349.0, 29.5, 22.0 ],
"style" : "",
"text" : "+"
}
}
, {
"box" : {
"id" : "obj-27",
"maxclass" : "number",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "bang" ],
"parameter_enable" : 0,
"patching_rect" : [ 323.0, 387.0, 50.0, 22.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-28",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "int" ],
"patching_rect" : [ 323.0, 349.0, 29.5, 22.0 ],
"style" : "",
"text" : "+"
}
}
, {
"box" : {
"id" : "obj-23",
"maxclass" : "number",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "bang" ],
"parameter_enable" : 0,
"patching_rect" : [ 473.0, 136.0, 50.0, 22.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-24",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "int" ],
"patching_rect" : [ 473.0, 98.0, 29.5, 22.0 ],
"style" : "",
"text" : "+"
}
}
, {
"box" : {
"id" : "obj-22",
"maxclass" : "number",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "bang" ],
"parameter_enable" : 0,
"patching_rect" : [ 323.0, 136.0, 50.0, 22.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-21",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "int" ],
"patching_rect" : [ 323.0, 98.0, 29.5, 22.0 ],
"style" : "",
"text" : "+"
}
}
, {
"box" : {
"data" : {
"clips" : [ {
"filename" : "Macintosh HD:/Users/micromeeeter/Downloads/nc105155.wav",
"filekind" : "audiofile",
"loop" : 0,
"content_state" : {
"formantcorrection" : [ 0 ],
"pitchshiftcent" : [ 0 ],
"followglobaltempo" : [ 0 ],
"quality" : [ "basic" ],
"speed" : [ 1.0 ],
"pitchcorrection" : [ 0 ],
"originaltempo" : [ 120.0 ],
"slurtime" : [ 0.0 ],
"originallengthms" : [ 0.0 ],
"play" : [ 0 ],
"mode" : [ "basic" ],
"formant" : [ 1.0 ],
"pitchshift" : [ 1.0 ],
"timestretch" : [ 0 ],
"basictuning" : [ 440 ],
"originallength" : [ 0.0, "ticks" ]
}
}
]
}
,
"id" : "obj-20",
"maxclass" : "playlist~",
"numinlets" : 1,
"numoutlets" : 5,
"outlettype" : [ "signal", "signal", "signal", "", "dictionary" ],
"patching_rect" : [ 384.0, 27.0, 150.0, 30.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-11",
"maxclass" : "number",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "bang" ],
"parameter_enable" : 0,
"patching_rect" : [ 150.0, 377.0, 50.0, 22.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-12",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "float" ],
"patching_rect" : [ 150.0, 338.0, 35.0, 22.0 ],
"style" : "",
"text" : "* 0.1"
}
}
, {
"box" : {
"id" : "obj-13",
"maxclass" : "number",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "bang" ],
"parameter_enable" : 0,
"patching_rect" : [ 150.0, 300.0, 50.0, 22.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-14",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 2,
"outlettype" : [ "", "" ],
"patching_rect" : [ 150.0, 261.0, 65.0, 22.0 ],
"style" : "",
"text" : "route /1_1"
}
}
, {
"box" : {
"id" : "obj-15",
"maxclass" : "number",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "bang" ],
"parameter_enable" : 0,
"patching_rect" : [ 37.0, 377.0, 50.0, 22.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-16",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "float" ],
"patching_rect" : [ 37.0, 338.0, 35.0, 22.0 ],
"style" : "",
"text" : "* 0.1"
}
}
, {
"box" : {
"id" : "obj-17",
"maxclass" : "number",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "bang" ],
"parameter_enable" : 0,
"patching_rect" : [ 37.0, 300.0, 50.0, 22.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-18",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 2,
"outlettype" : [ "", "" ],
"patching_rect" : [ 37.0, 261.0, 65.0, 22.0 ],
"style" : "",
"text" : "route /1_0"
}
}
, {
"box" : {
"id" : "obj-7",
"maxclass" : "number",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "bang" ],
"parameter_enable" : 0,
"patching_rect" : [ 150.0, 208.0, 50.0, 22.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-8",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "float" ],
"patching_rect" : [ 150.0, 169.0, 35.0, 22.0 ],
"style" : "",
"text" : "* 0.1"
}
}
, {
"box" : {
"id" : "obj-9",
"maxclass" : "number",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "bang" ],
"parameter_enable" : 0,
"patching_rect" : [ 150.0, 131.0, 50.0, 22.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-10",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 2,
"outlettype" : [ "", "" ],
"patching_rect" : [ 150.0, 92.0, 65.0, 22.0 ],
"style" : "",
"text" : "route /0_1"
}
}
, {
"box" : {
"id" : "obj-6",
"maxclass" : "number",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "bang" ],
"parameter_enable" : 0,
"patching_rect" : [ 37.0, 208.0, 50.0, 22.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-4",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "float" ],
"patching_rect" : [ 37.0, 169.0, 35.0, 22.0 ],
"style" : "",
"text" : "* 0.1"
}
}
, {
"box" : {
"id" : "obj-3",
"maxclass" : "number",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "bang" ],
"parameter_enable" : 0,
"patching_rect" : [ 37.0, 131.0, 50.0, 22.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-2",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 2,
"outlettype" : [ "", "" ],
"patching_rect" : [ 37.0, 92.0, 65.0, 22.0 ],
"style" : "",
"text" : "route /0_0"
}
}
, {
"box" : {
"id" : "obj-1",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 37.0, 41.0, 106.0, 22.0 ],
"style" : "",
"text" : "udpreceive 12001"
}
}
],
"lines" : [ {
"patchline" : {
"destination" : [ "obj-10", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-1", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-14", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-1", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-18", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-1", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-2", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-1", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-9", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-10", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-26", 1 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-11", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-28", 1 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-11", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-11", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-12", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-12", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-13", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-13", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-14", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-21", 1 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-15", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-24", 1 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-15", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-15", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-16", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-16", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-17", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-17", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-18", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-3", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-2", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-33", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-20", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-33", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-20", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-34", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-20", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-34", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-20", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-35", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-20", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-35", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-20", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-36", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-20", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-36", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-20", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-22", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-21", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-33", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-22", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-34", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-23", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-23", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-24", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-35", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-25", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-25", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-26", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-36", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-27", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-27", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-28", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-4", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-3", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-37", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-33", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-37", 2 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-34", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-37", 3 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-35", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-37", 1 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-36", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-6", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-4", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-21", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-6", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-28", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-6", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-24", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-7", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-26", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-7", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-7", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-8", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-8", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-9", 0 ]
}
}
],
"dependency_cache" : [ ],
"embedsnapshot" : 0
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment