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
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: