Four Part Harmony & Counterpoint analyzer

Hello everyone. So, while working on some counterpoint and 4 part harmony exercises, I was wondering if there was an easier way to analyze and find mistakes. Then I thought it would be cool if a program could do that. So, I think it would be pretty neat if Dorico had a built in analyzer for counterpoint and 4 part writing. I think it would not only improve the product but also make it stand out compare to it main competitor Musescore. I am not sure if this is possible programming wise but I think it would be an amazing feature


What exactly would such analyzers (are harmony and counterpoint looking at the same things?) be searching for?

Personally, I rely on my training.


I believe Sibelius has a plug-in to detect parallel fifths and octaves; that sort of thing should be possible once Lua scripting is more developed by the team (or they might even implement some of this themselves).

There are also some good educational apps out there, like Harmonia and Artusi, that have full-blown exercises in harmony and counterpoint that can be graded by the computer.


Use Artinfuser (free web application), you can export XML from Dorico and import there - works fine and super easy to use. Only a Counterpoint checker AFAIK, which is probably all you need.

I’m reviewing my education from years ago, not obsessively following the rules but it’s a good checker to catch obvious mistakes.


Musescore plug-ins (for version 3 at least) can check for several things, including parallel perfect 5ths and 8ths.

I dare say checking for 5ths and 8ves (even when it works properly) is a far cry from a harmony or counterpoint “checker.”


I would like to detect parallel fifths and octaves. Contrary Fifths and Octaves, Direct fifth and Octaves for part writing

For counterpoint, it would be a lot more complicated since there is a lot of different rules for each species. So I am not sure what can work but detecting parallel unisons, fifths and octaves, detecting leaps being in the right chord, dissonances resolving by a step, might work. I’m not a programmer so I don’t know what is attainable or not

To my knowledge, no software beats Tonica Fugata 15.
Granted, quite pricey.
And to get the most out of it, there’s a learning curve that’s anything but flat.
for some screenshots Tonica Fugata 15.


Do you not think that having an analyser spot the mistakes might in some way defeat the purpose of your exercises?


For those who aren’t experts, it’s good to get feedback on mistakes. We were all beginners once.

1 Like

Whilst it may be a useful tool for students, such a thing would be better as a standalone program. Dorico is surely a notation and engraving program, that also has playback capability to assist. People are wanting it to be a full fledged DAW as well all the time. It’s not - that’s Cubase. Then adding more aspects unrelated to engraving just makes it more and more bloated and takes away from the core functionality, which still has a long way to go in terms of satisfying all contemporary notation desires. Better that they focus on that, given limited resources.

The UNIX software design philosophy was and is to make programs do one thing and do it well (and in the case of UNIX to be pipelinable). I feel this applies to application programs as well. Let Dorico do engraving and do it well. I would not like to see it turn into a kitchen sink of stuff.

Moving from the negative to the positive. You may perhaps want to look into music21 which is capable of very sophisticated, programmable musical analysis.

I don’t know if it has the functions you want. but you can ask the community.

Musically, Bach wrote a lot of parallel fifths, did you know? It’s not clear cut. Also. Brahms wrote an extensive pamphlet on the topic. To say they are completely forbidden would be a musical mistake in itself.


It’s an interesting point. When I taught harmony/voice leading, I was of two minds. My students had access to Sibelius, and some had found the plug-in. While I of course wanted them to find the errors on their, this was also a way for them to check their work before handing it in. My hope was that if they kept finding the same errors, they’d be more mindful about falling into the same traps; and, it forced them to look for other voice leading solutions. As long as the plug-in/app doesn’t suggest a solution then perhaps it’s not as bad a tool as it first appears. But I do understand the argument against.

No one is perfect and everyone makes mistakes. I think it would be a good way to see patterns of voice leading and check your mistakes like how a teacher would.

Of course it all begs the question of why do this at all? The reason for 3-4 part rule following is ‘wax-on/wax-off’ practice to build your mental composition chops. None of these exercises will get publicly played other then (ideally) by you at home, but if you miss some rules so what? As long as you keep practicing and getting better at seeing them, that’s the point isn’t it?

And even if you’re doing something for public consumption well who cares if you put in a || fifth, if it’s your intention and sounds right, or accomplishes your purpose?

Personally I like the ambiguity of not knowing of it’s strictly correct. It gets me to go back later and look at them again, and noodle further and I sometimes find mistakes, or better solutions. So that too is part of the chops, once you depend on a machine to do your thinking it diminishes your opportunity to get better at it.

I just do the exercises, print out and warm up on them as part of my daily piano practice, which combines the two activities.


As some people have already stated, imposing limits on a software makes it clear what its purpose is. Just like implementing a sound spectral analyzer would be off bounds to Dorico, so is 4 part harmony and counterpoint analyzer, even if both are related to music.
Even if this was implemented, I don’t believe it would consider the cases where indirect parallel octaves are allowed. Even indirect parallel fifths are allowed (Bach does this a lot) with regards to the inner voices, not to mention doubled thirds on specific cases.
It would be dogmatic, in my opinion.

If Dorico (or other software programs) correctly detects the forbidden voice leading from the score, it would be funny in class. Examination without digital aids is the only way to check the students’ abilities. But I would be happy if Dorico could tell me my unintentional mistakes. Haha…

I love the following writings (partially mentioned above by other users):

Cubase i find it easier to just record one vocal line, duplicate the track for however many notes I’m thinking for the harmonies, bounce the tracks then just edit their notes (5th, 3rd, octive). A harmonizer or program will only follow each note wheras for example a higher note may hold one note over a 4 note melody. Opens up more options. I always fall back and play the notes on guitar to make sure it makes sense.

The OP was asking about analysis, not composition.

I think this would be a great tool. I can’t imagine it would ever be Dorico-native, but maybe a script someday.


The thing though even if you double check your exercises, you can still miss mistakes. A computer can find it immediately.

So, I’m gonna say one thing. There is a lot of mix responses about this idea I was just throwing out. I honestly think this idea is would be helpful for younger composers and schools that uses Dorico. Whether you want to rely on your own training or think that this idea would be unnecessary to Dorico is your opinion. However please don’t share your opinion just to make yourself look better or prove a point because that is what a lot of you guys are doing. You are not even addressing most of the points I made in my OP. I did not want this thread to be a philosophical debate on whether this feature would be added or not. I just want Dorico to be the best notation software there is and beat Musescore. Even if that means having a counterpoint and 4 part harmony analyzer.

Heck, Dorico can already take a segment of what you have written and invert it, retrograde it, and etc. So, there is already compositional elements in Dorico. Not just notation.