import java.io.*;
import jass.render.*;
import jass.engine.*;
import jass.generators.*;
/**
Render to raw 16 bit PCM file (or ascii) tmp.raw as long as not interrupted.
*/
public class RenderToFile extends Thread {
public static void main(String[] args)
throws InterruptedException, SinkIsFullException, FileNotFoundException {
int bufferSize = 128;
float srate = 44100;
int twait = 50;
boolean ascii = false;
SourcePlayer sp1 = new SourcePlayer(bufferSize,srate,"tmp.raw");
LoopBuffer af2 = new LoopBuffer(srate,bufferSize,"../data/grid.wav");
LoopBuffer af3 = new LoopBuffer(srate,bufferSize,"../data/neytone2.wav");
ModalObject mo1 = new ModalObject(new ModalModel("../data/ketle.sy"),srate,bufferSize);
ModalObject.Contact c1 = (ModalObject.Contact)mo1.addSource(af2);
ModalObject.Contact c2 = (ModalObject.Contact)mo1.addSource(af3);
c1.start();
c2.start();
sp1.addSource(mo1);
long lt = 0;
float v=1;
//sp1.start(); // render to file instead
// render loop
try {
while(true) {
lt += twait;
double realTime = lt/1000.;
if(ascii) {
sp1.advanceTime(realTime,ascii);
} else {
sp1.advanceTime(realTime);
}
sleep(twait);
v = v + .1f;
af2.setSpeed(v);
}
} catch(Exception e) {
System.out.println("RenderToFile"+e);
}
}
}