# modules/takiy/ — Composición musical asistida

**Propósito.** Herramienta de composición: un modelo de partitura sobre
teoría musical, con asistencia por IA y síntesis de audio. El núcleo es
agnóstico — el tiempo se mide en pulsos, no en segundos, y no conoce ni
audio ni UI.

## Crates

| crate         | tipo | rol                                                          |
| ------------- | ---- | ------------------------------------------------------------ |
| `takiy-core`  | lib  | `Pitch`/`PitchClass`, `Scale`, `Chord`/`ChordQuality`, `Score`/`Track`/`ScoreNote` |

## Modelo

```text
  PitchClass + octava ──► Pitch (MIDI, frecuencia ET A4=440)
        │
   Scale (raíz + patrón)   Chord (raíz + cualidad)
        │
   ScoreNote (pulso, duración, velocidad) ──► Track ──► Score (tempo)
```

- **Altura**: número MIDI interno; clase, octava y frecuencia se derivan.
- **Tiempo en pulsos**: una partitura es independiente del tempo hasta
  reproducirla (`Score::duration_seconds` aplica el bpm).
- **Transposición atómica**: si una nota se saldría del rango MIDI, la
  pista entera no se altera.

## Dependencias

- `takiy-core` ← sólo `serde`. `#![forbid(unsafe_code)]`, determinista.

## Estado

`takiy-core` implementado y verde (24 tests). **Pendiente** (requieren
infra pesada, no verificables en modo desatendido):

| crate pendiente | rol                                            |
| --------------- | ---------------------------------------------- |
| `takiy-synth`   | síntesis de audio (`fundsp`)                   |
| `takiy-ai`      | asistencia de composición (`ort`, instancia)   |
| `takiy-canvas`  | piano-roll / partitura visual                  |
