commit
8b8ce5dc22
8 changed files with 20 additions and 14 deletions
|
|
@ -128,6 +128,7 @@ SFIZZ_SOURCES = \
|
||||||
|
|
||||||
SFIZZ_C_FLAGS += \
|
SFIZZ_C_FLAGS += \
|
||||||
-I$(SFIZZ_DIR)/src/sfizz \
|
-I$(SFIZZ_DIR)/src/sfizz \
|
||||||
|
-I$(SFIZZ_DIR)/src/sfizz/utility/bit_array \
|
||||||
-I$(SFIZZ_DIR)/src/sfizz/utility/spin_mutex
|
-I$(SFIZZ_DIR)/src/sfizz/utility/spin_mutex
|
||||||
|
|
||||||
# Pkg-config dependency
|
# Pkg-config dependency
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@ else()
|
||||||
target_include_directories(sfizz_editor PRIVATE ${sfizz-gio_INCLUDE_DIRS})
|
target_include_directories(sfizz_editor PRIVATE ${sfizz-gio_INCLUDE_DIRS})
|
||||||
target_link_libraries(sfizz_editor PRIVATE ${sfizz-gio_LIBRARIES})
|
target_link_libraries(sfizz_editor PRIVATE ${sfizz-gio_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
target_link_libraries(sfizz_editor PRIVATE sfizz::filesystem)
|
target_link_libraries(sfizz_editor PRIVATE sfizz::bit_array sfizz::filesystem)
|
||||||
|
|
||||||
# layout tool
|
# layout tool
|
||||||
if(NOT CMAKE_CROSSCOMPILING)
|
if(NOT CMAKE_CROSSCOMPILING)
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@
|
||||||
#include "GUIComponents.h"
|
#include "GUIComponents.h"
|
||||||
#include "GUIPiano.h"
|
#include "GUIPiano.h"
|
||||||
#include "NativeHelpers.h"
|
#include "NativeHelpers.h"
|
||||||
|
#include "BitArray.h"
|
||||||
#include "plugin/MessageUtils.h"
|
#include "plugin/MessageUtils.h"
|
||||||
#include <absl/strings/string_view.h>
|
#include <absl/strings/string_view.h>
|
||||||
#include <absl/strings/match.h>
|
#include <absl/strings/match.h>
|
||||||
|
|
@ -396,11 +397,10 @@ void Editor::Impl::uiReceiveMessage(const char* path, const char* sig, const sfi
|
||||||
// TODO(jpc) key ranges
|
// TODO(jpc) key ranges
|
||||||
}
|
}
|
||||||
else if (Messages::matchOSC("/cc/slots", path, indices) && !strcmp(sig, "b")) {
|
else if (Messages::matchOSC("/cc/slots", path, indices) && !strcmp(sig, "b")) {
|
||||||
const uint8_t* bitChunks = args[0].b->data;
|
size_t numBits = 8 * args[0].b->size;
|
||||||
uint32_t byteSize = args[0].b->size;
|
ConstBitSpan bits { args[0].b->data, numBits };
|
||||||
|
for (unsigned cc = 0; cc < numBits; ++cc) {
|
||||||
for (unsigned cc = 0; cc < 8 * byteSize; ++cc) {
|
bool used = bits.test(cc);
|
||||||
bool used = bitChunks[cc / 8] & (1u << (cc % 8));
|
|
||||||
updateCCUsed(cc, used);
|
updateCCUsed(cc, used);
|
||||||
if (used) {
|
if (used) {
|
||||||
char pathBuf[256];
|
char pathBuf[256];
|
||||||
|
|
@ -414,10 +414,10 @@ void Editor::Impl::uiReceiveMessage(const char* path, const char* sig, const sfi
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (Messages::matchOSC("/cc/changed", path, indices) && !strcmp(sig, "b")) {
|
else if (Messages::matchOSC("/cc/changed", path, indices) && !strcmp(sig, "b")) {
|
||||||
const uint8_t* bitChunks = args[0].b->data;
|
size_t numBits = 8 * args[0].b->size;
|
||||||
uint32_t byteSize = args[0].b->size;
|
ConstBitSpan bits { args[0].b->data, numBits };
|
||||||
for (unsigned cc = 0; cc < 8 * byteSize; ++cc) {
|
for (unsigned cc = 0; cc < numBits; ++cc) {
|
||||||
bool changed = bitChunks[cc / 8] & (1u << (cc % 8));
|
bool changed = bits.test(cc);
|
||||||
if (changed) {
|
if (changed) {
|
||||||
char pathBuf[256];
|
char pathBuf[256];
|
||||||
sprintf(pathBuf, "/cc%u/value", cc);
|
sprintf(pathBuf, "/cc%u/value", cc);
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ clang-tidy \
|
||||||
vst/SfizzVstState.cpp \
|
vst/SfizzVstState.cpp \
|
||||||
-- -Iexternal/abseil-cpp -Iexternal/jsl/include -Iexternal/filesystem/include -Iexternal/atomic_queue/include -Iexternal/threadpool -Isrc/external/hiir -Isrc/external/pugixml/src \
|
-- -Iexternal/abseil-cpp -Iexternal/jsl/include -Iexternal/filesystem/include -Iexternal/atomic_queue/include -Iexternal/threadpool -Isrc/external/hiir -Isrc/external/pugixml/src \
|
||||||
-Iexternal/st_audiofile/src -Iexternal/st_audiofile/thirdparty/dr_libs \
|
-Iexternal/st_audiofile/src -Iexternal/st_audiofile/thirdparty/dr_libs \
|
||||||
-Isrc/sfizz -Isrc -Isrc/sfizz/utility/spin_mutex -Isrc/external/spline -Isrc/external/cpuid/src -Iexternal/simde \
|
-Isrc/sfizz -Isrc -Isrc/sfizz/utility/bit_array -Isrc/sfizz/utility/spin_mutex -Isrc/external/spline -Isrc/external/cpuid/src -Iexternal/simde \
|
||||||
-Ivst -Ivst/external/VST_SDK/VST3_SDK -Ieditor/external/vstgui4 -Ivst/external/ring_buffer \
|
-Ivst -Ivst/external/VST_SDK/VST3_SDK -Ieditor/external/vstgui4 -Ivst/external/ring_buffer \
|
||||||
-Ieditor/src \
|
-Ieditor/src \
|
||||||
-DNDEBUG -std=c++17
|
-DNDEBUG -std=c++17
|
||||||
|
|
|
||||||
|
|
@ -252,13 +252,18 @@ target_include_directories(sfizz_spin_mutex PUBLIC sfizz/utility/spin_mutex)
|
||||||
target_link_libraries(sfizz_spin_mutex PRIVATE sfizz::atomic_queue)
|
target_link_libraries(sfizz_spin_mutex PRIVATE sfizz::atomic_queue)
|
||||||
add_library(sfizz::spin_mutex ALIAS sfizz_spin_mutex)
|
add_library(sfizz::spin_mutex ALIAS sfizz_spin_mutex)
|
||||||
|
|
||||||
|
# Sfizz bit array
|
||||||
|
add_library(sfizz_bit_array INTERFACE)
|
||||||
|
target_include_directories(sfizz_bit_array INTERFACE sfizz/utility/bit_array)
|
||||||
|
add_library(sfizz::bit_array ALIAS sfizz_bit_array)
|
||||||
|
|
||||||
# Sfizz internals (use this for testing)
|
# Sfizz internals (use this for testing)
|
||||||
add_library(sfizz_internal STATIC)
|
add_library(sfizz_internal STATIC)
|
||||||
add_library(sfizz::internal ALIAS sfizz_internal)
|
add_library(sfizz::internal ALIAS sfizz_internal)
|
||||||
target_sources(sfizz_internal PRIVATE ${SFIZZ_HEADERS} ${SFIZZ_SOURCES} ${FAUST_FILES})
|
target_sources(sfizz_internal PRIVATE ${SFIZZ_HEADERS} ${SFIZZ_SOURCES} ${FAUST_FILES})
|
||||||
target_include_directories(sfizz_internal PUBLIC "." "sfizz")
|
target_include_directories(sfizz_internal PUBLIC "." "sfizz")
|
||||||
target_link_libraries(sfizz_internal
|
target_link_libraries(sfizz_internal
|
||||||
PUBLIC absl::strings absl::span sfizz::filesystem sfizz::atomic_queue sfizz::spin_mutex sfizz::simde
|
PUBLIC absl::strings absl::span sfizz::filesystem sfizz::atomic_queue sfizz::spin_mutex sfizz::bit_array sfizz::simde
|
||||||
PRIVATE sfizz::parser sfizz::messaging absl::flat_hash_map Threads::Threads st_audiofile sfizz::pugixml sfizz::spline sfizz::tunings sfizz::hiir sfizz::kissfft sfizz::cephes sfizz::cpuid sfizz::threadpool sfizz::jsl sfizz::atomic)
|
PRIVATE sfizz::parser sfizz::messaging absl::flat_hash_map Threads::Threads st_audiofile sfizz::pugixml sfizz::spline sfizz::tunings sfizz::hiir sfizz::kissfft sfizz::cephes sfizz::cpuid sfizz::threadpool sfizz::jsl sfizz::atomic)
|
||||||
if(SFIZZ_USE_SNDFILE)
|
if(SFIZZ_USE_SNDFILE)
|
||||||
target_compile_definitions(sfizz_internal PUBLIC "SFIZZ_USE_SNDFILE=1")
|
target_compile_definitions(sfizz_internal PUBLIC "SFIZZ_USE_SNDFILE=1")
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,12 @@
|
||||||
#include "SisterVoiceRing.h"
|
#include "SisterVoiceRing.h"
|
||||||
#include "TriggerEvent.h"
|
#include "TriggerEvent.h"
|
||||||
#include "VoiceManager.h"
|
#include "VoiceManager.h"
|
||||||
|
#include "BitArray.h"
|
||||||
#include "modulations/sources/ADSREnvelope.h"
|
#include "modulations/sources/ADSREnvelope.h"
|
||||||
#include "modulations/sources/Controller.h"
|
#include "modulations/sources/Controller.h"
|
||||||
#include "modulations/sources/FlexEnvelope.h"
|
#include "modulations/sources/FlexEnvelope.h"
|
||||||
#include "modulations/sources/ChannelAftertouch.h"
|
#include "modulations/sources/ChannelAftertouch.h"
|
||||||
#include "modulations/sources/LFO.h"
|
#include "modulations/sources/LFO.h"
|
||||||
#include "utility/BitArray.h"
|
|
||||||
|
|
||||||
namespace sfz {
|
namespace sfz {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
#include "sfizz/SisterVoiceRing.h"
|
#include "sfizz/SisterVoiceRing.h"
|
||||||
#include "sfizz/SfzHelpers.h"
|
#include "sfizz/SfzHelpers.h"
|
||||||
#include "sfizz/utility/NumericId.h"
|
#include "sfizz/utility/NumericId.h"
|
||||||
#include "sfizz/utility/BitArray.h"
|
#include "BitArray.h"
|
||||||
#include "TestHelpers.h"
|
#include "TestHelpers.h"
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include "catch2/catch.hpp"
|
#include "catch2/catch.hpp"
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue