Loading...
Logo
Processing Forum
elmani's Profile
3 Posts
0 Responses
0 Followers

Activity Trend

Last 30 days
Show:
Private Message
    Hey all, I am writing some code that will get OSC messages from supercollider and use that to control some whitney-esque visuals. Originally i took some code from KrazyDad that was a processing transcription of the code present in Whitney's book Digital Harmony. The trouble comes with the lines of code referencing ftime -> which is the amount of time the frame has been running. the code from crazy dad uses millis to control ftime, and i added a modulo to that make an infinite loop of the visuals within set bounds. I am trying to move away from the infinite aspect of it using a for loop to supply the ftime values, however, when i use the loop it does not display the visuals in the same way. I will post the broken code, any help would be appreciated.

    import oscP5.*;
    import netP5.*;

    //Create OSC variable
    OscP5 oscP5;

    //Create variable to use as OSC trigger for animation
    boolean animate = true;

    //First step of animation
    float stepstart = -1,
    //Last step of animation
          stepend = 1,
          radius,
    //X and Y Centers
          xcenter,
          ycenter,
    //Speed of animations 
          speed = .1;

    //Degree to radian multiplier
    float deg = 0.0174533;

    //Number of points in the animation
    float  npoints = 500.0;

    void setup()
    {
      size(1000,1000);      //Size of window
      radius = height*.9/2;  
      xcenter = width/2;
      ycenter = height/2;
      oscP5 = new OscP5(this,7771);
      noStroke();
    }

    void draw()
    {
      background(0);
      fill(255);
      stroke(255);  
      if (animate == true){   
        whitney(1); 
      }else{
      } 
    }

    void whitney(int runs){
    //  float ftime = ((millis()*0.0001)%1);    k replaces ftime
    for (int j = 0; j < runs; j++){
    for (float k = 0; k < 1; k += 0.001){
      float step = stepstart + (k * (stepend - stepstart));
      println("ftime = " + k + "    step = " + step);
      //Calculates the position of each point based on the current step
      for (int i = 0; i < npoints; ++i)
         {
         float points = 360 * (i/npoints);
         float a = 2*PI* points * deg;
         float radiusi = radius*cos(a*step);
         float x = xcenter + cos(a) * radiusi;
         float y = ycenter + sin(a) * radiusi;
         ellipse((int) x, height-(int) y, 2+k,2+k);
         line(x,y,x+1,y+1);
         }
    }
    }
    }


    void oscEvent(OscMessage theOscMessage){
      //store the int from the OSC message in msg
      int msg = theOscMessage.get(0).intValue();
      
      if (msg == 1){
        animate = true;
      }else if (msg ==2){
        animate = false;
      }
      if (msg == 3){
        stepend = 5;
        stepstart = 5;
      }else if (msg == 4){
        stepend = 6;
      }

    }
    Does anybody of you know how can be done the equalization histogram and the descrete case histogram for a given image?


    What I have done is the program to be able to load an image, and to calculate its histogram.

    I would appreciate any help u can provide.

    Thanks in advance ,