commit
6e25337560
5 changed files with 10 additions and 5 deletions
|
|
@ -41,7 +41,7 @@ namespace config {
|
||||||
constexpr int numVoices { 64 };
|
constexpr int numVoices { 64 };
|
||||||
constexpr unsigned maxVoices { 256 };
|
constexpr unsigned maxVoices { 256 };
|
||||||
constexpr unsigned smoothingSteps { 512 };
|
constexpr unsigned smoothingSteps { 512 };
|
||||||
constexpr uint8_t gainSmoothing { 5 };
|
constexpr uint8_t gainSmoothing { 0 };
|
||||||
constexpr unsigned powerTableSizeExponent { 11 };
|
constexpr unsigned powerTableSizeExponent { 11 };
|
||||||
constexpr int maxFilePromises { maxVoices };
|
constexpr int maxFilePromises { maxVoices };
|
||||||
constexpr int sustainCC { 64 };
|
constexpr int sustainCC { 64 };
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@
|
||||||
#include "SIMDConfig.h"
|
#include "SIMDConfig.h"
|
||||||
#include "absl/types/span.h"
|
#include "absl/types/span.h"
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
#include <array>
|
||||||
#include <random>
|
#include <random>
|
||||||
#include <limits>
|
#include <limits>
|
||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
|
|
|
||||||
|
|
@ -409,8 +409,9 @@ bool sfz::Region::parseOpcode(const Opcode& rawOpcode)
|
||||||
if (opcode.parameters.back() > 127)
|
if (opcode.parameters.back() > 127)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
const auto inputVelocity = static_cast<uint8_t>(opcode.parameters.back());
|
||||||
if (value)
|
if (value)
|
||||||
velocityPoints.emplace_back(opcode.parameters.back(), *value);
|
velocityPoints.emplace_back(inputVelocity, *value);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case hash("xfin_lokey"):
|
case hash("xfin_lokey"):
|
||||||
|
|
|
||||||
|
|
@ -301,8 +301,10 @@ void sfz::Synth::handleControlOpcodes(const std::vector<Opcode>& members)
|
||||||
ccLabels.emplace_back(member.parameters.back(), std::string(member.value));
|
ccLabels.emplace_back(member.parameters.back(), std::string(member.value));
|
||||||
break;
|
break;
|
||||||
case hash("label_key&"):
|
case hash("label_key&"):
|
||||||
if (Default::keyRange.containsWithEnd(member.parameters.back()))
|
if (member.parameters.back() <= Default::keyRange.getEnd()) {
|
||||||
keyLabels.emplace_back(member.parameters.back(), std::string(member.value));
|
const auto noteNumber = static_cast<uint8_t>(member.parameters.back());
|
||||||
|
keyLabels.emplace_back(noteNumber, std::string(member.value));
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case hash("default_path"):
|
case hash("default_path"):
|
||||||
defaultPath = absl::StrReplaceAll(trim(member.value), { { "\\", "/" } });
|
defaultPath = absl::StrReplaceAll(trim(member.value), { { "\\", "/" } });
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,8 @@
|
||||||
|
|
||||||
#include "sfizz/Interpolators.h"
|
#include "sfizz/Interpolators.h"
|
||||||
#include "catch2/catch.hpp"
|
#include "catch2/catch.hpp"
|
||||||
#include <algorithm>
|
#include <array>
|
||||||
|
#include <numeric>
|
||||||
using namespace Catch::literals;
|
using namespace Catch::literals;
|
||||||
|
|
||||||
TEST_CASE("[Interpolators] Sample at points")
|
TEST_CASE("[Interpolators] Sample at points")
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue