Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ardura/Actuate

Synthesizer, Sampler, Granulizer written in Rust with Nih-Plug and egui
https://github.com/ardura/Actuate

granular-synthesis rust sampler synthesis synthesizer

Last synced: 2 months ago
JSON representation

Synthesizer, Sampler, Granulizer written in Rust with Nih-Plug and egui

Awesome Lists containing this project

README

        

# Actuate (Latest is v1.3.1)
A Subtractive and Additive Synthesizer, Sampler, and Granulizer built in Rust + Nih-Plug
Written by Ardura

**Please note this project is still a work in progress/alpha - I got a lot of traction once I posted on KVR and wanted to clarify that!**

Join the discord! https://discord.com/invite/hscQXkTdfz
Check out the KVR Page: https://www.kvraudio.com/product/actuate-by-ardura

![image](https://github.com/ardura/Actuate/assets/31751444/9b4cb9fe-de11-4242-a5c0-a0c5b724443d)

[Shortcut to troubleshooting section](#Troubleshooting)

## Features
Hover over any knob (or some labels) for an explanation!

![image](https://github.com/ardura/Actuate/assets/31751444/6c455635-8f03-49b5-bce1-c665d437d2fe)

- Two SVF Filters, a VCF inspired filter, Tilt inspired filters, and two other analog-inspired filters that can be parallel, serial, or bypassed with ADSR Envelopes
- Pitch modulation with ASDR

![image](https://github.com/ardura/Actuate/assets/31751444/accd4727-975a-4266-a82a-180c55db628d)

- 12 Subtractive Oscillator shapes:
- The standard: Sine, Triangle, Saw, Ramp, Square, Pulse, Noise
- WSaw - Saw with noise variance to create crispyness
- SSaw - Saw with small variance to create shimmer
- RSaw - Rounded saw wave
- RASaw - Rounded saw wave with random variances
- RSquare - Rounded square wave
- Additive Oscillators with up to 16 harmonics
- FM Supported between Oscillators/samples/granulizer
- 5 Main Filter Algorithms
- SVF - 7 Filter resonance approximations for different sweeps in SVF filters
- Default - Allegedly the "ideal" response when tying Q to angular sin response
- Moog - Allegedly a Moog Ladder Q approximation further modified
- TB - Allegedly an approximation of a TB-303 LP further modified
- Arp - Allegedly an approximation of an Arp 2600 further modified
- Res - I made this up - kind of a hyper resonance while still being gentle
- Bump - I made this up - a gentle bump resonance different from the others
- Powf - I made this up - Curves based on Powf math function as it scales
- Tilt Filter
- VCF Filter
- Analog inspired filter idea (Ardura's V4)
- Analog inspired filter idea (Ardura's A4I)
- 11 Different FX for post processing

![image](https://github.com/ardura/Actuate/assets/31751444/c13b62bb-a29e-420c-9f3a-764950cbd4a2)

- 3 LFO controllers

![image](https://github.com/ardura/Actuate/assets/31751444/22499e32-50e4-4724-9483-de5ceb43751a)

- 4 Modulators that can be linked to multiple things

![image](https://github.com/ardura/Actuate/assets/31751444/67d7cdeb-9214-4eef-ad8b-63b6a03ceb60)

- Sampler with pitch shifting or resample stretching
- Sampler supports single cycle waveforms for wavetable-like functions
- Granulizer with ADSR and crossfading between grains
- Any generator can go to any filter
- Samples can be saved into presets
- Stereo width and ultra wide controls

## Signal Path
![actuate_flow](https://github.com/ardura/Actuate/assets/31751444/45ce1d56-d6c1-47b2-8bae-09633ecbbd2e)

## Troubleshooting
Since Actuate 1.2.8 the new file browser and UI use native text editing. This created some issues in some DAWs outlined here:

- **FL Studio:** No issues!
- **Ardour:** No issues!
- **Bitwig:** When using text input you need to use **** for space key input
- **Reaper:** VST3 and CLAP text input works if you use "send all keyboard input to plugin" in the FX menu

![image](https://github.com/ardura/Actuate/assets/31751444/1664ef3f-ec4c-453b-81e8-d0b7e13a5811)

- **Ableton:**
- Text input works if you add "-_EnsureKeyMessagesForPlugins" to Options.txt in preferences. See https://forum.ableton.com/viewtopic.php?t=97318
- Unfortunately I don't know where this would be on Linux or Mac so I'm open to help from Ableton users!

## Roadmap
- [x] Create an additive module
- [ ] Create filter release bypass toggle
- [ ] Find more things to add here

(old items pre 1.3.0)
- [x] Create a Preset Browser
- [x] Add more reverb styles
- [x] Fix some bandpass glitching on certain filter types
- [x] Create different stereo spreading algorithms
- [x] Make the GUI nicer - see Discussion https://github.com/ardura/Actuate/discussions/26
- [x] Look into making the preset loading more reliable
- [x] Fix text input not working (right now it's a OS safe workaround)
- [x] Fix file dialog in the process thread (right now it's a OS safe workaround)

## DAWS and compatibility
- Compatible with Windows 10 and up
- Compatible with Linux
- Compatible with Mac
- DAWS
- FL Studio tested compatible
- Ableton tested compatible
- Reaper tested compatible
- Ardour tested **compatible with some reported performance issues**
- Bitwig tested compatible
- Cantibile tested **uncompatible and has issues**
- VSTHost tested **compatible but has gui issues**

## Building/Compiling Actuate Manually
- You should do this if the precompiled binary fails or you have a unique system configuration (like linux)

After installing [Rust](https://rustup.rs/) on your system (and possibly restarting your terminal session), you can compile Actuate as follows:
1. Make sure your dependencies are installed. These are the packages you will need at minimum: `libgl1-mesa-dev libglu1-mesa-dev libxcursor-dev libxkbcommon-x11-dev libatk1.0-dev build-essential libgtk-3-dev libxcb-dri2-0-dev libxcb-icccm4-dev libx11-xcb-dev`
- Note I have also found on some systems `libc6` or `glibc` needs to be installed depending on your configuration
2. Run the build process in a terminal from the Actuate root directory
```
cargo xtask bundle Actuate --profile release
```
Or use the following for debugging:
```
cargo xtask bundle Actuate --profile profiling
```
3. Your outputs will be in the Actuate/target/bundled directory.
4. the `*.clap` you can copy to your clap directory/path, the vst3 one needs the folder structure copied on linux

## Other Build information
The builds on GitHub and KVR are VST3 and CLAP format, and are compiled on the following machine types:
- Ubuntu 22.04
- Windows' 2022 build (Win10? The Github runner just lists "Windows-2022")
- MacOS 12
- The MacOS M1 build is on OS 14

## Known Issues
- Naming presets and info may be unstable in non-windows environments as I have not tested those sorry