public abstract class UnitGenerator
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static double |
FALSE |
static java.lang.String |
PORT_NAME_AMPLITUDE |
static java.lang.String |
PORT_NAME_CUTOFF |
static java.lang.String |
PORT_NAME_FREQUENCY |
static java.lang.String |
PORT_NAME_FREQUENCY_SCALER |
static java.lang.String |
PORT_NAME_INPUT |
static java.lang.String |
PORT_NAME_OUTPUT |
static java.lang.String |
PORT_NAME_PAN |
static java.lang.String |
PORT_NAME_PHASE |
static java.lang.String |
PORT_NAME_PRESSURE |
static java.lang.String |
PORT_NAME_TIMBRE |
static java.lang.String |
PORT_NAME_TIME |
protected SynthesisEngine |
synthesisEngine |
static double |
TRUE |
protected static double |
VERY_SMALL_FLOAT |
Constructor and Description |
---|
UnitGenerator() |
Modifier and Type | Method and Description |
---|---|
void |
addPort(UnitPort port) |
void |
addPort(UnitPort port,
java.lang.String name) |
protected void |
autoStop() |
double |
convertHalfLifeToMultiplier(double halfLife)
Calculate signal based on halflife of an exponential decay.
|
protected double |
convertTimeToRate(double time)
Calculate rate based on phase going from 0.0 to 1.0 in time.
|
void |
flattenOutputs()
Flatten output ports so we don't output a changing signal when stopped.
|
void |
generate()
Generate a full block.
|
abstract void |
generate(int start,
int limit)
Perform essential synthesis function.
|
Circuit |
getCircuit() |
double |
getFramePeriod() |
int |
getFrameRate() |
int |
getId() |
UnitPort |
getPortByName(java.lang.String portName)
Case-insensitive search for a port by name.
|
java.util.Collection<UnitPort> |
getPorts() |
SynthesisEngine |
getSynthesisEngine() |
Synthesizer |
getSynthesizer() |
UnitGenerator |
getTopUnit() |
UnitGenerator |
getUnitGenerator()
Needed by UnitSink
|
protected double |
incrementWrapPhase(double currentPhase,
double phaseIncrement) |
boolean |
isEnabled() |
boolean |
isStartRequired()
Some units, for example LineOut and FixedRateMonoWriter, will only work if
started explicitly.
|
void |
printConnections() |
void |
printConnections(java.io.PrintStream out) |
void |
printConnections(java.io.PrintStream out,
int level) |
void |
pullData(long frameCount,
int start,
int limit) |
void |
setCircuit(Circuit circuit) |
void |
setEnabled(boolean enabled)
If enabled, then a unit will execute if its output is connected to another unit that is
executed.
|
void |
setFrameRate(int rate)
Deprecated.
ignored, frameRate comes from the SynthesisEngine
|
void |
setPort(java.lang.String portName,
double value,
TimeStamp timeStamp)
Needed by UnitVoice
|
void |
setSynthesisEngine(SynthesisEngine synthesisEngine) |
void |
start()
Start executing this unit directly by adding it to a "run list" of units in the synthesis
engine.
|
void |
start(double time)
Start a unit at the specified time.
|
void |
start(TimeStamp timeStamp)
Start a unit at the specified time.
|
void |
stop() |
void |
stop(double time)
Stop a unit at the specified time.
|
void |
stop(TimeStamp timeStamp) |
protected static final double VERY_SMALL_FLOAT
public static final java.lang.String PORT_NAME_INPUT
public static final java.lang.String PORT_NAME_OUTPUT
public static final java.lang.String PORT_NAME_PHASE
public static final java.lang.String PORT_NAME_FREQUENCY
public static final java.lang.String PORT_NAME_FREQUENCY_SCALER
public static final java.lang.String PORT_NAME_AMPLITUDE
public static final java.lang.String PORT_NAME_PAN
public static final java.lang.String PORT_NAME_TIME
public static final java.lang.String PORT_NAME_CUTOFF
public static final java.lang.String PORT_NAME_PRESSURE
public static final java.lang.String PORT_NAME_TIMBRE
public static final double FALSE
public static final double TRUE
protected SynthesisEngine synthesisEngine
public int getId()
public int getFrameRate()
public double getFramePeriod()
public void addPort(UnitPort port)
public void addPort(UnitPort port, java.lang.String name)
public UnitPort getPortByName(java.lang.String portName)
portName
- public java.util.Collection<UnitPort> getPorts()
public abstract void generate(int start, int limit)
start
- offset into port bufferslimit
- limit offset into port buffers for looppublic void generate()
public SynthesisEngine getSynthesisEngine()
public Synthesizer getSynthesizer()
public void setSynthesisEngine(SynthesisEngine synthesisEngine)
synthesisEngine
- the synthesisEngine to setpublic UnitGenerator getTopUnit()
protected void autoStop()
public double convertHalfLifeToMultiplier(double halfLife)
protected double incrementWrapPhase(double currentPhase, double phaseIncrement)
protected double convertTimeToRate(double time)
public void flattenOutputs()
public void setCircuit(Circuit circuit)
public Circuit getCircuit()
public void pullData(long frameCount, int start, int limit)
public boolean isEnabled()
public void setEnabled(boolean enabled)
enabled
- UnitGate.setupAutoDisable(UnitGenerator)
,
start
public boolean isStartRequired()
public void start()
setEnabled
public void start(double time)
time
- start
public void start(TimeStamp timeStamp)
timeStamp
- start
public void stop(double time)
time
- start
public void stop()
public void stop(TimeStamp timeStamp)
@Deprecated public void setFrameRate(int rate)
rate
- public UnitGenerator getUnitGenerator()
public void setPort(java.lang.String portName, double value, TimeStamp timeStamp)
public void printConnections()
public void printConnections(java.io.PrintStream out)
public void printConnections(java.io.PrintStream out, int level)