Add README

This commit is contained in:
Armin 2026-07-21 02:08:44 +02:00
commit 8ea017208b

67
README.md Normal file
View file

@ -0,0 +1,67 @@
# MonoSlicer
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.
## Features
- **Slice & trigger** -- Load WAV, AIFF, FLAC, or OGG files and play slices chromatically via MIDI (starting at C3)
- **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
- **Tone shaping** -- Bass and treble controls
- **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 50% to 200%
## Building
Requires CMake 3.22+ and a C++17 compiler.
```sh
make fetch # Clone JUCE 8.0.9
make configure # CMake configure
make build # Build (Release)
```
### Installing
```sh
make install
```
Copies AU and VST3 to the system plugin directories and triggers an Audio Unit rescan.
### Clean
```sh
make clean
```
## 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 C3 triggers slice 0, C#3 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 |