Package ptolemy.actor.lib.javasound
Class LiveSoundActor
- java.lang.Object
-
- ptolemy.kernel.util.NamedObj
-
- ptolemy.kernel.InstantiableNamedObj
-
- ptolemy.kernel.Entity<T>
-
- ptolemy.kernel.ComponentEntity<T>
-
- ptolemy.actor.AtomicActor<TypedIOPort>
-
- ptolemy.actor.TypedAtomicActor
-
- ptolemy.actor.lib.javasound.LiveSoundActor
-
- All Implemented Interfaces:
java.lang.Cloneable
,Actor
,Executable
,FiringsRecordable
,Initializable
,TypedActor
,Changeable
,Debuggable
,DebugListener
,Derivable
,Instantiable
,ModelErrorHandler
,MoMLExportable
,Moveable
,Nameable
- Direct Known Subclasses:
AudioCapture
,AudioPlayer
public class LiveSoundActor extends TypedAtomicActor
This actor forms a base class for actors that interact with real-time sound through the ptolemy.media.LiveSound class. This class manages the parameters for live sound.Note: Requires Java 2 v1.3.0 or later.
- Since:
- Ptolemy II 4.0
- Version:
- $Id$
- Author:
- Steve Neuendorffer, Edward A. Lee (contributor)
- See Also:
LiveSound
,AudioPlayer
,AudioCapture
- Pt.AcceptedRating:
- Yellow (chf)
- Pt.ProposedRating:
- Green (neuendor)
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class ptolemy.kernel.Entity
Entity.ContainedObjectsIterator
-
-
Field Summary
Fields Modifier and Type Field Description protected int
_bitsPerSample
Value of the bitsPerSample parameter.protected int
_bufferSize
The requested buffer size.protected int
_channels
The number of channels.protected boolean
_isExecuting
True if this actor is executing.protected int
_sampleRate
The value of the sampleRate parameter.protected int
_transferSize
The transfer size.SharedParameter
bitsPerSample
The number of bits per sample.SharedParameter
bufferSize
The requested buffer size in the audio hardware.SharedParameter
channels
The number of audio channels.SharedParameter
sampleRate
The sample rate in samples per second.SharedParameter
transferSize
The number of samples that will be transferred to the audio driver together.-
Fields inherited from class ptolemy.actor.TypedAtomicActor
_typesValid
-
Fields inherited from class ptolemy.actor.AtomicActor
_actorFiringListeners, _initializables, _notifyingActorFiring, _stopRequested
-
Fields inherited from class ptolemy.kernel.util.NamedObj
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _deferChangeRequests, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
-
Fields inherited from interface ptolemy.actor.Executable
COMPLETED, NOT_READY, STOP_ITERATING
-
-
Constructor Summary
Constructors Constructor Description LiveSoundActor(CompositeEntity container, java.lang.String name)
Construct an actor with the given container and name.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
_initializeAudio()
Initialize the audio system.void
attributeChanged(Attribute attribute)
Handle change requests for all parameters.void
initialize()
Initialize this actor.void
wrapup()
Wrapup execution.-
Methods inherited from class ptolemy.actor.TypedAtomicActor
_containedTypeConstraints, _customTypeConstraints, _defaultTypeConstraints, _fireAt, _fireAt, attributeTypeChanged, clone, clone, isBackwardTypeInferenceEnabled, newPort, typeConstraintList, typeConstraints
-
Methods inherited from class ptolemy.actor.AtomicActor
_actorFiring, _actorFiring, _declareDelayDependency, addActorFiringListener, addInitializable, connectionsChanged, createReceivers, declareDelayDependency, fire, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, postfire, prefire, preinitialize, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, setContainer, stop, stopFire, terminate
-
Methods inherited from class ptolemy.kernel.ComponentEntity
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName
-
Methods inherited from class ptolemy.kernel.Entity
_addPort, _description, _exportMoMLContents, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName
-
Methods inherited from class ptolemy.kernel.InstantiableNamedObj
_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition
-
Methods inherited from class ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _containedDecorators, _copyChangeRequestList, _debug, _debug, _debug, _debug, _debug, _executeChangeRequests, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _notifyHierarchyListenersAfterChange, _notifyHierarchyListenersBeforeChange, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, addHierarchyListener, attributeDeleted, attributeList, attributeList, decorators, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getFullName, getModelErrorHandler, getName, getName, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, notifyOfNameChange, propagateValue, propagateValues, removeAttribute, removeChangeListener, removeDebugListener, removeHierarchyListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, validateSettables, workspace
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface ptolemy.actor.Actor
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList
-
Methods inherited from interface ptolemy.kernel.util.Derivable
getDerivedLevel, getDerivedList, propagateValue
-
Methods inherited from interface ptolemy.actor.Executable
fire, isFireFunctional, isStrict, iterate, postfire, prefire, stop, stopFire, terminate
-
Methods inherited from interface ptolemy.actor.Initializable
addInitializable, preinitialize, removeInitializable
-
Methods inherited from interface ptolemy.kernel.util.Nameable
description, getContainer, getDisplayName, getFullName, getName, getName, setName
-
-
-
-
Field Detail
-
bitsPerSample
public SharedParameter bitsPerSample
The number of bits per sample. This is an integer that defaults to 16. This parameter is shared by all instances of this class and subclasses in the model, so changing it in one of those actors will cause it to change in all. An exception will be thrown if this parameter is set to an unsupported bit resolution (currently, only 8 and 16 bits are supported).
-
bufferSize
public SharedParameter bufferSize
The requested buffer size in the audio hardware. This affects how far ahead of real time the model can get. A larger buffer size may limit the responsivity of the model because changes in the model will be heard only after the buffer has been flushed. This is an integer that defaults to 1024, representing a buffer with 1024 samples per channel. At an 8 kHz sample rate, this means a worst-case latency of about 1/8 seconds. This parameter is shared by all instances of this class and subclasses in the model, so changing it in one of those actors will cause it to change in all.
-
channels
public SharedParameter channels
The number of audio channels. This is an integer that defaults to 1. This parameter is shared by all instances of this class and subclasses in the model, so changing it in one of those actors will cause it to change in all. An exception will be thrown if this parameter is set to an an unsupported channel number.
-
sampleRate
public SharedParameter sampleRate
The sample rate in samples per second. This is an integer that defaults to 8000. This parameter is shared by all instances of this class and subclasses in the model, so changing it in one of those actors will cause it to change in all. An exception will be thrown if this parameter is set to an unsupported sample rate.
-
transferSize
public SharedParameter transferSize
The number of samples that will be transferred to the audio driver together. This is an integer with default 128. This parameter is shared by all instances of this class and subclasses in the model, so changing it in one of those actors will cause it to change in all.
-
_bitsPerSample
protected int _bitsPerSample
Value of the bitsPerSample parameter.
-
_bufferSize
protected int _bufferSize
The requested buffer size.
-
_channels
protected int _channels
The number of channels. Initialized from the channels parameter.
-
_sampleRate
protected int _sampleRate
The value of the sampleRate parameter.
-
_transferSize
protected int _transferSize
The transfer size. Initialized from the transferSize parameter.
-
_isExecuting
protected boolean _isExecuting
True if this actor is executing. Set to true by initialize(), set to false by wrapup().
-
-
Constructor Detail
-
LiveSoundActor
public LiveSoundActor(CompositeEntity container, java.lang.String name) throws IllegalActionException, NameDuplicationException
Construct an actor with the given container and name.- Parameters:
container
- The container.name
- The name of this actor.- Throws:
IllegalActionException
- If the actor cannot be contained by the proposed container.NameDuplicationException
- If the container already has an actor with this name.
-
-
Method Detail
-
attributeChanged
public void attributeChanged(Attribute attribute) throws IllegalActionException
Handle change requests for all parameters. An exception is thrown if the requested change is not allowed.- Overrides:
attributeChanged
in classNamedObj
- Parameters:
attribute
- The attribute that changed.- Throws:
IllegalActionException
- If the change is not allowed.
-
initialize
public void initialize() throws IllegalActionException
Initialize this actor. Derived classes should extend this method to initialize the appropriate audio resource.- Specified by:
initialize
in interfaceInitializable
- Overrides:
initialize
in classAtomicActor<TypedIOPort>
- Throws:
IllegalActionException
- If there is a problem beginning audio playback.
-
wrapup
public void wrapup() throws IllegalActionException
Wrapup execution. Derived classes should override this method to release access to the audio resources.- Specified by:
wrapup
in interfaceInitializable
- Overrides:
wrapup
in classAtomicActor<TypedIOPort>
- Throws:
IllegalActionException
- May be thrown by derived classes.
-
_initializeAudio
protected void _initializeAudio() throws IllegalActionException, java.io.IOException
Initialize the audio system. Set parameters in the audio system according to the parameters of this actor. Derived classes should call this method during initialize().- Throws:
IllegalActionException
- If there is a problem reading or setting a parameter.java.io.IOException
- If there is a problem setting the bits per sample, channels or buffer size.
-
-