Skip to content
/ Actuate Public

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

License

Notifications You must be signed in to change notification settings

ardura/Actuate

Repository files navigation

Actuate (Latest is v1.3.0)

A 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

Shortcut to troubleshooting section

Features

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

image

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

image

  • 12 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
  • 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
  • 10 Different FX for post processing

image

  • 3 LFO controllers

image

  • 4 Modulators that can be linked to multiple things

image

  • 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

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 <shift + spacebar> 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

  • 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

  • Create an additive module
  • Create filter release bypass toggle
  • Find more things to add here

(old items pre 1.3.0)

  • Create a Preset Browser
  • Add more reverb styles
  • Fix some bandpass glitching on certain filter types
  • Create different stereo spreading algorithms
  • Make the GUI nicer - see Discussion #26
  • Look into making the preset loading more reliable
  • Fix text input not working (right now it's a OS safe workaround)
  • 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 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
  1. Your outputs will be in the Actuate/target/bundled directory.
  2. 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