Studio Dumbar's works. (Amsterdam Sinfonietta )

Who knows how to do works like Studio Dumbar do ? They are coding and their code reacting to the music. Some examples: https://youtu.be/0C9_nYeVxa0

1 Like

Hi,

I think that the fact that the visuals are reacting with the music is mostly editing but some patterns might be achievable with perlin noise :

https://processing.org/examples/noise2d.html

1 Like

I have to learn about music libraries in processing, can anyone suggest me where to learn ?

Check those links :

1 Like

In general I would recommend looking through the sound library examples and the minim library examples if you are interested in making audio-reactive things. minim is a more complex library with more analysis options – if you want to react to different aspects of music, for example.

More generally, try starting with a simple example and then adding inputs that vary the contents. You can connect these to key presses or mouse movements to start, then add the microphone + minim – or you can start with the microphone controlling a single rectangle, then work your way up to the complex text surface. Or start at both ends and meet in the middle.

/**
 * TextSurfaceDemo
 * Jeremy Douglass 2020-06-23 - Processing 3.5.4
 * try holding down a key, holding down the mouse
 * and/or dragging the mouse
 * https://discourse.processing.org/t/studio-dumbars-works-amsterdam-sinfonietta/21992/4
 */

float xstep = 14;
float ystep = 14;
String txt = "LOREM IPSUM SIT DOLOR ";

float inputA = 0;
float inputB = 0;
float inputC = 4;

void setup() {
  size(800, 400);
}
void draw() {
  if(mousePressed) inputA = frameCount/10;
  if(keyPressed) inputB = frameCount/10;
  
  background(0);
  for (int y=0; y<=height/ystep; y++) {
    for (int x=0; x<=width/xstep; x++) {
      int idx = int(y*(height/ystep) + x + inputA);     // counter
      char c = txt.charAt(idx%txt.length());            // get character
      float eggCrateOffset = inputC*cos(x + inputB)*sin(y);  // smaller/larger pattern
      textSize(xstep + eggCrateOffset);  // set text size
      text(c, x*xstep, y*ystep);         // draw text
    }
  }
}

void mouseDragged() {
  inputC = (mouseY+1)/(float)height * (14-1);
}

3 Likes

Thank you, for your reply.
I really appreciate your kindness. Thank you for your reply )