Hacker News new | comments | show | ask | jobs | submit login
Show HN: RiffUp – Edit Music Notation in the Browser (riffup.com)
36 points by orlandohill 1492 days ago | hide | past | web | 38 comments | favorite

It's far from perfect, but I thought someone here might get a kick out of this.

It's written in CoffeeScript, and uses Raphael.js to draw parts of the Gonville font.

Audio playback is done via Flash, so it may give an error in your browser. I looked into using MIDI.js for playback, but that gave worse results in some browsers.

I've done a few experiments into git-style music collaboration. I'm not convinced that enough people will actually pay for private collaboration, so I've put that on hold, for now.

Side Note: I'm currently looking for remote work. Contact details are in my profile.

I have a (now in maintenance-mode) site at http://eMusicTheory.com that's based on Java applets... but based on the number of subscribing teachers who are contacting me over the past 2 years saying "the school is getting a bunch of iPads, but the drills don't work!", at some point I'm going to have to start migrating to JavaScript.

I have a pretty significant codebase (in Java, for now) representing music theory concepts as objects, which should be pretty simple to convert to JS, but I haven't tried tackling the notation rendering yet at all -- mostly because I've been busy on another project for 2 years now.

Get in touch if you'll be open sourcing this library, or if you have any interest in building JS-based music theory drills; there's certainly a market.

This is pretty cool. How far do you intend to take it? Here's a "use case"/feature request:

In addition to being a developer/entrepreneur, I moonlight as a high school marching band instructor/arranger. In other words, I'm a semi-professional composer. I work with a team of people who write different aspects of the music: One guy writes the winds, I write the percussion, and others contribute as well.

Currently, whenever one of us has an idea about something to do with whatever we're arranging, we have to either get everyone together in a room with a piano to talk through it, or someone has to sit down with a professional music notation program (we use Finale) and "sketch" it all out.

It would be really cool if there was something online like RiffUp that would let me put together that "sketch" quickly and easily, and send a link to my colleagues. Like a "pastebin" for sheet music.

To get there, it would need to do a few more things, in roughly priority order: * Allow you to save your creation and send a link to someone else. * Support "-let" rhythms (triplets, for example) * Use multiple staves * Set the tempo * Allow other time signatures (time changes would be good too) * Choose a different voice for each staff

The great benefit here would be simple composition without having to worry about all of the stuff associate with making a real score. So much of music notation is about making stuff that prints nicely, which is actually a separate process from just creating the music. And, of course, being able to easily share it with colleagues without requiring them to have the same software I do (or to download a file and open it in that software).

And to answer the followup question that you'll ask: Yes, I'd be willing to pay for this.

Thanks for the great feedback!

Your use case would certainly be supported by the kind of service that I've had in mind. That said, it sounds like Noteflight would already fit your need to share quick musical sketches.

I'm not sure how far I'll take RiffUp. Competing directly against Noteflight/GuitarPro/Sibelius/Finale/... is an option, and there are a few innovations that can be made in that space. That wouldn't be an easy path, though.

I was more excited by the prospect of creating a community based around mass collaboration. The idea that a few notes could be forked to create many distinctly different songs.

For now, finding money to live is the overwhelming priority, so I can't justify spending much time on this. It could be that I pursue things further, later on.

This is a really neat application! It would be really interesting cool for an application like to work with guitar tablature notation. Maybe I have a new project ahead of me?

I think it would also be easier to use purely from the keyboard if there was a way to use the Up and Down keys. I realize that Up and Down will scroll the window - perhaps "CTRL+UP" and "CTRL+DOWN" could move the cursor up and down on the staff? I know some people that are used to applications like Finale Notepad/Sibelius prefer entering notes purely from the keyboard for speed purposes.

We're doing the guitar tablature thing at Soundslice: http://www.soundslice.com/demo

We've got standard notation support high on our to-do list. :-)

It's sort of a different product than RiffUp, as Soundslice is all about "reverse engineering" songs and giving you tools to help learn a song, with the philosophy that it's better to learn from a source recording than from sheet music/tab alone.

Yes, adding support for guitar tab is definitely on my TODO list.

I agree, editing purely with the keyboard can be much faster. Holding down Ctrl with the UP and DOWN keys sounds like a good suggestion, too.

This is fantastic work. If integrated with an app like http://soundslice.com, it might become the defacto app for musicians. Keep up the good work!

it will be interesting to see how soundslice and riffup solve the collaboration thing. that's where these tools can differentiate themselves from desktop apps such as transcribe!. online crowdsourcing tool for reverse engineering of music. nice!

Thanks! You're right, having music notation in Soundslice would be great!

