Minim Beat Listener

Exploring Minim library in processing I have come across a range of uses, capabilities and examples relating to analysing sound. Minim has several subsections one specifically called ‘beatlistner” which targets an inputted sound file and asses particular levels.

Minin compartmental says “ BeatDetect object in FREQ_ENERGY mode. You can use isKick, isSnare, isHat, isRange, and isOnset(int) to track whatever kind of beats you are looking to track, they will report true or false based on the state of the analysis.”

if ( beat.isKick() ) kickSize = 32;
if ( beat.isSnare() ) snareSize = 32;
if ( beat.isHat() ) hatSize = 32;
textSize(kickSize);
text("KICK", width/4, height/2);
textSize(snareSize);
text("SNARE", width/2, height/2);
textSize(hatSize);
text("HAT", 3*width/4, height/2);

Above is the main section taken from a minim example where its declaring the kick, hat and snare as part of an if statement. When there are true this is intern effect a values with the statement changing its size effectively resizing objects on the screen. I think there could be a better way of this by not only changing a variable if the Boolean is true but have series like if hat && sane are true. This could produce some interesting and more diverse results.

This could be useful to me in my work as it provides me with a clear variable that could be used to manipulate objects within the sketch. From my initial assessment of this the only problem I can foresee is there is only 3 variables that are relayed kick, hat and snare. With there only being 3 variables some restrictions could be placed within a design and the software limitation could become a problem

Bellow is a example sketch of there the Minim library is used with the beat listener to distinguish sounds and displayed in abstract shape form. I think this shows the potential for a graphical display and something I could work with going forward.

http://www.openprocessing.org/sketch/176397

I have taken the example and added as I suggested some more variables where two Booleans need to be true for the graphics to initiate.

if (hat == true && snare == true){
    fill(0,255,0);
    rect(325,150,50,50);
    fill(0);
    text("Hat &", 330, 170);
    text("Snare",330,190 );
  }
  if (hat == true && snare == true && kick == true){
    fill(0,255,0);
    rect(200,300,100,100);
    fill(0);
    text("Hat,", 220, 340);
    text("Kick &", 220, 360);
    text("Snare", 220,380 );
  }

As you can see from the code snippet above I have simply implemented and(&&) statements to create a greater range of beat listening variables. This worked considerably well as it gave me 4 more additional variables that could be used. For the visual elements it means a far more complex combinations and varying graphics could be produced.

Moving forward with the interactive installation in mind some consideration to the visual elements and how the user interaction will be affecting the imagery or audio. This is a considerable part of the installation and could use previous work with reacTIVision or maybe camera interaction.

 http://code.compartmental.net/minim/beatdetect_method_iskick.html

https://github.com/ddf/Minim/blob/master/examples/Analysis/FrequencyEnergyBeatDetection/FrequencyEnergyBeatDetection.pde

Leave a Reply