Yggdrasil is a norns cyberdeck tracker — an instrument designed to be performed with a keyboard only. "Slots" are the nucleic acids of Yggdrasil, while "commands" and "interactions" are the twin helixes of the human-machine interface. Toggling Y Mode remaps the alpha-numerics, unlocking expressive performance gestures. Capital letters are not used and modifier keys only sparingly. Where other languages use may use commas or parenthesis, Yggdrasil favors the ;
character for its position under the little finger: economic, ergonomic, exegesis.
Neurotically focused on their endless descent, slots are stacked into tracks of different heights, like so many stalactites reaching into the terminal darkness below. Slots can contain up to one each of: note, sample, velocity, and phenomenon. Slots contain two "macro control" values that range from 0 - 99. Phenomena allow for exotic events such as randomizers, "goto" events, and directional toggles.
Commands are built from the letters, numbers, and symbols that appear in the terminal as you type. Commands let you do things like create musical patterns, change notes, control playback, adjust tempo, and route tracks to different MIDI channels.
Commands that start with two numbers operate on a single slot.
Commands that start with one number operate on an entire track.
Commands that do not start with a number operate across all tracks.
Signatures | Examples |
---|---|
X Y COMMAND;VALUE |
2 4 arp;2 |
X COMMAND;VALUE |
1 arp;2 |
COMMAND;VALUE |
unmute |
These leading numbers correspond to X
and Y
coordinates, respectively. Most commands have both verbose and terse invocations. For example arpeggios can be invoked not only with arpeggio
but also with arp
and a
. All commands are executed with the ↵ / return / enter key.
Interactions are simply "everything else" you do with the keyboard; our silent movements through Yggdrasil's data streams. While some interactions technically manipulate sound under certain conditions (such as mod + backspace to clear a selected slot), most are simply affordances for navigation — things like toggling views, dismissing messages, or paging through through command history. ctrl, alt, opt, and cmd are functionally identical and collectively referred to as mod.
Let's go.
Index
- Anchor
- Append
- Arpeggio
- Ascend / Descend
- BPM
- Chord
- Clade
- Clear
- Clock
- Crow
- Enable / Disable
- End
- Exit
- Follow
- Info
- Jump
- K3
- Lacuna
- Level
- Lucky
- MIDI
- Mute / Unmute
- New
- Note
- Oblique
- Off
- Panic
- Play / Stop
- Random
- Remove
- Rerun
- Reverse
- Routine
- Ruin
- Save / Load
- Screenshot
- Select
- Shadow / Unshadow
- Shift
- Shift (Phenomenon)
- Solo / Unsolo
- Sync
- Synth
- Track Depth
- Transpose Slot
- Velocity
- View
- Y Mode
- YPC
Musical Commands
Note
Set a slot’s MIDI value. Accepts YGG notation.
Signatures
X Y MIDI_NOTE |
↵ |
X Y YGG_NOTE |
↵ |
Examples
|
↵ |
|
↵ |
Velocity
Set a slot’s velocity value. Unlike most other systems, velocity is mixed with track level to produce a final result. For example, a slot with a velocity of 70 on a track with a level of 50% would produce a final velocity of 35. The exception to this rule is the crow clade, which can use neither velocity nor track level information.
Signatures
X Y velocity;VALUE |
↵ |
X Y vel;VALUE |
↵ |
X vel;40 |
↵ |
Examples
|
↵ |
|
↵ |
|
↵ |
Invocations
velocity
vel
Chord
Paint a chord horizontally starting from X
Y
. Automatically append tracks and rows if needed. Any size chord can be built. An extensive chord library available or precision chords can be entered with MIDI values. Chords default to octave 4. Append a semicolon followed by an integer to set an octave: 1 1 c;cmin;6
Signatures
X Y chord;CHORD;OCTAVE |
↵ |
X Y c;CHORD |
↵ |
X Y c;MIDI_NOTE;MIDI_NOTE;… |
↵ |
Examples
|
↵ |
|
↵ |
|
↵ |
|
↵ |
|
↵ |
Invocations
chord
c
Arpeggio
Arpeggiate the entire track X
starting at Y
with evenly-spaced notes. If Y
is absent, start at 1. Default VALUE
of spacing is 0. If multiple MIDI_NOTES
are used, loop through the notes indefinitely. Arpeggiate indefinitely through any of the chords.
Signatures
X Y arp CHORD |
↵ |
X Y arp;VALUE CHORD |
↵ |
X arp;VALUE CHORD |
↵ |
X Y arp MIDI_NOTE;… |
↵ |
X a CHORD |
↵ |
Examples
|
↵ |
|
↵ |
|
↵ |
|
↵ |
|
↵ |
Invocations
arpeggio
arp
a
Clock
Set the “clock” value for a track. Default is 1. Max is 2. Tracks have independent clock sync rates.
Yggdrasil uses 96 PPQN, so any value entered will be snapped to the nearest pulse.
Signature
X clock;VALUE |
↵ |
Examples
|
↵ |
|
↵ |
|
↵ |
|
↵ |
Invocation
clock
Lacuna PHENOMENON
Slot a “lacuna” phenomenon. Lacuna first disables the current track, then enables and queues any other track. The net effect is a clean handoff of one track to another.
Lacunae honor ascending and descending tracks (it is smart enough to start at the top or bottom of a track) but lacunae do not effect solo and mute attributes. Thus, it is possible to queue and and play muted track. This is a feature, not a bug.
Signature
X Y @4 |
↵ |
Example
|
↵ |
Invocation
@
Anchor PHENOMENON
Slot an “anchor” phenomenon. This causes playback to jump to a specific slot in the track. If the slot is invalid then advance as if the slot was empty. History.
Signature
X Y #VALUE |
↵ |
Example
|
↵ |
Invocation
#
Core Commands
Append
Insert a number of tracks after track X
. Optionally, have each shadow track X
.
Signatures
X append;VALUE |
↵ |
X ap;VALUE |
↵ |
X append;VALUE shadow |
↵ |
X ap;VALUE sha |
↵ |
Examples
|
↵ |
|
↵ |
|
↵ |
Invocations
append
ap
Arguments
shadow
sha
New
Like clear but also resets track count, depth, clades, and shadows to defaults.
Signature
new |
↵ |
Mixer Commands
Level
Set the level of a track. Valid levels are 0% to 100%. Levels are linear.
Unlike most other systems, velocity is mixed with track level to produce a final result. For example, a slot with a velocity of 70 on a track with a level of 50% would produce a final velocity of 35. The exception to this rule is the crow clade, which can use neither velocity nor track level information. See Y Mode interactions, too.
Signatures
X level;VALUE |
↵ |
X l;VALUE |
↵ |
Examples
|
↵ |
|
↵ |
Invocations
level
l
Synth
Set the track’s synth voice with synth;voice;...
. Use either name (rikki
) or their number (2
). The Yggdrasil synth has three different polyphonic voices. You can use all three at once, across any number of tracks.
Set the macro control levels with synth;m1;...
and synth;m2;...
. You can use this command with X
to set entire tracks or X Y
to set individualslots.
Use synth;enc
to toggle takeover mode for macro controls with norns encoders 2 and 3.
# | Name | Description |
---|---|---|
1 | PPM | The norns classic, with parameters pared down to the basics. |
2 | Rikki | All edges, angular digital angst. Fuzzy nudges through shimmering waves of banshee cries through broken glass. |
3 | Toast | Minimal FM. Tentative pings to warbly nostalgia to toxic swells. |
Signatures
X synth;v;VALUE |
↵ |
X synth;voice;VALUE |
↵ |
X synth;m1;VALUE |
↵ |
X synth;m2;VALUE |
↵ |
synth;enc |
↵ |
Examples
|
↵ |
|
↵ |
|
↵ |
|
↵ |
Invocation
synth
Arguments
voice
v
m1
m2
enc
YPC
Set a global sample bank and load samples into tracks and slots. Yggdrasil can access one bank at a time, but a bank can contain any number of samples. Slots contain can contain up to one sample, but tracks can contain any number of slots (each with unique samples.) “Banks” located at /dust/audio/yggdrasil/banks/
.
Yggdrasil ships with a default factory
bank.
If a filename has frequency information at the end, like your_sample_name_440hz.wav
, Yggdrasil will repitch intelligently. If the filename does not have frequency information at the end, a default of 440hz will be used. Once a sample is loaded into a slot, a note value also needs to be set. A common technique is to use x ypc;l;your_sample_name_440hz.wav
and then use x arp
.
Signatures
X Y ypc;load;VALUE |
↵ |
X Y ypc;l;VALUE |
↵ |
X ypc;load;VALUE |
↵ |
X ypc;l;VALUE |
↵ |
ypc;bank;VALUE |
↵ |
ypc;b;VALUE |
↵ |
Examples
|
↵ |
|
↵ |
|
↵ |
Invocation
ypc
Arguments
load
l
bank
b
Shadow / Unshadow
Set a track to “shadow” another’s clade and clade attributes. For example, let Track 1 be a MIDI clade set to channel 16 and device 4. By invoking 2 shadow;1
, Track 2 would shadow Track 1. Its clade would be set to MIDI, its channel to 16, and device to 4. Should any of these attributes on Track 1 change, they would also change on Track 2.
Shadowed attributes are: clade, synth voice, MIDI channel, MIDI device, crow pair, Just Friends mode. Tracks can shadow other shadowed tracks.
Signatures
X shadow;VALUE |
↵ |
X sha;VALUE |
↵ |
X unshadow |
↵ |
unshadow |
↵ |
unsha |
↵ |
Examples
|
↵ |
|
↵ |
|
↵ |
Invocations
shadow
sha
unshadow
unsha
View Commands
View
Possible values for slot views are midi
, ygg
, freq
, and ipn
. Toggle velocity with velocity
/vel
/v
. Reveal the heads up display with column and row numbers with hud
/h
.
Similarly, reveal or hide phenomenon with phenomenon
/p
. Reveal or hide macros with m1
and m2
. index
is also available to reveal the slot’s logical position. Change pages with tracker
/t
, mixer
/m
, and clades
/c
(this can also be accomplished with tab).
View current sample bank with bank
/b
. Toggle sample names with ypc
/y
.
Signatures
view;VALUE |
↵ |
v;VALUE |
↵ |
Examples
|
↵ |
|
↵ |
|
↵ |
|
↵ |
|
↵ |
Invocations
view
v
Arguments
midi
ipn
ygg
freq
velocity
vel
v
index
phenomenon
p
m1
m2
tracker
t
hud
h
mixer
m
clades
c
bank
b
ypc
y
Utility Commands
Screenshot
Take a screenshot and drop it in /dust
. See this for more info.
Signature
screenshot |
↵ |
Interactions
Eternal Interactions
Cycle Pages |
tab |
Cycle through views: tracker, tracker + HUD, mixer, clades. |
Delete |
mod + backspace / delete |
Delete all values from the selected slot or column. |
Select |
↵ / return / enter |
When the buffer is empty, select the focused slot, control, or option. |
Dismiss / Deselect |
esc |
The escape key dismisses messages. If no message exists it deselects. |
Y Mode Toggle |
caps lock |
Toggle Y Mode on and off. |
History |
↑ and ↓ |
Press the up and down keys to page through command history. Note you can recall and run commands with this even in Y Mode. |
Toggle Playback |
spacebar |
Start or stop playback. No commands start with an empty space so it will only execute when the buffer is empty. |
Word Jump |
mod + ← / → |
Jump to the beginning of the next (or end of previous) word. |
Y Mode Interactions
Level |
[ and ] |
Decrement and increment all selected track levels by 1% with the left and right brackets. If shift is held they are adjusted by 10%. |
Select Track |
1 … 0 |
Select tracks 1 through 10 with the number keys. Hold shift and then press another number to select a range of tracks. |
HJKL Focus |
h j k l |
h, j, k, or l to pan the tracker view and change focus. This can also be accomplished with norns encoders 2 and 3. History. |
Mute / Unmute |
a and q |
Mute selected track(s) with a. Unmute selected track(s) with q. |
Solo / Unsolo |
s and w |
Solo selected track(s) with s. Unsolo selected track(s) with w. |
Enable / Disabled |
e and d |
Enable selected track(s) with e. Disable selected track(s) with d. |
Digest
Commands
Anchor | X Y #VALUE |
1 5 #8 |
Append | X append;VALUE |
1 append;3 |
Arpeggio | X Y arp CHORD |
1 arp;4 bmin |
Ascend / Descend | X ascend |
1 ascend |
BPM | bpm;VALUE |
bpm;149.3 |
Chord | X Y chord;CHORD;OCTAVE |
1 1 chord;cmaj |
Clade | X clade;VALUE |
1 clade;midi |
Clear | clear |
|
Clock | X clock;VALUE |
1 clock;.5 |
Crow | X crow;pair;VALUE |
1 crow;pair;1 |
Enable / Disable | X enable |
3 enable |
End | X Y end |
1 5 end |
Exit | exit |
|
Follow | follow |
|
Info | info |
|
Jump | :Y |
:4 |
K3 | k3 = ANY_COMMAND |
k3 = 1 arp;2 60;63;65 |
Lacuna | X Y @4 |
1 8 @3 |
Level | X level;VALUE |
3 level;88 |
Lucky | X Y lucky |
1 5 lucky |
MIDI | X midi;d;VALUE |
1 midi;d;2 |
Mute / Unmute | X mute |
3 mute |
New | new |
|
Note | X Y MIDI_NOTE |
4 3 72 |
Oblique | oblique |
|
Off | X Y off |
1 5 off |
Panic | panic |
|
Play / Stop | 1 play |
|
Random | X Y random |
1 5 random |
Remove | X Y remove |
1 remove |
Rerun | rerun |
|
Reverse | X Y reverse |
1 5 reverse |
Routine | routine;FILENAME |
routine;dreams.txt |
Ruin | X Y ruin |
1 5 ruin |
Save / Load | 1 save what-is-love.txt |
|
Screenshot | screenshot |
|
Select | X Y |
7 8 |
Shadow / Unshadow | X shadow;VALUE |
1 shadow;3 |
Shift | X shift;VALUE |
1 shift;3 |
Shift (Phenomenon) | X Y <VALUE |
1 5 >8 |
Solo / Unsolo | X solo |
3 solo |
Sync | sync |
sync |
Synth | X synth;v;VALUE |
1 synth;v;2 |
Track Depth | X depth;VALUE |
1 depth;8 |
Transpose Slot | X Y t;VALUE |
1 1 transpose;8 |
Velocity | X Y velocity;VALUE |
4 3 velocity;127 |
View | view;VALUE |
view;ipn |
Y Mode | ymode |
|
YPC | X Y ypc;load;VALUE |
1 1 ypc;load;909kick.wav |
Interactions
Cycle Pages | tab | Eternal |
Delete | mod + backspace / delete | Eternal |
Dismiss / Deselect | esc | Eternal |
Enable / Disabled | e and d | Y |
HJKL Focus | h j k l | Y |
History | ↑ and ↓ | Eternal |
Level | [ and ] | Y |
Mute / Unmute | a and q | Y |
Select | ↵ / return / enter | Eternal |
Select Track | 1 … 0 | Y |
Solo / Unsolo | s and w | Y |
Toggle Playback | spacebar | Eternal |
Word Jump | mod + ← / → | Eternal |
Y Mode Toggle | caps lock | Eternal |
ChordsDetails
Each chord must also be prefixed with a note: c
, cs
, d
, ds
, e
, f
, fs
, g
, gs
, a
, as
, or b
. Enharmonics are also valid: cb
, db
, eb
, fb
, gb
, ab
, or bb
.
maj
major
maj7
ma7
maj9
maj13
sixth
6
add6
add13
69
maj7b6
majs4
minor
m
min
m7
min7
mi7
-7
maj7
majmaj7
m6
-6
m9
-9
minmaj9
m11
-11
m13
-13
diminished
dim
dim7
m7b5
-7b5
h7
h
7
dom
9
3
7s11
7b9
7s9
altered
alt7
sus4
sus
sus2
7sus4
7sus
eleventh
11
b9sus
phryg
7b9sus
7b9sus4
fifth
5
augmented
aug
ms5
maj75
maj9s11
sus24
sus4add9
maj9s5
7aug
aug7
7alt
9s5
9s5s11
7s5b9
7b9s5
9s5s11
7s5b9
7b9s5
7s5b9s11
padds9
ms5add9
padd9
6s11
6b5
maj7add13
69s11
m69
-69
7b6
maj7s9s11
maj13s11
maj7b9
7s11b13
7b5b13
7add6
67
7add13
7s9s11
7b5s9
7s9b5
13s9s11
7s9s11b13
13s9
7s9b13
9s11
9s4
13s11
13s4
9s11b13
9b5b13
7b9s11
7b5b9
7b9b5
13b9s11
7b9b13s11
7b9s11b13
7b5b9b13
13b9
7b9b13
7b9s9
2
add9
add2
majaddb9
majb5
13b5
maj7b5
maj9b5
7b5
9b5
7no5
7b13
9no5
13no5
9b13
madd4
mmaj7b6
mmaj9b6
m7add11
m7add4
madd9
o7maj7
omaj7
mb6maj7
m7s5
m9s5
m11A
mb6b9
m9b5
maj7s5sus4
maj9s5sus4
7s5sus4
maj7sus4
maj9sus4
9sus4
9sus
13sus4
13sus
7sus4b9b13
7b9b13sus4
4
quartal
11b9
Glossary
Clade |
The taxonomic principal organizing tracks into one of: synth, MIDI, YPC, or crow. |
Phenomenon |
An event, action, or piece of logic associated with a slot. Slots can contain up to one phenomenon. |
Y Mode |
When toggled on, alpha-numeric character input to the buffer is broken and keys take on new functionality. This behavior is comparable to to vim’s normal/default mode. |
YGG Notation |
YGG notation is like IPN but faster to type - there are no capitals and the |
YPC |
“Yggdrasil Production Center” - the sampler/softcut system for Yggdrasil. History. The YPC uses an intelligent “first in, first out, round robin” algorithm to play samples. Softcut (the internal sampler engine in norns) has six voices, so if Yggdrasil is instructed to play 7 samples at once, only the first 6 will fire. Once the first sample is complete, another sample will be available. The YPC can support any number of banks, each with any number of samples. YPC can intelligently repitch samples. |
Changelog
- FIX Crow gates work again.
- FIX Update for norns
210114
. - DEV Remove unneeded
clock.cancel()
calls incleanup()
.
- FIX Copy and paste slots works again.
- FIX Copy and paste tracks works again.
- FIX Copy and paste samples works again.
- FIX Lucky phenomenon are no longer unlucky.
- NEW Use the lacuna
@
phenomenon to first disable the current track, then enable and queue any other track. The net effect is a clean handoff of one track to another. Lacunae honor ascending and descending tracks (it is smart enough to start at the top or bottom of a track) but lacunae do not effect solo and mute attributes. Thus, it is possible to queue and and play muted track. This is a feature, not a bug. - FIX Any command specifically targeting a slot deeper than the track will automatically fill the track to that depth.
- FIX K3 assignment works again.
- FIX Copy and paste tracks works again.
- DEV Complete overhaul of the clock architecture to use 96 PPQN.
clock
commands remain the same.
- NEW Select samples in editor without typing them. (!)
- NEW Edit macros in the editor.
- NEW “Off” phenomenon to send MIDI off signals to all notes on the track.
- NEW View macros with
v;m1
andv;m2
. - NEW Toggle synth encoder override while in Y Mode with p.
- NEW Execute arbitrary routines with
routine;anthropocene.txt
. - CHANGE After committing values in the editor, the last selected field remains selected.
- DEV Refactor commands to each use individual files.
- NEW Long messages scroll back and forth.
- NEW Long text entries in the terminal and editor scroll.
- NEW Jump to the beginning of the next (or end of previous) word with mod + left and right arrows.
- CHANGE Press enter to dismiss the editor when there are no changes.
- NEW Define your own variables with
$1 = anything
. - NEW Chain commands together with
&&
. - NEW Automatically execute commands on startup with the
routines/startup.txt
file.
- NEW Cut, copy, and paste with mod + x, c, and v.
- CHANGE ctrl, alt, opt, and cmd have identical behavior. Collectively these are now simply: mod (modify).
- CHANGE Focus with mod + arrow keys. Use shift to move in increments of 10.
- CHANGE Use shift to move in increments of 10 with Y Mode h, j, k, and l.
- CHANGE Remove adaptive increment/decrement controls.
- CHANGE Synth macros are invoked with
m
instead ofc
. - FIX Cursor appears in the editor field in Y Mode.
- NEW Editor.
- FIX Prevent registering MIDI note before killing.
- FIX Overhaul of shadow architecture.
- FIX Do crows eat bugs?
- NEW Parameter to set default row/column numbers (the “hud”) state.
- NEW Add documentation for how to set octave when invoking chords.
- FIX YPC only recognizes frequencies in sample names if the string “hz” is appended after the number.
- FIX Add missing enharmonics.
- NEW Add Just Friends on/off commands. See more info here.
- FIX Crow bug.
- NEW Add “Toasty” synth. See more info here.
- NEW Add
ymode
command. This toggles it on. Pressing Y in Y Mode will toggle Y Mode off. - FIX Lucky bug.
- FIX
cb
->b
.
- NEW Ygg notation supports enharmonics. gs4 = ab4.
- NEW Add
version
as alias forinfo
. - NEW Add vim-style jump command:
:Y
- FIX
bpm;120
works instead ofbpm 120
. - FIX
1 ascend
&1 descend
works as documented.
- ADD Adjust track levels with left and right bracket keys.
- FIX Issue with track selection.
- FIX Save honors empty slots.
- FIX Continued dev artifact cleanup.
- FIX Dev artifact cleanup.
- NEW Initial release.
- When the buffer is empty, pressing enter activates the editor.
- Pressing esc aborts.
- ← and → move the text cursor.
- tab and tab + shift cycle through the attributes.
- ↑ and ↓ also cycle through the attributes.
- mod + arrows aborts and moves to adjacent slot.
- Pressing enter at any time commits all valid values.
- Pressing enter will do nothing if invalid values are present.
- Pressing enter will close the editor if all values are unchanged.
- Pressing enter on the YPC field will open a sample selector window. Pressing esc will abandon the window without any updates. Pressing enter on a new sample will commit the new sample along with other values in the editor.
- Entries are validated in real-time. Invalid submissions are not allowed.
- Empty notes and values are valid - it is the same as deleting.
- YGG and MIDI values update each other.
- Spacebar is disabled when the editor is open.
- E1 aborts current edits and selects next not empty slot.
- E2 and E3 still pan X and Y as normal.
Imagine the tracker with five planes: notes, samples, macros, velocities, and phenomena. With the view command you can toggle each plane on and off.
- Note: stores note data. This can be viewed as IPN, YGG, MIDI, or frequency.
- YPC: stores samples name.
- Macro: stores “macro controls” of the synth. Each synth voice has two macro controls with values that range from 0 - 99.
- Velocity: stores velocity data.
- Phenomena: stores up to one phenomenon.
Use mod + ↑, ←, ↓, and → to to change focus. Press ↵ to select and backspace / delete to clear. Use shift to move in increments of 10. Note ↵, backspace, and shift are also Y Mode interactions.
While in Y Mode, use h, j, k, and l to to change focus. Press ↵ to select and backspace / delete to clear. Use shift to move in increments of 10. Note ↵, backspace, and shift are also eternal interactions.
You can assign any arbitrary text to variables. This text can be a fully valid command or a mere fragment… Perhaps a motif like 60;62;65
?
Valid variables are constructed with the dollar sign ($
) followed by a positive integer.
Once assigned, any command containing these will “expand” the first time you press ↵.
Chain commands together for rapid execution with &&
.
Automatically execute any number of commands on startup by placing a file at /dust/data/yggdrasil/routines/startup.txt
. Each command goes on a new line.
While in Y Mode, increment and decrement selected track levels by 1% with [ and ]. Hold shift to increment by 10%.
While in Y Mode, the number keys instantly select the corresponding track. With a track selected, hold shift and press another number to select a range of tracks.
While in Y Mode, use q, w, and e to unmute, unsolo, and enable selected tracks respectively. Use a, s, and d to mute, solo, and disable tracks respectively. Remember: s olo, e nable, d isable!
ctrl, alt, opt, and cmd and all do the same thing. Collectively, these keys are simply mod. Let there be peace among the kingdoms.
With slots or tracks selected, hold mod and press backspace / delete to clear all values.
Cut, copy, and paste selected tracks and slots. It works just like your favorite spreadsheet program. Cutting and copying entire tracks will also pickup track attributes such as level, clade, direction, and so on. Interactions are the same in Y Mode.
Toggle Y Mode off the Y key. (This is to support keyboards that do not have caps lock.)
Switch pages with tab. The pages are Tracker, Mixer, and Clades.
Toggle the synth;enc
manual override controls with p.
Think “p” for potentiometer.
In the REPL, you can execute any Yggdrasil commands with cmd("YOUR COMMAND STRING")
.
Toggle Y Mode on and off with caps lock.