Skip to content
Frequency modulation based VST2 plugin written in Rust
Rust Shell
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
contrib Move osx_vst_bundler.sh to new contrib dir, update README license part Jul 20, 2019
docs README: add more install info including cmake Aug 7, 2019
octasine Commit atomic_double file that was caught in .gitignore Jul 23, 2019
octasine_vst Rename FmSynth struct to OctaSine Jul 20, 2019
scripts
simd_sleef_sin35 simd_sleef_sin35: use doubles, use AVX and AVX2 functions Jul 23, 2019
.gitignore Commit atomic_double file that was caught in .gitignore Jul 23, 2019
Cargo.toml Link sleef statically by using sleef-sys fork Jul 20, 2019
README.md README: add info about default operator routing Aug 7, 2019
TODO.md Update TODO Jul 23, 2019

README.md

OctaSine

Frequency modulation based VST2 plugin written in Rust

About

  • Four operators with independent parameters such as volume, panning, modulation index, feedback, three different frequency modifiers (ratio, free and fine) and ASDR volume envelope parameters. The operators can be independently switched to white noise mode
  • Flexible routing allowing setting the output operator (with some limitations) as well as the percentage of signal that is simply added to the final output, enabling additive synthesis. By default, operator 4 is routed to operator 3, operator 3 to operator 2 and operator 2 to operator 1.
  • 128 voices (using them all simultaneously might consume quite a bit of CPU time though)
  • Fully automatable (nice way of saying there is currently no built-in graphical user interface)
  • Master volume and master frequency parameters

Warning

This is not a final version of the audio rendering engine. The envelopes might be adjusted. This means any patches you make might sound different with later versions.

Installation

macOS

If you have already any of the software mentioned below, that step can be skipped.

Install the rust compiler. Requires the XCode build tools from Apple, you will probably be prompted to install those.

Install nightly Rust toolchain:

rustup toolchain install nightly

Install homebrew.

Install git and cmake with homebrew:

brew install git cmake

Clone this repository to a folder on your computer:

mkdir -p "$HOME/Downloads"
cd "$HOME/Downloads"
git clone https://github.com/greatest-ape/OctaSine.git

Build and install:

./scripts/macos/build-simd-and-install.sh

Advanced: If you don't want SIMD support and/or prefer the stable toolchain, instead run:

./scripts/macos/build-and-install.sh

Binary (pre-built) releases might be uploaded eventually.

Other platforms

Have a look at the cargo invocations from the macOS section scripts, they should work fine.

License

OctaSine is licensed under the GNU GPL 3.0. This goes for all code in this repository not in the following list:

  • The crate simd_sleef_sin35 is licensed under the Apache 2.0 license.
  • contrib/osx_vst_bundler.sh is licensed under the MIT license. See the file for specifics

Trivia

  • The name OctaSine comes from the four stereo sine-wave operators
You can’t perform that action at this time.