<?xml version="1.0" encoding="UTF-8"?>
<!--
  Scoreflection sitemap.

  Every URL carries the full set of xhtml:link alternates, including a self
  reference — that is what Google's hreflang spec requires, and it is the part
  most sitemaps get wrong. Error and offline pages are noindex and are therefore
  deliberately absent.

  When you add a page: add it to both language blocks, or not at all. A URL with
  a one-sided alternate is silently ignored.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">

  <url>
    <loc>https://scoreflection.com/</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/" />
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://scoreflection.com/de/</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/" />
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>

  <url>
    <loc>https://scoreflection.com/about.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/about.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/about.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/about.html" />
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://scoreflection.com/de/about.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/about.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/about.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/about.html" />
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <url>
    <loc>https://scoreflection.com/faq.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/faq.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/faq.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/faq.html" />
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://scoreflection.com/de/faq.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/faq.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/faq.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/faq.html" />
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <!-- The comparison page. Weighted with the FAQ rather than the legal pages:
       "<other app> alternative" is how a good share of people look for an app
       like this one, and this is the page that answers it. -->
  <url>
    <loc>https://scoreflection.com/compare.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/compare.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/compare.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/compare.html" />
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://scoreflection.com/de/compare.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/compare.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/compare.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/compare.html" />
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <!-- The teachers' page. Marketing, not a legal page: a private teacher is the
       most effective recommender this product has. It offers nothing for
       assessing students — see the header comment in teachers.html. -->
  <url>
    <loc>https://scoreflection.com/teachers.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/teachers.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/teachers.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/teachers.html" />
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://scoreflection.com/de/teachers.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/teachers.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/teachers.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/teachers.html" />
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>

  <!-- Music schools: an invitation to talk and an enquiry form. Collects
       interest only; see the header comment in schools.html. -->
  <url>
    <loc>https://scoreflection.com/schools.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/schools.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/schools.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/schools.html" />
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://scoreflection.com/de/schools.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/schools.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/schools.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/schools.html" />
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>

  <!-- Instrument pages and guides. These answer the searches the home page is
       too general to rank for ("piano app that listens to you play", "export
       MusicXML from MuseScore"). The library page lists the shared bundle and is
       regenerated by tools/gen-library-page.mjs. -->
  <url>
    <loc>https://scoreflection.com/piano.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/piano.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/piano.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/piano.html" />
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://scoreflection.com/de/piano.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/piano.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/piano.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/piano.html" />
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <url>
    <loc>https://scoreflection.com/guitar.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/guitar.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/guitar.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/guitar.html" />
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://scoreflection.com/de/guitar.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/guitar.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/guitar.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/guitar.html" />
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <url>
    <loc>https://scoreflection.com/own-sheet-music.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/own-sheet-music.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/own-sheet-music.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/own-sheet-music.html" />
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://scoreflection.com/de/own-sheet-music.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/own-sheet-music.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/own-sheet-music.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/own-sheet-music.html" />
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <url>
    <loc>https://scoreflection.com/library.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/library.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/library.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/library.html" />
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://scoreflection.com/de/library.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/library.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/library.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/library.html" />
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <!-- The two browser tools. They are useful on their own — which is the point,
       since "online tuner" and "online metronome" are searched for constantly —
       and neither sends anything anywhere. -->
  <url>
    <loc>https://scoreflection.com/tuner.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/tuner.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/tuner.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/tuner.html" />
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://scoreflection.com/de/tuner.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/tuner.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/tuner.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/tuner.html" />
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <url>
    <loc>https://scoreflection.com/metronome.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/metronome.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/metronome.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/metronome.html" />
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://scoreflection.com/de/metronome.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/metronome.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/metronome.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/metronome.html" />
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <url>
    <loc>https://scoreflection.com/contact.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/contact.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/contact.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/contact.html" />
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://scoreflection.com/de/contact.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/contact.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/contact.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/contact.html" />
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>

  <url>
    <loc>https://scoreflection.com/privacy.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/privacy.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/privacy.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/privacy.html" />
    <changefreq>yearly</changefreq>
    <priority>0.4</priority>
  </url>
  <url>
    <loc>https://scoreflection.com/de/privacy.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/privacy.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/privacy.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/privacy.html" />
    <changefreq>yearly</changefreq>
    <priority>0.4</priority>
  </url>

  <!-- Child safety standards. Indexed deliberately: Play's policy requires the
       standard to be publicly accessible, and a parent or a regulator looking
       for it should be able to find it by searching. -->
  <url>
    <loc>https://scoreflection.com/child-safety.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/child-safety.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/child-safety.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/child-safety.html" />
    <changefreq>yearly</changefreq>
    <priority>0.4</priority>
  </url>
  <url>
    <loc>https://scoreflection.com/de/child-safety.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/child-safety.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/child-safety.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/child-safety.html" />
    <changefreq>yearly</changefreq>
    <priority>0.4</priority>
  </url>

  <!-- The two regulatory disclosure pages, indexed on the same reasoning as child
       safety: somebody asking "does this app use AI, and what does it do with my
       playing" or "how do I report a security bug in this thing" should find the
       answer by searching rather than by reading a footer. security.html is also
       the target of the Policy: line in /.well-known/security.txt. -->
  <url>
    <loc>https://scoreflection.com/ai.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/ai.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/ai.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/ai.html" />
    <changefreq>yearly</changefreq>
    <priority>0.4</priority>
  </url>
  <url>
    <loc>https://scoreflection.com/de/ai.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/ai.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/ai.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/ai.html" />
    <changefreq>yearly</changefreq>
    <priority>0.4</priority>
  </url>
  <url>
    <loc>https://scoreflection.com/security.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/security.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/security.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/security.html" />
    <changefreq>yearly</changefreq>
    <priority>0.4</priority>
  </url>
  <url>
    <loc>https://scoreflection.com/de/security.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/security.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/security.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/security.html" />
    <changefreq>yearly</changefreq>
    <priority>0.4</priority>
  </url>

  <!-- The advisory channel CRA Annex I Part II (4) requires. changefreq is
       monthly rather than yearly not because we expect monthly advisories but
       because the whole point of the page is that a crawler should come back
       and find one when it appears. -->
  <url>
    <loc>https://scoreflection.com/advisories.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/advisories.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/advisories.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/advisories.html" />
    <changefreq>monthly</changefreq>
    <priority>0.4</priority>
  </url>
  <url>
    <loc>https://scoreflection.com/de/advisories.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/advisories.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/advisories.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/advisories.html" />
    <changefreq>monthly</changefreq>
    <priority>0.4</priority>
  </url>

  <url>
    <loc>https://scoreflection.com/terms.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/terms.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/terms.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/terms.html" />
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://scoreflection.com/de/terms.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/terms.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/terms.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/terms.html" />
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <!-- The § 312k BGB cancellation page. Indexed and priority-weighted above the
       other legal pages on purpose: the statute requires it to be easy to find,
       and a cancellation route nobody can locate is the violation itself. -->
  <url>
    <loc>https://scoreflection.com/cancel.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/cancel.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/cancel.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/cancel.html" />
    <changefreq>yearly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://scoreflection.com/de/cancel.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/cancel.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/cancel.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/cancel.html" />
    <changefreq>yearly</changefreq>
    <priority>0.5</priority>
  </url>

  <url>
    <loc>https://scoreflection.com/imprint.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/imprint.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/imprint.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/imprint.html" />
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://scoreflection.com/de/imprint.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://scoreflection.com/imprint.html" />
    <xhtml:link rel="alternate" hreflang="de" href="https://scoreflection.com/de/imprint.html" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://scoreflection.com/imprint.html" />
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>

</urlset>
