Sound Design Toolkit 075 Physically informed sound synthesis for everyday sounds

- Main Page
- Modules
- Data Structures
- Files

Macros | Functions | Variables
SDTCommon.h: Common variables and functions

## Macros
#define | SDT_ver 075
| SDT version number.
#define | SDT_ver_str "075"
| SDT version string.
#define | SDT_PI 3.141592653589793
| Value of Pi.
#define | SDT_TWOPI 6.283185307179586
| Value of 2 * Pi.
#define | SDT_EULER 2.718281828459045
| Euler number.
#define | SDT_SQRT2 1.4142135623730951
| Square root of 2.
#define | SDT_MACH1 340.29
| Mach 1, speed of sound in air under normal atmospheric conditions (m/s)
#define | SDT_EARTH 9.81
| Earth gravity (N/Kg)
#define | SDT_MICRO 0.000001
| One millionth, small value often used instead of 0 to avoid division errors.
#define | SDT_QUIET 0.00003
| Gain factor roughly corresponding to a -90dB attenuation.

## Functions
void | SDT_setSampleRate (double sampleRate)
| Sets the sample rate. More...
unsigned int | SDT_bitReverse (unsigned int u, unsigned int bits)
| Reverses the bit order of an unsigned integer of given bit length. More...
long | SDT_clip (long x, long min, long max)
| Clips an integer value. Limits the range of an integer value between a given lower bound and upper bound. More...
double | SDT_expRand (double lambda)
| Exponential random number generator. Generates random numbers, following an exponential distribution. More...
double | SDT_fclip (double x, double min, double max)
| Clips a floating point value. Limits the range of a floating point value between a given lower bound and upper bound. More...
double | SDT_frand ()
| Uniform random number generator. Generates random numbers, following a uniform distribution. More...
double | SDT_gravity (double mass)
| Computes earth gravity force. Computes the earth gravity force acting on an object of a given mass. More...
void | SDT_hanning (double *sig, int n)
| Applies a Hanning window to a chunk of samples. Applies a Hanning window to a chunk of samples. More...
void | SDT_haar (double *sig, long n)
| Computes a direct Haar Wavelet Transform of the incoming signal (in place). More...
void | SDT_ihaar (double *sig, long n)
| Computes an inverse Haar Wavelet Transform of the incoming signal (in place). More...
double | SDT_kinetic (double mass, double velocity)
| Computes kinetic energy. Computes the kinetic energy of an object, given its mass and velocity. More...
unsigned int | SDT_nextPow2 (unsigned int u)
| Returns the smallest power of 2 greater or equal than u. More...
double | SDT_normalize (double x, double min, double max)
| Rescales a value of known range into the [0.0, 1.0] interval. Rescales a value of known range into the [0.0, 1.0] interval. More...
void | SDT_normalizeWindow (double *sig, int n)
| Normalizes samples in a window so that their sum is equal to 1. More...
double | SDT_samplesInAir (double length)
| Time needed to travel the given distance at Mach 1. Computes the amount of time, in samples, needed by a sound wave propagating in air to travel a given distance. Particularly useful to set the delay times of comb filters and/or digital waveguides representing hollow cavities. More...
double | SDT_scale (double x, double srcMin, double srcMax, double dstMin, double dstMax, double gamma)
| Rescales a value from a source range to a target range. Rescales a value from a source range to a target range. More...
int | SDT_signum (double x)
| Computes the signum function. Computes the signum function. More...

## Variables
double | SDT_sampleRate
| Sampling frequency (Hz)
double | SDT_timeStep
| Sampling period (s)

## Detailed Description

Macros, variables and functions commonly used by all the SDT objects. SDTCommon.h should always be included when using other SDT modules.

## Function Documentation

unsigned int SDT_bitReverse | ( | unsigned int | u,
|  | unsigned int | bits
| ) |  |

Reverses the bit order of an unsigned integer of given bit length.

Parameters

  [in] | u | Input value
  [in] | bits | Number of bits to reverse

Returns
  Unsigned integer with reversed bits

long SDT_clip | ( | long | x,
|  | long | min,
|  | long | max
| ) |  |

Clips an integer value. Limits the range of an integer value between a given lower bound and upper bound.

Parameters

  [in] | x | Integer value to clip
  [in] | min | Lower limit
  [in] | max | Upper limit

