package rice2604hw; import com.softsynth.jsyn.*; /** FM Synthcircuit @author Andrew Gram 3/99 reusable FM pair */ public class FMCircuit extends SynthCircuit { // declare units SineOscillator modOsc; SineOscillator carOsc; AddUnit adder; public SynthInput modfrequency; public SynthInput modamplitude; public SynthInput carfrequency; public SynthInput caramplitude; public SynthOutput output; // make constructor public FMCircuit() throws SynthException { super(); // add SynthUnits to circuits add(modOsc = new SineOscillator()); add(carOsc = new SineOscillator()); add(adder = new AddUnit()); // start connecting modOsc.output.connect(adder.inputB); adder.output.connect(carOsc.frequency); // add ports visible to other classes addPort(modfrequency = modOsc.frequency, "Mod Frequency"); addPort(modamplitude = modOsc.amplitude, "Mod Amplitude"); addPort(carfrequency = adder.inputA, "Carrier Frequency"); addPort(caramplitude = carOsc.amplitude, "Carrier Amplitude"); addPort(output = carOsc.output, "Output"); // initialize ports modfrequency.setSignalType(Synth.SIGNAL_TYPE_OSC_FREQ); carfrequency.setSignalType(Synth.SIGNAL_TYPE_OSC_FREQ); modamplitude.setSignalType(Synth.SIGNAL_TYPE_OSC_FREQ); } }