All Projects → jatinchowdhury18 → Kloncentaur

jatinchowdhury18 / Kloncentaur

Licence: bsd-3-clause
Digital emulation of the Klon Centaur guitar pedal using RNNs, Wave Digital Filters, and more

Projects that are alternatives of or similar to Kloncentaur

Prettyos
A Preemptive Hard Real Time kernel for embedded devices.
Stars: ✭ 36 (-67.57%)
Mutual labels:  embedded-systems
Printf
Tiny, fast, non-dependent and fully loaded printf implementation for embedded systems. Extensive test suite passing.
Stars: ✭ 1,157 (+942.34%)
Mutual labels:  embedded-systems
Qpn
QP-nano real-time embedded framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines
Stars: ✭ 107 (-3.6%)
Mutual labels:  embedded-systems
Interview Questions
Questions which are frequently asked in an interview.
Stars: ✭ 47 (-57.66%)
Mutual labels:  embedded-systems
Q3lite
Q3lite, an OpenGL ES port of Quake III Arena for embedded Linux systems.
Stars: ✭ 64 (-42.34%)
Mutual labels:  embedded-systems
Fastotv
Open source IPTV player
Stars: ✭ 90 (-18.92%)
Mutual labels:  embedded-systems
Ev3duder
The LEGO® EV3 Downloader/UploaDER.
Stars: ✭ 28 (-74.77%)
Mutual labels:  embedded-systems
Cfg2html
cfg2html is a UNIX shell script similar to supportinfo, getsysinfo or get_config, except that it creates a HTML (and plain ASCII) system documentation for HP-UX, SCO-UNIX, AIX, Sun OS and Linux systems. Plug-ins for SAP, Oracle, Informix, Serviceguard, Fiber Channel/SAN, TIP/ix, OpenText (IXOS/LEA), SN Mass Storage like MAS, EMC, EVA, XPs, Network Node Manager and DataProtector etc. are included. The first versions of cfg2html were written for HP-UX. Meanwhile the cfg2html HP-UX stream was ported to all major *NIX platforms and small embedded systems.
Stars: ✭ 116 (+4.5%)
Mutual labels:  embedded-systems
Qtools
QTools collection of open source tools for embedded systems development on Windows, Linux and MacOS
Stars: ✭ 64 (-42.34%)
Mutual labels:  embedded-systems
List of robot electronics
A curated list of awesome open source electronic resources for robotics
Stars: ✭ 106 (-4.5%)
Mutual labels:  embedded-systems
Mylinux
myLinux is a small UNIX like OS for embedded systems based on Westermo NetBox
Stars: ✭ 53 (-52.25%)
Mutual labels:  embedded-systems
Wolfssl
wolfSSL (formerly CyaSSL) is a small, fast, portable implementation of TLS/SSL for embedded devices to the cloud. wolfSSL supports up to TLS 1.3!
Stars: ✭ 1,098 (+889.19%)
Mutual labels:  embedded-systems
Libmemory
Embedded systems memory management library. Implementations for malloc(), free(), and other useful memory management functions
Stars: ✭ 102 (-8.11%)
Mutual labels:  embedded-systems
Embedded Device Lab
embedded-device-lab是一个利用qemu模拟真实世界中物联网漏洞的测试环境。由于物联网架构的特殊性,调试分析漏洞通常需要使用qemu模拟执行不同架构的可执行文件。而各种搭建环境,交叉编译是一件费事费力,令人忧伤的工作。 embedded-device-lab利用docker-compose,将各种漏洞调试环境一键化。简单使用两条命令,就可以直接使用gdb或者IDA动态分析相关漏洞。
Stars: ✭ 48 (-56.76%)
Mutual labels:  embedded-systems
Samples
🍬 Code samples from the nanoFramework team used in testing, proof of concepts and other explorational endeavours
Stars: ✭ 108 (-2.7%)
Mutual labels:  embedded-systems
Micro Xrce Dds Client
Micro XRCE-DDS Client repository
Stars: ✭ 30 (-72.97%)
Mutual labels:  embedded-systems
Stm32 Tutorial
Getting started with the STM32 HAL development environment. Tutorial documents in Markdown.
Stars: ✭ 69 (-37.84%)
Mutual labels:  embedded-systems
Easygui
Easy GUI for microcontrollers
Stars: ✭ 116 (+4.5%)
Mutual labels:  embedded-systems
Composite
A component-based OS
Stars: ✭ 113 (+1.8%)
Mutual labels:  embedded-systems
Inih
Simple .INI file parser in C, good for embedded systems
Stars: ✭ 1,394 (+1155.86%)
Mutual labels:  embedded-systems

Klon Centaur Model

CI CI-iOS License Downloads arXiv

This repository contains a digital model of the Klon Centaur guitar pedal. The model is constructed using a variety of circuit modelling techniques, including nodal analysis, wave digital filters, and recurrent neural networks. The model is implemented as an audio plugin (Standalone/VST/AU/LV2) for desktop and iOS, and as a guitar pedal-style effect embedded on a Teensy microcontroller. This work began as part of a class project for EE 292D at Stanford University.

Quick Links:

Audio Plugin

The latest release can be downloaded from our website. ChowCentaur for iOS can be downloaded from the app store. The latest builds (potentially unstable) can be found on our Nightly Builds page. Linux users can find builds available on the Open Build Service, courtesy of Konstantin Voinov.

Building from Source

To build the audio plugin, you must have CMake installed (version 3.15 or greater). Then use the following steps:

# clone repository
$ git clone https://github.com/jatinchowdhury18/KlonCentaur.git
$ cd KlonCentaur
$ git submodule update --init --recursive

# Build with CMake
$ cmake -Bbuild
$ cmake --build build/ --config Release

ChowCentaur also has a headless mode that contains a performance benchmarking app. You can run the benchmarks yourself as follows:

# build with CMake
$ cmake -Bbuild -DBUILD_CENTAUR_HEADLESS=ON
$ cmake --build build/ --config Release --target Centaur_Headless

# run benchmarks
$ ./build/ChowCentaurHeadless bench

For more information, run ./build/ChowCentaurHeadless bench --help.

ChowCentaur uses the RTNeural neural network inferencing engine for running computing the output of a recurrent neural network in real-time. RTNeural has three available computational backends: Eigen, xsimd, and STL. By default, ChowCentaur uses the xsimd backend, but that can be changed using a different CMake configuration command, for example: cmake -Bbuild -DRTNEURAL_EIGEN=ON.

Teensy Pedal

Check out the video demo on YouTube! For more information on the Teensy pedal-style implementation, see the TeensyCentaur/ subfolder.

Circuit Modelling

The circuit model is constructed using nodal analysis and wave digital filters. For more information see:

The wave digital filters are implemented using a WDF library, available here.

Neural Network Modelling

In the neural network version of the emulation, a recurrent neural network is used to emulate the gain stage circuit of the original pedal. The RNN architecture used is derived from the one presented by Wright et. al. in their 2019 DAFx paper "Real-Time Black-Box Modelling with Recurrent Neural Networks". Training data consists of ~4 minutes of Direct In (DI) recordings of electric guitar, chopped into 0.5 second segments. The data is then processed through a SPICE model to create a "ground truth" version of the effect to train against. The training data, SPICE model, and Python code for training the networks can be found in the GainStageML/ subfolder.

License

This repository is licensed under the BSD-3-Clause license. Enjoy!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].