import jass.render.*;
import jass.engine.*;
import jass.generators.*;
public class Creaking extends Controller {
public Creaking(java.awt.Frame parent,boolean modal,int nsliders) {
super (parent, modal,nsliders,1);
}
public void onSlider(int k) {
switch(k) {
case 0:
v = (float)super.val[0];
af.setContactProperties(v,fnorm);
break;
case 1:
fnorm = (float)super.val[1];
float ddamp = (float)(fnorm*10);
af.setContactProperties(v,fnorm);
mob.setDamping(1 + ddamp);
break;
}
}
public void onButton(int k) {
switch(k) {
case 0:
sp1.resetAGC();
break;
}
}
{
setButtonNames (new String[] {"Reset"});
}
static ModalObject mob;
static StickSlipSimple af;
static ModalObject.Contact c1;
static SourcePlayer sp1;
static float k_mu = 5.f;
static float vc = 1000.f;
static float fmin = .1f;
static float fnorm = .1f;
static float v = .1f;
static int nsliders = 2;
static String[] names = {"speed ","Fnorm "};
static double[] val = {v, fnorm};
static double[] min = {.1, .001};
static double[] max = {1, 1};
public static void main (String args[]) throws Exception {
float srate = 44100.f;
int bufferSize = 128;
int bufferSizeJavaSound = 8*1024;
if(args.length != 1) {
System.out.println("Usage: java Creaking ../data/stick.sy");
return;
}
try {
mob = new ModalObject(new ModalModel(args[0]),srate,bufferSize);
} catch (java.io.FileNotFoundException ee) {
System.out.println("Modes file not found\n");
}
af = new StickSlipSimple(srate,bufferSize);
c1 = (ModalObject.Contact)(mob.addSource(af));
c1.start();
sp1 = new SourcePlayer(bufferSize,bufferSizeJavaSound,srate);
sp1.addSource(mob);
sp1.start();
af.setModelParameters(k_mu,fmin,vc);
af.setContactProperties(v,fnorm);
Creaking app=new Creaking (new java.awt.Frame (), true,nsliders);
app.setValues(val,min,max,names);
app.setVisible(true);
}
}