Teoría musical
Explora acordes y escalas
Encuentra KeyScales exactas, escucha sus notas, compara relaciones y lleva el resultado a tu instrumento.

Objetivo
El catálogo de acordes y escalas conecta una tonalidad raíz con una estructura de escala o acorde.
Referencias de la interfaz
- Signature elige la fundamental escrita y la ortografía de las alteraciones.
- Tipo limita el catálogo a escalas, acordes o ambos.
- La búsqueda encuentra nombres, alias y tonalidades; los controles cambian la vista.
- Run y Voicing convierten el resultado en un patrón tocable, no solo en una definición.
Método paso a paso
- Busca por tonalidad, nombre, alias, notas o tipo musical.
- Abre un resultado para examinar tonos, intervalos, alias y KeyScales relacionadas.
- Usa la reproducción para escuchar la colección ascendente, descendente o como acorde.
- Abre la vista instrumentada para ubicar el mismo material en un piano, diapasón u otro instrumento.
Consejos de práctica
- Compara colecciones mayores y menores paralelas desde la misma fundamental.
- Canta cada grado antes de tocarlo para conectar oído y teoría.
Ejemplo guiado
Ejemplo: compara Do mayor con Do séptima dominante
Filtra Do, abre la escala mayor y nombra cada intervalo. Vuelve al catálogo, abre C7 e identifica la séptima modificada. Escucha el arpegio y elimina la fundamental para oír cómo sobrevive la función.
Documentación canónica del proyecto
Esta referencia se genera directamente desde los archivos Markdown del repositorio; no está duplicada en los fixtures.
Source: Documentation/KeyScale.md
Overview
The KeyScale is not a standalone entity. It is a computed projection built from a Scale, a Key, and the key's interval mapping. The main API variants are:
KeyScaleOutputDTO: The full projection used by/api/key_scales.KeyScaleSelectOutputDTO: The compact projection used by/api/key_scales/select.KeyScaleProvider: The state provider that builds the full projection.KeyScaleSelectProvider: The state provider that builds the selector/autocomplete projection.Scale::getTonesData(Key $key): The resolver that computes the tone rows for a scale in a given key.
KeyScaleProvider State Provider
The KeyScaleProvider is a custom API Platform state provider that generates KeyScaleOutput DTOs.
File Location: src/State/KeyScaleProvider.php
Core Logic
- Fetching Data: The provider delegates entity loading to the standard Doctrine item/collection providers.
- Key Context: It uses a
keyIdfilter to determine theKeycontext. If the filter is absent or invalid, it resolves a default C natural key first, then falls back to other neutral keys if needed. - Visibility Rules: It only exposes scales the current viewer can access:
- public scales
- private scales owned by the viewer
- private team scales shared with one of the viewer's teams
- DTO Transformation: It maps each visible
Scaleto aKeyScaleOutputDTO. This includes:
- copying basic scale metadata
- computing
keySlug,scaleSlug, andcanonicalPath - calling
Scale::getTonesData()to resolve tone rows - resolving
keyBassIntervalwhenbassIntervalIdis supplied - building
fullName, including slash-bass notation when applicable - optionally computing
contains[]andcontainedIn[]relationships for item requests whenrelationships=true
Diagnóstico rápido
- Ortografía inesperada: revisa la tonalidad seleccionada antes de considerar incorrecta la colección.
- No hay resultados: borra filtros de tipo y etiquetas y busca un alias más corto.
- La reproducción suena turbia: elige una disposición abierta o arpegio antes de cambiar el acorde.
Comprobación antes de terminar
- Fundamental, tipo y ortografía son intencionales.
- Puedes nombrar o cantar cada intervalo mostrado.
- Has escuchado y ubicado la colección en un instrumento.
Pasar a la práctica
Abre la herramienta relacionada y aplica inmediatamente este método a un ejemplo sencillo.