Audio setup old

From Things and Stuff Wiki
Jump to navigation Jump to search



Specific notes on my audio workflow.

General

  • MIDI hardware
    • Yamaha DJX
    • Korg Nanokontrol 2
    • Numark DJ2GO


  • Session management
    • Cadence
    • Non Session Manager
    • JACKPatch - NSM util to save jack patching
    • http://i3wm.org/docs/layout-saving.html - create layout, save to JSON, edit configs to uncomment/edit window title/class, restore from JSON


  • 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 additional input and output devices to jack
    • 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 'scene' changes
    • jack_midi_dump - another monitor, basic and quick to stdout


  • MIDI sequencing
    • sequencer64 - no MIDI record control (in dev) 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
    • CCStepper - no recording. Windows VST.


  • MIDI parts
    • Kick
    • Snare
    • Hi-hat
    • Other percussion
    • Bass
    • Phrase A
    • Phrase B
    • Phrase C
sequencer64 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


  • sequencer64 - 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 down - nano cc61 127
    • bpm up - nano cc62 127
    • 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?


to redo:

74      # MIDI controls count
0 [1 0   144   36   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
1 [1 0   144   44   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
2 [1 0   144   52   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
3 [1 0   144   60   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
4 [1 0   144   37   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
5 [1 0   144   45   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
6 [1 0   144   53   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
7 [1 0   144   61   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
8 [1 0   144   38   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
9 [1 0   144   46   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
10 [1 0   144  54    0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
11 [1 0   144   62   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
12 [1 0   144   39   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
13 [1 0   144   47   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
14 [1 0   144   55   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
15 [1 0   144   63   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
16 [1 0   144   40   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
17 [1 0   144   48   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
18 [1 0   144   56   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
19 [1 0   144   64   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
20 [1 0   144   41   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
21 [1 0   144   49   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
22 [1 0   144   57   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
23 [1 0   144   65   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
24 [1 0   144   42   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
25 [1 0   144   50   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
26 [1 0   144   58   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
27 [1 0   144   66   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
28 [1 0   144   43   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
29 [1 0   144   51   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
30 [1 0   144   59   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
31 [1 0   144   67   0   127] [0 0   0   0   0   0] [0 0   0   0   0   0]
# mute in group section: this doesn't work;
32 [1 0 144  36   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
33 [1 0 144  44   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
34 [1 0 144  52   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
35 [1 0 144  60   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
36 [1 0 144  37   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
37 [1 0 144  45   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
38 [1 0 144  53   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
39 [1 0 144  61   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
40 [1 0 144  38   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
41 [1 0 144  46   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
42  [1 0 144  54   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
43  [1 0 144  62   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
44  [1 0 144  39   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
45  [1 0 144  47   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
46  [1 0 144  55   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
47  [1 0 144  63   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
48  [1 0 144  40   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
49  [1 0 144  48   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
50  [1 0 144  56   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
51  [1 0 144  64   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
52  [1 0 144  41   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
53  [1 0 144  49   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
54  [1 0 144  57   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
55  [1 0 144  65   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
56  [1 0 144  42   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
57  [1 0 144  50   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
58  [1 0 144  58   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
59  [1 0 144  66   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
60  [1 0 144  43   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
61  [1 0 144  51   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
62  [1 0 144  59   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
63  [1 0 144  67   0 127] [0 0   0   0   0   0] [0 0   0   0   0   0]
# bpm up:
64 [0 0   0   0   0        0] [1 0   176   59   1   127] [0 0   0   0   0        0]
# bpm down:
65 [0 0   0   0   0        0] [1 0   176   58   1   127] [0 0   0   0   0        0]
# screen set up:
66 [0 0   0   0   0        0] [1 0   144   69   0   127] [0 0   0   0   0        0]
# screen set down:
67 [0 0   0   0   0        0] [1 0   144   68   0   127] [0 0   0   0   0        0]
# mod replace:
68 [0 0   0   0   0        0] [1 0   144   72   0   127] [1 0   128   72   0   127]
# mod snapshot:
69 [0 0   0   0   0        0] [1 0   144   73   0   127] [1 0   128   73   0   127]
# mod queue:
70 [0 0   0   0   0        0] [1 0   144   71   0   127] [1 0   128   71   0   127]
# mod gmute:
71 [0 0   0   0   0        0] [1 0   144   75   0   127] [1 0   128   75   0   127]
# mod glearn:
72 [0 0   0   0   0        0] [1 0   144   74   0   127] [1 0   128   74   0   127]
# screen set play:
73 [0 0   0   0   0        0] [1 0   144   70   0   127] [1 0   128   70   0   127]
# Extended MIDI controls:
# start playback (pause, start, stop):
74 [0 0   0   0   0   0] [0 0   0   0   0   0] [0 0   0   0   0   0]
# performance record:
75 [0 0   0   0   0   0] [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 [0 0   0   0   0   0] [0 0   0   0   0   0] [0 0   0   0   0   0]
# reserved for expansion:
78 [0 0   0   0   0   0] [0 0   0   0   0   0] [0 0   0   0   0   0]
# reserved for expansion:
79 [0 0   0   0   0   0] [0 0   0   0   0   0] [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


  • Drum synthesis
    • ErsDrums - win vst
    • Stegosaurus - lv2
    • KickMaker - kick, 4 sine osc+env. w/ out env. win vst.
    • TW-Opkicker - kick, win vst
    • TW-Percussion1 - monophonic
    • KMT2 - individual outs


  • Synths w/ host tempo sync
    • TheBlooo, TheScrooo, Diodow, Crystal, basic65, dlM entropy, TAL Noizemak3r, Infamous Cellular Automaton Synth, Eclipsis


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


  • Effects w/ host tempo sync
    • Delay: Calf Vintage Delay, Calf Reverse Delay, TAL-Dub-3, 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)
    • Gate: SuperCutSequencer, dfx skidder, de la Mancha moot, dlM gator, StormGate1, Gate3
    • Filter: 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, beatslash-lv2, InstaLooper, Tempo Sync Reverser


  • Audio mixing
    • StereoKnot - basic lv2 stereo mixer
    • LiveMixer - basic lv2 stereo mixer with 2 sends
    • AMS Stereo Mixer 8 channels - 8 mono to 1 stereo
    • Non Mixer - a JACK client for each mixer strip, effects available (see lv2 patched version)


  • To do
    • MIDI controlled MIDI routing/switching - mididings scenes
    • part/pattern progression switching - mididings scenes? seq64 mute groups?
    • part/channel preset switching


Session setup commands

cadence
  # gui, optional, easiest. input device can be entered manually if not autodetected.

# cadence-session-start -s
  # cadence script to start jackd, divert from pulseaudio, etc. might work for you.
    # if fails, try cadence-session-start --reset

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

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 python path/to/mididingsscript.py
  # MIDI routing

nsm-proxy xterm -e jack_midi_dump
  # MIDI monitoring

nsm-proxy nsm-sequencer64
  # via nsm-proxy, requires an empty midi file


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

Cannae

  • Cannot yet do/use
    • MIDI controlled MIDI looping - no software good enough yet, would allow live loop of mute and effect changes
      • sequencer64 - no MIDI start/stop/arm.
      • Giada - audio/midi looping - problems between nanoKONTROL2s no button off note off CC and parameter scales. 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
      • 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 :(