functions for synthesizing evolving sinusoids More...
#include "sms.h"
Functions | |
static void | SinePhaSynth (sfloat fFreq, sfloat fMag, sfloat fPhase, SMS_Data *pLastFrame, sfloat *pFWaveform, int sizeBuffer, int iTrack) |
generate a sinusoid given two peaks, current and last | |
static void | SineSynth (sfloat fFreq, sfloat fMag, SMS_Data *pLastFrame, sfloat *pFBuffer, int sizeBuffer, int iTrack) |
generate a sinusoid given two frames, current and last | |
void | sms_sineSynthFrame (SMS_Data *pSmsData, sfloat *pFBuffer, int sizeBuffer, SMS_Data *pLastFrame, int iSamplingRate) |
generate all the sinusoids for a given frame |
functions for synthesizing evolving sinusoids
static void SinePhaSynth | ( | sfloat | fFreq, | |
sfloat | fMag, | |||
sfloat | fPhase, | |||
SMS_Data * | pLastFrame, | |||
sfloat * | pFWaveform, | |||
int | sizeBuffer, | |||
int | iTrack | |||
) | [static] |
generate a sinusoid given two peaks, current and last
it interpolation between phase values and magnitudes
fFreq | current frequency | |
fMag | current magnitude | |
fPhase | current phase | |
pLastFrame | stucture with values from last frame | |
pFWaveform | pointer to output waveform | |
sizeBuffer | size of the synthesis buffer | |
iTrack | current track |
References SMS_Data::pFSinAmp, SMS_Data::pFSinFreq, SMS_Data::pFSinPha, PI_2, sfloat, sms_dBToMag(), and TWO_PI.
Referenced by sms_sineSynthFrame().
static void SineSynth | ( | sfloat | fFreq, | |
sfloat | fMag, | |||
SMS_Data * | pLastFrame, | |||
sfloat * | pFBuffer, | |||
int | sizeBuffer, | |||
int | iTrack | |||
) | [static] |
generate a sinusoid given two frames, current and last
fFreq | current frequency | |
fMag | current magnitude | |
pLastFrame | stucture with values from last frame | |
pFBuffer | pointer to output waveform | |
sizeBuffer | size of the synthesis buffer | |
iTrack | current track |
References SMS_Data::pFSinAmp, SMS_Data::pFSinFreq, SMS_Data::pFSinPha, sfloat, sms_dBToMag(), sms_random(), sms_sine(), and TWO_PI.
Referenced by sms_sineSynthFrame().
void sms_sineSynthFrame | ( | SMS_Data * | pSmsData, | |
sfloat * | pFBuffer, | |||
int | sizeBuffer, | |||
SMS_Data * | pLastFrame, | |||
int | iSamplingRate | |||
) |
generate all the sinusoids for a given frame
pSmsData | SMS data for current frame | |
pFBuffer | pointer to output waveform | |
sizeBuffer | size of the synthesis buffer | |
pLastFrame | SMS data from last frame | |
iSamplingRate | sampling rate to synthesize for |
References SMS_Data::nTracks, SMS_Data::pFSinAmp, SMS_Data::pFSinFreq, SMS_Data::pFSinPha, sfloat, SinePhaSynth(), SineSynth(), and TWO_PI.
Referenced by sms_analyze(), and sms_synthesize().