Fix for retarted NoteOff message from novation launchpad
This commit is contained in:
@ -68,10 +68,10 @@ void SamplesWidget::messageReceived(const midi::MidiMessage &message)
|
|||||||
{
|
{
|
||||||
if (ref.get().channel() == message.channel && ref.get().note() == message.note)
|
if (ref.get().channel() == message.channel && ref.get().note() == message.note)
|
||||||
{
|
{
|
||||||
if (message.cmd == midi::Command::NoteOn)
|
if (message.cmd == midi::Command::NoteOff || (message.cmd == midi::Command::NoteOn && message.velocity == 0))
|
||||||
ref.get().pressed(message.velocity);
|
|
||||||
else if (message.cmd == midi::Command::NoteOff)
|
|
||||||
ref.get().released();
|
ref.get().released();
|
||||||
|
else if (message.cmd == midi::Command::NoteOn)
|
||||||
|
ref.get().pressed(message.velocity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,11 +25,11 @@ void Synthisizer::writeSamples(frame_t *begin, frame_t *end)
|
|||||||
|
|
||||||
void Synthisizer::messageReceived(const midi::MidiMessage &message)
|
void Synthisizer::messageReceived(const midi::MidiMessage &message)
|
||||||
{
|
{
|
||||||
if (message.cmd == midi::Command::NoteOn)
|
if (message.cmd == midi::Command::NoteOff || (message.cmd == midi::Command::NoteOn && message.velocity == 0))
|
||||||
m_frequency = 440.*std::pow(std::pow(2., 1./12.), message.note-48);
|
|
||||||
else if (message.cmd == midi::Command::NoteOff)
|
|
||||||
{
|
{
|
||||||
if (m_frequency == int16_t(440.*std::pow(std::pow(2., 1./12.), message.note-48)))
|
if (m_frequency == int16_t(440.*std::pow(std::pow(2., 1./12.), message.note-48)))
|
||||||
m_frequency = 0;
|
m_frequency = 0;
|
||||||
}
|
}
|
||||||
|
else if (message.cmd == midi::Command::NoteOn)
|
||||||
|
m_frequency = 440.*std::pow(std::pow(2., 1./12.), message.note-48);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user