Very cool! I'm a n00b to the music-notation-app-world, but was able to get going pretty quickly. I'm not sure if any of these are already standard features on most music notation apps...but I think keyboard shortcuts to the note/rest types would help. Maybe even an option to eliminate some clicks (just press the key corresponding to the note/rest to place it underneath current cursor position)

Then again, being a n00b, maybe I don't realize that speed-of-input isn't the bottleneck for composers hehe.

Thanks for the feedback! Those keyboard shortcuts sound very helpful. I think, they're standard in some programs, too.

This is really neato. How "richly-featured" do you plan on making this?

The reason I ask is that it would be really nifty to be able to share or export these tunes. Either via MIDI, or preferably, via another notation format. If they will be fairly simple melodies, ABC might be a great output format, which converts easily into sheet music notation and midi.

Otherwise, you might want something fancy-pants like Sibelius (or whatever people are using nowadays for notation.)

Slightly off-topic, but a couple of the more powerful open-source music notation pieces are software are Lilypond [1] and Mup [2].

They've both been around for awhile, work from custom text-formats, and support a ton of music typesetting features.

[1] http://www.lilypond.org/ [2] http://www.arkkra.com/

I have had a lot of luck with Rosegarden too: http://www.rosegardenmusic.com/

I'd consider RiffUp incomplete until it could express the same musical concepts as GuitarPro/Sibelius/Finale. I don't have much interest in purely presentational features, though.

Import/Export is on the TODO list. If there ended up being a custom RiffUp format, it would be open and documented.

Was trying to use Sibelius recently and it s*cked big time!

An open format for export would be great!


Disclaimer: I have no experience with MusicXML. The vast majority of the music I want to notate fits on a single staff, and ABC is brilliant for that -- it's a well-established portable open music format that's easily entered and edited by hand. (Technically speaking it can do multi-staff music as well, but it starts to get a bit over-complicated and hacky at that point, IMO.) http://en.wikipedia.org/wiki/ABC_notation

PS The "Score" example on the ABC notation page is terrible, but it's a limitation of the lousy standard abc2ly translator, not the ABC format. I've got my own abc2ly which does a much better job of it...


Midi is hardly appropriate or useful for music engraving. It's for controlling a device to output music in the way you want, not for recording how it looks on paper.

Nice! One suggestion: up/down keys for changing the selected note(s). Personally, the thing that I've never been satisfied with Sibelius (and others) is that I have to use a mouse way too often to do things that could easily be accomplished with keystrokes. I want notating music to be more fluid, like programming…or playing piano–just pluck away as the ideas come. Good luck, the possibilites here are exciting.

Great suggestion. A fluid, intuitive editing experience is something I'd like to achieve.

This is brilliant. I've been working lately on something very similar (using d3 + gonville) so I know how much work must have gone into this.

I'm sure you're aware of how much is left to do, but if I had to offer one criticism for right now it's that getting around is a bit slow. Ctrl+left/right for moving between measures and home/end for each line would be quite helpful.

Yes, it was a lot of work getting this far, and there's still plenty to be done before it's a full-featured music editor.

Great suggestion for moving between measures! I'll definitely have to add that.

Great one! i would suggest to have a look at http://noteflight.com/ html5 version.

I am a big fan of, changing the octave and converting from piano -> clarinet etc..

i was planning to do something like this, but you have already done a great job

I agree, Noteflight is excellent, and they're making good progress with their new version.

My initial idea was to create something closer to GitHub, but with music notation and guitar tab instead of text files. I'm not sure where I'll take things, at the moment, though.

The current notation software options are really painful for anyone but the hardcore composer. This is needed.

I have some relations at music schools. Reach out if you'd like me to connect you.

Mate, this is super cool and awesome.

Next step... support http://www.hummingbirdnotation.com/ ? :)

Actually, that's not such a crazy idea. Realistically, it would be months or years away, but Hummingbird seems like a valuable teaching language, and it could fit well with some of the other ideas I have.

Can you override the native ctrl function in Chrome?

I can't get ctrl-click to work because Chrome (Mac) brings up a pop-up context menu only.

Thanks for the feedback!

I've updated it so that you can use either Ctrl-Click or Shift-Click. Let me know, if you're still having problems.

Very cool work. I would echo the suggestion to fully support keyboard entry, and I would also suggest sharps and flats.

Collapse adjacent rests? I was mucking around deleting notes and ended up with a bar full of quarter and eighth rests.

It would be cool if you could share it!

Good point. I can certainly imagine open-sourcing the code for this app. I'm not sure how soon that would be, though.

Wow. Congratulations!


Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact