Simple one-sample, one-note dynamic sampler with envelope controls and other features. Essentially designed to play single percussive sounds.
Plugin controls as displayed by Ardour's default generic UI. Your host may show controls differently. The MIDI piano shown below the controls is part of Ardour's plugin window, not a feature of this plugin.
- Designed for efficient real-time operation with low CPU cost
- Single MIDI note trigger per sample instance (ideal for drums and percussion)
- ADHSR envelope (Attack, Decay, Hold, Sustain, Release)
- Pitch shifting (±12 semitones)
- Humanization (randomized pitch and volume for natural feel)
- Forward or backward playback
- Mono or dual-voice polyphony
- Sample-accurate playback with linear interpolation
- Stereo or mono output
- LV2 state save/restore
- LV2 worker interface for non-realtime sample loading
https://simdott.github.io/light_sampler
urn:simdott:light_sampler
- LV2 SDK (lv2-dev or lv2-devel)
- libsndfile (libsndfile-dev or libsndfile-devel)
- GCC or Clang (C99 compliant compiler)
- Make
Debian/Ubuntu : sudo apt-get install build-essential lv2-dev
Fedora : sudo dnf install gcc lv2-devel
Arch : sudo pacman -S base-devel lv2
The install.sh script automatically builds the plugin and copies files to the correct LV2 directory.
-
Download the source : git clone https://github.com/simdott/light_sampler cd light_sampler
-
Install for current user (recommended) : sh install.sh
Or install system-wide (requires sudo) : sudo sh install.sh
List installed plugins : lv2ls | grep light_sampler
Should show : urn:simdott:light_sampler
-
Load the plugin in your LV2 host
-
Click on the "Sample" parameter to select and load a sample via the displayed file browser window
-
Set the desired MIDI note number (default: C4/60)
-
Play that note on your MIDI keyboard or sequencer
| Parameter | Range | Description |
|---|---|---|
| Volume | 0-150% | Output volume (above 100% adds gain) |
| Voices | 1 or 2 | Maximum simultaneous notes |
| Pitch Shift | -12 to +12 | Transposition in semitones |
| Play Backward | 0/1 | Reverse playback direction |
| Humanize | 0/1 | Randomizes pitch (±0.2 semitones) and volume (±6%) |
| Stereo | 0/1 | 0 = mono (left to both outputs), 1 = stereo |
| MIDI Channel | 1-16 | MIDI channel to listen on |
| MIDI Note | 0-127 | Trigger note number |
| Attack | 0-500 ms | Rise time from silence to peak |
| Hold | 0-1000 ms | Duration at peak before decay |
| Decay | 0-1000 ms | Fall time from peak to sustain |
| Sustain | 0-100% | Level held while note continues |
| Release | 0-1000 ms | Time from sustain to silence |
The plugin loads samples asynchronously via LV2 worker interface. Sample loading does not interrupt audio processing.
- Sample rate: Any (resampled on-the-fly to host rate)
- Channels: Mono or stereo
- Bit depth: Any supported by libsndfile
- Formats: WAV, FLAC, Ogg Vorbis, AIFF and others (Linear PCM recommended)
Note: Audio format support depends on your system's libsndfile configuration. Most distributions include WAV, FLAC, Ogg, and AIFF support.
The AHDSR envelope is calculated once per audio block for efficiency. Attack, Decay, and Release curves are exponential.
- light_sampler.c - Plugin source code
- light_sampler.ttl - Plugin description (ports, properties)
- manifest.ttl - Bundle manifest
- install.sh - Build and install script
- uninstall.sh - Uninstall script
The uninstall.sh script automatically removes the plugin from the LV2 directory.
-
Open a terminal in the plugin's folder
-
Uninstall for current user : sh uninstall.sh
Or uninstall system-wide : sudo sh uninstall.sh
Report bugs at: https://github.com/simdott/light_sampler/issues
- v1.0.0 (2026-05-??) - Initial release
GPL-2.0-or-later
Simon Delaruotte (simdott)
