com.softsynth.jmsl.jsyn
Class BussedVoiceAllocatorMultiOut

java.lang.Object
  extended by com.softsynth.jsyn.util.VoiceAllocator
      extended by com.softsynth.jmsl.jsyn.BussedVoiceAllocatorMultiOut
Direct Known Subclasses:
BVAClassName

public abstract class BussedVoiceAllocatorMultiOut
extends com.softsynth.jsyn.util.VoiceAllocator

JSyn VoiceAllocator for SynthNotes whose output has one or more parts. It creates a BusReader for each part of SynthNote.output. setNumOutputs() then buildReaders() Subclasses must implement makeVoice() and addVoiceToMix()

Author:
Nick Didkovsky 6/6/04
See Also:
BVAClassName

Constructor Summary
BussedVoiceAllocatorMultiOut(int numVoices)
          constructor with null synthcontext.
BussedVoiceAllocatorMultiOut(int numVoices, com.softsynth.jsyn.SynthContext synthContext)
           
 
Method Summary
 com.softsynth.jsyn.BusWriter addBusWriter()
           
 com.softsynth.jsyn.SynthCircuit addVoiceToMix(com.softsynth.jsyn.SynthCircuit circuit)
           for (int i = 0; i &lt getNumOutputs(); i++) { BusWriter busWriter = addBusWriter(); BusWriter busWriter = addBusWriter(); if (circuit instanceof OutputProvider) { ((SynthOutput) ((OutputProvider) circuit).getOutput(i)).connect(0, busWriter.input, 0); } else { circuit.output.connect(i, busWriter.input, 0); } connectBusWriterToBusReader(busWriter, i); } return circuit;
 void buildReaders()
          Call after setNumOutputs()
 void connectBusWriterToBusReader(com.softsynth.jsyn.BusWriter busWriter, int readerIndex)
           
 com.softsynth.jsyn.BusReader getBusReader(int n)
           
 int getNumOutputs()
           
 com.softsynth.jsyn.SynthOutput getOutput()
           
 com.softsynth.jsyn.SynthOutput getOutput(int part)
           
 com.softsynth.jsyn.SynthContext getSynthContext()
           
 void setNumOutputs(int n)
          Call buildReaders() after this
 void setSynthContext(com.softsynth.jsyn.SynthContext context)
           
 void start()
           
 void start(int time)
           
 void stop()
           
 void stop(int time)
           
 
Methods inherited from class com.softsynth.jsyn.util.VoiceAllocator
allocate, allocate, allocate, allocate, clear, delete, free, free, getMaxVoices, getNthVoice, getNumVoices, makeVoice, steal, steal, steal, steal
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BussedVoiceAllocatorMultiOut

public BussedVoiceAllocatorMultiOut(int numVoices)
                             throws com.softsynth.jsyn.SynthException
constructor with null synthcontext. BusReaders built with no-arg constructor

Throws:
com.softsynth.jsyn.SynthException

BussedVoiceAllocatorMultiOut

public BussedVoiceAllocatorMultiOut(int numVoices,
                                    com.softsynth.jsyn.SynthContext synthContext)
                             throws com.softsynth.jsyn.SynthException
Throws:
com.softsynth.jsyn.SynthException
Method Detail

getNumOutputs

public int getNumOutputs()

setNumOutputs

public void setNumOutputs(int n)
Call buildReaders() after this


start

public void start()

start

public void start(int time)

stop

public void stop()
Overrides:
stop in class com.softsynth.jsyn.util.VoiceAllocator

stop

public void stop(int time)
Overrides:
stop in class com.softsynth.jsyn.util.VoiceAllocator

buildReaders

public void buildReaders()
Call after setNumOutputs()


addBusWriter

public com.softsynth.jsyn.BusWriter addBusWriter()

getBusReader

public com.softsynth.jsyn.BusReader getBusReader(int n)

connectBusWriterToBusReader

public void connectBusWriterToBusReader(com.softsynth.jsyn.BusWriter busWriter,
                                        int readerIndex)

getOutput

public com.softsynth.jsyn.SynthOutput getOutput()
Returns:
getOutput(0)

getOutput

public com.softsynth.jsyn.SynthOutput getOutput(int part)
Returns:
the nth BusReader's output

addVoiceToMix

public com.softsynth.jsyn.SynthCircuit addVoiceToMix(com.softsynth.jsyn.SynthCircuit circuit)
                                              throws com.softsynth.jsyn.SynthException
 
      for (int i = 0; i &lt getNumOutputs(); i++) {
      BusWriter busWriter = addBusWriter();
      BusWriter busWriter = addBusWriter();
            if (circuit instanceof OutputProvider) {
                ((SynthOutput) ((OutputProvider) circuit).getOutput(i)).connect(0, busWriter.input, 0);
            } else {
                circuit.output.connect(i, busWriter.input, 0);
            }
      connectBusWriterToBusReader(busWriter, i);
      }
      return circuit;
      
 

Parameters:
circuit -
Returns:
Throws:
com.softsynth.jsyn.SynthException

getSynthContext

public com.softsynth.jsyn.SynthContext getSynthContext()
Returns:

setSynthContext

public void setSynthContext(com.softsynth.jsyn.SynthContext context)
Parameters:
context -