Skip to content
Rewrite of Ninjas sample slicer
C++ C Other
Branch: master
Clone or download
Latest commit 449030c Aug 8, 2019

Ninjas 2

a 'Clearly Broken ™️' Sample Slicer

Rewrite of Ninjas, a sample slicer audio plugin. This plugin uses the DPF for the creation of audio plugins in lv2 and vst2 formats. A stand alone jack app is also compiled

Screenshot of Ninjas2


Easy to use sample slicer, quick slicing of sample and mapping slices to midi note numbers. The target platform is Linux.

Intended usage:

Primarily targeted at chopping up loops or short ( ≈ 10 - 20 seconds) samples. Think drum loops, vocal chops etc. Currently there's no limit on imported sample length. User can play the slices using midi notes and change the pitch with midi pitchbend.


  • Implemented:

    • load samples in audio formats as provided by libsndfile
    • load mp3
    • highlight slice when midi note is received
    • maximum of 128 slices
      • slices 0 to 67 are mapped to midi note 60 to 127
      • slices 68 to 127 are mapped to midi note 0 to 58
    • slices can me snapped to onsets as detected by aubio
    • each slice has ADSR
    • each slice has 4 playmodes :
      • one shot forward
      • one shot reverse
      • loop forward
      • loop reverse
    • pitching of samples (+/- 12 semitones) via midi pitchbend
    • user editable slice start and end points
      • note: slices can not overlap
      • dragging the top marker edits both start and end point, keeping the slices continuous
      • dragging the bottom markers edits the start or end point of a slice.
    • programs : store and retrieve up to 16 configurations of slices
      • normal click restores state
      • shift click copies current state to new location
    • play marker in waveform display
    • add/remove slices in waveform display : double click within 10 px of slice start/end to add or remove slice
  • To be implemented:

    • exponential curves in ADSR
    • adding a bar:beat:ticks ruler for easier lining up slice points
  • Possible features

    • timestretch and pitch samples using rubberband
    • overlay slice info on slices in waveform display
    • resizable user interface

Build instructions


  • libgl1-mesa-dev
  • libx11-dev
  • libsndfile1-dev
  • libsamplerate0-dev

If you want a standalone jack binary install either libjack-dev or libjack-jackd2-dev

git clone --recursive
cd ninjas2

There is no make install, binaries will appear in /path/to/ninjas2/bin/, just copy the binaries to an appropiate location.

Chat on Matrix Build Status

You can’t perform that action at this time.