This commit is contained in:
Armin 2026-07-19 11:40:36 +02:00
commit 8d5ffc6b56
168 changed files with 1436 additions and 0 deletions

12
.gitignore vendored Normal file
View file

@ -0,0 +1,12 @@
build/
Builds/
.idea/
*.user
*.suo
*.vcxproj.filters
*.xcworkspace
*.xcuserdata
DerivedData/
.DS_Store
JUCE

72
CMakeLists.txt Normal file
View file

@ -0,0 +1,72 @@
cmake_minimum_required(VERSION 3.22)
project(Trommelkiste VERSION 1.0.0 LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_subdirectory(JUCE)
juce_add_plugin(Trommelkiste
PRODUCT_NAME "Trommelkiste"
COMPANY_NAME "Trommelkiste"
PLUGIN_MANUFACTURER_CODE D909
PLUGIN_CODE Ds90
FORMATS VST3 Standalone AU
IS_SYNTH TRUE
NEEDS_MIDI_INPUT TRUE
IS_MIDI_EFFECT FALSE
EDITOR_WANTS_KEYBOARD_FOCUS FALSE
COPY_PLUGIN_AFTER_BUILD TRUE
)
target_sources(Trommelkiste PRIVATE
Source/PluginProcessor.cpp
Source/PluginEditor.cpp
)
# Embed all WAV samples into the binary
file(GLOB SAMPLE_WAVS "Samples/*.WAV")
juce_add_binary_data(TrommelkisteBinaryData
HEADER_NAME "BinaryData.h"
NAMESPACE "BinaryData"
SOURCES ${SAMPLE_WAVS}
)
# Generate sample manifest mapping names -> binary data pointers
set(_manifest "// Auto-generated - do not edit\n#pragma once\n")
set(_manifest "${_manifest}struct EmbeddedSample { const char* name; const char* data; int size; };\n")
set(_manifest "${_manifest}static const EmbeddedSample embeddedSamples[] = {\n")
foreach(_f ${SAMPLE_WAVS})
get_filename_component(_we ${_f} NAME_WE)
string(REGEX REPLACE "[^A-Za-z0-9]" "_" _var ${_we})
set(_manifest "${_manifest} { \"${_we}\", BinaryData::${_var}_WAV, BinaryData::${_var}_WAVSize },\n")
endforeach()
set(_manifest "${_manifest}};\n")
set(_manifest "${_manifest}static const int numEmbeddedSamples = sizeof(embeddedSamples) / sizeof(embeddedSamples[0]);\n")
file(WRITE "${CMAKE_BINARY_DIR}/SampleLibrary.h" "${_manifest}")
target_include_directories(TrommelkisteBinaryData PUBLIC "${CMAKE_BINARY_DIR}")
target_compile_definitions(Trommelkiste PRIVATE
JUCE_WEB_BROWSER=0
JUCE_USE_CURL=0
JUCE_VST3_CAN_REPLACE_VST2=0
JUCE_DISPLAY_SPLASH_SCREEN=0
)
target_link_libraries(Trommelkiste
PRIVATE
TrommelkisteBinaryData
juce::juce_audio_basics
juce::juce_audio_devices
juce::juce_audio_formats
juce::juce_audio_processors
juce::juce_audio_utils
juce::juce_core
juce::juce_data_structures
juce::juce_events
juce::juce_graphics
juce::juce_gui_basics
PUBLIC
juce::juce_recommended_config_flags
)

82
Makefile Normal file
View file

@ -0,0 +1,82 @@
JUCE := JUCE
NPROC := $(shell sysctl -n hw.ncpu 2>/dev/null || nproc 2>/dev/null || echo 4)
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Darwin)
AU_DIR := $(HOME)/Library/Audio/Plug-Ins/Components
VST3_DIR := $(HOME)/Library/Audio/Plug-Ins/VST3
APP_DIR := /Applications
else
VST3_DIR := $(HOME)/.vst3
endif
BUILD_DIR := build/Trommelkiste_artefacts
.PHONY: all clean install uninstall
install: all
@echo "==> Installing plugins..."
ifeq ($(UNAME_S),Darwin)
@mkdir -p "$(AU_DIR)"
@for f in $$(find $(BUILD_DIR) -name "*.component" -type d); do \
echo " $$f -> $(AU_DIR)/"; \
rm -rf "$(AU_DIR)/$$(basename "$$f")"; \
cp -R "$$f" "$(AU_DIR)/"; \
done
@mkdir -p "$(VST3_DIR)"
@for f in $$(find $(BUILD_DIR) -name "*.vst3" -type d); do \
echo " $$f -> $(VST3_DIR)/"; \
rm -rf "$(VST3_DIR)/$$(basename "$$f")"; \
cp -R "$$f" "$(VST3_DIR)/"; \
done
@mkdir -p "$(APP_DIR)"
@for f in $$(find $(BUILD_DIR) -name "*.app" -type d); do \
echo " $$f -> $(APP_DIR)/"; \
rm -rf "$(APP_DIR)/$$(basename "$$f")"; \
cp -R "$$f" "$(APP_DIR)/"; \
done
else
@mkdir -p "$(VST3_DIR)"
@for f in $$(find $(BUILD_DIR) -name "*.vst3" -type d); do \
echo " $$f -> $(VST3_DIR)/"; \
rm -rf "$(VST3_DIR)/$$(basename "$$f")"; \
cp -R "$$f" "$(VST3_DIR)/"; \
done
endif
@echo "==> Done."
all: build/Makefile
@$(MAKE) --no-print-directory -C build -j$(NPROC)
@echo ""
@echo "Build complete. Output:"
@find $(BUILD_DIR) -type d \( -name "*.vst3" -o -name "*.component" -o -name "*.app" \) 2>/dev/null | while read f; do echo " $$f"; done
build/Makefile: CMakeLists.txt
@if [ ! -d "$(JUCE)" ]; then \
echo "==> Cloning JUCE..."; \
git clone --depth 1 https://github.com/juce-framework/JUCE.git $(JUCE); \
fi
@echo "==> Configuring CMake..."
@cmake -B build -DCMAKE_BUILD_TYPE=Release
uninstall:
@echo "==> Removing installed plugins..."
ifeq ($(UNAME_S),Darwin)
@for f in $$(find $(BUILD_DIR) -name "*.component" -type d 2>/dev/null); do \
rm -rf "$(AU_DIR)/$$(basename "$$f")"; \
done
@for f in $$(find $(BUILD_DIR) -name "*.vst3" -type d 2>/dev/null); do \
rm -rf "$(VST3_DIR)/$$(basename "$$f")"; \
done
@for f in $$(find $(BUILD_DIR) -name "*.app" -type d 2>/dev/null); do \
rm -rf "$(APP_DIR)/$$(basename "$$f")"; \
done
else
@for f in $$(find $(BUILD_DIR) -name "*.vst3" -type d 2>/dev/null); do \
rm -rf "$(VST3_DIR)/$$(basename "$$f")"; \
done
endif
@echo "==> Done."
clean:
rm -rf build

