Audio setup old

From Things and Stuff Wiki
Jump to navigation Jump to search



Specific notes on my audio workflow.

Hardware

  • MIDI hardware
    • Yamaha DJX
    • Korg Nanokontrol 2
    • Numark DJ2GO
    • MIDI to USB adapter for DJX

Software

  • Session management
    • Cadence
    • Non Session Manager
    • JACKPatch - NSM tool to save JACK patch connections
    • i3 - dynamic tiling window manager with i3 layout saving features, automatic session save with i3session


  • Audio systems, routing and hosts
    • ALSA
    • JACK - jackd 2, multiprocess, gui config via dbus. to try jackd 1 for speed later.
    • alsa_in/alsa_out - for adding to JACK additional input and output devices beyond the primary sound device.
    • Patchage - JACK/ALSA patchbay.
    • Carla - plugin host (LV2, LASDSPA, DSSI, Linux/Windows VST). MIDI automation CC per parameter.
    • (Ingen - plugin host (LV2) and patcher. MIDI learn.)


  • MIDI routing
    • a2jmidid - via Cadence, as jackd 2 doesn't do the Metadata API yet.
    • mididings - filtering, scripting, switching via 'scenes' and MIDI program change messages. m_mididings.py
    • jack_midi_dump - MIDI monitor, prints to terminal stdout.
    • midifilter.lv2: ScaleCC - scale CC range sent to delay down for easier time sync length selection
    • midifilter.lv2: MIDI Note to CC - note to CC
    • midifilter.lv2: MIDI Duplicate Blocker - for live vs. seq64 notes
    • Piz: midiProgramChange - from the above to mididings for scene changes
    • Piz: midiCCToggle - momentary to toggle
  • MIDI sequencing
    • sequencer64 - no MIDI record control (in dev) or MIDI learn. use wip branch where these are/will be implemented.
    • 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.
    • CCStepper - 64 steps max, no recording. Windows VST.

Arrangement

  • MIDI parts
    • Kick - channel 10
    • Snare - channel 10
    • Other percussion - channel 10
    • Hi-hat / crash - channel 10
    • Bass - channel 1
    • Phrase A - channel 2
    • Phrase B - channel 3
    • Phrase C - channel 4
seq64 pattern GUI layout:
Kick 1 Snare 1 Hi-hat 1 Perc. 1 Bass 1 Phrase A 1 Phrase B 1 Phrase C 1
Kick 2 Snare 2 Hi-hat 2 Perc. 2 Bass 2 Phrase A 2 Phrase B 2 Phrase C 2
Kick FX 1 Snare FX 1 Hi-hat FX 1 Perc. FX 1 Bass FX 1 Phrase A FX 1 Phrase B FX 1 Phrase C FX 1
Kick FX 2 Snare FX 2 Hi-hat FX 2 Perc. FX 2 Bass FX 2 Phrase A FX 2 Phrase B FX 2 Phrase C FX 2


Routing

Synthesis

  • Metronome
    • Bleep - synth, seq64 clicktrack
  • Single drum synth
    • KickMaker - kick drum, 4 osc+envelope plus output envelope - Win VST
    • TW-Opkicker - kick drum, Win VST
    • TW-Percussion1 - 2.5 osc, various presets - Win VST
  • Mixed drum synth
    • ErsDrums - drum machine, phat, track mono/stereo and stereo out options - Win VST
    • KMT2 - 8 voices, individual outs, sensitive controls - Win VST
    • Stegosaurus - hard to use, kick: c4, snare: d4, closed hat: e4, open hat: f4 - LV2
  • Drum soundfont
    • avldrums.lv2 - self-contained soundfont - LV2
    • DrMr - Hydrogen kit based sampler, 16 voices - LV2
  • Synths
    • ZynAddSubFX - good
    • 0bxd - nice
    • Wollo Drone - pad
  • Synths w/ host tempo sync
    • TAL Noizemak3r - nice - LV2
    • basic65 - chip tune - Win VST
    • Crystal - pad - Win VST
    • Diodow - atmospheric - Win VST
    • dlM entropy - Win VST
    • TheBlooo, TheScrooo, Infamous Cellular Automaton Synth


  • Samples
    • drumkv1 - file based sampler
    • shuriken - file based beat slicer. no MP3.
    • freeycle - file based beat slicer


  • Visualisation
    • xjackfreak


  • Audio mixing
    • m_mixer_S4toS32 [1] - lv2, 4 stereo to 8 stereo sends each - for fx sends
    • AMS Stereo Mixer 8 channels (alsa modular) - 8 mono to l/r stereo - for fx returns

