From 84e0d17adb81df04500f4a46dd65d56c7b72b846 Mon Sep 17 00:00:00 2001 From: falkTX Date: Thu, 28 Oct 2021 03:17:56 +0100 Subject: [PATCH] Enable VelleyAudio again that it builds with v2, drwav workaround --- .gitmodules | 3 + include/neon-compat/pmmintrin.h | 25 ++++ plugins/Makefile | 209 +++++++++++++++++++++++++++++++- plugins/ValleyAudio | 1 + plugins/plugins.cpp | 6 - 5 files changed, 233 insertions(+), 11 deletions(-) create mode 160000 plugins/ValleyAudio diff --git a/.gitmodules b/.gitmodules index ea09ef6..48adb33 100644 --- a/.gitmodules +++ b/.gitmodules @@ -58,3 +58,6 @@ [submodule "plugins/MindMeldModular"] path = plugins/MindMeldModular url = https://github.com/MarcBoule/MindMeldModular.git +[submodule "plugins/ValleyAudio"] + path = plugins/ValleyAudio + url = https://github.com/ValleyAudio/ValleyRackFree.git diff --git a/include/neon-compat/pmmintrin.h b/include/neon-compat/pmmintrin.h index 7d1091c..6fea081 100644 --- a/include/neon-compat/pmmintrin.h +++ b/include/neon-compat/pmmintrin.h @@ -28,6 +28,31 @@ void __builtin_ia32_pause() __asm__ __volatile__("isb\n"); } +static inline +__m64 _mm_and_si64(__m64 a, __m64 b) +{ + return vreinterpret_s64_s32(vand_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b))); +} + +static inline +__m64 _mm_andnot_si64(__m64 a, __m64 b) +{ + // *NOTE* argument swap + return vreinterpret_s64_s32(vbic_s32(vreinterpret_s32_m64(b), vreinterpret_s32_m64(a))); +} + +static inline +__m64 _mm_or_si64(__m64 a, __m64 b) +{ + return vreinterpret_s64_s32(vorr_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b))); +} + +static inline +__m64 _mm_set1_pi16(short w) +{ + return vreinterpret_s64_s16(vdup_n_s16(w)); +} + static inline uint32_t _mm_getcsr() { diff --git a/plugins/Makefile b/plugins/Makefile index 73f7179..7c4c794 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -17,6 +17,129 @@ SYSDEPS ?= false USE_NANOVG_FBO = true include ../dpf/Makefile.base.mk +# -------------------------------------------------------------- +# List of drwav functions, used in several modules + +DRWAV += drwav_open_file_and_read_f32 +DRWAV += drwav_init_memory +DRWAV += drwav_open_memory +DRWAV += drwav_riff_chunk_size_riff +DRWAV += drwav_data_chunk_size_riff +DRWAV += drwav__read_and_close_s16 +DRWAV += drwav__read_and_close_s32 +DRWAV += drwav__read_and_close_f32 +DRWAV += drwav_riff_chunk_size_w64 +DRWAV += drwav_data_chunk_size_w64 +DRWAV += drwav_write_raw +DRWAV += drwav_read_raw +DRWAV += drwav_uninit +DRWAV += drwav_init +DRWAV += drwav_read_s16__mulaw +DRWAV += drwav_read_s16__alaw +DRWAV += drwav_read_s16__msadpcm +DRWAV += drwav_read_s16__pcm +DRWAV += drwav_read_s16__ieee +DRWAV += drwav_read_s16__ima +DRWAV += drwav_open +DRWAV += drwav_init_memory_write_sequential +DRWAV += drwav_open_memory_write_sequential +DRWAV += drwav_init_write_sequential +DRWAV += drwav_open_write_sequential +DRWAV += drwav_s24_to_f32 +DRWAV += drwav_f64_to_f32 +DRWAV += drwav_s16_to_f32 +DRWAV += drwav_u8_to_f32 +DRWAV += drwav_alaw_to_f32 +DRWAV += drwav_read_s32 +DRWAV += drwav_f32_to_s32 +DRWAV += drwav_s24_to_s32 +DRWAV += drwav_f64_to_s32 +DRWAV += drwav_s16_to_s32 +DRWAV += drwav_u8_to_s32 +DRWAV += drwav_alaw_to_s32 +DRWAV += drwav_mulaw_to_s32 +DRWAV += drwav_open_and_read_s16 +DRWAV += drwav_read_s16 +DRWAV += drwav_f32_to_s16 +DRWAV += drwav_fopen +DRWAV += drwav_open_write__internal +DRWAV += drwav_init_file +DRWAV += drwav_open_file +DRWAV += drwav_free +DRWAV += drwav_read +DRWAV += drwav_init_write__internal +DRWAV += drwav_mulaw_to_f32 +DRWAV += drwav_read_f32 +DRWAV += drwav_s32_to_f32 +DRWAV += drwav_open_and_read_f32 +DRWAV += drwav_open_and_read_s32 +DRWAV += drwav_init_file_write_sequential +DRWAV += drwav_open_file_write_sequential +DRWAV += drwav_init_memory_write__internal +DRWAV += drwav_open_memory_write__internal +DRWAV += drwav_init_file_write__internal +DRWAV += drwav_open_file_write__internal +DRWAV += drwav_read_s32__mulaw +DRWAV += drwav_read_s32__alaw +DRWAV += drwav_read_s32__msadpcm +DRWAV += drwav_read_s32__pcm +DRWAV += drwav_read_s32__ieee +DRWAV += drwav_read_s32__ima +DRWAV += drwav_read_f32__mulaw +DRWAV += drwav_read_f32__alaw +DRWAV += drwav_read_f32__msadpcm +DRWAV += drwav_read_f32__pcm +DRWAV += drwav_read_f32__ieee +DRWAV += drwav_read_f32__ima +DRWAV += drwav_init_memory_write +DRWAV += drwav_open_memory_write +DRWAV += drwav_write +DRWAV += drwav_init_write +DRWAV += drwav_open_write +DRWAV += drwav_init_file_write +DRWAV += drwav_open_file_write +DRWAV += drwav_close +DRWAV += drwav_seek_to_sample +DRWAV += drwav_mulaw_to_s16 +DRWAV += drwav_alaw_to_s16 +DRWAV += drwav_u8_to_s16 +DRWAV += drwav_f64_to_s16 +DRWAV += drwav_s24_to_s16 +DRWAV += drwav_s32_to_s16 +DRWAV += drwav_init_file_write_sequential +DRWAV += drwav_open_file_write_sequential +DRWAV += drwav_init_memory_write__internal +DRWAV += drwav_open_memory_write__internal +DRWAV += drwav_init_file_write__internal +DRWAV += drwav_open_file_write__internal +DRWAV += drwav_read_s32__mulaw +DRWAV += drwav_read_s32__alaw +DRWAV += drwav_read_s32__msadpcm +DRWAV += drwav_read_s32__pcm +DRWAV += drwav_read_s32__ieee +DRWAV += drwav_read_s32__ima +DRWAV += drwav_read_f32__mulaw +DRWAV += drwav_read_f32__alaw +DRWAV += drwav_read_f32__msadpcm +DRWAV += drwav_read_f32__pcm +DRWAV += drwav_read_f32__ieee +DRWAV += drwav_read_f32__ima +DRWAV += drwav_init_memory_write +DRWAV += drwav_open_memory_write +DRWAV += drwav_write +DRWAV += drwav_init_write +DRWAV += drwav_open_write +DRWAV += drwav_init_file_write +DRWAV += drwav_open_file_write +DRWAV += drwav_close +DRWAV += drwav_seek_to_sample +DRWAV += drwav_mulaw_to_s16 +DRWAV += drwav_alaw_to_s16 +DRWAV += drwav_u8_to_s16 +DRWAV += drwav_f64_to_s16 +DRWAV += drwav_s24_to_s16 +DRWAV += drwav_s32_to_s16 + # -------------------------------------------------------------- # Files to build @@ -247,9 +370,79 @@ MINDMELD_CUSTOM = printNote PLUGIN_FILES += $(filter-out rackwindows/src/plugin.cpp,$(wildcard rackwindows/src/*.cpp)) # -------------------------------------------------------------- -# ValleyAudio (does not build against v2) +# ValleyAudio -# PLUGIN_FILES += $(wildcard ValleyAudio/src/*.cpp) +PLUGIN_FILES += $(filter-out ValleyAudio/src/Valley.cpp,$(wildcard ValleyAudio/src/*.cpp)) +PLUGIN_FILES += $(wildcard ValleyAudio/src/*/*.cpp) +PLUGIN_FILES += $(wildcard ValleyAudio/src/*/*/*.cpp) + +PLUGIN_BINARIES += ValleyAudio/src/ADD_BANK1.bin +PLUGIN_BINARIES += ValleyAudio/src/ADD_BANK2.bin +PLUGIN_BINARIES += ValleyAudio/src/ADD_BANK3.bin +PLUGIN_BINARIES += ValleyAudio/src/ADD_BANK4.bin +PLUGIN_BINARIES += ValleyAudio/src/ADD_SAW.bin +PLUGIN_BINARIES += ValleyAudio/src/ADD_SINE.bin +PLUGIN_BINARIES += ValleyAudio/src/ADD_SQR.bin +PLUGIN_BINARIES += ValleyAudio/src/ALTOSAX.bin +PLUGIN_BINARIES += ValleyAudio/src/AM_HARM.bin +PLUGIN_BINARIES += ValleyAudio/src/BASIC.bin +PLUGIN_BINARIES += ValleyAudio/src/BI_PULSE.bin +PLUGIN_BINARIES += ValleyAudio/src/BITCRUSH1.bin +PLUGIN_BINARIES += ValleyAudio/src/BITCRUSH2.bin +PLUGIN_BINARIES += ValleyAudio/src/CELLO_1.bin +PLUGIN_BINARIES += ValleyAudio/src/CELLO_2.bin +PLUGIN_BINARIES += ValleyAudio/src/CHIP_1.bin +PLUGIN_BINARIES += ValleyAudio/src/CHIP_2.bin +PLUGIN_BINARIES += ValleyAudio/src/CHIRP.bin +PLUGIN_BINARIES += ValleyAudio/src/DISTORT.bin +PLUGIN_BINARIES += ValleyAudio/src/EBASS.bin +PLUGIN_BINARIES += ValleyAudio/src/FM1.bin +PLUGIN_BINARIES += ValleyAudio/src/FM2.bin +PLUGIN_BINARIES += ValleyAudio/src/FM3.bin +PLUGIN_BINARIES += ValleyAudio/src/FM4.bin +PLUGIN_BINARIES += ValleyAudio/src/FOLD_SINE.bin +PLUGIN_BINARIES += ValleyAudio/src/GMTRY_1.bin +PLUGIN_BINARIES += ValleyAudio/src/GMTRY_2.bin +PLUGIN_BINARIES += ValleyAudio/src/GMTRY_3.bin +PLUGIN_BINARIES += ValleyAudio/src/GRIT.bin +PLUGIN_BINARIES += ValleyAudio/src/LINEAR.bin +PLUGIN_BINARIES += ValleyAudio/src/OBOE.bin +PLUGIN_BINARIES += ValleyAudio/src/OPAL.bin +PLUGIN_BINARIES += ValleyAudio/src/OVERTONE1.bin +PLUGIN_BINARIES += ValleyAudio/src/OVERTONE2.bin +PLUGIN_BINARIES += ValleyAudio/src/PIANO.bin +PLUGIN_BINARIES += ValleyAudio/src/PLAITS_1.bin +PLUGIN_BINARIES += ValleyAudio/src/PLAITS_2.bin +PLUGIN_BINARIES += ValleyAudio/src/PLAITS_3.bin +PLUGIN_BINARIES += ValleyAudio/src/PLUCK.bin +PLUGIN_BINARIES += ValleyAudio/src/PWM.bin +PLUGIN_BINARIES += ValleyAudio/src/REED.bin +PLUGIN_BINARIES += ValleyAudio/src/RESO_SAW.bin +PLUGIN_BINARIES += ValleyAudio/src/RESO_SQR.bin +PLUGIN_BINARIES += ValleyAudio/src/SAW_GAP1.bin +PLUGIN_BINARIES += ValleyAudio/src/SAW_GAP2.bin +PLUGIN_BINARIES += ValleyAudio/src/SAW_PHASE.bin +PLUGIN_BINARIES += ValleyAudio/src/SINE_HARM.bin +PLUGIN_BINARIES += ValleyAudio/src/SWEEPHARM.bin +PLUGIN_BINARIES += ValleyAudio/src/SYMMETRY.bin +PLUGIN_BINARIES += ValleyAudio/src/TEE_EKS.bin +PLUGIN_BINARIES += ValleyAudio/src/THEREMIN.bin +PLUGIN_BINARIES += ValleyAudio/src/TWO_OP_RAND.bin +PLUGIN_BINARIES += ValleyAudio/src/TWO_OPFM1.bin +PLUGIN_BINARIES += ValleyAudio/src/TWO_OPFM2.bin +PLUGIN_BINARIES += ValleyAudio/src/VIDEOGAME.bin +PLUGIN_BINARIES += ValleyAudio/src/VIOLIN.bin +PLUGIN_BINARIES += ValleyAudio/src/VOICE_1.bin +PLUGIN_BINARIES += ValleyAudio/src/VOICE_2.bin +PLUGIN_BINARIES += ValleyAudio/src/VOICE_3.bin +PLUGIN_BINARIES += ValleyAudio/src/VOICE_4.bin +PLUGIN_BINARIES += ValleyAudio/src/VOICE_5.bin +PLUGIN_BINARIES += ValleyAudio/src/VOICE_6.bin +PLUGIN_BINARIES += ValleyAudio/src/VOX_MACH.bin +PLUGIN_BINARIES += ValleyAudio/src/XFADE.bin + +# modules/types which are present in other plugins +VALLEYAUDIO_CUSTOM = $(DRWAV) # -------------------------------------------------------------- # ZetaCarinaeModules @@ -586,17 +779,23 @@ $(BUILD_DIR)/MindMeldModular/MindMeldModular.cpp.o: MindMeldModular/src/MindMeld $(BUILD_DIR)/rackwindows/%.cpp.o: rackwindows/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" - $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -DpluginInstance=pluginInstance__rackwindows $(foreach m,$(RACKWINDOWS_CUSTOM),$(call custom_module_names,$(m),rackwindows)) -c -o $@ + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(RACKWINDOWS_CUSTOM),$(call custom_module_names,$(m),rackwindows)) \ + -DpluginInstance=pluginInstance__rackwindows $(BUILD_DIR)/ValleyAudio/%.cpp.o: ValleyAudio/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" - $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -DpluginInstance=pluginInstance__ValleyAudio $(foreach m,$(VALLEYAUDIO_CUSTOM),$(call custom_module_names,$(m),ValleyAudio)) -c -o $@ + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(VALLEYAUDIO_CUSTOM),$(call custom_module_names,$(m),ValleyAudio)) \ + -DpluginInstance=pluginInstance__ValleyAudio $(BUILD_DIR)/ZetaCarinaeModules/%.cpp.o: ZetaCarinaeModules/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" - $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -DpluginInstance=pluginInstance__ZetaCarinaeModules $(foreach m,$(ZETACARINAE_CUSTOM),$(call custom_module_names,$(m),ZetaCarinae)) -c -o $@ + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(ZETACARINAE_CUSTOM),$(call custom_module_names,$(m),ZetaCarinae)) \ + -DpluginInstance=pluginInstance__ZetaCarinaeModules # -------------------------------------------------------------- diff --git a/plugins/ValleyAudio b/plugins/ValleyAudio new file mode 160000 index 0000000..3ed00f1 --- /dev/null +++ b/plugins/ValleyAudio @@ -0,0 +1 @@ +Subproject commit 3ed00f195c31c578daa2b739aaf3ff97310464c4 diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 32ee9f2..651f93a 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -237,9 +237,7 @@ extern Model *modelShapeMaster; #include "rackwindows/src/plugin.hpp" // ValleyAudio -/* does not build against v2 #include "ValleyAudio/src/Valley.hpp" -*/ // ZetaCarinaeModules #include "ZetaCarinaeModules/src/plugin.hpp" @@ -1025,7 +1023,6 @@ static void initStatic__rackwindows() } } -/* does not build against v2 static void initStatic__ValleyAudio() { Plugin* const p = new Plugin; @@ -1044,7 +1041,6 @@ static void initStatic__ValleyAudio() p->addModel(modelTerrorform); } } -*/ static void initStatic__ZetaCarinaeModules() { @@ -1086,9 +1082,7 @@ void initStaticPlugins() initStatic__JW(); initStatic__MindMeld(); initStatic__rackwindows(); - /* does not build against v2 initStatic__ValleyAudio(); - */ initStatic__ZetaCarinaeModules(); #endif // NOPLUGINS }