• Hi and welcome to the Studio One User Forum!

    Please note that this is an independent, user-driven forum and is not endorsed by, affiliated with, or maintained by PreSonus. Learn more in the Welcome thread!

How does Harmonize Melodies work?

freddiphin

Active member
@Lukas - I mentioned my curiosity over here in a feature request post but then saw in the feature list for Harmony Wizard the item "Harmonize melodies" and got excited.
I do not yet own Harmony Wizard but very much would be inclined to purchase it if it did indeed achieve something along the lines of harmonization of a melody line that I speak of there. IS that what the function Harmonize Melodies does in HW ?? In other words, within a given key (or even mode, dare I ask?) and only a single one-voice melody line, will it extrapolate a harmonic structure to accompany that melody line following some rules of SATB voicing? And, if so, are any of those rules or parameters adjustable or constrainable?
And otherwise, can you give an overview of what Harmonize Melodies requires and then achieves?

Thank you for all your work!
 
Hi,

there are several features for harmonizing melodies or basslines and adding additional voices. However, they work by creating chords below or above a melody. The algorithms are not based on classical voice leading, counterpoint, or other principles of traditional harmony and composition.

Have you taken a look at the Harmony Wizard online manual? It explains in detail which features are included, what options they offer, and what you can do with them. It also includes short GIFs demonstrating what the results look like.


In this case, these would be the interesting pages:




 
@Lukas - I have been reading the manual and am just trying to wrap my head around the intention of "Harmonize melody with..."

I know you say that "The algorithms are not based on classical voice leading, counterpoint, or other principles of traditional harmony and composition." Are they based on some other principles of harmony that you prefer, or it it simply - chords must be diatonic to scale and include the melody note and are otherwise random, as you seem to indicate with in the manual and the names and description of some tools. And if so I presume that this proceeds then on a note by note basis totally unaware of anything that comes before or after in the melody. I don't quite understand the musical, and especially harmonization-al, logic behind "Random chords". Is the intention just to get notes up on the page quickly but in the basic "correct" range to then be intentionally moved around as melody dictates?

In short, is it safe to assume that, when being given a melody and scale (only) there is no voice leading or any voicing or harmonization theory at all that is taking into account the phrasal relationships established in the melody as a whole?

Sorry to be picky with the questions, but I'm not getting those details in the manual. Nor am I asking you to do anything more than you've expertly done. I just wanted to get an idea of what it does do so as not to assume things that it doesn't.
 
@Lukas - I have been reading the manual and am just trying to wrap my head around the intention of "Harmonize melody with..."

I know you say that "The algorithms are not based on classical voice leading, counterpoint, or other principles of traditional harmony and composition." Are they based on some other principles of harmony that you prefer, or it it simply - chords must be diatonic to scale and include the melody note and are otherwise random, as you seem to indicate with in the manual and the names and description of some tools. And if so I presume that this proceeds then on a note by note basis totally unaware of anything that comes before or after in the melody. I don't quite understand the musical, and especially harmonization-al, logic behind "Random chords". Is the intention just to get notes up on the page quickly but in the basic "correct" range to then be intentionally moved around as melody dictates?

In short, is it safe to assume that, when being given a melody and scale (only) there is no voice leading or any voicing or harmonization theory at all that is taking into account the phrasal relationships established in the melody as a whole?

Sorry to be picky with the questions, but I'm not getting those details in the manual. Nor am I asking you to do anything more than you've expertly done. I just wanted to get an idea of what it does do so as not to assume things that it doesn't.
Something like Scaler 3 is more suited to the stuff you are asking about. Of course, there is nothing stopping you having both!
 
Something like Scaler 3 is more suited to the stuff you are asking about. Of course, there is nothing stopping you having both!
I have Scaler 3. And it is from making the same assumption about it and finding that it doesn't achieve this either that drove me to this discussion here. There is no function in Scaler 3 that will harmonize an unaccompanied melody.
It is my own technical (coding/developing) naivete that lead me to believe that this would be a basic function of what any "Harmonization" app/plugin would do, in addition to all the other wonderful time-saving things that they do. The important thing that I am realizing now is the difference between that idea and a simple(r) "Harmony" app.

