Fonts not loading

Hello, I don’t know why but I can’t use fonts in my project: I keep creating and loading fonts from processing but it gives me the same error every time:

"GeorgiaPro-Light-48.vlw0" is not available, so another font will be used. Use PFont.list() to show available fonts.

Here it is my code:

import ddf.minim.*;    // Importa la library del Player musicale 
import ddf.minim.analysis.*;


//Variabili 
int  r = 100;    //Valore di partenza del raggio del cerchio più grande
float rad = 70;    //Cerchio più piccolo
int timer;      //Timer in millisecondi  
int i;    //Variabile casistica switch
int mouse = 0;    //Contatore click del mouse 
float scale = 1.0;    //Valore di scale per le immagini degli uomini
float scale1 = 2.0;
int offx = 200;  int offy = 400;    //offset di riposizionamento delle figure degli uomini 
int offx1 = 650; int offy1 = 360;
boolean testoClick = true;    //Condizione per verificare la variazione del testo 






//Immagini
PImage Stanza;  
PImage Foresta;
PImage Uomo1; 
PImage Uomo2; 
PImage Donna;
PImage Fiore;

//Musica
//loop midi.Wav
//Cowboy
//Wind.mp3
//Bomb.mp3
//Scream.mp3
//Tick.mp3

//Audio player
Minim minim;
AudioPlayer player;    //Player per la musica di sottofondo
AudioPlayer Effetto1;    //Effetto vento
AudioPlayer Effetto2;    //Effetto urlo
AudioPlayer Effetto3;    //Effetto passi
AudioPlayer Effetto4;    //Effetto ticchettio degli stivali
AudioPlayer Effetto5;    //Effetto bomba
AudioMetaData meta;    //Recupera i dati per il corretto avviamento del player 
BeatDetect beat;    //Rileva i battiti della canzone nel player

//Lettering, font e battute 
PFont f;    //Dichiarazione del font 

String b1 = "Li manda il giardiniere, dice di metterli in sala da pranzo.";    //Battute in ordine
String b2 = "Portami del kvas.";
String b3 = "Subito.";
String b4 = "C'è la brina, siamo a -3° e i ciliegi sono tutto un fiore.";
String b5 = "Non riesco proprio ad approvarlo il nostro clima. Non posso. \n Non lo si può di certo definire un clima ideale.";
String b6 = "Ecco permettetemi di aggiungere un'atra cosa: \n mi sono comprato, l'altro giorno, degli stivali che, vi assicuro, \n scricchiolano in modo impossibilile.";
String b7 = "Con che cosa diavolo li potrei ungere?";
String b8 = "Piantala, mi hai stufato!";
String b9 = "Ogni giorno mi succede qualche disgrazia... \n ma non mi lamento, ci ho fatto il callo.";
String b10 = "Me ne vado.";
String b11 = "Avete visto? se mi è permesso il termine, che circostanza tra l'altro...\n Non è addirittura soprendente?!";



void settings() {
  size(1080, 720, P2D);
  smooth();    //Aiuta l'elaborazione del framerate
}



void setup() {
  //Sfondo
  Uomo1 = loadImage("figura uomo 1.png");  //carica in memoria le immagini 
  Uomo2 = loadImage("figura uomo 2.png");
  Donna = loadImage("Donna.png");
  Fiore = loadImage("Fiore.png");
  Foresta = loadImage("cold-fog-forest-1003124.jpg");
  Foresta.resize(1080, 720);
  Stanza = loadImage("castle-european-interiors-68389.jpg");
  Stanza.resize(1080, 720);
  background(0);    //Sfondo nero



  //Centro
  
    //Player
      minim = new Minim(this);    //Inizializzazione del player
      player = minim.loadFile("loop midi.Wav");    //Carica file "loop midi.Wav" dalla cartella data dello sketch
      meta = player.getMetaData();
      beat = new BeatDetect();    //Rileva i battiti più rilevanti della canzone
      player.loop(); //La canzone gira in loop 
      //player.play();
        
      //Effetti sonori
        minim = new Minim(this);    //Creazione nuovo suono tramite la library minim   
        Effetto1 = minim.loadFile("Wind.mp3");    
        
        minim = new Minim(this);    
        Effetto2 = minim.loadFile("Scream.mp3"); 
        
        minim = new Minim(this);    
        Effetto3 = minim.loadFile("Footsteps.mp3");   
        
        minim = new Minim(this);    
        Effetto4 = minim.loadFile("Tick.mp3");  
        
        minim = new Minim(this);    
        Effetto5 = minim.loadFile("Bomb.mp3");  
        
  

  
  //Davanti
  PFont myFont = createFont("GeorgiaPro-Light-48.vlw0", 48);    //Creazione di un nuovo font
  textFont(myFont);    //Dichiarazione del font

  //Tempo
  timer = millis();    //Conteggio del timer il millisecondi
}


