An advanced sample slicer plugin, implemented in C++ with JUCE
  • C++ 94.6%
  • CMake 2.8%
  • Makefile 2.6%
Find a file
2026-10-05 10:45:13 +02:00
lib Initial commit 2026-07-21 02:06:45 +02:00
Source Use addAndMakeVisible for drop overlay to ensure it's in component hierarchy 2026-10-05 10:45:13 +02:00
Tests Add drag-and-drop regression test and build targets 2026-10-04 23:58:44 +02:00
.gitignore Add drag-and-drop regression test and build targets 2026-10-04 23:58:44 +02:00
CMakeLists.txt Add drag-and-drop regression test and build targets 2026-10-04 23:58:44 +02:00
Makefile Add drag-and-drop regression test and build targets 2026-10-04 23:58:44 +02:00
monoslicershot.png replace monoslicershot.png 2026-07-23 00:55:42 +02:00
README.md Add drag-and-drop regression test and build targets 2026-10-04 23:58:44 +02:00

Monoslicer

A monophonic sample slicer and sampler instrument built with JUCE and CMake.

Load an audio file, slice it into regions (automatically via onset detection or manually), and trigger individual slices via MIDI.

Screenshot

Monoslicer

Features

  • Slice & trigger - Load WAV, AIFF, FLAC, or OGG files and play slices chromatically via MIDI (starting at C4)
  • Auto-slice - Onset-based detection with adjustable sensitivity
  • Manual slice control - Click to add, right-click to remove, drag to reposition slice markers
  • Per-voice envelopes - Amplitude and filter ADSR envelopes with configurable depth
  • Filter - 5-mode biquad filter (LP12, LP24, HP, Bandpass, Notch) with cutoff, resonance, and envelope depth
  • Bass / Treble -- Adjust low and high frequency emphasis for onset detection (affects how auto-slicing works)
  • Pitch shift - Key transpose from -12 to +12 semitones
  • Time stretch - Resample to a target beat count at a given BPM
  • Undo/redo for slice operations
  • Zoomable waveform display with piano key sidebar and time ruler
  • Full DAW state recall - All parameters and slices are saved with your session
  • UI scaling from 75% to 200%

Building

Requires CMake 3.22+ and a C++17 compiler.

make          # Fetch JUCE, configure, build
make install  # Build, then copy the plugins to your system directories

make only builds — installing to system plugin folders is opt-in via make install.

On macOS make install copies the AU to ~/Library/Audio/Plug-Ins/Components and the VST3 to ~/Library/Audio/Plug-Ins/VST3, then triggers an Audio Unit rescan. On Linux it copies the VST3 bundle to ~/.vst3.

Individual targets are also available:

make fetch      # Clone JUCE 8.0.9
make configure  # CMake configure
make build      # Build (Release)
make install    # Build, then install (AU + VST3 on macOS, VST3 on Linux)

Tests

make test

Currently one suite: Tests/DragAndDropTest.cpp verifies that dropping an audio file onto the editor is discovered and loaded. It uses a real native peer, so it exercises the same code path a host does. Tests build in a separate build-tests/ directory, so make is unaffected.

Clean

make clean      # removes build/ and build-tests/

Plugin Formats

  • Audio Unit (AU)
  • VST3
  • Standalone

Usage

  1. Load an audio file via the Load button, drag-and-drop, or the < / > buttons to browse the current folder
  2. Click Auto Slice or manually click on the waveform to place slice markers
  3. Play slices via MIDI - note C4 triggers slice 0, C#4 triggers slice 1, and so on
  4. Shape the sound with the amp/filter envelopes, filter, and tone controls

Waveform Interaction

Action Effect
Left-click on waveform Add slice marker
Drag slice marker Reposition
Right-click on waveform Remove nearest slice
Click piano key Trigger corresponding slice
Mouse wheel Zoom / scroll