A proper harmonization function would be more of a generative tool where the harmony apps are more manipulative (of an existing context), I guess you could say. And I guess most people start with chords and overlay a melody later. Or start with a melody and use trial and error from the scale toolbox of "allowed" chords until they find one that works for them (totally acceptable). However, there is also fun (and instruction) in starting with a naked melody and building up the harmony from it following a kind of structure. This comes natural to me, but there are different theoretical approaches that are also fun to play with.
I'm realizing that harmonization theory is now, evidently, a niche practice (outside of actual theory/composition classes, that is), so perhaps not worth the time of more popular DAW-oriented music applications. And I guess it's not that easy, or likely very time-consuming, to write scripts that put these very algorithmic, theory-based methods to use. I found that This guy did it , for example, in a couple ways. There are a couple others as well that are python based or otherwise script-based approaches. All good. I just was imagining a more "musician-friendly" version at this point.

None of this requires a computer to do it. But then, nothing we do here does. :p

And, again, if I am just still missing something that is indeed there already in this plugin or elsewhere, I'd be happy to know it.
 
I don't know this app/plugin at all, apart from having seen a few ads. It sounds like it *might* be the kind of thing you are looking for.

MIDI Agent
 
I don't know this app/plugin at all, apart from having seen a few ads. It sounds like it *might* be the kind of thing you are looking for.

MIDI Agent
Interesting. Thank you for pointing it out!
 
  • Like
Reactions: BKK
@Lukas - I have been reading the manual and am just trying to wrap my head around the intention of "Harmonize melody with..."

I know you say that "The algorithms are not based on classical voice leading, counterpoint, or other principles of traditional harmony and composition." Are they based on some other principles of harmony that you prefer, or it it simply - chords must be diatonic to scale and include the melody note and are otherwise random, as you seem to indicate with in the manual and the names and description of some tools. And if so I presume that this proceeds then on a note by note basis totally unaware of anything that comes before or after in the melody. I don't quite understand the musical, and especially harmonization-al, logic behind "Random chords". Is the intention just to get notes up on the page quickly but in the basic "correct" range to then be intentionally moved around as melody dictates?

In short, is it safe to assume that, when being given a melody and scale (only) there is no voice leading or any voicing or harmonization theory at all that is taking into account the phrasal relationships established in the melody as a whole?

Sorry to be picky with the questions, but I'm not getting those details in the manual. Nor am I asking you to do anything more than you've expertly done. I just wanted to get an idea of what it does do so as not to assume things that it doesn't.
@Lukas - any more insight on the above questions? The online manual doesn't really satisfy
 
@Lukas - Sorry to press this, but given no free trial version or refund option I would just appreciate some insight in how this particular, to me, function works so I know what I'm buying. I understand that the Harmonize function doesn't work the specific way I was asking about above, but what I would appreciate knowing (and what the available information does not make clear) is how indeed it does work, what goes on underneath the choices it makes, and what are the margin of possibilities that can be applied to alter that, if any. So simply: is there any music-theoretical parameters to guide the choices or is it just diatonic "brute force" creating of harmonies, one shot deal? I'm assuming you're the right person to ask.
 
Hi @freddiphin, I’ve finally found the time to put together a more detailed explanation of how it works.

The Harmonize Melody macros are essentially ready-made presets for the Create Chords command. They choose useful combinations of scale source, voicing, direction, number of voices and chord placement, so you can get musical results quickly without configuring every option manually.

1785666737538.png


The important point is that Create Chords is a scale-voicing and melody-harmonization tool. It is not simply adding arbitrary notes.

Harmonize with random chords in scale​

In this mode, Harmony Wizard first builds the diatonic chords of the scale selected in the Note Editor.

With Advanced chords disabled, it uses diatonic triads. With Advanced chords enabled, it uses four-note chords with an added diatonic seventh. It then keeps only the chords that contain the current melody note.

For example, in C major, an E melody note can be harmonized with chords such as:
  • C major: C–E–G
  • E minor: E–G–B
  • A minor: A–C–E
One of the suitable chords is selected, so the result can vary between runs while still remaining connected to both the selected scale and the melody note. In other words, “random” does not mean completely arbitrary - the choice is made from a musically restricted set of matching diatonic chords.

The selected chord is then voiced above or below the melody note. The melody note remains the reference voice, and Harmony Wizard searches for the appropriate chord tones in the selected direction. The Voicing setting controls whether the next available chord tones are used or whether chord tones are skipped to create wider voicings.

