Skip to content

Commit

Permalink
Add GlitchSprinkler (WIP)
Browse files Browse the repository at this point in the history
  • Loading branch information
ryukau committed Jun 25, 2024
1 parent 6384fa2 commit 3fb812e
Show file tree
Hide file tree
Showing 21 changed files with 2,209 additions and 40 deletions.
85 changes: 45 additions & 40 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,47 +16,52 @@ add_subdirectory(common)
add_subdirectory(lib/vst3sdk)
smtg_enable_vst3_sdk()

add_subdirectory(AccumulativeRingMod)
add_subdirectory(BasicLimiter)
add_subdirectory(BasicLimiterAutoMake)
add_subdirectory(ClangCymbal)
add_subdirectory(ClangSynth)
add_subdirectory(CollidingCombSynth)
add_subdirectory(CombDistortion)
add_subdirectory(CubicPadSynth)
add_subdirectory(EnvelopedSine)
add_subdirectory(EsPhaser)
add_subdirectory(FDN64Reverb)
add_subdirectory(FDNCymbal)
add_subdirectory(FeedbackPhaser)
add_subdirectory(FoldShaper)
add_subdirectory(GenericDrum)
add_subdirectory(IterativeSinCluster)
add_subdirectory(L3Reverb)
add_subdirectory(L4Reverb)
add_subdirectory(LatticeReverb)
add_subdirectory(LightPadSynth)
add_subdirectory(LongPhaser)
add_subdirectory(MatrixShifter)
add_subdirectory(MaybeSnare)
add_subdirectory(MembraneSynth)
add_subdirectory(MiniCliffEQ)
add_subdirectory(ModuloShaper)
add_subdirectory(NarrowingDelay)
add_subdirectory(OddPowShaper)
add_subdirectory(OrdinaryPhaser)
add_subdirectory(ParallelComb)
add_subdirectory(ParallelDetune)
add_subdirectory(PitchShiftDelay)
add_subdirectory(RingModSpacer)
add_subdirectory(SevenDelay)
add_subdirectory(SoftClipper)
add_subdirectory(SyncSawSynth)
add_subdirectory(TrapezoidSynth)
add_subdirectory(UltraSynth)
add_subdirectory(UltrasonicRingMod)
add_subdirectory(WaveCymbal)
# add_subdirectory(AccumulativeRingMod)
# add_subdirectory(BasicLimiter)
# add_subdirectory(BasicLimiterAutoMake)
# add_subdirectory(ClangCymbal)
# add_subdirectory(ClangSynth)
# add_subdirectory(CollidingCombSynth)
# add_subdirectory(CombDistortion)
# add_subdirectory(CubicPadSynth)
# add_subdirectory(EnvelopedSine)
# add_subdirectory(EsPhaser)
# add_subdirectory(FDN64Reverb)
# add_subdirectory(FDNCymbal)
# add_subdirectory(FeedbackPhaser)
# add_subdirectory(FoldShaper)
# add_subdirectory(GenericDrum)
# add_subdirectory(IterativeSinCluster)
# add_subdirectory(L3Reverb)
# add_subdirectory(L4Reverb)
# add_subdirectory(LatticeReverb)
# add_subdirectory(LightPadSynth)
# add_subdirectory(LongPhaser)
# add_subdirectory(MatrixShifter)
# add_subdirectory(MaybeSnare)
# add_subdirectory(MembraneSynth)
# add_subdirectory(MiniCliffEQ)
# add_subdirectory(ModuloShaper)
# add_subdirectory(NarrowingDelay)
# add_subdirectory(OddPowShaper)
# add_subdirectory(OrdinaryPhaser)
# add_subdirectory(ParallelComb)
# add_subdirectory(ParallelDetune)
# add_subdirectory(PitchShiftDelay)
# add_subdirectory(RingModSpacer)
# add_subdirectory(SevenDelay)
# add_subdirectory(SoftClipper)
# add_subdirectory(SyncSawSynth)
# add_subdirectory(TrapezoidSynth)
# add_subdirectory(UltraSynth)
# add_subdirectory(UltrasonicRingMod)
# add_subdirectory(WaveCymbal)

# ## Below are prototype plugins. Breaking changes will be introduced.
# add_subdirectory(TestBedSynth)
# add_subdirectory(GrowlSynth)

