import net.fladdict.oscillator.*; /* Oscillator this class is the base class for all oscillators. if you want to contain series of different oscillateors in one array. use like Oscillator[] = osc_ar; OscSin, OscCos, OscSquare... etc these class generates wave. parameter for the constractor is (amplitude, period, offset); use .update(); to update wave position use .getValue(); to get current value of wave OscComposite this class can contain several oscilattors as an array. it is subclass of Oscillator and compatible with other oscilattors. you can contain another OscComposite class recursively for more complex wave. give array as constractor like oscCom = new OscComposite( osc_array ); use .addOscillator(osc); to add new oscillator to OscComposite */ int oscMode = 0; Oscillator osc; void setup(){ size(256,256); loop(); background(255); osc = new OscSin(100,100,0,0); } void draw(){ float oldVal = osc.getValue(); osc.update(); //update wave float val = osc.getValue(); //get wave value line(254,oldVal+128, 254,val+128); //Shift screen for(int y=0; y<256; y++){ for(int x=0; x<255; x++){ color col = get(x+1,y); set(x,y,col); } } } void mousePressed(){ changeWave(); } void keyPressed(){ changeWave(); } void changeWave(){ background(255); oscMode += 1; if(oscMode==9) oscMode = 0; if(oscMode == 0){ osc = new OscSin(100,100,0,0); }else if(oscMode == 1){ osc = new OscCos(100,100,0,0); }else if(oscMode == 2){ osc = new OscTriangle(100,100,0,0); }else if(oscMode == 3){ osc = new OscSquare(100,100,0,0); }else if(oscMode == 4){ osc = new OscSawTooth(100,100,0,0); }else if(oscMode == 5){ osc = new OscSawTooth2(100,100,0,0); }else if(oscMode == 6){ osc = new OscWhiteNoise(100); }else if(oscMode == 7){ //Compound Wave Oscillator[] osc_ar = new Oscillator[2]; osc_ar[0] = new OscSin(100,200,0,0); osc_ar[1] = new OscSin(20,20,0,0); osc = new OscComposite(osc_ar); osc.addOscillator(new OscTriangle(13,10,0,0)); }else if(oscMode == 8){ osc = new OscSin(50,10); Oscillator osc2 = new OscSawTooth(100,100); Oscillator osc3 = new OscSquare(40,100); osc.setAmplitude(osc2); osc.setAmpOffset(osc3); } }