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.

JolyMusic — Explorer les accords et les gammes
Capture réelle de l’interface JolyMusic décrite dans ce guide.

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

  1. Recherchez par tonalité, nom, alias, notes ou type musical.
  2. Ouvrez un résultat pour examiner les notes, intervalles, alias et KeyScales associées.
  3. Utilisez la lecture pour entendre la collection en montant, en descendant ou sous forme d’accord.
  4. 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:

  1. KeyScaleOutput DTO: The full projection used by /api/key_scales.
  2. KeyScaleSelectOutput DTO: The compact projection used by /api/key_scales/select.
  3. KeyScaleProvider: The state provider that builds the full projection.
  4. KeyScaleSelectProvider: The state provider that builds the selector/autocomplete projection.
  5. 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

  1. Fetching Data: The provider delegates entity loading to the standard Doctrine item/collection providers.
  2. Key Context: It uses a keyId filter to determine the Key context. If the filter is absent or invalid, it resolves a default C natural key first, then falls back to other neutral keys if needed.
  3. 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
  1. DTO Transformation: It maps each visible Scale to a KeyScaleOutput DTO. This includes:
  • copying basic scale metadata
  • computing keySlug, scaleSlug, and canonicalPath
  • calling Scale::getTonesData() to resolve tone rows
  • resolving keyBassInterval when bassIntervalId is supplied
  • building fullName, including slash-bass notation when applicable
  • optionally computing contains[] and containedIn[] relationships for item requests when relationships=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.

Parcourir les accords et gammes →