BIN
Samples/BT0A0A7.WAV Executable file

Binary file not shown.

BIN
Samples/BT0A0D0.WAV Executable file

Binary file not shown.

BIN
Samples/BT0A0D3.WAV Executable file

Binary file not shown.

BIN
Samples/BT0A0DA.WAV Executable file

Binary file not shown.

BIN
Samples/BT0AAD0.WAV Executable file

Binary file not shown.

BIN
Samples/BT0AADA.WAV Executable file

Binary file not shown.

BIN
Samples/BT3A0D0.WAV Executable file

Binary file not shown.

BIN
Samples/BT3A0D3.WAV Executable file

Binary file not shown.

BIN
Samples/BT3A0D7.WAV Executable file

Binary file not shown.

BIN
Samples/BT3A0DA.WAV Executable file

Binary file not shown.

BIN
Samples/BT3AAD0.WAV Executable file

Binary file not shown.

BIN
Samples/BT3AADA.WAV Executable file

Binary file not shown.

BIN
Samples/BT7A0D0.WAV Executable file

Binary file not shown.

BIN
Samples/BT7A0D3.WAV Executable file

Binary file not shown.

BIN
Samples/BT7A0D7.WAV Executable file

Binary file not shown.

BIN
Samples/BT7A0DA.WAV Executable file

Binary file not shown.

BIN
Samples/BT7AAD0.WAV Executable file

Binary file not shown.

BIN
Samples/BT7AADA.WAV Executable file

Binary file not shown.

BIN
Samples/BTAA0D0.WAV Executable file

Binary file not shown.

BIN
Samples/BTAA0D3.WAV Executable file

Binary file not shown.

BIN
Samples/BTAA0D7.WAV Executable file

Binary file not shown.

BIN
Samples/BTAA0DA.WAV Executable file

Binary file not shown.

BIN
Samples/BTAAAD0.WAV Executable file

Binary file not shown.

BIN
Samples/BTAAADA.WAV Executable file

Binary file not shown.

BIN
Samples/CLOP1.WAV Executable file

Binary file not shown.

BIN
Samples/CLOP2.WAV Executable file

Binary file not shown.

BIN
Samples/CLOP3.WAV Executable file

Binary file not shown.

BIN
Samples/CLOP4.WAV Executable file

Binary file not shown.

BIN
Samples/CSHD0.WAV Executable file

Binary file not shown.

BIN
Samples/CSHD2.WAV Executable file

Binary file not shown.

BIN
Samples/CSHD4.WAV Executable file

Binary file not shown.

BIN
Samples/CSHD6.WAV Executable file

Binary file not shown.

BIN
Samples/CSHD8.WAV Executable file

Binary file not shown.

BIN
Samples/CSHDA.WAV Executable file

