Moved widgets in subfolder

This commit is contained in:
2022-12-27 10:15:13 +01:00
parent e612fa163d
commit 818f462ae8
37 changed files with 175 additions and 132 deletions

View File

@@ -2,17 +2,17 @@
#include <cmath>
#include "midicontainers.h"
constexpr double pi = std::acos(-1);
void Synthisizer::writeSamples(frame_t *begin, frame_t *end)
{
const auto volume = m_volume;
const auto frequency = m_frequency;
if (frequency)
std::transform(begin, end, begin, [&](frame_t frame){
std::transform(std::cbegin(frame), std::cend(frame), std::begin(frame),
[value=std::sin(m_phase)](const sample_t &sample) { return sample + value; });
[value=std::sin(m_phase),&volume](const sample_t &sample) { return (sample + value) * volume; });
m_phase += pi*2./frameRate*m_actualFrequency;
if (m_phase >= pi*2.)
@@ -22,14 +22,3 @@ void Synthisizer::writeSamples(frame_t *begin, frame_t *end)
});
m_actualFrequency = float(m_actualFrequency+m_frequency)/2.f;
}
void Synthisizer::messageReceived(const midi::MidiMessage &message)
{
if (message.cmd == midi::Command::NoteOff || (message.cmd == midi::Command::NoteOn && message.velocity == 0))
{
if (m_frequency == int16_t(440.*std::pow(std::pow(2., 1./12.), message.note-48)))
m_frequency = 0;
}
else if (message.cmd == midi::Command::NoteOn)
m_frequency = 440.*std::pow(std::pow(2., 1./12.), message.note-48);
}