Class GesturePlayground_back
- All Implemented Interfaces:
processing.core.PConstants
DONE for granular brushes, construct ADSR, don't read from GUI
GesturePlayground<?b> uses a GUI to provide a tour of the usage and properties of the AudioBrush
subclasses GranularBrush and SamplerBrush and the GestureSchedule class.
An AudioBrush combines a PACurveMaker and a GestureGranularConfig.Builder. PACurveMaker
models gestures, one of the core concepts of PixelAudio. In its simplest encoded form, the PAGesture interface,
a gesture consists of an array of points and an array of times. The times array and the points array must be the same size, because
the times array records the times when something as-yet-unspecified will happen at the corresponding point in the
points array. In my demos for PixelAudio, what happens at a point is typically an audio event and an animation event.
The sound happens at the point because points in PixelAudio map onto locations in the sound buffer. Mapping of bitmap locations
onto audio buffer indices is another core concept of PixelAudio. Gestures over the 2D space of an image become
paths through audio buffers. The audio buffer is traversed either by a granular synthesis engine or by a sampling synthesizer.
For the granular synth, a gesture corresponds to a non-linear traversal of an audio buffer, potentially as a continuous sequence
of overlapping grains with a single envelope. The sampling synthesizer treats each point as a discrete event with its own
envelope. Depending on how gestures and schedules are structured, the two synthesizers can sound very similar, but there
are possibilities in each that the other cannot realize. As you might expect, GranularBrush implements granular synth
events and SamplerBrush implements sampler synth events. Bother rely on PACUrveMaker which, in addition to capturing
the raw gesture of drawing a line, provides methods to reduce points / times and create Bezier paths. PACurveMaker
data can also be modified by changing duration, interpolating samples, or non-linear time warping. PAGestureParametric
provides a basic structure for implementing these modifications. GesturePlayground uses GestureScheduleBuilder to
interpolate and warp time and point lists, with basically the same math.
The parameters for gesture modeling, granular and sampling synthesis, time and sample interpolation, and audio events are
modeled in the GUI, which uses GestureGranularConfig.Builder gConfig to track its current state. A GestureGranularConfig
instance is associated with each AudioBrush. When you click on an AudioBrush and activate it, its configuration data is
loaded to the GUI and you can edit it. It will be saved to the brush when you select another brush or change the edit mode. When
a brush is activated with a click, the schedule is built from its PACurveMaker and estureGranularConfig.Builder
instance variables:
GestureSchedule schedule = scheduleBuilder.build(gb.curve(), cfg.build(), audioOut.sampleRate());
Part of the calling chain for a GranularBrush:
mouseClicked() calls scheduleGranularBrushClick(gb, x, y);.
In scheduleGranularBrushClick(...) we use gb.snapshot() to build a GestureSchedule Our schedule is loaded outside
a loop by calling audioSched.schedulePoint(startSample, new GranularBrushHappening(x0, y0, gb, schedule, snap)).
We use a loop to schedule animation, dot appearing at the scheduled event points at the right event times.
Each GranularBrushHappening in audioSched will be handled in the AudioListener.processAudioBlock(...) method:
else (h instanceof GranularBrushHappening gbh) {playGranularBrush(gbh.brush, gbh.schedule, gbh.snap, granularMapping);
Part of the calling chain for a SamplerBrush:
mouseClicked() calls scheduleSamplerBrushClick(sb, x, y).
In scheduleSamplerBrushClick() we use sb.snapshot() to build a GestureSchedule and loop through the schedule,
calling audioSched.schedulePoint(startSample + dt, new SamplerPointHappening(x, y, samplePos, len, pan));.
The SamplerPointHappening in audioSched will be handled in the AudioListener.processAudioBlock(...) method:
else if (h instanceof SamplerPointHappening sph) { playSample(sph.samplePos, sph.len, synthGain, samplerEnv, sph.pan); }
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static final class(package private) static classSimple container for a brush hit-test result.(package private) static final class(package private) static final class(package private) final class(package private) static interfaceBarebones interface for "something that happens at a certain point": in AudioScheduler the time-when-something-happens gets connected to the-room-where-it-happens and the entire cast of Hamilton steps in, if you let them.(package private) static enum(package private) static final class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate AudioBrushprivate final ArrayList<GesturePlayground_back.ActiveDot>(package private) GranularBrush(package private) int(package private) SamplerBrush(package private) int(package private) String[](package private) g4p_controls.GOptionArrayList<processing.core.PVector>(package private) int(package private) int(package private) g4p_controls.GOption(package private) floatprivate final AtomicLong(package private) File(package private) int(package private) String(package private) String(package private) String(package private) intprivate final AtomicLong(package private) ddf.minim.AudioOutput(package private) AudioScheduler<GesturePlayground_back.Happening>(package private) float[](package private) processing.core.PImage(package private) int(package private) int(package private) int(package private) PixelAudioMapper.ChannelNames(package private) int(package private) int[](package private) g4p_controls.GTextArea(package private) g4p_controls.GPanel(package private) g4p_controls.GWindow(package private) Stringprocessing.core.PVector(package private) static final int(package private) static final int(package private) static final int(package private) g4p_controls.GOption(package private) g4p_controls.GLabel(package private) g4p_controls.GSliderint(package private) g4p_controls.GOption(package private) String(package private) String(package private) float(package private) final GestureGranularConfig.Builder(package private) float(package private) final GestureGranularConfig.Builder(package private) int(package private) int(package private) int(package private) booleanprivate intprivate final ConcurrentLinkedQueue<GesturePlayground_back.ActiveDot>private intintfloat(package private) g4p_controls.GTextField(package private) g4p_controls.GLabel(package private) g4p_controls.GSlider(package private) g4p_controls.GLabel(package private) g4p_controls.GDropList(package private) booleanfloat(package private) g4p_controls.GLabel(package private) int(package private) g4p_controls.GOption(package private) float(package private) g4p_controls.GOption(package private) g4p_controls.GLabel(package private) g4p_controls.GSlider(package private) GestureGranularConfig.Builder(package private) int(package private) int(package private) g4p_controls.GOptionint(package private) GestureGranularParams(package private) GestureGranularParams(package private) int(package private) g4p_controls.GTextField(package private) g4p_controls.GLabel(package private) g4p_controls.GSlider(package private) ArrayList<TimedLocation>intint(package private) intfloat[](package private) ArrayList<GranularBrush>(package private) ADSRParamsfloat(package private) GestureGranularRenderer.DefaultMappingfloat(package private) boolean(package private) float(package private) g4p_controls.GTextField(package private) g4p_controls.GLabel(package private) g4p_controls.GSlider(package private) g4p_controls.GToggleGroup(package private) g4p_controls.GLabel(package private) int(package private) floatprivate AudioBrushAudioBrush wraps a PACurveMaker (gesture) and a GestureGranularConfig.Builder (granular synthesis parameters)(package private) int(package private) intprivate int(package private) File(package private) int(package private) String(package private) String(package private) String(package private) int(package private) boolean(package private) boolean(package private) booleanboolean(package private) boolean(package private) boolean(package private) boolean(package private) boolean(package private) boolean(package private) boolean(package private) boolean(package private) g4p_controls.GOption(package private) int(package private) int(package private) float(package private) processing.core.PImage(package private) PixelAudioMapper(package private) int(package private) float(package private) int(package private) ddf.minim.MinimMinim audio library(package private) GesturePlayground_back.Mode(package private) MultiGen(package private) int(package private) boolean(package private) int(package private) float(package private) g4p_controls.GToggleGroup(package private) g4p_controls.GLabel(package private) g4p_controls.GLabel(package private) float(package private) g4p_controls.GTextField(package private) PixelAudio(package private) ddf.minim.MultiChannelBuffer(package private) boolean(package private) ArrayList<TimedLocation>int(package private) PASamplerInstrumentPool(package private) g4p_controls.GSlider(package private) g4p_controls.GOption(package private) int(package private) int(package private) float(package private) g4p_controls.GTextField(package private) g4p_controls.GLabel(package private) g4p_controls.GSlider(package private) int(package private) int(package private) float(package private) ArrayList<SamplerBrush>(package private) ADSRParams(package private) ArrayList<TimedLocation>(package private) GestureScheduleBuilder(package private) int(package private) int(package private) int(package private) int(package private) int(package private) g4p_controls.GOptionint(package private) int(package private) float(package private) PASamplerInstrument(package private) float(package private) float(package private) g4p_controls.GLabel(package private) int(package private) boolean(package private) boolean(package private) boolean(package private) int(package private) com.hamoid.VideoExport(package private) g4p_controls.GToggleGroup(package private) g4p_controls.GLabel(package private) g4p_controls.GSliderFields inherited from class processing.core.PApplet
args, ARGS_BGCOLOR, ARGS_DISABLE_AWT, ARGS_DISPLAY, ARGS_EDITOR_LOCATION, ARGS_EXTERNAL, ARGS_FULL_SCREEN, ARGS_HIDE_STOP, ARGS_LOCATION, ARGS_PRESENT, ARGS_SKETCH_FOLDER, ARGS_STOP_COLOR, ARGS_UI_SCALE, ARGS_WINDOW_COLOR, DEFAULT_HEIGHT, DEFAULT_WIDTH, disableAWT, displayHeight, displayWidth, dmouseX, dmouseY, emouseX, emouseY, exitCalled, EXTERNAL_MOVE, EXTERNAL_STOP, finished, firstMouse, focused, frameCount, frameRate, frameRateLastNanos, g, height, insideDraw, javaPlatform, javaVersion, javaVersionName, key, keyCode, keyEvent, keyPressed, keyRepeatEnabled, looping, matchPatterns, mouseButton, mouseEvent, mousePressed, mouseX, mouseY, pixelDensity, pixelHeight, pixels, pixelWidth, platform, pmouseX, pmouseY, ratioLeft, ratioScale, ratioTop, recorder, redraw, rheight, rmouseX, rmouseY, rwidth, surface, useNativeSelect, width, windowX, windowYFields inherited from interface processing.core.PConstants
ADD, ALPHA, ALT, AMBIENT, ARC, ARGB, ARROW, BACKSPACE, BASELINE, BEVEL, BEZIER_VERTEX, BLEND, BLUR, BOTTOM, BOX, BREAK, BURN, CENTER, CHATTER, CHORD, CLAMP, CLOSE, CODED, COMPLAINT, CONTROL, CORNER, CORNERS, CROSS, CURVE_VERTEX, CUSTOM, DARKEST, DEG_TO_RAD, DELETE, DIAMETER, DIFFERENCE, DILATE, DIRECTIONAL, DISABLE_ASYNC_SAVEFRAME, DISABLE_BUFFER_READING, DISABLE_DEPTH_MASK, DISABLE_DEPTH_SORT, DISABLE_DEPTH_TEST, DISABLE_KEY_REPEAT, DISABLE_NATIVE_FONTS, DISABLE_OPENGL_ERRORS, DISABLE_OPTIMIZED_STROKE, DISABLE_STROKE_PERSPECTIVE, DISABLE_STROKE_PURE, DISABLE_TEXTURE_MIPMAPS, DODGE, DOWN, DXF, ELLIPSE, ENABLE_ASYNC_SAVEFRAME, ENABLE_BUFFER_READING, ENABLE_DEPTH_MASK, ENABLE_DEPTH_SORT, ENABLE_DEPTH_TEST, ENABLE_KEY_REPEAT, ENABLE_NATIVE_FONTS, ENABLE_OPENGL_ERRORS, ENABLE_OPTIMIZED_STROKE, ENABLE_STROKE_PERSPECTIVE, ENABLE_STROKE_PURE, ENABLE_TEXTURE_MIPMAPS, ENTER, EPSILON, ERODE, ESC, EXCLUSION, FX2D, GIF, GRAY, GROUP, HALF_PI, HAND, HARD_LIGHT, HINT_COUNT, HSB, IMAGE, INVERT, JAVA2D, JPEG, LANDSCAPE, LEFT, LIGHTEST, LINE, LINE_LOOP, LINE_STRIP, LINES, LINUX, MACOS, MACOSX, MAX_FLOAT, MAX_INT, MIN_FLOAT, MIN_INT, MITER, MODEL, MODELVIEW, MOVE, MULTIPLY, NORMAL, OPAQUE, OPEN, OPENGL, ORTHOGRAPHIC, OTHER, OVERLAY, P2D, P3D, PATH, PDF, PERSPECTIVE, PI, PIE, platformNames, POINT, POINTS, POLYGON, PORTRAIT, POSTERIZE, PROBLEM, PROJECT, PROJECTION, QUAD, QUAD_BEZIER_VERTEX, QUAD_STRIP, QUADRATIC_VERTEX, QUADS, QUARTER_PI, RAD_TO_DEG, RADIUS, RECT, REPEAT, REPLACE, RETURN, RGB, RIGHT, ROUND, SCREEN, SHAPE, SHIFT, SOFT_LIGHT, SPAN, SPHERE, SPOT, SQUARE, SUBTRACT, SVG, TAB, TARGA, TAU, TEXT, THIRD_PI, THRESHOLD, TIFF, TOP, TRIANGLE, TRIANGLE_FAN, TRIANGLE_STRIP, TRIANGLES, TWO_PI, UP, VERTEX, WAIT, WHITESPACE, WINDOWS, X, Y, Z -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidaddPoint(int x, int y) While user is dragging the mouse and mode == Mode.DRAW_EDIT_GRANULAR or DRAW_EDIT_SAMPLER, accumulates new points to allPoints and event times to allTimes.voidallOption_clicked(g4p_controls.GOption source, g4p_controls.GEvent event) int[]applyColor(int[] colorSource, int[] graySource, int[] lut) Utility method for applying hue and saturation values from a source array of RGB values to the brightness values in a target array of RGB values, using a lookup table to redirect indexing.voidapplies the Hue and Saturation of pixel values in the colors[] array to mapImage and baseImageint[]applyColorShifted(int[] colorSource, int[] graySource, int[] lut, int shift) voidarcLengthTimeOption_clicked(g4p_controls.GOption source, g4p_controls.GEvent event) buildGranSettings(int len, int hop, GranularSettings.WindowPreset win) buildGranSynth(ddf.minim.AudioOutput out, ADSRParams env, int numVoices) buildPathGranSource(float[] buf, GranularPath camino, GranularSettings settings) intcalcGranularOptHints(String tag, int N, float Tms, int hopSamples, int grainLenSamples, float sr, List<processing.core.PVector> scheduledPoints, float targetSpacingPx, float wt, float ws, StringBuffer sb) intintcalcSampleLen(int dur, float mean, float variance) calculateEnvelope(float gainDb, float totalMs) calculateEnvelope(float gainDb, int totalSamples, float sampleRate) voidWrapper method for Processing's selectInput command(package private) static intclampInt(int v, int lo, int hi) intclipToHeight(int y) intclipToWidth(int x) voidvoidcommitNewBaseImage(processing.core.PImage img) voidcontrolPanel_hit(g4p_controls.GPanel source, g4p_controls.GEvent event) voidvoidvoidvoidvoidvoidcurveOption_clicked(g4p_controls.GOption source, g4p_controls.GEvent event) voidcurvePointsSlider_changed(g4p_controls.GSlider source, g4p_controls.GEvent event) voidcustomWarpOption_clicked(g4p_controls.GOption source, g4p_controls.GEvent event) (package private) static voiddebugIndexHeadroom(float[] buf, int[] startIndices, GestureGranularParams ggp) (package private) static voidvoiddraw()(package private) voidvoiddrawBrushes(List<? extends AudioBrush> brushes, int readyColor, int hoverColor, int selectedColor) voidIterates over brushShapesList and draws the brushstrokes stored in each PACurveMaker in the list.voiddrawCircle(int x, int y) Draws a circle at the location of an audio trigger (mouseDown event).voiddurationSlider_changed(g4p_controls.GSlider source, g4p_controls.GEvent event) (package private) void(package private) voidvoidenvelopeMenu_clicked(g4p_controls.GDropList source, g4p_controls.GEvent event) (package private) static ADSRParamsvoidexpWarpOption_clicked(g4p_controls.GOption source, g4p_controls.GEvent event) voidfileSelected(File selectedFile) callback method for chooseFile(), handles standard audio and image formats for Processing.(package private) GesturePlayground_back.BrushHitvoidfixedOption_clicked(g4p_controls.GOption source, g4p_controls.GEvent event) (package private) static Stringfmt(float v, int decimals) voidgainSlider_changed(g4p_controls.GSlider source, g4p_controls.GEvent event) (package private) float[]generateJitterPitch(int length, float deviationPitch) voidgestureOption_clicked(g4p_controls.GOption source, g4p_controls.GEvent event) int[]getColors(int size) Generates an array of rainbow colors using the HSB color space.processing.core.PVectorgetCoordFromSignalPos(int pos) (package private) ArrayList<processing.core.PVector>intgetSamplePos(int x, int y) Calculates the index of the image pixel within the signal path, taking the shifting of pixels and audioSignal into account.voidgrainLengthField_changed(g4p_controls.GTextField source, g4p_controls.GEvent event) voidgrainLengthSlider_changed(g4p_controls.GSlider source, g4p_controls.GEvent event) voidhandleClickOutsideBrush(int x, int y) Respond to mousePressed events, usually by triggering an eventvoidHandles user's drawing actions, draws previously recorded brushstrokes, tracks and generates animation and audio events.voidhopLengthField_changed(g4p_controls.GTextField source, g4p_controls.GEvent event) voidhopLengthSlider_changed(g4p_controls.GSlider source, g4p_controls.GEvent event) voidInitializes allPoints and adds the current mouse location to it.voidCALL THIS METHOD IN SETUP() Initializes Minim audio library and audio variables.voidInitializes a PACurveMaker instance with allPoints as an argument to the factory method PACurveMaker.buildCurveMaker() and then fills in PACurveMaker instance variables.voidInitializes drawing and drawing interaction variables.voidvoidinitGUI()voidInitializes mapImage with the colors array.voidSets up sample-accurate AudioListener called from the Minim audio processing loop.voidinitialize lists of TimedLocation objects, used for animated response to mouse clicks(package private) boolean(package private) boolean(package private) booleanisOverAnyBrush(int x, int y) processing.core.PVectorjitterCoord(int x, int y, int deviationPx) voidbuilt-in keyPressed handler, forwards events to parseKey.voidlinearWarpOption_clicked(g4p_controls.GOption source, g4p_controls.GEvent event) voidloadAudioFile(File audFile) Attempts to load audio data from a selected file into playBuffer, then calls writeAudioToImage() to transcode audio data and write it to mapImage.loadGestureSchedule(PACurveMaker brush, GestureGranularConfig snap) static voidvoidvoidbooleanmouseInPoly(ArrayList<processing.core.PVector> poly) voidThe built-in mousePressed handler for Processing, but note that it forwards mouse coords to handleMousePressed().void(package private) voidoldScheduleGranularBrushClick(GranularBrush gb, int x, int y) voidparseKey(char key, int keyCode) voidpitchShiftText_changed(g4p_controls.GTextField source, g4p_controls.GEvent event) voidplayGranular(float[] buf, GranularPath camino, GranularSettings settings, boolean isBuildADSR) (package private) voidplayGranularBrush(GranularBrush gb, GestureSchedule schedule, GestureGranularConfig snap, GestureGranularRenderer.DefaultMapping granularMapping) voidplayGranularGesture(float[] buf, GestureSchedule sched, GestureGranularParams params) intplaySample(int samplePos, int samplelen, float amplitude, float pan) Plays an audio sample with default envelope and stereo pan.intplaySample(int samplePos, int samplelen, float amplitude, ADSRParams env, float pan) Plays an audio sample with a custom envelope and stereo pan.intplaySample(int samplePos, int samplelen, float amplitude, ADSRParams env, float pitch, float pan) Plays an audio sample with with a custom envelope, pitch and stereo pan.booleanpointInPoly(ArrayList<processing.core.PVector> poly, int x, int y) voidpreloadFiles(String path, String fileName) void(package private) voidprintGOptHints(float alpha) static intquantizeToStep(int value, int step) Quantize an integer to the nearest multiple of step.voidrdpEpsilonSlider_changed(g4p_controls.GSlider source, g4p_controls.GEvent event) voidrdpOption_clicked(g4p_controls.GOption source, g4p_controls.GEvent event) (package private) voidvoidRemoves the current active PACurveMaker instance, flagged by a highlighted brush stroke, from brushShapesList, if there is one.voidRemoves the newest PACurveMaker instance, shown as a brush stroke in the display, from brushShapesList.voidRemoves the oldest brush in brushShapesList.voidresampleSlider_changed(g4p_controls.GSlider source, g4p_controls.GEvent event) voidreset(boolean isClearCurves) Reinitializes audio and clears event lists.(package private) void(package private) voidvoidTracks and runs TimedLocation events in the grainLocsArray list, which is associated with granular synthesis gestures.(package private) voidrunGranularPointEvent(int x, int y) voidTracks and runs TimedLocation events in the timeLocsArray list, which is associated with mouse clicks that trigger audio a the click point.void(package private) voidrunSamplerPointEvent(int x, int y) (package private) voidscheduleGranularBrushClick(GranularBrush gb, int clickX, int clickY) (package private) voidscheduleSamplerBrushClick(SamplerBrush sb, int clickX, int clickY) (package private) voidsetActiveBrush(AudioBrush brush) (package private) voidsetActiveBrush(AudioBrush brush, int idx) voidsetAudioGain(float g) Sets audioOut.gain.(package private) void(package private) voidsetMode(GesturePlayground_back.Mode newMode) voidsettings()voidsetup()voidshowHelp()to generate help output, run RegEx search/replace on parseKey case lines with: // case ('.'): // (.+) // println(" * Press $1 to $2.");voidsquareRootOption_clicked(g4p_controls.GOption source, g4p_controls.GEvent event) voidstop()turn off audio processing when we exitvoidstoreGranularCurveTL(GestureSchedule sched, int startTime, boolean isGesture) voidstoreSamplerCurveTL(GestureSchedule sched, int startTime) (package private) void(package private) voidtriggerClickHappening(GesturePlayground_back.ClickHappening h, int offsetInBlock) (package private) voidupdateAudioChain(float[] sig) (package private) voidvoidwarpSlider_changed(g4p_controls.GSlider source, g4p_controls.GEvent event) voidwinDraw(processing.core.PApplet appc, g4p_controls.GWinData data) voidwinKey(processing.core.PApplet appc, g4p_controls.GWinData data, processing.event.KeyEvent evt) voidwriteAudioToImage(float[] sig, PixelAudioMapper mapper, processing.core.PImage img, PixelAudioMapper.ChannelNames chan) Transcodes audio data in sig[] and writes it to color channel chan of mapImage using the lookup tables in mapper to redirect indexing.voidwriteToScreen(String msg, int x, int y, int weight, boolean isWhite) Displays a line of text to the screen, usually in the draw loop.Methods inherited from class processing.core.PApplet
abs, abs, acos, alpha, ambient, ambient, ambient, ambientLight, ambientLight, append, append, append, append, append, append, applyMatrix, applyMatrix, applyMatrix, applyMatrix, applyMatrix, arc, arc, arraycopy, arraycopy, arraycopy, arrayCopy, arrayCopy, arrayCopy, asin, atan, atan2, attrib, attrib, attrib, attribColor, attribNormal, attribPosition, background, background, background, background, background, background, background, beginCamera, beginContour, beginPGL, beginRaw, beginRaw, beginRecord, beginRecord, beginShape, beginShape, bezier, bezier, bezierDetail, bezierPoint, bezierTangent, bezierVertex, bezierVertex, binary, binary, binary, binary, blend, blend, blendColor, blendMode, blue, box, box, brightness, calcSketchPath, camera, camera, ceil, checkAlpha, checkExtension, choice, choice, circle, clear, clip, color, color, color, color, color, color, color, color, colorMode, colorMode, colorMode, colorMode, concat, concat, concat, concat, concat, concat, concat, constrain, constrain, copy, copy, copy, cos, createFont, createFont, createFont, createGraphics, createGraphics, createGraphics, createImage, createInput, createInput, createInputRaw, createOutput, createOutput, createPath, createPath, createPrimaryGraphics, createReader, createReader, createReader, createShape, createShape, createShape, createWriter, createWriter, createWriter, cursor, cursor, cursor, cursor, curve, curve, curveDetail, curvePoint, curveTangent, curveTightness, curveVertex, curveVertex, dataFile, dataPath, day, debug, degrees, delay, dequeueEvents, desktopFile, desktopPath, die, die, directionalLight, displayDensity, displayDensity, dispose, dist, dist, edge, ellipse, ellipseMode, emissive, emissive, emissive, endCamera, endContour, endPGL, endRaw, endRecord, endShape, endShape, exec, exec, exit, exitActual, exitCalled, exp, expand, expand, expand, expand, expand, expand, expand, expand, expand, expand, expand, expand, expand, expand, expand, expand, expand, expand, fill, fill, fill, fill, fill, fill, filter, filter, filter, floor, flush, focusGained, focusLost, frameMoved, frameRate, frustum, fullScreen, fullScreen, fullScreen, fullScreen, get, get, get, getExtension, getGraphics, getMatrix, getMatrix, getMatrix, getSurface, green, handleDraw, handleKeyEvent, handleMethods, handleMouseEvent, hex, hex, hex, hex, hideMenuBar, hint, hour, hue, image, image, image, imageMode, initSurface, insertFrame, isLooping, join, join, keyPressed, keyReleased, keyReleased, keyTyped, keyTyped, launch, lerp, lerpColor, lerpColor, lightFalloff, lights, lightSpecular, line, line, link, listFiles, listFiles, listPaths, loadBytes, loadBytes, loadBytes, loadFont, loadImage, loadImage, loadJSONArray, loadJSONArray, loadJSONObject, loadJSONObject, loadPixels, loadShader, loadShader, loadShape, loadShape, loadStrings, loadStrings, loadStrings, loadStrings, loadTable, loadTable, loadXML, loadXML, log, loop, mag, mag, main, main, main, makeGraphics, map, mask, match, matchAll, max, max, max, max, max, max, method, millis, min, min, min, min, min, min, minute, modelX, modelY, modelZ, month, mouseClicked, mouseDragged, mouseEntered, mouseEntered, mouseExited, mouseExited, mouseMoved, mouseMoved, mousePressed, mouseReleased, mouseWheel, mouseWheel, nf, nf, nf, nf, nf, nf, nfc, nfc, nfc, nfc, nfp, nfp, nfp, nfp, nfs, nfs, nfs, nfs, noClip, noCursor, noFill, noise, noise, noise, noiseDetail, noiseDetail, noiseSeed, noLights, noLoop, norm, normal, noSmooth, noStroke, noTexture, noTint, orientation, ortho, ortho, ortho, parseBoolean, parseBoolean, parseBoolean, parseBoolean, parseByte, parseByte, parseByte, parseByte, parseByte, parseByte, parseByte, parseByte, parseChar, parseChar, parseChar, parseChar, parseFloat, parseFloat, parseFloat, parseFloat, parseFloat, parseFloat, parseFloat, parseInt, parseInt, parseInt, parseInt, parseInt, parseInt, parseInt, parseInt, parseInt, parseInt, parseInt, parseInt, parseJSONArray, parseJSONObject, parseXML, parseXML, pause, perspective, perspective, pixelDensity, point, point, pointLight, pop, popMatrix, popStyle, postEvent, postWindowMoved, postWindowResized, pow, print, print, print, print, print, print, print, print, print, printArray, printCamera, println, println, println, println, println, println, println, println, println, println, println, printMatrix, printProjection, printStackTrace, push, pushMatrix, pushStyle, quad, quadraticVertex, quadraticVertex, radians, random, random, randomGaussian, randomSeed, rect, rect, rect, rectMode, red, redraw, registerMethod, requestImage, requestImage, resetMatrix, resetShader, resetShader, resume, reverse, reverse, reverse, reverse, reverse, reverse, reverse, rotate, rotate, rotateX, rotateY, rotateZ, round, runSketch, runSketch, runSketch, saturation, save, saveBytes, saveBytes, saveBytes, saveFile, saveFrame, saveFrame, saveJSONArray, saveJSONArray, saveJSONObject, saveJSONObject, savePath, saveStream, saveStream, saveStream, saveStream, saveStream, saveStrings, saveStrings, saveStrings, saveTable, saveTable, saveXML, saveXML, scale, scale, scale, screenX, screenX, screenY, screenY, screenZ, second, selectCallback, selectFolder, selectFolder, selectFolder, selectInput, selectInput, selectInput, selectOutput, selectOutput, selectOutput, set, set, setMatrix, setMatrix, setMatrix, setSize, shader, shader, shape, shape, shape, shapeMode, shearX, shearY, shell, shininess, shorten, shorten, shorten, shorten, shorten, shorten, shorten, showDepthWarning, showDepthWarningXYZ, showMethodWarning, showMissingWarning, showSurface, showVariationWarning, sin, size, size, size, sketchDisplay, sketchFile, sketchFullScreen, sketchHeight, sketchOutputPath, sketchOutputStream, sketchPath, sketchPath, sketchPixelDensity, sketchRenderer, sketchSmooth, sketchWidth, sketchWindowColor, smooth, smooth, sort, sort, sort, sort, sort, sort, sort, sort, sort, sort, specular, specular, specular, sphere, sphereDetail, sphereDetail, splice, splice, splice, splice, splice, splice, splice, splice, splice, splice, splice, splice, splice, split, split, splitTokens, splitTokens, spotLight, sq, sqrt, square, start, startSurface, str, str, str, str, str, str, str, str, str, str, stroke, stroke, stroke, stroke, stroke, stroke, strokeCap, strokeJoin, strokeWeight, style, subset, subset, subset, subset, subset, subset, subset, subset, subset, subset, subset, subset, subset, subset, subset, subset, subset, subset, tan, text, text, text, text, text, text, text, text, text, text, text, textAlign, textAlign, textAscent, textDescent, textFont, textFont, textLeading, textMode, textSize, texture, textureMode, textureWrap, textWidth, textWidth, textWidth, thread, tint, tint, tint, tint, tint, tint, translate, translate, triangle, trim, trim, unbinary, unhex, unregisterMethod, updatePixels, updatePixels, urlDecode, urlEncode, vertex, vertex, vertex, vertex, vertex, windowMove, windowMoved, windowRatio, windowResizable, windowResize, windowResized, windowTitle, year
-
Field Details
-
pixelaudio
PixelAudio pixelaudio -
multigen
MultiGen multigen -
genWidth
int genWidth -
genHeight
int genHeight -
mapper
PixelAudioMapper mapper -
mapSize
int mapSize -
baseImage
processing.core.PImage baseImage -
mapImage
processing.core.PImage mapImage -
chan
-
colors
int[] colors -
audioFile
File audioFile -
audioFilePath
String audioFilePath -
audioFileName
String audioFileName -
audioFileTag
String audioFileTag -
audioFileLength
int audioFileLength -
imageFile
File imageFile -
imageFilePath
String imageFilePath -
imageFileName
String imageFileName -
imageFileTag
String imageFileTag -
imageFileWidth
int imageFileWidth -
imageFileHeight
int imageFileHeight -
isLoadToBoth
boolean isLoadToBoth -
daPath
String daPath -
daFilename
String daFilename -
minim
ddf.minim.Minim minimMinim audio library -
audioOut
ddf.minim.AudioOutput audioOut -
isBufferStale
boolean isBufferStale -
sampleRate
float sampleRate -
fileSampleRate
float fileSampleRate -
audioSignal
float[] audioSignal -
playBuffer
ddf.minim.MultiChannelBuffer playBuffer -
samplePos
int samplePos -
audioLength
int audioLength -
samplerEnv
ADSRParams samplerEnv -
granularEnv
ADSRParams granularEnv -
maxAmplitude
float maxAmplitude -
attackTime
float attackTime -
decayTime
float decayTime -
sustainLevel
float sustainLevel -
releaseTime
float releaseTime -
pitchScaling
float pitchScaling -
defaultPitchScaling
float defaultPitchScaling -
lowPitchScaling
float lowPitchScaling -
highPitchScaling
float highPitchScaling -
envIsGranular
boolean envIsGranular -
grainDuration
int grainDuration -
noteDuration
int noteDuration -
samplelen
int samplelen -
synthGain
float synthGain -
synthPointGain
float synthPointGain -
outputGain
float outputGain -
isMuted
boolean isMuted -
synth
PASamplerInstrument synth -
pool
-
sMaxVoices
int sMaxVoices -
isUseSynth
boolean isUseSynth -
granSignal
public float[] granSignal -
gSynth
-
curveSteps
public int curveSteps -
granLength
public int granLength -
granHop
public int granHop -
gMaxVoices
public int gMaxVoices -
currentGranStatus
String currentGranStatus -
gDir
-
granularGain
public float granularGain -
granularPointGain
public float granularPointGain -
useShortGrain
boolean useShortGrain -
longSample
int longSample -
shortSample
int shortSample -
granSamples
int granSamples -
hopSamples
int hopSamples -
gParamsGesture
GestureGranularParams gParamsGesture -
gParamsFixed
GestureGranularParams gParamsFixed -
useLongBursts
boolean useLongBursts -
maxBurstGrains
int maxBurstGrains -
burstGrains
int burstGrains -
usePitchedGrains
boolean usePitchedGrains -
shift
int shift -
totalShift
int totalShift -
isAnimating
boolean isAnimating -
oldIsAnimating
boolean oldIsAnimating -
isTrackMouse
boolean isTrackMouse -
animSteps
int animSteps -
isRecordingVideo
boolean isRecordingVideo -
videoFrameRate
int videoFrameRate -
step
int step -
videx
com.hamoid.VideoExport videx -
curveMaker
-
isDrawMode
public boolean isDrawMode -
epsilon
public float epsilon -
currentPoint
public processing.core.PVector currentPoint -
allPoints
-
allTimes
-
startTime
public int startTime -
dragColor
public int dragColor -
dragWeight
public float dragWeight -
polySteps
public int polySteps -
readyBrushColor1
int readyBrushColor1 -
hoverBrushColor1
int hoverBrushColor1 -
selectedBrushColor1
int selectedBrushColor1 -
readyBrushColor2
int readyBrushColor2 -
hoverBrushColor2
int hoverBrushColor2 -
selectedBrushColor2
int selectedBrushColor2 -
dimmedBrushColor
int dimmedBrushColor -
circleColor
int circleColor -
dimCircleColor
int dimCircleColor -
lineColor
int lineColor -
dimLineColor
int dimLineColor -
animatedCircleColor
int animatedCircleColor -
isIgnoreOutsideBounds
boolean isIgnoreOutsideBounds -
hoverBrush
AudioBrush wraps a PACurveMaker (gesture) and a GestureGranularConfig.Builder (granular synthesis parameters) -
hoverIndex
private int hoverIndex -
activeBrush
-
granularBrushes
ArrayList<GranularBrush> granularBrushes -
activeGranularBrush
GranularBrush activeGranularBrush -
activeGranularIndex
int activeGranularIndex -
samplerBrushes
ArrayList<SamplerBrush> samplerBrushes -
activeSamplerBrush
SamplerBrush activeSamplerBrush -
activeSamplerIndex
int activeSamplerIndex -
pointTimeLocs
ArrayList<TimedLocation> pointTimeLocs -
samplerTimeLocs
ArrayList<TimedLocation> samplerTimeLocs -
grainTimeLocs
ArrayList<TimedLocation> grainTimeLocs -
pointEventUseSampler
boolean pointEventUseSampler -
gConfig
GestureGranularConfig.Builder gConfig -
defaultGranConfig
-
defaultSampConfig
-
guiSyncing
boolean guiSyncing -
baselineCount
int baselineCount -
baselineDurationMs
int baselineDurationMs -
scheduleBuilder
GestureScheduleBuilder scheduleBuilder -
granularMapping
GestureGranularRenderer.DefaultMapping granularMapping -
mode
-
CURVE_STEPS_HARD_MAX
static final int CURVE_STEPS_HARD_MAX- See Also:
-
CURVE_STEPS_SAFE_MAX
static final int CURVE_STEPS_SAFE_MAX- See Also:
-
CURVE_STEPS_FLOOR
static final int CURVE_STEPS_FLOOR- See Also:
-
doPlayOnDraw
boolean doPlayOnDraw -
audioSched
AudioScheduler<GesturePlayground_back.Happening> audioSched -
audioBlockStartSample
-
audioNextBlockStartSample
-
dotInbox
-
activeDots
-
dotLifeMs
private int dotLifeMs -
dotDiameter
private int dotDiameter -
hopScale
float hopScale -
optGrainCount
int optGrainCount -
eventStep
int eventStep -
isVerbose
boolean isVerbose -
isDebugging
boolean isDebugging -
controlWindow
g4p_controls.GWindow controlWindow -
controlPanel
g4p_controls.GPanel controlPanel -
pathSourceLabel
g4p_controls.GLabel pathSourceLabel -
pathSourceGroup
g4p_controls.GToggleGroup pathSourceGroup -
allOption
g4p_controls.GOption allOption -
rdpOption
g4p_controls.GOption rdpOption -
curveOption
g4p_controls.GOption curveOption -
rdpEpsilonSlider
g4p_controls.GSlider rdpEpsilonSlider -
curvePointsSlider
g4p_controls.GSlider curvePointsSlider -
hopModeLabel
g4p_controls.GLabel hopModeLabel -
hopModeGroup
g4p_controls.GToggleGroup hopModeGroup -
gestureOption
g4p_controls.GOption gestureOption -
fixedOption
g4p_controls.GOption fixedOption -
envelopeLabel
g4p_controls.GLabel envelopeLabel -
envelopeMenu
g4p_controls.GDropList envelopeMenu -
timingLabel
g4p_controls.GLabel timingLabel -
resampleLabel
g4p_controls.GLabel resampleLabel -
resampleSlider
g4p_controls.GSlider resampleSlider -
resampleField
g4p_controls.GTextField resampleField -
durationLabel
g4p_controls.GLabel durationLabel -
durationSlider
g4p_controls.GSlider durationSlider -
durationField
g4p_controls.GTextField durationField -
warpLabel
g4p_controls.GLabel warpLabel -
warpSlider
g4p_controls.GSlider warpSlider -
epsilonSliderLabel
g4p_controls.GLabel epsilonSliderLabel -
curvePointsLabel
g4p_controls.GLabel curvePointsLabel -
grainLengthLabel
g4p_controls.GLabel grainLengthLabel -
grainLengthSlider
g4p_controls.GSlider grainLengthSlider -
hopLengthLabel
g4p_controls.GLabel hopLengthLabel -
hopLengthSlider
g4p_controls.GSlider hopLengthSlider -
pitchLabel
g4p_controls.GLabel pitchLabel -
pitchShiftText
g4p_controls.GTextField pitchShiftText -
gainLabel
g4p_controls.GLabel gainLabel -
gainSlider
g4p_controls.GSlider gainSlider -
grainLengthField
g4p_controls.GTextField grainLengthField -
hopLengthField
g4p_controls.GTextField hopLengthField -
warpGroup
g4p_controls.GToggleGroup warpGroup -
linearWarpOption
g4p_controls.GOption linearWarpOption -
expWarpOption
g4p_controls.GOption expWarpOption -
squareRootOption
g4p_controls.GOption squareRootOption -
customWarpOption
g4p_controls.GOption customWarpOption -
arcLengthTimeOption
g4p_controls.GOption arcLengthTimeOption -
commentsField
g4p_controls.GTextArea commentsField -
adsrItems
String[] adsrItems
-
-
Constructor Details
-
GesturePlayground_back
public GesturePlayground_back()
-
-
Method Details
-
main
- Parameters:
args-
-
settings
public void settings()- Overrides:
settingsin classprocessing.core.PApplet
-
setup
public void setup()- Overrides:
setupin classprocessing.core.PApplet
-
stop
public void stop()turn off audio processing when we exit- Overrides:
stopin classprocessing.core.PApplet
-
getColors
public int[] getColors(int size) Generates an array of rainbow colors using the HSB color space.- Parameters:
size- the number of entries in the colors array- Returns:
- an array of RGB colors ordered by hue
-
initImages
public void initImages()Initializes mapImage with the colors array. mapImage handles the color data for mapper and also serves as our display image. -
initDrawing
public void initDrawing()Initializes drawing and drawing interaction variables. -
initConfig
public void initConfig() -
initGUI
public void initGUI() -
preloadFiles
-
draw
public void draw()- Overrides:
drawin classprocessing.core.PApplet
-
handleDrawing
public void handleDrawing()Handles user's drawing actions, draws previously recorded brushstrokes, tracks and generates animation and audio events. -
findHoverHit
GesturePlayground_back.BrushHit findHoverHit() -
updateHover
void updateHover() -
writeToScreen
Displays a line of text to the screen, usually in the draw loop. Handy for debugging. typical call: writeToScreen("When does the mind stop and the world begin?", 64, 1000, 24, true);- Parameters:
msg- message to writex- x coordinatey- y coordinateweight- font weightisWhite- if true, white text, otherwise, black text
-
mousePressed
public void mousePressed()The built-in mousePressed handler for Processing, but note that it forwards mouse coords to handleMousePressed(). If isDrawMode is true, we start accumulating points to allPoints: initAllPoints() adds the current mouseX and mouseY. After that, the draw loop calls handleDrawing() to add points. Drawing ends on mouseReleased().- Overrides:
mousePressedin classprocessing.core.PApplet
-
mouseDragged
public void mouseDragged()- Overrides:
mouseDraggedin classprocessing.core.PApplet
-
mouseReleased
public void mouseReleased()- Overrides:
mouseReleasedin classprocessing.core.PApplet
-
mouseClicked
public void mouseClicked()- Overrides:
mouseClickedin classprocessing.core.PApplet
-
keyPressed
public void keyPressed()built-in keyPressed handler, forwards events to parseKey.- Overrides:
keyPressedin classprocessing.core.PApplet
-
parseKey
public void parseKey(char key, int keyCode) -
showHelp
public void showHelp()to generate help output, run RegEx search/replace on parseKey case lines with: // case ('.'): // (.+) // println(" * Press $1 to $2."); -
setAudioGain
public void setAudioGain(float g) Sets audioOut.gain.- Parameters:
g- gain value for audioOut, in decibels
-
setMode
-
resetConfigForMode
void resetConfigForMode() -
chooseFile
public void chooseFile()Wrapper method for Processing's selectInput command -
fileSelected
callback method for chooseFile(), handles standard audio and image formats for Processing. If a file has been successfully selected, continues with a call to loadAudioFile() or loadImageFile().- Parameters:
selectedFile- the File the user selected
-
loadAudioFile
Attempts to load audio data from a selected file into playBuffer, then calls writeAudioToImage() to transcode audio data and write it to mapImage. Resamples files that are recorded with a different sample rate than the current audio output. If you want to load the image file and audio file separately, comment out writeAudioToImage().- Parameters:
audFile- an audio file
-
writeAudioToImage
public void writeAudioToImage(float[] sig, PixelAudioMapper mapper, processing.core.PImage img, PixelAudioMapper.ChannelNames chan) Transcodes audio data in sig[] and writes it to color channel chan of mapImage using the lookup tables in mapper to redirect indexing. Calls mapper.mapSigToImg(), which will throw an IllegalArgumentException if sig.length != img.pixels.length or sig.length != mapper.getSize().- Parameters:
sig- an array of float, should be audio data in the range [-1.0, 1.0]mapper- a PixelAudioMapperimg- a PImagechan- a color channel
-
commitMapImageToBaseImage
public void commitMapImageToBaseImage() -
commitNewBaseImage
public void commitNewBaseImage(processing.core.PImage img) -
initAudio
public void initAudio()CALL THIS METHOD IN SETUP() Initializes Minim audio library and audio variables. -
initTimedEventLists
public void initTimedEventLists()initialize lists of TimedLocation objects, used for animated response to mouse clicks -
getSamplePos
public int getSamplePos(int x, int y) Calculates the index of the image pixel within the signal path, taking the shifting of pixels and audioSignal into account. See MusicBoxBuffer for use of a windowed buffer in this calculation.- Parameters:
x- an x coordinate within mapImage and display boundsy- a y coordinate within mapImage and display bounds- Returns:
- the index of the sample corresponding to (x,y) on the signal path
-
getCoordFromSignalPos
public processing.core.PVector getCoordFromSignalPos(int pos) -
runSamplerPointEvent
void runSamplerPointEvent(int x, int y) -
runGranularPointEvent
void runGranularPointEvent(int x, int y) -
buildPathGranSource
public PathGranularSource buildPathGranSource(float[] buf, GranularPath camino, GranularSettings settings) -
playGranularBrush
void playGranularBrush(GranularBrush gb, GestureSchedule schedule, GestureGranularConfig snap, GestureGranularRenderer.DefaultMapping granularMapping) -
buildGranSettings
-
playGranular
public void playGranular(float[] buf, GranularPath camino, GranularSettings settings, boolean isBuildADSR) -
playGranularGesture
-
debugIndexHeadroom
-
debugTimesMs
-
calculateEnvelope
-
calculateEnvelope
-
playSample
public int playSample(int samplePos, int samplelen, float amplitude, float pan) Plays an audio sample with default envelope and stereo pan.- Parameters:
samplePos- position of the sample in the audio buffersamplelen- length of the sample (will be adjusted)amplitude- amplitude of the sample on playback- Returns:
- the calculated sample length in samples
-
playSample
Plays an audio sample with a custom envelope and stereo pan.- Parameters:
samplePos- position of the sample in the audio buffersamplelen- length of the sample (will be adjusted)amplitude- amplitude of the sample on playbackenv- an ADSR envelope for the samplepan- position of sound in the stereo audio field (-1.0 = left, 0.0 = center, 1.0 = right)- Returns:
- the calculated sample length in samples
-
playSample
public int playSample(int samplePos, int samplelen, float amplitude, ADSRParams env, float pitch, float pan) Plays an audio sample with with a custom envelope, pitch and stereo pan.- Parameters:
samplePos- position of the sample in the audio buffersamplelen- length of the sample (will be adjusted)amplitude- amplitude of the sample on playbackenv- an ADSR envelope for the samplepitch- pitch scaling as deviation from default (1.0), where 0.5 = octave lower, 2.0 = oactave higherpan- position of sound in the stereo audio field (-1.0 = left, 0.0 = center, 1.0 = right)- Returns:
-
calcSampleLen
public int calcSampleLen(int dur, float mean, float variance) - Returns:
- a length in samples with some Gaussian variation
-
calcSampleLen
public int calcSampleLen() -
ensureSamplerReady
void ensureSamplerReady() -
ensureGranularReady
void ensureGranularReady() -
buildGranSynth
public PAGranularInstrument buildGranSynth(ddf.minim.AudioOutput out, ADSRParams env, int numVoices) -
initGranularParams
public void initGranularParams() -
updateAudioChain
void updateAudioChain(float[] sig) -
applyColor
public int[] applyColor(int[] colorSource, int[] graySource, int[] lut) Utility method for applying hue and saturation values from a source array of RGB values to the brightness values in a target array of RGB values, using a lookup table to redirect indexing.- Parameters:
colorSource- a source array of RGB data from which to obtain hue and saturation valuesgraySource- an target array of RGB data from which to obtain brightness valueslut- a lookup table, must be the same size as colorSource and graySource- Returns:
- the graySource array of RGB values, with hue and saturation values changed
- Throws:
IllegalArgumentException- if array arguments are null or if they are not the same length
-
applyColorShifted
public int[] applyColorShifted(int[] colorSource, int[] graySource, int[] lut, int shift) -
applyColorMap
public void applyColorMap()applies the Hue and Saturation of pixel values in the colors[] array to mapImage and baseImage -
initAllPoints
public void initAllPoints()Initializes allPoints and adds the current mouse location to it. -
handleClickOutsideBrush
public void handleClickOutsideBrush(int x, int y) Respond to mousePressed events, usually by triggering an event -
isOverAnyBrush
boolean isOverAnyBrush(int x, int y) -
addPoint
public void addPoint(int x, int y) While user is dragging the mouse and mode == Mode.DRAW_EDIT_GRANULAR or DRAW_EDIT_SAMPLER, accumulates new points to allPoints and event times to allTimes. Coordinates should be constrained to display window bounds. -
clipToWidth
public int clipToWidth(int x) - Parameters:
x- a value to constrain to the current window width- Returns:
- the constrained value
-
clipToHeight
public int clipToHeight(int y) - Parameters:
y- a value to constrain to the current window height- Returns:
- the constrained value
-
jitterCoord
public processing.core.PVector jitterCoord(int x, int y, int deviationPx) -
generateJitterPitch
float[] generateJitterPitch(int length, float deviationPitch) -
loadGestureSchedule
-
initCurveMakerAndAddBrush
Initializes a PACurveMaker instance with allPoints as an argument to the factory method PACurveMaker.buildCurveMaker() and then fills in PACurveMaker instance variables. -
isBrushInteractable
-
setActiveBrush
-
setActiveBrush
-
recomputeUIBaselinesFromActiveBrush
void recomputeUIBaselinesFromActiveBrush() -
drawBrushShapes
public void drawBrushShapes()Iterates over brushShapesList and draws the brushstrokes stored in each PACurveMaker in the list. -
drawBrushes
public void drawBrushes(List<? extends AudioBrush> brushes, int readyColor, int hoverColor, int selectedColor) -
getPathPoints
-
getScheduleForBrush
- Parameters:
b- an AudioBrushLite instance- Returns:
- GestureSchedule for the current pathMode of the brush
-
mouseInPoly
- Parameters:
poly- a polygon described by an ArrayList of PVector- Returns:
- true if the mouse is within the bounds of the polygon, false otherwise
-
pointInPoly
- Parameters:
poly- a polygon described by an ArrayList of PVectorx- x-coordinatey- y-coordinate- Returns:
- true if the mouse is within the bounds of the polygon, false otherwise
-
reset
public void reset(boolean isClearCurves) Reinitializes audio and clears event lists. If isClearCurves is true, clears brushShapesList. TODO clear event lists TODO include granularBrushes- Parameters:
isClearCurves-
-
removeActiveBrush
public void removeActiveBrush()Removes the current active PACurveMaker instance, flagged by a highlighted brush stroke, from brushShapesList, if there is one. -
removeNewestBrush
public void removeNewestBrush()Removes the newest PACurveMaker instance, shown as a brush stroke in the display, from brushShapesList. -
removeOldestBrush
public void removeOldestBrush()Removes the oldest brush in brushShapesList. -
scheduleSamplerBrushClick
-
storeSamplerCurveTL
-
runSamplerBrushEvents
public void runSamplerBrushEvents() -
scheduleGranularBrushClick
-
storeGranularCurveTL
-
runGrainEvents
public void runGrainEvents()Tracks and runs TimedLocation events in the grainLocsArray list, which is associated with granular synthesis gestures. -
runPointEvents
public void runPointEvents()Tracks and runs TimedLocation events in the timeLocsArray list, which is associated with mouse clicks that trigger audio a the click point. -
drawCircle
public void drawCircle(int x, int y) Draws a circle at the location of an audio trigger (mouseDown event).- Parameters:
x- x coordinate of circley- y coordinate of circle
-
initListener
public void initListener()Sets up sample-accurate AudioListener called from the Minim audio processing loop. We use the samples() methods in the AudioListener interface to call our processAudioBlock() method. The audio samples don't concern us, just the regular interval over which they are processed: essentially, we have a timer that wakes up at a regular interval. -
triggerClickHappening
-
oldScheduleGranularBrushClick
-
drawActiveDots
void drawActiveDots() -
createGUI
public void createGUI() -
createControlWindow
public void createControlWindow() -
createControlPanel
public void createControlPanel() -
createCommentsField
public void createCommentsField() -
createControls
public void createControls() -
addControlsToPanel
public void addControlsToPanel() -
winDraw
public void winDraw(processing.core.PApplet appc, g4p_controls.GWinData data) -
winKey
public void winKey(processing.core.PApplet appc, g4p_controls.GWinData data, processing.event.KeyEvent evt) -
controlPanel_hit
public void controlPanel_hit(g4p_controls.GPanel source, g4p_controls.GEvent event) -
allOption_clicked
public void allOption_clicked(g4p_controls.GOption source, g4p_controls.GEvent event) -
rdpOption_clicked
public void rdpOption_clicked(g4p_controls.GOption source, g4p_controls.GEvent event) -
curveOption_clicked
public void curveOption_clicked(g4p_controls.GOption source, g4p_controls.GEvent event) -
rdpEpsilonSlider_changed
public void rdpEpsilonSlider_changed(g4p_controls.GSlider source, g4p_controls.GEvent event) -
curvePointsSlider_changed
public void curvePointsSlider_changed(g4p_controls.GSlider source, g4p_controls.GEvent event) -
gestureOption_clicked
public void gestureOption_clicked(g4p_controls.GOption source, g4p_controls.GEvent event) -
fixedOption_clicked
public void fixedOption_clicked(g4p_controls.GOption source, g4p_controls.GEvent event) -
resampleSlider_changed
public void resampleSlider_changed(g4p_controls.GSlider source, g4p_controls.GEvent event) -
durationSlider_changed
public void durationSlider_changed(g4p_controls.GSlider source, g4p_controls.GEvent event) -
grainLengthSlider_changed
public void grainLengthSlider_changed(g4p_controls.GSlider source, g4p_controls.GEvent event) -
hopLengthSlider_changed
public void hopLengthSlider_changed(g4p_controls.GSlider source, g4p_controls.GEvent event) -
grainLengthField_changed
public void grainLengthField_changed(g4p_controls.GTextField source, g4p_controls.GEvent event) -
hopLengthField_changed
public void hopLengthField_changed(g4p_controls.GTextField source, g4p_controls.GEvent event) -
pitchShiftText_changed
public void pitchShiftText_changed(g4p_controls.GTextField source, g4p_controls.GEvent event) -
gainSlider_changed
public void gainSlider_changed(g4p_controls.GSlider source, g4p_controls.GEvent event) -
linearWarpOption_clicked
public void linearWarpOption_clicked(g4p_controls.GOption source, g4p_controls.GEvent event) -
expWarpOption_clicked
public void expWarpOption_clicked(g4p_controls.GOption source, g4p_controls.GEvent event) -
squareRootOption_clicked
public void squareRootOption_clicked(g4p_controls.GOption source, g4p_controls.GEvent event) -
customWarpOption_clicked
public void customWarpOption_clicked(g4p_controls.GOption source, g4p_controls.GEvent event) -
warpSlider_changed
public void warpSlider_changed(g4p_controls.GSlider source, g4p_controls.GEvent event) -
arcLengthTimeOption_clicked
public void arcLengthTimeOption_clicked(g4p_controls.GOption source, g4p_controls.GEvent event) -
envelopeMenu_clicked
public void envelopeMenu_clicked(g4p_controls.GDropList source, g4p_controls.GEvent event) -
printGConfigStatus
public void printGConfigStatus() -
envPreset
-
quantizeToStep
public static int quantizeToStep(int value, int step) Quantize an integer to the nearest multiple of step. -
syncGuiFromConfig
void syncGuiFromConfig() -
clampInt
static int clampInt(int v, int lo, int hi) -
setControlsEnabled
void setControlsEnabled() -
isEditable
boolean isEditable() -
resetToDefaults
void resetToDefaults() -
printGOptHints
void printGOptHints(float alpha) -
calcGranularOptHints
public int calcGranularOptHints(String tag, int N, float Tms, int hopSamples, int grainLenSamples, float sr, List<processing.core.PVector> scheduledPoints, float targetSpacingPx, float wt, float ws, StringBuffer sb) -
fmt
-