{
  "schema_version": "1.0.0",
  "content_version": "1.0.0",
  "module_id": "m30",
  "title": "Follow a Melody",
  "seed": 710041,
  "preset": {
    "id": "short-melody-direction-beginner",
    "difficulty": "beginner",
    "item_count": 10,
    "candidate_set": [
      "rising",
      "falling",
      "arch",
      "valley"
    ],
    "pitch_range_midi": [
      60,
      79
    ],
    "tempo_bpm": 90,
    "meter": [
      4,
      4
    ],
    "hints": true
  },
  "purpose": "Track the shape of a complete short melody.",
  "instructions": {
    "student": "Identify the whole shape across different starting pitches. Replay when a middle note is lost from memory.",
    "teacher": "Play each numbered question from this page. Use the same replay policy for all learners. Keep the answer section separate until the first response is recorded. For tapping tasks, record an observation on paper; use the online trainer for device-timed scoring.",
    "follow_up": "Trace a fresh melody from its first pitch. Verify the middle turning point rather than relying on the final register."
  },
  "examples": {
    "demonstration": {
      "id": "m30-713071-0",
      "seed": 713071,
      "kind": "melody_direction",
      "events": [
        {
          "midi": 64,
          "onset_beats": 0,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 66,
          "onset_beats": 1,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 68,
          "onset_beats": 2,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 71,
          "onset_beats": 3,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        }
      ],
      "choices": [
        {
          "id": "rising",
          "label": "Rises throughout",
          "events": [
            {
              "midi": 64,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 66,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 71,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "falling",
          "label": "Falls throughout",
          "events": [
            {
              "midi": 71,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 66,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 64,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "arch",
          "label": "Rises, then falls",
          "events": [
            {
              "midi": 64,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 71,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "valley",
          "label": "Falls, then rises",
          "events": [
            {
              "midi": 71,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 64,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        }
      ],
      "answer": "rising",
      "explanation": "The melody rises throughout: E4 → F#4 → G#4 → B4. Listen for the direction of every step.",
      "notation": {
        "clef": "treble",
        "notes": [
          "E4",
          "F#4",
          "G#4",
          "B4"
        ],
        "durations": [
          1,
          1,
          1,
          1
        ],
        "onsets": [
          0,
          1,
          2,
          3
        ],
        "bar_beats": 4
      },
      "total_beats": 4,
      "instructions": "Follow the whole melody. Which shape describes all of its notes?"
    },
    "comparison": {
      "id": "m30-713071-0",
      "seed": 713071,
      "kind": "melody_direction",
      "events": [
        {
          "midi": 71,
          "onset_beats": 0,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 68,
          "onset_beats": 1,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 66,
          "onset_beats": 2,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 64,
          "onset_beats": 3,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        }
      ],
      "choices": [
        {
          "id": "falling",
          "label": "Falls throughout",
          "events": [
            {
              "midi": 71,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 66,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 64,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "arch",
          "label": "Rises, then falls",
          "events": [
            {
              "midi": 64,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 71,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "valley",
          "label": "Falls, then rises",
          "events": [
            {
              "midi": 71,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 64,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "rising",
          "label": "Rises throughout",
          "events": [
            {
              "midi": 64,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 66,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 71,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        }
      ],
      "answer": "falling",
      "explanation": "The melody falls throughout: B4 → G#4 → F#4 → E4. Listen for the direction of every step.",
      "notation": {
        "clef": "treble",
        "notes": [
          "B4",
          "G#4",
          "F#4",
          "E4"
        ],
        "durations": [
          1,
          1,
          1,
          1
        ],
        "onsets": [
          0,
          1,
          2,
          3
        ],
        "bar_beats": 4
      },
      "total_beats": 4,
      "instructions": "Follow the whole melody. Which shape describes all of its notes?"
    },
    "seed": 713071,
    "comparisonSeed": 713071
  },
  "questions": [
    {
      "id": "m30-710041-0",
      "seed": 710041,
      "kind": "melody_direction",
      "events": [
        {
          "midi": 61,
          "onset_beats": 0,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 63,
          "onset_beats": 1,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 65,
          "onset_beats": 2,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 68,
          "onset_beats": 3,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        }
      ],
      "choices": [
        {
          "id": "rising",
          "label": "Rises throughout",
          "events": [
            {
              "midi": 61,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 63,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 65,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "falling",
          "label": "Falls throughout",
          "events": [
            {
              "midi": 68,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 65,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 63,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 61,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "arch",
          "label": "Rises, then falls",
          "events": [
            {
              "midi": 61,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 65,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 65,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "valley",
          "label": "Falls, then rises",
          "events": [
            {
              "midi": 68,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 65,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 61,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 65,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        }
      ],
      "answer": "rising",
      "explanation": "The melody rises throughout: C#4 → D#4 → F4 → G#4. Listen for the direction of every step.",
      "notation": {
        "clef": "treble",
        "notes": [
          "C#4",
          "D#4",
          "F4",
          "G#4"
        ],
        "durations": [
          1,
          1,
          1,
          1
        ],
        "onsets": [
          0,
          1,
          2,
          3
        ],
        "bar_beats": 4
      },
      "total_beats": 4,
      "instructions": "Follow the whole melody. Which shape describes all of its notes?"
    },
    {
      "id": "m30-710041-1",
      "seed": 717960,
      "kind": "melody_direction",
      "events": [
        {
          "midi": 67,
          "onset_beats": 0,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 64,
          "onset_beats": 1,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 60,
          "onset_beats": 2,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 64,
          "onset_beats": 3,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        }
      ],
      "choices": [
        {
          "id": "rising",
          "label": "Rises throughout",
          "events": [
            {
              "midi": 60,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 62,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 64,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 67,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "falling",
          "label": "Falls throughout",
          "events": [
            {
              "midi": 67,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 64,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 62,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 60,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "arch",
          "label": "Rises, then falls",
          "events": [
            {
              "midi": 60,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 64,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 67,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 64,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "valley",
          "label": "Falls, then rises",
          "events": [
            {
              "midi": 67,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 64,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 60,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 64,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        }
      ],
      "answer": "valley",
      "explanation": "The melody falls, then rises: G4 → E4 → C4 → E4. Listen for the turning point in the middle.",
      "notation": {
        "clef": "treble",
        "notes": [
          "G4",
          "E4",
          "C4",
          "E4"
        ],
        "durations": [
          1,
          1,
          1,
          1
        ],
        "onsets": [
          0,
          1,
          2,
          3
        ],
        "bar_beats": 4
      },
      "total_beats": 4,
      "instructions": "Follow the whole melody. Which shape describes all of its notes?"
    },
    {
      "id": "m30-710041-2",
      "seed": 725879,
      "kind": "melody_direction",
      "events": [
        {
          "midi": 68,
          "onset_beats": 0,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 65,
          "onset_beats": 1,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 63,
          "onset_beats": 2,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 61,
          "onset_beats": 3,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        }
      ],
      "choices": [
        {
          "id": "rising",
          "label": "Rises throughout",
          "events": [
            {
              "midi": 61,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 63,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 65,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "falling",
          "label": "Falls throughout",
          "events": [
            {
              "midi": 68,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 65,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 63,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 61,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "arch",
          "label": "Rises, then falls",
          "events": [
            {
              "midi": 61,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 65,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 65,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "valley",
          "label": "Falls, then rises",
          "events": [
            {
              "midi": 68,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 65,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 61,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 65,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        }
      ],
      "answer": "falling",
      "explanation": "The melody falls throughout: G#4 → F4 → D#4 → C#4. Listen for the direction of every step.",
      "notation": {
        "clef": "treble",
        "notes": [
          "G#4",
          "F4",
          "D#4",
          "C#4"
        ],
        "durations": [
          1,
          1,
          1,
          1
        ],
        "onsets": [
          0,
          1,
          2,
          3
        ],
        "bar_beats": 4
      },
      "total_beats": 4,
      "instructions": "Follow the whole melody. Which shape describes all of its notes?"
    },
    {
      "id": "m30-710041-3",
      "seed": 733798,
      "kind": "melody_direction",
      "events": [
        {
          "midi": 67,
          "onset_beats": 0,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 71,
          "onset_beats": 1,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 74,
          "onset_beats": 2,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 71,
          "onset_beats": 3,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        }
      ],
      "choices": [
        {
          "id": "rising",
          "label": "Rises throughout",
          "events": [
            {
              "midi": 67,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 69,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 71,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 74,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "falling",
          "label": "Falls throughout",
          "events": [
            {
              "midi": 74,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 71,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 69,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 67,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "arch",
          "label": "Rises, then falls",
          "events": [
            {
              "midi": 67,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 71,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 74,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 71,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "valley",
          "label": "Falls, then rises",
          "events": [
            {
              "midi": 74,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 71,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 67,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 71,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        }
      ],
      "answer": "arch",
      "explanation": "The melody rises, then falls: G4 → B4 → D5 → B4. Listen for the turning point in the middle.",
      "notation": {
        "clef": "treble",
        "notes": [
          "G4",
          "B4",
          "D5",
          "B4"
        ],
        "durations": [
          1,
          1,
          1,
          1
        ],
        "onsets": [
          0,
          1,
          2,
          3
        ],
        "bar_beats": 4
      },
      "total_beats": 4,
      "instructions": "Follow the whole melody. Which shape describes all of its notes?"
    },
    {
      "id": "m30-710041-4",
      "seed": 741717,
      "kind": "melody_direction",
      "events": [
        {
          "midi": 66,
          "onset_beats": 0,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 70,
          "onset_beats": 1,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 73,
          "onset_beats": 2,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 70,
          "onset_beats": 3,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        }
      ],
      "choices": [
        {
          "id": "rising",
          "label": "Rises throughout",
          "events": [
            {
              "midi": 66,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 70,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 73,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "falling",
          "label": "Falls throughout",
          "events": [
            {
              "midi": 73,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 70,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 66,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "arch",
          "label": "Rises, then falls",
          "events": [
            {
              "midi": 66,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 70,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 73,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 70,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "valley",
          "label": "Falls, then rises",
          "events": [
            {
              "midi": 73,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 70,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 66,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 70,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        }
      ],
      "answer": "arch",
      "explanation": "The melody rises, then falls: F#4 → A#4 → C#5 → A#4. Listen for the turning point in the middle.",
      "notation": {
        "clef": "treble",
        "notes": [
          "F#4",
          "A#4",
          "C#5",
          "A#4"
        ],
        "durations": [
          1,
          1,
          1,
          1
        ],
        "onsets": [
          0,
          1,
          2,
          3
        ],
        "bar_beats": 4
      },
      "total_beats": 4,
      "instructions": "Follow the whole melody. Which shape describes all of its notes?"
    },
    {
      "id": "m30-710041-5",
      "seed": 749636,
      "kind": "melody_direction",
      "events": [
        {
          "midi": 67,
          "onset_beats": 0,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 64,
          "onset_beats": 1,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 60,
          "onset_beats": 2,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 64,
          "onset_beats": 3,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        }
      ],
      "choices": [
        {
          "id": "rising",
          "label": "Rises throughout",
          "events": [
            {
              "midi": 60,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 62,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 64,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 67,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "falling",
          "label": "Falls throughout",
          "events": [
            {
              "midi": 67,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 64,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 62,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 60,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "arch",
          "label": "Rises, then falls",
          "events": [
            {
              "midi": 60,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 64,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 67,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 64,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "valley",
          "label": "Falls, then rises",
          "events": [
            {
              "midi": 67,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 64,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 60,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 64,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        }
      ],
      "answer": "valley",
      "explanation": "The melody falls, then rises: G4 → E4 → C4 → E4. Listen for the turning point in the middle.",
      "notation": {
        "clef": "treble",
        "notes": [
          "G4",
          "E4",
          "C4",
          "E4"
        ],
        "durations": [
          1,
          1,
          1,
          1
        ],
        "onsets": [
          0,
          1,
          2,
          3
        ],
        "bar_beats": 4
      },
      "total_beats": 4,
      "instructions": "Follow the whole melody. Which shape describes all of its notes?"
    },
    {
      "id": "m30-710041-6",
      "seed": 757555,
      "kind": "melody_direction",
      "events": [
        {
          "midi": 64,
          "onset_beats": 0,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 68,
          "onset_beats": 1,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 71,
          "onset_beats": 2,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 68,
          "onset_beats": 3,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        }
      ],
      "choices": [
        {
          "id": "rising",
          "label": "Rises throughout",
          "events": [
            {
              "midi": 64,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 66,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 71,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "falling",
          "label": "Falls throughout",
          "events": [
            {
              "midi": 71,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 66,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 64,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "arch",
          "label": "Rises, then falls",
          "events": [
            {
              "midi": 64,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 71,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "valley",
          "label": "Falls, then rises",
          "events": [
            {
              "midi": 71,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 64,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        }
      ],
      "answer": "arch",
      "explanation": "The melody rises, then falls: E4 → G#4 → B4 → G#4. Listen for the turning point in the middle.",
      "notation": {
        "clef": "treble",
        "notes": [
          "E4",
          "G#4",
          "B4",
          "G#4"
        ],
        "durations": [
          1,
          1,
          1,
          1
        ],
        "onsets": [
          0,
          1,
          2,
          3
        ],
        "bar_beats": 4
      },
      "total_beats": 4,
      "instructions": "Follow the whole melody. Which shape describes all of its notes?"
    },
    {
      "id": "m30-710041-7",
      "seed": 765474,
      "kind": "melody_direction",
      "events": [
        {
          "midi": 70,
          "onset_beats": 0,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 74,
          "onset_beats": 1,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 77,
          "onset_beats": 2,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 74,
          "onset_beats": 3,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        }
      ],
      "choices": [
        {
          "id": "rising",
          "label": "Rises throughout",
          "events": [
            {
              "midi": 70,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 72,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 74,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 77,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "falling",
          "label": "Falls throughout",
          "events": [
            {
              "midi": 77,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 74,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 72,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 70,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "arch",
          "label": "Rises, then falls",
          "events": [
            {
              "midi": 70,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 74,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 77,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 74,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "valley",
          "label": "Falls, then rises",
          "events": [
            {
              "midi": 77,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 74,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 70,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 74,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        }
      ],
      "answer": "arch",
      "explanation": "The melody rises, then falls: A#4 → D5 → F5 → D5. Listen for the turning point in the middle.",
      "notation": {
        "clef": "treble",
        "notes": [
          "A#4",
          "D5",
          "F5",
          "D5"
        ],
        "durations": [
          1,
          1,
          1,
          1
        ],
        "onsets": [
          0,
          1,
          2,
          3
        ],
        "bar_beats": 4
      },
      "total_beats": 4,
      "instructions": "Follow the whole melody. Which shape describes all of its notes?"
    },
    {
      "id": "m30-710041-8",
      "seed": 773393,
      "kind": "melody_direction",
      "events": [
        {
          "midi": 72,
          "onset_beats": 0,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 69,
          "onset_beats": 1,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 65,
          "onset_beats": 2,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 69,
          "onset_beats": 3,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        }
      ],
      "choices": [
        {
          "id": "rising",
          "label": "Rises throughout",
          "events": [
            {
              "midi": 65,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 67,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 69,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 72,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "falling",
          "label": "Falls throughout",
          "events": [
            {
              "midi": 72,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 69,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 67,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 65,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "arch",
          "label": "Rises, then falls",
          "events": [
            {
              "midi": 65,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 69,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 72,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 69,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "valley",
          "label": "Falls, then rises",
          "events": [
            {
              "midi": 72,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 69,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 65,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 69,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        }
      ],
      "answer": "valley",
      "explanation": "The melody falls, then rises: C5 → A4 → F4 → A4. Listen for the turning point in the middle.",
      "notation": {
        "clef": "treble",
        "notes": [
          "C5",
          "A4",
          "F4",
          "A4"
        ],
        "durations": [
          1,
          1,
          1,
          1
        ],
        "onsets": [
          0,
          1,
          2,
          3
        ],
        "bar_beats": 4
      },
      "total_beats": 4,
      "instructions": "Follow the whole melody. Which shape describes all of its notes?"
    },
    {
      "id": "m30-710041-9",
      "seed": 781312,
      "kind": "melody_direction",
      "events": [
        {
          "midi": 68,
          "onset_beats": 0,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 72,
          "onset_beats": 1,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 75,
          "onset_beats": 2,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        },
        {
          "midi": 72,
          "onset_beats": 3,
          "duration_beats": 0.85,
          "velocity": 0.7,
          "voice_id": "triangle"
        }
      ],
      "choices": [
        {
          "id": "rising",
          "label": "Rises throughout",
          "events": [
            {
              "midi": 68,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 70,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 72,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 75,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "falling",
          "label": "Falls throughout",
          "events": [
            {
              "midi": 75,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 72,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 70,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "arch",
          "label": "Rises, then falls",
          "events": [
            {
              "midi": 68,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 72,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 75,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 72,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        },
        {
          "id": "valley",
          "label": "Falls, then rises",
          "events": [
            {
              "midi": 75,
              "onset_beats": 0,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 72,
              "onset_beats": 1,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 68,
              "onset_beats": 2,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            },
            {
              "midi": 72,
              "onset_beats": 3,
              "duration_beats": 0.85,
              "velocity": 0.7,
              "voice_id": "triangle"
            }
          ]
        }
      ],
      "answer": "arch",
      "explanation": "The melody rises, then falls: G#4 → C5 → D#5 → C5. Listen for the turning point in the middle.",
      "notation": {
        "clef": "treble",
        "notes": [
          "G#4",
          "C5",
          "D#5",
          "C5"
        ],
        "durations": [
          1,
          1,
          1,
          1
        ],
        "onsets": [
          0,
          1,
          2,
          3
        ],
        "bar_beats": 4
      },
      "total_beats": 4,
      "instructions": "Follow the whole melody. Which shape describes all of its notes?"
    }
  ],
  "answer_key": [
    {
      "number": 1,
      "question_id": "m30-710041-0",
      "answer": "rising",
      "label": "Rises throughout",
      "explanation": "The melody rises throughout: C#4 → D#4 → F4 → G#4. Listen for the direction of every step.",
      "notation": {
        "clef": "treble",
        "notes": [
          "C#4",
          "D#4",
          "F4",
          "G#4"
        ],
        "durations": [
          1,
          1,
          1,
          1
        ],
        "onsets": [
          0,
          1,
          2,
          3
        ],
        "bar_beats": 4
      },
      "total_beats": 4
    },
    {
      "number": 2,
      "question_id": "m30-710041-1",
      "answer": "valley",
      "label": "Falls, then rises",
      "explanation": "The melody falls, then rises: G4 → E4 → C4 → E4. Listen for the turning point in the middle.",
      "notation": {
        "clef": "treble",
        "notes": [
          "G4",
          "E4",
          "C4",
          "E4"
        ],
        "durations": [
          1,
          1,
          1,
          1
        ],
        "onsets": [
          0,
          1,
          2,
          3
        ],
        "bar_beats": 4
      },
      "total_beats": 4
    },
    {
      "number": 3,
      "question_id": "m30-710041-2",
      "answer": "falling",
      "label": "Falls throughout",
      "explanation": "The melody falls throughout: G#4 → F4 → D#4 → C#4. Listen for the direction of every step.",
      "notation": {
        "clef": "treble",
        "notes": [
          "G#4",
          "F4",
          "D#4",
          "C#4"
        ],
        "durations": [
          1,
          1,
          1,
          1
        ],
        "onsets": [
          0,
          1,
          2,
          3
        ],
        "bar_beats": 4
      },
      "total_beats": 4
    },
    {
      "number": 4,
      "question_id": "m30-710041-3",
      "answer": "arch",
      "label": "Rises, then falls",
      "explanation": "The melody rises, then falls: G4 → B4 → D5 → B4. Listen for the turning point in the middle.",
      "notation": {
        "clef": "treble",
        "notes": [
          "G4",
          "B4",
          "D5",
          "B4"
        ],
        "durations": [
          1,
          1,
          1,
          1
        ],
        "onsets": [
          0,
          1,
          2,
          3
        ],
        "bar_beats": 4
      },
      "total_beats": 4
    },
    {
      "number": 5,
      "question_id": "m30-710041-4",
      "answer": "arch",
      "label": "Rises, then falls",
      "explanation": "The melody rises, then falls: F#4 → A#4 → C#5 → A#4. Listen for the turning point in the middle.",
      "notation": {
        "clef": "treble",
        "notes": [
          "F#4",
          "A#4",
          "C#5",
          "A#4"
        ],
        "durations": [
          1,
          1,
          1,
          1
        ],
        "onsets": [
          0,
          1,
          2,
          3
        ],
        "bar_beats": 4
      },
      "total_beats": 4
    },
    {
      "number": 6,
      "question_id": "m30-710041-5",
      "answer": "valley",
      "label": "Falls, then rises",
      "explanation": "The melody falls, then rises: G4 → E4 → C4 → E4. Listen for the turning point in the middle.",
      "notation": {
        "clef": "treble",
        "notes": [
          "G4",
          "E4",
          "C4",
          "E4"
        ],
        "durations": [
          1,
          1,
          1,
          1
        ],
        "onsets": [
          0,
          1,
          2,
          3
        ],
        "bar_beats": 4
      },
      "total_beats": 4
    },
    {
      "number": 7,
      "question_id": "m30-710041-6",
      "answer": "arch",
      "label": "Rises, then falls",
      "explanation": "The melody rises, then falls: E4 → G#4 → B4 → G#4. Listen for the turning point in the middle.",
      "notation": {
        "clef": "treble",
        "notes": [
          "E4",
          "G#4",
          "B4",
          "G#4"
        ],
        "durations": [
          1,
          1,
          1,
          1
        ],
        "onsets": [
          0,
          1,
          2,
          3
        ],
        "bar_beats": 4
      },
      "total_beats": 4
    },
    {
      "number": 8,
      "question_id": "m30-710041-7",
      "answer": "arch",
      "label": "Rises, then falls",
      "explanation": "The melody rises, then falls: A#4 → D5 → F5 → D5. Listen for the turning point in the middle.",
      "notation": {
        "clef": "treble",
        "notes": [
          "A#4",
          "D5",
          "F5",
          "D5"
        ],
        "durations": [
          1,
          1,
          1,
          1
        ],
        "onsets": [
          0,
          1,
          2,
          3
        ],
        "bar_beats": 4
      },
      "total_beats": 4
    },
    {
      "number": 9,
      "question_id": "m30-710041-8",
      "answer": "valley",
      "label": "Falls, then rises",
      "explanation": "The melody falls, then rises: C5 → A4 → F4 → A4. Listen for the turning point in the middle.",
      "notation": {
        "clef": "treble",
        "notes": [
          "C5",
          "A4",
          "F4",
          "A4"
        ],
        "durations": [
          1,
          1,
          1,
          1
        ],
        "onsets": [
          0,
          1,
          2,
          3
        ],
        "bar_beats": 4
      },
      "total_beats": 4
    },
    {
      "number": 10,
      "question_id": "m30-710041-9",
      "answer": "arch",
      "label": "Rises, then falls",
      "explanation": "The melody rises, then falls: G#4 → C5 → D#5 → C5. Listen for the turning point in the middle.",
      "notation": {
        "clef": "treble",
        "notes": [
          "G#4",
          "C5",
          "D#5",
          "C5"
        ],
        "durations": [
          1,
          1,
          1,
          1
        ],
        "onsets": [
          0,
          1,
          2,
          3
        ],
        "bar_beats": 4
      },
      "total_beats": 4
    }
  ],
  "record": {
    "learner": "",
    "date": "",
    "first_responses": "",
    "same_question_corrections": "",
    "new_question_check": ""
  }
}
