diff options
Diffstat (limited to 'tests/com/jsyn/util/DebugSampleLoader.java')
-rw-r--r-- | tests/com/jsyn/util/DebugSampleLoader.java | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/tests/com/jsyn/util/DebugSampleLoader.java b/tests/com/jsyn/util/DebugSampleLoader.java deleted file mode 100644 index 23945b5..0000000 --- a/tests/com/jsyn/util/DebugSampleLoader.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Copyright 2010 Phil Burk, Mobileer Inc - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.jsyn.util; - -import java.io.File; -import java.io.IOException; - -import com.jsyn.JSyn; -import com.jsyn.Synthesizer; -import com.jsyn.data.FloatSample; -import com.jsyn.unitgen.LineOut; -import com.jsyn.unitgen.VariableRateDataReader; -import com.jsyn.unitgen.VariableRateMonoReader; -import com.jsyn.unitgen.VariableRateStereoReader; - -/** - * Play a sample from a WAV file using JSyn. - * - * @author Phil Burk (C) 2010 Mobileer Inc - */ -public class DebugSampleLoader { - private Synthesizer synth; - private VariableRateDataReader samplePlayer; - private LineOut lineOut; - - private void test() throws IOException { - // File sampleFile = new File("samples/cello_markers.wav"); - // File sampleFile = new File("samples/Piano_A440_PT.aif"); - File sampleFile = new File("samples/sine_400_loop_i16.wav"); - // File sampleFile = new File("samples/TwoDiffPitchedSines_F32_PT.wav"); - // File sampleFile = new File("samples/sine_400_u8.aif"); - // File sampleFile = new File("samples/sine_400_s8.aif"); - // File sampleFile = new File("samples/sine_400_ulaw.aif"); - // File sampleFile = new File("samples/sine_400_ulaw.wav"); - - // File sampleFile = new File("samples/aaClarinet.wav"); - // File sampleFile = new File("samples/sine_400_mono.wav"); - // File sampleFile = new File("samples/sine_200_300_i16.wav"); - // File sampleFile = new File("samples/sine_200_300_i24.wav"); - // File sampleFile = new File("samples/M1F1-int16-AFsp.wav"); - // File sampleFile = new File("samples/M1F1-int24-AFsp.wav"); - // File sampleFile = new File("samples/M1F1-float32-AFsp.wav"); - // File sampleFile = new File("samples/M1F1-int16WE-AFsp.wav"); - // File sampleFile = new File("samples/M1F1-int24WE-AFsp.wav"); - // File sampleFile = new File("samples/M1F1-float32WE-AFsp.wav"); - // File sampleFile = new File("samples/sine_200_300_i16.aif"); - // File sampleFile = new File("samples/sine_200_300_f32.wavex"); - // File sampleFile = new File("samples/Sine32bit.aif"); - // File sampleFile = new File("samples/Sine32bit.wav"); - // File sampleFile = new File("samples/smartCue.wav"); - - // URL sampleFile = new URL("http://www.softsynth.com/samples/Clarinet.wav"); - - 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()); - - } catch (IOException e1) { - e1.printStackTrace(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - // Stop everything. - synth.stop(); - } - - public static void main(String[] args) { - try { - new DebugSampleLoader().test(); - } catch (IOException e) { - e.printStackTrace(); - } - } -} |