Request: Realize chords plugin

• Jun 4, 2012 - 14:06

This weekend I tested quite a few programs (MuseScore, Sibelius First, etc). In Sibelius First there is a plugin to convert chord symbols into notes (not sure if I use the right terms here, I'm quite a music notation newbe). It would be awesome to have something like that in MS as well!

If you want to see how Sibelius First handles this:
- download at & install
- start a new piano score
- click first measure
- open 'Text' tab
- click on 'Chord Symbol'
- enter a few chord symbols (tab goes to next measure)
- click escape to stop entering chord symbols
- open 'Home' tab
- click on a blank spot of your score to deselect any selection
- Click on 'Plugins' -> 'Realize Chord Symbols'
- Click 'Yes' to confirm you want to do this for the entire score
- Change settings to whatever you like (Piano) and click 'OK'
- The cords have been added as an extra staff


Yes, this would be nice. Unfortunately, there is currently no way to get at the chord symbols from the plugin framework. And really, turning chord symbols into notes is much more an art than a science, and a pretty complex art at that, if you want to do it at all well. However, note there *is* a plugin that can convert your file into a format that Improv-Visor can use. Impro-Visor is an open source program that does this job quite well. No need to re-invent the wheel here.

So I think what probably makes more sense is to try to improve that integration. Have the plugin send the score off to Impro-Visor to generate the playback, save that as MIDI or MusicXML, then import that back into MuseScore. There would need to be work done within the main MuseScore program to get even that far - we'd want to import that MIDI or MusicXML file as one part within your score, not as a whole new score. Ultimately, I could see Impro-Visor and MuseScore could be even more tightly integrated, so it could be invoked in real time each time you play back your score, for example.

In reply to by Marc Sabatella

Some integration with Impro-Visor is a nice idea and I would also appreciate it! Anyway generating sophisticated bacground is not what the mentioned Sibelius plugin does. All we (or at least I) need is to generate notes like when the chord is played e.g. on guitar: realize_chords.png
This was obtained from Sibelius when Chord every beat option was selected. There are also other options:

  • Chord every chord symbol
  • Chords follow score rythm
  • I think they all are useful..

    There is no kind of "art" or any sophisticated algorithm needed to do this, just to know how chords are played on guitar.

    If there is no way how to get at the chord symbols from the plugin framework I suggest to extend the framework. Or it may be better to implement Realize chords feature into "MuseScore core"..

    Thanks for considering:)

    Attachment Size
    realize_chords.png 14.74 KB

    In reply to by HoHo

    That in itself is an art, though. The realizations you've posted may be one possible way of realizing those chords, but real guitarists would seldom actually play those particular voicings. There are dozens of ways of playing a G chord. And that's just for the simple triads. Get to seventh chirds and beyond and we're probably talking hundreds of ways of playing each. So any such facility would have to choose so ehiw, and would thus be good for some types of music but lousy for others. And given that, I don't think building such a System into the core makes much sense.

    But the good news may be that it seems the new plugin framework for 2.0 might possibly allow for this thing more reliably - it appears it will allow fuller access to MuseScore data structures. So if someone were to try to create such a plugin, it will probably become more feasible than currently.

    In reply to by Marc Sabatella

    Thanks for answer. It will be fine if 2.0 version comes with plugin framework that allows that!

    Of course that this kind of chord realization doesn't cover all that guitar offers - I think in Sibelius the easiest way of chord playing is defined for each chord and a MuseScore plugin that could do this would be helpful for me even though I like using Impro-Visor for (let's say more complex) automatic background music generating.

    Would it be feasible to emit chordnames to an external program that can do the chord generation? Perhaps just on an output stream, perhaps using OSC?

    My thinking is the usual Unix-ish view that it's not so great to try to put everything into the main application; better to hand off some sopecialist stuff to other programs that are designed specifically for the task. Plug-ins are only one way one may do that.

    In reply to by midimaker

    No. The plugin framework for the version 1.x does not provide access to chord symbols, so there has been way for anyone to provide such a plugin. For 2.0, I believe there is some access, so someone could try to write one now that the release of 2.0 is getting close.

    Meanwhile, there are other programs like Impro-Visor that specialize in generate accompaniment, so I'd simply recommend you use one of them for that purpose, and MuseScore for the purpose of notation. Then if you wish to hear your MuseScore-notated score played with Impro-Visor-generated accompaniment, combine the output later. You could do that by loading the Imrpvo-Visor output into MuseScore and then coying and pasting into your score, or by exporting your MuseScore to MIDI and combining in a sequencer. Perhaps Impro-Visor itself might have a way to import the MIDI; not sure about that.


    LinuxBand and MMA are another way to do that.

    My thinking really was to send chordnames to a program not unlike impro-visor or MMA so that it can work concurrently with MuseScore.

    In reply to by berteh

    It crashes MuseScore if I try to use it

    Fatal: ASSERT: "note->tpc() != Tpc::TPC_INVALID" in file ...\MuseScore\libmscore\undo.cpp, line 1340 (:0, )

    Ah, I found where. I have an "F4" and 2 beats later a plain "3", something that the chord parse doesn't pars (and doesn't need to), guess the plugin needs to handle that somehow.

    But 'fixing' that it still doesn't add chords, only their base note, like a D3 for a Dm, an A for an Am7 etc. Also these are without stems?

    In reply to by Jojo-Schmitz

    Hi Jojo-Schmitz.

    thanks for trying it.

    To get more than the base note you need to double-click on each chord before calling the plugin... to force MuseScore to parse them. No need to change them, but to make musescore think they changed. I'm still looking at a workaround for this major annoyance, any suggestion is welcome. (see documentation )

    Notes are with no stem and do not display in the proper length (whole, halves...) neither, but they play for their whole segment. on my todo list too.


    Do you still have an unanswered question? Please log in first to post your question.