Quantcast
Channel: Library Questions - Processing 2.x and 3.x Forum
Viewing all articles
Browse latest Browse all 2896

Redraw background with images

$
0
0

Hey guys :) I could use some help with the following code. It's basically a music visualizer. I want it to be on top of a background picture. The problem I have is, that if I want to "erase" the previous drawings by setting the background again, i have to use the loadImage function inside of the draw function, which completely screws the entire sketch. For some reason I cant access the picture inside draw if i load it inside setup..

So right now I only have a little workaround by drawing an ellipse before the visualisation, but this is really sub-optimal..

Is there any way to "reset" the drawing after each iteration of draw? Or is there a way to make the workaround-ellipse transparent? Or is there a way that I can simply use an image function without problems?

Thank you so much in advance!!! :)

(I know there is a lot of useless stuff in there)

https://workupload.com/file/zeqfbYS

Sorry, I don't know how to properly post code here, the "code" buttom doesnt seem to work >____>

    import ddf.minim.*;
    import ddf.minim.analysis.*;

    Minim minim;
    AudioPlayer player;
    AudioMetaData meta;
    BeatDetect beat;
    int  r = 200;
    float rad = 70;
    int fag = 1;

    PGraphics pg;

    void setup()
    {
      size(displayWidth, displayHeight);
      minim = new Minim(this);
      player = minim.loadFile("Massengrab Demo 7.mp3");
      meta = player.getMetaData();
      beat = new BeatDetect();
      player.loop();
      //background(-1);
      //PImage img;
      //img = loadImage("Girl.jpg");
      //background(img);
      //image(img, width/2, height/2);
      noCursor();
      PImage img = loadImage("Girl.jpg");
      background(img);
      frameRate(60);
      pg = createGraphics(1000, 1000);

    }



    void draw()
    {

      //if (fag > 80) {
      //PImage img = loadImage("Girl.jpg");
      //background(img);
      //fag = 1;
      //}

      pg.beginDraw();
      float t = map(mouseX, 0, width, 0, 1);
      beat.detect(player.mix);
      noStroke();
      fill(#1A1F18, 8);
      //tint(255, 128);
      ellipseMode(CENTER);
      ellipse(width/2, height/2+height/4, width/3.5, width/3.5);
      translate(width/2, height/2+height/4);
      noFill();
      fill(-1, 10);
      if (beat.isOnset()) rad = rad*0.9;
      else rad = 70;
      ellipse(0, 0, 2*rad, 2*rad);
      stroke(-1, 50);
      int bsize = player.bufferSize();
      for (int i = 0; i < bsize - 1; i+=5)
      {
        float x = (r)*cos(i*2*PI/bsize);
        float y = (r)*sin(i*2*PI/bsize);
        float x2 = (r + player.left.get(i)*100)*cos(i*2*PI/bsize);
        float y2 = (r + player.left.get(i)*100)*sin(i*2*PI/bsize);
        line(x, y, x2, y2);
      }
      beginShape();
      noFill();
      stroke(-1, 50);
      for (int i = 0; i < bsize; i+=30)
      {
        float x2 = (r + player.left.get(i)*100)*cos(i*2*PI/bsize);
        float y2 = (r + player.left.get(i)*100)*sin(i*2*PI/bsize);
        vertex(x2, y2);
        pushStyle();
        stroke(-1);
        strokeWeight(2);
        point(x2, y2);
        popStyle();
      }
      endShape();
     // if (flag)
     // showMeta();

     //pg.clear();
     pg.endDraw();

     fag++;

    }

    /*void showMeta() {
      int time =  meta.length();
      textSize(50);
      textAlign(CENTER);
      text( (int)(time/1000-millis()/1000)/60 + ":"+ (time/1000-millis()/1000)%60, -7, 21);
    }

    boolean flag =false;
    void mousePressed() {
      if (dist(mouseX, mouseY, width/2, height/2)<150) flag =!flag;
    }

    //
    /*boolean sketchFullScreen() {
      return true;
    }*/

    void keyPressed() {
      if(key==' ')exit();
      if(key=='s')saveFrame("###.jpeg");
    }

Viewing all articles
Browse latest Browse all 2896

Trending Articles