This is intentionally a note-based harmonization method. It gives you several valid harmonic interpretations of a melody and leaves the final progression open for creative editing, rather than trying to replace the composer by automatically imposing one complete functional chord progression.

Stack notes based on scale​

This mode creates what jazz musicians often call scale voicings.

Starting from each selected melody note, Harmony Wizard stacks notes from the current scale above or below it. With No skip, this produces normal diatonic third-based structures. The Skip options create wider scale voicings by moving farther through the scale between voices.

For example, in C major, starting from C and adding notes above produces:
  • No skip: C–E–G–B
  • Skip 1 Note: C–F–B–E
  • Skip 2 Notes: C–G–D–A
So No skip creates conventional diatonic third-based voicings, while the Skip options create progressively wider, more open scale voicings.

So this mode is especially useful for parallel scale voicings, harmonized melodies, string arrangements, brass writing and more experimental modal structures. The number of added notes determines how many additional voices are created.

Stack notes based on Chord Track​

This mode uses the chord that is active in the Chord Track at the position of each melody note.

Harmony Wizard takes the pitch content of that chord and places suitable chord tones above or below the melody. This means the Chord Track defines the harmony, while Create Chords generates the actual MIDI voicing around the selected notes. When there is no Chord Track event at a note position, no additional chord notes are inserted there.

Chord Placement​

Chord Placement determines how often a new voicing is created.

You can harmonize every selected note, or restrict the generated chords to bar, half-bar, quarter-note or eighth-note positions. This is useful because a melody does not always need a separate chord on every note. Notes between chord positions can remain part of the melody while the generated harmony continues underneath them.

So, in practical terms:
  • Harmonize with random chords in scale finds suitable diatonic chords containing the melody note and creates a voicing from one of them.
  • Stack notes based on scale creates scale voicings by stacking diatonic intervals above or below the melody.
  • Stack notes based on Chord Track creates voicings from the harmony already defined in the Chord Track.
  • The Harmonize Melody macros are convenient starting configurations for these possibilities.
The idea is to provide a quick musical starting point - whether you need a second voice, a complete chord, open orchestral voicings or alternative harmonic ideas - while still leaving you in control of the final arrangement.

I hope, this helps.
 
Hi @freddiphin, I’ve finally found the time to put together a more detailed explanation of how it works.

The Harmonize Melody macros are essentially ready-made presets for the Create Chords command. They choose useful combinations of scale source, voicing, direction, number of voices and chord placement, so you can get musical results quickly without configuring every option manually.

View attachment 3836

The important point is that Create Chords is a scale-voicing and melody-harmonization tool. It is not simply adding arbitrary notes.

Harmonize with random chords in scale​

In this mode, Harmony Wizard first builds the diatonic chords of the scale selected in the Note Editor.

With Advanced chords disabled, it uses diatonic triads. With Advanced chords enabled, it uses four-note chords with an added diatonic seventh. It then keeps only the chords that contain the current melody note.

For example, in C major, an E melody note can be harmonized with chords such as:
  • C major: C–E–G
  • E minor: E–G–B
  • A minor: A–C–E
One of the suitable chords is selected, so the result can vary between runs while still remaining connected to both the selected scale and the melody note. In other words, “random” does not mean completely arbitrary - the choice is made from a musically restricted set of matching diatonic chords.

The selected chord is then voiced above or below the melody note. The melody note remains the reference voice, and Harmony Wizard searches for the appropriate chord tones in the selected direction. The Voicing setting controls whether the next available chord tones are used or whether chord tones are skipped to create wider voicings.

This is intentionally a note-based harmonization method. It gives you several valid harmonic interpretations of a melody and leaves the final progression open for creative editing, rather than trying to replace the composer by automatically imposing one complete functional chord progression.

Stack notes based on scale​

This mode creates what jazz musicians often call scale voicings.

Starting from each selected melody note, Harmony Wizard stacks notes from the current scale above or below it. With No skip, this produces normal diatonic third-based structures. The Skip options create wider scale voicings by moving farther through the scale between voices.

For example, in C major, starting from C and adding notes above produces:
  • No skip: C–E–G–B
  • Skip 1 Note: C–F–B–E
  • Skip 2 Notes: C–G–D–A
