Hoofdstuk 4. Nieuwe oefeningen voor Minuet aanmaken

De oefeningen van Minuet worden gedefinieerd in JSON-specificatiebestanden. De toepassing laadt bij het opstarten alle beschikbare bestanden en voegt deze samen tot de zichtbare oefeningenboom.

{
  "exercises": [
    {
      "name": "Intervallen",
      "root": "29..69",
      "playMode": "toonladder",
      "userMessage": "Hoor het interval en kies uw antwoord",
      "numberOfSelectedOptions": 1,
      "_icon": "minuet-intervals-symbolic.svg",
      "children": [
        {
          "name": "Oplopende melodische intervallen",
          "and-tags": ["interval", "oplopend"],
          "children": [
            {
              "name": "Secunden",
              "or-tags": ["2"],
              "description": "Oefenen met identificeren van oplopende melodische secunden op gehoor."
            }
          ]
        }
      ]
    }
  ]
}

Het hoofdobject bevat een oefeningen-array. Elk element in dat array is ofwel een categorie, ofwel een oefening (als eindpunt). Categorieën gebruiken children om het volgende niveau van de boomstructuur te definiëren.

Bruikbare velden zijn onder andere:

  • name geeft elk knooppunt zijn zichtbare label.

  • root beperkt het bereik van noten dat wordt gebruikt om de prompt te genereren.

  • playMode selecteert weergave van de toonladder, het akkoord of het ritme.

  • userMessage past de instructie aan die aan de gebruiker wordt getoond.

  • numberOfSelectedOptions bepaalt hoeveel antwoorden correct mogen zijn.

  • _icon bepaalt het pictogram dat in de lade en de oefeningenbrowser wordt weergegeven.

  • and-tags en or-tags helpen bij het groeperen en filteren van gerelateerde knooppunten.

  • description geeft de browser een korte uitleg over het knooppunt.

  • options beschrijft de antwoordopties voor een zij-oefening.

  • sequenceFromRoot definieert de toonafwijkingen voor melodische antwoorden.

  • template wordt door ritme-oefeningen gebruikt om de notatie weer te geven.

De toepassing voegt bestanden samen die dezelfde categorienamen delen, zodat afzonderlijke specificatiebestanden kunnen bijdragen aan één zichtbare hiërarchie. Installeer ze systeembreed of plaats ze in minuet/exercises/ onder de algemene datalocatie die wordt geretourneerd door qtpaths --paths GenericDataLocation.