Binary file not shown.

BIN
Samples/HANDCLP1.WAV Executable file

Binary file not shown.

BIN
Samples/HANDCLP2.WAV Executable file

Binary file not shown.

BIN
Samples/HHCD0.WAV Executable file

Binary file not shown.

BIN
Samples/HHCD2.WAV Executable file

Binary file not shown.

BIN
Samples/HHCD4.WAV Executable file

Binary file not shown.

BIN
Samples/HHCD6.WAV Executable file

Binary file not shown.

BIN
Samples/HHCD8.WAV Executable file

Binary file not shown.

BIN
Samples/HHCDA.WAV Executable file

Binary file not shown.

BIN
Samples/HHOD0.WAV Executable file

Binary file not shown.

BIN
Samples/HHOD2.WAV Executable file

Binary file not shown.

BIN
Samples/HHOD4.WAV Executable file

Binary file not shown.

BIN
Samples/HHOD6.WAV Executable file

Binary file not shown.

BIN
Samples/HHOD8.WAV Executable file

Binary file not shown.

BIN
Samples/HHODA.WAV Executable file

Binary file not shown.

BIN
Samples/HT0D0.WAV Executable file

Binary file not shown.

BIN
Samples/HT0D3.WAV Executable file

Binary file not shown.

BIN
Samples/HT0D7.WAV Executable file

Binary file not shown.

BIN
Samples/HT0DA.WAV Executable file

Binary file not shown.

BIN
Samples/HT3D0.WAV Executable file

Binary file not shown.

BIN
Samples/HT3D3.WAV Executable file

Binary file not shown.

BIN
Samples/HT3D7.WAV Executable file

Binary file not shown.

BIN
Samples/HT3DA.WAV Executable file

Binary file not shown.

BIN
Samples/HT7D0.WAV Executable file

Binary file not shown.

BIN
Samples/HT7D3.WAV Executable file

Binary file not shown.

BIN
Samples/HT7D7.WAV Executable file

Binary file not shown.

BIN
Samples/HT7DA.WAV Executable file

Binary file not shown.

BIN
Samples/HTAD0.WAV Executable file

Binary file not shown.

BIN
Samples/HTAD3.WAV Executable file

Binary file not shown.

BIN
Samples/HTAD7.WAV Executable file

Binary file not shown.

BIN
Samples/HTADA.WAV Executable file

Binary file not shown.

BIN
Samples/LT0D0.WAV Executable file

Binary file not shown.

BIN
Samples/LT0D3.WAV Executable file

Binary file not shown.

BIN
Samples/LT0D7.WAV Executable file

Binary file not shown.

BIN
Samples/LT0DA.WAV Executable file

Binary file not shown.

BIN
Samples/LT3D0.WAV Executable file

Binary file not shown.

BIN
Samples/LT3D3.WAV Executable file

Binary file not shown.

BIN
Samples/LT3D7.WAV Executable file

Binary file not shown.

BIN
Samples/LT3DA.WAV Executable file

Binary file not shown.

BIN
Samples/LT7D0.WAV Executable file

Binary file not shown.

BIN
Samples/LT7D3.WAV Executable file

Binary file not shown.

BIN
Samples/LT7D7.WAV Executable file

Binary file not shown.

BIN
Samples/LT7DA.WAV Executable file

Binary file not shown.

BIN
Samples/LTAD0.WAV Executable file

Binary file not shown.

BIN
Samples/LTAD3.WAV Executable file

Binary file not shown.

BIN
Samples/LTAD7.WAV Executable file

Binary file not shown.

BIN
Samples/LTADA.WAV Executable file

Binary file not shown.

BIN
Samples/MT0D0.WAV Executable file

Binary file not shown.

BIN
Samples/MT0D3.WAV Executable file

Binary file not shown.

BIN
Samples/MT0D7.WAV Executable file

Binary file not shown.

BIN
Samples/MT0DA.WAV Executable file

Binary file not shown.

BIN
Samples/MT3D0.WAV Executable file

Binary file not shown.

BIN
Samples/MT3D3.WAV Executable file

Binary file not shown.

BIN
Samples/MT3D7.WAV Executable file

Binary file not shown.

BIN
Samples/MT3DA.WAV Executable file

Binary file not shown.

BIN
Samples/MT7D0.WAV Executable file

Binary file not shown.

BIN
Samples/MT7D3.WAV Executable file

Binary file not shown.

BIN
Samples/MT7D7.WAV Executable file

Binary file not shown.

BIN
Samples/MT7DA.WAV Executable file

Binary file not shown.

BIN
Samples/MTAD0.WAV Executable file

Binary file not shown.

BIN
Samples/MTAD3.WAV Executable file

Binary file not shown.

BIN
Samples/MTAD7.WAV Executable file

Binary file not shown.

BIN
Samples/MTADA.WAV Executable file

Binary file not shown.

BIN
Samples/OPCL1.WAV Executable file

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show more