Théorie musicale
Explorer les accords et les gammes
Trouvez des KeyScales exactes, écoutez leurs notes, comparez leurs relations et transposez le résultat sur votre instrument.

Objectif
Le catalogue des accords et gammes relie une tonalité fondamentale à une structure de gamme ou d’accord.
Repères dans l’interface
- Signature choisit la fondamentale écrite et l’orthographe des altérations.
- Type limite le catalogue aux gammes, aux accords ou aux deux.
- La recherche trouve noms, alias et signatures ; les contrôles changent la présentation.
- Run et Voicing transforment le résultat en motif jouable plutôt qu’en définition statique.
Méthode pas à pas
- Recherchez par tonalité, nom, alias, notes ou type musical.
- Ouvrez un résultat pour examiner les notes, intervalles, alias et KeyScales associées.
- Utilisez la lecture pour entendre la collection en montant, en descendant ou sous forme d’accord.
- Ouvrez la vue instrumentée pour placer le même matériau sur un piano, un manche ou un autre instrument.
Conseils de pratique
- Comparez les collections majeure et mineure parallèles depuis la même fondamentale.
- Chantez chaque degré avant de le jouer pour relier l’oreille à la théorie.
Exemple guidé
Exemple : comparer Do majeur et Do septième de dominante
Filtrez sur Do, ouvrez la gamme majeure et nommez chaque intervalle. Revenez au catalogue, ouvrez C7 et identifiez la septième modifiée. Écoutez l’arpège puis retirez la fondamentale pour entendre la fonction avec moins d’informations.
Documentation projet canonique
Cette référence est générée directement depuis les fichiers Markdown du dépôt ; elle n’est pas dupliquée dans les 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
Diagnostic rapide
- Orthographe inattendue : vérifiez la signature avant de conclure que la collection est incorrecte.
- Aucun résultat : effacez les filtres Type et tags puis utilisez un alias plus court.
- Lecture confuse : choisissez un voicing ouvert ou un arpège avant de changer l’accord.
Vérification avant de terminer
- Fondamentale, type et orthographe sont intentionnels.
- Chaque intervalle affiché peut être nommé ou chanté.
- La collection a été écoutée et placée sur un instrument.
Passer à la pratique
Ouvrez l’outil associé et appliquez immédiatement cette méthode à un exemple simple.