Code modification for Audio Input - Please help ASAP

edited October 2015 in Library Questions

Hi, So I'm modifying some code created by this guy here - It's some cool coding that allows visuals to react to a combo of MIDI controller inputs and audio input. No I'm trying to take the visualizer element and allow it to just react to Audio Input but can't get the code to produce the visualizer! Looking to fix this v.quickly as there is a live event where I'd like to demonstrate it!

My modified code is this (I am aware I haven't created an option for switching scenes yet):

// Tomash Ghz -
// Ableton synced visuals in Processing Tutorial

import ddf.minim.*; // Iport the Minim Library for sound input

Minim minim; // Create instances of Minim
AudioInput in;

int scene=1; // Keep track of the current scene
int shape=1; // and shape

color backgroundCol=0; // Store the background color
color strokeCol=255; // Store the shape outile color

float soundWeight; // Store the sound volume weight

void setup() { // Setup function runs only once when the sketch starts. Initialize everything here
  size(1280, 768); // Set the window size

  noFill(); // Will draw only outline of shapes
  rectMode(CENTER); // Set the rectangle origin to its center
  colorMode(HSB, 360, 100, 100); // Set the color values to Hue Saturation Brightness instead of Red Green Blue
  smooth(8); // Draw smooth shapes

  minim = new Minim(this); // Create a new Minim class for sound input
  in = minim.getLineIn(Minim.STEREO, 2048, 192000.0);  // Enable 

void draw() { // Draw function runs every frame. Update everything and draw on the screen
  soundWeight=in.mix.level()*20; // Read the audio input and scale the value
  drawScene(); // Draw the visuals

void drawScene(){ // A function we use to draw different things according to the current scene
  switch(scene){ // We only have 4 scenes here
    case 0:
      background(0); // set the background black
    case 1:
      background(backgroundCol); // just draw the background with its color
    case 2:
      drawShapes(0); //draw static shapes over the background
    case 3:
      drawShapes(soundWeight); //draw shapes that scale to the incoming volume levels. We pass the sound weight as the size value

void randomColors(){ // A function we use to change randomly the colors
    backgroundCol=color(random(127,255),50,50); // Set a random color for the background with a hue from 127 to 255
    strokeCol=color(random(0,126),100,100);; // Set a random color for the outlines with a hue from 0 to 126

void drawShapes(float size){ // A function we use to draw a shape according to the current shape
  background(backgroundCol); // First draw the background
  stroke(strokeCol); // Set the outline color
  translate(width/2,height/2); // Start drawing from the center of the screen

  switch(shape%3){ // We only have 3 shapes so lets sycle through them. We add the size value
    case 0: 
      rect(0,0,width/4+size*width/8,width/4+size*width/8); // Draw a square
    case 1:
      ellipse(0,0,width/4+size*width/8,width/4+size*width/8); // Draw a circle
    case 2:
      triangle(-width/8-size*width/16,width/8+size*width/16,0,-width/8-size*width/16,width/8+size*width/16,width/8+size*width/16); // Draw a triangle


  • Answer ✓

    Print size on line 63, see if it's what you expect.

    Also print width/4+size*width/8

    I think there might be some integer division going on somewhere.

Sign In or Register to comment.