# add_subdirectory(OctaveDownReverb)
# add_subdirectory(BasicFlanger)
# add_subdirectory(LoopCymbal)
add_subdirectory(GlitchSprinkler)
17 changes: 17 additions & 0 deletions GlitchSprinkler/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
cmake_minimum_required(VERSION 3.20)

include(../common/cmake/non_simd.cmake)

if(TEST_PLUGIN)
build_test("")
else()
# VST 3 source files.
set(plug_sources
source/parameter.cpp
source/gui/splashdraw.cpp
source/plugprocessor.cpp
source/editor.cpp
source/plugfactory.cpp)

build_vst3("${plug_sources}")
endif()
28 changes: 28 additions & 0 deletions GlitchSprinkler/resource/Info.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSHumanReadableCopyright</key>
<string>2018 Steinberg Media Technologies</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>GlitchSprinkler</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>com.steinberg.vst3.GlitchSprinkler</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CSResourcesFileMapped</key>
<true />
</dict>
</plist>
44 changes: 44 additions & 0 deletions GlitchSprinkler/resource/plug.rc
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#include <windows.h>
#include "../source/version.hpp"

#define APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
// Version
/////////////////////////////////////////////////////////////////////////////
VS_VERSION_INFO VERSIONINFO
FILEVERSION MAJOR_VERSION_INT,SUB_VERSION_INT,RELEASE_NUMBER_INT,BUILD_NUMBER_INT
PRODUCTVERSION MAJOR_VERSION_INT,SUB_VERSION_INT,RELEASE_NUMBER_INT,BUILD_NUMBER_INT
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040004e4"
BEGIN
VALUE "FileVersion", FULL_VERSION_STR"\0"
VALUE "ProductVersion", FULL_VERSION_STR"\0"
VALUE "OriginalFilename", stringOriginalFilename"\0"
VALUE "FileDescription", stringFileDescription"\0"
VALUE "InternalName", stringFileDescription"\0"
VALUE "ProductName", stringFileDescription"\0"
VALUE "CompanyName", stringCompanyName"\0"
VALUE "LegalCopyright", stringLegalCopyright"\0"
VALUE "LegalTrademarks", stringLegalTrademarks"\0"
//VALUE "PrivateBuild", " \0"
//VALUE "SpecialBuild", " \0"
//VALUE "Comments", " \0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x400, 1252
END
END
80 changes: 80 additions & 0 deletions GlitchSprinkler/source/controller.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
// (c) 2023 Takamitsu Endo
//
// This file is part of GlitchSprinkler.
//
// GlitchSprinkler is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// GlitchSprinkler is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with GlitchSprinkler. If not, see <https://www.gnu.org/licenses/>.

#pragma once

#include "../../common/plugcontroller.hpp"
#include "parameter.hpp"

namespace Steinberg {
namespace Synth {

template<typename EditorType, typename ParameterType>
tresult PLUGIN_API PlugController<EditorType, ParameterType>::getMidiControllerAssignment(
int32 busIndex, int16 channel, Vst::CtrlNumber midiControllerNumber, Vst::ParamID &id)
{
switch (midiControllerNumber) {
// case Vst::kPitchBend:
// id = ParameterID::pitchBend;
// return kResultOk;
}
return kResultFalse;
}

template<typename EditorType, typename ParameterType>
int32 PLUGIN_API PlugController<EditorType, ParameterType>::getNoteExpressionCount(
int32 busIndex, int16 channel)
{
return 0;
}

template<typename EditorType, typename ParameterType>
tresult PLUGIN_API PlugController<EditorType, ParameterType>::getNoteExpressionInfo(
int32 busIndex,
int16 channel,
int32 noteExpressionIndex,
Vst::NoteExpressionTypeInfo &info)
{
return kResultFalse;
}

template<typename EditorType, typename ParameterType>
tresult PLUGIN_API
PlugController<EditorType, ParameterType>::getNoteExpressionStringByValue(
int32 busIndex,
int16 channel,
Vst::NoteExpressionTypeID id,
Vst::NoteExpressionValue valueNormalized,
Vst::String128 string)
{
return kResultFalse;
}

template<typename EditorType, typename ParameterType>
tresult PLUGIN_API
PlugController<EditorType, ParameterType>::getNoteExpressionValueByString(
int32 busIndex,
int16 channel,
Vst::NoteExpressionTypeID id,
const Vst::TChar *string,
Vst::NoteExpressionValue &valueNormalized)
{
return kResultFalse;
}

} // namespace Synth
} // namespace Steinberg
Loading

0 comments on commit 3fb812e

Please sign in to comment.