<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Music on Vijay Kodam</title><link>https://vijay.eu/tags/music/</link><description>Recent content in Music on Vijay Kodam</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Sun, 08 Mar 2026 00:00:00 +0200</lastBuildDate><atom:link href="https://vijay.eu/tags/music/index.xml" rel="self" type="application/rss+xml"/><item><title>Note Quest</title><link>https://vijay.eu/projects/note-quest/</link><pubDate>Thu, 26 Feb 2026 00:00:00 +0200</pubDate><guid>https://vijay.eu/projects/note-quest/</guid><description>&lt;p&gt;Learn to read music notes on the grand staff! Pick the correct note name for each question.&lt;/p&gt;
&lt;p&gt;Created using Claude Code CLI on 26th Feb 2026. V2 released on 8th Mar 2026.
&lt;link rel="stylesheet" href="https://vijay.eu/css/note-quest.css"&gt;
&lt;script src="https://cdn.jsdelivr.net/npm/vexflow/build/cjs/vexflow.js"&gt;&lt;/script&gt;
&lt;div class="note-quest-wrapper"&gt;
&lt;div class="nq-screen start-screen active" id="nqStartScreen"&gt;
&lt;label class="nq-helper-toggle"&gt;
&lt;input type="checkbox" id="nqShowNoteNames"&gt; Show note names on staff
&lt;small class="nq-helper-hint"&gt;Auto for Levels 1–2, 4 · Ignored for 8–10&lt;/small&gt;
&lt;/label&gt;
&lt;div class="level-grid"&gt;
&lt;div class="level-row"&gt;
&lt;span class="row-label easy"&gt;Easy&lt;/span&gt;
&lt;div class="level-boxes"&gt;
&lt;button class="level-box easy" data-level="1"&gt;
&lt;span class="level-num"&gt;1&lt;/span&gt;
&lt;span class="level-detail"&gt;First Notes · Both clefs · F3,C4 / C4,G4&lt;/span&gt;
&lt;/button&gt;
&lt;button class="level-box easy" data-level="2"&gt;
&lt;span class="level-num"&gt;2&lt;/span&gt;
&lt;span class="level-detail"&gt;Staff Basics · Both clefs · F3–G4&lt;/span&gt;
&lt;/button&gt;
&lt;button class="level-box easy" data-level="3"&gt;
&lt;span class="level-num"&gt;3&lt;/span&gt;
&lt;span class="level-detail"&gt;Getting Comfortable · Both clefs · C3–C5&lt;/span&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="level-row"&gt;
&lt;span class="row-label medium"&gt;Medium&lt;/span&gt;
&lt;div class="level-boxes"&gt;
&lt;button class="level-box medium" data-level="4"&gt;
&lt;span class="level-num"&gt;4&lt;/span&gt;
&lt;span class="level-detail"&gt;Wider Range · Both clefs · A2–E5&lt;/span&gt;
&lt;/button&gt;
&lt;button class="level-box medium" data-level="5"&gt;
&lt;span class="level-num"&gt;5&lt;/span&gt;
&lt;span class="level-detail"&gt;Grand Staff · Both clefs · C2–C6&lt;/span&gt;
&lt;/button&gt;
&lt;button class="level-box medium" data-level="6"&gt;
&lt;span class="level-num"&gt;6&lt;/span&gt;
&lt;span class="level-detail"&gt;Expanding Range · Both clefs · A1–E6&lt;/span&gt;
&lt;/button&gt;
&lt;button class="level-box medium" data-level="7"&gt;
&lt;span class="level-num"&gt;7&lt;/span&gt;
&lt;span class="level-detail"&gt;Full Staff · Both clefs · E2–C6&lt;/span&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="level-row"&gt;
&lt;span class="row-label hard"&gt;Hard&lt;/span&gt;
&lt;div class="level-boxes"&gt;
&lt;button class="level-box hard" data-level="8"&gt;
&lt;span class="level-num"&gt;8&lt;/span&gt;
&lt;span class="level-detail"&gt;Ledger Lines · Both clefs · C2–E6&lt;/span&gt;
&lt;/button&gt;
&lt;button class="level-box hard" data-level="9"&gt;
&lt;span class="level-num"&gt;9&lt;/span&gt;
&lt;span class="level-detail"&gt;Extended Range · Both clefs · B1–E6&lt;/span&gt;
&lt;/button&gt;
&lt;button class="level-box hard" data-level="10"&gt;
&lt;span class="level-num"&gt;10&lt;/span&gt;
&lt;span class="level-detail"&gt;Note Master · Both clefs · A1–E6&lt;/span&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="nq-version"&gt;v2.1&lt;/div&gt;
&lt;/div&gt;
&lt;div class="nq-screen" id="nqGameScreen"&gt;
&lt;div class="nq-header"&gt;
&lt;div class="nq-logo"&gt;Note Quest&lt;/div&gt;
&lt;div class="nq-progress" id="nqProgress"&gt;1 / 10&lt;/div&gt;
&lt;/div&gt;
&lt;div class="nq-container"&gt;
&lt;div class="staff-card" id="nqStaffCard"&gt;&lt;/div&gt;
&lt;div class="choices" id="nqChoices"&gt;
&lt;button class="choice-btn" data-note="C"&gt;C&lt;/button&gt;
&lt;button class="choice-btn" data-note="D"&gt;D&lt;/button&gt;
&lt;button class="choice-btn" data-note="E"&gt;E&lt;/button&gt;
&lt;button class="choice-btn" data-note="F"&gt;F&lt;/button&gt;
&lt;button class="choice-btn" data-note="G"&gt;G&lt;/button&gt;
&lt;button class="choice-btn" data-note="A"&gt;A&lt;/button&gt;
&lt;button class="choice-btn" data-note="B"&gt;B&lt;/button&gt;
&lt;/div&gt;
&lt;div class="stats-bar"&gt;
&lt;span&gt;Streak: &lt;strong id="nqStreakDisplay"&gt;0&lt;/strong&gt;&lt;/span&gt;
&lt;span&gt;Score: &lt;strong id="nqScoreDisplay"&gt;0&lt;/strong&gt;&lt;/span&gt;
&lt;span id="nqTimerDisplay"&gt;0:00&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="nq-screen results-screen" id="nqResultsScreen"&gt;
&lt;h2&gt;Round Complete!&lt;/h2&gt;
&lt;div class="stars" id="nqStarsDisplay"&gt;&lt;/div&gt;
&lt;div class="results-stats" id="nqResultsStats"&gt;&lt;/div&gt;
&lt;button class="play-again-btn"&gt;Play Again&lt;/button&gt;
&lt;/div&gt;
&lt;canvas id="nqConfetti"&gt;&lt;/canvas&gt;
&lt;/div&gt;
&lt;script src="https://vijay.eu/js/note-quest.js"&gt;&lt;/script&gt;
&lt;/p&gt;</description></item></channel></rss>