Audio setup

From Things and Stuff Wiki
Jump to: navigation, search

Things and Stuff Wiki - an organically evolving knowledge base personal wiki with a totally on-the-fly taxonomy containing topic outlines, descriptions and breadcrumbs, with links to sites, systems, software, manuals, organisations, people, articles, guides, slides, papers, books, comments, screencasts, webcasts, scratchpads and more. use the Table of Contents for navigation on longer pages. probably not that mobile friendly atm. see About for further information. / et / em

Specific notes on my Linux audio workflow.

What do I like to do?

  • All controller and keyboard, no mouse interaction
  • Live recording and looping of MIDI patterns to a click track
  • Generation of MIDI patterns
  • Dynamic MIDI routing
  • MIDI automation/apreggiation
  • MIDI velocity scale
  • MIDI gating
  • MIDI delay/loop
  • MIDI swing/groove
  • MIDI key change
  • MIDI scale alteration/filtering
  • MIDI chord generation
  • Soundfonts and sample bank synthesis
  • Drum, bass, pad and lead synthesis
  • Audio FX - gating, reverb, delay, distortion, filters, etc.
  • Synchronised audio loop capture and loop FX
  • Have a system that is expressive enough for both live and studio use
  • Have a system that is quick to navigate and configure a workflow in
  • Have a system with robust session management
  • Ideally touching no Win VST

MIDI control hardware

  • Yamaha DJX
  • Korg Nanokontrol 2
  • Numark DJ2GO
  • MIDI to USB adapter for DJX
  • QWERTY keyboard to MIDI via midikb


Audio setup

  • Audio systems
    • ALSA
    • PulseAudio - sending PA app outputs to jack sinks
    • JACK - jackd 2, multiprocessor, D-Bus enabled
    • Cadence - good JACK configuration utility, automatic ALSA/PulseAudio/MIDI bridging
cadence
  # JACK config and start/stop

non-session-manager -- --session-root ~/audio/NSM
  # same session root directory for all projects
  # alias the command "nsm" for this, starting in a terminal for output/error messages


Session management

  • Non Session Manager
    • buggy but works.
    • JACKPatch - NSM tool to save JACK patch connections - known to loose configuration when programs crash
jackpatch
  # nsm specific util to save and restore jack connections
  # can occasionally bugs out and lose settings on some systems

From the commandline, in the project directory

aj-snapshot projectname.aj.bak
  # backup JACK connection snapshot as JACKPatch can lose its memory on a bad crash or accidental NSM entry removal
  • Carla
    • Can start/stop JACK engine
    • Provisional JACK app launcher - buggy, not enough ports can be exposed.
    • Catia

Hosts and routing

  • Carla - plugin host and graph patcher
    • LV2, LASDSPA, DSSI, Linux/Win VST
    • plugin tempo sync
    • internal/external Patchbay - buggy, no grid
    • MIDI automation CC per parameter but no MIDI learn
    • no channel strips
  • Patchage - JACK/ALSA patchbay - same graph engine as Ingen
    • Looks better than Catia, though Carla has an internal rack patchbay view
  • Ingen - modular host with internal units and inline LV2 plugins, MIDI learn
    • no channel strips
    • needs webkitgtk, which doesn't have an Arch binary package and takes more than a day to build
  • Qtractor - plugin host and channel routing
    • SDI interface is hard to work with
  • Ardour - plugin host and channel routing
    • very good channels/routing
    • no tempo change on JACK Transport tempo change
  • Non Mixer - modular mixer with MIDI2OSC learn
    • LV2 hosting with falktx fork
    • mixer format so automatic channel strips
    • interface is slow to work with
  • alsa_in/alsa_out - for adding to JACK additional input and output devices beyond the primary sound device
carla
  # plugin host

nsm-proxy patchage -A
  # GUI patch graph manager, less frustrating than that of Carla
  # via nsm-proxy for the -A argument to not load ALSA
  # Ctrl-g to sort, Ctrl-f to fit-to-screen zoom

( 
 nsm-proxy nsm-ingen
   # via nsm-proxy, hack of sequencer64 script above, copies in a blank project, starts ingen modular host engine and gui
   # ingen -eg project.ingen
)

