Four-strand chorale desk
Voice Leading Simulator
Move soprano, alto, tenor, and bass between two harmonies; hear every endpoint and inspect the rules that make a choir line sing cleanly.
Drag an arrival dot; the chord-tone rail will snap it into tune
Carry the arrival through two more harmonies
How to play
Mouse or touch: choose the key and two Roman-numeral chords. Drag each arrival endpoint across its colored rail; it snaps to a correctly spelled chord tone in that voice’s practical range and sounds immediately. Diamond buttons lock a voice against solvers. Ear buttons isolate one strand. Bass-turn buttons rotate chord inversion.
Keyboard: focused rail sliders use ←/→ for the previous or next available chord tone. Outside form controls, number keys 1–4 focus soprano through bass, L locks that strand, I isolates it, and M starts or holds the choir morph. Focused buttons retain Enter and Space.
Conventions: ranges are soprano C4–G5, alto G3–D5, tenor C3–G4, bass E2–C4. Major keys use diatonic triads; minor keys use harmonic minor, including major V and diminished vii°. Hard errors are crossing, incomplete triads, doubled leading tone, and parallel perfect fifths/octaves. Spacing, overlap, and large leaps are style warnings.
- Start with least travel, then compare contrary outer voices: smoothness and independence are related but not identical goals.
- Use strand isolation to check whether each singer owns a convincing melody rather than merely completing vertical chords.
Using The Voice Leading Simulator, you can not only see but also hear way in which four-part harmonies moves through a series of chords. With a simple click of the mouse you can explore interface. Alternatively, if you prefer a quicker way to work, there are specific keys available to you on your computer keyboard that works quickly with this tool.
It provides an instant audio response along with a visualization of how each voice (soprano, alto, tenor, bass) moves. This allow you to grasp the sonic and physical effects of these traditional counterpoint rules.
How to Use the Voice Leading Simulator
Start with choosing your tonal context in the Key and Mode selectors. Eight major keys is available along with their harmonic minor modes. This option have the raised leading tone in the fifth chord that is common in classical voice leading.
Once you have made this choice, select a departure chord and an arrival chord from the dropdown menus. These set out the harmonic boundary across which voices will travel.
Four horizontal rails make up heart of the simulator: one rail for each voice part. The left side display the starting pitch, and on the right side you drag the slider to set the arriving pitch. When you do so, the pitch will snap to the closest valid chord tone in practical range of that specific voice. While a slider has focus, you can alternatively step through available notes using the arrow keys on your keyboard. The snapping means you will never accidently end up landing on a note that isn’t part of the desired harmony.
Turning the bass around on a given chord lets you try other versions of that same chord called ‘inversions‘. The bass rotation button change the bass from its original position (root position) to the 1st inversion and then the 2nd inversion for each selected chord. This frequently requires the other parts to shift their positions so they don’t clash with octaves or fifths and stay in good voice-leading distances. These new inversions is reflected by the simulator automatically re-assigning the voices to match.
A row of solution buttons below the voice rails give instant options for generating traditional voice leading figures. The one that will make the voices travel the shortest distance is the least-travel button; this typically produces the smoothest texture. Contrary motion makes the outer voices move in opposite directions, adding some independence to the line. Open and close bring the top three voices closer together or further apart to accommodate particular sound goals. Compare these computer generated solutions with what you have tried manually and hear how they differer.
The diagnostics panel provide instant feedback on quality of your voice leading. It highlights any hard errors like doubling of the leading tone, incomplete chords, parallel perfect intervals, crossed voices etc. The style warn you about larger melodic leaps. It also warns about too much space between notes which might be acceptable in other styles but is discouraged in strict chorale writing. Use this ledger either after manually adjusting the voicing or after solving with one of the solvers.
If you want to hold one voice in place, click on the diamond icon beside the voice rail and it will ‘lock’ that voice in position so it won’t move when you rotate through your chords or apply any automated solutions. It is helpful if you want to see what happens as the remaining voices adapts around a fixed line (for example, maybe you are trying out a new common tone), or if you want to hear just one voice alone with no support from the remaining three.
Then you move to the next level, where you extend this exercise not just through one chord change but through a chain of progressions. You’ll choose your first departure and arrival chords and then add two more chords to form a four-chord sequence. The software work out the voice leading for the whole chain for you with each step maintaining an appropriate motion from the previous node. This means you will be able to hear the effects on a longer phrase of the voice leading choices you make locally.
There’s also a morph button at the base of the widget that you can click. It begins a slow glide from the departure chord to the end of the chain and then to the final arrival. There’s a tempo slider too so you can speed it up or slow it down and spend longer following along each strand.
If you want the sound louder, then you can adjust the master volume control for the choir. You can even put it into full screen mode to free up more space on your screen.
The interface is intuitive and easy to use with keyboard shortcuts instead of a mouse. The sliders for soprano, alto, tenor and bass are controlled by number 1-4 on the keyboard. Holding L will lock active slider in place. Holding I will isolate that slider for listening. Holding M runs/ halts the morph sequence across the voices. This enables quick experimentation as well as leaving your fingers on the keyboard while you listen to what has been created.
You can click the Undo button if you mess up or want to try another solution, and it will revert back to the previous version. The simulator records all of your changes, allowing you to move back through your choices one by one. In addition, you can restore the default C major cadence whenever you like. This is great for when you find yourself deep into tricky progressions or need to clear the board and begin again from scratch.
So for example, begin with simplest option first (the one that requires least travel), and listen to most direct route from a chord to another chord. Manually move one of those voices and observe what happens on the diagnostics panel. You could try locking the soprano and then apply the opposite solution and discover some interesting possibilities that remain within the rules. The visual rails help you quickly identify any spacing or parallel motion concerns that you may not have noticed.
It’s a tool that can be used to explore, or just practice. It doesn’t require familiarity with all the rules of voice leading to benefit from it. It provides immediate feedback on what sounds good or bad by letting you see and hear it. Test out your ideas with the tools, and listen to the difference between good and great voice leading. Play around with various chord progressions and keys. Watch the changes in pitch available depending on the mode and key signature. Play around with inversions to observe their effect on the texture and bass line. As you become more familiar with the simulator, you’ll gain a deeper understanding of what is possible and constrained when it comes to four-part writing. Go ahead and start playing around by pressing the buttons and dragging the sliders.