import jass.render.*;
import jass.engine.*;
import jass.generators.*;
import jass.neuron.*;
public class T1 {
SourcePlayer sp1;
Sine s1;
Sine s2;
Sine s3;
ThreadMixer tm;
Mixer m1;
Mixer m2;
Mixer m3;
float srate = 44100.f;
boolean multithreaded = true;
public static void main (String args[]) throws SinkIsFullException {
new T1(args);
}
public T1(String args[]) throws SinkIsFullException {
int bufferSize = 1024;
int bufferSizeJavaSound = 10*1024;
s1 = new Sine(srate,bufferSize);
s2 = new Sine(srate,bufferSize);
s3 = new Sine(srate,bufferSize);
tm = new ThreadMixer(bufferSize);
m1 = new Mixer(bufferSize,2);
m2 = new Mixer(bufferSize,2);
m3 = new Mixer(bufferSize,2);
sp1 = new SourcePlayer(bufferSize,bufferSizeJavaSound,srate);
sp1.addSource(tm);
tm.addSource(m1);
tm.addSource(s2);
m1.addSource(s2,true);
m1.addSource(s1);
tm.init();
tm.setGain(0,1f);
tm.setGain(1,1f);
/*
if(multithreaded) {
sp1.addSource(tm);
tm.addSource(m1);
tm.addSource(m2);
m1.addSource(s1);
m1.addSource(s2,true);
m2.addSource(m1,true);
m2.addSource(s2);
tm.init();
tm.setGain(0,1f);
tm.setGain(1,1f);
tm.setGain(2,1f);
} else {
sp1.addSource(m3);
m3.addSource(m2);
m3.addSource(m1);
m1.addSource(s1);
m1.addSource(s2);
m2.addSource(m1);
m2.addSource(s2);
}
*/
m1.setGain(0,1f);
m1.setGain(1,1f);
m2.setGain(0,1f);
m2.setGain(1,1f);
m3.setGain(0,1f);
m3.setGain(1,1f);
s1.setFrequency(400);
s2.setFrequency(900);
s2.setFrequency(999);
sp1.setPriority(Thread.MAX_PRIORITY);
sp1.start();
}
}