Sound Design Toolkit  075
Physically informed sound synthesis for everyday sounds
SDTResonators.h
1 
14 #ifndef SDT_RESONATORS_H
15 #define SDT_RESONATORS_H
16 
18 typedef struct SDTResonator SDTResonator;
19 
24 extern SDTResonator *SDTResonator_new(unsigned int nModes, unsigned int nPickups);
25 
28 extern void SDTResonator_free(SDTResonator *x);
29 
33 extern double SDTResonator_getPosition(SDTResonator *x, unsigned int pickup);
34 
38 extern double SDTResonator_getVelocity(SDTResonator *x, unsigned int pickup);
39 
42 extern double SDTResonator_getMomentum(SDTResonator *x);
43 
46 extern double SDTResonator_getNModes(SDTResonator *x);
47 
50 extern double SDTResonator_getNPickups(SDTResonator *x);
51 
56 extern void SDTResonator_setPosition(SDTResonator *x, unsigned int pickup, unsigned int mode, double f);
57 
62 extern void SDTResonator_setVelocity(SDTResonator *x, unsigned int pickup, unsigned int mode, double f);
63 
67 extern void SDTResonator_setFrequency(SDTResonator *x, unsigned int mode, double f);
68 
72 extern void SDTResonator_setDecay(SDTResonator *x, unsigned int mode, double f);
73 
78 extern void SDTResonator_setWeight(SDTResonator *x, unsigned int pickup, unsigned int mode, double f);
79 
84 extern void SDTResonator_setMass(SDTResonator *x, unsigned int pickup, unsigned int mode, double f);
85 
90 extern void SDTResonator_setFragmentSize(SDTResonator *x, double f);
91 
94 extern void SDTResonator_setActiveModes(SDTResonator *x, unsigned int i);
95 
102 extern void SDTResonator_applyForce(SDTResonator *x, unsigned int pickup, double f);
103 
108 extern void SDTResonator_dsp(SDTResonator *x);
109 
110 #endif
111 
void SDTResonator_setWeight(SDTResonator *x, unsigned int pickup, unsigned int mode, double f)
Sets the weight for a given mode and pickup.
double SDTResonator_getNPickups(SDTResonator *x)
Gets the number of pickup points.
double SDTResonator_getMomentum(SDTResonator *x)
Gets the momentum of the object.
double SDTResonator_getVelocity(SDTResonator *x, unsigned int pickup)
Gets the velocity of the object at a given pickup point.
SDTResonator * SDTResonator_new(unsigned int nModes, unsigned int nPickups)
Object constructor.
void SDTResonator_dsp(SDTResonator *x)
Signal processing routine. Call this function at sample rate to update the internal state of the reso...
void SDTResonator_setFrequency(SDTResonator *x, unsigned int mode, double f)
Sets the resonant frequency for a given mode.
void SDTResonator_setPosition(SDTResonator *x, unsigned int pickup, unsigned int mode, double f)
Sets a modal displacement at a given pickup point.
void SDTResonator_setActiveModes(SDTResonator *x, unsigned int i)
Sets the number of active (actually computed) modes.
void SDTResonator_free(SDTResonator *x)
Object destructor.
void SDTResonator_setDecay(SDTResonator *x, unsigned int mode, double f)
Sets the decay for a given mode.
void SDTResonator_applyForce(SDTResonator *x, unsigned int pickup, double f)
Applies a force to the resonator at a given pickup point. The force is distributed across the modes a...
double SDTResonator_getPosition(SDTResonator *x, unsigned int pickup)
Gets the displacement of the object at a given pickup point.
void SDTResonator_setFragmentSize(SDTResonator *x, double f)
Reduces the object into a smaller fragment. This paramenter influences various aspects of the object:...
struct SDTResonator SDTResonator
Opaque data structure representing a solid resonator object.
Definition: SDTResonators.h:18
double SDTResonator_getNModes(SDTResonator *x)
Gets the number of resonance modes.
void SDTResonator_setVelocity(SDTResonator *x, unsigned int pickup, unsigned int mode, double f)
Sets a modal velocity at a given pickup point.
void SDTResonator_setMass(SDTResonator *x, unsigned int pickup, unsigned int mode, double f)
Sets the mass for a given mode and pickup.