{"id":18516595,"url":"https://github.com/zeloe/rtconvolver","last_synced_at":"2025-04-22T20:12:31.452Z","repository":{"id":261276472,"uuid":"883654498","full_name":"zeloe/RTConvolver","owner":"zeloe","description":"A realtime convolution VST3","archived":false,"fork":false,"pushed_at":"2025-01-26T00:43:31.000Z","size":121,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-22T20:12:25.014Z","etag":null,"topics":["c","convolution","cplusplus","cuda","juce"],"latest_commit_sha":null,"homepage":"","language":"Cuda","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zeloe.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":"2024-11-05T10:50:30.000Z","updated_at":"2025-02-28T17:16:47.000Z","dependencies_parsed_at":"2024-11-05T17:41:24.363Z","dependency_job_id":"cdb214a2-a001-4e2b-93d5-a5305fee19c7","html_url":"https://github.com/zeloe/RTConvolver","commit_stats":{"total_commits":42,"total_committers":1,"mean_commits":42.0,"dds":0.0,"last_synced_commit":"2e0900af02b7111922a10c4a7c1d4df6aa4b8a68"},"previous_names":["zeloe/rtconvolver"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeloe%2FRTConvolver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeloe%2FRTConvolver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeloe%2FRTConvolver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeloe%2FRTConvolver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zeloe","download_url":"https://codeload.github.com/zeloe/RTConvolver/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250316057,"owners_count":21410476,"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":["c","convolution","cplusplus","cuda","juce"],"created_at":"2024-11-06T16:03:13.604Z","updated_at":"2025-04-22T20:12:31.447Z","avatar_url":"https://github.com/zeloe.png","language":"Cuda","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RTConvolver\nA realtime GPU powered convolution VST3. \n##\n### Setup in DAW\nIn a DAW of your  choice you need to setup a track with 4 channels. \\\nYou should then send on channel 1 \u0026 2 a stereo signal and on channel 3 \u0026 4 a different stereo signal.\n### How to build\nYou will need a working CUDA compiler and cmake. \n ```shell\n  git clone https://github.com/zeloe/RTConvolver.git\n  cmake . -B build -G \"Visual Studio 17 2022\"\n```\n### Processing\nAt each call of process block 4 blocks of audio get into plugin. Then each of these audio blocks is on CPU. These audio blocks are then moved on GPU. \nOn GPU time a domain delay line is implemented for  each block 1 and 2. By following this logic. \n```mermaid \ngraph LR\nFirst;\n```\n```mermaid \ngraph LR\nSecond--\u003eFirst;\n```\nAnother different time delay line is implemented on 3 and 4.  By following this logic.\n```mermaid \ngraph LR\nFirst;\n```\n```mermaid \ngraph LR\nFirst--\u003eSecond;\n```\nThen linear Convolution (without FFT) is done.  Convolving block 1 with block 3 will produce left channel. Convolving block 2 with block 4 will produce right channel. \nThese two blocks are then moved back to CPU and you can hear results. \nUsing this method you can change e.g. your impulse response in realtime and use other effects on it. \n##\n### Convolution Sizes\nThere is a menu where you can choose how big your convolution size is in seconds. \n- 0.5, 1.0, 2.0, 3.0, 4.0\n##\n### Volume Knob\nThis knob is used to scale output volume.\n##\n### \n\n## Known Issues\nSometimes there is some latency. \\\nDoesn't properly work inside juce audio plugin host. \\\nCurrently supported buffersizes are 128 , 256 , 512 , 1024. \\\nOffline rendering doesn't work.\n## What works\nHow to use it : [Video](https://youtu.be/P2fRFk7yA3U) \\\nWorks in Reaper and Ableton 12.\n## Hardware\nNVIDIA GTX 1660 TI\n\n## To Do\nAdd proper kernels using maximum number of threads for each buffersize. \\\nFind proper way to normalize output.\n\n## Download (early build windows)\n[Download](https://github.com/zeloe/RTConvolver/releases/tag/v.0.0.3)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeloe%2Frtconvolver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzeloe%2Frtconvolver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeloe%2Frtconvolver/lists"}