TorchFX is a modern Python library for high-performance digital signal processing in audio, leveraging PyTorch and GPU acceleration. Built for researchers, engineers, and developers who need fast, flexible, and differentiable audio processing.
- β‘ GPU Acceleration - Built on PyTorch for high-performance audio processing on CUDA-enabled devices
- π Composable Pipelines - Chain filters with the pipe operator (
|) for sequential processing - β Parallel Processing - Combine filters with the add operator (
+) for parallel filter combination - π§ PyTorch Native - All filters are
torch.nn.Modulesubclasses, enabling gradient-based optimization - π― Simple & Intuitive - Clean, object-oriented API designed for ease of use
- βοΈ Highly Extensible - Create custom filters and effects by extending base classes
- π Performance Optimized - Substantial performance gains over SciPy for long and multichannel signals
pip install torchfxOr install from source:
git clone https://github.com/matteospanio/torchfx
cd torchfx
pip install -e .import torch
from torchfx import Wave
from torchfx.filter import LoButterworth, ParametricEQ
# Load audio
wave = Wave.from_file("audio.wav")
# Create filters
lowpass = LoButterworth(cutoff=5000, order=4, fs=wave.fs)
eq = ParametricEQ(frequency=1000, q=2.0, gain=3.0, fs=wave.fs)
# Sequential processing with pipe operator (|)
processed = wave | lowpass | eq
# Parallel processing with add operator (+)
stereo_enhancer = lowpass + eq
enhanced = wave | stereo_enhancer
# Save result
processed.save("output.wav")- Full Documentation - Complete guides and API reference
- Getting Started - Installation and first steps
- Tutorials - Practical examples and use cases
- API Reference - Detailed API documentation
- Blog - Updates, releases, and insights
- Contributing Guide - How to contribute to TorchFX
- Style Guide - Coding standards and conventions
- Roadmap - Future plans and priorities
We welcome contributions from everyone! Please read our Contributing Guide to get started.
If you use TorchFX in your research, please cite our paper:
@conference{Spanio2025torchfx,
author = {Spanio, Matteo and RodΓ , Antonio},
title = {TORCHFX: A MODERN APPROACH TO AUDIO DSP WITH PYTORCH AND GPU ACCELERATION},
year = {2025},
journal = {Proceedings of the International Conference on Digital Audio Effects, DAFx},
pages = {390 β 395},
url = {https://www.scopus.com/inward/record.uri?eid=2-s2.0-105028935688&partnerID=40&md5=552e54afc1a074cbd1b7e8ed4ad1c010},
type = {Conference paper},
}This project is licensed under the terms of the GNU General Public License v3.0. See the LICENSE file for details.
This project uses the following third-party libraries:
Their respective license texts are included in the licenses/ directory.