unhex ?

TiPpFeHlEr2

Grünschnabel
hi liebes forum:)

bin neu hier, also ich bin dabei ein programm "mit processing" zu schreiben
das OSC daten empfängt und auswertet, und bei einem bestimmten wert ein midi-signal sendet. dafür möchte ich eine GUI machen wo mann den midiport auswählen kann.

nun mein problem:
ich brauche dafür unhex() weil ich nur "strings" eingeben kann aber ein "integer" brauche
ich bekomme aber volgende fehler meldung

ERROR. an error occured while forwarding a Controller value
to a method in your program. please check your code for any
possible errors that might occur in this method .
e.g. check for casting errors, possible nullpointers, array overflows ... .
method: textValue
exception: java.lang.reflect.InvocationTargetException


und hier ist der code dazu


import controlP5.*;
import oscP5.*;
import netP5.*;
import promidi.*;

ControlP5 controlP5;
OscP5 oscP5;
NetAddress myRemoteLocation;
MidiIO midiIO;
MidiOut midiOut;
Note note;
public String textValue = "";
public int w ;
public int e ;

void setup()

{
size(500,400);
background(100);
//frameRate(25);
controlP5 = new ControlP5(this);
oscP5 = new OscP5(this,12000);
myRemoteLocation = new NetAddress("127.0.0.1",12000);
midiIO = MidiIO.getInstance(this);

PFont fontA = loadFont("Ziggurat-HTF-Black-32.vlw");
textFont(fontA, 15);

for(int i = 0; i < midiIO.numberOfOutputDevices();i++){
println("output "+nf(i,2)+": "+midiIO.getOutputDeviceName(i));


fill(51);

text("output " +nf(i,2)+ " : "+midiIO.getOutputDeviceName(i), 20, 15*i+20);

}


controlP5.addTextfield("textValue",10,300,20,20);
controlP5.addBang("textValue2",40,300,100,20);//printText
//

}

void textValue(){

w = unhex(textValue);
if (w < 10){
e = w;
println(e);
}
else if ((w>15)&&(w<26)){
e = w-6;
//println(e);
}
else if ((w>31)&&(w<42)){
e = w-12;
//println(e);
}
else if ((w>48)&&(w<58)){
e = w-18;
println(e);
}


midiOut = midiIO.getMidiOut(0,e);

println("Device open nr"+e);
fill(51);

text("X", 5, 15*e+20);
}




void draw(){





}

int a;
void oscEvent(OscMessage theOscMessage){




int firstValue = theOscMessage.get(0).intValue();
println(" 1 values: "+firstValue );
println(" 2 values: "+a );
if((a > 9000) && (firstValue < 4000)) {


note = new Note(64,127,25);
midiOut.sendNote(note);
println(" BEAT ");
}


a = firstValue;
}


was ist daran falsch?

mfg maik
 
Zuletzt bearbeitet:
Zurück