clearly-broken-software / ninjas2

Rewrite of Ninjas sample slicer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

Goal:

Easy to use sample slicer, quick slicing of sample and auto-mapping slices to midi note numbers.

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.

Downloads:

Linux, Windows and Mac binaries for several architectures are available here. There are no installers, just unzip and copy the plugin to an appropiate location.

New Features

  • redesigned interface
    • controls are grouped in Global, Slicing and Slice
    • the Slice box shows the currently selected slice number
  • keyboard
    • click on key to play slice
    • red dot on key indicates which slice is currently selected in the waveform display
    • keys that don't have a slice mapped to them are greyed out

Known Bugs and limitations

  • some host don't work very well with the lv2 version
    • zrythm and qtractor had trouble with the lv2 version but worked fine with the vst
    • ardour, carla and muse3 worked well with the lv2
  • care should be taken when automating the playmodes and adsr
    • the automation is sent to the currently played note (slice), when multiple slices are played this leads to "undefinied behaviour"

Features:

  • Implemented:

    • load samples in audio formats as provided by libsndfile
    • load mp3
    • Ninjas2 is 128 voice polyphonic
    • 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
    • control for setting per slice pitch offset
  • Possibly implemented

Build instructions

Dependencies

  • 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 https://github.com/rghvdberg/ninjas2.git
cd ninjas2
make
make install (optional)

If you choose not to use the make install, you can copy the binaries from /path/to/ninjas2/bin/ to an appropiate location, typically ~/.vst or /usr/lib/vst on linux.


Chat on Matrix Build Status

About

Rewrite of Ninjas sample slicer

License:GNU General Public License v3.0


Languages

Language:C++ 68.3%Language:C 30.8%Language:Shell 0.6%Language:Makefile 0.3%