Sound Design Toolkit  078
Physically informed sound synthesis for everyday sounds
SDTMotor.h
1 
19 #ifndef SDT_MOTOR_H
20 #define SDT_MOTOR_H
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
27 typedef struct SDTMotor SDTMotor;
28 
31 extern SDTMotor *SDTMotor_new(long maxDelay);
32 
35 extern void SDTMotor_free(SDTMotor *x);
36 
40 extern void SDTMotor_setFilters(SDTMotor *x, double damp, double dc);
41 
44 extern void SDTMotor_setRpm(SDTMotor *x, double f);
45 
48 extern void SDTMotor_setThrottle(SDTMotor *x, double f);
49 
51 extern void SDTMotor_setFourStroke(SDTMotor *x);
52 
54 extern void SDTMotor_setTwoStroke(SDTMotor *x);
55 
58 extern void SDTMotor_setNCylinders(SDTMotor *x, int i);
59 
63 extern void SDTMotor_setCylinderSize(SDTMotor *x, double f);
64 
69 extern void SDTMotor_setCompressionRatio(SDTMotor *x, double f);
70 
73 extern void SDTMotor_setSparkTime(SDTMotor *x, double f);
74 
77 extern void SDTMotor_setAsymmetry(SDTMotor *x, double f);
78 
81 extern void SDTMotor_setBackfire(SDTMotor *x, double f);
82 
85 extern void SDTMotor_setIntakeSize(SDTMotor *x, double f);
86 
89 extern void SDTMotor_setExtractorSize(SDTMotor *x, double f);
90 
93 extern void SDTMotor_setExhaustSize(SDTMotor *x, double f);
94 
99 extern void SDTMotor_setExpansion(SDTMotor *x, double f);
100 
103 extern void SDTMotor_setMufflerSize(SDTMotor *x, double f);
104 
107 extern void SDTMotor_setMufflerFeedback(SDTMotor *x, double f);
108 
111 extern void SDTMotor_setOutletSize(SDTMotor *x, double f);
112 
120 extern void SDTMotor_dsp(SDTMotor *x, double *outs);
121 
124 #ifdef __cplusplus
125 };
126 #endif
127 
128 #endif
void SDTMotor_setCylinderSize(SDTMotor *x, double f)
Sets the size of each single cylinder. The total volume of the engine is this value multiplied by the...
void SDTMotor_setFourStroke(SDTMotor *x)
Simulates the operation cycle of a four-stroke engine.
void SDTMotor_setRpm(SDTMotor *x, double f)
Sets the Revolutions Per Minute (RPM) of the engine.
void SDTMotor_setMufflerFeedback(SDTMotor *x, double f)
Sets the amount of energy dissipated by the muffler chambers.
SDTMotor * SDTMotor_new(long maxDelay)
Object constructor.
void SDTMotor_setMufflerSize(SDTMotor *x, double f)
Sets the average length of the muffler chambers.
void SDTMotor_setExhaustSize(SDTMotor *x, double f)
Sets the length of the main exhaust pipe.
void SDTMotor_free(SDTMotor *x)
Object destructor.
void SDTMotor_setTwoStroke(SDTMotor *x)
Simulates the operation cycle of a two-stroke engine.
void SDTMotor_setNCylinders(SDTMotor *x, int i)
Sets the number of cylinders in the engine block.
void SDTMotor_setCompressionRatio(SDTMotor *x, double f)
Sets the compression ratio of the engine. The compression ratio is computed dividing the cylinder vol...
void SDTMotor_setIntakeSize(SDTMotor *x, double f)
Sets the average length of the intake pipes.
void SDTMotor_setAsymmetry(SDTMotor *x, double f)
Sets the amount of irregularity in the operation cycle.
void SDTMotor_dsp(SDTMotor *x, double *outs)
Signal processing routine. Call this function at sample rate to synthesize the engine sound...
void SDTMotor_setThrottle(SDTMotor *x, double f)
Sets the throttle load.
void SDTMotor_setOutletSize(SDTMotor *x, double f)
Sets the length of the exhaust outlet.
void SDTMotor_setSparkTime(SDTMotor *x, double f)
Sets the width of the ignition pulse, compared to a full operation cycle.
void SDTMotor_setBackfire(SDTMotor *x, double f)
Sets the amount of backfiring when the engine revs down.
struct SDTMotor SDTMotor
Opaque data structure representing a combustion engine object.
Definition: SDTMotor.h:27
void SDTMotor_setExpansion(SDTMotor *x, double f)
Sets the amount of expansion of the main exhaust pipe. This is a feature commonly found in two-stroke...
void SDTMotor_setFilters(SDTMotor *x, double damp, double dc)
Update filter coefficients. Should be always called after setting the sampling rate with SDT_setSampl...
void SDTMotor_setExtractorSize(SDTMotor *x, double f)
Sets the average length of the extractor pipes.