-
Notifications
You must be signed in to change notification settings - Fork 0
/
Cycles.pde
98 lines (73 loc) · 2.12 KB
/
Cycles.pde
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import processing.svg.*;
import themidibus.*;
import java.util.*;
PShader barrelBlurChroma;
PShader dithering;
PImage noiseImage;
Edges EdgeMaker;
Graph LinesGraph;
Colorscheme Pastel;
MidiBus myBus;
boolean saveImage = false;
boolean record = false;
boolean distort = false;
boolean dither = false;
boolean drawLinesBool = true;
// Zooming
int constOffset = 200;
int mult;
// Color selector for Background und Foreground
int colorSelector = 0;
int shapeVariationCtl = 0;
float bezierAmt = 0.;
void setup() {
size(1240, 1240, P2D);
// Ramp up anti aliasing for smoother lines
smooth(4);
// Calculate initial distance between points so that the zoom coordinates are updated
mult = (height-2*constOffset)/6;
// Custom function in Controls.pde for connecting to a specifically named MIDI Controller
connectToMIDI("Teensy MIDI");
EdgeMaker = new Edges();
LinesGraph = new Graph();
Pastel = new Colorscheme();
// Barrel Shader Presets
barrelBlurChroma = loadShader("barrelBlurChroma.glsl");
barrelBlurChroma.set("sketchSize", float(width), float(height));
barrelBlurChroma.set("barrelPower", 0.4);
// Dither Shader Presets
noiseImage = loadImage( "noise.png" );
dithering = loadShader( "dithering.glsl" );
dithering.set("sketchSize", float(width), float(height));
dithering.set("noiseTexture", noiseImage);
}
void draw() {
if (record) {
beginRecord(SVG, "./pictures/frame-####.svg");
}
if (saveImage) {
saveFrame("./pictures/frame-####.png");
saveImage = false;
}
background(Pastel.background.get(colorSelector));
// Calculate distance between points so that the zoom coordinates are updated
mult = (height-2*constOffset)/6;
// Enable holding keys for emulating knobs on keyboard
triggerHoldKeys();
// Dial up the resolution for the beziers, change if it's too heavy for your machine
bezierDetail(100);
EdgeMaker.drawShape(Pastel.foreground.get(colorSelector));
if (drawLinesBool){
EdgeMaker.drawLines(color(15), 2);
}
if (record) {
endRecord();
record = false;
}
if (dither){
filter(dithering);
}
if (distort){
filter(barrelBlurChroma);
}
}