(
 nsm-proxy alsa_out -j "USB Out 1" -d hw:5 -q 1 2>&1 1> /dev/null &
 nsm-proxy alsa_out -j "USB Out 2" -d hw:6 -q 1 2>&1 1> /dev/null &
   # additional 2 stereo outputs, USB soundcards for DJ main and headphone
)


Live recording and looping of MIDI

Software options:

  • sequencer64 - no MIDI record control or MIDI learn
  • harmonySEQ - no recording. sequences and LFOs with multiple patterns, MIDI learn for: sequence toggle/one-shot, note/chord/octave change, pattern change, tempo and sequence sync.
  • Multi-Arp - ncurses MIDI looper, beta, TUI with typed commands
  • Giada - MIDI/audio looper, limited MIDI mapping


nsm-proxy nsm-seq64
  # via nsm-proxy, requires an empty midi file
  # make sure set to jack transport master


  • seq64 - beta features
    • variset feature (commandline flag) - allows larger set sizes/dimensions
    • indep mainwids feature - allows viewing three sets at a time
  • seq64 - part/pattern progression layout and switching process
    • follows a mostly vertical direction
      • how is set play meant to work? move up/down in column feature request? manual.


  • seq64 - MIDI hardware mapping to seq64 MIDI control - see Audio#sequencer64
    • start -
    • stop - nano stop - cc42
    • pause (stop/start toggle) - nano play - cc41
    • screen-set up - nano marker > - cc 62
    • screen-set down - nano marker < - cc 61
    • screen-set play - nano marker set - cc 60
    • bpm page down - dj2go left jog - cc#25 - value 127
    • bpm page up - dj2go left jog - cc#25 - value 1
    • mod thru toggle/on/off -
    • mod record -
    • mod queue - b4
    • mod solo toggle/on/off
    • mod replace - c5
    • mod snapshot - c#5
    • mod group learn - d5
    • mod group mute select - d#5
    • pattern toggle - 0-31 in sequencer64 - c2 (32)-g4

Key for configuration syntax:

[OPR INV STAT D1 D2min D2max] (toggle / enable / disable), where;

  • OPR=on/off
  • INV=inverse
  • STAT=MIDI status byte(channel ignored)
  • D1=data1
  • D2min=data2 min
  • D2max=data2 max

to redo:

