Music notation rendering with abcjs

It would be great to have a plugin that uses abcjs to allow blocks of ABC notation to be rendered as musical notation and be playable.

17 Likes

This would be very cool! At the minute I spend a lot of time in Musescore, and am constantly faffing about exporting pngs from there to include in my notes. abcjs looks awesome – I’m not familiar with it, but it reminds me of this project I used to mess around with https://www.coreymwamba.co.uk/musify/

2 Likes

Wholeheartedly seconded! It would be incredible if we could explore musical ideas in Obsidian using the Zettelkasten methodology.

I have a question though: is it possible to develop a LilyPond plugin for Obsidian? I wonder if LilyPond code can be rendered in line since you normally need to compile the code when using LilyPond.

3 Likes

It just occurred to me that users of Typora might have had similar feature requests. Upon a little web searching, I found this Typora GitHub issue thread that might be useful.

I just started learning to code and is no where near being able to turn this idea into a plugin for Obsidian. But on the off chance that no one else is interested enough to do it, I’ll certainly be glad to develop a LilyPond plugin.

I also had this in mind. I’m in a similar situation, but I agree that this would be pretty helpful plugin. I want to contribute, but it also might help to find other people who would be interested in contributing to developing this.

Looking around, to me a more likely candidate is something like this: https://www.vexflow.com/

It is open source and javascript based, which I am guessing will work better in Obsidian.

1 Like

Chiming in just to make this feature request louder! I’m a musician and I so analyses of the pieces I play often. It’d be great to have music notation integrated, the way math notation is.

I’m aware that Lilypond is supported in Latex via a package. Perhaps including Lilypond as a Latex package instead of rewriting everything in JS with a JS library like ABC or Vexflow, it’d be less work?

Anyways, musicians are currently using Latex to write general bass analysis anyways! Really love Obsidian!

1 Like

Aaah, so I’m new to Obsidian and don’t know much about the structure (or about plugin coding)… so you reckon LaTeX is the better option? I suppose I assumed the LaTeX support was limited to math, and I don’t know much about how all that works in terms of integrating other LaTeX packages.

Personally I think the best approach is including LilyPond in LaTeX because

  • I suspect LilyPond has a larger audience than abcjs or vexflow. I’ve been using it for years and never heard of the latter two until now.

  • It seems like the most versatile approach to rendering music notation in Obsidian.

    Click for details

    According to LilyPond docs for using LilyPond in LaTeX, in addition to directly writing code on the fly, users can also insert LilyPond files or MusicXML files.

    I would choose to always insert LilyPond files when I need to use music notation in Obsidian. This way, I would be able to

    • Edit and debug long code in a dedicated environment (LilyPond, Frescobaldi, etc.)
    • Insert existing LilyPond files I wrote before
    • Keep all LilyPond files organized in my /Attachments folder in the Vault, just like other attachments
  • I assume it’s less development work to include LilyPond since Obsidian already supports LaTeX.

2 Likes

I am really interested in this (also as a casual “coder” if I can count myself as such) thank you for the explanation.

Just a small correction, Obsidian doesn’t support LaTeX, it supports mathjax which is not exactly the same, see here for more details.

3 Likes

I somehow got the wrong impression that MathJax is a LaTeX package. Thank you for the explanation!

1 Like

I think abcjs would be easier to add and for most people to use. Lilypond isn’t the most straightforward program to get into from scratch.

I would also love to see a way of keeping music notes in Obsidian. What are the options so far since LaTeX doesn’t seem to be included?

There’s a plugin in the list of third-party plugins, it uses abcjs, and is called “Music notation”

1 Like

Another way is to use musescore, flat.io, noteflight or something similar and then embed the sheet music from that site into your notes. Then you can even listen to it from within your notes