Skip to content

Latest commit

 

History

History
341 lines (217 loc) · 8.04 KB

DOCS.md

File metadata and controls

341 lines (217 loc) · 8.04 KB

c_robo_'s tidalvim setup

NOTES

on if you want to get this setup working

The documentation here is primarily meant for future me, though I might release a more polished config/package in the future.

If you do want to get this config working, reach out to me on one of my socials

on the prefix system

All commands besides the Top-Level bindings need to be prefixed with <space> before executing. If a command is listed as f, it really means actually <space> f.

You can press space twice to enclose the entire statement in parenthesies (Unless otherwise specified). For example <space> f gives you fast (2) $, then <space><space> f gives you (fast (2) $). This works for all commands besides top-level commands.

"block" = "paragraph"

"" = "Alt + s" " s" = "Alt + s, s"

Top-Level bindings

Sending Code and Commands

<c-l> - sends hovered block to tidal - works in modes: x n i

<c-m-l> - sends hush then sends hovered block to tidal - works in modes: x n i

<m-h> - sends hush to tidal - works in modes: x n i

<m-H> - sends streamHush tidal to tidal - stops tidal from sending any signals to external programs - stops pulu-clock - works in modes: x n i

<m-r> - resets global cycle counter

<c-k> - sends hovered line to tidal - works in modes: x n i

<c-m-k> - sends hush then sends hovered line to tidal - works in modes: x n i

<c-j> - the text highlighted by the next command will be sent to tidal - works in modes: x n i

<m-)> - sends all $ id to tidal - think of the binding more as "Alt+Shift+0"

<space> e<space> - resets global effects and clears effect string - (NOTE: please read the system explanation first)

<space> ee - re-evaluates current effect string - (NOTE: please read the system explanation first)

Only for use with tidal-looper <m-r> - Brings up the prompt "RecordingEval" for recording - Ex: if you hit <m-r>, input 7 (so the prompt reads :RecordingEval'r',7), then hit enter, the command rec 7 "rec" 0 will be sent to tidal - superdirt will record 7 cycles worth of mic-input and save it in a sample titled "rec" at sample-index 0 <m-m> - Brings up prompt "RecordingEval" for recording from a monitor of the system audio - (NOTE: requires the system audio monitor to be enabled and connected to inputs 2 and 3 of supercollider's audio-in) <m-p> - Brings up prompt "RecordingEval" for recording from a monitor of pulse audio - (NOTE: requires a pulseaudio monitor to be enabled and connected to inputs 4 and 5 of supercollider's audio-in)

Text Input/Traversal

<c-d> - Toggles NERDTree

<c-u> - u - can hold down ctrl while undoing in any mode

<c-r> - <esc><c-r>i - can hold down ctrl while redoing in insert mode

<m-d> - Jump forward to next instance of do and evaluates block <m-D> - Jump backward to next instance of do and evaluates block

L - Jump to next seperator - jumps forwards to $ # & and |+

H - Jump to previous seperator - jumps backwards to $ # & and |+

<m-1> - Jump forward to next instance of d1 and evaluates block <m-2> - Jump forward to next instance of d2 and evaluates block <m-3> - Jump forward to next instance of d2 and evaluates block .. (etc)

NOTE: <m-!> is the same as <m-S-1> (alt + shift + 1) <m-!> - Jump backward to next instance of d1 and evaluates block <m-@> - Jump backward to next instance of d2 and evaluates block <m-#> - Jump backward to next instance of d2 and evaluates block .. (etc)

<space-1> - Jumps to the mark stored at 1 (if it exists) and sends the block to tidal - NOTE: will jump across files <space-2> - Jumps to the mark stored at 2 (if it exists) and sends the block to tidal ... <space-9> - Jumps to the mark stored at 9 (if it exists) and sends the block to tidal

_ - in normal mode, inputs 0

_ - in normal mode, inputs 1

<backspace> - in normal mode, inputs ~

<m-backspace> - in normal mode, inputs (3,8,0)

