{"id":16252842,"url":"https://github.com/jatinchowdhury18/kloncentaur","last_synced_at":"2025-04-09T16:16:45.662Z","repository":{"id":49354148,"uuid":"265046001","full_name":"jatinchowdhury18/KlonCentaur","owner":"jatinchowdhury18","description":"Digital emulation of the Klon Centaur guitar pedal using RNNs, Wave Digital Filters, and more","archived":false,"fork":false,"pushed_at":"2021-09-30T04:26:33.000Z","size":165447,"stargazers_count":332,"open_issues_count":6,"forks_count":27,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-04-09T16:16:27.903Z","etag":null,"topics":["audio-plugin","embedded-systems","guitar-pedal","juce","machine-learning","virtual-analog"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jatinchowdhury18.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"patreon":"chowdsp","custom":"https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=93S67ZSKMBG68\u0026source=url"}},"created_at":"2020-05-18T19:50:53.000Z","updated_at":"2025-02-01T17:21:50.000Z","dependencies_parsed_at":"2022-09-23T22:42:48.867Z","dependency_job_id":null,"html_url":"https://github.com/jatinchowdhury18/KlonCentaur","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jatinchowdhury18%2FKlonCentaur","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jatinchowdhury18%2FKlonCentaur/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jatinchowdhury18%2FKlonCentaur/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jatinchowdhury18%2FKlonCentaur/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jatinchowdhury18","download_url":"https://codeload.github.com/jatinchowdhury18/KlonCentaur/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248065285,"owners_count":21041872,"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-plugin","embedded-systems","guitar-pedal","juce","machine-learning","virtual-analog"],"created_at":"2024-10-10T15:15:04.553Z","updated_at":"2025-04-09T16:16:45.634Z","avatar_url":"https://github.com/jatinchowdhury18.png","language":"C++","funding_links":["https://patreon.com/chowdsp","https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=93S67ZSKMBG68\u0026source=url"],"categories":[],"sub_categories":[],"readme":"# Klon Centaur Model\n\n![CI](https://github.com/jatinchowdhury18/KlonCentaur/workflows/CI/badge.svg)\n![CI-iOS](https://github.com/jatinchowdhury18/KlonCentaur/workflows/CI-iOS/badge.svg)\n[![License](https://img.shields.io/badge/License-BSD-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)\n[![Downloads](https://img.shields.io/github/downloads/jatinchowdhury18/KlonCentaur/total)](https://somsubhra.github.io/github-release-stats/?username=jatinchowdhury18\u0026repository=KlonCentaur\u0026page=1\u0026per_page=30)\n[![arXiv](https://img.shields.io/badge/arXiv-2009.02833-b31b1b.svg)](https://arxiv.org/abs/2009.02833)\n\n\nThis repository contains a digital model of the Klon\nCentaur  guitar pedal. The model is constructed using\na variety of circuit modelling techniques, including\nnodal analysis, wave digital filters, and recurrent\nneural networks. The model is implemented as an audio\nplugin  (Standalone/VST/AU/LV2) for desktop and iOS, and as\na guitar pedal-style effect embedded on a Teensy microcontroller.\nThis work began as part of a class project for\n[EE 292D](https://ee292d.github.io/) at Stanford University.\n\n### Quick Links:\n- [Latest Release](https://chowdsp.com/products.html#centaur)\n- [ChowCentaur for iOS](https://apps.apple.com/us/app/chowcentaur/id1547671733)\n- [Nightly Builds](https://chowdsp.com/nightly.html#centaur)\n- Presentation at the 2020 [Audio Developer Conference](https://youtu.be/FeS6wQJ6mYI)\n- Technical paper on the\n[ArXiv](https://arxiv.org/abs/2009.02833)\n- [Video Demo](https://youtu.be/yo4JrceDQ2w)\n\n## Audio Plugin\n\n\u003cimg src=\"./Paper/Figures/Plugin.png\" width=500\u003e\n\nThe latest release can be downloaded from\n[our website](https://chowdsp.com/products.html#centaur).\nChowCentaur for iOS can be downloaded from the\n[app store](https://apps.apple.com/us/app/chowcentaur/id1547671733).\nThe latest builds (potentially unstable) can be\nfound on our\n[Nightly Builds](https://chowdsp.com/nightly.html#centaur)\npage. Linux users can find builds available on the\n[Open Build Service](https://build.opensuse.org/package/show/home:kill_it:JUCE/ChowCentaur),\ncourtesy of Konstantin Voinov.\n\n### Building from Source\n\nTo build the audio plugin, you must have CMake installed \n(version 3.15 or greater). Then use the following steps:\n```bash\n# clone repository\n$ git clone https://github.com/jatinchowdhury18/KlonCentaur.git\n$ cd KlonCentaur\n$ git submodule update --init --recursive\n\n# Build with CMake\n$ cmake -Bbuild\n$ cmake --build build/ --config Release\n```\n\nChowCentaur also has a headless mode that contains a performance\nbenchmarking app. You can run the benchmarks yourself as follows:\n```bash\n# build with CMake\n$ cmake -Bbuild -DBUILD_CENTAUR_HEADLESS=ON\n$ cmake --build build/ --config Release --target Centaur_Headless\n\n# run benchmarks\n$ ./build/ChowCentaurHeadless bench\n```\n\nFor more information, run `./build/ChowCentaurHeadless bench --help`.\n\nChowCentaur uses the\n[RTNeural](https://github.com/jatinchowdhury18/RTNeural) \nneural network inferencing engine for running\ncomputing the output of a recurrent neural network\nin real-time. RTNeural has three available computational\nbackends: `Eigen`, `xsimd`, and `STL`. By default,\nChowCentaur uses the `xsimd` backend, but that can\nbe changed using a different `CMake` configuration\ncommand, for example: `cmake -Bbuild -DRTNEURAL_EIGEN=ON`.\n\n\n## Teensy Pedal\n\nCheck out the video demo on [YouTube](https://youtu.be/c8CoRClYGIY)!\nFor more information on the Teensy pedal-style implementation, see the\n[`TeensyCentaur/`](./TeensyCentaur/) subfolder.\n\n\u003cimg src=\"./Paper/Figures/Teensy.jpg\" width=50%\u003e\n\n## Circuit Modelling\n\nThe circuit model is constructed using nodal analysis and wave digital\nfilters. For more information see:\n\n- Julius Smith, [Physical Audio Signal Processing](https://ccrma.stanford.edu/~jos/pasp/pasp.html)\n- Kurt Werner, [Virtual Analog Modelling of Audio Circuitry Using Wave Digital Filters](https://www.semanticscholar.org/paper/Virtual-Analog-Modeling-of-Audio-Circuitry-Using-Werner/4df7106aa5581a607ac88e559a05c71efc73497b)\n\nThe wave digital filters are implemented using a WDF library, available\n[here](https://github.com/jatinchowdhury18/WaveDigitalFilters).\n\n## Neural Network Modelling\n\nIn the neural network version of the emulation, a recurrent neural network\nis used to emulate the gain stage circuit of the original pedal. The\nRNN architecture used is derived from the one presented by Wright et. al.\nin their 2019 DAFx paper [\"Real-Time Black-Box Modelling with Recurrent Neural Networks\"](http://dafx2019.bcu.ac.uk/papers/DAFx2019_paper_43.pdf).\nTraining data consists of ~4 minutes of Direct In (DI) recordings of \nelectric guitar, chopped into 0.5 second segments. The data is then \nprocessed through a SPICE model to create a \"ground truth\" version of the\neffect to train against. The training data, SPICE model, and `Python` code\nfor training the networks can be found in the\n[`GainStageML/`](./GainStageML/) subfolder.\n\n## License\n\nThis repository is licensed under the \nBSD-3-Clause license. Enjoy!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjatinchowdhury18%2Fkloncentaur","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjatinchowdhury18%2Fkloncentaur","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjatinchowdhury18%2Fkloncentaur/lists"}