Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/smimram/learning-effect
Modeling guitar amplifiers using machine learning.
https://github.com/smimram/learning-effect
audio-processing machine-learning ocaml
Last synced: 17 days ago
JSON representation
Modeling guitar amplifiers using machine learning.
- Host: GitHub
- URL: https://github.com/smimram/learning-effect
- Owner: smimram
- License: gpl-3.0
- Created: 2023-08-31T16:02:11.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-09-02T11:43:44.000Z (about 1 year ago)
- Last Synced: 2024-08-05T15:06:36.458Z (3 months ago)
- Topics: audio-processing, machine-learning, ocaml
- Language: OCaml
- Homepage:
- Size: 44.9 KB
- Stars: 9
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Machine learning audio effects
Trying to learn machine learning for audio effects. This is my own take at
coding audio effects using machine learning. In OCaml.It started with the
[LSTM](https://en.wikipedia.org/wiki/Long_short-term_memory)-based approach
described in- [this github repository](https://github.com/Alec-Wright/Automated-GuitarAmpModelling)
- [this article](https://www.dafx.de/paper-archive/2019/DAFx2019_paper_43.pdf)
- [this blog
post](https://towardsdatascience.com/neural-networks-for-real-time-audio-stateful-lstm-b534babeae5d)## Usage
In order to learn an effect you need both an original sound file (say
`source.wav`) and a processed sound file (say `target.wav`). You can start
learning with```shell
leffect -s source.wav -t target.wav
```This will learn the effect. While doing so it will also produce an `output.wav`
file (name can be changed with `-o`) resulting of the processing of the input
file by the current network. Some other useful parameters are- `--rate`: the learning rate
- `--size`: the size of the network
- `--play`: play the output in realtimeAt the end, it produces an `effect.json` file (the name can be changed with the
`--json` flag).In order to process a file with an already learned effect (whose parameters are
stored in `effect.json`), you can simply do```shell
leffect -i file.wav -o output.wav
```