jass.contact
Class FilteredWavContactForce

java.lang.Object
  extended by jass.engine.Out
      extended by jass.contact.FilteredWavContactForce
All Implemented Interfaces:
Source

public class FilteredWavContactForce
extends Out

A force model with impact, slide, and slide modes based on looping wav files, fed through Reson. Roll force is fed through modal filter.

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

Field Summary
protected  BangForce bangForce
           
protected  float physicalToAudioGainImpact
           
protected  float physicalToAudioGainRoll
           
protected  float physicalToAudioGainSlide
           
protected  ResonFilter resonRollFilter
           
protected  ResonFilter resonSlideFilter
           
protected  float rollARa
           
protected  float rollARd
           
protected  float rollARf
           
protected  ModalObjectWithOneContact rollForce
           
protected  ConstantLoopBuffer rollForceRaw
           
protected  float rollFreq0
           
protected  float rollFreq1
           
protected  float rollModalDamping
           
protected  FilterContainer rollReson
           
protected  float slideARa
           
protected  float slideARd
           
protected  float slideARf
           
protected  FilterContainer slideForce
           
protected  ConstantLoopBuffer slideForceRaw
           
protected  float slideFreq0
           
protected  float slideFreq1
           
protected  float vroll0
           
protected  float vroll1
           
protected  float vslide0
           
protected  float vslide1
           
 
Fields inherited from class jass.engine.Out
buf, bufferSize, bufOld, lock
 
Constructor Summary
  FilteredWavContactForce(float srate, int bufferSize, java.lang.String fnImpact, java.lang.String fnSlide, java.lang.String fnRoll, ModalModel mm)
          Construct contact force from named files.
protected FilteredWavContactForce(int bufferSize)
          Constructor intended only for subclass constructors (super(bufferSize);)
 
Method Summary
 void bang(float force, float dur)
          Generate impact force in physical units.
 void computeBuffer()
          Compute the next buffer.
 void setRollFilterModalDamping(float val)
          Set roll force modal filter properties: damping.
 void setRollModelDamping(float d)
          Set roll model damping (usually static property)
 void setRollProperties(float force, float speed)
          Set roll speed and normal force in physical units.
 void setRollReson(float f, float d, float a)
          Set roll reson at low lvel
 void setSlideModelDamping(float d)
          Set slide model damping (usually static property)
 void setSlideProperties(float force, float speed)
          Set slide speed and normal force in physical units.
 void setSlideReson(float f, float d, float a)
          Set slide reson at low lvel
 void setStaticContactModelParameters(float slideFreq0, float slideFreq1, float rollFreq0, float rollFreq1, float vslide0, float vslide1, float vroll0, float vroll1, float physicalToAudioGainSlide, float physicalToAudioGainRoll, float physicalToAudioGainImpact)
          Set model parameters mapping physical units to audio units
 
Methods inherited from class jass.engine.Out
clearBuffer, copyToOld, getBuffer, getBuffer, getBufferSize, getTime, peekAtBuffer, resetTime, setBufferSize, setTime, setTimeAndNotify
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

bangForce

protected BangForce bangForce

slideForceRaw

protected ConstantLoopBuffer slideForceRaw

slideForce

protected FilterContainer slideForce

resonSlideFilter

protected ResonFilter resonSlideFilter

slideARd

protected float slideARd

slideARf

protected float slideARf

slideARa

protected float slideARa

slideFreq0

protected float slideFreq0

slideFreq1

protected float slideFreq1

vslide0

protected float vslide0

vslide1

protected float vslide1

rollForceRaw

protected ConstantLoopBuffer rollForceRaw

rollReson

protected FilterContainer rollReson

resonRollFilter

protected ResonFilter resonRollFilter

rollARd

protected float rollARd

rollARf

protected float rollARf

rollARa

protected float rollARa

rollFreq0

protected float rollFreq0

rollFreq1

protected float rollFreq1

rollForce

protected ModalObjectWithOneContact rollForce

rollModalDamping

protected float rollModalDamping

vroll0

protected float vroll0

vroll1

protected float vroll1

physicalToAudioGainSlide

protected float physicalToAudioGainSlide

physicalToAudioGainRoll

protected float physicalToAudioGainRoll

physicalToAudioGainImpact

protected float physicalToAudioGainImpact
Constructor Detail

FilteredWavContactForce

protected FilteredWavContactForce(int bufferSize)
Constructor intended only for subclass constructors (super(bufferSize);)


FilteredWavContactForce

public FilteredWavContactForce(float srate,
                               int bufferSize,
                               java.lang.String fnImpact,
                               java.lang.String fnSlide,
                               java.lang.String fnRoll,
                               ModalModel mm)
Construct contact force from named files.

Parameters:
srate - sampling rate in Hertz.
bufferSize - bufferSize of this Out.
fnImpact - Audio file name for impact. (For example cos20ms.wav.)
fnSlide - Audio file name for slide. (For example grid.wav.)
fnRoll - Audio file name for slide. (For example roll.wav.)
mm - ModalModel
Method Detail

setStaticContactModelParameters

public void setStaticContactModelParameters(float slideFreq0,
                                            float slideFreq1,
                                            float rollFreq0,
                                            float rollFreq1,
                                            float vslide0,
                                            float vslide1,
                                            float vroll0,
                                            float vroll1,
                                            float physicalToAudioGainSlide,
                                            float physicalToAudioGainRoll,
                                            float physicalToAudioGainImpact)
Set model parameters mapping physical units to audio units

Parameters:
slideFreq0 - minimum reson freq.
slideFreq1 - maximum reson freq.
rollFreq0 - minimum reson freq.
rollFreq1 - maximum reson freq.
vslide0 - minimum physical speed (lower than this is considered to be zero)
vslide1 - maximum physical speed (higher than this is set to this value)
vroll0 - minimum physical speed (lower than this is considered to be zero)
vroll1 - maximum physical speed (higher than this is set to this value)
physicalToAudioGainSlide - multiplies normal force to get slide gain
physicalToAudioGainRoll - multiplies normal force to get roll gain
physicalToAudioGainImpact - multiplies impact force to get impact gain

setSlideModelDamping

public void setSlideModelDamping(float d)
Set slide model damping (usually static property)

Parameters:
d - damping

setSlideReson

public void setSlideReson(float f,
                          float d,
                          float a)
Set slide reson at low lvel


setSlideProperties

public void setSlideProperties(float force,
                               float speed)
Set slide speed and normal force in physical units.

Parameters:
force - normal force.
speed - relative surface velocity.

setRollModelDamping

public void setRollModelDamping(float d)
Set roll model damping (usually static property)

Parameters:
d - damping

setRollReson

public void setRollReson(float f,
                         float d,
                         float a)
Set roll reson at low lvel


setRollProperties

public void setRollProperties(float force,
                              float speed)
Set roll speed and normal force in physical units.

Parameters:
force - normal force.
speed - roll velocity.

setRollFilterModalDamping

public void setRollFilterModalDamping(float val)
Set roll force modal filter properties: damping.


bang

public void bang(float force,
                 float dur)
Generate impact force in physical units.

Parameters:
force - magnitude.
dur - duration in seconds of impact.

computeBuffer

public void computeBuffer()
Compute the next buffer. Mix down the 3 contributions

Specified by:
computeBuffer in class Out