So I have a question, I have a function sine that returns a float modeled from other sinewave generating algorithms but how does this produce a wave when the method returns a single float? is it because of my time variable I set in startNote?
float oscWaves::sine(float frequency)
{
if(frequency > TWO_PI)
{
frequency = fmodf(frequency, TWO_PI);
}
return sinf(frequency);
}
void startNote (int midiNoteNumber, float velocity, SynthesiserSound* sound, int currentPitchWheelPosition) override
{
env1.trigger = 1;
frequency = 0.0;
level = velocity;
tailOff = 0.0;
double noteNumber = MidiMessage::getMidiNoteInHertz (midiNoteNumber);
double phasePerSample = noteNumber / getSampleRate();
time = phasePerSample * 2.0 * double_Pi;
}
