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