Remix.run Logo
luigi_123 8 hours ago

* This is my first time actually posting anything on HN.

I've been making a DSL for writing sheet music specifically for drums as raw text, inspired by ABC Notation (but of course just for drums).

Now writing this I noticed that it's kind of complicated to explain and having a landing page would make my life so much easier.

But the gist of it is, you write notation that looks like this: https://gist.github.com/Luigi123/945af7e5cc8dfbfd186f0a99754... and it renders sheet music in PDF, and also allows you to play the same music as a game (DrumMania / DTXMania style).

Now the language / compiler itself has been working quite well and I've been dogfooding it for like six months now. The next thing is an IDE-style editor where you can import a song and write the notation following it. Making THAT has been quite the journey. Here's a screenshot for good measure: https://i.imgur.com/EmlqlrM.png

sbrother 4 hours ago | parent | next [-]

Oh dude, I love this. I've been working on an interactive music thingy (https://trebel.la, it's sort of gamified but more designed to structure practice sessions for serious classical musicians) and struggling with the ABC vs. MusicXML choice.

Like most people in the space I'm using ABC for LLM generation (e.g. generating sightreading exercises and etudes) but MusicXML for processing and rendering the output. Would be nice to have something somewhere in between the over-simplified ABC and overly verbose MusicXML.

luigi_123 2 hours ago | parent [-]

> Would be nice to have something somewhere in between the over-simplified ABC and overly verbose MusicXML.

Hard agree.

Early on I actually tried to write my drum charts directly in ABC Notation but it wasn’t a great fit. Then I made a simple parser for my language that outputs ABC because I thought it would be simpler but I found it to be very limiting, so now I use Vexflow’s low level API for rendering. I found it to be more customizable than ABC with a nice JS / TS API. It’s good for my use case (rendering) but ofc it doesn’t work as a save format.

Good luck with Trebella :)

kukkeliskuu 5 hours ago | parent | prev | next [-]

Maybe 10 years ago I started to build Guitar Hero style game with real electric drums, initially to teach myself drumming. The idea was to extract drum information from real songs (so I was exploring a DSL as well). I guess modern AIs could be used to implement this much quicker.

8note 8 hours ago | parent | prev [-]

oo interesting.

is this intended for drummers, or electronic music composers?

luigi_123 7 hours ago | parent [-]

It's intended for drummers, but I wouldn't rule out anybody. It can generate sound, and I'm even using some nicer sounding samples I found on the internet, so using it for composition is realistic.

But the main use case I'm going for is my own: making sheet music for drum practice.

8note 7 hours ago | parent [-]

On the drummer side of the audience whats the need for plain text vs writing with pencil on paper?

aiming for more extensions to The New Breed than just Syncopation that you could auto-generate for funny practice/things you wouldnt think of to play?

luigi_123 2 hours ago | parent [-]

Forget the DSL part for a second and what this can do is: it can render sheet music, play the corresponding sound and display the same music as a rhythm game.

People writing sheet music with pencil on paper don't need any of that so I'd say this software would be pointless for them. I'd say this leans heavily on hobbyists or beginners, like I said the main use case is my own, and I'm no professional drummer.

This is not a sales pitch, it's just a small project I've been having fun building for myself :)