Chord-symbol playback

• Aug 20, 2018 - 20:01

This seems like a simple idea, but potentially very, very useful. Namely, to create a new function, or else some kind of plug-in, that would play chord-symbols, regardless of the notes below them (as a possible option), or that would play back "lead sheets" containing chord symbols, that never had notes below to begin with.

In fact, There are only four or five programs that I know of which perform such a function, so creating such a new function would dramatically increase the versatility of MuseScore.

One such program is "Band-in-a-Box," another is "iReal Pro," another is "Improvisor".

Automated playback could be as simple as a block-chord of whatever instrument the user already has installed, or it could possibly include a kind of automatic arpeggiator using the same. It would not have to be more complicated than that, as long as the playback followed the beat correctly.

I have a handful of scores that include only the melody. Sometimes I would like to hear a playback with simple chord accompaniment, but I could easily type in the chord symbols myself; typing in the notes, however, is a bit of a challenge for me, and at the moment, I have no MIDI connection to "play" them in, either. Either case would require time, and sometimes all I want is a quick "sketch" of how the piece sounds, without too much concern for accuracy and style.

Attachment Size
Jesus_Loves_Me-chords only.mscz 12.55 KB

Comments

In fact, for such a new feature, it would be indispensible if it would not only create these chords or arpeggios, but actually show the new notes on the existing staff, or create a separate staff below and show the new notes or chords there. (If it creates them for listening, why not show them, also?)

Once they are shown on a score, they would automatically be printable, or exportable, along with the original data, in MIDI format or XML, MuseScore format, etc., as if an ordinary multi-instrument score.

For an arpeggio, it would just be a question of making the notes fit into the beat allotted, special considerations for the time signature (e.g., I assume that 3/4 arpeggios would be a bit shorter than 4/4 arpeggios, half-note arpeggios, shorter than quarter-note arpeggios, etc.)

In fact, rather than arpeggios, perhaps we could even choose from some preset permutations. For example, rather than just up and down (e.g., 1-3-5-8-5-3-1), one preset could be 1-5-3-8-5-3-1. Maybe the user could design and pre-define his own patterns within the plug-in (or feature) in a small window, using an array of eighth-notes, quarter-notes, half-notes, rests., etc.) (By the way, have you ever used the freeware program for PC called "Weird Metronome"? It has an interesting approach by which the user has unlimited freedom to design the patterns (and sounds) that he needs for tailor-made rhythm settings. It is simply incredible, but the same principles could be applied to a new MuseScore plug-in or built-in feature)

So, instead of allowing only whole-note chords, arpeggios and interesting permutations could be allowed in the new plug-in or feature.

Consequently, the user could then duplicate the new staff on his own, and redesign the duplicate staff to play the same chords in yet a different way. For example, on one of the new staves he could have simple block chords, but on the duplicate he could have an interesting arpeggio going simultaneously.

Well, it's not a simple idea. I try it every now-and-then (once in a year or two), and give up. I'm a retired programmer, which means that I'm qualified to the job, but there are obstacles on the way.

The first one is that I'm not young, and I'm not becoming younger every year. The second is the QML framework, which resembles the WPF framework that I used in the past, but lacks many features. Luckily it uses the Javascripts language, which I know. The algorithms for playing chords, other than block chords, are not so simple. The last, but not least, is the poor documentation of the MuseScore plugins framework.

To sum up, I am going to continue, but promise nothing.

In reply to by gideonrv

I want to show an example of poor documentation:

The Harmony object, the most important object for my plugin, is documented as in the screenshot below. Sorry it's not a workable documentation; I can't get the chord notes out of it. So I went to the older MuseScore 1 and found this link: https://musescore.org/en/plugin-development/harmony-object, which helps only a little.

Then I posted an issue: https://musescore.org/en/node/231191, and the negative answer I got is not there. No great help. The last clue that I found is here: "id integer the chord id, as in styles/chords.xml" (in MuseScore 1 above). What is it, a charade?

Then I found the xml file (attached). Since I can read XML, I understand this clue. In all my long professional life, I have never read such a documentation.

Attachment Size
chords.xml 30.51 KB

In reply to by gideonrv

Well, I am very grateful that you have taken the time to try. I am not even a programmer, but I come up with lots of novel ideas for improving any program, and, unfortunately, they always seem to make life harder for the programmers. Ha.

Of course, it is really a small miracle that MuseScore has come as far as it has, so, in a sense, I should not complain.

Thank you so much for all of your hard work and generous contributions of time.

In reply to by gideonrv

Realistically, I would not recommend trying to do this by plugin, since as mentioned, the facility is kind of limited. Instead, I think one's programming talents would be much better put to use actually designing and implementing a feature within MuseScore itself. It is, after all, open source. But it would be important to get some consensus on how it should work before starting the implementation.

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