Bien démarrer
Commencer votre première session JolyMusic
Configurez votre profil, choisissez un instrument et transformez une idée musicale en séance de travail ciblée.

Objectif
JolyMusic relie théorie, écoute, visualisation et interprétation. Commencez avec un seul objectif clair plutôt que d’ouvrir tous les outils.
Repères dans l’interface
- La navigation principale sépare apprentissage, pratique, composition, analyse et exploration.
- L’aperçu d’harmonie graphique transforme les relations de hauteurs en forme visible.
- Les boutons d’abonnement et du compte indiquent les fonctions personnelles disponibles.
Méthode pas à pas
- Ouvrez votre profil et sélectionnez votre langue ainsi que vos instruments favoris.
- Choisissez une activité : explorer un accord, travailler l’oreille, créer un rythme ou étudier une performance.
- Écoutez d’abord, observez la représentation visuelle, puis reproduisez ou transformez l’idée musicale.
- Enregistrez les éléments utiles afin de reprendre le même contexte lors de la prochaine session.
Conseils de pratique
- Utilisez un casque ou des enceintes fiables pour comparer des hauteurs proches.
- Des séances courtes et répétées sont plus utiles qu’une longue séance sans objectif.
Exemple guidé
Exemple : une séance ciblée de dix minutes
Choisissez Do majeur, écoutez une fois, chantez les sept degrés, affichez les notes sur votre instrument favori et terminez par un exercice d’oreille. Gardez le même matériau afin que chaque action renforce les autres.
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/GettingStarted.md
Purpose
JolyMusic is organized around reusable musical context rather than isolated pages. A productive first session establishes four things:
- an authenticated and verified user identity;
- a supported interface locale;
- one or more favorite instruments;
- an audio route that can actually render the chosen material.
The dashboard is an authenticated entry point, not a public landing page. The profile stores durable user preferences. Musical tools may also maintain temporary browser state, so saving a profile preference and saving a tool document are separate operations.
Audio Settings Contract
Both route aliases reach the same controller:
GET|PATCH /{_locale}/profile/jolyengine-settings
route: app_profile_jolyengine_settings
GET|PATCH /{_locale}/profile/audio-settings
route: app_profile_audio_settingsAuthentication is required for both methods. GET returns:
{
"settings": {}
}PATCH additionally requires SubscriptionAccessVoter::WRITE. The request may be either the settings object itself or:
{
"settings": {
"playbackEngine": "tone"
}
}Unknown keys are discarded. Accepted top-level families include:
- device selection:
inputDeviceId,outputDeviceId; - main routing:
playbackEngine,soundPresetId; - drum, general instrument, mono, polyphonic, and microtonal defaults;
- Tone.js instrument, volume, and pan;
- oscillator waveform, volume, and pan;
- MIDI input/output, channel, volume, and pan;
- sampler backend, source kind, source URL, volume, and pan.
Engine Normalization
The general playbackEngine accepts:
tone
midi
sampler
frequencyAn unsupported general engine falls back to tone.
Family defaults are stricter:
- drum, general instrument, and mono:
tone,sampler, ormidi; - polyphonic and microtonal:
toneormidi.
Unsupported family defaults become null, allowing the consumer to fall back to a broader setting.
Numeric Clamping
The controller clamps rather than rejects these values:
| Setting | Range | | :--- | :--- | | Tone/frequency/sampler volume | -60 to +12 dB | | Tone/frequency/sampler pan | -1 to +1 | | MIDI channel | 1 to 16 | | MIDI volume | 0 to 127 | | MIDI pan | 0 to 127 |
Preset IDs are converted to positive integers or null. frequencyWaveform accepts sine, triangle, square, and sawtooth, falling back to sine. samplerBackend normalizes to standalone or lazy; samplerSourceKind is forced to sfz.
Legacy tonePresetId, samplerPresetId, or presetId can supply soundPresetId when the modern key is absent.
Recommended First Session
Use one stable musical object through the whole session:
- select a locale and favorite instrument;
- open one KeyScale;
- listen through the configured engine;
- sing or identify its degrees;
- map it onto the chosen instrument;
- create or open one short Performance, Harmony, rhythm, or ear-training round;
- save only after verifying playback and visibility.
This sequence avoids changing the theoretical collection, instrument layout, and sound engine at the same time. When something sounds wrong, only one layer needs to be inspected.
Troubleshooting
Dashboard returns 403
The user may be authenticated but not verified. Account verification is checked after authentication.
Profile action redirects to login
The session is not authenticated. Profile reads do not silently create an account or token.
A preference cannot be saved
Write actions are subscription-gated. Confirm SubscriptionAccessVoter::WRITE, then validate CSRF where the route is form-based.
A favorite instrument disappears
The stored ID may no longer be selectable for the user because publication, ownership, or team visibility changed.
Playback is silent
Check, in order:
- browser audio permission and physical output volume;
outputDeviceId;playbackEngine;- required preset or sampler source;
- the tool's assigned JolyEngine receiver;
- whether the current musical object contains playable events.
A malformed PATCH changes unexpected settings
It should not: unknown keys are dropped. If a known key behaves unexpectedly, inspect its normalization branch in ProfileAudioSettingsController::sanitizeAudioSettings().
Diagnostic rapide
- Aucun son : ouvrez les réglages audio, choisissez un moteur de sortie et vérifiez le volume avant de modifier les données musicales.
- Trop de choix : revenez à une tonalité, un instrument et une compétence pour la séance.
- Travail introuvable ensuite : connectez-vous avant de créer des ressources personnelles ou d’équipe.
Vérification avant de terminer
- La langue et les instruments favoris sont configurés.
- La lecture audio fonctionne à un niveau sûr.
- La séance possède un objectif musical écrit.
Passer à la pratique
Ouvrez l’outil associé et appliquez immédiatement cette méthode à un exemple simple.