This is a collection of scripts for extracting single-cycle wavetables from synth plugins.
They leverage the Pedalboard Python library to load plugins and render audio.
Old way:
- 🔌 Load a plugin into your favorite DAW.
- 🎛️ Configure the plugin's parameters.
- 🎵 Sequence a single note.
- 💾 Render the audio to a WAV file.
- 🔁 Repeat steps 2-4 at least 127 more times to get all the variations of a single parameter.
- 🧑💻 Load a rendered WAV files in your favorite editor.
- 😵💫 Manually select a single cycle to extract.
- ✂️ Copy and paste the cycle into your wavetable.
- 😩 Go to bed mentally exhausted because you've spent all day making a wavetable.
New way:
- 🐍 Run a WAVy Gravy script.
- 💾 Load the resulting wavetable into your favorite synth.
- 😁 Crack on with making tunes!
WAVy Gravy helps with the drudgery of recording, extracting, and stitching together wavetables.
You will still need to spend some time figuring out which parameters to modulate, and how to set up the initial patch to get a stable waveform. You'll also need to experiment with which offset to use to get the best waveforms.
-
Install uv, a package manager for Python.
-
Download and unzip this repository (or clone it using
git
if you prefer 🤓).
From a command prompt / terminal:
uv run script_name.py
Now you should have some wavetables in the output
directory!
Note: Depending on your OS and how you have plugins installed, you may need to edit the script to point to the correct plugin location.
- Copy an existing script as a starting point.
- Edit the new script to your liking.
- Run the script.
- Try out the new wavetable(s).
Some ideas of how to change scripts:
- Load a different plugin. (VST3 or AU)
- Mutate a different parameter.
- Mutate multiple parameters at once.
- Mutate over a different range of values for a parameter.
- Change the note. (Many synths will render different waveforms depending on the note.)
- Change the offset. (Some synths will render slightly different cycles even when there's no modulating parameters.)
Do this first, or whenever you add another plugin. It'll take a few moments:
uv run plugin_scan.py
List the plugins that were found, and their default parameters:
uv run plugin_list.py | less
These tools depend on Pedalboard Pluginary and may not be perfect. The WAVy Gravy project may try to fix some of the bugs over time.