Sound Design Toolkit  075
Physically informed sound synthesis for everyday sounds
SDTMotor.h
1 
19 #ifndef SDT_MOTOR_H
20 #define SDT_MOTOR_H
21 
23 typedef struct SDTMotor SDTMotor;
24 
27 extern SDTMotor *SDTMotor_new(long maxDelay);
28 
31 extern void SDTMotor_free(SDTMotor *x);
32 
36 extern void SDTMotor_setFilters(SDTMotor *x, double damp, double dc);
37 
40 extern void SDTMotor_setRpm(SDTMotor *x, double f);
41 
44 extern void SDTMotor_setThrottle(SDTMotor *x, double f);
45 
47 extern void SDTMotor_setFourStroke(SDTMotor *x);
48 
50 extern void SDTMotor_setTwoStroke(SDTMotor *x);
51 
54 extern void SDTMotor_setNCylinders(SDTMotor *x, int i);
55 
59 extern void SDTMotor_setCylinderSize(SDTMotor *x, double f);
60 
65 extern void SDTMotor_setCompressionRatio(SDTMotor *x, double f);
66 
69 extern void SDTMotor_setSparkTime(SDTMotor *x, double f);
70 
73 extern void SDTMotor_setAsymmetry(SDTMotor *x, double f);
74 
77 extern void SDTMotor_setBackfire(SDTMotor *x, double f);
78 
81 extern void SDTMotor_setIntakeSize(SDTMotor *x, double f);
82 
85 extern void SDTMotor_setExtractorSize(SDTMotor *x, double f);
86 
89 extern void SDTMotor_setExhaustSize(SDTMotor *x, double f);
90 
95 extern void SDTMotor_setExpansion(SDTMotor *x, double f);
96 
99 extern void SDTMotor_setMufflerSize(SDTMotor *x, double f);
100 
103 extern void SDTMotor_setMufflerFeedback(SDTMotor *x, double f);
104 
107 extern void SDTMotor_setOutletSize(SDTMotor *x, double f);
108 
116 extern void SDTMotor_dsp(SDTMotor *x, double *outs);
117 
120 #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:23
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.