void draw() { 
  switch (i) {    //Casistica
  case 0 : 

    textSize(50);
    textAlign(CENTER);
    text("SOLID VODKA", width/2, 250);      //Titolo del progetto
    fill(255);

    textSize(30);
    textAlign(CENTER);
    text("RENI EDOARDO \n TECNOLOGIE DIGITALI PER IL SUONO E LE IMMAGINI \n ANNO ACCADEMICO 2018-2019 \n Da un'opera di Anton Cechov", width/2, 400);   //Campo con informazioni dello studente
    fill(255, 0, 0);


    if ( millis () - timer > 5000) {    //Se il conteggio è superiore si passa alla condizione successiva
      timer = millis();
      i++;
    }
    break;


  case 1 :    
    background(Stanza); 
      scale = 1.0;    //Fattore di ingrandimento delle figure degli uomini
      if (mouseover()) scale = 0.9;{    //Nel caso il cursore del mouse si sovrapponga alle figure il fattore di ingrandimento è di 0.9
        if ( millis () - timer > 500 ){
            Effetto3.play();
         }if (millis () - timer > 7000 && mouse == 0){    //Nel caso il timer sia maggior della condizione dichiarata e i click del mouse siano corrispondenti a quanto dichiarato
            image(Uomo2, offx1, offy1, Uomo2.width*scale, Uomo2.height*scale);    //Comparsa figure uomini e dimensione standard
            image(Uomo1, offx, offy, Uomo1.width*scale, Uomo1.height*scale);
            Effetto5.play();
           }if (testoClick & mouse == 1){
            image(Uomo1, offx, offy, Uomo1.width*scale, Uomo1.height*scale);
            image(Uomo2, offx1, offy1, Uomo2.width*scale1, Uomo2.height*scale1);    //'immagine del personaggio che recitta la battuta è ingrandita tramite fattore precedentemente dichiarato
            image(Fiore, 600, 400, 150, 150);
          }if (testoClick & mouse == 2){
            image(Uomo1, offx, offy, Uomo1.width*scale1, Uomo1.height*scale1);
            image(Uomo2, offx1, offy1, Uomo2.width*scale, Uomo2.height*scale);
            }if (testoClick & mouse == 3){
            image(Uomo1, offx, offy, Uomo1.width*scale, Uomo1.height*scale);
            image(Uomo2, offx1, offy1, Uomo2.width*scale, Uomo2.height*scale);
            image(Donna, 900, 350, 138, 440);
           }if (testoClick & mouse == 4){
            image(Uomo1, offx, offy, Uomo1.width*scale, Uomo1.height*scale);
            image(Uomo2, offx1, offy1, Uomo2.width*scale1, Uomo2.height*scale1);
            }
      }

    beat.detect(player.mix);
    fill(#1A1F18, 100);    //Riempimento del triangolo che copre lo schermo per mettere in evidenza il player
    noStroke();
    rect(0, 0, width, height); //Grandezza della finestra della composizione 
    translate(width/2, height/2); //Posiziona la figura al centro della composizione 
    fill(-1, 10);
    ellipse(0, 0, 2*rad, 2*rad);
    stroke(-1, 50);
    int bsize1 = player.bufferSize();    //Dimensione del player dinamico che segue i beats della musica
    for (int i = 0; i < bsize1 - 1; i+=5) {
      float x = (r)*cos(i*2*PI/bsize1);
      float y = (r)*sin(i*2*PI/bsize1);
      float x2 = (r + player.left.get(i)*100)*cos(i*2*PI/bsize1);
      float y2 = (r + player.left.get(i)*100)*sin(i*2*PI/bsize1);
      line(x, y, x2, y2);
        if (testoClick & mouse == 1) {    //Se il sistema rileva il click del mouse e la condizione viene verificata, a conteggio dei click viene variata la battuta
            textSize(35);    //Battute dei personaggi
            text(b1, CENTER, -230);
            textAlign(CENTER);
            fill(255);
          }else if (testoClick & mouse == 2){
             textSize(35);
             text(b2, CENTER, -230);
             textAlign(CENTER);
             fill(255);
           }else if (testoClick & mouse == 3){
              textSize(35);
              text(b3, CENTER, -230);
              textAlign(CENTER);
              fill(255);
            }else if (testoClick & mouse == 4){
              textSize(35);
              text(b4, CENTER, -230);
              textAlign(CENTER);
              fill(255);
            }else{
              noFill();
              }
 }
    beginShape();
    noFill();
    stroke(-1, 50);
    endShape();

    if ( (millis () - timer > 25000) | mouse == 5) {
      timer = millis ();
      i++;
    }
    break;


  case 2:

    background(Foresta);
    image(Uomo1, 200, 400, 138, 415);    //Immagini statiche degli uomini
    image(Uomo2, 650, 360, 138, 415);
    beat.detect(player.mix);
    fill(#1A1F18, 100);
    noStroke();
    rect(0, 0, width, height); //Grandezza della finestra della composizione 
    translate(width/2, height/2); //Posiziona la figura al centro della composizione 
    fill(-1, 10);
    ellipse(0, 0, 2*rad, 2*rad);
    stroke(-1, 50);
    int bsize2 = player.bufferSize();
    for (int i = 0; i < bsize2 - 1; i+=5) {
      Effetto1.play();
      float x = (r)*cos(i*2*PI/bsize2);
      float y = (r)*sin(i*2*PI/bsize2);
      float x2 = (r + player.left.get(i)*100)*cos(i*2*PI/bsize2);
      float y2 = (r + player.left.get(i)*100)*sin(i*2*PI/bsize2);
      line(x, y, x2, y2);
    }
    beginShape();
    noFill();
    stroke(-1, 50);
    endShape();

    if ( millis () - timer > 4000) {
      timer = millis();
      i++;
    }
    break;



  case 3:

    background(Stanza);
            scale = 1.0;
      if (mouseover()) scale = 0.9;{
        if ( millis () - timer > 500 ){
          if (mouse == 5){
            image(Uomo1, offx, offy, Uomo1.width*scale, Uomo1.height*scale);
            image(Uomo2, offx1, offy1, Uomo2.width*scale, Uomo2.height*scale);
            }if (mouse == 6){
            image(Uomo1, offx, offy, Uomo1.width*scale, Uomo1.height*scale);
            image(Uomo2, offx1, offy1, Uomo2.width*scale1, Uomo2.height*scale1);   
           }if (testoClick & mouse == 7){
            image(Uomo1, offx, offy, Uomo1.width*scale, Uomo1.height*scale);
            image(Uomo2, offx1, offy1, Uomo2.width*scale1, Uomo2.height*scale1);
            Effetto4.play();
            }if (testoClick & mouse == 8){
            image(Uomo1, offx, offy, Uomo1.width*scale, Uomo1.height*scale);
            image(Uomo2, offx1, offy1, Uomo2.width*scale1, Uomo2.height*scale1);
            }if (testoClick & mouse == 9 ){
            image(Uomo1, offx, offy, Uomo1.width*scale1, Uomo1.height*scale1);
            image(Uomo2, offx1, offy1, Uomo2.width*scale, Uomo2.height*scale);
           }if (testoClick & mouse == 10){
            image(Uomo1, offx, offy, Uomo1.width*scale, Uomo1.height*scale);
            image(Uomo2, offx1, offy1, Uomo2.width*scale1, Uomo2.height*scale1);
            }if (testoClick & mouse == 11 ){
            image(Uomo1, offx, offy, Uomo1.width*scale, Uomo1.height*scale);
            image(Uomo2, offx1, offy1, Uomo2.width*scale1, Uomo2.height*scale1);
           }if (testoClick & mouse == 12){
             Effetto2.play();
            image(Uomo1, offx, offy, Uomo1.width*scale, Uomo1.height*scale);
            image(Uomo2, offx1, offy1, Uomo2.width*scale1*2, Uomo2.height*scale1*2);
            }
        }
      }
    beat.detect(player.mix);
    fill(#1A1F18, 100);
    noStroke();
    rect(0, 0, width, height); //Grandezza della finestra della composizione 
    translate(width/2, height/2); //Posiziona la figura al centro della composizione 
    fill(-1, 10);
    ellipse(0, 0, 2*rad, 2*rad);
    stroke(-1, 50);
    int bsize3 = player.bufferSize();
    for (int i = 0; i < bsize3 - 1; i+=5) {
      float x = (r)*cos(i*2*PI/bsize3);
      float y = (r)*sin(i*2*PI/bsize3);
      float x2 = (r + player.left.get(i)*100)*cos(i*2*PI/bsize3);
      float y2 = (r + player.left.get(i)*100)*sin(i*2*PI/bsize3);
      line(x, y, x2, y2);
        if (testoClick & mouse == 6) {
          textSize(30);
          text(b5, CENTER, -230);
          textAlign(CENTER);
          fill(255);
        }else if (testoClick & mouse == 7){
           textSize(28);
           text(b6, CENTER, -230);
           textAlign(CENTER);
           fill(255);
         } else if (testoClick & mouse == 8){
            textSize(35);
            text(b7, CENTER, -230);
            textAlign(CENTER);
            fill(255);
          } else if (testoClick & mouse == 9){
            textSize(35);
            text(b8, CENTER, -230);
            textAlign(CENTER);
            fill(255);
          } else if ( testoClick & mouse == 10){
           textSize(32);
           text(b9, CENTER, -230);
           textAlign(CENTER);
           fill(255);
         }else if (testoClick & mouse == 11){
            textSize(35);
            text(b10, CENTER, -230);
            textAlign(CENTER);
            fill(255);
          } else if ( testoClick & mouse == 12){
            textSize(30);
            text(b11, CENTER, -230);
            textAlign(CENTER);
            fill(255);
          }else {
            noFill();
          }
          
    }
    beginShape();
    noFill();
    stroke(-1, 50);
    endShape();

    if ( millis () - timer > 35000 || mouse == 13) {
      timer = millis();
      i++;
    }
    break;



  case 4:


    background(0);
    beat.detect(player.mix);
    fill(#1A1F18, 100);
    noStroke();
    rect(0, 0, width, height); //Grandezza della finestra della composizione 
    translate(width/2, height/2); //Posiziona la figura al centro della composizione 
    fill(-1, 10);
    ellipse(0, 0, 2*rad, 2*rad);
    stroke(-1, 50);
    int bsize4 = player.bufferSize();
    for (int i = 0; i < bsize4 - 1; i+=5) {
      float x = (r)*cos(i*2*PI/bsize4);
      float y = (r)*sin(i*2*PI/bsize4);
      float x2 = (r + player.left.get(i)*100)*cos(i*2*PI/bsize4);
      float y2 = (r + player.left.get(i)*100)*sin(i*2*PI/bsize4);
      line(x, y, x2, y2);
          textSize(30);
          text("Fonti: \n www.SoundBible.com \n www.pexels.com \n www.freepik.com", CENTER, -310);
          textAlign(CENTER);
          fill(255);
        
    }
    beginShape();
    noFill();
    stroke(-1, 50);
    endShape();
    
    if ( millis () - timer > 10000) {
      timer = millis();
      i++;
      player.pause();
    }
    break;
  }
}



void mousePressed(){ //Se il mouse viene premuto
  testoClick = true;    //Se la condizione di pressione del mouse per la variazione del testo è verificata ed è vera 
    if (millis () - timer > 500){
      mouse++;    //Auomento del conteggiatore dei click del mouse 
    }
  }
boolean mouseover() {    //Booleane che determinano le condizioni attraverso cui il sistema verifica se il cursore del mouse è sovrapposto alle immagini degli uomini e quindi se andare ad ingrandire le stesse 
  if ( ( mouseX > offx && mouseX < Uomo1.width+offx ) && ( mouseY > offy && mouseY < Uomo1.height +offy) || ( ( mouseX > offx1 && mouseX < Uomo2.width+offx1) && ( mouseY > offy1 && mouseY < Uomo2.height +offy1 ) ) ) return false;
  return true; 
  } 

Thank you!

1 Like

Is your problem solved when you remove the 0 behind .vlw?

PFont myFont = createFont("GeorgiaPro-Light-48.vlw", 48);
1 Like

Nope, nothing happens. The error is always the same. I just tried importing a Font outside processing itself but it didn’t work either.

  • Did you try to drag and drop the font file on to the code of your sketch?

  • Also in menu “Tools” there is a tool to “Create Font”. You might want to do this prior to running your sketch. So you make sure the font is in your sketch folder.

I tried several times and now font has changed , but i keep receveing the same error.

void setup();{
  PFont myFont = createFont("GeorgiaPro-Light-35.vlw", 35);    //Creazione di un nuovo font
  myFont = loadFont("GeorgiaPro-Light-35.vlw");
 textFont(myFont); 
}


void setup() { // NO ; here  !!!!!!!!!!
  size(800,800); // USE SIZE as first line in setup() ALWAYS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  PFont myFont = createFont("GeorgiaPro-Light-35.vlw", 35);    //Creazione di un nuovo font
  //  myFont = loadFont("GeorgiaPro-Light-35.vlw");  // NOT necessary !!!!!!!!!!!!!!
 textFont(myFont); 
}
2 Likes