{"id":18248843,"url":"https://github.com/igorski/regrader","last_synced_at":"2025-04-07T09:17:34.676Z","repository":{"id":44686034,"uuid":"134254607","full_name":"igorski/regrader","owner":"igorski","description":"VST delay plugin where the repeats degrade in resolution","archived":false,"fork":false,"pushed_at":"2025-01-12T07:12:57.000Z","size":2609,"stargazers_count":100,"open_issues_count":5,"forks_count":5,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-31T08:08:12.352Z","etag":null,"topics":["audio-processing","audio-unit","audiounit","bitcrusher","cmake","cplusplus","cpp","decimation","delay","dsp","echo","linux","macos","steinberg","vst","vst-plugin","vst2","vst3","vst3-sdk","windows"],"latest_commit_sha":null,"homepage":"https://www.igorski.nl/download/regrader","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/igorski.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-21T10:33:03.000Z","updated_at":"2025-03-21T20:23:28.000Z","dependencies_parsed_at":"2024-01-03T21:29:41.423Z","dependency_job_id":"506c3ee6-2c63-48c2-a865-1d06965a4a7d","html_url":"https://github.com/igorski/regrader","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorski%2Fregrader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorski%2Fregrader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorski%2Fregrader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorski%2Fregrader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/igorski","download_url":"https://codeload.github.com/igorski/regrader/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247622986,"owners_count":20968575,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio-processing","audio-unit","audiounit","bitcrusher","cmake","cplusplus","cpp","decimation","delay","dsp","echo","linux","macos","steinberg","vst","vst-plugin","vst2","vst3","vst3-sdk","windows"],"created_at":"2024-11-05T09:38:27.288Z","updated_at":"2025-04-07T09:17:34.643Z","avatar_url":"https://github.com/igorski.png","language":"C++","readme":"# REGRADER\n\nRegrader is a VST/AU plug-in which provides a delay effect in which the repeats degrade in various ways to provide a nice twist on the ears. The delays repeats can be synced to the host tempo and time signature and be fully automated.\n\nIf you require some inspiration, it is used pretty much all over the [Imago](https://songwhip.com/drosophelia/imago) album by Drosophelia. Alternatively, you can [read what others say](https://bedroomproducersblog.com/2018/06/08/free-regrader-lo-fi-delay/).\n\n## Build instructions\n\nThe project uses [CMake](https://cmake.org) to generate the Makefiles and has been built and tested on macOS, Windows 10 and Linux (Ubuntu).\n\n### Environment setup\n\nApart from requiring _CMake_ and a C(++) compiler such as _Clang_ or _MSVC_, the only other dependency is the [VST SDK from Steinberg](https://www.steinberg.net/en/company/developers.html) (the projects latest update requires SDK version 3.7.11).\n\n#### Setting up the easy way : installing a local version of the Steinberg SDK\n\nYou can instantly retrieve and build the SDK using the following commands.\n\n##### Installation on Unix:\n\n```\nsh setup.sh --platform PLATFORM\n```\n\nWhere optional flag _--platform_ can be either `mac` or `linux` (defaults to linux).\n\nLinux users might be interested in the [required packages](https://steinbergmedia.github.io/vst3_dev_portal/pages/Getting+Started/How+to+setup+my+system.html#for-linux).\n\n##### Installation on Windows:\n\n```\nsetup.bat\n```\n\nThis will create a (Git ignored) subfolder in this repository folder with a prebuilt Steinberg SDK.\n\n#### Setting up the flexible way : pointing towards an external SDK build / supporting VST2\n\nIn case you wish to use a different SDK version (for instance to reuse an existing build elsewhere on your computer or to\ntarget VST2 builds), you can invoke all build scripts by providing the `VST3_SDK_ROOT` environment variable, like so:\n\n```\nVST3_SDK_ROOT=/path/to/prebuilt/VST3_SDK sh build.sh\n```\n\nAfter downloading the Steinberg SDK you must generate a release build of its sources. To do this, execute the following commands from the root of the Steinberg SDK folder:\n\n```\ncd vst3sdk\nmkdir build\ncd build\ncmake -DCMAKE_BUILD_TYPE=Release ..\ncmake --build . --config Release\n```\n\nThe result being that `{VST3_SDK_ROOT}/build/lib/Release/` will contain the Steinberg VST libraries required to build the plugin.\n\nIn case you intend to build VST2 versions as well, keep in mind that as of SDK 3.6.11, Steinberg no longer packages the required `/pluginterfaces/vst2.x`-folder inside the vst3sdk folder. If you wish to build a VST2 plugin, copying the folder from an older SDK version _could_ work (verified 3.6.9. `vst2.x` folders to work with SDK 3.7.11), though be aware that you _need a license to target VST2_. You can view [Steinbergs rationale on this decision here](https://helpcenter.steinberg.de/hc/en-us/articles/4409561018258-VST-2-Discontinued).\n\nTo prepare for building VST2 versions of the plugin, run the following from the root of the Steinberg SDK folder (run the _.bat_ version instead of the _.sh_ version on Windows) prior to building the library:\n\n```\n./copy_vst2_to_vst3_sdk.sh\n```\n\nAnd if you are running Linux, you can easily resolve all dependencies by first running the following from the root of the Steinberg SDK folder:\n\n```\n./tools/setup_linux_packages_for_vst3sdk.sh\n```\n\n### Building the plugin\n\nSee the provided shell scripts. The build output will be stored in `./build/VST3/Regrader.vst3` as well as symbolically linked to your systems VST-plugin folder (on Unix).\n\n#### Compiling on Unix systems:\n\n```\nsh build.sh --type TYPE\n```\n\nWhere optional flag _--type_ can be either `vst3`, `vst2` or `au` (defaults to vst3)*.\n\n#### Compiling on Windows:\n\nAssuming the Visual Studio Build Tools have been installed:\n\n```\nbuild.bat\n```\n\nWhere you can optionally append `vst2` to the command to build a VST2* plugin.\n\n_*As mentioned in the \"setup\" section, VST2 builds are not supported out-of-the-box._\n\n## On compatibility\n\n### Compiling for both 32-bit and 64-bit architectures\n\nDepending on your host software having 32-bit or 64-bit support (with the latter targeting either Intel or ARM), you can choose to compile for a wider range of architectures. To do so, updating the build shell scripts/batch files to contain the following:\n\n**macOS:**\n\n```\ncmake -\"DCMAKE_OSX_ARCHITECTURES=x86_64;arm64;i1386\" ..\n```\n\nWhich will allow you to compile a single, \"fat\" binary that supports all architectures (Intel, ARM and legacy 32-bit Intel). Note\nthat by default compilation is for 64-bit architecture for both Intel and ARM CPU's, _you can likely ignore this section_.\n\n**Windows:**\n\n```\ncmake.exe -G \"Visual Studio 16 2019\" -A Win64 -S .. -B \"build64\"\ncmake.exe --build build64 --config Release\n\ncmake.exe -G \"Visual Studio 16 2019\" -A Win32 -S .. -B \"build32\"\ncmake.exe --build build32 --config Release\n```\n\nWhich is a little more cumbersome as you compile separate binaries for the separate architectures.\n\nNote that the above also needs to be done when building the Steinberg SDK (which for the Windows build implies that a separate build is created for each architecture).\n\nWhile both macOS and Windows have been fully 64-bit for the past versions, building for 32-bit provides the best backward\ncompatibility for older OS versions. Musicians are known to keep working systems at the cost of not\nrunning an up to date system... _still, you can likely ignore this section_.\n\n### Build as Audio Unit (macOS only)\n\nFor this you will need a little extra preparation while building Steinberg SDK as you will need the\n\"[CoreAudio SDK](https://developer.apple.com/library/archive/samplecode/CoreAudioUtilityClasses/Introduction/Intro.html)\" and XCode. Execute the following instructions to build the SDK with Audio Unit support,\nproviding the appropriate path to the actual installation location of the CoreAudio SDK:\n\n```\nsh setup.sh --platform mac --coresdk /path/to/CoreAudioUtilityClasses/CoreAudio\n```\n\nAfter which you can run the build script like so:\n\n```\nsh build.sh --type au\n```\n\nThe Audio Unit component will be located in `./build/bin/Release/Regrader AUv3.app`\n\nYou can validate the Audio Unit using Apple's _auval_ utility, by running `auval -v aufx dely IGOR` on the command line (reflecting the values defined in `audiounitconfig.h`). Note that there is the curious behaviour that you might need to reboot before the plugin shows up, though you can force a flush of the Audio Unit cache at runtime by running `killall -9 AudioComponentRegistrar`.\n\nIn case of errors you can look for instances of [kAudioUnitErr](https://www.osstatus.com/search/results?platform=all\u0026framework=all\u0026search=kaudiouniterr)\n\n### Running the plugin\n\nYou can copy the build output into your system VST(3) folder and run it directly in a VST host / DAW of your choice.\n\nWhen debugging, you can also choose to run the plugin against Steinbergs validator and editor host utilities:\n\n```\n{VST3_SDK_ROOT}/build/bin/validator  build/VST3/Regrader.vst3\n{VST3_SDK_ROOT}/build/bin/editorhost build/VST3/Regrader.vst3\n```\n\n### Signing the plugin on macOS\n\nYou will need to have your code signing set up appropriately. Assuming you have set up your Apple Developer account, you can find your signing identity like so:\n\n```\nsecurity find-identity -p codesigning -v \n```\n\nFrom which you can take your name and team id and pass them to the build script like so:\n\n```\nsh build.sh --team_id TEAM_ID --identity \"YOUR_NAME\"\n```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figorski%2Fregrader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Figorski%2Fregrader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figorski%2Fregrader/lists"}