MIDI-controlled stereo-preserving granular-synthesizer LV2 plugin

Overview

Stereog

"Stereog" rhymes with "hairy dog."

Stereog is a MIDI-controlled stereo-preserving granular synthesizer LV2 plugin.

It is experimental software, which explains a few current oddities:

  • It prints debug info to standard output
  • It listens on all MIDI channels
  • It resets the sampler when an A4 note is played

It is implemented in Rust and distributed under the MIT license.

During development, a Linux platform running Ardour v6, the open-source digital audio workstation (DAW) was used for testing. Is its virtual MIDI keyboard polyphonic? Let me know.

Principles of Operation

The plugin begins "listening" while in the "armed" state after initialization.

When the sound level passes a user-controlled threshold, Stereog enters its "recording" mode. When the sound level diminishes below another, lower threshold, derived from the user-controlled threshold, recording stops, and the plugin switches to "playing" mode.

The captured sound serves as the source from grains used to create the audio output.

Hitting an A4 note clears and arms the sampler.

Future Work

Some intended developments are listed below.

  • Use program-change messages to reset the sampler
  • Listen to a specific MIDI channel that the user can select
  • Try polyphony (with VMPK?)
  • Try optimized builds
  • Add "center" and "dispersal" controls
  • Add number-of-grains control

Build, Install, Test

An example command for building and installing appears below. It depends on the wonderful rsync command.

cargo build \
  && cp target/debug/libstereog.so stereog.lv2/ \
  && sudo rsync -av stereog.lv2 /usr/lib/lv2/

Tests are run as shown below.

cargo test
You might also like...
Midnote is a terminal application that reads a MIDI file and displays you its notes bar-by-bar, while playing it.

MIDNOTE Midnote is a terminal application that reads a MIDI file and displays you its notes bar-by-bar, while playing it. Goals As a blind musician my

Cross-platform realtime MIDI processing in Rust.

midir Cross-platform, realtime MIDI processing in Rust. Features midir is inspired by RtMidi and supports the same features*, including virtual ports

Small music theory library with MIDI capabilities written in Rust
Small music theory library with MIDI capabilities written in Rust

mumuse Small music theory library with MIDI capabilities written in Rust (wip). Examples Creating notes and transpositions // Declare Note from &str l

Tools for working with MIDI files - written by All the Music LLC for musicians.

Tools for Generating and Working with MIDI Files NOTICE: This repo is under construction and is not ready for use. Once it is ready, and the other rep

Map the Teenage Engineering OP-1 MIDI output to keyboard commands

OP1NPUT Maps the Teenage Engineering OP-1's MIDI output to keyboard keypresses so it may be used as a game controller. This exists because many of the

Encrypt and decrypt files by playing melodies on your MIDI keyboard.

midicrypt Encrypt and decrypt files by playing melodies on your MIDI keyboard. Written in Rust. ❯ ./midicrypt -h midicrypt 0.1.0 NINNiT Encrypts and D

Drumsthesia is a simple software that helps you to learn how to play the drums (or midi controllers).
Drumsthesia is a simple software that helps you to learn how to play the drums (or midi controllers).

Drumsthesia A shameless copy of Neothesia adapted for e-Drums. Youtube Video Binaries for MacOS, Linux (untested) and Windows (untested). Download Scr

A small program that converts midi files to RPE (Re: Phigros Edit) Charts

Midi to RPE(Re: Phigros Edit) chart converter $ mid2json --help Usage: mid2json [OPTIONS] MIDI_PATH Arguments: MIDI_PATH Name of the input fil

Polyrhythmically-inclinded Midi Drum generator
Polyrhythmically-inclinded Midi Drum generator

Polyrhythmix Polyrhythmix (Poly) is a command-line assistant designed to generate MIDI files from the description of drum parts. It provides a conveni

Owner
Ed Cashin
Ed Cashin
Synthesizer IO - a synthesizer written in Rust.

Synthesizer IO Hopefully, this will become a synthesizer written in Rust. At the moment, it's experimental bits of technology toward that end. Running

Raph Levien 278 Dec 13, 2022
Minimalist multi-track audio recorder which may be controlled via OSC or MIDI.

smrec Minimalist multi-track audio recorder which may be controlled via OSC or MIDI. I did this because I needed a simple multi-track audio recorder w

Ali Somay 18 Oct 22, 2023
Very simple, efficient, task oriented, low cognitive, Midi player and jukebox for midi instruments

Midi and Virtual Book jukebox Player A cross-platform MIDI and virtual book jukebox player. It only includes the necessary functionalities to play MID

Barrel Organ Discovery 4 Jun 29, 2023
6 operator FM synthesizer. VST3/CLAP plugin.

Foam 6 operator FM synth with a cross-oscillator modulation matrix, available in VST3 and CLAP plugin formats. Open source under GPLv3. In development

null 4 Sep 4, 2023
🎹 Simple MIDI note repeater plugin (VST3/CLAP).

⏱️ Clockwork A simple MIDI note repeater plugin, written in Rust. ?? Showcase: (turn on audio) clockwork-showcase.mp4 ?? Manual: The user manual can b

Alexander Weichart 13 Nov 30, 2022
Procedural engine sound generator controlled via GUI or CLI

enginesound GUI Application used to generate purely synthetic engine sounds with advanced options written in Rust loosely based on this paper Reading

null 198 Dec 30, 2022
VST2 frequency modulation synthesizer written in Rust

OctaSine VST2 frequency modulation synthesizer written in Rust. Official website with downloads OctaSine.com Audio examples SoundCloud Screenshots Lig

Joakim Frostegård 412 Dec 30, 2022
A very simple audio synthesizer with a tuix gui

In this tutorial we'll create a very simple audio synthesiser application from scratch with a ui using tuix. The finished code for this tutorial can b

George Atkinson 24 Jan 6, 2023
The frequency-perfect synthesizer for a PC-speaker

?? BeeSynth Project The frequency-perfect synthesizer for a PC speaker ✔️ Features Written in Rust ?? Support playing MP3, WAV, FLAC, tracker music an

Александр 9 Jul 17, 2023
A library and application for lossless, format-preserving, two-pass optimization and repair of Vorbis data, reducing its size without altering any audio information.

OptiVorbis A library and application for lossless, format-preserving, two-pass optimization and repair of Vorbis data, reducing its size without alter

OptiVorbis 27 Jan 3, 2023