From e73ef85d13e1f4787bbf2705d294791d268d95b1 Mon Sep 17 00:00:00 2001 From: Mark Slee Date: Tue, 11 Jun 2013 19:18:44 -0700 Subject: [PATCH] Add mappings for panda board UI and PandaDriver class --- _Internals.pde | 26 +++++++- _Mappings.pde | 157 +++++++++++++++++++++++++++++++++++++++++++++++ _Overlay.pde | 2 + _PandaDriver.pde | 128 ++++++++++++++++++++++++++++++++++++++ code/GLucose.jar | Bin 14492 -> 14626 bytes code/oscP5.jar | Bin 0 -> 52005 bytes 6 files changed, 312 insertions(+), 1 deletion(-) create mode 100644 _PandaDriver.pde create mode 100644 code/oscP5.jar diff --git a/_Internals.pde b/_Internals.pde index a103f13..30e410d 100644 --- a/_Internals.pde +++ b/_Internals.pde @@ -29,7 +29,6 @@ import heronarts.lx.transition.*; import ddf.minim.*; import ddf.minim.analysis.*; import processing.opengl.*; -import java.lang.reflect.*; import rwmidi.*; final int VIEWPORT_WIDTH = 900; @@ -43,6 +42,11 @@ LXPattern[] patterns; LXTransition[] transitions; LXEffect[] effects; OverlayUI ui; +OscP5 osc; +PandaDriver pandaFront; +PandaDriver pandaRear; + +boolean pandaBoardsEnabled = false; void setup() { startMillis = lastMillis = millis(); @@ -66,6 +70,14 @@ void setup() { logTime("Built effects"); transitions = transitions(glucose); logTime("Built transitions"); + + // Build output driver + int[][] frontChannels = glucose.mapping.buildFrontChannelList(); + int[][] rearChannels = glucose.mapping.buildRearChannelList(); + int[][] flippedRGB = glucose.mapping.buildFlippedRGBList(); + pandaFront = new PandaDriver(new NetAddress("192.168.1.28", 9001), glucose.model, frontChannels, flippedRGB); + pandaRear = new PandaDriver(new NetAddress("192.168.1.29", 9001), glucose.model, rearChannels, flippedRGB); + logTime("Build PandaDriver"); // Build overlay UI ui = new OverlayUI(); @@ -76,6 +88,7 @@ void setup() { logTime("Setup MIDI devices"); println("Total setup: " + (millis() - startMillis) + "ms"); + println("Hit the 'p' key to toggle Panda Board output"); } void logTime(String evt) { @@ -87,6 +100,13 @@ void logTime(String evt) { void draw() { // The glucose engine deals with the core simulation here, we don't need // to do anything specific. This method just needs to exist. + + // TODO(mcslee): move into GLucose engine + if (pandaBoardsEnabled) { + color[] colors = glucose.getColors(); + pandaFront.send(colors); + pandaRear.send(colors); + } } void drawUI() { @@ -102,6 +122,10 @@ boolean uiOn = true; boolean knobsOn = true; void keyPressed() { switch (key) { + case 'p': + pandaBoardsEnabled = !pandaBoardsEnabled; + println("PandaBoard Output: " + (pandaBoardsEnabled ? "ON" : "OFF")); + break; case 'u': uiOn = !uiOn; break; diff --git a/_Mappings.pde b/_Mappings.pde index 8137050..fd581e5 100644 --- a/_Mappings.pde +++ b/_Mappings.pde @@ -97,5 +97,162 @@ class SCMapping implements GLucose.Mapping { cubes[78] = new Cube(20, 140, 80, 0, 0, 0, false, 0, 3); return cubes; } + + public int[][] buildFrontChannelList() { + return new int[][] { + { + 1, 57, 56, 55, 0 // Pandaboard A, structural channel 1 + } + , + { + 30, 31, 32, 17, 3 // Pandaboard B, structural channel 2 + } + , + { + 20, 21, 15, 19, 0 // Pandaboard C, structural channel 3 + } + , + { + 69, 75, 74, 76, 73 // Pandaboard D, structural channel 4 + } + , + { + 16, 2, 5, 0, 0 // Pandaboard E, structural channel 5 + } + , + { + 48, 47, 37, 29, 0 // Pandaboard F, structural channel 6 (is there a 5th?) + } + , + { + 68, 63, 62, 78, 45 // Pandaboard G, structural channel 7, left top front side + } + , + { + 18, 6, 7, 0, 0 // Pandaboard H, structural channel 8 + } + }; + } + + public int[][] buildRearChannelList() { + return new int[][] { + { + 22, 8, 14, 28, 0 // Pandaboard A, structural channel 9 + } + , + { + 36, 34, 40, 52, 66 // Pandaboard B, structural channel 10 + } + , + { + 65, 61, 60, 54, 51 // Pandaboard C, structural channel 11 + } + , + { + 35, 25, 11, 10, 24 // Pandaboard D, structural channel 12 + } + , + { + 23, 9, 13, 27, 12 // Pandaboard E, structural channel 13, missing taillight? + } + , + { + 64, 75, 72, 49, 50 // Pandaboard F, structural channel 14, right top backside + } + , + { + 77, 39, 46, 33, 26 // Pandaboard G, structural channel 15 + } + , + { + 44, 53, 42, 43, 41 // Pandaboard H, structural channel 16, last cube busted? + } + }; + } + + public int[][] buildFlippedRGBList() { + // syntax is {cube #, strip #, strip #, . . . } + return new int[][] { + { + 22, 4, 8 + } + , + { + 50, 1, 3 + } + , + { + 7, 1, 2, 11 + } + , + { + 49, 1 + } + , + { + 39, 1 + } + , + { + 41, 1 + } + , + { + 26, 3, 5 + } + , + { + 64, 1 + } + , + { + 32, 2 + } + , + { + 20, 6, 7 + } + , + { + 19, 1, 2 + } + , + { + 15, 6, 8 + } + , + { + 29, 3, 10 + } + , + { + 68, 4, 9 + } + , + { + 18, 12 + } + , + { + 6, 2, 4 + } + , + { + 78, 11 + } + , + { + 56, 2 + } + , + { + 57, 3 + } + , + { + 74, 6, 7 + } + }; + } } diff --git a/_Overlay.pde b/_Overlay.pde index c08e185..acf8505 100644 --- a/_Overlay.pde +++ b/_Overlay.pde @@ -1,3 +1,5 @@ +import java.lang.reflect.*; + /** * DOUBLE BLACK DIAMOND DOUBLE BLACK DIAMOND * diff --git a/_PandaDriver.pde b/_PandaDriver.pde new file mode 100644 index 0000000..7fd45c0 --- /dev/null +++ b/_PandaDriver.pde @@ -0,0 +1,128 @@ +import netP5.*; +import oscP5.*; + +/** + * DOUBLE BLACK DIAMOND DOUBLE BLACK DIAMOND + * + * //\\ //\\ //\\ //\\ + * ///\\\ ///\\\ ///\\\ ///\\\ + * \\\/// \\\/// \\\/// \\\/// + * \\// \\// \\// \\// + * + * EXPERTS ONLY!! EXPERTS ONLY!! + * + * This class implements the output function to the Panda Boards. It + * will be moved into GLucose once stabilized. + */ +public class PandaDriver { + + // Address to send to + private final NetAddress address; + + // OSC message + private final OscMessage message; + + // List of point indices on the board + private final List points; + + // Bit for flipped status of each point index + private final boolean[] flipped; + + // Packet data + private final byte[] packet = new byte[4*352]; // TODO: de-magic-number + + public PandaDriver(NetAddress address, Model model, int[][] channelList, int[][] flippedList) { + this.address = address; + message = new OscMessage("/shady/pointbuffer"); + points = buildMappedList(model, channelList); + flipped = buildFlippedList(model, flippedList); + } + + private ArrayList buildMappedList(Model model, int[][] channelList) { + ArrayList points = new ArrayList(); + for (int[] channel : channelList) { + for (int cubeNumber : channel) { + if (cubeNumber == 0) { + for (int i = 0; i < (Cube.CLIPS_PER_CUBE*Clip.STRIPS_PER_CLIP*Strip.POINTS_PER_STRIP); ++i) { + points.add(0); + } + } else { + Cube cube = model.getCubeByRawIndex(cubeNumber); + if (cube == null) { + throw new RuntimeException("Non-zero, non-existing cube specified in channel mapping (" + cubeNumber + ")"); + } + for (Point p : cube.points) { + points.add(p.index); + } + } + } + } + return points; + } + + private boolean[] buildFlippedList(Model model, int[][] flippedRGBList) { + boolean[] flipped = new boolean[model.points.size()]; + for (int i = 0; i < flipped.length; ++i) { + flipped[i] = false; + } + for (int[] cubeInfo : flippedRGBList) { + int cubeNumber = cubeInfo[0]; + Cube cube = model.getCubeByRawIndex(cubeNumber); + if (cube == null) { + throw new RuntimeException("Non-existing cube specified in flipped RGB mapping (" + cubeNumber + ")"); + } else { + for (int i = 1; i < cubeInfo.length; ++i) { + int stripIndex = cubeInfo[i]; + for (Point p : cube.strips.get(stripIndex-1).points) { + flipped[p.index] = true; + } + } + } + } + return flipped; + } + + public final void send(int[] colors) { + int len = 0; + int packetNum = 0; + for (int index : points) { + int c = colors[index]; + byte r = (byte) ((c >> 16) & 0xFF); + byte g = (byte) ((c >> 8) & 0xFF); + byte b = (byte) ((c) & 0xFF); + if (flipped[index]) { + byte tmp = r; + r = g; + g = tmp; + } + packet[len++] = 0; + packet[len++] = r; + packet[len++] = g; + packet[len++] = b; + + // Flush once packet is full buffer size + if (len >= packet.length) { + sendPacket(packetNum++, len); + len = 0; + } + } + + // Flush any remaining data + if (len > 0) { + sendPacket(packetNum++, len); + } + } + + private void sendPacket(int packetNum, int len) { + message.clearArguments(); + message.add(packetNum); + message.add(len); + message.add(packet); + try { + OscP5.flush(message, address); + } catch (Exception x) { + x.printStackTrace(); + } + } +} + diff --git a/code/GLucose.jar b/code/GLucose.jar index 321f2a024daf58afa90f76d126ba1faf02ae471b..7b7d1bd6667c008405c35d539f21ce015d17b723 100644 GIT binary patch delta 4827 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