Rules Based Music Composition

• Oct 27, 2017 - 02:02

I understand that musescore is primarily engraving/layout software but I have an interest in rules based music composition, whereby a computer program is given some rules about music structure,harmony and arrangement and by means of various random seeds produces a tune.
I have been working on such a program for some time and my original intention was to offer it to musescore users who are bored at Christmas time (or any other holiday period) to experiment with and see what they get.
Sadly Musescore do not seem at all interested in the idea so I'm posting here to see if there are any other like-minded folks.
The program is written in C++ (I also have a Java variant) and runs well on Codeblocks or Netbeans.
It is not small (268 files and about 2.3mB source) so I have no means of distributing it.
You will need to be comfortable with compiling/ fault finding/editing/ and musicianship (as an aside, I possess none of these skills hence my request for help)
The output from the program is a Midi file which I import into musescore to process further.
I would need help to host the source, check and modify the code for mistakes and improvements with the object being to issue a program that a non program savvy musician (music teacher or student or whatever) can just run.
There is virtually no user input (apart from Java version) no documentation and few comments but I've been able to work out (largely by trial and error) how the program works and how all of the modules interact.
I think it will be a lot of fun for anyone curious about rules based composition and music theory in general but I stress again this is not commercial quality like musescore.
I attach a program composition for reference to see what is produced so far, imported to musescore and instruments (apart from piano) assigned.



That is an interesting piece of music. It's almost good. Definitely not bad though.

The notation is very weird. It seems some work needs to be done on that.

I don't know if there would be any interest in allowing you to incorporate it into MuseScore, that would be lasconic's call. I would suggest that you turn it into music xml rather than midi so the notation issues are reduced, probably because of the interpretation of the midi produced by your program. Making the output XML would probably make it easier to integrate it into MuseScore.

I would suggest making it a plugin, but its size leads me to believe this would not be a very good route to go.

In reply to by mike320

Thank you, Mike @mike320 for your considered and helpful comments, always good to hear what you think!
I agree about XML format but I haven't a clue how to implement that. I wasn't suggesting that it be incorporated into MuseScore but simply that it be made available on their downloads site for anyone who was interested to try it as a stand-alone program that calls musescore at the end for display and editing purposes.

I agree – post it to GitHub.

So far, the closest thing that I've seen which at-all resembles it is "Band In A Box," which is dreadful.

In reply to by Nicolas

Was that you involved on "improvisor"?

Look at the cast of thousands involved in improvisor development and you suggest that I just put my program on to git-hub which will only achieve a distribution and version control mechanism. It will not help with documentation,packaging, testing or improvement, (but then again, I think you know that).

So, in summary, two Musescore employees say no thanks.

Message understood.

In reply to by crm114

For the record, I am not a MuseScore employee; I am one of the many people who volunteers their time to help with this particular open source project, because i believe in its goals. Lots of others volunteer similarly. And there are lots of other programs out there on GitHub that also have people volunteering to help with.

Anyhow, I am not sure what you think I am saying "no thanks" to. I was simply responding to your statements "I have no means of distributing it" and "I would need help to host the source". I am not saying "no thanks" to this. I am responding quite directly and affirmatively, suggesting that based on your stated needs, GitHub seems the perfect solution. It is what that facility is designed for and it provides these services very well.

Of course, as for any other open source project, it will still be important to find volunteers who are willing to help with documentation, packaging, etc - obviously. Discussing your project in a positive way and creating a community of interested people who might then be interested in downloading it and checking it out for themselves seems a very good strategy. So I encourage you to continue a positive discussion that encourages people to get excited by and involved with your project!

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