jass.generators
Class QuenchableModalObjectWithOneContact

java.lang.Object
  extended by jass.engine.Out
      extended by jass.engine.InOut
          extended by jass.generators.ModalObjectWithOneContact
              extended by jass.generators.QuenchableModalObjectWithOneContact
All Implemented Interfaces:
Sink, Source

public class QuenchableModalObjectWithOneContact
extends ModalObjectWithOneContact

Vibration model of object, capable of playing sound. Extended to keep track of current excitation and capable of modes being turned on/off.

Author:
Kees van den Doel (kvdoel@cs.ubc.ca)

Field Summary
protected  boolean[] onBit
          True for the modes that are on
 
Fields inherited from class jass.generators.ModalObjectWithOneContact
ampR, b1, b2, b3, c_i, modalModel, p1, p2, p3, R2, rollGain, srate, tmpBuf, twoRCosTheta, yt_1, yt_2
 
Fields inherited from class jass.engine.InOut
sourceContainer, sourcePassivity, srcBuffers
 
Fields inherited from class jass.engine.Out
buf, bufferSize, bufOld, lock
 
Constructor Summary
QuenchableModalObjectWithOneContact(float srate, int nf, int np, int bufferSize)
          Create and initialize, but don't set any modal parameters.
QuenchableModalObjectWithOneContact(ModalModel m, float srate, int bufferSize)
          Create and initialize with provided modal data.
 
Method Summary
protected  void computeModalFilterBank(float[] output, float[] force, int nsamples)
          Apply external force[] and compute response through bank of modal filters.
 float getModeExcitation(int k)
          Return current excitation of mode.
 void setOnBit(int mode, boolean on)
          Turn mode on/off.
 
Methods inherited from class jass.generators.ModalObjectWithOneContact
addSource, allocate, clearHistory, computeBuffer, computeFilter, computeLocation, computeResonCoeff, setDamping, setFrequencyScale, setGain, setLocation, setNf
 
Methods inherited from class jass.engine.InOut
addSource, getBuffer, getSources, removeSource, resetTime
 
Methods inherited from class jass.engine.Out
clearBuffer, copyToOld, getBuffer, getBufferSize, getTime, peekAtBuffer, setBufferSize, setTime, setTimeAndNotify
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

onBit

protected boolean[] onBit
True for the modes that are on

Constructor Detail

QuenchableModalObjectWithOneContact

public QuenchableModalObjectWithOneContact(float srate,
                                           int nf,
                                           int np,
                                           int bufferSize)
Create and initialize, but don't set any modal parameters.

Parameters:
srate - sampling rate in Hertz.
nf - number of modes.
np - number of locations.
bufferSize - Buffer size used for real-time rendering.

QuenchableModalObjectWithOneContact

public QuenchableModalObjectWithOneContact(ModalModel m,
                                           float srate,
                                           int bufferSize)
Create and initialize with provided modal data.

Parameters:
m - modal model to load.
srate - sampling rate in Hertz.
bufferSize - Buffer size used for real-time rendering.
Method Detail

setOnBit

public void setOnBit(int mode,
                     boolean on)
Turn mode on/off.

Parameters:
mode - mode number
on - true if turn on, fals if turn off

getModeExcitation

public float getModeExcitation(int k)
Return current excitation of mode. Approximated as (y(t)^2 + (dy/dt)^2/(2pif)^2)/2). A pulse excitation of strength x should produce excitation of (ax)^2/2, with "a" gain of mode.

Parameters:
k - mode number
Returns:
excitation

computeModalFilterBank

protected void computeModalFilterBank(float[] output,
                                      float[] force,
                                      int nsamples)
Apply external force[] and compute response through bank of modal filters. As in super class but skip off modes.

Overrides:
computeModalFilterBank in class ModalObjectWithOneContact
Parameters:
output - user provided output buffer.
force - input force.
nsamples - number of samples to compute.