Quantcast
Channel: Processing Forum
Viewing all articles
Browse latest Browse all 1768

Scaling text

$
0
0
Hello, I am trying to create text that changes in size according to the frequency of the song being played. I have managed to get it to work, however one problem that I am facing is that the text does not scale in a center alignment (I want the size of the text to change but the position remain the same), but rather it scales outwards, is there any way I can work around this? Thank you so much for reading this and helping!

Here is my code:

import ddf.minim.*;
import ddf.minim.signals.*;
import ddf.minim.analysis.*;
import ddf.minim.effects.*;

Minim minim;

AudioPlayer song;

FFT fft;

PFont Header;

int leftcol = 50;

int row1 = 35;

float[] Channel = new float[10];

void setup(){
  size(600,600);
  
  Header = loadFont("font1.vlw");
  
  minim = new Minim(this);
  
  song = minim.loadFile("craveyou.mp3", 512);
  
  song.play();
  
  song.mute();
  
  fft = new FFT(song.bufferSize(), song.sampleRate());
  
  fft.logAverages(32,1);
  
}

void draw(){
  calculateFFT();
  
  background(0);
  
  smooth(8);
  textFont(Header, Channel[4]);
  fill(255);
  textAlign(CENTER,CENTER);
  text("a", width/2, height/2);
  
  
}

void stop(){
  song.close();
  minim.stop();
  super.stop();
}

void calculateFFT(){
  fft.forward(song.mix);
  
  Channel[0] = map(fft.getAvg(0), 0, 69, 0, 255);
  Channel[1] = map(fft.getAvg(1), 0, 106, 0, 225);
  Channel[2] = map(fft.getAvg(2), 0, 119, 0, 255);
  Channel[3] = map(fft.getAvg(3), 0, 66, 0, 255);
  Channel[4] = map(fft.getAvg(4), 0, 29, 0, 255);
  Channel[5] = map(fft.getAvg(5), 0, 16, 0, 255);
  Channel[6] = map(fft.getAvg(6), 0, 15, 0, 255);
  Channel[7] = map(fft.getAvg(7), 0, 7, 0, 255);
  Channel[8] = map(fft.getAvg(8), 0, 3, 0, 255);
  Channel[9] = map(fft.getAvg(9), 0, 0, 0, 255);
}

Viewing all articles
Browse latest Browse all 1768

Trending Articles