So No skip creates conventional diatonic third-based voicings, while the Skip options create progressively wider, more open scale voicings.

So this mode is especially useful for parallel scale voicings, harmonized melodies, string arrangements, brass writing and more experimental modal structures. The number of added notes determines how many additional voices are created.

Stack notes based on Chord Track​

This mode uses the chord that is active in the Chord Track at the position of each melody note.

Harmony Wizard takes the pitch content of that chord and places suitable chord tones above or below the melody. This means the Chord Track defines the harmony, while Create Chords generates the actual MIDI voicing around the selected notes. When there is no Chord Track event at a note position, no additional chord notes are inserted there.

Chord Placement​

Chord Placement determines how often a new voicing is created.

You can harmonize every selected note, or restrict the generated chords to bar, half-bar, quarter-note or eighth-note positions. This is useful because a melody does not always need a separate chord on every note. Notes between chord positions can remain part of the melody while the generated harmony continues underneath them.

So, in practical terms:
  • Harmonize with random chords in scale finds suitable diatonic chords containing the melody note and creates a voicing from one of them.
  • Stack notes based on scale creates scale voicings by stacking diatonic intervals above or below the melody.
  • Stack notes based on Chord Track creates voicings from the harmony already defined in the Chord Track.
  • The Harmonize Melody macros are convenient starting configurations for these possibilities.
The idea is to provide a quick musical starting point - whether you need a second voice, a complete chord, open orchestral voicings or alternative harmonic ideas - while still leaving you in control of the final arrangement.

I hope, this helps.
This is a wealth of information and more than I could hope for. Thank you for taking the time to write that, Lukas! That does clarify some, and excite as well. I am going to give it a try.
It is obviously a lot of time you have spent working to help diminish the amount of time others need to spend working! :-) And, although it doesn't seem to touch on the (very niche, I know, but oh so satisfying!) methods and theory behind harmonizing naked melodies (the very thing that goes on silently in our brains brought to life with math!) that I am interested in (and now working to create for myself), it certainly seems like a huge boost for workflow with an existent chord chart, which is %90+ of what is wanted anyway.
Thanks again! I will look forward to playing with it.


P.S. For what it's worth, I do find that the word "random" lands a little odd in a musical/harmony context. Even "random" within diatonic constraints doesn't sound very satisfying. I for one would never intentionally choose random anything musically, especially in any kind of harmony-theoretic sense. In Improvisation perhaps one allows for chance, but even that is not "random". But I think I know what you're getting at. I will see....
 
Last edited:
You may be right that "random" is not the best word here. It may have a more negative connotation in English than I intended as a non-native speaker.

In music - and in creative processes in general, including improvisation - decisions still have to be made. If several chords are possible for a particular melody note, and I want different runs of the command to produce different results, the software needs some way of choosing between those possibilities. In a sense, the goal is to simulate part of the human decision-making process. When I sit at the piano, I may have several possible ways to continue and I often choose one of them intuitively (or sometimes somewhat arbitrarily). One straightforward way to model that is to collect the suitable chords and select one of them by chance.

Of course, this is only one of the approaches offered by the command.

I’m also very interested in more traditional methods of melody harmonization, part-writing and harmonic theory, and I would certainly like to explore those further and incorporate more of them into Harmony Wizard over time. There are a few other frequently requested features ahead of that on the roadmap, though - so I don’t expect to run out of things to work on anytime soon :-)
 
I’m also very interested in more traditional methods of melody harmonization, part-writing and harmonic theory, and I would certainly like to explore those further and incorporate more of them into Harmony Wizard over time. There are a few other frequently requested features ahead of that on the roadmap, though - so I don’t expect to run out of things to work on anytime soon :-)
I hope you are well supported (paid) for all the work you do! I am happy to offer up a little of it myself. Thank you again.

Here is a look at some interesting work on scripting harmonization. I am experimenting (with a lot of help) with some of it myself, utilizing the AugmentedNet network in particular. For me it is not about getting something to do it for me. I know very well how to harmonize but I know it natural and instinctively, not being "trained" in it by anything other than by ear, and this has been a path into getting to know "how" I know what I'm doing. :unsure:

Keep up the good work!
 
Back
Top