Solfege: is it possible?



Schef, I think I identified the problem. The syntax error is as follows:

file “stdin”, line 1

(Btw, “stdin” is enclosed in < and > characters, but they don’t show up in my post.) I opened your file in IDLE and saw that line 1 has the following:

#!/usr/bin/env python

This appears to be for a unix or Linux machine. I’m running Windows 10, so I think that your script is choking on this line. In the script example for Windows in the Python 3.8 documentation, it shows the following as the first line:

#! python

So, I’m going to change the first line in your script and give that a try. I may do the same thing with the other scripts in the folder if I need to.


Hey, i have never try to run this on Windows. I should/will try it next week and fix issue which i run into. I also did not try to run it on musescore 2 version, i dont know if the project xml has changed during the migration to version 3.

About repetition question. I did not intend to handle the repetition it that automated manner because it is a little bit complex situation with multi lyrics lines and voltas, etc. I would rather write a musescore project file manipulator which would write all repeats as a single line song with repetitions written out and then check in musescore if everything is ok and then run the script to convert it to .s5p file format. Also dont forget to save musescore file as uncompressed so mscx instead of mscz.


Hey Schef, thanks for your reply to my post about the problems I had running your script on Windows 10. I tried to post another reply, but the forum won’t let me. Instead it forced me to send you a personal message. So, here it is.

I don’t have a problem converting my songs with repeats into ones without repeats. I tend to create these anyway for Band in a Box because continuous songs are much easier to deal with in that context. Also, MuseScore 2 (mine is 2.1) should actually be easier for you to work with than 2.0 because it has less features and capabilities than the newer version has. Even so, I was thinking of asking you if you had considered having your script convert XML files to the Synth V format instead of MuseScore files. This would make your script capable of handling exported files from any notation software that can export XML files (Finale, Sibelius, etc.). Also, I know that your script can handle songs with extra staffs for harmonies, but I only write single melody/single staff songs without harmonies, in case you’re wondering.


Wow, I guess I was wrong, Schef. My post showed up in the thread anyway. Whatever!

And, yes, I did save my MuseScore file in .mscx format. Thanks for the reminder.


My initial idea was to create a musescore manipulation script which would make my life easyer. Create piano track from chord names so i can check that my harmonies are ok. Or split single chord track into separate tracks. I also have a old hymns song book project where i would use this scripts to give unknown songs a new perspective. This is why musescore file format which is open source was interested to me. My intension was not to make a synth v universal loader. They sould implement this if it is interested to them and have customeres for it.


Have you ever considered using Band in a Box to check your harmonies? If not, I suggest that you do because it’s an awesome program. I’ll give you the link below in case you don’t already have it. They usually have a sale in December, so you may want to check out their website in the meantime.

I agree with you about Synth V developers making their own universal converter if enough customer interest exists for one. I only had suggested this because it seemed like that would be an easier task, but I had forgotten that MuseScore is open source, so that changes the picture considerably. I’m perfectly content with a .mscx to .sp5 conversion utility that works on Windows 10.

Here’s the link to Band in a Box:


Thanks for the suggestion. There is no bend in a box port for Linux so using it via wine it’s not really something i would enjoy in. I found and maybe i would use this for accompaniment but for now i just need root chords to hear if everything is in order.


I had forgotten that you have Linux instead of Windows. Sorry! Too bad they don’t make a Linux version. There may not be enough demand for it.

Have you made any progress on getting your conversion utility to work on Windows 10?


Hey schef, after spending at least three hours researching and experimenting today, I finally got your MuseScore to Synth V conversion script working on Windows 10 but I’m not getting a usable output file. I tested your script on one of your example files and ended up with an output file of 0 bytes. When I tested it on a shortened test file of mine, I ended up with an output file of 3 Kbytes that I was able to open in Synth V. However, there was nothing to play. My original test file size is 28 Kb. I also got a 3 Kb output file from a full size test file of 134 Kb. So, something still isn’t right. I kept seeing an error message that Python couldn’t find the click module. I eventually figured out that I had to install that using Pip. I also noticed in your script a command to import re, but I couldn’t find any re module to install. Perhaps this is the remaining problem I’m having. Also, I edited the first line in all of your scripts so that they now read “#! python”. Perhaps I should change it back to “#! python3”. Anyway, I’ll keep working on this, but I’d appreciate any suggestions you may have. Thanks!


Schef, I tried changing the first line in each script to read “#1 python3” but it didn’t make any difference. I also checked and found out that the re module comes standard with Python, so that’s not the problem either. So, I have a suggestion. I’ve created a MuseScore file of the song “Row, Row, Row Your Boat” and uploaded it to my Box account for you to download and test on your system. If you can’t successfully convert this file to a Synth V file using your conversion script, then the problem may be with my version of MuseScore (2.1). Otherwise, the problem must be elsewhere. Here’s the link to my test file for you to download:

Also, I decided to try your conversion script on this file as well so that I could provide the output file to you for you to examine. Here’s a link to the output file that I uploaded to my Box account:


I was just trying your score. So the problem is in musescore versions (it expects a voice). Just try to open your musescore2 file in musescore3 and save it as musescore3 uncompressed. This should work as a workaround.


Thanks, schef, for trying my test score and letting me know your findings. I had spent so much time the last few days researching and working on the process of installing a virtual Linux OS (I originally chose Ubuntu 15.04 but ended up with Linux Mint Cinnamon 18.0 32-bit) and getting Python 3 to work in that OS that I completely forgot about the possibility that my main problem might be with the version of MuseScore that I’m using. However, I had planned to also install MuseScore 3 on my virtual Linux OS so that I could do all of my file converting and testing in that environment. But to my dismay, I discovered that I should have installed the 64-bit version of Mint because a 32-bit version of MuseScore 3 is not available for Linux. So, I finally decided to install MuseScore 3 64-bit for Windows 10 in a different folder than MuseScore 2.1 so that I wouldn’t have to convert all of my 2.1 scores to version 3. (This is actually recommended in an article on the MuseScore website.) After I opened the 2.1 test score and saved it as a 3.0 score, I tried your script on the 3.0 score. Sure enough, it worked without any issues whatsoever.

If I had done this last week, I could have saved myself countless hours of work along with lots of stress and grief. Nevertheless, all of that work was not in vain because I now have a fully-functional virtual LInux OS installed on my PC that I can use for other things. Plus, I learned a lot in the process and benefited greatly from the mental challenge. So, thanks for your amazing conversion script, and thanks for figuring out why it wasn’t working for me.


I’m glad you got your setup working. And welcome to the world of scripts where anything is possible :slight_smile:
The script is not perfect but it has everything i needed until now. I will work further on the script and similar scripts that ill be needing in the future. Thanks for using it and going through so much trouble to get it working.

Happy new year.


Thanks again, schef, for this awesome script. I used it on another one of my songs, and it worked flawlessly.

Regarding your need to test your harmonies, I thought of another option for you. It’s called Hookpad. It’s a free online tool that creates basic arrangements from chord progressions. You can even import a midi melody. I was using this before I bought Band in a Box. Here’s the link to the website where you can check it out:

Also, there are tutorial videos on how to use Hookpad along with lots of other songwriting resources at the main Hooktheory site, which is Hope it helps!