1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 12:08:14 +00:00

LibDSP: Improve const correctness

This commit is contained in:
kleines Filmröllchen 2022-05-11 21:49:41 +02:00 committed by Linus Groh
parent 4a6ebb8beb
commit bcb331b862
8 changed files with 23 additions and 22 deletions

View file

@ -66,7 +66,7 @@ Signal Classic::process_impl(Signal const& input_signal)
}
// Linear ADSR envelope with no peak adjustment.
double Classic::volume_from_envelope(Envelope const& envelope)
double Classic::volume_from_envelope(Envelope const& envelope) const
{
switch (static_cast<EnvelopeState>(envelope)) {
case EnvelopeState::Off:
@ -102,12 +102,12 @@ double Classic::wave_position(u8 note)
VERIFY_NOT_REACHED();
}
double Classic::samples_per_cycle(u8 note)
double Classic::samples_per_cycle(u8 note) const
{
return m_transport->sample_rate() / note_frequencies[note];
}
double Classic::sin_position(u8 note)
double Classic::sin_position(u8 note) const
{
double spc = samples_per_cycle(note);
double cycle_pos = m_transport->time() / spc;
@ -115,14 +115,14 @@ double Classic::sin_position(u8 note)
}
// Absolute value of the saw wave "flips" the negative portion into the positive, creating a ramp up and down.
double Classic::triangle_position(u8 note)
double Classic::triangle_position(u8 note) const
{
double saw = saw_position(note);
return AK::fabs(saw) * 2 - 1;
}
// The first half of the cycle period is 1, the other half -1.
double Classic::square_position(u8 note)
double Classic::square_position(u8 note) const
{
double spc = samples_per_cycle(note);
double progress = AK::fmod(static_cast<double>(m_transport->time()), spc) / spc;
@ -130,7 +130,7 @@ double Classic::square_position(u8 note)
}
// Modulus creates inverse saw, which we need to flip and scale.
double Classic::saw_position(u8 note)
double Classic::saw_position(u8 note) const
{
double spc = samples_per_cycle(note);
double unscaled = spc - AK::fmod(static_cast<double>(m_transport->time()), spc);