Effects

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


Effects w/ host tempo sync:

  • Gates
    • 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
    • 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
    • Channelswap, MAutopan, MFlanger, MFreqShifter, Ducka (side-chain envelope), TAL-Filter-2 (filter), 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)


  • Granular
    • Argotlunar
    • grANALiser
    • 23_words
    • Muchacha


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

MIDI mapping

  • seq64 - MIDI control config - keyboard mapping - 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
    • toggle between sequencer64 controls and playing notes/chords - e5?
    • mididings scene mod between toggle and on and off?

[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]


  • MIDI automation
    • arpage
    • QMidiArp
    • Hypercyclic
    • BlueARP - Win VST
    • RandARP - Win VST
    • arp4midi - Win VST


  • Audio routing
    • dj2go master vol - master vol out


To do

  • mapping computer keyboard to MIDI keyboard for more than just seq64 use - midikb
  • MIDI controlled MIDI routing/switching - mididings scenes
    • move individual midi filter plugins into mididings?
    • use cc toggle more? (overtone nanokontrol 2 config?)
    • need "if note held, this, else"?
    • scenes for
      • seq horizontal column levels
      • 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
  • part/pattern progression switching - seq64 vertical columns and sets, with mute groups
    • part/channel preset switching - set play? move up/down in column feature request? manual.
  • pick an fx plugin rack
    • delay - cc range filter/alter for fine synced delay time control - tal dub
    • pick reverb plugin - use/make nice presets - mverb?
    • pick gate -
    • pick eq - dj hi/low pass? - dj2go three faders for low mid hi
    • pick filter -
    • pick fuck shit up - anarchy rhythms?
    • pick a metronome -
  • audio level change cc sequences - bottom 2 sequence columns

Session setup commands

cadence
#todo - non-gui start
# cadence-pulse2jack
# pacmd set-default-source jack_in && pacmd set-default-sink jack_out
non-session-manager -- --session-root path_to/NSM_projects_root
  # i.e. non-session-manager -- --session-root ~/audio/NSM
  # same session root for all projects
  # i  alias 'nsm' for this

NSM entries:

jackpatch
  # nsm specific util to save and restore jack connections

nsm-proxy a2jmidid -eu
  # because cadence never managed to autostart this and misses -u arg anyway

nsm-proxy patchage -A
  # connection manager gui. ctrl-g, ctrl-f to sort connections
  # via nsm-proxy for the -A argument to not load ALSA

carla
  # plugin host

nsm-proxy mididings -f path/to/mididingsscript.py [2]
  # MIDI routing

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

nsm-proxy xterm -e jack_midi_dump
  # MIDI monitoring

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

radium_compressor

xjackfreak

( optional
 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
)

( optional
 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
)
aj-snapshot projectname.aj.bak

Bugs

  • 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?) [3]
      • Carla - takes a while to close [4]
      • Carla - no NSM portability yet [5]
    • Routing
      • jack2 - lacks Metadata API so no pretty device port names [6]
      • Carla - crashes after a plugin is renamed [7]
      • Carla - has a max plugin instantiation limit of 10s, ErsDrums loads only 50% of the time depending on load
      • Carla - one has to load a
    • MIDI controlled MIDI looping - no software good enough yet, would allow live loop of mute and effect changes
      • sequencer64 - no MIDI start/stop/arm just yet [8]. can't change BPM whilst running yet [9].
      • Giada - audio/midi looping - problems between nanoKONTROL2s no button off note off CC and parameter scales [10]. 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 [11]
      • Jack Director only has set bpm presets triggerable by midi
      • InConcert doesn't take external input or display bpm, crashes often
    • Samples
      • petri-foo - broken, always starts from 0 :(
      • Specimin - no mp3 at least until the end of 2017 due to patents