# bpm up:
64 [0 0   0   0   0   0] [1 0 176  24   0   2] [0 0   0   0   0   0]
# bpm down:
65 [0 0   0   0   0   0] [1 0 176  24   3 127] [0 0   0   0   0   0]
# screen set up:
66 [0 0   0   0   0   0] [1 0 176  62   1 127] [0 0   0   0   0   0]
# screen set down:
67 [0 0   0   0   0   0] [1 0 176  61   1 127] [0 0   0   0   0   0]
# mod replace:
68 [0 0   0   0   0   0] [0 0   0   0   0   0] [0 0   0   0   0   0]
# mod snapshot:
69 [0 0   0   0   0   0] [0 0   0   0   0   0] [0 0   0   0   0   0]
# mod queue:
70 [0 0   0   0   0   0] [0 0   0   0   0   0] [0 0   0   0   0   0]
# mod gmute:
71 [0 0   0   0   0   0] [0 0   0   0   0   0] [0 0   0   0   0   0]
# mod glearn:
72 [0 0   0   0   0   0] [0 0   0   0   0   0] [0 0   0   0   0   0]
# screen set play:
73 [0 0   0   0   0   0] [1 0 176  60   1 127] [0 0   0   0   0   0]
# Extended MIDI controls:
# start playback (pause, start, stop):
74 [1 0 176  41   1 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
# performance record:
75 [1 0 176  45   1 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
# solo (toggle, on, off):
76 [0 0   0   0   0   0] [0 0   0   0   0   0] [0 0   0   0   0   0]
# MIDI THRU (toggle, on, off):
77 [1 0 176  44   1 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
# bpm page up:
78 [0 0   0   0   0   0] [1 0 176  25   0   2] [0 0   0   0   0   0]
# bpm page down:
79 [0 0   0   0   0   0] [1 0 176  25   3 127] [0 0   0   0   0   0]
# reserved for expansion:
80 [0 0   0   0   0   0] [0 0   0   0   0   0] [0 0   0   0   0   0]
# reserved for expansion:
81 [0 0   0   0   0   0] [0 0   0   0   0   0] [0 0   0   0   0   0]
# reserved for expansion:
82 [0 0   0   0   0   0] [0 0   0   0   0   0] [0 0   0   0   0   0]
# reserved for expansion:
83 [0 0   0   0   0   0] [0 0   0   0   0   0] [0 0   0   0   0   0]


seq64 pattern GUI layout:
Kick Kit Perc Bass Pad Phrase A 1 Phrase B 1 Phrase C 1
Kick Kit Perc Bass Pad Phrase A 1 Phrase B 1 Phrase C 1
Kick Kit Perc Bass Pad Phrase A 1 Phrase B 1 Phrase C 1
Kick Kit Perc Bass Pad Phrase A 1 Phrase B 1 Phrase C 1


Channel and output conventions:

  • Drums: output 1, channel 10
  • Bass: output 2
  • Pad: output 3
  • Lead: output 4


  • midifilter.lv2: MIDI Duplicate Blocker - for live vs. seq64 notes


Generation of MIDI patterns

See also Audio#Algorithmic / generative

  • MIDI generator, related to fractions of bpm
    • either momentary or toggled.
    • passing beats between parts


  • harmonyseq can be used to map MIDI events to one shot or repeating notes/chords/patterns, hard to send the tempo float over osc to....



Dynamic MIDI routing

  • a2jmidid - via Cadence, as jackd 2 doesn't do the Metadata API yet so hardware interface names are opaque.
  • mididings - filtering, scripting, switching via 'scenes' and MIDI program change messages. m_mididings.py
  • jack_midi_dump - MIDI monitor, prints to terminal stdout.
  • moony.lv2
nsm-proxy a2jmidid -eu
  # because cadence misses -u arg

nsm-proxy mididings -f path/to/m_control.py [2]
  # 

nsm-proxy livedings -l 56801 -p 56800 -T -f "Sans 22 bold" -F "Sans 22 bold" -w 50 -n "control"

nsm-proxy mididings -f path/to/m_drums.py [3]
  # drum selection. to redo.

nsm-proxy livedings -T -f "Sans 22 bold" -F "Sans 22 bold"

nsm-proxy xterm -e jack_midi_dump
  # MIDI monitoring


  • toggle between sequencer64 controls and playing notes/chords - e5?
  • mididings scene mod between toggle and on and off?


  • MIDI controlled MIDI routing/switching using mididings scenes
    • find a better workflow
    • use cc toggle more? (overtone nanokontrol 2 config?)
    • need "if note held, this, else"?
    • scenes for
      • nano control of seq64 horizontal column level selection?
      • delay sends - function key select scene, nano buttons to send, nano rotary for feedback? nano cycle to toggle momentary or toggled send
      • gate/lfo sends - function key select scene, nano buttons to send, nano rotary for level, nano cycle to toggle momentary or toggled send
      • drum midi receive select, allows one/some/all.
        • mididings outputs for ersdrums, drum kit sf, drmr - scenes: ersdrums, kit, drmr, ersdrums+drmr, ersdrums+kit, ersdrums+kit+drmr
    • harmonic control
      • set the key - kick/bass/synth
      • play various kinds of chord progressions - synth



  • MIDI filtering
    • midifilter.lv2: ScaleCC - scale CC range sent to delay down for easier time sync length selection
    • midifilter.lv2: MIDI Note to CC
  • MIDI Sostenuto
  • midiFingered - Selectively sends standard portamento on/off CC messages to emulate "fingered portamento" for synths that don't have it. For this to work, the target instrument must have a portamento on/off switch that responds to CC 65.
  • midi16CCRouter - Changes up to 16 CCs to 16 other CCs. Optionally responds to Program Change.

to sort:

  • midiChannelize - Transforms everything to the selected channel. When set to "No Change" the plugin will have no effect.


  • midiAlias - Note values are reflected between a "Nyquist Note" and a "Zero Note," similar to the effect of audio sample aliasing.


  • AudioToCC - Converts audio amplitude (RMS) to CC messages.

MIDI automation/apreggiation

  • arpage - MIDI Arpeggiator w/ JACK Transport tempo dync
  • QMidiArp - an advanced MIDI arpeggiator, programmable step sequencer and LFO
  • Hypercyclic - no Jack Transport sync
  • midiCCModulator - Use one CC to modulate another CC (or note velocity) in various ways.
  • midiSimpleLFO - One CC LFO with some "simple" options.
  • midiCCReset - Remembers CC values and sends them out again at selected times.

MIDI velocity scale


MIDI gating

  • Piz midiCCToggle - For changing momentary CC buttons into toggles.
  • SuperCutSequencer - Cut "On/Off" Sequencer (8 steps with smooth) synced to Midi-Clock Beats and Midi-Clock Start/Stop


MIDI delay/loop


MIDI swing/groove

  • midiSwing - Delays and/or offsets velocity of and applies probability to notes (and optionally also CCs) at every other step of a selected note value.
  • midiProbability


MIDI key transpose


MIDI scale alteration/filtering


MIDI chord split

  • midiChordSplit
  • chordemux - a MIDI filter/router utility which receives chords on its input channel, routes chords' notes to different channels depending on chord type and inversion
  • midiPolyphony


  • Note2CC
  • midiConverter3 - Change and convert between CC, Channel Pressure, Poly Aftertouch, Program Change, Pitch Bend, NRPN/RPN, Note On/Off, and other messages in various ways. Pitch Bend and (N)RPN conversions will use the full 14-bit values when possible.


MIDI chord generation

  • MIDI Chord - Harmonizer - midifilter.lv2
  • tonespace - standalone, VST
  • Piz midiChordHold - ??



Soundfont and sample bank synthesis

For velocity layers: Hydrogen, DrMr, DrumGizmo, Fabla2, avldrums

  • Sampler (live)
    • Fabla2
  • Samplers (file based)
    • samplv1 - one sample, various pitches. effects but no sample editing.
    • drumkv1 - many samples, one pitch. effects but no sample editing.
  • Sample slicing
    • shuriken - file based beat slicer, MIDI controllable, soundfont generator. no MP3.
    • freecycle - file based beat slicer
  • Soundfont hosts
    • Carla - sf2/sfz/gig host (compiled in fluidsynth backend)
    • DrMr - Hydrogen kit based sampler, 16 voices - LV2
    • DrumGizmo - drumgizmo format
    • avldrums.lv2 - self-contained soundfonts; Red Zeppelin stereo, Red Zeppelin multi-out, Black Pearl stereo, Black Pearl multi-out - LV2
    • Konfyt - additional soundfont and performance management, uses Carla (fluidsynth) as backend
    • SFZero - untested
    • Hydrogen - multilayer


Drum synthesis

  • Metronome
    • Bleep - synth, seq64 clicktrack


  • Mixed drum synth
    • Stegosaurus - LV2 - hard to use, kick: c4, snare: d4, closed hat: e4, open hat: f4
    • DrumSynth - LV2/VST - 32 voices polyphonic, 24 drum notes, 1 tone with sweep, 2 overtones, 2 overtones, envelope editor, midi automatable with learn function
    • Rudolf 556 - LV2 - old [5]
    • Smack - Ladspa - deps: Ingen, om, omins, and blop, cmt, and swh


  • Single drum synth - Win VST
    • TW-Opkicker - kick drum
    • TW-Percussion1 - 2.5 osc, various presets
    • KickMaker - kick drum, 4 osc+envelope plus output envelope - Windows VST. Linux build?
  • Mixed drum synth - Win VST
    • ErsDrums - drum machine, phat, track mono/stereo and stereo out options
    • KMT2 - 8 voices, individual outs, sensitive controls

Bass, pad and lead synthesis

  • Synths
    • ZynAddSubFX - good, no host tempo sync yet [6][7] - LV2
    • ObXd - nice. Oberheim OB-X
    • Dexed - Yamaha DX7
    • Tyrell N6
    • setBfree - A DSP Tonewheel Organ emulator
  • Synths w/ host tempo sync
    • TAL Noizemak3r - nice - LV2
    • triceratops - LV2
    • Infamous Cellular Automaton Synth - LV2
    • synthv1 - standalone, LV2
    • PHASEX - standalone


  • Synths w/ host tempo sync - Win VST
    • basic65 - chip tune
    • Crystal - pad
    • Diodow - atmospheric
    • dlM entropy
    • TheBlooo, TheScrooo


Audio routing

  • Audio mixing
    • MixerStereoEight - 16 ins and outs, 8 stereo channel control
      • AVL Drums Multi out control
    • m_mixer_S4toS32 [8] - lv2, 4 stereo to 8 stereo sends each - for fx sends
    • AMS Stereo Mixer 8 channels (alsa modular) - lv2, 8 mono to l/r stereo
    • AMS Stereo Mixer 2 channels (alsa modular) - lv2, 2 mono to l/r stereo mixdown

Used: MixerStereoEight to AMS Stereo Mixer 2 channel


  • Audio routing hardware control
    • nano2 faders / solos
    • dj2go master vol - master vol out
    • QWERTY keyboards (main for seq64 and secondary via midikb)


  • Mechanism with hotkeys for general mute (+volume?) groups
    • drums
    • synths
    • effects


  • Mechanism with hotkeys for effect send trigger/application
    • Seq64 patterns for effect automation
    • audio level fade change cc pattern


  • Visualisation
    • x42 Stereo/Frequency Scope


  • Ardour channels as hosts has bugs, see section below


Audio FX

  • gating, reverb, delay, distortion, filters, etc.


todo:

  • box off an fx plugin rack
    • delay - cc range filter/alter for fine synced delay time control - tal dub - better plugin for delay time sync (options as spectrum of length, not grouped)?
    • gate -
    • eq - dj hi/low pass? - dj2go three faders for low mid hi. eq over master out?
    • filter -
    • autopanner -
    • fuck shit up plugin - anarchy rhythms?


  • Metronome - seq64 will have one soon
    • JVMetro - visual
    • something for extended section length


  • Reverb
    • mverb - lv2
    • Tal-Reverb-III - all plate reverbs


  • EQ
    • x42-eq - LV2
    • Lv2fil - Stereo and mono LV2 plugins, four-band parametric equalisers
    • HiLoFilter - vst


  • Gate
    • mda Dynamics - lv2, vst
    • GT10QM / GT10QS - lv2
  • Gates with host tempo sync
    • SuperCutSequencer - carla doesn't load? - LV2
    • dfx skidder - fun but tempo sync doesn't work properly - Win VST
    • dlM moot - Win VST
    • StormGate1 - Win VST
    • dlM gator - meh? - Win VST
    • gate3 - meh? - Win VST


  • Delays with host tempo sync:
    • TAL-Dub-3 - LV2
    • Anarchy Rhythms - Win VST
    • Calf Vintage Delay, Calf Reverse Delay, ZamDelay (mono), Della (mono), Leet Delay 2 (Win VST), TigerDelay (Win VST), Spaceship Delay (Win VST), PPD Echobox (Win VST), Tapatiki (Win VST), Delazi (Win VST), Rubbadub (Win VST), KR-Delay FS, SoundHack +delay (Win VST)


  • Filters
    • TAL-Filter-2 (filter) - LV2
    • ams-lv2, avw.lv2, Fomp, BLOP
    • mda: Re-Psycho! - Drum loop pitch changer, RezFilter - Resonant filter with LFO and envelope follower, Round Panner - 3D panner
    • Channelswap, MAutopan, Spectral Autopan
    • Ducka (side-chain envelope), ndcTrem+ (tremelo), dlM bent (desync), Masha (beat grinder), dfx buffer override (stutter), dlM thrummaschine (distortion) Kitchen Sync (complex LFO), The Modulator 2 (amplitude/ring/frequency modulation), dlM sfilter (sequenced filter), dlM pfilter (probabalistic filter), dlM manic (glitch sampler), Livecut (glitch), Muchacho (stutter), Phase Seq (glitch), dlM truc/2 (multi), Frakture (multi), Hysteresis (multi)
    • kn0ck0ut-LV2 - an LV2 plugin to perform spectral subtraction. It can be used to achieve a wide variety of effects, most notably removing or extracting the center of a two channel audio file. As Kn0ck0ut is only a plugin, you will need a host for LV2 plugins in order to use it, such as Ardour, Qtractor, Ingen, jalv, lv2_jack_host, or lv2file.
    • ArtyFX
    • rkrlv2


  • Pitch shifting:
    • talentedhack
    • x42-autotune (fat1.lv2)
    • TAL-Vocoder
    • VocProc
    • mod-pitchshifter
    • lv2vocoder
  • Distortion
    • mod-distortion
    • gx_vobtb.lv2 - fuzzbox
    • deteriorate-lv2
    • Deathcrush
    • bitfilter.lv2
    • bitrot


  • Granular
    • Argotlunar - tempo sync, multiplatform VST
    • grANALiser - Windows VST
    • 23_words - Host-synced randomised sample player/modulator. Windows VST
    • Muchacha - Applies David Haupt's granulator to clock-synced probability sequencer. Windows VST


  • Looping
    • SuperBeatRepeater - Carla doesn't see?
    • beatslash-lv2
    • InstaLooper - vst
    • Tempo Sync Reverser
    • SooperLooper - larger, proper
    • Luppp - Ardour-like


  • Compression
    • Radium Compressor - over master out
    • New Visual Compressor - LV2

Synchronised audio loop capture/FX

Structures

ABAC, etc. with length and intensity as a varying state.

AB either harmonic relation or on/off.


Kick

  • 4/4 - variations of
  • Swung / offbeat
  • Matching bass

Bass

  • 8 beats one tone, 8 another
  • 64 beats one tone, 64 another


Bugs

(and nitpicks)

  • Cannot yet do/use/is annoying
    • Session management
      • NSM - undeveloped UI, can't delete/move/rename sessions, no delete confirmation, new session/client button confusion, nsm-proxy doesn't save label first time. no jackpatch connection state file save/argument, loses states on bad crash. mostly does its job though..
      • i3 - working towards a sound layout save and restore process..
      • Carla - plugin state has to be manually loaded, plugin windows need to be manually opened (nsm?) [9]
      • Carla - takes a while to close [10]
      • Carla - no NSM portability yet [11]
    • Routing
      • jack2 - lacks Metadata API so no pretty device port names [12]
      • Patchage - doesn't auto-refresh when a client changes input/output ports.
      • Carla - crashes after a plugin is renamed [13]
      • Carla - has a max plugin instantiation limit of 10s, ErsDrums loads only 50% of the time depending on load
      • Carla - cannot reorder/group plugins in rack [14]
    • MIDI
      • MIDI controlled MIDI looping - no software good enough enough yet, would allow live loop of mute and effect changes. seq64 is closest.
      • sequencer64 - no MIDI start/stop/arm just yet [15].
      • sequencer64 - can't change BPM whilst running yet [16].
      • sequencer64 - can't see if text field is active or button is selected (accidental space) in editor window
      • Giada - audio/midi looping - problems between nanoKONTROL2s no button off note off CC and parameter scales [17]. fiddly midi control; learn but no 'mod' like sequencer64, i.e., no MIDI 'channel' (sample/sequence) select or channel groups - every item requires unique MIDI CCs and learns for each of it's functions.
    • External interactive tempo changes
      • klick doesn't do JACK transport and OSC mode (from gtklick) at same time [18]
      • Jack Director only has set bpm presets triggerable by midi
      • InConcert doesn't take external input or display bpm, crashes often
    • DAW
      • LMMS - no LinuxVST or LV2 [19]
      • Qtractor - doesn't see some VSTs linked by Airwave..
      • Qtractor - plugin MIDI ports are exposed through jack "system" block?! name is unuseful "midi_playback_13"
      • Qtractor - clicking on a bus option bus not changing it, then clicking another bus prompts to save (no) change
      • Qtractor - ERSDrums - on a MIDI track and no audio outs, on a Audio track and no MIDI ins?
      • Ardour - can't undo various tasks
      • Ardour - "Add New Subgroup Buss" doesn't work
      • Ardour - can't create busses in routing page
      • Ardour - plugin output channel numbering reversed/whack! (ERSDrums at least)?
      • Ardour - no virtual piano to plugin MIDI input for testing
      • Ardour - metronome is a fixed pattern, faster would enable quicker beatmatching with external source [20]
      • Ardour - no VST tempo sync? :( [21]
      • Ardour - no Jack tempo sync! [22] also no MIDI Clock sync [23]
      • Ardour or sequencer64 - with seq64 as Jack Transport Masteer, Ardour starts but doesn't use the correct tempo
    • Synthesis
      • ZynAddSubFX / Yoshimi - no host tempo sync for lfo/etc. [24] [25]
    • Samples
      • petri-foo - broken, always starts from 0 :(
      • Shuriken - no mp3 at least until the end of 2017 due to patents [26] [27]
      • Shuriken - playback line position becomes incorrect after change to/from Zoom Original scale [28]
      • Shuriken - cannot zoom in after enabling or disabling Slice [29]
      • Shuriken - sometimes crashes when rearranging samples [30]
      • Shuriken - major problems with Export As... feature [31]