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_bitsPerSampleValue of the bitsPerSample parameter.protected int_bufferSizeThe requested buffer size.protected int_channelsThe number of channels.protected boolean_isExecutingTrue if this actor is executing.protected int_sampleRateThe value of the sampleRate parameter.protected int_transferSizeThe transfer size.SharedParameterbitsPerSampleThe number of bits per sample.SharedParameterbufferSizeThe requested buffer size in the audio hardware.SharedParameterchannelsThe number of audio channels.SharedParametersampleRateThe sample rate in samples per second.SharedParametertransferSizeThe 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.voidattributeChanged(Attribute attribute)Handle change requests for all parameters.voidinitialize()Initialize this actor.voidwrapup()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:
attributeChangedin classNamedObj- Parameters:
attribute- The attribute that changed.- Throws:
IllegalActionException- If the change is not allowed.
-
initialize
public void initialize() throws IllegalActionExceptionInitialize this actor. Derived classes should extend this method to initialize the appropriate audio resource.- Specified by:
initializein interfaceInitializable- Overrides:
initializein classAtomicActor<TypedIOPort>- Throws:
IllegalActionException- If there is a problem beginning audio playback.
-
wrapup
public void wrapup() throws IllegalActionExceptionWrapup execution. Derived classes should override this method to release access to the audio resources.- Specified by:
wrapupin interfaceInitializable- Overrides:
wrapupin classAtomicActor<TypedIOPort>- Throws:
IllegalActionException- May be thrown by derived classes.
-
_initializeAudio
protected void _initializeAudio() throws IllegalActionException, java.io.IOExceptionInitialize 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.
-
-