├── .gitattributes ├── .gitignore ├── .vscode └── c_cpp_properties.json ├── LICENSE ├── README.md ├── StupidCompressor.RPP ├── StupidCompressor.code-workspace ├── StupidCompressor.cpp ├── StupidCompressor.h ├── StupidCompressor.sln ├── StupidCompressor.xcworkspace ├── .xcodesamplecode.plist ├── contents.xcworkspacedata └── xcshareddata │ └── IDEWorkspaceChecks.plist ├── common.h ├── config.h ├── config ├── StupidCompressor-ios.xcconfig ├── StupidCompressor-mac.xcconfig ├── StupidCompressor-web.mk └── StupidCompressor-win.props ├── installer ├── StupidCompressor-installer-bg.png ├── StupidCompressor.iss ├── StupidCompressor.pkgproj ├── StupidCompressorFoo.iss ├── changelog.txt ├── intro.rtf ├── known-issues.txt ├── license.rtf ├── readme-osx.rtf └── readme-win.rtf ├── manual ├── StupidCompressor manual.pdf └── StupidCompressor manual.tex ├── projects ├── StupidCompressor-aax.vcxproj ├── StupidCompressor-aax.vcxproj.filters ├── StupidCompressor-aax.vcxproj.user ├── StupidCompressor-app.vcxproj ├── StupidCompressor-app.vcxproj.filters ├── StupidCompressor-app.vcxproj.user ├── StupidCompressor-iOS.entitlements ├── StupidCompressor-iOS.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcshareddata │ │ └── xcschemes │ │ ├── iOS-APP with AUv3.xcscheme │ │ ├── iOS-AUv3.xcscheme │ │ └── iOS-AUv3Framework.xcscheme ├── StupidCompressor-macOS.entitlements ├── StupidCompressor-macOS.xcodeproj │ ├── project.pbxproj │ └── xcshareddata │ │ └── xcschemes │ │ ├── All macOS.xcscheme │ │ ├── VST3 Controller Library.xcscheme │ │ ├── macOS-AAX.xcscheme │ │ ├── macOS-APP with AUv3.xcscheme │ │ ├── macOS-APP.xcscheme │ │ ├── macOS-AUv2.xcscheme │ │ ├── macOS-AUv3.xcscheme │ │ ├── macOS-AUv3Framework.xcscheme │ │ ├── macOS-VST2.xcscheme │ │ ├── macOS-VST3 (Distributed).xcscheme │ │ └── macOS-VST3.xcscheme ├── StupidCompressor-vst2.vcxproj ├── StupidCompressor-vst2.vcxproj.filters ├── StupidCompressor-vst2.vcxproj.user ├── StupidCompressor-vst3.vcxproj ├── StupidCompressor-vst3.vcxproj.filters ├── StupidCompressor-vst3.vcxproj.user ├── StupidCompressor-wam-controller.mk └── StupidCompressor-wam-processor.mk ├── resources ├── AUv3Framework.h ├── IPlugAUViewController.xib ├── Images.xcassets │ ├── Contents.json │ └── StupidCompressoriOSAppIcon.appiconset │ │ ├── Contents.json │ │ ├── Icon.png │ │ ├── icon_20pt.png │ │ ├── icon_20pt@2x.png │ │ ├── icon_20pt@3x.png │ │ ├── icon_29pt.png │ │ ├── icon_29pt@2x.png │ │ ├── icon_29pt@3x.png │ │ ├── icon_40pt.png │ │ ├── icon_40pt@2x.png │ │ ├── icon_40pt@3x.png │ │ ├── icon_60pt@2x.png │ │ ├── icon_60pt@3x.png │ │ ├── icon_76pt.png │ │ ├── icon_76pt@2x.png │ │ └── icon_83.5@2x.png ├── StupidCompressor-AAX-Info.plist ├── StupidCompressor-AU-Info.plist ├── StupidCompressor-Pages.xml ├── StupidCompressor-VST2-Info.plist ├── StupidCompressor-VST3-Info.plist ├── StupidCompressor-iOS-AUv3-Info.plist ├── StupidCompressor-iOS-AUv3Framework-Info.plist ├── StupidCompressor-iOS-Info.plist ├── StupidCompressor-iOS-LaunchScreen.storyboard ├── StupidCompressor-iOS-MainInterface.storyboard ├── StupidCompressor-iOS.storyboard ├── StupidCompressor-macOS-AUv3-Info.plist ├── StupidCompressor-macOS-AUv3Framework-Info.plist ├── StupidCompressor-macOS-Info.plist ├── StupidCompressor-macOS-MainMenu.xib ├── StupidCompressor.icns ├── StupidCompressor.ico ├── fonts │ └── Roboto-Regular.ttf ├── logo.png ├── main.rc ├── main.rc_mac_dlg ├── main.rc_mac_menu └── resource.h ├── scripts ├── make_zip.py ├── makedist-mac.sh ├── makedist-web.sh ├── makedist-win.bat ├── postbuild-win.bat ├── prebuild-win.bat ├── prepare_resources-ios.py ├── prepare_resources-mac.py ├── prepare_resources-win.py ├── update_installer_version.py └── update_version.py └── src ├── dsp ├── SCompressor.h ├── SDistortion.h ├── SFilter.h ├── SLFO.h ├── SLightLimiter.h └── STransients.h └── interface ├── SAboutWindow.h ├── SCloseButton.h ├── SCustomInterface.h ├── SInfoText.h ├── SKnob.h ├── SLFOWindow.h ├── SOpenLFOButton.h ├── SOptionChooser.h ├── SRatioViewer.h ├── SSidebar.h ├── SSkin.h ├── STextButton.h ├── STextLogoButton.h └── SToggleButton.h /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.vs 2 | *.exe 3 | *.sdf 4 | *.opensdf 5 | *.zip 6 | *.suo 7 | *.ncb 8 | *.vcproj.* 9 | *.pkg 10 | *.dmg 11 | *.depend 12 | *.layout 13 | *.mode1v3 14 | *.db 15 | *.LSOverride 16 | *.xcuserdata 17 | *.xcschememanagement.plist 18 | build-* 19 | ipch/* 20 | gui/* 21 | 22 | Icon? 23 | .DS_Stor* -------------------------------------------------------------------------------- /.vscode/c_cpp_properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "commonIncludePaths": [ 4 | "${workspaceFolder}/**", 5 | "${workspaceFolder}/../../WDL/**", 6 | "${workspaceFolder}/../../IPlug/**", 7 | "${workspaceFolder}/../../IGraphics/**", 8 | "${workspaceFolder}/../../Dependencies/**" 9 | ], 10 | "commonDefs": [ 11 | "APP_API", 12 | "IPLUG_DSP=1", 13 | "IPLUG_EDITOR=1", 14 | "IGRAPHICS_NANOVG", 15 | "NOMINMAX" 16 | ] 17 | }, 18 | "configurations": [ 19 | { 20 | "name": "Mac", 21 | "includePath": [ 22 | "${commonIncludePaths}", 23 | "${workspaceFolder}/../../Dependencies/Build/mac/include/**" 24 | ], 25 | "defines": [ 26 | "${commonDefs}", 27 | "OS_MAC", 28 | "IGRAPHICS_METAL" 29 | ], 30 | "macFrameworkPath": [ 31 | "/System/Library/Frameworks", 32 | "/Library/Frameworks" 33 | ], 34 | "cppStandard": "c++14" 35 | }, 36 | { 37 | "name": "Win32", 38 | "includePath": [ 39 | "${commonIncludePaths}" 40 | ], 41 | "defines": [ 42 | "${commonDefs}", 43 | "OS_WIN", 44 | "IGRAPHICS_GL2" 45 | ] 46 | } 47 | ], 48 | "version": 4 49 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # StupidCompressor 2 | Visual audio compressor designed with ease and speed in mind. 3 | -------------------------------------------------------------------------------- /StupidCompressor.RPP: -------------------------------------------------------------------------------- 1 | 28 | 30 | RENDER_FILE "" 31 | RENDER_PATTERN "" 32 | RENDER_FMT 0 2 0 33 | RENDER_1X 0 34 | RENDER_RANGE 1 0 0 18 1000 35 | RENDER_RESAMPLE 3 0 1 36 | RENDER_ADDTOPROJ 0 37 | RENDER_STEMS 0 38 | RENDER_DITHER 0 39 | TIMELOCKMODE 1 40 | TEMPOENVLOCKMODE 1 41 | ITEMMIX 0 42 | DEFPITCHMODE 589824 0 43 | TAKELANE 1 44 | SAMPLERATE 44100 0 0 45 | 47 | LOCK 1 48 | 55 | GLOBAL_AUTO -1 56 | TEMPO 120 4 4 57 | PLAYRATE 1 0 0.25 4 58 | SELECTION 0 0 59 | SELECTION2 0 0 60 | MASTERAUTOMODE 0 61 | MASTERTRACKHEIGHT 0 0 62 | MASTERPEAKCOL 16576 63 | MASTERMUTESOLO 0 64 | MASTERTRACKVIEW 0 0.6667 0.5 0.5 0 0 0 0 0 0 65 | MASTERHWOUT 0 0 1 0 0 0 0 -1 66 | MASTER_NCH 2 2 67 | MASTER_VOLUME 1 0 -1 -1 1 68 | MASTER_FX 1 69 | MASTER_SEL 0 70 | 77 | 84 | 86 | 121 | FLOATPOS 0 0 0 0 122 | FXID {C278294F-75A4-4C7A-AB71-9D724E6E3CDF} 123 | WAK 0 0 124 | > 125 | > 126 | > 127 | -------------------------------------------------------------------------------- /StupidCompressor.code-workspace: -------------------------------------------------------------------------------- 1 | { 2 | "folders": [ 3 | { 4 | "path": "." 5 | } 6 | ], 7 | "settings": { 8 | "files.associations": { 9 | "algorithm": "cpp" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /StupidCompressor.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "IPlug_include_in_plug_hdr.h" 4 | #include "IControls.h" 5 | #include "IPlugPaths.h" 6 | #include "src/dsp/SLFO.h" 7 | #include "src/dsp/SCompressor.h" 8 | #include "src/dsp/SFilter.h" 9 | #include "src/dsp/SLightLimiter.h" 10 | #include "src/dsp/SDistortion.h" 11 | #include "src/dsp/STransients.h" 12 | #include "common.h" 13 | 14 | const int kNumPresets = 1; 15 | 16 | enum EParams 17 | { 18 | kGainIn = 0, 19 | kGainOut, 20 | kParamLFORateTempo, 21 | kLFODepth, 22 | kFoo, 23 | kLFOOffset, 24 | kThreshold, 25 | kRatio, 26 | kAttack, 27 | kRelease, 28 | kLowpassFreq, 29 | kHighpassFreq, 30 | kBandpassCompress, 31 | kClipPower, 32 | kClipType, 33 | kCompressMode, 34 | kTransientPower, 35 | kTransients, 36 | kDrive, 37 | kLimiterRelease, 38 | kMasterInput, 39 | kMasterOutput, 40 | kNumParams 41 | }; 42 | 43 | enum EControlTags { 44 | kInfoText = 0, 45 | kLFOWindow, 46 | kCloseButton, 47 | kAboutButton, 48 | kCustomWindowSend, 49 | kAdvancedSkin, 50 | kCtrlTags 51 | }; 52 | 53 | using namespace iplug; 54 | using namespace igraphics; 55 | 56 | class StupidCompressor final : public Plugin 57 | { 58 | public: 59 | StupidCompressor(const InstanceInfo& info); 60 | void ProcessBlock(sample** inputs, sample** outputs, int nFrames) override; 61 | void OnIdle() override; 62 | //void OnParamChange(int idx) override; 63 | void OnParamChangeUI(int idx, EParamSource a) override; 64 | void OnParamChange(int idx) override; 65 | bool OnMessage(int msgTag, int ctrlTag, int dataSize, const void* pData) override; 66 | void HideGroup(int group); 67 | void ShowGroup(int group); 68 | void ManageSpecialCases(int openGroup); 69 | 70 | private: 71 | IRECT b; 72 | SLFO lfo; 73 | std::vector points; 74 | ISender<3> mDisplaySender; 75 | float movingAverage; 76 | float movingAverageInput; 77 | SCompressor leftC; 78 | SCompressor rightC; 79 | float split[4]; 80 | std::vector controls; 81 | float left; 82 | float right; 83 | float bandLeft; 84 | float bandRight; 85 | float compressedLeft; 86 | float compressedRight; 87 | float outputLeft; 88 | float outputRight; 89 | SLightLimiter leftL; 90 | SLightLimiter rightL; 91 | bool clipPower; 92 | bool bandpassPower; 93 | bool transientsPower; 94 | int clipOption; 95 | int compressOption; 96 | SDistortion leftD; 97 | SDistortion rightD; 98 | STransients leftT; 99 | STransients rightT; 100 | StereoFilter lowpass; 101 | StereoFilter highpass; 102 | int openGroup; 103 | int uiLastChange; 104 | float masterGainInput; 105 | float masterGainOutput; 106 | }; 107 | 108 | 109 | float clip(float n, float lower, float upper) 110 | { 111 | n = (n > lower) * n + !(n > lower) * lower; 112 | return (n < upper) * n + !(n < upper) * upper; 113 | } -------------------------------------------------------------------------------- /StupidCompressor.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.27004.2006 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StupidCompressor-app", "projects\StupidCompressor-app.vcxproj", "{41785AE4-5B70-4A75-880B-4B418B4E13C6}" 7 | EndProject 8 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StupidCompressor-vst2", "projects\StupidCompressor-vst2.vcxproj", "{2EB4846A-93E0-43A0-821E-12237105168F}" 9 | EndProject 10 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StupidCompressor-vst3", "projects\StupidCompressor-vst3.vcxproj", "{079FC65A-F0E5-4E97-B318-A16D1D0B89DF}" 11 | EndProject 12 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StupidCompressor-aax", "projects\StupidCompressor-aax.vcxproj", "{DC4B5920-933D-4C82-B842-F34431D55A93}" 13 | EndProject 14 | Global 15 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 16 | Debug|Win32 = Debug|Win32 17 | Debug|x64 = Debug|x64 18 | Release|Win32 = Release|Win32 19 | Release|x64 = Release|x64 20 | Tracer|Win32 = Tracer|Win32 21 | Tracer|x64 = Tracer|x64 22 | EndGlobalSection 23 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 24 | {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Debug|Win32.ActiveCfg = Debug|Win32 25 | {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Debug|Win32.Build.0 = Debug|Win32 26 | {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Debug|x64.ActiveCfg = Debug|x64 27 | {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Debug|x64.Build.0 = Debug|x64 28 | {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Release|Win32.ActiveCfg = Release|Win32 29 | {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Release|Win32.Build.0 = Release|Win32 30 | {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Release|x64.ActiveCfg = Release|x64 31 | {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Release|x64.Build.0 = Release|x64 32 | {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Tracer|Win32.ActiveCfg = Tracer|Win32 33 | {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Tracer|Win32.Build.0 = Tracer|Win32 34 | {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Tracer|x64.ActiveCfg = Tracer|x64 35 | {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Tracer|x64.Build.0 = Tracer|x64 36 | {2EB4846A-93E0-43A0-821E-12237105168F}.Debug|Win32.ActiveCfg = Debug|Win32 37 | {2EB4846A-93E0-43A0-821E-12237105168F}.Debug|Win32.Build.0 = Debug|Win32 38 | {2EB4846A-93E0-43A0-821E-12237105168F}.Debug|x64.ActiveCfg = Debug|x64 39 | {2EB4846A-93E0-43A0-821E-12237105168F}.Debug|x64.Build.0 = Debug|x64 40 | {2EB4846A-93E0-43A0-821E-12237105168F}.Release|Win32.ActiveCfg = Release|Win32 41 | {2EB4846A-93E0-43A0-821E-12237105168F}.Release|Win32.Build.0 = Release|Win32 42 | {2EB4846A-93E0-43A0-821E-12237105168F}.Release|x64.ActiveCfg = Release|x64 43 | {2EB4846A-93E0-43A0-821E-12237105168F}.Release|x64.Build.0 = Release|x64 44 | {2EB4846A-93E0-43A0-821E-12237105168F}.Tracer|Win32.ActiveCfg = Tracer|Win32 45 | {2EB4846A-93E0-43A0-821E-12237105168F}.Tracer|Win32.Build.0 = Tracer|Win32 46 | {2EB4846A-93E0-43A0-821E-12237105168F}.Tracer|x64.ActiveCfg = Tracer|x64 47 | {2EB4846A-93E0-43A0-821E-12237105168F}.Tracer|x64.Build.0 = Tracer|x64 48 | {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Debug|Win32.ActiveCfg = Debug|Win32 49 | {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Debug|Win32.Build.0 = Debug|Win32 50 | {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Debug|x64.ActiveCfg = Debug|x64 51 | {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Debug|x64.Build.0 = Debug|x64 52 | {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Release|Win32.ActiveCfg = Release|Win32 53 | {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Release|Win32.Build.0 = Release|Win32 54 | {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Release|x64.ActiveCfg = Release|x64 55 | {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Release|x64.Build.0 = Release|x64 56 | {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Tracer|Win32.ActiveCfg = Tracer|Win32 57 | {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Tracer|Win32.Build.0 = Tracer|Win32 58 | {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Tracer|x64.ActiveCfg = Tracer|x64 59 | {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Tracer|x64.Build.0 = Tracer|x64 60 | {DC4B5920-933D-4C82-B842-F34431D55A93}.Debug|Win32.ActiveCfg = Debug|Win32 61 | {DC4B5920-933D-4C82-B842-F34431D55A93}.Debug|Win32.Build.0 = Debug|Win32 62 | {DC4B5920-933D-4C82-B842-F34431D55A93}.Debug|x64.ActiveCfg = Debug|x64 63 | {DC4B5920-933D-4C82-B842-F34431D55A93}.Debug|x64.Build.0 = Debug|x64 64 | {DC4B5920-933D-4C82-B842-F34431D55A93}.Release|Win32.ActiveCfg = Release|Win32 65 | {DC4B5920-933D-4C82-B842-F34431D55A93}.Release|Win32.Build.0 = Release|Win32 66 | {DC4B5920-933D-4C82-B842-F34431D55A93}.Release|x64.ActiveCfg = Release|x64 67 | {DC4B5920-933D-4C82-B842-F34431D55A93}.Release|x64.Build.0 = Release|x64 68 | {DC4B5920-933D-4C82-B842-F34431D55A93}.Tracer|Win32.ActiveCfg = Tracer|Win32 69 | {DC4B5920-933D-4C82-B842-F34431D55A93}.Tracer|Win32.Build.0 = Tracer|Win32 70 | {DC4B5920-933D-4C82-B842-F34431D55A93}.Tracer|x64.ActiveCfg = Tracer|x64 71 | {DC4B5920-933D-4C82-B842-F34431D55A93}.Tracer|x64.Build.0 = Tracer|x64 72 | EndGlobalSection 73 | GlobalSection(SolutionProperties) = preSolution 74 | HideSolutionNode = FALSE 75 | EndGlobalSection 76 | GlobalSection(ExtensibilityGlobals) = postSolution 77 | SolutionGuid = {39C95EA8-A7C1-4EB9-93C3-452C5E54C752} 78 | EndGlobalSection 79 | EndGlobal 80 | -------------------------------------------------------------------------------- /StupidCompressor.xcworkspace/.xcodesamplecode.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Snipet/StupidCompressor/1e713fdf364da811c8a3e35a2687104d2999ed99/StupidCompressor.xcworkspace/.xcodesamplecode.plist -------------------------------------------------------------------------------- /StupidCompressor.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /StupidCompressor.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /common.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "IControl.h" 4 | #include "cmath" 5 | using namespace iplug; 6 | using namespace igraphics; 7 | 8 | #define LFO_TEMPODIV_VALIST "1/64", "1/32", "1/16T", "1/16", "1/16D", "1/8T", "1/8", "1/8D", "1/4", "1/4D", "1/2", "1/1", "2/1", "4/1", "8/1" 9 | 10 | 11 | 12 | enum ETempoDivison 13 | { 14 | k64th = 0, // 1 sixty fourth of a beat 15 | k32nd, // 1 thirty second of a beat 16 | k16thT, // 1 sixteenth note triplet 17 | k16th, // 1 sixteenth note 18 | k16thD, // 1 dotted sixteenth note 19 | k8thT, // 1 eighth note triplet 20 | k8th, // 1 eighth note 21 | k8thD, // 1 dotted eighth note 22 | k4th, // 1 quater note a.k.a 1 beat @ 4/4 23 | k4thD, // 1 dotted beat @ 4/4 24 | k2th, // 2 beats @ 4/4 25 | k1, // 1 bar @ 4/4 26 | k2, // 2 bars @ 4/4 27 | k4, // 4 bars @ 4/4 28 | k8, // 8 bars @ 4/4 29 | kNumDivisions 30 | }; 31 | 32 | 33 | struct SControl { 34 | IControl* control; 35 | int group; 36 | int specialCase; 37 | SControl(IControl* c, int g, int sc = 0) { 38 | control = c; 39 | group = g; 40 | specialCase = sc; 41 | } 42 | SControl() { 43 | 44 | } 45 | }; 46 | enum kLFOMessageActions { 47 | kUpdatePoint = 0, 48 | kAddPoint, 49 | kRemovePoint, 50 | kSendPoints 51 | }; 52 | 53 | static constexpr float scalars[kNumDivisions] = { 54 | 64. / 4., // k64th = 0, // 1 sixty fourth of a beat 55 | 32. / 4., // k32nd, // 1 thirty second of a beat 56 | 24. / 4., // k16thT, // 1 sixteenth note triplet 57 | 16. / 4., // k16th, // 1 sixteenth note 58 | 12. / 4., // k16thD, // 1 dotted sixteenth note 59 | 9. / 4., // k8thT, // 1 eighth note triplet 60 | 8. / 4., // k8th, // 1 eighth note 61 | 6 / 4., // k8thD, // 1 dotted eighth note 62 | 4. / 4., // k4th, // 1 quater note a.k.a 1 beat @ 4/4 63 | 3. / 4., // k4thD, // 1 dotted beat @ 4/4 64 | 2. / 4., // k2th, // 2 beats @ 4/4 65 | 1. / 4., // k1, // 1 bar @ 4/4 66 | 0.5 / 4., // k2, // 2 bars @ 4/4 67 | 0.25 / 4., // k4, // 4 bars @ 4/4 68 | 0.125 / 4., // k8, // 8 bars @ 4/4 69 | }; 70 | 71 | 72 | struct SKnob_Style { 73 | IColor mainColor; 74 | IColor pointerColor; 75 | float pointerWidth; 76 | float trackSize; 77 | IColor textColor; 78 | IColor trackColor; 79 | bool inDark; 80 | SKnob_Style(const IColor& m, const IColor& p, const IColor& tc = IColor(255, 240, 240, 240), float pw = 4.f, float ts = 4.f, const IColor& tkc = COLOR_RED, bool inTheDark = false) { 81 | mainColor = m; 82 | pointerColor = p; 83 | textColor = tc; 84 | pointerWidth = pw; 85 | trackSize = ts; 86 | trackColor = tkc; 87 | inDark = inTheDark; 88 | } 89 | SKnob_Style() { 90 | 91 | } 92 | }; 93 | 94 | namespace bounds_math { 95 | 96 | float getRadius(IRECT bounds) { 97 | return ((bounds.B - bounds.T) + (bounds.R - bounds.L)) / 4; 98 | } 99 | 100 | bool mouseInBounds(IRECT bounds, float x, float y) { 101 | return ((x > bounds.L && x < bounds.R) && (y > bounds.T && y < bounds.B)); 102 | } 103 | 104 | IRECT coordsToIRECT(float x, float y) { 105 | return IRECT(x, y, x, y); 106 | } 107 | 108 | float getCenter(IRECT bounds) { 109 | return bounds.L + (bounds.R - bounds.L) / 2; 110 | } 111 | } 112 | 113 | float Clip(float n, float lower, float upper) { 114 | return std::max(lower, std::min(n, upper)); 115 | } 116 | 117 | class Point { 118 | public: 119 | int uid; 120 | float x; 121 | float y; 122 | bool operator < (const Point& point) const { return (this->x < point.x); }; 123 | bool operator >(const Point& point) const { return (this->x > point.x); }; 124 | bool operator == (const Point& point) const { return (this->uid == point.uid); }; 125 | }; 126 | -------------------------------------------------------------------------------- /config.h: -------------------------------------------------------------------------------- 1 | #define PLUG_NAME "StupidCompressor" 2 | #define PLUG_MFR "SNFK_MUSIC" 3 | #define PLUG_VERSION_HEX 0x00010000 4 | #define PLUG_VERSION_STR "0.4.20" 5 | #define PLUG_UNIQUE_ID '2JAz' 6 | #define PLUG_MFR_ID 'Snfk' 7 | #define PLUG_URL_STR "https://iplug2.github.io" 8 | #define PLUG_EMAIL_STR "sean@snfkmusic.com" 9 | #define PLUG_COPYRIGHT_STR "Copyright 2020 SNFK Music Inc" 10 | #define PLUG_CLASS_NAME StupidCompressor 11 | 12 | #define BUNDLE_NAME "StupidCompressor" 13 | #define BUNDLE_MFR "SNFK_MUSIC" 14 | #define BUNDLE_DOMAIN "com" 15 | 16 | #define SHARED_RESOURCES_SUBPATH "StupidCompressor" 17 | 18 | #define PLUG_CHANNEL_IO "1-1 2-2" 19 | 20 | #define PLUG_LATENCY 0 21 | #define PLUG_TYPE 0 22 | #define PLUG_DOES_MIDI_IN 0 23 | #define PLUG_DOES_MIDI_OUT 0 24 | #define PLUG_DOES_MPE 0 25 | #define PLUG_DOES_STATE_CHUNKS 0 26 | #define PLUG_HAS_UI 1 27 | #define PLUG_WIDTH 900 28 | #define PLUG_HEIGHT 350 29 | #define PLUG_FPS 60 30 | #define PLUG_SHARED_RESOURCES 0 31 | #define PLUG_HOST_RESIZE 0 32 | 33 | #define AUV2_ENTRY StupidCompressor_Entry 34 | #define AUV2_ENTRY_STR "StupidCompressor_Entry" 35 | #define AUV2_FACTORY StupidCompressor_Factory 36 | #define AUV2_VIEW_CLASS StupidCompressor_View 37 | #define AUV2_VIEW_CLASS_STR "StupidCompressor_View" 38 | 39 | #define AAX_TYPE_IDS 'IEF1', 'IEF2' 40 | #define AAX_TYPE_IDS_AUDIOSUITE 'IEA1', 'IEA2' 41 | #define AAX_PLUG_MFR_STR "Acme" 42 | #define AAX_PLUG_NAME_STR "StupidCompressor\nIPEF" 43 | #define AAX_PLUG_CATEGORY_STR "Effect" 44 | #define AAX_DOES_AUDIOSUITE 1 45 | 46 | #define VST3_SUBCATEGORY "Fx" 47 | 48 | #define APP_NUM_CHANNELS 2 49 | #define APP_N_VECTOR_WAIT 0 50 | #define APP_MULT 1 51 | #define APP_COPY_AUV3 0 52 | #define APP_SIGNAL_VECTOR_SIZE 64 53 | 54 | #define LOGO_FN "logo.png" 55 | #define ROBOTO_FN "Roboto-Regular.ttf" 56 | -------------------------------------------------------------------------------- /config/StupidCompressor-ios.xcconfig: -------------------------------------------------------------------------------- 1 | 2 | // IPLUG2_ROOT should point to the top level IPLUG2 folder 3 | // By default, that is three directories up from /Examples/StupidCompressor/config 4 | // If you want to build your project "out of source", you can change IPLUG2_ROOT and the path to common-ios.xcconfig 5 | 6 | IPLUG2_ROOT = ../../.. 7 | 8 | #include "../../../common-ios.xcconfig" 9 | 10 | //------------------------------ 11 | // Global build settings 12 | 13 | // the basename of the vst, vst3, app, component, aaxplugin 14 | BINARY_NAME = StupidCompressor 15 | 16 | // ------------------------------ 17 | // HEADER AND LIBRARY SEARCH PATHS 18 | EXTRA_INC_PATHS = $(IGRAPHICS_INC_PATHS) 19 | EXTRA_LIB_PATHS = $(IGRAPHICS_LIB_PATHS) 20 | EXTRA_LNK_FLAGS = -framework Metal -framework MetalKit //$(IGRAPHICS_LNK_FLAGS) 21 | 22 | //------------------------------ 23 | // PREPROCESSOR MACROS 24 | 25 | EXTRA_ALL_DEFS = OBJC_PREFIX=vStupidCompressor IGRAPHICS_NANOVG IGRAPHICS_METAL SAMPLE_TYPE_FLOAT 26 | //EXTRA_DEBUG_DEFS = 27 | //EXTRA_RELEASE_DEFS = 28 | //EXTRA_TRACER_DEFS = 29 | 30 | //------------------------------ 31 | // RELEASE BUILD OPTIONS 32 | 33 | //Enable/Disable Profiling code 34 | PROFILE = NO //NO, YES - enable this if you want to use instruments to profile a plugin 35 | 36 | // GCC optimization level - 37 | // None: [-O0] Fast: [-O, -O1] Faster:[-O2] Fastest: [-O3] Fastest, smallest: Optimize for size. [-Os] 38 | RELEASE_OPTIMIZE = 3 //0,1,2,3,s 39 | 40 | //------------------------------ 41 | // DEBUG BUILD OPTIONS 42 | DEBUG_OPTIMIZE = 0 //0,1,2,3,s 43 | 44 | //------------------------------ 45 | // MISCELLANEOUS COMPILER OPTIONS 46 | 47 | GCC_INCREASE_PRECOMPILED_HEADER_SHARING = NO 48 | 49 | // Uncomment to enable relaxed IEEE compliance 50 | //GCC_FAST_MATH = YES 51 | 52 | // Flags to pass to compiler for all builds 53 | GCC_CFLAGS = -Wno-write-strings 54 | 55 | ENABLE_BITCODE = YES 56 | -------------------------------------------------------------------------------- /config/StupidCompressor-mac.xcconfig: -------------------------------------------------------------------------------- 1 | 2 | // IPLUG2_ROOT should point to the top level IPLUG2 folder 3 | // By default, that is three directories up from /Examples/StupidCompressor/config 4 | // If you want to build your project "out of source", you can change IPLUG2_ROOT and the path to common-mac.xcconfig 5 | 6 | IPLUG2_ROOT = ../../.. 7 | 8 | #include "../../../common-mac.xcconfig" 9 | 10 | //------------------------------ 11 | // Global build settings 12 | 13 | // the basename of the vst, vst3, app, component, aaxplugin 14 | BINARY_NAME = StupidCompressor 15 | 16 | // ------------------------------ 17 | // HEADER AND LIBRARY SEARCH PATHS 18 | EXTRA_INC_PATHS = $(IGRAPHICS_INC_PATHS) 19 | EXTRA_LIB_PATHS = $(IGRAPHICS_LIB_PATHS) 20 | EXTRA_LNK_FLAGS = -framework Metal -framework MetalKit -framework OpenGL //$(IGRAPHICS_LNK_FLAGS) 21 | 22 | // EXTRA_APP_DEFS = 23 | // EXTRA_PLUGIN_DEFS = 24 | 25 | //------------------------------ 26 | // PREPROCESSOR MACROS 27 | EXTRA_ALL_DEFS = OBJC_PREFIX=vStupidCompressor SWELL_APP_PREFIX=Swell_vStupidCompressor IGRAPHICS_NANOVG IGRAPHICS_METAL 28 | //EXTRA_DEBUG_DEFS = 29 | //EXTRA_RELEASE_DEFS = 30 | //EXTRA_TRACER_DEFS = 31 | 32 | //------------------------------ 33 | // RELEASE BUILD OPTIONS 34 | 35 | //Enable/Disable Profiling code 36 | PROFILE = NO //NO, YES - enable this if you want to use instruments to profile a plugin 37 | 38 | // Optimization level - 39 | // None: [-O0] Fast: [-O, -O1] Faster:[-O2] Fastest: [-O3] Fastest, smallest: Optimize for size. [-Os] 40 | RELEASE_OPTIMIZE = 3 //0,1,2,3,s 41 | 42 | //------------------------------ 43 | // DEBUG BUILD OPTIONS 44 | DEBUG_OPTIMIZE = 0 //0,1,2,3,s 45 | 46 | //------------------------------ 47 | // MISCELLANEOUS COMPILER OPTIONS 48 | 49 | //ARCHS = $(ARCHS_STANDARD_32_64_BIT) 50 | ARCHS = $(ARCHS_STANDARD_64_BIT) 51 | 52 | GCC_INCREASE_PRECOMPILED_HEADER_SHARING = NO 53 | 54 | // Flags to pass to compiler for all builds 55 | GCC_CFLAGS[arch=x86_64] = -Wno-write-strings -mfpmath=sse -msse -msse2 -msse3 //-mavx 56 | 57 | // Uncomment to enable relaxed IEEE compliance 58 | //GCC_FAST_MATH = YES 59 | 60 | // uncomment this to enable codesigning - necessary for AUv3 delivery 61 | CODE_SIGN_IDENTITY=//Mac Developer 62 | -------------------------------------------------------------------------------- /config/StupidCompressor-web.mk: -------------------------------------------------------------------------------- 1 | # IPLUG2_ROOT should point to the top level IPLUG2 folder from the project folder 2 | # By default, that is three directories up from /Examples/StupidCompressor/config 3 | IPLUG2_ROOT = ../../.. 4 | 5 | include ../../../common-web.mk 6 | 7 | SRC += $(PROJECT_ROOT)/StupidCompressor.cpp 8 | 9 | # WAM_SRC += 10 | 11 | # WAM_CFLAGS += 12 | 13 | WEB_CFLAGS += -DIGRAPHICS_NANOVG -DIGRAPHICS_GLES2 14 | 15 | WAM_LDFLAGS += -O3 -s EXPORT_NAME="'AudioWorkletGlobalScope.WAM.StupidCompressor'" -s ASSERTIONS=0 16 | 17 | WEB_LDFLAGS += -O3 -s ASSERTIONS=0 18 | 19 | WEB_LDFLAGS += $(NANOVG_LDFLAGS) 20 | -------------------------------------------------------------------------------- /config/StupidCompressor-win.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(ProjectDir)..\..\.. 5 | StupidCompressor 6 | IGRAPHICS_NANOVG;IGRAPHICS_GL2 7 | 8 | 9 | 10 | $(SolutionDir)build-win\pdbs\$(TargetName)_$(Platform).pdb 11 | $(SolutionDir)build-win 12 | $(IPLUG2_ROOT)\Scripts\create_bundle.bat 13 | 14 | 15 | 16 | 17 | 18 | $(BINARY_NAME) 19 | 20 | 21 | 22 | $(EXTRA_INC_PATHS);$(IPLUG_INC_PATHS);$(IGRAPHICS_INC_PATHS);$(GLAD_GL2_PATHS);%(AdditionalIncludeDirectories) 23 | $(EXTRA_ALL_DEFS);%(PreprocessorDefinitions) 24 | 25 | 26 | wininet.lib;comctl32.lib;Shlwapi.lib;%(AdditionalDependencies) 27 | $(PDB_FILE) 28 | 29 | 30 | CALL "$(SolutionDir)scripts\postbuild-win.bat" "$(TargetExt)" "$(BINARY_NAME)" "$(Platform)" "$(COPY_VST2)" "$(TargetPath)" "$(VST2_32_PATH)" "$(VST2_64_PATH)" "$(VST3_32_PATH)" "$(VST3_64_PATH)" "$(AAX_32_PATH)" "$(AAX_64_PATH)" "$(BUILD_DIR)" "$(VST_ICON)" "$(AAX_ICON)" "$(CREATE_BUNDLE_SCRIPT)" 31 | 32 | 33 | CALL "$(SolutionDir)scripts\prebuild-win.bat" "$(TargetExt)" "$(BINARY_NAME)" "$(Platform)" "$(TargetPath)" "$(OutDir)" 34 | 35 | 36 | 37 | 38 | $(BINARY_NAME) 39 | 40 | 41 | $(EXTRA_ALL_DEFS) 42 | true 43 | 44 | 45 | $(EXTRA_DEBUG_DEFS) 46 | 47 | 48 | $(EXTRA_RELEASE_DEFS) 49 | 50 | 51 | $(EXTRA_TRACER_DEFS) 52 | 53 | 54 | $(PDB_FILE) 55 | 56 | 57 | $(BUILD_DIR) 58 | 59 | 60 | $(CREATE_BUNDLE_SCRIPT) 61 | 62 | 63 | -------------------------------------------------------------------------------- /installer/StupidCompressor-installer-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Snipet/StupidCompressor/1e713fdf364da811c8a3e35a2687104d2999ed99/installer/StupidCompressor-installer-bg.png -------------------------------------------------------------------------------- /installer/StupidCompressorFoo.iss: -------------------------------------------------------------------------------- 1 | [Setup] 2 | AppName=StupidCompressor 3 | AppContact=sean@snfkmusic.com 4 | AppCopyright=Copyright (C) 2021 SNFK Music 5 | AppPublisher=SNFK Music 6 | AppPublisherURL=https://snfkmusic.com 7 | AppSupportURL=https://snfkmusic.com 8 | AppVersion=0.4.20 9 | VersionInfoVersion=0.4.20 10 | DefaultDirName={pf}\StupidCompressor 11 | DefaultGroupName=StupidCompressor 12 | Compression=lzma2 13 | SolidCompression=yes 14 | OutputDir=.\ 15 | ArchitecturesInstallIn64BitMode=x64 16 | OutputBaseFilename=StupidCompressor Installer 17 | LicenseFile=license.rtf 18 | SetupLogging=yes 19 | ShowComponentSizes=no 20 | ; WizardImageFile=installer_bg-win.bmp 21 | ; WizardSmallImageFile=installer_icon-win.bmp 22 | 23 | [Types] 24 | Name: "full"; Description: "Full installation" 25 | Name: "custom"; Description: "Custom installation"; Flags: iscustom 26 | 27 | [Messages] 28 | WelcomeLabel1=Welcome to the StupidCompressor installer 29 | SetupWindowTitle=StupidCompressor installer 30 | SelectDirLabel3=The standalone application and supporting files will be installed in the following folder. 31 | SelectDirBrowseLabel=To continue, click Next. If you would like to select a different folder (not recommended), click Browse. 32 | 33 | [Components] 34 | 35 | Name: "vst3_64"; Description: "64-bit VST3 Plugin (.vst3)"; Types: full custom; Check: Is64BitInstallMode; 36 | Name: "manual"; Description: "User guide"; Types: full custom; Flags: fixed 37 | 38 | [Dirs] 39 | ;Name: "{cf32}\Avid\Audio\Plug-Ins\StupidCompressor.aaxplugin\"; Attribs: readonly; Components:aax_32; ; 40 | Name: "{cf64}\VST3\StupidCompressor.vst3\"; Attribs: readonly; Check: Is64BitInstallMode; Components:vst3_64; 41 | 42 | [Files] 43 | 44 | 45 | 46 | 47 | Source: "..\build-win\StupidCompressor.vst3\*.*"; Excludes: "\Contents\x86\*,*.pdb,*.exp,*.lib,*.ilk,*.ico,*.ini"; DestDir: "{cf64}\VST3\StupidCompressor.vst3\"; Check: Is64BitInstallMode; Components:vst3_64; Flags: ignoreversion recursesubdirs; 48 | Source: "..\build-win\StupidCompressor.vst3\Desktop.ini"; DestDir: "{cf64}\VST3\StupidCompressor.vst3\"; Check: Is64BitInstallMode; Components:vst3_64; Flags: overwritereadonly ignoreversion; Attribs: hidden system; 49 | Source: "..\build-win\StupidCompressor.vst3\PlugIn.ico"; DestDir: "{cf64}\VST3\StupidCompressor.vst3\"; Check: Is64BitInstallMode; Components:vst3_64; Flags: overwritereadonly ignoreversion; Attribs: hidden system; 50 | 51 | 52 | 53 | Source: "..\manual\StupidCompressor manual.pdf"; DestDir: "{app}" 54 | Source: "changelog.txt"; DestDir: "{app}" 55 | Source: "readme-win.rtf"; DestDir: "{app}"; DestName: "readme.rtf"; Flags: isreadme 56 | 57 | [Icons] 58 | Name: "{group}\StupidCompressor"; Filename: "{app}\StupidCompressor.exe" 59 | Name: "{group}\User guide"; Filename: "{app}\StupidCompressor manual.pdf" 60 | Name: "{group}\Changelog"; Filename: "{app}\changelog.txt" 61 | ;Name: "{group}\readme"; Filename: "{app}\readme.rtf" 62 | Name: "{group}\Uninstall StupidCompressor"; Filename: "{app}\unins000.exe" 63 | 64 | [Code] 65 | var 66 | OkToCopyLog : Boolean; 67 | VST2DirPage_32: TInputDirWizardPage; 68 | VST2DirPage_64: TInputDirWizardPage; 69 | 70 | 71 | 72 | function GetVST2Dir_32(Param: String): String; 73 | begin 74 | Result := VST2DirPage_32.Values[0] 75 | end; 76 | 77 | function GetVST2Dir_64(Param: String): String; 78 | begin 79 | Result := VST2DirPage_64.Values[0] 80 | end; 81 | 82 | procedure CurStepChanged(CurStep: TSetupStep); 83 | begin 84 | if CurStep = ssDone then 85 | OkToCopyLog := True; 86 | end; 87 | 88 | procedure DeinitializeSetup(); 89 | begin 90 | if OkToCopyLog then 91 | FileCopy (ExpandConstant ('{log}'), ExpandConstant ('{app}\InstallationLogFile.log'), FALSE); 92 | RestartReplace (ExpandConstant ('{log}'), ''); 93 | end; 94 | 95 | [UninstallDelete] 96 | Type: files; Name: "{app}\InstallationLogFile.log" -------------------------------------------------------------------------------- /installer/changelog.txt: -------------------------------------------------------------------------------- 1 | StupidCompressor changelog 2 | www.thedeveloperswebsite.com 3 | 4 | 00/00/00 - v1.00 initial release -------------------------------------------------------------------------------- /installer/intro.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\cocoartf1504\cocoasubrtf830 2 | \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} 3 | {\colortbl;\red255\green255\blue255;} 4 | {\*\expandedcolortbl;;} 5 | \paperw11900\paperh16840\margl1440\margr1440\vieww14440\viewh8920\viewkind0 6 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 7 | 8 | \f0\fs26 \cf0 BLAH BLAH BLAH BLAH THANK YOU FOR PURCHASING MY PRODUCT\ 9 | \ 10 | THE DEVELOPER\ 11 | \ 12 | contact@thedeveloperswebsite.com\ 13 | \ 14 | http://www.developerswebsite.com\ 15 | } -------------------------------------------------------------------------------- /installer/known-issues.txt: -------------------------------------------------------------------------------- 1 | StupidCompressor changelog 2 | www.thedeveloperswebsite.com 3 | 4 | 00/00/00 - v1.00 initial release -------------------------------------------------------------------------------- /installer/readme-osx.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\cocoartf1504\cocoasubrtf830 2 | \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 LucidaGrande;\f1\fnil\fcharset0 Monaco;} 3 | {\colortbl;\red255\green255\blue255;} 4 | {\*\expandedcolortbl;;} 5 | \paperw11900\paperh16840\margl1440\margr1440\vieww14320\viewh8340\viewkind0 6 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 7 | 8 | \f0\fs26 \cf0 The plugins will be installed in your system plugin folders which will make them available to all user accounts on your computer. 9 | \f1\fs20 10 | \f0\fs26 The standalone will be installed in the system Applications folder. \ 11 | \ 12 | If you don't want to install all components, click "Customize" on the "Installation Type" page.\ 13 | \ 14 | The plugins and app support both 32bit and 64bit operation.\ 15 | \ 16 | If you experience any problems with StupidCompressor, please contact me at the following address:\ 17 | \ 18 | support@thedeveloperswebsite.com} -------------------------------------------------------------------------------- /manual/StupidCompressor manual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Snipet/StupidCompressor/1e713fdf364da811c8a3e35a2687104d2999ed99/manual/StupidCompressor manual.pdf -------------------------------------------------------------------------------- /manual/StupidCompressor manual.tex: -------------------------------------------------------------------------------- 1 | \documentclass[a4paper,14pt]{report} 2 | \begin{document} 3 | \end{document} -------------------------------------------------------------------------------- /projects/StupidCompressor-aax.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /projects/StupidCompressor-app.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | WindowsLocalDebugger 5 | 6 | -------------------------------------------------------------------------------- /projects/StupidCompressor-iOS.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.application-groups 6 | 7 | group.io.github.iplug2 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /projects/StupidCompressor-iOS.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /projects/StupidCompressor-iOS.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /projects/StupidCompressor-iOS.xcodeproj/xcshareddata/xcschemes/iOS-APP with AUv3.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 56 | 58 | 64 | 65 | 66 | 67 | 68 | 69 | 75 | 77 | 83 | 84 | 85 | 86 | 88 | 89 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /projects/StupidCompressor-iOS.xcodeproj/xcshareddata/xcschemes/iOS-AUv3.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 6 | 9 | 10 | 16 | 22 | 23 | 24 | 30 | 36 | 37 | 38 | 39 | 40 | 45 | 46 | 47 | 48 | 54 | 55 | 56 | 57 | 58 | 59 | 70 | 74 | 75 | 76 | 82 | 83 | 84 | 85 | 86 | 87 | 94 | 96 | 102 | 103 | 104 | 105 | 107 | 108 | 111 | 112 | 113 | -------------------------------------------------------------------------------- /projects/StupidCompressor-iOS.xcodeproj/xcshareddata/xcschemes/iOS-AUv3Framework.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 34 | 35 | 45 | 46 | 52 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 70 | 71 | 72 | 73 | 75 | 76 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /projects/StupidCompressor-macOS.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.application-groups 8 | 9 | group.io.github.iplug2 10 | 11 | com.apple.security.assets.music.read-write 12 | 13 | com.apple.security.device.microphone 14 | 15 | com.apple.security.files.user-selected.read-write 16 | 17 | com.apple.security.network.client 18 | 19 | com.apple.security.network.server 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /projects/StupidCompressor-macOS.xcodeproj/xcshareddata/xcschemes/All macOS.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 34 | 35 | 45 | 46 | 52 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 66 | 67 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /projects/StupidCompressor-macOS.xcodeproj/xcshareddata/xcschemes/VST3 Controller Library.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 34 | 35 | 45 | 46 | 52 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 70 | 71 | 72 | 73 | 75 | 76 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /projects/StupidCompressor-macOS.xcodeproj/xcshareddata/xcschemes/macOS-AAX.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 34 | 35 | 47 | 51 | 52 | 53 | 59 | 60 | 61 | 62 | 63 | 64 | 70 | 73 | 74 | 75 | 77 | 78 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /projects/StupidCompressor-macOS.xcodeproj/xcshareddata/xcschemes/macOS-APP with AUv3.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /projects/StupidCompressor-macOS.xcodeproj/xcshareddata/xcschemes/macOS-APP.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /projects/StupidCompressor-macOS.xcodeproj/xcshareddata/xcschemes/macOS-AUv2.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 34 | 35 | 47 | 50 | 51 | 52 | 58 | 59 | 60 | 61 | 62 | 63 | 69 | 72 | 73 | 74 | 76 | 77 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /projects/StupidCompressor-macOS.xcodeproj/xcshareddata/xcschemes/macOS-AUv3.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 6 | 9 | 10 | 16 | 22 | 23 | 24 | 30 | 36 | 37 | 38 | 39 | 40 | 45 | 46 | 47 | 48 | 62 | 63 | 69 | 70 | 71 | 72 | 75 | 76 | 77 | 78 | 85 | 86 | 92 | 93 | 94 | 95 | 97 | 98 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /projects/StupidCompressor-macOS.xcodeproj/xcshareddata/xcschemes/macOS-AUv3Framework.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 34 | 35 | 45 | 46 | 52 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 70 | 71 | 72 | 73 | 75 | 76 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /projects/StupidCompressor-macOS.xcodeproj/xcshareddata/xcschemes/macOS-VST2.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 45 | 49 | 50 | 51 | 57 | 58 | 59 | 60 | 63 | 64 | 65 | 66 | 72 | 75 | 76 | 77 | 79 | 80 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /projects/StupidCompressor-macOS.xcodeproj/xcshareddata/xcschemes/macOS-VST3 (Distributed).xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 34 | 35 | 45 | 49 | 50 | 51 | 57 | 58 | 59 | 60 | 63 | 64 | 65 | 66 | 67 | 68 | 74 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /projects/StupidCompressor-macOS.xcodeproj/xcshareddata/xcschemes/macOS-VST3.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 34 | 35 | 47 | 50 | 51 | 52 | 58 | 59 | 60 | 61 | 64 | 65 | 66 | 67 | 68 | 69 | 75 | 78 | 79 | 80 | 82 | 83 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /projects/StupidCompressor-vst2.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | $(VST2_32_HOST_PATH) 5 | $(VST2_32_COMMAND_ARGS) 6 | WindowsLocalDebugger 7 | 8 | 9 | $(VST2_32_HOST_PATH) 10 | WindowsLocalDebugger 11 | $(VST2_32_COMMAND_ARGS) 12 | 13 | 14 | $(VST2_32_HOST_PATH) 15 | WindowsLocalDebugger 16 | $(VST2_32_COMMAND_ARGS) 17 | 18 | 19 | $(VST2_64_HOST_PATH) 20 | $(VST2_64_COMMAND_ARGS) 21 | WindowsLocalDebugger 22 | 23 | 24 | $(VST2_64_HOST_PATH) 25 | WindowsLocalDebugger 26 | $(VST2_64_COMMAND_ARGS) 27 | 28 | 29 | $(VST2_64_HOST_PATH) 30 | WindowsLocalDebugger 31 | $(VST2_64_COMMAND_ARGS) 32 | 33 | -------------------------------------------------------------------------------- /projects/StupidCompressor-vst3.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | $(VST3_32_HOST_PATH) 5 | $(VST3_32_COMMAND_ARGS) 6 | WindowsLocalDebugger 7 | 8 | 9 | $(VST3_32_HOST_PATH) 10 | WindowsLocalDebugger 11 | $(VST3_32_COMMAND_ARGS) 12 | 13 | 14 | $(VST3_32_HOST_PATH) 15 | WindowsLocalDebugger 16 | $(VST3_32_COMMAND_ARGS) 17 | 18 | 19 | $(VST3_64_HOST_PATH) 20 | $(VST3_64_COMMAND_ARGS) 21 | WindowsLocalDebugger 22 | 23 | 24 | $(VST3_64_HOST_PATH) 25 | WindowsLocalDebugger 26 | $(VST3_64_COMMAND_ARGS) 27 | 28 | 29 | $(VST3_64_HOST_PATH) 30 | WindowsLocalDebugger 31 | $(VST3_64_COMMAND_ARGS) 32 | 33 | -------------------------------------------------------------------------------- /projects/StupidCompressor-wam-controller.mk: -------------------------------------------------------------------------------- 1 | include ../config/StupidCompressor-web.mk 2 | 3 | TARGET = ../build-web/scripts/StupidCompressor-web.js 4 | 5 | SRC += $(WEB_SRC) 6 | CFLAGS += $(WEB_CFLAGS) 7 | CFLAGS += $(EXTRA_CFLAGS) 8 | LDFLAGS += $(WEB_LDFLAGS) \ 9 | -s EXPORTED_FUNCTIONS=$(WEB_EXPORTS) 10 | 11 | $(TARGET): $(OBJECTS) 12 | $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(SRC) 13 | -------------------------------------------------------------------------------- /projects/StupidCompressor-wam-processor.mk: -------------------------------------------------------------------------------- 1 | include ../config/StupidCompressor-web.mk 2 | 3 | TARGET = ../build-web/scripts/StupidCompressor-wam.js 4 | 5 | SRC += $(WAM_SRC) 6 | CFLAGS += $(WAM_CFLAGS) 7 | CFLAGS += $(EXTRA_CFLAGS) 8 | LDFLAGS += $(WAM_LDFLAGS) \ 9 | -s EXPORTED_FUNCTIONS=$(WAM_EXPORTS) 10 | 11 | $(TARGET): $(OBJECTS) 12 | $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(SRC) 13 | -------------------------------------------------------------------------------- /resources/AUv3Framework.h: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | #if TARGET_OS_IOS == 1 4 | #import 5 | #else 6 | #import 7 | #endif 8 | 9 | //! Project version number for AUv3Framework. 10 | FOUNDATION_EXPORT double AUv3FrameworkVersionNumber; 11 | 12 | //! Project version string for AUv3Framework. 13 | FOUNDATION_EXPORT const unsigned char AUv3FrameworkVersionString[]; 14 | 15 | // In this header, you should import all the public headers of your framework using statements like #import 16 | @class IPlugAUViewController; 17 | -------------------------------------------------------------------------------- /resources/IPlugAUViewController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /resources/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "20x20", 5 | "idiom" : "iphone", 6 | "filename" : "icon_20pt@2x.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "20x20", 11 | "idiom" : "iphone", 12 | "filename" : "icon_20pt@3x.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "29x29", 17 | "idiom" : "iphone", 18 | "filename" : "icon_29pt@2x.png", 19 | "scale" : "2x" 20 | }, 21 | { 22 | "size" : "29x29", 23 | "idiom" : "iphone", 24 | "filename" : "icon_29pt@3x.png", 25 | "scale" : "3x" 26 | }, 27 | { 28 | "size" : "40x40", 29 | "idiom" : "iphone", 30 | "filename" : "icon_40pt@2x.png", 31 | "scale" : "2x" 32 | }, 33 | { 34 | "size" : "40x40", 35 | "idiom" : "iphone", 36 | "filename" : "icon_40pt@3x.png", 37 | "scale" : "3x" 38 | }, 39 | { 40 | "size" : "60x60", 41 | "idiom" : "iphone", 42 | "filename" : "icon_60pt@2x.png", 43 | "scale" : "2x" 44 | }, 45 | { 46 | "size" : "60x60", 47 | "idiom" : "iphone", 48 | "filename" : "icon_60pt@3x.png", 49 | "scale" : "3x" 50 | }, 51 | { 52 | "size" : "20x20", 53 | "idiom" : "ipad", 54 | "filename" : "icon_20pt.png", 55 | "scale" : "1x" 56 | }, 57 | { 58 | "size" : "20x20", 59 | "idiom" : "ipad", 60 | "filename" : "icon_20pt@2x.png", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "size" : "29x29", 65 | "idiom" : "ipad", 66 | "filename" : "icon_29pt.png", 67 | "scale" : "1x" 68 | }, 69 | { 70 | "size" : "29x29", 71 | "idiom" : "ipad", 72 | "filename" : "icon_29pt@2x.png", 73 | "scale" : "2x" 74 | }, 75 | { 76 | "size" : "40x40", 77 | "idiom" : "ipad", 78 | "filename" : "icon_40pt.png", 79 | "scale" : "1x" 80 | }, 81 | { 82 | "size" : "40x40", 83 | "idiom" : "ipad", 84 | "filename" : "icon_40pt@2x.png", 85 | "scale" : "2x" 86 | }, 87 | { 88 | "size" : "76x76", 89 | "idiom" : "ipad", 90 | "filename" : "icon_76pt.png", 91 | "scale" : "1x" 92 | }, 93 | { 94 | "size" : "76x76", 95 | "idiom" : "ipad", 96 | "filename" : "icon_76pt@2x.png", 97 | "scale" : "2x" 98 | }, 99 | { 100 | "size" : "83.5x83.5", 101 | "idiom" : "ipad", 102 | "filename" : "icon_83.5@2x.png", 103 | "scale" : "2x" 104 | }, 105 | { 106 | "size" : "1024x1024", 107 | "idiom" : "ios-marketing", 108 | "filename" : "Icon.png", 109 | "scale" : "1x" 110 | } 111 | ], 112 | "info" : { 113 | "version" : 1, 114 | "author" : "xcode" 115 | } 116 | } -------------------------------------------------------------------------------- /resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Snipet/StupidCompressor/1e713fdf364da811c8a3e35a2687104d2999ed99/resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/Icon.png -------------------------------------------------------------------------------- /resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_20pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Snipet/StupidCompressor/1e713fdf364da811c8a3e35a2687104d2999ed99/resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_20pt.png -------------------------------------------------------------------------------- /resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_20pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Snipet/StupidCompressor/1e713fdf364da811c8a3e35a2687104d2999ed99/resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_20pt@2x.png -------------------------------------------------------------------------------- /resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_20pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Snipet/StupidCompressor/1e713fdf364da811c8a3e35a2687104d2999ed99/resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_20pt@3x.png -------------------------------------------------------------------------------- /resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_29pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Snipet/StupidCompressor/1e713fdf364da811c8a3e35a2687104d2999ed99/resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_29pt.png -------------------------------------------------------------------------------- /resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_29pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Snipet/StupidCompressor/1e713fdf364da811c8a3e35a2687104d2999ed99/resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_29pt@2x.png -------------------------------------------------------------------------------- /resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_29pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Snipet/StupidCompressor/1e713fdf364da811c8a3e35a2687104d2999ed99/resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_29pt@3x.png -------------------------------------------------------------------------------- /resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_40pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Snipet/StupidCompressor/1e713fdf364da811c8a3e35a2687104d2999ed99/resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_40pt.png -------------------------------------------------------------------------------- /resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_40pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Snipet/StupidCompressor/1e713fdf364da811c8a3e35a2687104d2999ed99/resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_40pt@2x.png -------------------------------------------------------------------------------- /resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_40pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Snipet/StupidCompressor/1e713fdf364da811c8a3e35a2687104d2999ed99/resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_40pt@3x.png -------------------------------------------------------------------------------- /resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_60pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Snipet/StupidCompressor/1e713fdf364da811c8a3e35a2687104d2999ed99/resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_60pt@2x.png -------------------------------------------------------------------------------- /resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_60pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Snipet/StupidCompressor/1e713fdf364da811c8a3e35a2687104d2999ed99/resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_60pt@3x.png -------------------------------------------------------------------------------- /resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_76pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Snipet/StupidCompressor/1e713fdf364da811c8a3e35a2687104d2999ed99/resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_76pt.png -------------------------------------------------------------------------------- /resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_76pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Snipet/StupidCompressor/1e713fdf364da811c8a3e35a2687104d2999ed99/resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_76pt@2x.png -------------------------------------------------------------------------------- /resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Snipet/StupidCompressor/1e713fdf364da811c8a3e35a2687104d2999ed99/resources/Images.xcassets/StupidCompressoriOSAppIcon.appiconset/icon_83.5@2x.png -------------------------------------------------------------------------------- /resources/StupidCompressor-AAX-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | StupidCompressor 9 | CFBundleGetInfoString 10 | StupidCompressor v1.0.0 Copyright 2020 Acme Inc 11 | CFBundleIdentifier 12 | com.SNFK_MUSIC.aax.StupidCompressor 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | StupidCompressor 17 | CFBundlePackageType 18 | TDMw 19 | CFBundleShortVersionString 20 | 1.0.0 21 | CFBundleSignature 22 | PTul 23 | CFBundleVersion 24 | 1.0.0 25 | CSResourcesFileMapped 26 | 27 | LSMinimumSystemVersion 28 | 10.11.0 29 | LSMultipleInstancesProhibited 30 | true 31 | LSPrefersCarbon 32 | 33 | NSAppleScriptEnabled 34 | No 35 | 36 | 37 | -------------------------------------------------------------------------------- /resources/StupidCompressor-AU-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AudioComponents 6 | 7 | 8 | description 9 | StupidCompressor 10 | factoryFunction 11 | StupidCompressor_Factory 12 | manufacturer 13 | Acme 14 | name 15 | SNFK_MUSIC: StupidCompressor 16 | sandboxSafe 17 | 18 | subtype 19 | Ipef 20 | type 21 | aufx 22 | version 23 | 65536 24 | 25 | 26 | AudioUnit Version 27 | 0x00010000 28 | CFBundleDevelopmentRegion 29 | English 30 | CFBundleExecutable 31 | StupidCompressor 32 | CFBundleGetInfoString 33 | StupidCompressor v1.0.0 Copyright 2020 Acme Inc 34 | CFBundleIdentifier 35 | com.SNFK_MUSIC.audiounit.StupidCompressor 36 | CFBundleInfoDictionaryVersion 37 | 6.0 38 | CFBundleName 39 | StupidCompressor 40 | CFBundlePackageType 41 | BNDL 42 | CFBundleShortVersionString 43 | 1.0.0 44 | CFBundleSignature 45 | Ipef 46 | CFBundleVersion 47 | 1.0.0 48 | CSResourcesFileMapped 49 | 50 | LSMinimumSystemVersion 51 | 10.11.0 52 | NSPrincipalClass 53 | StupidCompressor_View 54 | 55 | 56 | -------------------------------------------------------------------------------- /resources/StupidCompressor-VST2-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | StupidCompressor 9 | CFBundleGetInfoString 10 | StupidCompressor v1.0.0 Copyright 2020 Acme Inc 11 | CFBundleIdentifier 12 | com.SNFK_MUSIC.vst.StupidCompressor 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | StupidCompressor 17 | CFBundlePackageType 18 | BNDL 19 | CFBundleShortVersionString 20 | 1.0.0 21 | CFBundleSignature 22 | Ipef 23 | CFBundleVersion 24 | 1.0.0 25 | CSResourcesFileMapped 26 | 27 | LSMinimumSystemVersion 28 | 10.11.0 29 | 30 | 31 | -------------------------------------------------------------------------------- /resources/StupidCompressor-VST3-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | StupidCompressor 9 | CFBundleGetInfoString 10 | StupidCompressor v1.0.0 Copyright 2020 Acme Inc 11 | CFBundleIdentifier 12 | com.SNFK_MUSIC.vst3.StupidCompressor 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | StupidCompressor 17 | CFBundlePackageType 18 | BNDL 19 | CFBundleShortVersionString 20 | 1.0.0 21 | CFBundleSignature 22 | Ipef 23 | CFBundleVersion 24 | 1.0.0 25 | CSResourcesFileMapped 26 | 27 | LSMinimumSystemVersion 28 | 10.11.0 29 | 30 | 31 | -------------------------------------------------------------------------------- /resources/StupidCompressor-iOS-AUv3-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | StupidCompressorAppExtension 9 | CFBundleExecutable 10 | StupidCompressorAppExtension 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | StupidCompressorAppExtension 17 | CFBundlePackageType 18 | XPC! 19 | CFBundleShortVersionString 20 | 1.0.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1.0.0 25 | NSExtension 26 | 27 | NSExtensionAttributes 28 | 29 | AudioComponents 30 | 31 | 32 | description 33 | StupidCompressor 34 | factoryFunction 35 | IPlugAUViewController 36 | manufacturer 37 | Acme 38 | name 39 | SNFK_MUSIC: StupidCompressor 40 | sandboxSafe 41 | 42 | subtype 43 | Ipef 44 | tags 45 | 46 | Effects 47 | size:{600,600} 48 | 49 | type 50 | aufx 51 | version 52 | 65536 53 | 54 | 55 | 56 | NSExtensionMainStoryboard 57 | StupidCompressor-iOS-MainInterface 58 | NSExtensionPointIdentifier 59 | com.apple.AudioUnit-UI 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /resources/StupidCompressor-iOS-AUv3Framework-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleDisplayName 8 | AUv3Framework 9 | CFBundleExecutable 10 | AUv3Framework 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | AUv3Framework 17 | CFBundlePackageType 18 | FMWK 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleVersion 22 | 1.0.0 23 | 24 | 25 | -------------------------------------------------------------------------------- /resources/StupidCompressor-iOS-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | StupidCompressor 9 | CFBundleIcons 10 | 11 | 12 | CFBundleIdentifier 13 | $(PRODUCT_BUNDLE_IDENTIFIER) 14 | CFBundleInfoDictionaryVersion 15 | 6.0 16 | CFBundleName 17 | StupidCompressor 18 | CFBundlePackageType 19 | APPL 20 | CFBundleShortVersionString 21 | 1.0.0 22 | CFBundleSignature 23 | ???? 24 | CFBundleVersion 25 | 1.0.0 26 | LSApplicationCategoryType 27 | public.app-category.music 28 | LSRequiresIPhoneOS 29 | 30 | NSBluetoothAlwaysUsageDescription 31 | Needs Bluetooth MIDI 32 | NSMicrophoneUsageDescription 33 | Needs microphone access to process audio 34 | UIBackgroundModes 35 | 36 | audio 37 | 38 | UILaunchStoryboardName 39 | StupidCompressor-iOS-LaunchScreen 40 | UIMainStoryboardFile 41 | StupidCompressor-iOS 42 | UIRequiredDeviceCapabilities 43 | 44 | armv7 45 | 46 | UIRequiresFullScreen 47 | 48 | UISupportedInterfaceOrientations 49 | 50 | UIInterfaceOrientationPortrait 51 | UIInterfaceOrientationLandscapeLeft 52 | UIInterfaceOrientationLandscapeRight 53 | 54 | UISupportedInterfaceOrientations~ipad 55 | 56 | UIInterfaceOrientationLandscapeLeft 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /resources/StupidCompressor-iOS-LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /resources/StupidCompressor-iOS-MainInterface.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /resources/StupidCompressor-iOS.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /resources/StupidCompressor-macOS-AUv3-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | StupidCompressor 9 | CFBundleGetInfoString 10 | StupidCompressor v1.0.0 Copyright 2020 Acme Inc 11 | CFBundleIdentifier 12 | com.SNFK_MUSIC.app.StupidCompressor.AUv3 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | StupidCompressor 17 | CFBundlePackageType 18 | XPC! 19 | CFBundleShortVersionString 20 | 1.0.0 21 | CFBundleVersion 22 | 1.0.0 23 | LSMinimumSystemVersion 24 | 10.12.0 25 | NSExtension 26 | 27 | NSExtensionAttributes 28 | 29 | AudioComponentBundle 30 | com.SNFK_MUSIC.app.StupidCompressor.AUv3Framework 31 | AudioComponents 32 | 33 | 34 | description 35 | StupidCompressor 36 | manufacturer 37 | Acme 38 | name 39 | SNFK_MUSIC: StupidCompressor 40 | sandboxSafe 41 | 42 | subtype 43 | Ipef 44 | tags 45 | 46 | Effects 47 | 48 | type 49 | aufx 50 | version 51 | 65536 52 | 53 | 54 | 55 | NSExtensionPointIdentifier 56 | com.apple.AudioUnit-UI 57 | NSExtensionPrincipalClass 58 | IPlugAUViewController 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /resources/StupidCompressor-macOS-AUv3Framework-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | AUv3Framework 9 | CFBundleIdentifier 10 | com.SNFK_MUSIC.app.StupidCompressor.AUv3Framework 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | AUv3Framework 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleVersion 20 | 1.0.0 21 | 22 | 23 | -------------------------------------------------------------------------------- /resources/StupidCompressor-macOS-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | StupidCompressor 9 | CFBundleGetInfoString 10 | StupidCompressor v1.0.0 Copyright 2020 Acme Inc 11 | CFBundleIconFile 12 | StupidCompressor.icns 13 | CFBundleIdentifier 14 | com.SNFK_MUSIC.app.StupidCompressor 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleName 18 | StupidCompressor 19 | CFBundlePackageType 20 | BNDL 21 | CFBundleShortVersionString 22 | 1.0.0 23 | CFBundleSignature 24 | Ipef 25 | CFBundleVersion 26 | 1.0.0 27 | CSResourcesFileMapped 28 | 29 | LSApplicationCategoryType 30 | public.app-category.music 31 | LSMinimumSystemVersion 32 | 10.11.0 33 | NSMainNibFile 34 | StupidCompressor-macOS-MainMenu 35 | NSMicrophoneUsageDescription 36 | This app needs mic access to process audio. 37 | NSPrincipalClass 38 | SWELLApplication 39 | 40 | 41 | -------------------------------------------------------------------------------- /resources/StupidCompressor-macOS-MainMenu.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /resources/StupidCompressor.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Snipet/StupidCompressor/1e713fdf364da811c8a3e35a2687104d2999ed99/resources/StupidCompressor.icns -------------------------------------------------------------------------------- /resources/StupidCompressor.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Snipet/StupidCompressor/1e713fdf364da811c8a3e35a2687104d2999ed99/resources/StupidCompressor.ico -------------------------------------------------------------------------------- /resources/fonts/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Snipet/StupidCompressor/1e713fdf364da811c8a3e35a2687104d2999ed99/resources/fonts/Roboto-Regular.ttf -------------------------------------------------------------------------------- /resources/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Snipet/StupidCompressor/1e713fdf364da811c8a3e35a2687104d2999ed99/resources/logo.png -------------------------------------------------------------------------------- /resources/main.rc_mac_dlg: -------------------------------------------------------------------------------- 1 | #ifndef SWELL_DLG_SCALE_AUTOGEN 2 | #ifdef __APPLE__ 3 | #define SWELL_DLG_SCALE_AUTOGEN 1.7 4 | #else 5 | #define SWELL_DLG_SCALE_AUTOGEN 1.9 6 | #endif 7 | #endif 8 | #ifndef SWELL_DLG_FLAGS_AUTOGEN 9 | #define SWELL_DLG_FLAGS_AUTOGEN SWELL_DLG_WS_FLIPPED|SWELL_DLG_WS_NOAUTOSIZE 10 | #endif 11 | 12 | #ifndef SET_IDD_DIALOG_PREF_SCALE 13 | #define SET_IDD_DIALOG_PREF_SCALE SWELL_DLG_SCALE_AUTOGEN 14 | #endif 15 | #ifndef SET_IDD_DIALOG_PREF_STYLE 16 | #define SET_IDD_DIALOG_PREF_STYLE SWELL_DLG_FLAGS_AUTOGEN 17 | #endif 18 | SWELL_DEFINE_DIALOG_RESOURCE_BEGIN(IDD_DIALOG_PREF,SET_IDD_DIALOG_PREF_STYLE,"Preferences",223,309,SET_IDD_DIALOG_PREF_SCALE) 19 | BEGIN 20 | DEFPUSHBUTTON "OK",IDOK,110,285,50,14 21 | PUSHBUTTON "Apply",IDAPPLY,54,285,50,14 22 | PUSHBUTTON "Cancel",IDCANCEL,166,285,50,14 23 | COMBOBOX IDC_COMBO_AUDIO_DRIVER,20,35,100,100,CBS_DROPDOWNLIST | CBS_HASSTRINGS 24 | LTEXT "Driver Type",IDC_STATIC,22,25,38,8 25 | COMBOBOX IDC_COMBO_AUDIO_IN_DEV,20,65,100,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS 26 | LTEXT "Input Device",IDC_STATIC,20,55,42,8 27 | COMBOBOX IDC_COMBO_AUDIO_OUT_DEV,20,95,100,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS 28 | LTEXT "Output Device",IDC_STATIC,20,85,47,8 29 | COMBOBOX IDC_COMBO_AUDIO_BUF_SIZE,135,35,65,100,CBS_DROPDOWNLIST | CBS_HASSTRINGS 30 | LTEXT "Buffer Size",IDC_STATIC,137,25,46,8 31 | COMBOBOX IDC_COMBO_AUDIO_SR,135,95,65,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS 32 | LTEXT "Sampling Rate",IDC_STATIC,135,85,47,8 33 | GROUPBOX "Audio Device Settings",IDC_STATIC,5,10,210,170 34 | PUSHBUTTON "Config...",IDC_BUTTON_OS_DEV_SETTINGS,135,155,65,14 35 | COMBOBOX IDC_COMBO_AUDIO_IN_L,20,125,40,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS 36 | LTEXT "Input 1 (L)",IDC_STATIC,20,115,33,8 37 | COMBOBOX IDC_COMBO_AUDIO_IN_R,65,126,40,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS 38 | LTEXT "Input 2 (R)",IDC_STATIC,65,115,34,8 39 | COMBOBOX IDC_COMBO_AUDIO_OUT_L,20,155,40,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS 40 | LTEXT "Output 1 (L)",IDC_STATIC,20,145,38,8 41 | COMBOBOX IDC_COMBO_AUDIO_OUT_R,65,155,40,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS 42 | LTEXT "Output 2 (R)",IDC_STATIC,65,145,40,8 43 | GROUPBOX "MIDI Device Settings",IDC_STATIC,5,190,210,85 44 | COMBOBOX IDC_COMBO_MIDI_OUT_DEV,15,250,100,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS 45 | LTEXT "Output Device",IDC_STATIC,15,240,47,8 46 | COMBOBOX IDC_COMBO_MIDI_IN_DEV,15,220,100,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS 47 | LTEXT "Input Device",IDC_STATIC,15,210,42,8 48 | LTEXT "Input Channel",IDC_STATIC,125,210,45,8 49 | COMBOBOX IDC_COMBO_MIDI_IN_CHAN,125,220,50,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS 50 | LTEXT "Output Channel",IDC_STATIC,125,240,50,8 51 | COMBOBOX IDC_COMBO_MIDI_OUT_CHAN,125,250,50,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS 52 | END 53 | SWELL_DEFINE_DIALOG_RESOURCE_END(IDD_DIALOG_PREF) 54 | 55 | 56 | #ifndef SET_IDD_DIALOG_MAIN_SCALE 57 | #define SET_IDD_DIALOG_MAIN_SCALE SWELL_DLG_SCALE_AUTOGEN 58 | #endif 59 | #ifndef SET_IDD_DIALOG_MAIN_STYLE 60 | #define SET_IDD_DIALOG_MAIN_STYLE SWELL_DLG_FLAGS_AUTOGEN|SWELL_DLG_WS_OPAQUE 61 | #endif 62 | SWELL_DEFINE_DIALOG_RESOURCE_BEGIN(IDD_DIALOG_MAIN,SET_IDD_DIALOG_MAIN_STYLE,"StupidCompressor",300,300,SET_IDD_DIALOG_MAIN_SCALE) 63 | BEGIN 64 | END 65 | SWELL_DEFINE_DIALOG_RESOURCE_END(IDD_DIALOG_MAIN) 66 | 67 | 68 | 69 | //EOF 70 | 71 | -------------------------------------------------------------------------------- /resources/main.rc_mac_menu: -------------------------------------------------------------------------------- 1 | SWELL_DEFINE_MENU_RESOURCE_BEGIN(IDR_MENU1) 2 | POPUP "&File" 3 | BEGIN 4 | MENUITEM "&Preferences...\tCtrl+,", ID_PREFERENCES 5 | MENUITEM "&Quit", ID_QUIT 6 | END 7 | POPUP "&Debug" 8 | BEGIN 9 | MENUITEM "&Live Edit Mode\tCtrl+E", ID_LIVE_EDIT 10 | MENUITEM "&Show Control Bounds\tCtrl+B", ID_SHOW_BOUNDS 11 | MENUITEM "&Show Drawn Area\tCtrl+D", ID_SHOW_DRAWN 12 | MENUITEM "&Show FPS\tCtrl+F", ID_SHOW_FPS 13 | END 14 | POPUP "&Help" 15 | BEGIN 16 | MENUITEM "&About", ID_ABOUT 17 | MENUITEM "&Read Manual", ID_HELP 18 | END 19 | SWELL_DEFINE_MENU_RESOURCE_END(IDR_MENU1) 20 | 21 | 22 | 23 | //EOF 24 | 25 | -------------------------------------------------------------------------------- /resources/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by main.rc 4 | 5 | #define IDR_ACCELERATOR1 40000 6 | #define IDD_DIALOG_MAIN 40001 7 | #define IDD_DIALOG_PREF 40002 8 | #define IDI_ICON1 40003 9 | #define IDR_MENU1 40004 10 | #define ID_ABOUT 40005 11 | #define ID_PREFERENCES 40006 12 | #define ID_QUIT 40007 13 | #define ID_HELP 40008 14 | #define IDC_COMBO_AUDIO_DRIVER 40009 15 | #define IDC_COMBO_AUDIO_IN_DEV 40010 16 | #define IDC_COMBO_AUDIO_OUT_DEV 40011 17 | #define IDC_COMBO_AUDIO_BUF_SIZE 40012 18 | #define IDC_COMBO_AUDIO_SR 40013 19 | #define IDC_COMBO_AUDIO_IN_L 40014 20 | #define IDC_COMBO_AUDIO_IN_R 40015 21 | #define IDC_COMBO_AUDIO_OUT_R 40016 22 | #define IDC_COMBO_AUDIO_OUT_L 40017 23 | #define IDC_COMBO_MIDI_IN_DEV 40018 24 | #define IDC_COMBO_MIDI_OUT_DEV 40019 25 | #define IDC_COMBO_MIDI_IN_CHAN 40020 26 | #define IDC_COMBO_MIDI_OUT_CHAN 40021 27 | #define IDC_BUTTON_OS_DEV_SETTINGS 40022 28 | #define IDC_CB_MONO_INPUT 40023 29 | #define IDAPPLY 40024 30 | #define ID_LIVE_EDIT 40025 31 | #define ID_SHOW_DRAWN 40026 32 | #define ID_SHOW_FPS 40027 33 | #define ID_SHOW_BOUNDS 40028 34 | 35 | // Next default values for new objects 36 | // 37 | #ifdef APSTUDIO_INVOKED 38 | #ifndef APSTUDIO_READONLY_SYMBOLS 39 | #define _APS_NEXT_RESOURCE_VALUE 105 40 | #define _APS_NEXT_COMMAND_VALUE 40001 41 | #define _APS_NEXT_CONTROL_VALUE 1011 42 | #define _APS_NEXT_SYMED_VALUE 101 43 | #endif 44 | #endif 45 | -------------------------------------------------------------------------------- /scripts/make_zip.py: -------------------------------------------------------------------------------- 1 | import zipfile, os, fileinput, string, sys 2 | 3 | scriptpath = os.path.dirname(os.path.realpath(__file__)) 4 | projectpath = os.path.abspath(os.path.join(scriptpath, os.pardir)) 5 | 6 | MajorStr = "" 7 | MinorStr = "" 8 | BugfixStr = "" 9 | BUNDLE_NAME = "" 10 | 11 | def main(): 12 | if len(sys.argv) != 2: 13 | print("Usage: make_zip.py demo(0 or 1)") 14 | sys.exit(1) 15 | else: 16 | demo=int(sys.argv[1]) 17 | 18 | installer = "\installer\StupidCompressor Installer.exe" 19 | 20 | if demo: 21 | installer = "\installer\StupidCompressor Demo Installer.exe" 22 | 23 | FILES_TO_ZIP = [ 24 | projectpath + installer, 25 | projectpath + "\installer\changelog.txt", 26 | projectpath + "\installer\known-issues.txt", 27 | projectpath + "\manual\StupidCompressor manual.pdf" 28 | ] 29 | 30 | # extract values from config.h 31 | for line in fileinput.input(projectpath + "\config.h",inplace=0): 32 | if "#define PLUG_VERSION_HEX " in line: 33 | PLUG_VER_STR = string.lstrip(line, "#define PLUG_VERSION_HEX ") 34 | PLUG_VER = int(PLUG_VER_STR, 16) 35 | MAJOR = PLUG_VER & 0xFFFF0000 36 | MAJORSTR = str(MAJOR >> 16) 37 | MINOR = PLUG_VER & 0x0000FF00 38 | MINORSTR = str(MINOR >> 8) 39 | BUGFIXSTR = str(PLUG_VER & 0x000000FF) 40 | 41 | if "#define BUNDLE_NAME " in line: 42 | BUNDLE_NAME = string.lstrip(line, "#define BUNDLE_NAME ") 43 | 44 | FULLVERSIONSTR = MAJORSTR + "." + MINORSTR + "." + BUGFIXSTR 45 | 46 | ZIPNAME = "StupidCompressor-v" + FULLVERSIONSTR + "-win.zip" 47 | 48 | if demo: 49 | ZIPNAME = "StupidCompressor-v" + FULLVERSIONSTR + "-win-demo.zip" 50 | 51 | zf = zipfile.ZipFile(projectpath + "\installer\/" + ZIPNAME, mode="w") 52 | 53 | for f in FILES_TO_ZIP: 54 | print("adding " + f) 55 | zf.write(f, os.path.basename(f)); 56 | 57 | zf.close() 58 | print("wrote ") 59 | 60 | if __name__ == '__main__': 61 | main() -------------------------------------------------------------------------------- /scripts/makedist-web.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # makedist-web.sh builds a Web version of an iPlug2 project using emscripten 4 | # it copies a template folder from the iPlug2 tree and does a find and replace on various JavaScript and HTML files 5 | # arguments: 6 | # 1st argument : either "on", "off" or "ws" - this specifies whether emrun is used to launch a server and browser after compilation. "ws" builds the project in websocket mode, without the WAM stuff 7 | # 2nd argument : site origin - 8 | # 3rd argument : browser - either "chrome", "safari", "firefox" - if you want to launch a browser other than chrome, you must specify the correct origin for argument #2 9 | 10 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" 11 | IPLUG2_ROOT=../../.. 12 | PROJECT_ROOT=$SCRIPT_DIR/.. 13 | IPLUG2_ROOT=$SCRIPT_DIR/$IPLUG2_ROOT 14 | 15 | PROJECT_NAME=StupidCompressor 16 | WEBSOCKET_MODE=0 17 | EMRUN_BROWSER=chrome 18 | LAUNCH_EMRUN=1 19 | EMRUN_SERVER=1 20 | EMRUN_SERVER_PORT=8001 21 | SITE_ORIGIN="/" 22 | 23 | cd $PROJECT_ROOT 24 | 25 | if [ "$1" = "ws" ]; then 26 | LAUNCH_EMRUN=0 27 | WEBSOCKET_MODE=1 28 | elif [ "$1" = "off" ]; then 29 | LAUNCH_EMRUN=0 30 | fi 31 | 32 | if [ "$#" -eq 2 ]; then 33 | SITE_ORIGIN=${2} 34 | fi 35 | 36 | if [ "$#" -eq 3 ]; then 37 | EMRUN_BROWSER=${3} 38 | fi 39 | 40 | # check to see if the build web folder has its own git repo 41 | if [ -d build-web/.git ] 42 | then 43 | # if so trash only the scripts folder 44 | if [ -d build-web/scripts ]; then rm -r build-web/scripts; fi 45 | else 46 | # otherwise trash the whole build-web folder 47 | if [ -d build-web ]; then rm -r build-web; fi 48 | 49 | mkdir build-web 50 | fi 51 | 52 | mkdir build-web/scripts 53 | 54 | echo BUNDLING RESOURCES ----------------------------- 55 | 56 | cd build-web 57 | 58 | if [ -f imgs.js ]; then rm imgs.js; fi 59 | if [ -f imgs@2x.js ]; then rm imgs@2x.js; fi 60 | if [ -f svgs.js ]; then rm svgs.js; fi 61 | if [ -f fonts.js ]; then rm fonts.js; fi 62 | 63 | #package fonts 64 | FOUND_FONTS=0 65 | if [ "$(ls -A ../resources/fonts/*.ttf)" ]; then 66 | FOUND_FONTS=1 67 | python $EMSDK/upstream/emscripten/tools/file_packager.py fonts.data --preload ../resources/fonts/ --exclude *DS_Store --js-output=fonts.js 68 | fi 69 | 70 | #package svgs 71 | FOUND_SVGS=0 72 | if [ "$(ls -A ../resources/img/*.svg)" ]; then 73 | FOUND_SVGS=1 74 | python $EMSDK/upstream/emscripten/tools/file_packager.py svgs.data --preload ../resources/img/ --exclude *.png --exclude *DS_Store --js-output=svgs.js 75 | fi 76 | 77 | #package @1x pngs 78 | FOUND_PNGS=0 79 | if [ "$(ls -A ../resources/img/*.png)" ]; then 80 | FOUND_PNGS=1 81 | python $EMSDK/upstream/emscripten/tools/file_packager.py imgs.data --use-preload-plugins --preload ../resources/img/ --use-preload-cache --indexedDB-name="/$PROJECT_NAME_pkg" --exclude *DS_Store --exclude *@2x.png --exclude *.svg >> imgs.js 82 | fi 83 | 84 | # package @2x pngs into separate .data file 85 | FOUND_2XPNGS=0 86 | if [ "$(ls -A ../resources/img/*@2x*.png)" ]; then 87 | FOUND_2XPNGS=1 88 | mkdir ./2x/ 89 | cp ../resources/img/*@2x* ./2x 90 | python $EMSDK/upstream/emscripten/tools/file_packager.py imgs@2x.data --use-preload-plugins --preload ./2x@/resources/img/ --use-preload-cache --indexedDB-name="/$PROJECT_NAME_pkg" --exclude *DS_Store >> imgs@2x.js 91 | rm -r ./2x 92 | fi 93 | 94 | cd .. 95 | 96 | if [ "$WEBSOCKET_MODE" -eq "0" ]; then 97 | echo MAKING - WAM WASM MODULE ----------------------------- 98 | cd $PROJECT_ROOT/projects 99 | emmake make --makefile $PROJECT_NAME-wam-processor.mk 100 | 101 | if [ $? -ne "0" ]; then 102 | echo IPlugWAM WASM compilation failed 103 | exit 1 104 | fi 105 | 106 | cd $PROJECT_ROOT/build-web/scripts 107 | 108 | # prefix the -wam.js script with scope 109 | echo "AudioWorkletGlobalScope.WAM = AudioWorkletGlobalScope.WAM || {}; AudioWorkletGlobalScope.WAM.$PROJECT_NAME = { ENVIRONMENT: 'WEB' };" > $PROJECT_NAME-wam.tmp.js; 110 | cat $PROJECT_NAME-wam.js >> $PROJECT_NAME-wam.tmp.js 111 | mv $PROJECT_NAME-wam.tmp.js $PROJECT_NAME-wam.js 112 | 113 | # copy in WAM SDK and AudioWorklet polyfill scripts 114 | cp $IPLUG2_ROOT/Dependencies/IPlug/WAM_SDK/wamsdk/*.js . 115 | cp $IPLUG2_ROOT/Dependencies/IPlug/WAM_AWP/*.js . 116 | 117 | # copy in template scripts 118 | cp $IPLUG2_ROOT/IPlug/WEB/Template/scripts/IPlugWAM-awn.js $PROJECT_NAME-awn.js 119 | cp $IPLUG2_ROOT/IPlug/WEB/Template/scripts/IPlugWAM-awp.js $PROJECT_NAME-awp.js 120 | 121 | # replace NAME_PLACEHOLDER in the template -awn.js and -awp.js scripts 122 | sed -i.bak s/NAME_PLACEHOLDER/$PROJECT_NAME/g $PROJECT_NAME-awn.js 123 | sed -i.bak s/NAME_PLACEHOLDER/$PROJECT_NAME/g $PROJECT_NAME-awp.js 124 | 125 | # replace ORIGIN_PLACEHOLDER in the template -awn.js script 126 | sed -i.bak s,ORIGIN_PLACEHOLDER,$SITE_ORIGIN,g $PROJECT_NAME-awn.js 127 | 128 | rm *.bak 129 | else 130 | echo "WAM not being built in websocket mode" 131 | fi 132 | 133 | cd $PROJECT_ROOT/build-web 134 | 135 | # copy in the template HTML - comment this out if you have customised the HTML 136 | cp $IPLUG2_ROOT/IPlug/WEB/Template/index.html index.html 137 | sed -i.bak s/NAME_PLACEHOLDER/$PROJECT_NAME/g index.html 138 | 139 | if [ $FOUND_FONTS -eq "0" ]; then sed -i.bak s/'