1# modules/takiy/ — Composición musical asistida
2
3**Propósito.** Herramienta de composición: un modelo de partitura sobre
4teoría musical, con asistencia por IA y síntesis de audio. El núcleo es
5agnóstico — el tiempo se mide en pulsos, no en segundos, y no conoce ni
6audio ni UI.
7
8## Crates
9
10| crate | tipo | rol |
11| ------------- | ---- | ------------------------------------------------------------ |
12| `takiy-core` | lib | `Pitch`/`PitchClass`, `Scale`, `Chord`/`ChordQuality`, `Score`/`Track`/`ScoreNote` |
13
14## Modelo
15
16```text
17 PitchClass + octava ──► Pitch (MIDI, frecuencia ET A4=440)
18 │
19 Scale (raíz + patrón) Chord (raíz + cualidad)
20 │
21 ScoreNote (pulso, duración, velocidad) ──► Track ──► Score (tempo)
22```
23
24- **Altura**: número MIDI interno; clase, octava y frecuencia se derivan.
25- **Tiempo en pulsos**: una partitura es independiente del tempo hasta
26 reproducirla (`Score::duration_seconds` aplica el bpm).
27- **Transposición atómica**: si una nota se saldría del rango MIDI, la
28 pista entera no se altera.
29
30## Dependencias
31
32- `takiy-core` ← sólo `serde`. `#![forbid(unsafe_code)]`, determinista.
33
34## Estado
35
36`takiy-core` implementado y verde (24 tests). **Pendiente** (requieren
37infra pesada, no verificables en modo desatendido):
38
39| crate pendiente | rol |
40| --------------- | ---------------------------------------------- |
41| `takiy-synth` | síntesis de audio (`fundsp`) |
42| `takiy-ai` | asistencia de composición (`ort`, instancia) |
43| `takiy-canvas` | piano-roll / partitura visual |
SDD.md
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
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 |