本文整理汇总了Java中com.jsyn.unitgen.VariableRateStereoReader类的典型用法代码示例。如果您正苦于以下问题:Java VariableRateStereoReader类的具体用法?Java VariableRateStereoReader怎么用?Java VariableRateStereoReader使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
VariableRateStereoReader类属于com.jsyn.unitgen包,在下文中一共展示了VariableRateStereoReader类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: test
import com.jsyn.unitgen.VariableRateStereoReader; //导入依赖的package包/类
private void test() {
URL sampleFile;
try {
sampleFile = new URL("http://www.softsynth.com/samples/Clarinet.wav");
// sampleFile = new URL("http://www.softsynth.com/samples/NotHereNow22K.wav");
} catch (MalformedURLException e2) {
e2.printStackTrace();
return;
}
synth = JSyn.createSynthesizer();
FloatSample sample;
try {
// Add an output mixer.
synth.add(lineOut = new LineOut());
// Load the sample and display its properties.
SampleLoader.setJavaSoundPreferred(false);
sample = SampleLoader.loadFloatSample(sampleFile);
System.out.println("Sample has: channels = " + sample.getChannelsPerFrame());
System.out.println(" frames = " + sample.getNumFrames());
System.out.println(" rate = " + sample.getFrameRate());
System.out.println(" loopStart = " + sample.getSustainBegin());
System.out.println(" loopEnd = " + sample.getSustainEnd());
if (sample.getChannelsPerFrame() == 1) {
synth.add(samplePlayer = new VariableRateMonoReader());
samplePlayer.output.connect(0, lineOut.input, 0);
} else if (sample.getChannelsPerFrame() == 2) {
synth.add(samplePlayer = new VariableRateStereoReader());
samplePlayer.output.connect(0, lineOut.input, 0);
samplePlayer.output.connect(1, lineOut.input, 1);
} else {
throw new RuntimeException("Can only play mono or stereo samples.");
}
// Start synthesizer using default stereo output at 44100 Hz.
synth.start();
samplePlayer.rate.set(sample.getFrameRate());
// We only need to start the LineOut. It will pull data from the
// sample player.
lineOut.start();
// We can simply queue the entire file.
// Or if it has a loop we can play the loop for a while.
if (sample.getSustainBegin() < 0) {
System.out.println("queue the sample");
samplePlayer.dataQueue.queue(sample);
} else {
System.out.println("queueOn the sample");
samplePlayer.dataQueue.queueOn(sample);
synth.sleepFor(8.0);
System.out.println("queueOff the sample");
samplePlayer.dataQueue.queueOff(sample);
}
// Wait until the sample has finished playing.
do {
synth.sleepFor(1.0);
} while (samplePlayer.dataQueue.hasMore());
synth.sleepFor(0.5);
} catch (IOException e1) {
e1.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
// Stop everything.
synth.stop();
}