> ## 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.

# Formato analógico

> Tramos, no muestras: cómo leer el .txt de una señal analógica.

El archivo analógico describe **tramos, no muestras**. Cada fila es un tramo
completo de curva, y el generador la reconstruye. Un archivo de decenas de
líneas en lugar de decenas de miles.

## Estructura

Nueve columnas:

| Columna            | Qué es                                                            |
| ------------------ | ----------------------------------------------------------------- |
| **Paso**           | Desde qué paso arranca el tramo                                   |
| **Hasta**          | En qué paso termina                                               |
| **Canal**          | Número de canal, en el orden del archivo                          |
| **Nivel0**         | Nivel de salida, cuantizado a la resolución elegida               |
| **Nivel1**         | Nivel de llegada                                                  |
| **Agarre\_X**      | Dónde se agarra la cuerda, en % del tramo                         |
| **Agarre\_Y**      | A qué nivel se lleva ese agarre                                   |
| **Radio**          | Redondeo del pico, en %                                           |
| **Radio\_Esquina** | Redondeo del quiebre con el tramo siguiente del mismo canal, en % |

Un tramo recto —cuerda sin deformar— lleva `-` en *Agarre\_X*, *Agarre\_Y* y
*Radio*.

## Cómo está ordenado

Las filas van **ordenadas por el paso en el que empiezan**, mezclando todos los
canales: es el orden en el que se reproduce.

## Cada fila se basta sola

Una fila dice de qué paso a qué paso va, de qué canal, entre qué niveles y con
qué curva. **El nivel de llegada se repite como nivel de salida de la fila
siguiente**, y esa repetición es justamente lo que evita tener que recordar
filas viejas de otros canales.

Resultado: se puede reproducir **leyendo una línea a la vez**, sin cargar el
archivo entero en memoria.

## La única columna que mira hacia adelante

**Radio\_Esquina** dice cuánto redondear el quiebre con el tramo que sigue en ese
mismo canal:

* Con `-` o `0`, el quiebre queda **en ángulo**.
* Con un radio `r`, la curva se come **la última mitad de `r` de este tramo y la
  primera del siguiente**, pasando por el punto de conexión como vértice.

El último tramo de un canal no tiene siguiente, así que no forma ninguna
esquina: lleva `-`.

## Qué no está en el archivo

<Note>
  **No hay largo total.** La señal analógica dura lo que duran sus tramos y puede
  terminar antes del final de la línea de tiempo.
</Note>

Un canal con menos de dos puntos de conexión no describe ningún tramo —sin
duración no hay señal que recrear— así que queda afuera del archivo.

## La resolución

*Nivel0* y *Nivel1* salen cuantizados a la resolución elegida al exportar: 8,
10, 12 o 16 bits.

<Warning>
  El **DAC del ESP32 es de 8 bits** (0–255) y llega a unos 3,3 V. Si se exportó
  con más resolución, hay que reescalar al reproducir.
</Warning>

## Con metadatos

Al final del archivo, después de una línea en blanco:

```
VOLTAGE: 3.3
STEP_TIME (us): 50
CYCLES (RPM): 0
```

El ejemplo de reproducción, con lectura desde microSD, está en
[Generar la señal con un ESP32](/exportar/esp32-microsd).
