12 namespace swift::sound::sample_provider
14 CSinusGenerator::CSinusGenerator(
double frequencyHz, QObject *parent)
17 const QString on = QStringLiteral(
"%1 frequency: %2Hz").arg(
classNameShort(
this)).arg(frequencyHz);
18 this->setObjectName(on);
24 samples.fill(0,
static_cast<int>(count));
26 for (
int sampleCount = 0; sampleCount < count; sampleCount++)
28 const double multiple = s_twoPi * m_frequencyHz / m_sampleRate;
29 const double sampleValue = m_gain * qSin(m_nSample * multiple);
30 samples[sampleCount] =
static_cast<float>(sampleValue);
33 return static_cast<int>(count);
virtual int readSamples(QVector< float > &samples, qint64 count)
Read samples.
void setFrequency(double frequencyHz)
Set frequency in Hz.
Sample provider interface.
Free functions in swift::misc.
QString classNameShort(const QObject *object)
Class name as from QMetaObject::className without namespace.