Returns
  Clipped integer value

double SDT_expRand | ( | double | lambda | ) |

Exponential random number generator. Generates random numbers, following an exponential distribution.

Parameters

  [in] | lambda | Rate of the exponential distribution.

Returns
  Randomly generated value [0.0, +inf]

double SDT_fclip | ( | double | x,
|  | double | min,
|  | double | max
| ) |  |

Clips a floating point value. Limits the range of a floating point value between a given lower bound and upper bound.

Parameters

  [in] | x | Floating point value to clip
  [in] | min | Lower limit
  [in] | max | Upper limit

Returns
  Clipped floating point value

double SDT_frand | ( |  | ) |

Uniform random number generator. Generates random numbers, following a uniform distribution.

Returns
  Randomly generated value [0.0, 1.0]

double SDT_gravity | ( | double | mass | ) |

Computes earth gravity force. Computes the earth gravity force acting on an object of a given mass.

Parameters

  [in] | mass | Mass of the object (Kg)

Returns
  Earth gravity force (N)

void SDT_haar | ( | double * | sig,
|  | long | n
| ) |  |

Computes a direct Haar Wavelet Transform of the incoming signal (in place).

Parameters

  [in,out] | sig | incoming signals
  [in] | n | window size

void SDT_hanning | ( | double * | sig,
|  | int | n
| ) |  |

Applies a Hanning window to a chunk of samples. Applies a Hanning window to a chunk of samples.

Parameters

  [in,out] | sig | samples to window
  [in] | n | window size

void SDT_ihaar | ( | double * | sig,
|  | long | n
| ) |  |

Computes an inverse Haar Wavelet Transform of the incoming signal (in place).

Parameters

  [in,out] | sig | incoming signals
  [in] | n | window size

double SDT_kinetic | ( | double | mass,
|  | double | velocity
| ) |  |

Computes kinetic energy. Computes the kinetic energy of an object, given its mass and velocity.

Parameters

  [in] | mass | Mass of the object (Kg)
  [in] | velocity | Velocity of the object (m/s)

Returns
  Kinetic energy (J)

unsigned int SDT_nextPow2 | ( | unsigned int | u | ) |

Returns the smallest power of 2 greater or equal than u.

Parameters

  [in] | u | Input value

Returns
  Smallest power of 2 greater or equal than u

double SDT_normalize | ( | double | x,
|  | double | min,
|  | double | max
| ) |  |

Rescales a value of known range into the [0.0, 1.0] interval. Rescales a value of known range into the [0.0, 1.0] interval.

Parameters

  [in] | x | Value to normalize
  [in] | min | Lower bound
  [in] | max | Upper bound

Returns
  Value rescaled from [min, max] to [0.0, 1.0]

void SDT_normalizeWindow | ( | double * | sig,
|  | int | n
| ) |  |

Normalizes samples in a window so that their sum is equal to 1.

Parameters

  [in,out] | sig | window to normalize
  [in] | n | window size

double SDT_samplesInAir | ( | double | length | ) |

Time needed to travel the given distance at Mach 1. Computes the amount of time, in samples, needed by a sound wave propagating in air to travel a given distance. Particularly useful to set the delay times of comb filters and/or digital waveguides representing hollow cavities.

Parameters

  [in] | length | Distance (m)

Returns
  Amount of samples to travel the distance at Mach 1

double SDT_scale | ( | double | x,
|  | double | srcMin,
|  | double | srcMax,
|  | double | dstMin,
|  | double | dstMax,
|  | double | gamma
| ) |  |

Rescales a value from a source range to a target range. Rescales a value from a source range to a target range.

Parameters

  [in] | x | Value to rescale
  [in] | srcMin | Lower bound of source value
  [in] | srcMax | Upper bound of source value
  [in] | dstMin | Lower bound of rescaled value
  [in] | dstMax | Upper bound of rescaled value
  [in] | gamma | Gamma factor

Returns
  Value rescaled from [srcMin, srcMax] to [dstMin, dstMax] with gamma factor `gamma`

void SDT_setSampleRate | ( | double | sampleRate | ) |

Sets the sample rate.

Parameters

  [in] | sampleRate | Sample rate (Hz).

int SDT_signum | ( | double | x | ) |

Computes the signum function. Computes the signum function.

Parameters

  [in] | x | Input value

Returns
  Signum of x