package jmsltutorial; import com.softsynth.jsyn.*; /************** ** WARNING - this code automatically generated by Wire. ** The real source is probably a Wire patch. ** Do NOT edit this file unless you copy it to another directory and change the name. ** Otherwise it is likely to get clobbered the next time you ** export Java source code from Wire. ** ** Wire is available from: http://www.softsynth.com/wire/ */ public class TootDelay extends SynthNote { // Declare units and ports. InterpolatingDelayUnit iDelay; public SynthInput input; public SynthInput delay; MultiplyUnit mult; MultiplyUnit mult2; AddUnit add; public SynthInput feedback; EnvelopePlayer envPlay; SynthEnvelope envelope; public TootDelay() { this(Synth.getSharedContext()); } public TootDelay(SynthContext synthContext) { super(synthContext); // Create unit generators. add(iDelay = new InterpolatingDelayUnit(synthContext, 3.0)); add(mult = new MultiplyUnit(synthContext)); add(mult2 = new MultiplyUnit(synthContext)); add(add = new AddUnit(synthContext)); add(envPlay = new EnvelopePlayer(synthContext)); double[] envelopeData = { 0.009797297297297298, 0.9875, 0.010135135135135134, 0.0, }; envelope = new SynthEnvelope(synthContext, envelopeData); envelopeData = null; envelope.setSustainLoop(1, 1); envelope.setReleaseLoop(-1, -1); // Connect units and ports. addPort(amplitude = envPlay.amplitude, "amplitude"); amplitude.setup(0.0, 0.5, 1.0); addPort(output = mult.output, "output"); iDelay.output.connect(mult.inputA); iDelay.output.connect(mult2.inputB); addPort(input = add.inputB, "input"); input.setup(0.0, 0.5, 1.0); addPort(delay = iDelay.delay, "delay"); delay.setup(0.0, 0.5, 3.0); mult2.output.connect(add.inputA); add.output.connect(iDelay.input); addPort(feedback = mult2.inputA, "feedback"); feedback.setup(0.0, 0.5, 1.0); envPlay.rate.set(0, 1.0); envPlay.output.connect(mult.inputB); } public void setStage(int time, int stage) { switch (stage) { case 0 : envPlay.envelopePort.clear(time); envPlay.envelopePort.queueOn(time, envelope); start(time); break; case 1 : envPlay.envelopePort.queueOff(time, envelope); break; default : break; } } }