Small Shortcuts/Changed Commands

o - Inserts newline and space below - space inserted so it doesn't jump back when returning to normal mode

O - Inserts newline and space above - space inserted so it doesn't jump back when returning to normal mode

<space> R - Brings up the prompt "InsRange" for inserting ranges of numbers - Ex: if you hit <space> R, input 7 (so the prompt reads :InsRange7), then hit enter, the numbers 0 through 8 will be typed from your cursor, with brackets around each number - [0] [1] [2] [3] [4] [5] [6] [7]

<space><space> R - Same as previous command, but the values are all wrapped in double quotes - "[0] [1] [2] [3] [4] [5] [6] [7]"

<c-w><c-e> - Saves and closes all open buffers, then exits vim


Global Tidal Effects:

System explanation

Global effects are stored in one long string of variables representing tidal functions and/or effects. Every character, upper and lowercase, has an associated variable of the form eff_?, where ? is a letter-character. The set of effect variables are defined in a tidal boot script. They must evaluate to an expression that can prefix a pattern, for example (fast 2), (# lpf ((1/8)*2000)), (& speed (7/8)), etc... (NOTE: not all possible effects are currently defined)

Effect strings end up looking like all $ eff_L . eff_i . id where eff_L might be (linger (1/8)) and eff_i might be (iter 4).

The bindings to add effects all take the form: <space> e_ where _ is any letter on the keyboard. This appends the effect to the end of the string and re-evaluates it.

If the string was originally all $ eff_L . eff_i . id, and I typed <space> ef, the new string would be all $ eff_L . eff_i . eff_f . id.

Since the effcts need to be defined in a bootfile, I can't enumerate what keys correspond to what functions here.

Global Tidal Effect Commands

Text Shortcuts

Pattern Function Bindings:

a - slice (4*8) (fast (4) $ "0 1 2 3 4 5 6 7"+"<0 8 16 24>") $

f - fast (1) $

s - slow (1) $

D - discretize (8) $

T - trigger (1) $

l - linger (8/8)

p - ply (1) $

c - chop (1) $

i - iter (1) $

d - degradeBy (4/8) $

b - shiftBy (1/8) $


Effect Bindings:

basic stuff

S - & speed (8/8)

G - & gain (8/8)

P - # pan (8/8)

A - # accelerate (8/8)

C - # cut (0)

O - # orbit (0)

U - # up (0)

envelope related

Ea - # att (8/8)

Eh - # hold (8/8)

Er - # rel (8/8)

Es - # sus (8/8)

filters

fl - # lpf ((8/8)*2000)

flr - # lresonance (8/8)

flq - # lpq (8/8)

fh - # hpf ((8/8)*2000)

fhr - # hresonance (8/8)

fhq - # hpq (8/8)

fb - # bpf ((8/8)*2000)

fbq - # bpfq (8/8)

fd - # djf ((8/8)*2000)

fv - # vowel "a"

delay/verb

rd - # delay (8/8)

rdt - # delayt (8/8)

rdf - # delayfb (8/8)

r - # room (8/8)

rs - # size (8/8)

rd - # size (8/8)

Distortions

ds - # shape (8/8)

dd - # distort (8/8)

dc - # crush (8/8)

do - # coarse (8/8)

dk - # krush (8/8)

dw - # waveloss (8/8)

dt - # triode (8/8)

db - # binshift (8/8)

Modulators

le - # leslie (8/8)

lr - # lrate (8/8)

ls - # lsize (8/8)

lt - # tremolo (8/8)

Object Bindings:

All of the form: <space> o_

where _ is one of s - sine _

q - square

c - cosine

t - tri

w - saw

a - rand

i - irand 8

e - envL

Alternatively, any binding can be prefixed with r (in the form of <space> or_) to prefix the object with range

range (1/8) (1) $ sine

Added Functions:

-- TODO: all the functions are pretty simple, -- But I still need to make docs for them

BindTidalEffect(effect,binding,prefix,...)