Professional real-time guitar amplifier simulator with ultra-low latency, 16 studio-quality effects, and a beautiful visual pedal board interface. Available as a native desktop app, Android APK, iOS app, and a browser-based web demo. Built in C++17 with PortAudio, SDL2, and Dear ImGui.
Download Latest Release | Visit Website
| Platform | File | Notes |
|---|---|---|
| Windows 10/11 | Amplitron-Windows-Setup.exe |
Run the installer |
| macOS 10.15+ | Amplitron-macOS.dmg |
Drag to Applications; right-click β Open on first launch |
| Linux x64 | Amplitron-Linux-x64.tar.gz |
Extract and run amplitron.sh |
| Android 8.0+ | Amplitron-Android.apk |
Enable "Install unknown apps" in Settings |
| iOS 15.0+ | Amplitron-iOS.ipa |
See iOS installation below |
Apple does not allow installing apps outside the App Store without a paid developer certificate, but AltStore makes sideloading transparent:
- Install AltStore on your iPhone (requires a Mac or PC once for setup)
- On your iPhone, open the latest release in Safari and tap
Amplitron-iOS.ipa - Tap Share β AltStore to install
- AltStore auto-refreshes the app certificate in the background as long as your phone and computer are on the same Wi-Fi once a week β no re-installs needed
Watch the first look and demo: Amplitron Demo - YouTube
Transform your computer into a complete guitar rig. Plug in your guitar via USB audio interface or guitar cable, and get instant access to professional amp simulation with studio-quality effects β all with imperceptible latency.
- Ultra-low latency β default 64-sample buffer at 48kHz (~1.3ms processing latency)
- Configurable buffer sizes β 32, 64, 128, 256, 512 samples
- Sample rates β 44.1kHz, 48kHz, 96kHz
- Auto-detection of USB guitar cables β automatically selects USB input device for guitar, laptop output for speakers
- Real-time input/output metering
- Adjustable input and output gain
- Device selection β choose any PortAudio-compatible input/output device, with USB devices highlighted in the UI
| Pedal | Description |
|---|---|
| Noise Gate | Silences signal below threshold with adjustable attack/release |
| Compressor | Dynamics control with threshold, ratio, attack, release, makeup gain |
| Overdrive | Tube-style asymmetric soft clipping with tone control |
| Distortion | Hard clipping with tanh waveshaping and tone filter |
| Equalizer | 3-band parametric EQ (Bass/Mid/Treble/Presence) using biquad filters |
| Amp Simulator | Preamp models (Fender Twin, Marshall JCM800, Mesa Rectifier, Roland JC-120) with gain, tone stack, and saturation |
| Cabinet Sim | Speaker cabinet emulation with low/high rolloff and resonance |
| Chorus | LFO-modulated delay with rate and depth controls |
| Delay | Up to 2 seconds, with feedback tone filtering |
| Reverb | Schroeder reverb (4 comb + 2 allpass filters) with decay and damping |
| Wah | State-variable filter wah with manual sweep and auto-wah (envelope follower) modes |
| Phaser | Cascaded all-pass filters with LFO modulation (4, 6, 8, or 12 stages) |
| Flanger | Short modulated delay line (0.1β15ms) with feedback for comb filter sweep |
| Octaver | Monophonic sub-octave and upper-octave generator with envelope shaping |
| Pitch Shifter | Pitch shifting by Β±12 semitones using granular overlap-add algorithm |
| Tool | Description |
|---|---|
| Chromatic Tuner | YIN pitch detection algorithm with note name, octave, and cent offset display |
- Drag-and-drop style pedal chain β add, remove, and reorder effects
- Realistic pedal graphics β color-coded per effect type with LED indicators
- Rotary knob controls β drag vertically to adjust, double-click to reset
- Footswitch toggle β click to enable/bypass each pedal
- Horizontal scrolling β supports large pedal chains
- Real-time level meters β input and output with clipping indicators
- Spectrum analyzer β real-time frequency analysis display
- Undo/redo β full history tracking for all parameter and chain changes
- Preset system β save and load pedal chains as JSON files
- WAV recording β record processed output to WAV files
- Release update checker β notifies when new versions are available on GitHub
A USB Guitar Cable (also called a "Guitar-to-USB cable" or "USB Guitar Link") is a single cable with:
- One end: 1/4" (6.35mm) mono jack β plugs into your guitar's output
- Other end: USB-C (or USB-A) β plugs into your laptop/phone
It contains a tiny built-in audio interface that converts your guitar's analog signal to digital audio. Your computer sees it as a standard USB audio input device. No separate audio interface or extra cables needed β just plug and play.
| Cable | Connector | Notes |
|---|---|---|
| Generic "Guitar to USB-C" cables | USB-C | Cheapest option, works great for practice |
| Behringer Guitar Link UCG102 | USB-A | Popular budget option |
| IK Multimedia iRig HD 2 | USB-C / Lightning | High quality, works with phones too |
| Rocksmith Real Tone Cable | USB-A | Often found cheap second-hand |
| Line 6 Sonic Port | USB-C | Good quality preamp built in |
Any cable that has a 1/4" guitar jack on one end and USB on the other will work. The software auto-detects it.
If you already own a desktop audio interface, that works too:
- Focusrite Scarlett Solo / 2i2
- Behringer U-Phoria UMC22 / UMC202HD
- PreSonus AudioBox
- Any USB class-compliant audio interface
- Electric guitar (any guitar with a pickup)
- USB Guitar Cable (1/4" jack β USB-C) β see table above
- Laptop with a USB-C port (or USB-A with adapter)
- Headphones (recommended) or laptop speakers for output
Guitar ββ[1/4" jack]ββ> USB Guitar Cable ββ[USB-C]ββ> Laptop ββ> Guitar Amp Simulator ββ> Laptop Speakers / Headphones
- Plug the 1/4" end of the USB guitar cable into your guitar
- Plug the USB-C end into your laptop
- Launch Guitar Amp Simulator β it auto-detects the USB cable as input
- Play β your guitar signal is processed through the pedal chain in real-time
- Listen through your laptop speakers or headphones
The software automatically routes:
- Input: USB Guitar Cable (your guitar signal)
- Output: Laptop speakers / headphones (the processed amp sound)
You can change devices anytime via File β Settings.
- Use ASIO drivers on Windows (install ASIO4ALL if your USB cable doesn't include ASIO drivers)
- Set buffer size to 64 samples (default) or 32 samples if your CPU can handle it
- Use 48kHz sample rate for best balance of quality and latency
- Use headphones to avoid feedback from laptop speakers picking up guitar sound
- Close other audio applications to reduce CPU contention
- On Linux, consider using JACK for professional-grade low-latency audio
- C++17 compiler (GCC 8+, Clang 7+, MSVC 2019+)
- CMake 3.16+
- Git (to fetch Dear ImGui)
- PortAudio development libraries
- SDL2 development libraries
- OpenGL development headers
# 1. Install vcpkg if you haven't
git clone https://github.com/microsoft/vcpkg.git C:\vcpkg
C:\vcpkg\bootstrap-vcpkg.bat
set VCPKG_ROOT=C:\vcpkg
# 2. Install dependencies
vcpkg install portaudio:x64-windows sdl2:x64-windows
# 3. Setup project (fetches Dear ImGui)
.\scripts\setup_dependencies.ps1
# 4. Build
.\scripts\build_windows.ps1
# Or manually:
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake ..
cmake --build . --config Release# 1. Install system dependencies
sudo apt-get install build-essential cmake pkg-config \
libportaudio2 portaudio19-dev \
libsdl2-dev libgl1-mesa-dev
# 2. Setup project (fetches Dear ImGui)
chmod +x scripts/setup_dependencies.sh
./scripts/setup_dependencies.sh
# 3. Build
make build
# or: make run (builds and launches)sudo pacman -S base-devel cmake pkg-config portaudio sdl2 mesa
./scripts/setup_dependencies.sh
make buildbrew install cmake portaudio sdl2
./scripts/setup_dependencies.sh
make build| Command | Description |
|---|---|
make setup |
Install dependencies (interactive, Linux/macOS) |
make build |
Build Release binary |
make debug |
Build Debug binary |
make run |
Build and launch |
make clean |
Remove build artifacts |
make rebuild |
Clean + build |
make install |
Install to /usr/local/bin |
make uninstall |
Remove installed binary |
make help |
Show all targets |
# Linux / macOS
./build/amplitron
# Windows
.\build\Release\amplitron.exe- Menu Bar β File β Settings to configure audio devices, buffer size, and sample rate
- + Add Pedal button to add effects to the signal chain
- Knobs β click and drag vertically to adjust parameters
- Double-click a knob to reset it to its default value
- Footswitch (circle at bottom of each pedal) β click to toggle bypass
- X button (top-right of pedal) β remove pedal from chain
- Reset All β reset all pedal parameters to defaults
- Audio β Start/Stop β toggle the audio stream
The application starts with a clean acoustic preset. Only EQ and Reverb are enabled by default β all other effects start bypassed:
Input β Noise Gate* β Compressor* β Overdrive* β Distortion* β EQ β Chorus* β Delay* β Reverb β Cabinet* β Output
(*bypassed by default β click the footswitch to enable)
AmpSimulator and Wah are available via + Add Pedal and can be inserted anywhere in the chain.
You can remove any pedal and add new ones in any order.
Amplitron/
βββ CMakeLists.txt # Build configuration
βββ Makefile # Convenience wrapper
βββ README.md
βββ CONTRIBUTING.md # Contribution guidelines
βββ DEPLOYMENT.md # CI/CD deployment guide
βββ AGENTS.md # System architecture doc
βββ CODE_OF_CONDUCT.md # Contributor Covenant
βββ LICENSE # MIT License
βββ docs/
β βββ index.html # Download page (GitHub Pages)
β βββ PRESETS.md # Preset guide
β βββ demo/ # Web demo (deployed)
βββ external/ # Vendored deps (fetched by setup script)
β βββ imgui/ # Dear ImGui v1.90.1
β βββ kiss_fft/ # kiss_fft (BSD-3-Clause, FFT library)
β βββ dr_wav.h # dr_wav (single-header WAV library)
β βββ nanosvg.h # nanosvg (SVG parser)
β βββ nanosvgrast.h # nanosvg rasterizer
βββ presets/ # Example presets (JSON)
β βββ 01_Sparkling_Clean.json
β βββ 02_Classic_Rock_Crunch.json
β βββ 03_Modern_Metal_Lead.json
β βββ 04_Ambient_Swells.json
βββ scripts/
β βββ setup_dependencies.sh # Linux/macOS dependency setup
β βββ setup_dependencies.ps1 # Windows dependency setup
β βββ build_windows.ps1 # Windows build script
β βββ installer.nsi # NSIS installer config
β βββ package_linux.sh
β βββ package_macos.sh
β βββ package_windows.ps1
βββ src/
β βββ main.cpp # Entry point
β βββ common.h # Shared utilities, math helpers
β βββ preset_manager.h/cpp # Preset save/load (JSON)
β βββ audio/
β β βββ audio_engine.h/cpp # Core DSP pipeline
β β βββ audio_backend.h # Abstract audio backend
β β βββ audio_backend_portaudio.cpp # Native desktop backend
β β βββ audio_backend_sdl.cpp # Web/Emscripten backend
β β βββ effect.h # Base effect interface
β β βββ recorder.h/cpp # WAV recording
β β βββ spsc_queue.h # Lock-free queue (audioβGUI)
β β βββ effects/
β β βββ noise_gate.* # Noise gate
β β βββ compressor.* # Dynamic range compressor
β β βββ overdrive.* # Tube-style overdrive
β β βββ distortion.* # Hard clipping distortion
β β βββ equalizer.* # 3-band parametric EQ
β β βββ amp_simulator.* # Amp model simulator (4 models)
β β βββ cabinet_sim.* # Speaker cabinet simulation
β β βββ chorus.* # Chorus modulation
β β βββ delay.* # Digital delay with feedback
β β βββ reverb.* # Schroeder reverb
β β βββ tuner.* # Chromatic tuner (YIN algorithm)
β β βββ wah.* # Wah (manual sweep + auto-wah)
β β βββ phaser.* # Cascaded all-pass filter phaser
β β βββ flanger.* # Modulated delay flanger
β β βββ octaver.* # Sub/upper-octave generator
β β βββ pitch_shifter.* # Granular pitch shifting
β βββ gui/
β βββ gui_manager.h/cpp # Window, ImGui, main render loop
β βββ pedal_board.h/cpp # Pedal chain management UI
β βββ pedal_widget.h/cpp # Individual pedal rendering
β βββ command_history.h/cpp # Undo/redo system
β βββ command.h # Command interface
β βββ spectrum_analyzer.h/cpp # Real-time spectrum display
β βββ theme.h # Color scheme & pedal colors
β βββ gl_setup.h # OpenGL initialization
β βββ file_dialog.h/cpp # File dialog interface
β βββ file_dialog_native.cpp # Native file dialogs
β βββ file_dialog_web.cpp # Web-based file dialogs
βββ tests/ # 105+ test suite
β βββ test_framework.h # Minimal test framework
β βββ test_main.cpp
β βββ test_common.cpp # Utility function tests
β βββ test_effects.cpp # All effects tested (including Wah)
β βββ test_preset_manager.cpp # Preset I/O tests
β βββ test_recorder.cpp # WAV recording tests
β βββ test_theme.cpp # Color system tests
β βββ test_command_history.cpp # Undo/redo tests
β βββ web/
β βββ amplitron.spec.ts # Playwright end-to-end web demo tests
βββ web/
βββ shell.html # Emscripten shell template
βββ coi-serviceworker.js # SharedArrayBuffer support
The audio callback runs at the highest priority available from PortAudio. The signal flow is:
- Input β mono float32 samples from the audio interface
- Input Gain β adjustable preamplifier
- Effect Chain β each enabled effect processes the buffer sequentially
- Output Gain β master volume control
- Safety Clamp β hard limit to Β±1.0 to prevent clipping damage
- Output β mono float32 to the audio interface
Effects use try_lock on the mutex to avoid blocking the audio thread if the GUI is modifying the chain. This ensures glitch-free audio even during UI interaction.
- Biquad filters β for EQ bands (low shelf, peaking, high shelf) and amp tone stacks
- One-pole filters β for tone controls and parameter smoothing
- Schroeder reverb β 4 parallel comb filters + 2 series allpass filters
- Waveshaping β
tanh()and polynomial soft clipping for drive effects - Linear interpolation β for fractional delay reads (chorus, delay)
- Envelope following β for noise gate, compressor, and amp simulator dynamics
- YIN pitch detection β for chromatic tuner (4096-sample window at 48kHz)
- Amp modeling β per-model tone stacks, saturation curves, power sag simulation
- Unplug and replug the USB-C end β some cables need a moment to initialize
- Check that the cable appears in your OS sound settings:
- Windows: Settings β Sound β Input β look for "USB Audio Device" or similar
- Linux:
arecord -lor check PulseAudio/PipeWire settings - macOS: System Preferences β Sound β Input
- The console output on launch lists all detected devices with
[USB]tags β check if your cable appears - If auto-detection misses it, open File β Settings and manually select it as input
- Try a different USB-C port (some ports may not support USB audio)
- Make sure the USB guitar cable is plugged in before launching the app
- Open File β Settings and verify both input (USB cable) and output (speakers) are selected
- On Windows, install ASIO4ALL for better driver support
- Try increasing the buffer size to 128 or 256 if you hear crackling
- Make sure no other app (e.g., a DAW) has exclusive access to the USB device
- Turn up the Noise Gate threshold (first pedal in the default chain)
- Cheap USB guitar cables can introduce some noise β this is normal, the noise gate handles it
- Keep the USB cable away from power adapters and screens (electromagnetic interference)
- Use headphones β this is the #1 fix
- If using laptop speakers, lower the output volume and move the laptop away from the guitar
- The guitar's magnetic pickup can pick up speaker vibrations, causing a feedback loop
- Reduce buffer size: File β Settings β Buffer Size β 64 or 32
- Use ASIO drivers on Windows (install ASIO4ALL)
- Close other audio-intensive applications (browsers, Spotify, DAWs)
- Use 48kHz sample rate
- Increase buffer size to 128 or 256
- Lower sample rate to 44100 Hz
- Check CPU usage β disable effects you aren't using
- On laptops, ensure power mode is set to High Performance
- The
external/directory is not checked into Git β it is fetched by the setup script - On a fresh clone, you must run the setup script before building:
# Linux / macOS ./scripts/setup_dependencies.sh # Windows .\scripts\setup_dependencies.ps1
- This fetches: Dear ImGui, kiss_fft, dr_wav, and nanosvg into
external/ git submodule updatewill not work β these are not Git submodules- On Windows with vcpkg, ensure
VCPKG_ROOTis set and you pass the toolchain file to CMake
See the platform-specific build instructions above. The project uses CMake and requires:
- C++17 compiler
- PortAudio
- SDL2
- OpenGL
cd build
./amplitron-tests # Linux/macOS
./amplitron-tests.exe # WindowsThe test suite includes 105+ tests covering:
- Core utility functions
- All 16 audio effects (including amp simulator, wah, tuner, phaser, flanger, octaver, and pitch shifter)
- Preset save/load/roundtrip
- WAV recording
- Theme and color system
- Undo/redo command history
- End-to-end web demo tests (Playwright, in
tests/web/)
Amplitron uses GitHub Actions for continuous integration and deployment:
-
CI Workflow (
.github/workflows/ci.yml): Runs on every push tomain/developand PRs todevelop- Builds on Windows (MSYS2/MinGW64), macOS (Homebrew), Linux (Ubuntu), Android (NDK r27), iOS (Xcode Simulator), and Web (Emscripten)
- Runs full test suite (105+ tests) on all native desktop platforms
- Generates semantic version (
0.1.<commit_count>) - Uses dependency caching (apt, Emscripten SDK, ccache)
- Uploads build artifacts (1-day retention)
-
Release Workflow (
.github/workflows/release.yml): Triggered automatically on successful CI onmain- Creates GitHub Release with semantic version tag
- Packages platform-specific installers:
- Windows: NSIS installer (
Amplitron-Windows-Setup.exe) - macOS: DMG disk image (
Amplitron-macOS.dmg) with ad-hoc code signing - Linux: Tarball (
Amplitron-Linux-x64.tar.gz) with launcher script - Android: APK (
Amplitron-Android.apk) β sideload directly - iOS: IPA (
Amplitron-iOS.ipa) β install via AltStore
- Windows: NSIS installer (
- Deploys web demo and download page to GitHub Pages
Every push to main automatically:
- Builds for Windows, macOS, Linux, Android, iOS, and Web (Emscripten)
- Runs the full test suite (105+ tests)
- Creates a new release with version
v0.1.<commit_count> - Uploads platform installers/packages to the release
- Deploys the download page and web demo to GitHub Pages
No manual tagging required β just push to main and get a release!
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes with tests
- Submit a pull request
For bugs and feature requests, open an issue on GitHub.
- Developer: Sudip Mondal
- Email: sudmondal2002@gmail.com
- GitHub: @sudip-mondal-2002
This project is licensed under the MIT License. The audio DSP algorithms are original implementations based on well-known techniques from the audio engineering literature.
Dependencies:
- PortAudio β MIT License
- SDL2 β zlib License
- Dear ImGui β MIT License