import jass.render.*; import jass.engine.*; import jass.generators.*; import java.net.*; import java.io.*; public class CreakingApplet extends AppletController { float srate = 44100.f; int bufferSize = 128; int bufferSizeJavaSound = 8*1024; ModalObject mob; StickSlipSimple af; ModalObject.Contact c1; SourcePlayer sp1; float k_mu = 5.f; float vc = 1000.f; float fmin = .1f; float fnorm = .1f; float v = .1f; String syfile = "../data/stick.sy"; public void setNSliders() { nsliders = 2; } public void setNButtons() { nbuttons = 1; } protected 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; } } protected void jButtonMousePressed (int k,java.awt.event.MouseEvent evt) { switch(k) { case 0: sp1.resetAGC(); break; } } public void init() { super.init(); syfile = getParameter("syfile"); } public void start() { URL codebase = getCodeBase(); URL syurl = null; try { syurl = new URL(codebase,syfile); } catch(MalformedURLException e) { System.out.println(e+" Malformed URL: " +codebase+" "+ syfile); } ModalModel mm=null; try { mm = new ModalModel(syurl); } catch(IOException e) { System.out.println(e); } mob = new ModalObject(mm,srate,bufferSize); af = new StickSlipSimple(srate,bufferSize); sp1 = new SourcePlayer(bufferSize,bufferSizeJavaSound,srate); try { c1 = (ModalObject.Contact)(mob.addSource(af)); sp1.addSource(mob); } catch(SinkIsFullException e) { System.out.println(e); } c1.start(); af.setModelParameters(k_mu,fmin,vc); af.setContactProperties(v,fnorm); String[] names = {"speed ","Fnorm "}; double[] val = {v, fnorm}; double[] min = {.1, .001}; double[] max = {1, 1}; setValues(val,min,max,names); jButton[0].setText ("Reset"); sp1.start(); } }