> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oryx.mechatronstudio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Analog editing

> Connection points, chords, radii and the open-loop warning.

In analog mode the signal is built from two pieces: **connection points** and
the **chords** that join them.

## Connection points

They are pinned to the **divider lines** of the steps. Each one has a normalized
height: **0 = floor, 100 % = ceiling**.

They are static anchors: the chord never moves them. The only thing that gives
is the **corner**, with a radius of its own that rounds the break between what
arrives at the point and what leaves it.

### Two heights on the same point

A point can have a **second height**. With it, the signal reaches the first one,
jumps vertically to the second and carries on from there: that is what lets you
draw a **straight edge without spending two dividers**. Each height has its own
corner radius.

## Chords

A chord is stretched between every two consecutive points. Out of the box it is
a **straight line**. Selecting it lets you grab it at an intermediate point and
pull it up or down.

A chord has three parameters, which are the three controls on the bar:

| Control    | What it is                                                                 |
| ---------- | -------------------------------------------------------------------------- |
| **X Axis** | Where the chord is grabbed: 0 % at the start point, 100 % at the end       |
| **Y Axis** | How high that handle is pulled: 0 % floor, 100 % ceiling                   |
| **Radius** | How much the peak is rounded: **0 % sharp peak, 50 % round, 100 % square** |

<Note>
  The fields take percentages with up to two decimals and apply on `Enter` or when
  you leave the field. You can also drag directly over the signal: the chord
  handle moves horizontally and the height vertically.
</Note>

When what is selected is a **point** rather than a chord, the **Radius** control
becomes the point's corner: *0 % sharp, 100 % rounded*.

## The two selection modes

The timeline does two different jobs, and mixing them would make every click
ambiguous, so you pick one with the switch on the bar:

<CardGroup cols={2}>
  <Card title="Point" icon="circle-dot">
    Place, remove and drag connection points; pick chords.

    *Edit connection points and chords.*
  </Card>

  <Card title="Step" icon="columns-3">
    Select steps to copy, cut, paste or label.

    *Select steps.*
  </Card>
</CardGroup>

## Gestures

| Gesture                  | What it does                                    |
| ------------------------ | ----------------------------------------------- |
| Click a **divider**      | Creates a point at the height set by the Y Axis |
| Click a **point**        | Selects it or releases it                       |
| **Double-click** a point | Deletes it                                      |
| **Drag**                 | Selects a span                                  |
| Click the **chord**      | Selects it, enabling X Axis and Radius          |
| `Del`                    | Deletes the chosen points                       |
| `Esc`                    | Cancels the selection                           |

## Analog mode shortcuts

| Key      | What it does                         |
| -------- | ------------------------------------ |
| `I`      | Mirrors the heights of the selection |
| `L`      | Labels the span                      |
| `D`      | Adds dividers inside the selection   |
| `F`      | Shifts the selected points           |
| `Insert` | Inserts steps before the pulse       |
| `N`      | Shows or hides the step numbers      |
| `T`      | Shows or hides the labels            |

The zoom, step, clipboard and channel shortcuts are the same as in digital. See
[Keyboard shortcuts](/en/editor/shortcuts).

## Copying and pasting points

Copying in analog stores **the chosen points along with the chords that join
them**, with all their deformation. When pasting, the header asks you to pick
**the divider** where the paste starts —not the pulse, as in digital— and `Esc`
cancels.

The clipboard is tagged: what you copied in analog cannot be pasted into a
digital project.

## The open-loop warning

Before exporting, the app checks whether each channel **ends at the same height
it started at**. If not, a warning steps in:

> *The signal does not close the loop. The last connection point sits at a
> different height than the first. As the signal repeats, every cycle begins
> with an abrupt jump.*

It lists the affected channels with where each one starts and ends, and offers
two ways out:

* **Skip and export**, if the jump is intentional.
* **Edit signal**, to go back and match them.

<Tip>
  Back in editing, **the first and the last connection point each show the other
  one's level guide**, so you can match them at a glance.
</Tip>

## Amplitude resolution

A point's height is a number between 0 and 1. It is turned into whole levels
only **on export**, at the resolution you pick: 8, 10, 12 or 16 bits (levels
0–255, 0–1023, 0–4095 and 0–65535).

Sending the signal to the ESP32 works differently: there the curve travels
**already sampled**, because the device DAC plays it sample by sample. See
[Connect the device](/en/device/connect).
