{"id":18248840,"url":"https://github.com/igorski/transformant","last_synced_at":"2025-04-04T15:32:35.774Z","repository":{"id":152664336,"uuid":"231680873","full_name":"igorski/transformant","owner":"igorski","description":"VST plugin that acts as a multi channel formant filter","archived":false,"fork":false,"pushed_at":"2025-01-12T07:11:24.000Z","size":2085,"stargazers_count":42,"open_issues_count":0,"forks_count":5,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-03T14:21:55.669Z","etag":null,"topics":["audio","audio-processing","audio-unit","audiounit","cpp","daw","dsp","filter","formant","formants","linux","macos","steinberg","vst","vst-plugin","vst2-vst3","vst3","vst3-sdk","windows"],"latest_commit_sha":null,"homepage":"https://www.igorski.nl/download/transformant","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":"2020-01-03T23:17:58.000Z","updated_at":"2025-01-12T07:11:27.000Z","dependencies_parsed_at":"2024-01-03T21:24:17.807Z","dependency_job_id":"4a8f700a-67ae-4068-adec-22898135d7d2","html_url":"https://github.com/igorski/transformant","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%2Ftransformant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorski%2Ftransformant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorski%2Ftransformant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorski%2Ftransformant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/igorski","download_url":"https://codeload.github.com/igorski/transformant/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247203124,"owners_count":20900919,"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","audio-processing","audio-unit","audiounit","cpp","daw","dsp","filter","formant","formants","linux","macos","steinberg","vst","vst-plugin","vst2-vst3","vst3","vst3-sdk","windows"],"created_at":"2024-11-05T09:38:27.007Z","updated_at":"2025-04-04T15:32:30.766Z","avatar_url":"https://github.com/igorski.png","language":"C++","readme":"# TRANSFORMANT\n\nTransformant is a VST/AU plug-in which provides a stereo formant filter effect, driven by oscillators and obliterated to gravel through bit crushing or wave shaping.\n\nYou can hear it being the leading effect on Drosophelia's [Detractor](https://songwhip.com/drosophelia/detractor).\n\n## On compatibility\n\n### Build as VST 2.4\n\nVST3 is great and all, but support across DAW's is poor (looking at a certain popular German product). You can however build as a VST2.4 plugin and enjoy it on a wider range of host platforms.\n\nHowever: as of SDK 3.6.11, Steinberg no longer packages the required _./pluginterfaces/vst2.x_-folder inside the vst3sdk folder.\nIf 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.6), though be aware\nthat you _need a license to target VST2_. You can view [Steinbergs rationale on this decision here](https://www.steinberg.net/en/newsandevents/news/newsdetail/article/vst-2-coming-to-an-end-4727.html).\n\nOnce your SDK is \"setup\" for VST2, simply uncomment the following line in _CMakeLists.txt_:\n\n```\nset(SMTG_CREATE_VST2_VERSION \"Use VST2\" ON)\n```\n\nAnd rename the generated plugin extension from _.vst3_ to _.vst_ (or _.dll_ on Windows). Alternatively, pass\n\"_vst2_\" as an argument to the _build.sh_ and _build.bat_ files without having to edit the make file or\nrename the generated VST manually. E.g.:\n\n```\nsh build.sh vst2\n```\n\n### Compiling for both 32-bit and 64-bit architectures\n\nDepending on your host software having 32-bit or 64-bit support (either Intel or M1), you can best compile for a wider range of architectures. To do so,\nreplace all invocations of _cmake_ in this README with 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, M1 and legacy 32-bit Intel).\n\n**Windows:**\n\n```\ncmake.exe -G \"Visual Studio 16 2019\" -A Win64 -S .. -B \"build64\"\ncmake.exe --build . --config Release\n\ncmake.exe -G \"Visual Studio 16 2019\" -A Win32 -S .. -B \"build32\"\ncmake.exe --build . --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 macOS has been fully 64-bit for the past versions, building for 32-bit provides the best backward\ncompatibility for older OS versions. And musicians are known to keep working systems at the cost of not\nrunning an up to date system...\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.10+).\n\nBe aware that prior to building the plugin, the Steinberg SDK needs to be built from source as well. Following Steinbergs guidelines, the build target should be a _/build_-subfolder of the _/vst3sdk_-folder.\nTo generate a release build of the library, 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.\nNOTE: Windows users need to append _--config Release_ to the last cmake (build) call as the build type must be defined during this step.\n\nIf you intend to build VST2 versions as well, 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\nRun CMake to generate the Makefile for your environment, after which you can compile the plugin using make. The build output will be stored in _./build/VST3/transformant.vst3_ as well as symbolically linked to your systems VST-plugin folder (on Unix).\n\nYou must provide the path to the Steinberg SDK by providing _VST3_SDK_ROOT_ to CMake like so:\n\n```\ncmake -DVST3_SDK_ROOT=/path/to/VST_SDK/vst3sdk/ ..\n```\n\n#### Compiling on Unix systems:\n\n```\nmkdir build\ncd build\ncmake -DVST3_SDK_ROOT=/path/to/VST_SDK/vst3sdk/ ..\nmake .\n```\n\n#### Compiling on Windows:\n\nAssuming the Visual Studio Build Tools have been installed:\n\n```\nmkdir build\ncd build\ncmake.exe -G\"Visual Studio 16 2019\" -DVST3_SDK_ROOT=/path/to/VST_SDK/vst3sdk/ ..\ncmake.exe --build .\n```\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/*.vst3\n{VST3_SDK_ROOT}/build/bin/editorhost build/VST3/transformant.vst3\n```\n\n### Build as Audio Unit (macOS only)\n\nFor this you will need a little extra preparation while building Steinberg SDK. Additionally, you will need the\nCoreAudio SDK and XCode. Execute the following instructions to build the SDK with Audio Unit support, replace `SMTG_COREAUDIO_SDK_PATH` with the actual installation location of the CoreAudio SDK:\n\n```\ncd vst3sdk\nmkdir build\ncd build\ncmake -GXcode -DCMAKE_BUILD_TYPE=Release -DSMTG_COREAUDIO_SDK_PATH=/Library/CoreAudioSDK/CoreAudio ..\ncmake --build . --config Release\n```\n\nExecute the following instructions to build the plugin as an Audio Unit:\n\n* Run _sh build_au.sh_ from the repository root, providing the path to _VST3_SDK_ROOT_ as before:\n\n```\nVST3_SDK_ROOT=/path/to/VST_SDK/vst3sdk sh build_au.sh\n```\n\nThe subsequent Audio Unit component will be located in _./build/VST3/transformant.component_ as well as linked\nin _~/Library/Audio/Plug-Ins/Components/_\n\nYou can validate the Audio Unit using Apple's _auval_ utility, by running _auval -v aufx frmt IGOR_ on the command line. 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_. If you\nexperience errors testing your plugin, you can look up the [error code](https://www.osstatus.com/).\n\nNOTE: Updates of the Steinberg SDK have been known to break Audio Unit support. You can always try building\nthe plugin as part of the SDK examples (see CMakeLists.txt in audio-unit folder) when building the VST3_SDK as\nthat _might_ work.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figorski%2Ftransformant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Figorski%2Ftransformant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figorski%2Ftransformant/lists"}