2026-07-22 00:33:03 +02:00
|
|
|
# Monoslicer
|
2026-07-21 02:08:44 +02:00
|
|
|
|
|
|
|
|
A monophonic sample slicer and sampler instrument built with [JUCE](https://juce.com/) and CMake.
|
|
|
|
|
|
|
|
|
|
Load an audio file, slice it into regions (automatically via onset detection or manually), and trigger individual slices via MIDI.
|
|
|
|
|
|
2026-07-21 02:10:11 +02:00
|
|
|
## Screenshot
|
|
|
|
|
|
2026-07-22 00:33:03 +02:00
|
|
|

|
2026-07-21 02:10:11 +02:00
|
|
|
|
2026-07-21 02:08:44 +02:00
|
|
|
## Features
|
|
|
|
|
|
2026-07-21 02:14:15 +02:00
|
|
|
- **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
|
2026-07-21 02:15:07 +02:00
|
|
|
- **Bass / Treble** -- Adjust low and high frequency emphasis for onset detection (affects how auto-slicing works)
|
2026-07-21 02:14:15 +02:00
|
|
|
- **Pitch shift** - Key transpose from -12 to +12 semitones
|
|
|
|
|
- **Time stretch** - Resample to a target beat count at a given BPM
|
2026-07-21 02:08:44 +02:00
|
|
|
- **Undo/redo** for slice operations
|
|
|
|
|
- **Zoomable waveform display** with piano key sidebar and time ruler
|
2026-07-21 02:14:15 +02:00
|
|
|
- **Full DAW state recall** - All parameters and slices are saved with your session
|
2026-07-21 02:15:39 +02:00
|
|
|
- **UI scaling** from 75% to 200%
|
2026-07-21 02:08:44 +02:00
|
|
|
|
|
|
|
|
## Building
|
|
|
|
|
|
|
|
|
|
Requires CMake 3.22+ and a C++17 compiler.
|
|
|
|
|
|
2026-07-21 02:12:16 +02:00
|
|
|
```sh
|
2026-10-04 23:58:44 +02:00
|
|
|
make # Fetch JUCE, configure, build
|
|
|
|
|
make install # Build, then copy the plugins to your system directories
|
2026-07-21 02:12:16 +02:00
|
|
|
```
|
|
|
|
|
|
2026-10-04 23:58:44 +02:00
|
|
|
`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`.
|
2026-07-21 02:12:16 +02:00
|
|
|
|
|
|
|
|
Individual targets are also available:
|
|
|
|
|
|
2026-07-21 02:08:44 +02:00
|
|
|
```sh
|
|
|
|
|
make fetch # Clone JUCE 8.0.9
|
|
|
|
|
make configure # CMake configure
|
|
|
|
|
make build # Build (Release)
|
2026-10-04 23:58:44 +02:00
|
|
|
make install # Build, then install (AU + VST3 on macOS, VST3 on Linux)
|
2026-07-21 02:08:44 +02:00
|
|
|
```
|
|
|
|
|
|
2026-10-04 23:58:44 +02:00
|
|
|
### Tests
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
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.
|
|
|
|
|
|
2026-07-21 02:08:44 +02:00
|
|
|
### Clean
|
|
|
|
|
|
|
|
|
|
```sh
|
2026-10-04 23:58:44 +02:00
|
|
|
make clean # removes build/ and build-tests/
|
2026-07-21 02:08:44 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 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
|
2026-07-21 02:14:15 +02:00
|
|
|
3. Play slices via MIDI - note C4 triggers slice 0, C#4 triggers slice 1, and so on
|
2026-07-21 02:08:44 +02:00
|
|
|
4. Shape the sound with the amp/filter envelopes, filter, and tone controls
|
|
|
|
|
|
|
|
|
|
### Waveform Interaction
|
|
|
|
|
|
|
|
|
|
| Action | Effect |
|
2026-07-21 02:14:15 +02:00
|
|
|
|--|--|
|
2026-07-21 02:08:44 +02:00
|
|
|
| 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 |
|