Hi there! I’m Chris.

I’m building shakuhachi.ro.

I’m a shakuhachi student and web developer, and I was looking for a simple way to share scores with friends or on r/shakuhachi, but couldn’t find any. So I decided to build it.

shakuhachi.ro is a place to discover, write, edit and share shakuhachi scores. It’s inspired by similar sites like The Session and Flat.io, as well as the vexflow score render library, but built specifically for shakuhachi.

Forking

Variation has been part of the Shakuhachi tradition where pieces have been passed down through oral teaching. While the repertoire draws from traditional sets, different schools, teachers and players add their own touches and keep the music alive.

This is where forking comes in.

If you’ve used GitHub or similar versioning tools, forking will feel familiar.

If not, forking just means creating your own version of the score.

Forking is useful when you want to edit, transpose, or adapt a piece without losing the original. When you fork a score, you create a new copy. Your copy stays independent. It links to the original for reference, but your changes won’t affect it.

You can also fork the same score multiple times. It’s a great way to try new ideas.

When you find a forked score on the site, you can explore all of its previous versions and learn how it has evolved and transformed.

Embedding scores

Another big reason I’m building this site is the score renderer… I wanted to drop a shakuhachi snippet into a blog post, and write about it in context, but I couldn’t find a good way to do that.

So I built a standalone web component for displaying shakuhachi notation on any webpage.

The live example below shows it in action:

Here’s how you can embed it in your own site:

<script src="https://shakuhachi.ro/embed/shakuhachi-score.js"></script>
<shakuhachi-score
  columns="1"
  data-score='{
    "title": "Akatombo (Opening Phrase)",
    "notes": [
      { "pitch": { "step": "ro", "octave": 0 }, "duration": 1 },
      { "pitch": { "step": "tsu", "octave": 0 }, "duration": 1 },
      { "pitch": { "step": "tsu", "octave": 0 }, "duration": 2, "dotted": true },
      { "pitch": { "step": "chi", "octave": 0 }, "duration": 1 },
      { "pitch": { "step": "ri", "octave": 0 }, "duration": 1 },
      { "pitch": { "step": "ro", "octave": 1 }, "duration": 1 },
      { "pitch": { "step": "u", "octave": 1 }, "duration": 1 },
      { "pitch": { "step": "hi", "octave": 1 }, "duration": 1 },
      { "pitch": { "step": "ro", "octave": 1 }, "duration": 2 }
    ]
  }'
></shakuhachi-score>

That’s the idea: scores should be as easy to share as a screenshot… or easier.

If you want to embed scores in your own site or tool, the details are in the GitHub project.

On AI

This site is being built with the help of AI — read more on the /ai page.

Contributing

This is an open source project and I could use help with:

  • Adding scores to the library
  • Feature feedback: what works, what’s confusing, and what’s missing
  • Shakuhachi notation expertise
  • Japanese cultural guidance — helping ensure the site respects and reflects shakuhachi tradition
  • Design and UX
  • Testing
  • Coding

If any of this interests you, I’d love to hear from you.

Email chris@shakuhachi.ro, or reach out on GitHub or Mastodon (posts or DMs)