Give controllers top priority for note/controller events, so patterns can't eat them...
[SugarCubes.git] / SugarCubes.pde
CommitLineData
49815cc0
MS
1/**
2 * +-+-+-+-+-+ +-+-+-+-+-+
3 * / /| |\ \
0e3c5542 4 * / / + + \ \
49815cc0
MS
5 * +-+-+-+-+-+ | +-+-+-+-+ | +-+-+-+-+-+
6 * | | + / \ + | |
7 * + THE + / / \ \ + CUBES +
8 * | |/ +-+-+-+-+-+-+-+ \| |
9 * +-+-+-+-+-+ | | +-+-+-+-+-+
10 * + +
11 * | SUGAR |
12 * + +
13 * | |
14 * +-+-+-+-+-+-+-+
15 *
16 * Welcome to the Sugar Cubes! This Processing sketch is a fun place to build
17 * animations, effects, and interactions for the platform. Most of the icky
18 * code guts are embedded in the GLucose library extension. If you're an
19 * artist, you shouldn't need to worry about any of that.
20 *
21 * Below, you will find definitions of the Patterns, Effects, and Interactions.
22 * If you're an artist, create a new tab in the Processing environment with
23 * your name. Implement your classes there, and add them to the list below.
24 */
75e1ddde 25
49815cc0
MS
26LXPattern[] patterns(GLucose glucose) {
27 return new LXPattern[] {
7e3329d2 28
8cedfe61 29
d1dcc4b5 30 // Slee
4214e9a2 31 // new MidiMusic(glucose),
0137237d 32 new Pulley(glucose),
7e3329d2 33 new Swarm(glucose),
4760e696 34 new ViolinWave(glucose),
d1dcc4b5 35 new BouncyBalls(glucose),
87f6fa39 36 new SpaceTime(glucose),
1627a617
MS
37 new ShiftingPlane(glucose),
38 new AskewPlanes(glucose),
87f6fa39
MS
39 new Blinders(glucose),
40 new CrossSections(glucose),
41 new Psychedelia(glucose),
4c006f7b
MS
42
43 new Traktor(glucose).setEligible(false),
44 new BassPod(glucose).setEligible(false),
254fbb68
MS
45 new CubeEQ(glucose).setEligible(false),
46 new PianoKeyPattern(glucose).setEligible(false),
4c006f7b 47
d1dcc4b5 48 // DanH
4c006f7b 49 new Noise(glucose),
7e3329d2 50 new Play (glucose),
51 new Pong (glucose),
52 new Worms(glucose),
4c006f7b 53
0b1785e3 54 // Alex G
8cedfe61
AG
55 new SineSphere(glucose),
56// new CubeCurl(glucose),
57
4c006f7b
MS
58 // Shaheen
59 new HelixPattern(glucose).setEligible(false),
60
61 // Toby
a673599f 62 new GlitchPlasma(glucose),
254fbb68 63 new FireEffect(glucose).setEligible(false),
b4aaf4e4 64 new StripBounce(glucose),
254fbb68
MS
65 new SoundRain(glucose).setEligible(false),
66 new SoundSpikes(glucose).setEligible(false),
821ceae9 67 new FaceSync(glucose),
b6641090
MS
68
69 // Jack
70 new Swim(glucose),
8185ec8f 71 new Balance(glucose),
b6641090 72
8185ec8f 73 // Tim
b6641090
MS
74 new TimPlanes(glucose),
75 new TimPinwheels(glucose),
76 new TimRaindrops(glucose),
77 new TimCubes(glucose),
78 // new TimTrace(glucose),
79 new TimSpheres(glucose),
80
81 // Ben
51227786 82 // new Sandbox(glucose),
467c8c60 83 new TowerParams(glucose),
b6641090
MS
84 new DriveableCrossSections(glucose),
85 new GranimTestPattern2(glucose),
51227786
MS
86
87 //JR
a7c8d80a 88 new Gimbal(glucose),
51227786 89
b6641090
MS
90 // Sam
91 new JazzRainbow(glucose),
80785186 92
0208d845
AB
93 // Arjun
94 new TelevisionStatic(glucose),
95 new AbstractPainting(glucose),
96 new Spirality(glucose),
a7c8d80a 97
254d34c0 98 // Basic test patterns for reference, not art
bfff6bc2 99 new TestCubePattern(glucose),
186bc4d3 100 new TestTowerPattern(glucose),
0ba6ac44 101 new TestProjectionPattern(glucose),
254fbb68 102 new TestStripPattern(glucose),
1d75c8a9
MS
103 new TestBassMapping(glucose),
104 new TestFloorMapping(glucose),
105 new TestSpeakerMapping(glucose),
19d16a16 106 new TestPerformancePattern(glucose),
186bc4d3
MS
107 // new TestHuePattern(glucose),
108 // new TestXPattern(glucose),
109 // new TestYPattern(glucose),
110 // new TestZPattern(glucose),
f3f5a876 111
49815cc0
MS
112 };
113}
114
115LXTransition[] transitions(GLucose glucose) {
116 return new LXTransition[] {
3f8be614 117 new DissolveTransition(lx),
32986078 118 new AddTransition(glucose),
fe30b226 119 new MultiplyTransition(glucose),
fe30b226 120 new OverlayTransition(glucose),
32986078 121 new DodgeTransition(glucose),
49815cc0 122 new SwipeTransition(glucose),
3f8be614 123 new FadeTransition(lx),
32986078 124// new SubtractTransition(glucose), // similar to multiply - dh
125// new BurnTransition(glucose), // similar to multiply - dh
126// new ScreenTransition(glucose), // same as add -dh
127// new SoftLightTransition(glucose), // same as overlay -dh
49815cc0
MS
128 };
129}
130
75e1ddde 131// Handles to globally triggerable effects
e5308763 132BoomEffect EFF_boom;
3661fcee 133FlashEffect EFF_flash;
e5308763 134ColorFuckerEffect EFF_colorFucker;
135BlurEffect EFF_blur;
136QuantizeEffect EFF_quantize;
75e1ddde 137
49815cc0
MS
138LXEffect[] effects(GLucose glucose) {
139 return new LXEffect[] {
e5308763 140 EFF_flash = new FlashEffect(lx),
141 EFF_boom = new BoomEffect(glucose),
142 (EFF_blur = new BlurEffect(glucose)).enable(),
143 (EFF_quantize = new QuantizeEffect(glucose)).enable(),
144 (EFF_colorFucker = new ColorFuckerEffect(glucose)).enable(),
49815cc0
MS
145 };
146}