Sound Design Toolkit  078
Physically informed sound synthesis for everyday sounds

Typedefs

typedef struct SDTFriction SDTFriction
 Opaque data structure representing the internal state of a friction interactor.
 
typedef struct SDTFriction SDTFriction
 Opaque data structure representing the internal state of a friction interactor.
 

Functions

SDTInteractorSDTFriction_new ()
 Object constructor. More...
 
void SDTFriction_free (SDTInteractor *x)
 Object destructor. param[in] Pointer to a SDTInteractor instance, configured for the friction case.
 
void SDTFriction_setNormalForce (SDTInteractor *x, double f)
 Sets the perpendicular force (pressure) applied to the two sliding resonators. More...
 
void SDTFriction_setStribeckVelocity (SDTInteractor *x, double f)
 Sets the Stribeck velocity. More...
 
void SDTFriction_setStaticCoefficient (SDTInteractor *x, double f)
 Sets the static friction coefficient. More...
 
void SDTFriction_setDynamicCoefficient (SDTInteractor *x, double f)
 Sets the dynamic friction coefficient. More...
 
void SDTFriction_setBreakAway (SDTInteractor *x, double f)
 Sets the break away coefficient. More...
 
void SDTFriction_setStiffness (SDTInteractor *x, double f)
 Sets the contact stiffness. More...
 
void SDTFriction_setDissipation (SDTInteractor *x, double f)
 Sets the dissipation coefficient. More...
 
void SDTFriction_setViscosity (SDTInteractor *x, double f)
 Sets the contact viscosity. More...
 
void SDTFriction_setNoisiness (SDTInteractor *x, double f)
 Sets the surface roughness. More...
 

Detailed Description

Elasto-plastic friction model, computing friction force from the relative velocity between the two contact points. The resulting force is the sum of four components: an elastic term, an internal dissipation term, a viscosity term, and finally a random term representing noise related to the surface roughness.

More subtle phenomena, such as pre-sliding behavior (gradual increase of the friction force for very small displacements), are simulated by the "plastic" part of the algorithm and parametrized by several other values, such as static/dynamic friction coefficients, break-away and Stribeck velocity, and so on.

These phenomena are mostly related to the transients and are worth being modeled despite the added complexity of the algorithm because of their importance for a realistic simulation of friction sounds.

Function Documentation

SDTInteractor * SDTFriction_new ( )

Object constructor.

Returns
Pointer to a SDTInteractor instance, configured for the friction case
void SDTFriction_setBreakAway ( SDTInteractor x,
double  f 
)

Sets the break away coefficient.

Parameters
[in]fBreak away coefficient, positive scalar
void SDTFriction_setDissipation ( SDTInteractor x,
double  f 
)

Sets the dissipation coefficient.

Parameters
[in]fDissipation coefficient, positive scalar
void SDTFriction_setDynamicCoefficient ( SDTInteractor x,
double  f 
)

Sets the dynamic friction coefficient.

Parameters
[in]fDynamic friction coefficient [0,1]. Should be less than the static friction coefficient
void SDTFriction_setNoisiness ( SDTInteractor x,
double  f 
)

Sets the surface roughness.

Parameters
[in]fSurface roughness, positive scalar
void SDTFriction_setNormalForce ( SDTInteractor x,
double  f 
)

Sets the perpendicular force (pressure) applied to the two sliding resonators.

Parameters
[in]fNormal force, in N
void SDTFriction_setStaticCoefficient ( SDTInteractor x,
double  f 
)

Sets the static friction coefficient.

Parameters
[in]fStatic friction coefficient [0,1]
void SDTFriction_setStiffness ( SDTInteractor x,
double  f 
)

Sets the contact stiffness.

Parameters
[in]fContact stiffness, positive scalar
void SDTFriction_setStribeckVelocity ( SDTInteractor x,
double  f 
)

Sets the Stribeck velocity.

Parameters
[in]fStribeck velocity, in m/s
void SDTFriction_setViscosity ( SDTInteractor x,
double  f 
)

Sets the contact viscosity.

Parameters
[in]fContact viscosity, positive scalar