Assignment 4 — Jonathan Cavell

This assignment had us look at signal processing utilizing the pfft~ object.

Personally, I wanted to do something interesting with the amplitude and phase data that the pfft~ object provides that we had not yet tried. The end result was a fairly straight forward use of signal information to create a reactive video — similar to what we achieved in class — in which the amplitude and phase were used as an external effect on a noise matrix.

I chose to use noise because I found it easier to produce a particle effect using the draw points in the jit,gl.mesh object.

The patch takes the amplitude and phase data from the incoming audio — in this case, from a microphone — and captures each as a number value (using snapshot~ rather than poltocar~ to convert the signal information after some minor processing). The number value is then used as a set of parameters defining the location of an attracting force on the particles — causing them to moving around the screen.

I also added a more extreme set of attraction forces which use the amplitude and phase information to govern how strong the particles are attracted or rejected to the center of the video window. When turned on, the particles become more erratic due to the constantly changing values which limits its applications — but I like it as an effect to instantly intensify the drama of the visual effect.

I am interested in developing this patch further with a set of filters and gates to create a combination audio/visual instrument. I would also like to refine the way in which the particles are acted on by different forces to create a more fine-tuned reactive effect.

 

{
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"architecture" : "x64",
"modernui" : 1
}
,
"rect" : [ 34.0, 77.0, 1237.0, 801.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-76",
"maxclass" : "newobj",
"numinlets" : 3,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"architecture" : "x64",
"modernui" : 1
}
,
"rect" : [ 0.0, 0.0, 640.0, 480.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-46",
"maxclass" : "message",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 69.5, 416.0, 93.0, 22.0 ],
"style" : "",
"text" : "sound2 $1 $2 0"
}
}
, {
"box" : {
"id" : "obj-4",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 69.5, 384.0, 57.0, 22.0 ],
"style" : "",
"text" : "pak 0. 0."
}
}
, {
"box" : {
"id" : "obj-5",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "float" ],
"patching_rect" : [ 107.5, 345.0, 33.0, 22.0 ],
"style" : "",
"text" : "* -1."
}
}
, {
"box" : {
"id" : "obj-6",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "float" ],
"patching_rect" : [ 102.0, 311.0, 29.5, 22.0 ],
"style" : "",
"text" : "/ 1."
}
}
, {
"box" : {
"id" : "obj-7",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "float" ],
"patching_rect" : [ 66.5, 311.0, 29.5, 22.0 ],
"style" : "",
"text" : "/ 1."
}
}
, {
"box" : {
"id" : "obj-8",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "int" ],
"patching_rect" : [ 102.0, 268.0, 29.5, 22.0 ],
"style" : "",
"text" : "-"
}
}
, {
"box" : {
"id" : "obj-9",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "int" ],
"patching_rect" : [ 66.5, 268.0, 29.5, 22.0 ],
"style" : "",
"text" : "-"
}
}
, {
"box" : {
"id" : "obj-38",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "float" ],
"patching_rect" : [ 104.0, 237.0, 29.5, 22.0 ],
"style" : "",
"text" : "/ 2."
}
}
, {
"box" : {
"id" : "obj-10",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "float" ],
"patching_rect" : [ 66.5, 237.0, 29.5, 22.0 ],
"style" : "",
"text" : "/ 2."
}
}
, {
"box" : {
"id" : "obj-11",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "int", "int" ],
"patching_rect" : [ 66.5, 201.0, 49.0, 22.0 ],
"style" : "",
"text" : "unpack"
}
}
, {
"box" : {
"id" : "obj-33",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 2,
"outlettype" : [ "", "" ],
"patching_rect" : [ 66.5, 163.0, 63.0, 22.0 ],
"style" : "",
"text" : "route size"
}
}
, {
"box" : {
"id" : "obj-12",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "float" ],
"patching_rect" : [ 142.0, 129.0, 66.0, 22.0 ],
"style" : "",
"text" : "snapshot~"
}
}
, {
"box" : {
"id" : "obj-27",
"maxclass" : "newobj",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 99.75, 100.0, 38.0, 22.0 ],
"style" : "",
"text" : "r met"
}
}
, {
"box" : {
"id" : "obj-13",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "float" ],
"patching_rect" : [ 66.5, 129.0, 66.0, 22.0 ],
"style" : "",
"text" : "snapshot~"
}
}
, {
"box" : {
"comment" : "",
"id" : "obj-72",
"index" : 1,
"maxclass" : "inlet",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "signal" ],
"patching_rect" : [ 66.5, 40.0, 30.0, 30.0 ],
"style" : ""
}
}
, {
"box" : {
"comment" : "",
"id" : "obj-73",
"index" : 2,
"maxclass" : "inlet",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 101.5, 40.0, 30.0, 30.0 ],
"style" : ""
}
}
, {
"box" : {
"comment" : "",
"id" : "obj-74",
"index" : 3,
"maxclass" : "inlet",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "signal" ],
"patching_rect" : [ 142.0, 40.0, 30.0, 30.0 ],
"style" : ""
}
}
, {
"box" : {
"comment" : "",
"id" : "obj-75",
"index" : 1,
"maxclass" : "outlet",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 69.5, 498.0, 30.0, 30.0 ],
"style" : ""
}
}
],
"lines" : [ {
"patchline" : {
"destination" : [ "obj-7", 1 ],
"midpoints" : [ 76.0, 259.248047, 63.5, 259.248047, 63.5, 304.248047, 86.5, 304.248047 ],
"order" : 0,
"source" : [ "obj-10", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-9", 1 ],
"order" : 1,
"source" : [ "obj-10", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-10", 0 ],
"source" : [ "obj-11", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-38", 0 ],
"source" : [ "obj-11", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-9", 0 ],
"midpoints" : [ 151.5, 262.248047, 76.0, 262.248047 ],
"source" : [ "obj-12", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-8", 0 ],
"midpoints" : [ 76.0, 151.248047, 51.5, 151.248047, 51.5, 262.248047, 111.5, 262.248047 ],
"source" : [ "obj-13", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-12", 0 ],
"order" : 0,
"source" : [ "obj-27", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-13", 0 ],
"order" : 1,
"source" : [ "obj-27", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-11", 0 ],
"source" : [ "obj-33", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-6", 1 ],
"midpoints" : [ 113.5, 259.248047, 144.5, 259.248047, 144.5, 304.248047, 122.0, 304.248047 ],
"order" : 0,
"source" : [ "obj-38", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-8", 1 ],
"order" : 1,
"source" : [ "obj-38", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-46", 0 ],
"source" : [ "obj-4", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-75", 0 ],
"source" : [ "obj-46", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-4", 1 ],
"source" : [ "obj-5", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-5", 0 ],
"source" : [ "obj-6", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-4", 0 ],
"source" : [ "obj-7", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-13", 0 ],
"source" : [ "obj-72", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-33", 0 ],
"source" : [ "obj-73", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-12", 0 ],
"source" : [ "obj-74", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-6", 0 ],
"source" : [ "obj-8", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-7", 0 ],
"source" : [ "obj-9", 0 ]
}
}
]
}
,
"patching_rect" : [ 18.0, 423.751953, 136.0, 22.0 ],
"saved_object_attributes" : {
"description" : "",
"digest" : "",
"globalpatchername" : "",
"style" : "",
"tags" : ""
}
,
"style" : "",
"text" : "p FFT Attraction Forces"
}
}
, {
"box" : {
"id" : "obj-71",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"architecture" : "x64",
"modernui" : 1
}
,
"rect" : [ 67.0, 110.0, 640.0, 480.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-48",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "float" ],
"patching_rect" : [ 50.0, 136.0, 66.0, 22.0 ],
"style" : "",
"text" : "snapshot~"
}
}
, {
"box" : {
"id" : "obj-47",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "float" ],
"patching_rect" : [ 50.0, 100.0, 66.0, 22.0 ],
"style" : "",
"text" : "snapshot~"
}
}
, {
"box" : {
"format" : 6,
"id" : "obj-81",
"maxclass" : "flonum",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "bang" ],
"parameter_enable" : 0,
"patching_rect" : [ 138.0, 172.751953, 50.0, 22.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-82",
"maxclass" : "message",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 138.0, 208.751953, 90.0, 22.0 ],
"style" : "",
"text" : "center_attr $1"
}
}
, {
"box" : {
"format" : 6,
"id" : "obj-59",
"maxclass" : "flonum",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "bang" ],
"parameter_enable" : 0,
"patching_rect" : [ 53.0, 172.751953, 50.0, 22.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-57",
"maxclass" : "message",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 53.0, 208.751953, 77.0, 22.0 ],
"style" : "",
"text" : "attraction $1"
}
}
, {
"box" : {
"comment" : "",
"id" : "obj-68",
"index" : 1,
"maxclass" : "inlet",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "bang" ],
"patching_rect" : [ 50.0, 40.0, 30.0, 30.0 ],
"style" : ""
}
}
, {
"box" : {
"comment" : "",
"id" : "obj-69",
"index" : 2,
"maxclass" : "inlet",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "signal" ],
"patching_rect" : [ 85.0, 40.0, 30.0, 30.0 ],
"style" : ""
}
}
, {
"box" : {
"comment" : "",
"id" : "obj-70",
"index" : 1,
"maxclass" : "outlet",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 89.5, 290.751953, 30.0, 30.0 ],
"style" : ""
}
}
],
"lines" : [ {
"patchline" : {
"destination" : [ "obj-59", 0 ],
"source" : [ "obj-47", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-81", 0 ],
"midpoints" : [ 59.5, 167.0, 147.5, 167.0 ],
"source" : [ "obj-48", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-70", 0 ],
"source" : [ "obj-57", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-57", 0 ],
"source" : [ "obj-59", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-47", 0 ],
"source" : [ "obj-68", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-48", 0 ],
"source" : [ "obj-69", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-82", 0 ],
"source" : [ "obj-81", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-70", 0 ],
"source" : [ "obj-82", 0 ]
}
}
]
}
,
"patching_rect" : [ 103.0, 70.0, 159.0, 22.0 ],
"saved_object_attributes" : {
"description" : "",
"digest" : "",
"globalpatchername" : "",
"style" : "",
"tags" : ""
}
,
"style" : "",
"text" : "p Extreme Attraction Forces"
}
}
, {
"box" : {
"id" : "obj-53",
"maxclass" : "toggle",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "int" ],
"parameter_enable" : 0,
"patching_rect" : [ 103.0, 10.0, 24.0, 24.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-51",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "bang" ],
"patching_rect" : [ 103.0, 39.0, 65.0, 22.0 ],
"style" : "",
"text" : "qmetro 33"
}
}
, {
"box" : {
"id" : "obj-14",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "signal", "signal" ],
"patching_rect" : [ 18.0, 287.751953, 112.0, 22.0 ],
"style" : "",
"text" : "pfft~ particles 1024"
}
}
, {
"box" : {
"id" : "obj-15",
"maxclass" : "live.meter~",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "list" ],
"patching_rect" : [ 59.0, 181.751953, 5.0, 100.0 ]
}
}
, {
"box" : {
"id" : "obj-16",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "signal", "signal" ],
"patching_rect" : [ 18.0, 181.751953, 37.0, 22.0 ],
"style" : "",
"text" : "adc~"
}
}
, {
"box" : {
"id" : "obj-2",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "bang" ],
"patching_rect" : [ 18.0, 331.751953, 60.0, 22.0 ],
"style" : "",
"text" : "loadbang"
}
}
, {
"box" : {
"id" : "obj-1",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "bang" ],
"patching_rect" : [ 303.0, 10.0, 60.0, 22.0 ],
"style" : "",
"text" : "loadbang"
}
}
, {
"box" : {
"id" : "obj-87",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "jit_matrix", "" ],
"patching_rect" : [ 303.0, 291.751953, 99.0, 22.0 ],
"style" : "",
"text" : "jit.matrix velocity"
}
}
, {
"box" : {
"id" : "obj-86",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "jit_matrix", "" ],
"patching_rect" : [ 384.0, 222.0, 99.0, 22.0 ],
"style" : "",
"text" : "jit.matrix velocity"
}
}
, {
"box" : {
"id" : "obj-85",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 2,
"outlettype" : [ "jit_matrix", "" ],
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"architecture" : "x64",
"modernui" : 1
}
,
"rect" : [ 59.0, 104.0, 600.0, 450.0 ],
"editing_bgcolor" : [ 0.9, 0.9, 0.9, 1.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-5",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 294.0, 71.0, 100.0, 22.0 ],
"style" : "",
"text" : "* 0.97"
}
}
, {
"box" : {
"id" : "obj-1",
"maxclass" : "newobj",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 50.0, 14.0, 30.0, 22.0 ],
"style" : "",
"text" : "in 1"
}
}
, {
"box" : {
"id" : "obj-2",
"maxclass" : "newobj",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 305.0, 14.0, 30.0, 22.0 ],
"style" : "",
"text" : "in 2"
}
}
, {
"box" : {
"id" : "obj-3",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 176.0, 149.0, 29.5, 22.0 ],
"style" : "",
"text" : "+"
}
}
, {
"box" : {
"id" : "obj-4",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 176.0, 418.0, 37.0, 22.0 ],
"style" : "",
"text" : "out 1"
}
}
],
"lines" : [ {
"patchline" : {
"destination" : [ "obj-3", 0 ],
"source" : [ "obj-1", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-5", 0 ],
"source" : [ "obj-2", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-4", 0 ],
"source" : [ "obj-3", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-3", 1 ],
"source" : [ "obj-5", 0 ]
}
}
]
}
,
"patching_rect" : [ 303.0, 255.0, 86.0, 22.0 ],
"style" : "",
"text" : "jit.gen velocity"
}
}
, {
"box" : {
"id" : "obj-61",
"maxclass" : "message",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 18.0, 357.751953, 49.0, 22.0 ],
"style" : "",
"text" : "getsize"
}
}
, {
"box" : {
"id" : "obj-55",
"maxclass" : "newobj",
"numinlets" : 9,
"numoutlets" : 2,
"outlettype" : [ "jit_matrix", "" ],
"patching_rect" : [ 239.0, 395.751953, 369.0, 22.0 ],
"style" : "",
"text" : "jit.gl.mesh partz @draw_mode points @point_size 2 @color 1 1 1 1"
}
}
, {
"box" : {
"id" : "obj-50",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "jit_matrix", "" ],
"patching_rect" : [ 239.0, 359.0, 100.0, 22.0 ],
"style" : "",
"text" : "jit.matrix position"
}
}
, {
"box" : {
"id" : "obj-49",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 2,
"outlettype" : [ "jit_matrix", "" ],
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"architecture" : "x64",
"modernui" : 1
}
,
"rect" : [ 59.0, 104.0, 600.0, 450.0 ],
"editing_bgcolor" : [ 0.9, 0.9, 0.9, 1.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-6",
"maxclass" : "newobj",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 331.0, 75.0, 91.0, 22.0 ],
"style" : "",
"text" : "param dt 0.033"
}
}
, {
"box" : {
"id" : "obj-5",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 271.0, 108.0, 29.5, 22.0 ],
"style" : "",
"text" : "*"
}
}
, {
"box" : {
"id" : "obj-1",
"maxclass" : "newobj",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 176.0, 36.0, 30.0, 22.0 ],
"style" : "",
"text" : "in 1"
}
}
, {
"box" : {
"id" : "obj-2",
"maxclass" : "newobj",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 271.0, 41.0, 30.0, 22.0 ],
"style" : "",
"text" : "in 2"
}
}
, {
"box" : {
"id" : "obj-3",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 176.0, 149.0, 29.5, 22.0 ],
"style" : "",
"text" : "+"
}
}
, {
"box" : {
"id" : "obj-4",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 176.0, 418.0, 37.0, 22.0 ],
"style" : "",
"text" : "out 1"
}
}
],
"lines" : [ {
"patchline" : {
"destination" : [ "obj-3", 0 ],
"source" : [ "obj-1", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-5", 0 ],
"source" : [ "obj-2", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-4", 0 ],
"source" : [ "obj-3", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-3", 1 ],
"source" : [ "obj-5", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-5", 1 ],
"source" : [ "obj-6", 0 ]
}
}
]
}
,
"patching_rect" : [ 239.0, 328.0, 83.0, 22.0 ],
"style" : "",
"text" : "jit.gen update"
}
}
, {
"box" : {
"id" : "obj-45",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "jit_matrix", "" ],
"patching_rect" : [ 466.5, 98.0, 147.0, 22.0 ],
"style" : "",
"text" : "jit.noise 3 float32 250 250"
}
}
, {
"box" : {
"id" : "obj-44",
"maxclass" : "newobj",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 303.0, 126.0, 38.0, 22.0 ],
"style" : "",
"text" : "r met"
}
}
, {
"box" : {
"id" : "obj-43",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 35.0, 110.0, 40.0, 22.0 ],
"style" : "",
"text" : "s met"
}
}
, {
"box" : {
"id" : "obj-42",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "jit_matrix", "" ],
"patching_rect" : [ 303.0, 170.0, 100.0, 22.0 ],
"style" : "",
"text" : "jit.matrix position"
}
}
, {
"box" : {
"id" : "obj-41",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 2,
"outlettype" : [ "jit_matrix", "" ],
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"architecture" : "x64",
"modernui" : 1
}
,
"rect" : [ 135.0, 178.0, 654.0, 582.0 ],
"editing_bgcolor" : [ 0.9, 0.9, 0.9, 1.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-29",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 125.0, 491.0, 29.5, 22.0 ],
"style" : "",
"text" : "+"
}
}
, {
"box" : {
"id" : "obj-28",
"maxclass" : "newobj",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 494.0, 140.0, 125.0, 22.0 ],
"style" : "",
"text" : "param center_attr 0.2"
}
}
, {
"box" : {
"id" : "obj-27",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 470.0, 169.0, 29.5, 22.0 ],
"style" : "",
"text" : "*"
}
}
, {
"box" : {
"id" : "obj-25",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 479.0, 94.0, 29.5, 22.0 ],
"style" : "",
"text" : "-"
}
}
, {
"box" : {
"id" : "obj-26",
"maxclass" : "newobj",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 522.0, 35.0, 30.0, 22.0 ],
"style" : "",
"text" : "in 1"
}
}
, {
"box" : {
"id" : "obj-24",
"maxclass" : "newobj",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 378.0, 35.0, 111.0, 22.0 ],
"style" : "",
"text" : "param center 0 0 0"
}
}
, {
"box" : {
"id" : "obj-23",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 125.0, 434.0, 29.5, 22.0 ],
"style" : "",
"text" : "/"
}
}
, {
"box" : {
"id" : "obj-22",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 191.0, 416.0, 28.0, 22.0 ],
"style" : "",
"text" : "+ 1"
}
}
, {
"box" : {
"id" : "obj-21",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 191.0, 382.0, 25.0, 22.0 ],
"style" : "",
"text" : "* 2"
}
}
, {
"box" : {
"id" : "obj-16",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 125.0, 313.0, 29.5, 22.0 ],
"style" : "",
"text" : "*"
}
}
, {
"box" : {
"id" : "obj-13",
"maxclass" : "newobj",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 190.0, 251.0, 117.0, 22.0 ],
"style" : "",
"text" : "param attraction 0.1"
}
}
, {
"box" : {
"id" : "obj-12",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 144.0, 270.0, 29.5, 22.0 ],
"style" : "",
"text" : "!/"
}
}
, {
"box" : {
"id" : "obj-11",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 144.0, 220.0, 44.0, 22.0 ],
"style" : "",
"text" : "+ 0.02"
}
}
, {
"box" : {
"id" : "obj-10",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 144.0, 180.0, 29.5, 22.0 ],
"style" : "",
"text" : "*"
}
}
, {
"box" : {
"id" : "obj-9",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 144.0, 133.0, 43.0, 22.0 ],
"style" : "",
"text" : "length"
}
}
, {
"box" : {
"id" : "obj-8",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 125.0, 94.0, 29.5, 22.0 ],
"style" : "",
"text" : "-"
}
}
, {
"box" : {
"id" : "obj-5",
"maxclass" : "newobj",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 22.0, 35.0, 117.0, 22.0 ],
"style" : "",
"text" : "param sound2 0 0 0"
}
}
, {
"box" : {
"id" : "obj-1",
"maxclass" : "newobj",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 168.0, 35.0, 30.0, 22.0 ],
"style" : "",
"text" : "in 1"
}
}
, {
"box" : {
"id" : "obj-2",
"maxclass" : "newobj",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 191.0, 352.0, 30.0, 22.0 ],
"style" : "",
"text" : "in 2"
}
}
, {
"box" : {
"id" : "obj-4",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 125.0, 536.0, 37.0, 22.0 ],
"style" : "",
"text" : "out 1"
}
}
],
"lines" : [ {
"patchline" : {
"destination" : [ "obj-8", 1 ],
"source" : [ "obj-1", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-11", 0 ],
"source" : [ "obj-10", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-12", 0 ],
"source" : [ "obj-11", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-16", 1 ],
"source" : [ "obj-12", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-12", 1 ],
"source" : [ "obj-13", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-23", 0 ],
"source" : [ "obj-16", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-21", 0 ],
"source" : [ "obj-2", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-22", 0 ],
"source" : [ "obj-21", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-23", 1 ],
"source" : [ "obj-22", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-29", 0 ],
"source" : [ "obj-23", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-25", 0 ],
"source" : [ "obj-24", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-27", 0 ],
"source" : [ "obj-25", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-25", 1 ],
"source" : [ "obj-26", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-29", 1 ],
"midpoints" : [ 479.5, 477.0, 145.0, 477.0 ],
"source" : [ "obj-27", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-27", 1 ],
"source" : [ "obj-28", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-4", 0 ],
"source" : [ "obj-29", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-8", 0 ],
"source" : [ "obj-5", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-16", 0 ],
"order" : 1,
"source" : [ "obj-8", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-9", 0 ],
"order" : 0,
"source" : [ "obj-8", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-10", 1 ],
"order" : 0,
"source" : [ "obj-9", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-10", 0 ],
"order" : 1,
"source" : [ "obj-9", 0 ]
}
}
]
}
,
"patching_rect" : [ 303.0, 222.0, 73.0, 22.0 ],
"style" : "",
"text" : "jit.gen force"
}
}
, {
"box" : {
"id" : "obj-40",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "jit_matrix", "" ],
"patching_rect" : [ 303.0, 98.0, 147.0, 22.0 ],
"style" : "",
"text" : "jit.noise 3 float32 250 250"
}
}
, {
"box" : {
"id" : "obj-39",
"maxclass" : "button",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "bang" ],
"patching_rect" : [ 303.0, 43.0, 24.0, 24.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-37",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "bang", "" ],
"patching_rect" : [ 18.0, 393.751953, 157.0, 22.0 ],
"style" : "",
"text" : "jit.window partz @floating 1"
}
}
, {
"box" : {
"id" : "obj-36",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "bang", "" ],
"patching_rect" : [ 11.0, 141.0, 218.0, 22.0 ],
"style" : "",
"text" : "jit.gl.render partz @erase_color 0 0 0 1"
}
}
, {
"box" : {
"id" : "obj-35",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 3,
"outlettype" : [ "bang", "bang", "erase" ],
"patching_rect" : [ 11.0, 75.0, 67.0, 22.0 ],
"style" : "",
"text" : "t b b erase"
}
}
, {
"box" : {
"id" : "obj-34",
"maxclass" : "toggle",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "int" ],
"parameter_enable" : 0,
"patching_rect" : [ 11.0, 9.0, 24.0, 24.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-32",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "bang" ],
"patching_rect" : [ 11.0, 45.0, 65.0, 22.0 ],
"style" : "",
"text" : "qmetro 33"
}
}
],
"lines" : [ {
"patchline" : {
"destination" : [ "obj-39", 0 ],
"source" : [ "obj-1", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-71", 1 ],
"midpoints" : [ 120.5, 312.0, 240.0, 312.0, 240.0, 93.0, 264.0, 93.0, 264.0, 66.0, 252.5, 66.0 ],
"order" : 0,
"source" : [ "obj-14", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-71", 0 ],
"midpoints" : [ 27.5, 312.0, 240.0, 312.0, 240.0, 102.0, 228.0, 102.0, 228.0, 63.0, 112.5, 63.0 ],
"order" : 1,
"source" : [ "obj-14", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-76", 0 ],
"midpoints" : [ 120.5, 378.0, 69.0, 378.0, 69.0, 390.0, 15.0, 390.0, 15.0, 417.0, 27.5, 417.0 ],
"order" : 1,
"source" : [ "obj-14", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-76", 2 ],
"midpoints" : [ 27.5, 312.0, 3.0, 312.0, 3.0, 417.0, 144.5, 417.0 ],
"order" : 0,
"source" : [ "obj-14", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-14", 0 ],
"order" : 1,
"source" : [ "obj-16", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-15", 0 ],
"order" : 0,
"source" : [ "obj-16", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-61", 0 ],
"source" : [ "obj-2", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-35", 0 ],
"source" : [ "obj-32", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-32", 0 ],
"source" : [ "obj-34", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-36", 0 ],
"midpoints" : [ 68.5, 99.0, 21.0, 99.0, 21.0, 144.0, 20.5, 144.0 ],
"source" : [ "obj-35", 2 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-36", 0 ],
"source" : [ "obj-35", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-43", 0 ],
"source" : [ "obj-35", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-76", 1 ],
"source" : [ "obj-37", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-40", 0 ],
"order" : 1,
"source" : [ "obj-39", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-45", 0 ],
"midpoints" : [ 312.5, 85.0, 476.0, 85.0 ],
"order" : 0,
"source" : [ "obj-39", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-42", 0 ],
"source" : [ "obj-40", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-85", 0 ],
"source" : [ "obj-41", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-41", 0 ],
"order" : 0,
"source" : [ "obj-42", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-49", 0 ],
"midpoints" : [ 312.5, 208.0, 248.5, 208.0 ],
"order" : 1,
"source" : [ "obj-42", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-42", 0 ],
"order" : 1,
"source" : [ "obj-44", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-86", 0 ],
"midpoints" : [ 312.5, 150.0, 288.0, 150.0, 288.0, 207.0, 393.5, 207.0 ],
"order" : 0,
"source" : [ "obj-44", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-41", 1 ],
"midpoints" : [ 476.0, 208.0, 366.5, 208.0 ],
"source" : [ "obj-45", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-50", 0 ],
"source" : [ "obj-49", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-55", 0 ],
"source" : [ "obj-50", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-71", 1 ],
"midpoints" : [ 112.5, 64.0, 252.5, 64.0 ],
"order" : 0,
"source" : [ "obj-51", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-71", 0 ],
"order" : 1,
"source" : [ "obj-51", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-51", 0 ],
"source" : [ "obj-53", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-37", 0 ],
"source" : [ "obj-61", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-41", 0 ],
"midpoints" : [ 112.5, 126.0, 288.0, 126.0, 288.0, 207.0, 312.5, 207.0 ],
"source" : [ "obj-71", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-41", 0 ],
"midpoints" : [ 27.5, 456.0, 225.0, 456.0, 225.0, 216.0, 312.5, 216.0 ],
"source" : [ "obj-76", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-87", 0 ],
"source" : [ "obj-85", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-85", 1 ],
"source" : [ "obj-86", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-49", 1 ],
"source" : [ "obj-87", 0 ]
}
}
],
"dependency_cache" : [ {
"name" : "particles.maxpat",
"bootpath" : "~/Documents",
"patcherrelativepath" : "../Documents",
"type" : "JSON",
"implicit" : 1
}
],
"autosave" : 0
}
}

Assignment 4- Tanushree Mediratta

This assignment required us to use fft- an object that segregates the different frequencies a signal is composed of. So, I used Alvin Lucier’s “I am sitting in a room” audio signal and got rid of frequencies above a certain threshold. I then delayed this signal and added feedback. This added a certain villainous tone to Alvin’s voice. I also modified the patch we made in class to create an audio visualizer that visualized the audio signal before and after the fft manipulation.

The code for the main pfft~ can be found here:

<pre><code>
----------begin_max5_patcher----------
1246.3oc2Ys0aihCF84zeEV73pzHtXtsOrZ18k8880Uqpb.Sh6.1L1l1lczj
e6qwFRHsDBp31QZUUHAigy247cwel986V4rk8BV3.9UveCVs562sZkdn1AV0
c9JmJzKYkHgdZNYrpJLU5r1bMI9EodbTgDyAEERPEhRpaJQRBi1OMZSEgVhk
5mgW2faa1tsDKH431Qc6FUHOTpGvYvMyZj82s6E28vmWMRlsmP28.GmIMbB5
5twcMvOzq8KuP8YAoabA+S2MQx0Xw1938PnS6X+3t6ZOrdlBBE+r5leid7KG
Agixd+YxydVYFRdnFanjifrihJcNwfQncpehln9wluzZf+3r1K7+KrNIvc9r
1l9ZAlleDrEWv33Ii3mar8HjKHE1xmjT8Quo3VXp04lN69ihZvdWk18EOM2R
dObCIk7Fxhr+94sWxIYrRF2X6l5JCObxpeSH7zorolnViatqR0EpPKIzF3tx
GLVvHxiMSlUFGl7D1FdeKTLyOQGkj.mL7v8if+VHy1B005DfzIE.XfEEfGIx
MOSn4rmAhZk4vQfuTTxTqrS2A7Vjd3eM8XKhtyY8MRVhBLgDwZgwKJcJIIHw
lwDfsixa2kFGLIeiME7CfccyLIceWo.WqsNBstQBPM4DFvDpBt+2.YL5SXtT
.jLU6dpJhu.TYHU82cIghyXMT4PO8LZAL3inEvnHi1kDsI7bKfwWQ7rc5SVq
AcD3unlhtZxhBgGL5+MSY5aNxT9HJYxPHnkUgckapvh8mqhjyQO+PEKGCDeq
AckZqoe9xCDFaDloSwBsYJ1eA9Sve.9cqzc0rxHR589l9shzm.uBUiren.W0
RoZuhmBFvbj.aZoA3p+6m6ZKC6F0OXx1QChsYq1WYsEKzhcrapYkRCahmrGJ
KRIIXKP6dWH0BtkKUCR6OzCLo+0UG8mnOFMoR.8rnT7sJrjyTXA9BJSp5q7J
Q4KdmxyUALU777mL.G5+djf5RzgRhPdbQN8vazy75w+U6mbRV6qeBwOLoRD.
iFnDcsF3dEkn2HyQRTG26H+JmrRR8oWi1fKntTAoDSQUFhxYrp6ETR8FDon6
A1Ooup5z1ra01tsZGYvDJYr5AZmFSFUpVO4AgDIw8FzPnUTlnnbFi2x312Fm
1.OwNi3xI6HJkSYj6j6q5Hw.Mv3cY4mCuDjLmKtZq6drmcaOgHpbZCPsL.N+
zloG01j3pZV2T7eso0Ax3OAQYCWRpviyJs7H1SJtxcWvJKYOuqjs8BaXJA7D
PpfPII6qhKUJs3Ianj1TT869.d4Sq0XERNVYXiAlpYoRh7vqbE8WWmkZ9Q2f
lQrSAr5hB4QP0g60IR9psgD8SaKwcItdg50p87lrL96pJN9eyQYGWTEZ2aZ+
9d5kkgg8GGy7unBrdB5MX8p2ZuFj1wujSBVCOqWXMhw5ywTN4pfMUv64byND
UZ542iEW0sl1gMpLZafceKv9e3.GlLNxtKBY3LP1abfWlVGFNCjC5lzxPxcN
bzFHAClCRPafj+LPB5YCjZeH92J1zV.cy.hXagj2mBRyIuN8iHuN.9YkdELm
zq.aDz6ENWj7VJRv2GmLK8gpqeByEcyVChZg6GM++XhWqOkPMmp20nCG+Doe
9P8HHtZ8XoZw3FtY86WRLsxn6ykSaHckfUH+i69O.zouGBB
-----------end_max5_patcher-----------
</code></pre>

The code for the sub-patch is here:

<pre><code>
----------begin_max5_patcher----------
1046.3oc0XtsiaaCDF9Z6mBBgdUgqAOHpC44H2UTTPKQ6kIxjBRTa1EAYe1K
OHmF2XKQrlxN8FYIJRO5algy7K800qR1odg2m.9.3OAqV800qV4FxNvpwqWk
bj8RUCq2MsjJ0wiboNYi+dZ9KZ238GUJ8SbYOvbDzKNHYMmlTiPxqTCR2Lwi
CJGNJjMbs6uEMN3tgc6Z38hZtcTx3n85WabCjj7uKVMnOsZ3Yq9G++ZY5pmD
xC+cGuR6wDSJ1B2.Jnaoa.HBwdAIeKD7WiqQT6LkZ2m9CTYhcrusds8vl.cQ
6FzZkLYJNminSyyOj90Vt+gOYGSdH46OpWBOZokHTIx9CN8zwKgG9+e3gxwg
iW96Aui79d1A9OkfC2huHy3ak4PBm3B+Ok1jVL9J7RiKuoO.dGiugwKIl7Rx
fO.dooPWAnBWQIhOq9Z7BiIuzhG.toib5+Y5vKp38fqj+Eyh+IZaYeF7aH.B
9HBxjBWcJ+V4b3TwXTdDg92eaYfcr69zHmuEaavlQCHRiiHzVwF2F23Y3dS.
8oFC4kd4EYSExIQD99m2+Ff.AWducn5oRm2ALwYS4VxvixtbaBxldq.583Xt
l9Ts3HGTyaXu9KopzTzXgQn0+3qTbUUoYwzwrmyq2wp9bxC1CT51vPnN+Pdw
TB6PwbKSqpQqpXcKdMiv2dPIz42dTD0FEfESda.XiJy7w9TK8o3ovNKhXueu
1739F.cSjCmMdl464SSmTcWbASHuFWg9RZj2QWfPp86psklOYo+H5KzrVWP9
Z56Q2gD7QzSybY.4SlGfhpJ+pFNq6Q7dMiUvycB+HSFsKiaz1k4CgKTz1XfJ
kT5.c9HNwzVmNWDOlR9MMxzJSKseg5lgg346lQiojlO9DumC5a4Uh8hJvyrl
AdOPs28oIOo2Avj0dAg.m1vuv63fpmT8bIXGuhMX9KFWRsn2TOsR6VhPpMyz
NvA.e+dCstO44qf1NU8PEud6EEXROSKj8Q8Hq6fPZuW1sjodtHqVkvaOq2d7
FGpTMpNeLAtkfPvTzF2YozxR+YEDZt8L3j8oyb8oS8eAUTF4T0rK1O6rFZtY
37H+mu1ryL1wOON2qF5pNk04KRXd79tcpcA.lVnj+vbx8y4hYRgZmh.rCNR1
AEfcP2ncxCfGSKmaGnr6T.hFfiqHBNN5chGRHAnXjIfCYKD9brUc0bWkCzcv
zvKaZ3sY5P1.fIKB0As2qXQnNjr2rXjTQtWFBduJjgJtaVJjDDRLLDN.CQig
gPgVM6lsTH4CKxdqfrb1RTPAEPquyaOFKjCIpl+nPd4r7rLilOAyq7k019Lu
qeb4NiZdWlO4kkmuwcoP5uz8gWR53OKNMe2GjOg0YDjqMpwG57uPvKEYI9kp
LFVNHFo1X4us9eTp059D
-----------end_max5_patcher-----------
</code></pre>

Assignment 4 – Multislider EQ – Will Walters

A video of the patch in action (sorry about the clipping):

In this project, I connect a multislider object to a pfft instance to allow for real-time volume adjustment across the frequency spectrum. The multislider updates a matrix which is read via the jit.peek object inside of a pfft subpatch. The subpatch reads the appropriate value of this matrix for the current bucket, and adjusts the amplitude accordingly. This amplitude is written into a separate matrix, which itself is read by the main patch to create a visualization of the amplitude across the frequency spectrum.

At first, the multislider had as many sliders as buckets. However, this was too cumbersome to easily manipulate, and so I reduced the number of sliders, having one slider control the equalization for multiple buckets. At first I divided these equally, but this lead to the problem of the first few buckets controlling the majority of the sound, and the last few controlling none. This stems from the fact that humans are better at distinguishing low frequencies from each other. Approximating the psychoacoustic curve from class as a logarithmic curve, I assigned volume sliders to buckets based on the logarithm of the bucket. After doing this, I was happy with what portion of the frequency spectrum was controlled by each slider.

(Also interesting: to visualize the frequency, I took the logarithm of the absolute value of the amplitude. In the graph, the points you see are actually mostly negative – this means the original amplitudes were less than one. I took the logarithm to take away peaks – the lowest frequencies always registered as way louder and so kinda wrecked the visualization.)

This is the code for the subpatch running inside pfft.

<pre><code>
----------begin_max5_patcher----------
824.3ocyX98aaBCDG+4To8+fEuToMJx1X90dZ+eLMMQHtotkfQFSappV9aeG
1IocYjE2HSydATNr4quO9tyG4kOc0rf4x07t.zWQeGMa1KfkYFaCVlsyvrfU
kqqpK6LCLng+jb98AgaelluVarWKWtYu01Rc0chlk+Twqz12OKEGgCQIzjga
wrgqTZDF8icSR1qq4Z8ysb6LB5DKaJqCdcDc5mqMOLXuRM8qDMvzLKN5arZe
aFyjclEKLSFV+2PRCLF+0mtZ3NbKzYDTIWsh2n+aF7jRn4nxUs0Bc+BdGRKQ
kntV.BJ4RUY6c6mSsngWI6az+w5dDtkhyixwXLqHDXX9.1HI3cLzc1PFmM3w
XS1DvFX.v1I5548UO.Ze8V1TKVvUHH3oDX2cqDUk00OeFThhixJJJxyA7jkG
w.hgKFPEaZQE67Q0wxjtWniZkOv2XhbPDD9emWkt2yS.OevwSIfmGScHEahR
tn9mJky613JGXowQTfCDJr0mMEUZHuCXPlnPDN+gMHP+tSEhjvX6QCM0jPPv
4tikv2UbxQPCcLzf8OZTP4hEaPjHz2Z3kJdm9c.GpsVKNFHDM6BeDUg+gyM.
XbEFjh3nTfETnXhS0RlRVj6eVLzvBDlj6LORx1yijKc6KY9mGe48QCx1CYgR
rrjKLMR8OMt8VMH5IRWhAfj.9Oydra7QhLNSOcr9MR7um1Jq0xpR0FG7z37W
8Ta+7NeBhu1+G6bjInIrO6DNnolj.JC.QwfkKXRPr+g.DUnkP7gKrfPIQIEC
UG9uJzfNIkFDMmpxPBY.AVPvxNGbD5u1RiGq2qCAiUEymbc3eIfwAGdvA3pS
1qp14.1VVBQuwIgOAFPUoVHadyfft9Li53aLNqWtK5U3M4xbQtbuIWpKxk4M
4XtHWhWki3hbDuHWrKd2AHPpVvUl7pOpE.7whiuBvdXEPcg3LuQbpKNbr2hm
HNktPn9SPhSBl5OAwtRT+rAN3ezSIW5Dlx3Df83FpK4GzOV7RNHo8nED1d7c
Ya6ibU21WhUbnsl6klIkEZ+snw9aaiAAJ9ihcSgYMUpfVZzP+L8JaCGqSYAa
msDVBM8hc6xl0.b42.BIVgH
-----------end_max5_patcher-----------
</code></pre>
view raw gistfile1.txt hosted with ❤ by GitHub

And this is the code for the main patch.

<pre><code>
----------begin_max5_patcher----------
926.3ocyW0saaCBE95Lo8Nf35zHC9mztq16wzTEwljPK13B31zUs9ruiASpS
liqUaxztHACb37y2gyGvKe8KyvqT63FL5aneflM6EXjYtwZGYVXfY3R1tbIy
3DDWKYOKEF6q34cSWyr4aEUatUyysdkQHwKhlihuw0PRib8f+Q+LrJUiUxs1
mq49kfMhMULId9ve09qPjaEpJl9Y7a5wXeV5TAduCU0TJp.k6bXRuQ81zMbZ
XXQgawpU2cEIduJJXVVGJDfgY3bondOZ0eFXt0BIuhU58jZsnbgTopWvDqC5
LH08hJuIYMEBU6H8kvvkbWT5siC3H8vsVYZ0b+Py4apJKuxdqwxr7fmefKBP
tVrQ.3okWVq5RTznCU9LWBty3GNgUTxMVMGx1CNeP8.PrwtszrOBNTrGZXRg
syD3ULiHGenDlZNuny+Nd0qURo5oMR0pChiiiAA3jlsh01SnlRUAeLOP1naC
2SDBN0mqz5CRUG6n5RVk8cj5PLqWNGP676M3A04IhIWfXapfRQuDIIfD6E32
e8KgugOCSDFsqEZlOYpfJ9SPYy9ZFKemy0vOTxsZEhh9NCh7G4HxXbE2jk41
ju7ZWCIssgRGkqXEqMFmLG.cXN.x.b.zX7GFOtSXWT+DTdqdZr.95DW.mPSW
jBrhot.NNab1QGG3ayOEJN5PgGEe1S2sg8FMqdK56ZHuv2JPjnEccjJzUPuQ
OrHJJwAAzktTez0SXG.XzaKYVsX2QHyG77fAAKxkAr79MBn4xQDzZohYioHZ
Z16TnbsGeR7Gpls7+DXhjc9goBV9nWvfRc0Pow9aVL.T7A4DhFJ.u.6CpWu1
9Jh+vUllUnTBczBjkTGggu4loj26t3zmNeODEII5hVV.NfoWYAgNdUQRlaKP
R2UMyR9OopH9x.Rv8EkNHZJXB0sgYRDEWPVzONPT1HsBiTTv06cCCXpfyQFC
CBml3ZhSW5eIR1mDEZumc3wAjwglZlFdPfkquEdYvJuh1SuXD+xGBzdAFnEH
9OwM+mBS7wPsewXon5udlmCxZm3nDfQ0nyC3Q3UQ8t1Jt.dD.bk02tRafTvI
0oy0S2fYSwfvgymKCFT06XP54yfSCRyNeFbJ1K97kAilT7cDrqzs04s0D+ac
Ax.tPz4vElztpAA8t5VVc8ibsoaEdKALj2ob93x499hJe+XeeM+QQXII9gXZ
fczBTiMZOc1trDb2pgGBqqZDAb24Cve+A.Sh8m.
-----------end_max5_patcher-----------
</code></pre>
view raw gistfile1.txt hosted with ❤ by GitHub

Assignment 4 – Willow Hong

For this assignment I used two Pokemon models to represent the frequency spectrum. Larvitar is displayed when the sound frequency is lower, and Pikachu is shown when the frequency is higher. The scale of the models vary based on the amplitude for each frequency. In the video, the audio frequency changes from 1000Hz to 3000Hz, we can clearly see a greater number of Larvitars at the beginning, and Pikachus gradually take over the space toward the end of the video.

<pre><code>
----------begin_max5_patcher----------
3477.3oc6cs0aihjE94jeEHq8odSaUWgh8oz6Js6Siz95pVsrHlxNzACL.NW
lQS+aeqK.FrMWMzwcDcZ4PJLTmyWctUEmC0ed6MKdH7UdxBi+gwWMt4l+71a
tQ0jrgax96aVry4009NIpu1h.9KgO78E2oOUJ+0TUye2Kc4umtLluNL10fA.
Fl.P92JX+tv8o97T0s.k0ZjS55G8B1tRbQoZR.aasDbmACCj+BBMk+BgVBL9
V1EsILHMw6O3xuODtzFSrv42POWEoHHuOCIKJcAAN6TWvhuD643meFMIk9VD
W24RdX0NmzXuWWbmwhEE8of78BxodXViIou4quoKjM7W2dq7i65HJtimj3rk
eBLljFFcdTCVOpQoTINYYpPMLZIcffFZ.fVMvDZRgoWh8R4FBoDiGWhLI8Fw
vLVIDiYOXwLqqMDSpGF8hWfa3K8V6CYuDK9GDemgI0VKKo.HDATBaJw+10yj
MnAM.1pAqNZMVi0g6dvKfaPLV+nSrjxkj8EgAPrxJDy5DwiRP.AdMXOoF7I0
3AwO7XmDt7nyiFz5QCaaakwDlx.SK.AnVf3AmfsRHH+2JBpbCpeOk3SZ31s9
7dam.B.XE..YZ8f7OOG.fqWavKH8.6E4DKLTjxiWwCbdPyTfe5hF+tfDhCMP
CGSnJzfxZRn.a0rPwTZJrAaFa8EQpD3xiKLabuRlb05P+vXCf9mkzda9vjor
YfwlJHhznFCrUEl2CaFQFQgIdodgAI8ORDhJhMBgJYeyFEMr5hcyyy+fS4+x
zDONiqyXag2YOe9y73DASUhCtYgSTToluozkHwpuGptQV2UzjWftIbQSw7m8
xudRQqNwBjIU.K6i0z2qEAoHuMgBIuf8dENCUiZ2leCyASKPVTvJQJloxFrs
.ZKfSwH7V+v0OwcKgJB.MhG3EDEyS3AoNoYTWwoc4ab16mtpRLNhAoyc9MNq
40dwmMdmaVrM1yMLPRDUvZYy4cmvJhhafUXF02HvI5LWrPfQfK0bxDAStO4A
mX4PQlAUT9ISCC8qdphqymuIM6zQdAAGghhHwq+jwdaergq8gPwI20z8Vclj
U6CzmckPqLcUhyyUQ6TGe+L0zp29WcB7DpH7TO8P.BTbRsSkGSVGG56Wge0m
44ybFWgT7Z9KdtoOp5nxBChutWTtPzhhQYWus7jzpsk5rMoZKmngJZZ+CYZo
qR46h7EbQ0uPkojVVkrrAsJsejgsM9gByEE5a0Y+tNiXD87ALYHk+MvwFwN1
PFxtbWc1Hgq3qqsf.p0de1DMhEC7xVMK05QdBtI2aPlskABjU7PbzDU88b4F
vkho5urdjF1MjFqbTXZ2JRyZDoEi6NoUg4JvH98Dv3uFEa721.M9jA13uWJ3
hACaTakyVH.0JtY1rDZ8PF78DxxBQkZbuy5TumEhaCFxnTEHQrs0tTosBYzF
grSUnOW.ruOvVD24ImcQ+3hkunpnWMsZCqfvKRs7cErbbW+ig6ovlpkpT1uv
sCTfFApDusAx3nJN5JUuTNCJk4r6Ue5E7Uv29j3S32FLRZqhw0DnlRIDyZCI
a1kaMK7x0ldZLWDIqqgHBdcP5CUeEQTnGApD.sa0Mp0ujdChbV+jvso9+WJV
gYD8B.2FVQGJVgeu0PkSMXYDO12Kv39jHN2UFWODOXcTrd9nXhVI0pU4LRqw
EeMagqF7CMX7CYAKsl5c.+veDwugCeZMWj1mKzB2ZHb+RCe6BWtwi66ZbuXF
eqkS0ZvHmdJrD87YgnVmPKbbbtdM.gIRguMw7eWLMokBwv0N9bgXH5fDIc3B
jYOd5r4eQZ0WB5CIvJfvC.K139vMaR3ohisN.xC2oStYRrxoCF19pw.93.xe
OTfxX4SbY33GQiX1J7yt048BGoHqe2C+ILRHJFY7IiHwEX7oKz3IVCiPPqNs
grO.SMIS96Xu2vJJ5Js+ga9DR0yZQa1r8kY07Chd8mLt+YG+KxySNXolumUq
SVFZ9wQjrjCcgHXzixLaP6AJOByKPhDoWPUc5Tk87saDXoeb70HTz4CF4zoS
kVU1D1JrQ9v4h1jbgJyPlB7XsqLi9f3f9Dk4QPCNCKMKgnMhk3eUDD0zV83B
nSKup9IroStVLngEdfsnmrZoVWGtaGOH8j18Bb4uVJkGpfKGRB.ocnZd5uJF
SYm5r.VR39304icYKRrQUdzkmj5ETjRDe8.6J+hcZ7puDgUGIB3DRClckFD1
VLfSDQP6HQXMg.AoizfjVQSDMf6AMLUiEntpZXOkDAqiDQN0NMTQWUNPSoUB
TW0NfSocBDrqTwoxOgwt57tCdEPZnySZfogz.WunF35E05gYvoRdG1UyfxE0
YxrCBYWAgH.M6CTLYTAsOQpLUdngjqg3kf39PES1HRW0SyEflFpnqV+QSJU.
tFbRC6QnammFxZLOmyWHS6X2U5TrdkSpXBuOrOUOIrxIQeuRE3s9gO33mknu
EIJdS4E7gjG91Cz6nWlXp0u1O7ECrgJuzvHCVQdE1857.BnVxRbfPg5mFMoo
Rc.cEWhXWR4dXSUkGFwjzd4dfIy06QK06ASuxoYqD3b8dLWuGy06wb8dLWuG
y06wb8dLWuGy06wb8dLWuGy06wb8dLWuGy06wb8dLWuGy06wb8dLWuGy06wb
8dLWuGy06wb8dLWuGy06wb8dLWuGy06wb8dLWuGxUxGLWuGy06wb8dLWuGy0
6wb8dLWuGy06wb8dLWuGy06wb8dLWuGy06wG658Xq+xc68S8h74G1jORch2x
U4wtguLGwE+cuK8irhdfBY5s3CXiU8.dH6PRS59eheniqd+EomU6QosForxd
wDz31aBcH68KS69qVL2wsXneoqC+hPA8p2A0YwFBW29GFNO85q7bKu515vZQ
YJzk6ePSphNjw8N6SC2IrHsVXBJ6YFQj+bI6+VTjNMKo3FqsJ1UbwU8ICrYQ
xq0cYLFVuyigUO8QBpQ9u9cQnpIh6THxToxK59frEUuhs5J.f1rUDyFsfV0R
Ru2ZsNo5JlF4.YgLk7XX5OFv9sUlvfNadNMAFO65a+dHKTCqu9s097eTWIV1
NeSn5bSuQ9tdcfixr5ehLdjySFwgoNhFd6ONNQV6NLXpWKeDDrjPvXjsLktZ
zh.qutOHiBLHCjbuW+4O8NlV9Se8zrj7b4DPmYs7NVRb5..xGQVbsGiERWOs
sDiE3JMFqHumbV+39KMDKLP6oHKOv5WHVEolyuvgXkgiSSDVXRVDVMV41zq3
.rRddyOj61zmGEHMfB.cMepbtznSUjYaNWtqwiNOpfmZ4oxuuCdza6ikdgG.
QfA7JOvT+NNfPUaskP6liJ8ZVnIZyFQjXeYuqW3WDiPuk3k7uCi+ugOw2EFH
7DYddrAzv9IMRoSgMkoGLovQMBz7qEhxJuiMuKeAH3qhE9G8eKdEpK4CcB9n
y7d4NZZASryI9Idbx9DcctyNCug61lg6Y47rau96+YSQu+YBS7gDeEnl3CHR
7g3uj5vE2qIQXoTAC1CarZ2UlmuLAqfSntac4cPUoKqjVlKpdCRTBRuPZ58X
ZRiVgIWcqiVFz7nSfq.XT9mWoitb.FWI5Z6tRT9zFEbFzBK1rrh5ZplPNZ74
3krNCkZNAbpasxIGVm5SFH5ZGw5PGYNB8iUG5mwfeL6BvMB8CA1gNxdL5HPW
PN3X0S3V5IDcr5IRa8zX0QveFhCfxYAvD1Q3tXY.aMF8TmTYAiQOQ5BOgGid
5mj0ATWvtxoE0v6IyNHgipBvUSclItqwmuqAWVWS6n6D3kBuntLPNFNHQcwg
BbT5otpscofGrKAWLF9SfV8Hbo7YF44FEJl.UV.ZXa0agPK8jwI.yh+5Rost
DQBqhlTgRB5mSOiFaKCctmwisgAXWLLfFC2ivt3KAMFNSfnKV5lpeuRNAR2c
xp0X35F1k3fgm5RUOUridcUJ6jidMUdzqnxSe8TV+qlxiesTpROH8LCOZ5eE
qb9t2Tm9yH.jBX.SG8bPyeIQVEKdX65PeMs8UCU5h.VZK9mEI+Ha3cxSTfNO
rcimuewUUNWjxmd6hswNtdxxMIOMhJ0IfkHa.zVtrPKw.aFfnORzT0dJ6pfk
nsJebz2Cke6YlHKBUdSYV.JioOhQvGe6cB1l8Zozpz6Vwn3vnv3h2OmKw1Ee
+8ogEbVQJ3dHgs39hAPw0UgYwPKShkjFLoDa.RAqxlNBVK+vODRb+VXfy5vC
KPfbAMT22UdARoMd98WMhk+Q4any50B5rBsHFUY.llBHVV14GYSqdoBFY2wW
K1xjoGorYlPECQLgLLI6Ru8.THe.+hK+3rIagZ8oxAtx5oEht5Ew4e5umm+5
t37Rsmg2ZEmGSBLN7kfdSgGnKpERb7cZTcRnv+0aN8m.AHaJQoWZYgwHEXxP
Pn7gPM1D3+IlyG.EpPO0h3KOBZJ00Geh62b1JeG81axiI79YpnLfIPPbJnzz
FVneMhz3+i66G9RyjX4G95WUuMgo1..qISDLDUqbawfLnhUnBohQkAdYmx0D
EA5tqIgxLCYSvZ0ZFkZoOBgjOjgqE+Ss367DOUPrE.pUyrLwpKS.6L0BKOgd
ppvsh9iorJgXLXFyRgX76f+IFEBTlEYDDRafjgA.Bpc2SVLfMTCf..Bpc5Kb
4KUBGnjq3Z9qa++.xlgUE
-----------end_max5_patcher-----------
</code></pre>
view raw gistfile1.txt hosted with ❤ by GitHub

Assignment 4 – Kevin Darr

For this assignment, I created my take on a spectrum visualizer using jit.poke~. The visualizer works by doing spectral analysis on a number of different audio samples and writes the data into either the red, green, or blue channel of a matrix corresponding to the frequency bins. The result is the visualization of 3 audio signals simultaneously. I added a rudimentary spectral degrader to demonstrate how different effects are displayed on the visualizer. The audio used in the examples are short loops that I wrote. (My favorite is the 8-bit lead synth on the blue channel due to the pitch bending.)

 

Continue reading

Assignment 4 – Vocoder using fft

I use fft to build a vocoder controlled by three keysliders. Here’s a quick demo of how it works! In the demo I played a clip from “I’m sitting in a room” at different speeds plus at different directions.


----------begin_max5_patcher----------
2170.3oc6aszaiiiD9ryuBAg8zBmX9RulaKv.rKVf9zt6gEMVzfVl1gSKI5U
RtSmYv3e6CeIYIGKElHEmd5YZf1wjhR0W8whUwpn7ubyB+0huxp789AuO5sX
wubyhE5tTcrv1dgeN8qoYzJ8v7qE61kw7WZtTU8ixFp9a5o3PNuHiUqGM7Tm
hC0m2qoq5G2yL.vmWT668+rWcOsN8ddwtOUxRqMCf..2AV5EjDdGP9uP3ROD
Q0i5y1ajuQCHw5e51H+1GVIMmUyJ+Dqft1.Yf5R+5M2n9XoiZeNqphtqU8qY
es1Hr8rBG4DzKiSFkPv33yIDbjlPPWlPh8eEJsDoqYkGeg5WtXCqa6shh5sz
TC02ouJ9Oq6Chuqo6J9N8nZ6nOWgFhqj2WAMyeom+1LAs1EpKhDXXPMqguLq
AA9c.bgzRReo+VIWJsWCgxdP9XehQT0VI7DkaN5gdarkr7iCzRXRxcgx+EGI
oH3XVTvWkIkb9Qh4WnWjArV1JJyoZ3G9xLWTFJqoE6FkPfxETARRv34ALlYB
JZDyjqjinp8L1FOn2eA9BMgFfbmCuTVJDhzrWTvXbHddWosOi9XFup93jBXE
77Nbtz2T+eCOslKJnkONNEAzrBLFo+iwNCCFXIWRC12PqoVs2p9K7Sy36ain
24BJNkmwZ4zOPSkwaEU268O9weX0+ohUVs5exjWe0eWHjg389wR9WXq92OHo
OoI0+RqVUq9.aCmtpRbnXS0pRgH+1pB996n7sVP0HnOyKLPldXCWn5oy.xDh
8c3aMtkS3rh5OUUSqYMJUW3uvXbaTsak7UbC4bxMPQCedh4LqO3xEL0kLIwa
FP+K2Dq5iJGBU7T+dW8+eflwqeb3ArmKetU2y2NfzEk7cbI6IY+c0M.PMCKw
U5mq5+vpxNTpfa6v5cUszqOTvK1Y2SDA7TrHihnrsjFdWRa6Cm7pKKolQUyx
2Kr5E57AoVecIQXmLFGGaEYYhG1kIV2SJxA0LF8pcyWrcZ5Ydh2t5nG4cKPK
LhnbJF.0af0D0cnXrjj4bWFozL1QuagxnDf6RhUVqtteiv4e+FAAFWcgZGep
vBivCQyHOj9XphGdG2pkQ0Ql8WYaLjlGNiZ9e8nG7cSqQIZScLQGoCiFUqCl
S6d9tiuMos9BzZiYNdbqb7Lp040hsuMZ8n5afQQQAXyj8n5K58ICBzUJChXi
5iQlLMGctGGb8Rg32OLXTXr6LX3exfWfAAX2Yvn+jAeJCFZJrlaLX70iAelc
2b2TJC.5kVF.GhDFDg5xiIiwiIyaw.RE44xLLeBWsUlUoz34AZ4lUpuull94
6lGax97F34cwAfl8Aaph6.E.H75vK6n7hqNOXcTY3AbvXzPvUopr6umVIJOp
Rz9auES1sYEqWFEO9louNEwtlwpu+3KLexqEQgCMEViL5gjPfyKS84pL9FV4
jR4po28krJ4ZUpplJ87pZV1XV0fCahQ0pdW7r1V97G4l87.f1zzuvStaAvIW
ona62ts9n2WDoBIuda0g0ueIwizTNAqWABAitu.zrlOK8gipSD8cOS9H8hov
Qc9.I+9OmVq9ZqWy34zBC9F0QANxTnMyIo+V3oX3mbW9I7ObdJP5SUyQOEvn
um7T.M6OwMOEeGT8qF80r80mwSA5aTOE5kwuUdIHtrcBHbtcRv94MzziSh0F
I2EXndMcj4PLLpn5yKtGyWyrtJgroUCaGd0YdtYvlCtx9tPXNvZx.ong9Cma
d6I46na9tVA5A3mwKN+ExSKEU+84kJwgxzFjYKWxoSX0eCqplWPOc3qs413A
aGTNeydgbF2JwfXnZtEGfzSwxVfjjjnPaWlyf8IyXthuXGvGzNnIInnqkfHt
P4n4PPtnRjfwlawg50sXigIFAZaMUrE5B1hlCVHvkIVxbHIrq78jkDxEIAlC
IAcwXcTan.XfxpgfzwsIPRaqohMfq9tlpjvwtJIzPrPHIriWRUqH...QyiWR
bjq.DOD.ifnN.T0BIciGGOS.LzU.RFDfQQcAnrUhjAQjYBfAtBvfg.XLA2Af
caMUr4hGrjYvNG4hYDdNDjSrc+.kmGZBqCFQhAlWBRcBS5VSEaDWvFZTrQzl
pHhdibVGf5VSEat.swPlkmBSh0ucsQFuQpVmxRqTkjnbz3qBTgNBUyeF.pn2
bnB6GBnUxvqijgOUxfIIYXhqA1G1VpITtMubPaq2EvBibGrHDZDvBuBf0cr1
s0ba4CcJ8p4XijvnI6wuYRa183CcYyIv.m73adgO.mZMUr4Tjx4HlLj35hrg
SWzn2Dn1Ws5EWro0TwF1w0TCGMwD+vBstslJzbxG9rLA4RtXPj6loVVXVLSm
7p6F2bOypaSAun62+EVYk84qQkeN8mDZWhQK0M4EllXcyR1W3Mimn6gVldOu
lkVenzTruuFaNfI8urixhCbar.IebisnfmUjs1i4O+QSMC0plT82ROjU2mxT
kcLUjIJ+DuPgc14UL2n2c7wud2VdVl9dN+2qSS4E82UR2vO8d3n9EwXGt5Qi
R.vjP0iFCRhADy2jcA6II6cAats3.HHQM1XBBQLeCC.DzktKT6Oekk8+3z3n
E6L0SEE09yyTcDBh8hxFaDIvRZG+gZQqh0r4AyzfgW5njPC0knJ4Ho4aI80u
duRFRiwOHJnoB+F6pkVK8Ro3Nuzu94xIRdCH5txnct2Tc4+KS86R4V3Xl.ce
iU9n9cVIPlBa6uHIeZZJqnt2LXLJ.FoTqnXXLTajDjDPBr52rn.OnVF3kKJD
U6U+Va+dvH1Eyh9FvRtFhi.ZNNFEEh02lj0iQIus1y8zVo7hQJIihigVkM.h
wvyo0d2UhDjDrVOihCBhLeCgfH2VHLhAnS9B7YYr7yu0nXPBzvh..BFadJXX
X7q15UdO+5M+FlmFofC
-----------end_max5_patcher-----------

Assignment N. 4 – Jacob Randall Holmes

For this assignment I created a spectral system to be used in live performance based on a tutorial video I found on YouTube. The patch consists of a random pitch generator and a noise reduction patch linked through pfft~

 

<pre><code>
———-begin_max5_patcher———-
1714.3oc0akzjiZCE9r8uBJW4Th6NHP.lbJyobO4PNLUJWxFY2ZBVxADd5Yl
Z7u8nE.ClM4tA6jKfaIgdu22aUK82lOawF1q3zEV+h0GslM6aymMS0jrgY4+
8rEGPutMFkpF1hsrCGvT9hk5933W4p1+MlEglRhvVblEZKmbBwwVGQ7suTLV
Z1AVFOFyUyjcdqo7uDiUSQw3TeDgtecBdKWyaAvm8VZ4F9r8RKfms7ki3o0e
k+IjH0Lv17om7gUnGgVPNfrsuOet7wRCkU7WiPaOOBruqshyc7fxWPuhmsw+
vfV4em2.+SweVLiMTUG2sie1R73I7+jghIeEmX4AbZWNAcJm5Aw+xQrVHWjR
1SQwKJEptABfSfTeBbbUvhSGHg+noI6.InLRJ97cTvWoz798J0dimTmcXCNo
cwywbwawRqEaPz88Jffv.oT4qDybOztjvN7PKm7DzALGmrFSQazLm8aP52Ey
Dy+8Q587j1yddNFH8N2tzm22NVxAjhh9uA73.NMEsG2vI3mkN+O+tcBLAerU
V9PPe3i6pQK928zBXkqTBg9JID35zqH5+fLA1jw4L56VUOHX.UQAb0tCNvhm
shENScP9nziobQwHcDmGZtbSj08nLqPpej+2xWCiFPfJrfeuo7bsmZzPm7Wk
36oDbTlnRMF8dk9GB0Y+0uf8BENgSdcPVe.Z8mjs+MNx5OHGxhEFIQV+Nd66
NhQNTr7F.kU5RaC6ERZOznc04VjuWCD4HgHjAIFeBmjJzyUznyVfNdrRyyp7
IR36SL0DErrrIBU2jaYSI3SjhuGV1JJQHgbg3kkngoWWUDuSNMrHbBMiTZVq
TjyKlvBPw2UUNAvVEBYktPwfvJ07KT56iYRkWELPnKNhoD5wDbpXUJHdN2U1
cDdGJKludGixSEU9pXCIMZo+cns3N+XpHDsR59PBQppyGx9DRDiJYhZXsr4B
xIpUxSqrqJLpQPQGa4iEpdAtzQmxPaYoaPIRUQdxBmhN4LVb8tJ+tX7Ndd2G
IT5UnHmcr6NSH6eomucCSz4g9laUOoqyn5dWKbT4qSQmpi1bTbbtma8o+UDk
HRBh4DsJvwtrScByWR2lvhiqIu5dN0ROQBq3s3OSh3unHTUiAwvIGKLhVTpk
iH6wo75swQ6Sq2Ri.Ehlx1j6ktliObTFwo9.psd7ptjUiwUq89p4o6nXcvfl
U+SWQxbzY5bB5nL3qimAbuhOaTKzP0C0VMQyJRPjGa4MBj0V7zCBHcBLCHCd
633HhXwjS3m2iHzyUYmSnjxXksOh53pWeHXiDqK0nZYIYwjT9fvafpHcOnd0
35Lut98XmF1I95L.9VE+kQ3hVi37DhnPb7kekVAbqftRrKNCy1Us6p8WkjB2
988iy0Fd5KrD9ML9BcfcG8ePfIx9eJ3R7yliAoLi76bDDJgKylpzR10UH0FX
lXfkNcvKiozJt5OGifAUqfrdUj+TO1xfaOFwUEL1uILLTuBqP4ZO6MRqW2Vv
iHLUeKFpiS+.PjndTgpAAIPw1t5091Nz.kf2ETpGioXBEedTy4bINoQYdJfr
Pk8kq+fPF3QCYhJM28XLq.pEt4BGDir6N878AiRPzH1A41tOpHU0M9X.vBnq
ILvaHvJ7tXOUaivFGv3Vbu.5U21bmwtFMV8nsbDoaSXVPp0upNSOrE39CZg4
aEfpLX.XPSH+GcHoe7rn3kvGQYA41WtZuMnyPPk2iFpRQe97iDnbUVStgCAT
t+mvlB7HfJ8xOcCWYlIkyiFopcntOBjx1s8S4sQcA2kf6Zgoa3vdP3nykeDn
25ZW6hmcZS3azFTTb2RtlAHzH7q+u.W..vsALAiCvzlq0k8VVtphN1TQkLH6
ucDKkkkrsvKH2l0ptzDgS4DZ4Ns+wxn.xwYj95l4AaCYB49Kd0.YIQ5SHw9A
yZvtYMvzvZlp5bmRUGzT7ALkbgmobgnHNKvc0.5lXs6qATno999SotqoJoCt
HXB4BGS0RdSHS3ZHSLk7f2s.DfIhI7MjIVMg.wJC4gvIjGL0AskrTSbrCS4r
faKgcNNVbABxOgE84k2xwq7s2x45tOlsAEmepskmXReGx6kSBd9E98Qc0i0U
h53CF9lGC7G7F2n9r50SpklqMHxkolANq4mzUn6JNIMvMioTnATRJxWxlbkw
1cfz1MIM3cQZ4EHqh.0QEd9i.955XfP5ZOFTx2DJsZLnjIVmPmQfRPno9Af2
Kk7LQlFCKBnI5I4+dCiuGm4jd.ONc.tqtZbRpd0Uh6pqCWyqBW2WCtquBbBJ
+84+Ki.dzi.
———–end_max5_patcher———–
</code></pre>

Assignment 4 – Sarika Bajaj

The goal of this patch was to create a rendering that would react to the amplitude of the microphone’s input. I made this by originally looking online for a sample of a rendering tutorial I found interesting located at https://www.youtube.com/watch?v=qf1OGUeIs1s. I originally started off with the video’s original patch, removed all the audio processing they were doing in the patch. After then playing around with the rendering part of the patch that I had kept, I changed the noise type of the rendering, as well as the scale and appearance of the rendering. During this process, I discovered the “distortion” input that this rendering originally had set to a fixed value, and decided that this was the input I wanted to be dependent on the amplitude of the audio input (as it was giving an interesting zoom effect). Thus, I wrote my pfft to be filtered and then have only the amplitude passed out which would then be scaled down to act as my distortion input.

For this example video, I simply used ambient noise as a catalyst (people walking by and talking) as I’m interested in making renderings that will use ambient noise/images from an environment in a way that is obvious yet still interesting. Unfortunately, the Youtube compression ruins the effect quite a bit, but the general visual is preserved. A Google Drive link to the video is located here: https://drive.google.com/open?id=0Byn46tolhCwUUlNzNDVObGppY1k

Github Gist Here: https://gist.github.com/anonymous/f69fd0c33650aeab618f81ad8d37ecfe
*** When I tested the compressed code just for checking to make sure my file was all right, for some reason the rendering just stays stationary while on my actual code it is working fine. For this reason, I also am uploading a zip file of my files, just in case something messed up on the copy compressed feature for some bizarre reason.
Zip of Files: Assignment 4 – Sarika Bajaj

Assignment 4 – Anish Krishnan

For this assignment, I used the pfft Fourier Transform object to cut out certain frequencies in an audio file that can be controlled through a slider. I combined the output audio from this with a modified version of the sound visualizer that we developed in class. By moving the slider up and down, you will notice a change in quality of the audio which is also reflected by the characteristics of the moving shapes in the visualizer.

Input Audio:

Audio Player

Output Audio:

Audio Player

 

Main Patch:

<pre><code>
----------begin_max5_patcher----------
1906.3oc2ZsrbiaqDcs8WAKt7Vxx3EekUdQp5d2jU2JqRMkKHRHYLCIACH3X
6jZx2dZ.PJQIKIS8Hy3JxVTPf.nQe5tOnAn9yauIbg5EQaXvOE7aA2byed6M
23pxVwM8e+lvJ9K4k7VWyBaJ4uVJaM+U3L+ca3l7mj0qdTKxM9QBiXyQyBnI
ywYvqjYA3HjqF3Zvm56XcWkrtTXbiKtuRYgSJpEe9NR3lFp5LCsLpu1VyqkB
WiGZmuQlWaD9oQXqbUMuLb19KYeWHyMRUMW+Z354UA2v6AfdD3lv7RYyZXZz
MfasTVJp4U9oxuvyk0FU6SA+ue9mt+WaE51640x1m9hFtTyqu+mUOWWp3Es2
upSZ354ULduBLLZeQV6QAdWgTYqYTCJUplQ.laxopMhZyisFtQLLyGOGggUo
q30lbk1Zk.M1qKqMFtFYjUhViV.1y8c61Fgnn2.Oe6aozxUR.VAjXk4opdjB
sSqrtN6af6mb6en+8Ndozz2uvE7VYd3VMnRUHN7cajf1bb0tsrSaU88OoGTM
inpQ0OEInip+qGHvAyHy+R61SI2rzzUCwL9VxXn2NmaeRt7.PxRUYo54UkpE
aMsfFMzluc6sCE5qzWi652tc1Di0KEeUTVILB8lncsnE703VvbTDOIKZNEdg
oyBHPz+PbeZlqZZ7LPKmGaektNPaOLGDFx0ARJvYfyl13rWhjwSzCPvfiFzp
Jt9KPnpeNbWLX3tiAyf6rx6NBCtfIvE3avshGK3QDS3CRL0O7cs93mzCwWIs
AAe5LLT0hmAEZPbFwKN3D7rkEhfHD7+QXqIjDqqJgjtFtiy70bH1Z5aAS1An
qwSmtdIvKdl..zUPrCiriPwocwGQsib5HCuVq8qQcXsdOtPL7FfUycgJOBqF
rvqpn8hHjoiH1knVvs7DWQuh6Cnj4guKvfbePYGGSH6ASP+H8Db9752itJxo
VXT57TKWRlUec0vFmgxgAGe7wd5x4xEQyNcGoS.P+NGUgShsebFATzjOvATm
Adfi7tJI3yEPXefADweTvyO1NAxHNRjrT6GrngqSlKgh2OWB5sZ30ifrY4Ry
eErTK98NQc9q+WaV0GwBi8asg5YCvwmLgYxEyW1uolq4pDeVZlupb9S75hRQ
vC7Ni5QsxtCi.7QPiXDdNCgP1jlrIvYWZMMxtAvjS10mb.f4Dcuu5vh3kFcv
Ctqx5eC8o+CaydU2CjDk3BBXPZVqQFJ8j8RHzKFMfI+i.kkV9x4iKK5LFXUr
2UcoIr4LXo0jHaRV9TsNAaON6hCJt5INYs80JYqHfF3xPgRfTHNZ3vfsGQ2X
6Imdj.l8gv1ebphptRirAHKZa.8W2UE7fgqWIL1SGIn50++S7FfIoPzZdrPV
AoJDOIrKBVv.dEiAmp2iEYOwMX5GSVD.wZJ4F0H3p0gPEpBQN+IQgVUC0kyA
HE1U752OznJe8Q6wdDfg+dHWUpzvcxf2IvaV.ddvCaC5V5av5KyCVmbdorVj
q57m6B4HlA.+swvYIyIfYvtQ339y2K5TbgIejcg8K42BvQwceU9G2wgkSesU
1dD2y9E7YItbavz3SNpN6GPtM5fEGQmRhSlm0ySQiwaHviNtxgdqxEG9iYOK
G5nPNtdiYq0abVz7D6ABXOJqSmpN5GfQ0Rm3CL5i6GnTtanVKrtdMqGVy9Bb
Ik7dZf.5oxLL1aY7JbDJwxXbRzCzO5Kv8rRWVLhq1uGLKD5fU.YrkEZdq3wd
FY2e3SEU2JC5H+QolRroOEexjtGHsA5Yr+v2fotIgSq144G4zIa8aCz.4pNe
XX621ylShOzlVfrlu4P5GnHG0Fk1dzN1no8ZaulB1twy8IYx2GIieqjwWjji
mhj8s4hji8XfeWAk30vKSP3IJnKViPSPPCylKSRaY32ufhtBxglMEmgqA1Qm
hC+..eYRh8cxcfNA4X2xwE6fSlD1cEzHxjUoKVRS2FccY+lhfwQ+SrVCdJwZ
3qgYDOkH.xaMi90w4MMeUna6asSHPpQeV4ffjYtuJq8e0k9PnV7U4P6YtZ3Z
HWFCjHSm1mUwKo9cA3dF855NYukDTua6y9XmbGV+Co3Y6HETopUsM779yeET
pk7tRy1HgMMMWFWOJqs5fXzyeeykQOD8vEqVJKKc8Y2enGCo9DtRyKjBHasY
C+DPFZtcnIYHbl8wAOmhxRQLeInJ7VRpuW30OG+YaeYm1QFF9zXRBKxNnoIn
nzTeoTFc2gGxLymAGIwpk801nUMJ8foGlYYqaemQsVyFbt81C+izn1LXB.Ol
eQUyyUa9kwrEDfvwnrLG5hwoQXWIDkFw1Er2paYIIQ3rdH.9ZVDMltcODkhJ
QsYqtkjRwLhsGIYowTWoTFlPR566sazC6SJA5+tY2F5NfpAsdbH1FutJBBGg
hHH9+d73PtCgOgMTJCebeOLMA4rlojjXpqao3zTR1GGeOX5j5bAHoo3drHBS
2I73MtdfNvnNXHIMJJwWhPrGo03twyy208C7uQYdeNBg4KQQHFYJdtnLrGEg
M0g8wxPjbb5Y64B84a292RFBHLB
-----------end_max5_patcher-----------
</code></pre>
view raw gistfile1.txt hosted with ❤ by GitHub

Frequency Gate Patch:

<pre><code>
----------begin_max5_patcher----------
612.3ocyW1saaBCEG+ZxSgkubhEYCXHrK1KxTUkShSGUD6HiSVppZd1m8AXY
sk54DXa4Fivbh+yuymjmmEgWpNJZvnuf9FJJ54YQQvVtMh5tOBukebUMuALC
KE+Ps7Qbb6iLhiFX6JIJoeycbypuWIe3dsXko8rSRWLmDiXL2ZJwsljLmftq
6mH2usRVKLfFztMqVCGsUtO+qy1ZnZu4sV1XdpV.F2aWqQlm1IZeAvXzctm7
xrYtk3wQ6AKXZd8ITBK2C0zhLfTRg6RQterSeO1zQicS0CRd8jB+lMFqLmPT
OjWBfml.fyx7Cdx.wa1vjSdO4SGXe5jGhxgTWZYBvR4b1kRT1+0X4lZkU29i
diRukCfk6I6MuDPNAtvthh1zy9SMeqvHz2Kj7ksbRFzcjbAUzwH7Rt7gIM49
qmPDOYAKRcAdZFTJmxt77ZxsXE8NUsQshq8k+WzBKC5imStXxok3wFv6HO9u
hOvhuQYcDd8ATG1krq0Er311EXmg6qmNMC5iyJuxY3T1s0Pb6brJo+wXsA7r
hyqWFwePO+zQDv+fPO7Ngqqju8q4.pb6+ZGTiZudUuH8ymPmQasnw5c3lJk7
2LxUD6LZvfPvJkFfRtFkH5XUhDBSVaRFqPApyXcc89e+tN1ToDMDkFaPx0U7
OyzqyNU50BMTz8OPZxvRSFuzzPJ2Fs+kEBjoSQNSPsPVLUJQCQI5TnTRXk1S
bxYnJSm7byPKHoCLBhua2AgtoyZPC6z3GUv6UQLbakr8VXNHVKNT0aeFrCWa
GDarSg2qaGOdbQ6eyFuUYITtupy8ZU9kY+Dh9+7G
-----------end_max5_patcher-----------
</code></pre>
view raw gistfile1.txt hosted with ❤ by GitHub

Sound Visualization Patch:

<pre><code>
----------begin_max5_patcher----------
1053.3ocyXssbapCE8Y6uBFdrGGptg.c9G5WPmNYvNXWRAIFPj5Ncp+1ORBg
cvgPDARONOP.wVZo0RasYI+60q72JNlV668ude0a0peud0JSS5FVYedkeQxw
c4I0lv74o+Tr8Q+MsuRldTZZ9Sm7.AvtlKSj69dF+v8Uo6jsiNiEDiU+Q23g
PwAgpaQga7Hn.ftk.f22rcl2TjwySkF7P1Fydv.iB56fT+KQJZjcgBssVK+U
dpI5t3ZCR9qxz14hec1AdRtu22zu+OqWqurYdBP8S6O4AA.faZ.Tcuh3T73z
GO.8CGl9jIS+Mid2RJNOlICJE+H8jWcoRMpZJtqHQVkczC5gFQvHgf.pVwfJ
QhQB.TJUkz.ogSOqgL6rl+ZRxX6iPT1hII3aKI4eNMJygQr.MwID81Gflt32
AoQ2hUO9zIGKcFRNW5jRBfpEeJYhJP3Mo.n97Q3XUBhBzY4X36cYGNaVuOWj
HWTR+4wV0gDhYY2jtii0zGwLWmDuA2hq1e1wz82OuY2hztxaaFu9MyxasFP.
imjCdIoiuspmW+VzECLamgXRfCVAgujvQCSXvKI76gUMEaSqFa5qbmDdd5qL
0N0oO8xfWkTjJSqtOkmrscNCFjZnIrVp7xsMgeXQWS2uWlw2KN81qprPspDE
M9V2ATExr82lwkZx+x+82x.miGBnm+Mbf9i4QnIVn6FyC2tjJonTj6ZA9HyV
HJXxeP+UrwglwofV78Ii6m8YxPaEeHZ5aVdEaM3E4vf8DDyTxOOie8uWfgZ5
16qR0hlpccfX+jr2Eh8PZsRgRjYB9yhA0FyfqCthSrC3nsCNafBc.HbuXDUO
n9hhNM8CGX84cGBYvGOxuBmgyBYMcPuAxQ+eAL8iPqQtn0gKPdLj5.RKBPNk
9PWBjPNRI3bAB5.PrVfV17RmPVe7ugfddYllQ0kR4yVccTbAK.NHGpjCW5J4
t.roR9xuF5Bx3OjDWWPFMbEU7rQF5xNFv.NeRJKeJsp1FsACkSvGEl4UzFyi
Y71GM1u7qReJqKdyoW7SpTl.kJGfMUstxNF2dFP+Bghg7lLq7pX2Zq6sqbaw
UGTzz0epGIuBAWTWlnnogUJRsOoIW1WHztR2IxEU2mw0bvpIFS2Wt.elsysG
1mkma5icnrikZvrVG8OTk7PVp9vU12bNb8PiX.HipGZLfECHs2oZB1CIauf1
eyK673xkqhC0M7wTTDITOnwQfv3316hI3qGd0Afac.ihzrz1ZYk5PJUcK8pY
F6b7MRwYl0sKqc8P+58BtraIPkw7EAOYmv+rt0SB.PJfwLpKDFGBM2Av3Px0
hcutwhhBgLqDndjEho398HMOsPM+50snXLjfz8HhESwl6hIPDJx120W3g9Gb
P0+qOcfegJ0Iqi05D+0+Y8+A2+DlB
-----------end_max5_patcher-----------
</code></pre>
view raw gistfile1.txt hosted with ❤ by GitHub

Assignment 4 – Adam J. Thompson

I’ve used this assignment as an opportunity to continue my explorations of the writings of Virginia Woolf as transformed by digital mediums, as well as to better understand how to use a spectral system to create audio-responsive visuals.

I began by reviewing Jesse’s original shapes/ducks/text patch and reconstructing through the components of the PFFT~ one by one in order to understand how they work together toward being written into a matrix. I subsequently created a system outside of the PFFT~ subpatch which randomly pulls a series of lines from Woolf’s novels and renders them as 3D text to a jit.gl sequence.

The only extant recording of Woolf speaking about the identities of words activates the PFFT~ process, and the resulting signals control the scale of the text. The movement of the text uses Jesse’s original Positions subpatch, but filtered through a new matrix used to control the number of lines which appear at any given time.

At the top of her recording, Woolf says, “Words…are full of echoes, memories, associations…” and I aimed to create a visual experience which reflects this statement as an interplay between her own spoken and written words.

I spent some time altering various parameters – size of the matrices, size of the text, amount of time allotted to the trail, swapping the placement and scaling matrices, etc – in order to achieve different effects. Some examples of those experiments are below.

Here’s the recording of Virginia Woolf.

Here’s the gist.