How your arranger plugin works — ReChord

How it works

Most of you have probably played or tried a keyboard arranger. It’s that kind of fun keyboard that has buttons with styles, like rock, pop, jazz and so on. You select some style, press “Play” and an accompaniment pattern in that style starts to play automatically in a loop. Then, each time you play a chord somewhere in the lower octaves of the keyboard, the playing pattern is instantly transposed to match the chord you play. This way you can control the chord progression in the accompaniment with your left hand, while you play the melody with your right hand.

This feature arrangers have is commonly known as auto-accompaniment. Maybe the most fun and unique experience when you play an arranger is the feeling that a whole band or orchestra instantly responds to you changing the chords. If you play on stage it allows you to be a one man band, but even more, if you are a composer, it gives you full freedom to explore and improvise both melody and chords in real time, jamming and keeping alive that flow from which inspiration comes out.

Now, a quite different experience you are probably familiar with is writing music in your DAW. The unmatched editing capabilities of DAW’s allow you to input and then individually modify anything in your music, note pitches, note lengths, volume, articulation, quantization and so on. Then, when everything looks ok on your score or piano-roll, you hit “Play” and listen to the result. While listening you can hear problems you should fix, and you also get new ideas how to continue. Then you hit “Stop”, make changes, add more measures, then hit “Play” again and so on.

Now, while a DAW plays your music, your score is “frozen”, you cannot change any note in it, everything is played exactly as written or recorded. And why should it not do so? After all isn’t this what a DAW is meant to do when you hit “Play”? To play exactly what you previously told it to?

Well, yes, of course, but think of an arranger, it does much more than that when you hit “Play”. It can actually change notes on the fly, as you change chords on your keyboard! Giving you that unique feeling in the process!

Imagine the following situation you might be familiar with. You start your new song in your DAW. You lay down a couple of tracks, say for drums, bass and some synth accompaniment, then you write a couple of measures, say in A minor. Then you would probably listen to your new pattern in a loop, make a few changes, possibly add a couple of tracks, listen again and so on, until you make it sound as you like.

Now that you have a great four-measure pattern in Am and you are happy with it, there comes THAT moment when you ask yourself how to continue in the next measures. Should you go from Am to Em, or maybe to G7, or maybe to Dm passing through A7? Anyway, you already aware of what comes next: you would first duplicate your pattern on each track, then manually change each note on each track to fit the next chord in your progression. After that, if you are not happy with the new chord, or just want to test another chord, you would start over again.

Now, in that moment, before starting all the tedious work, one thought might cross your mind: why couldn’t this four-measure pattern I just wrote over A minor be a style in an arranger? So that, when I play it in loop, I can change chords on the fly, just by playing those chords on my keyboard, as I would on a hardware arranger? I could then try countless chord progressions without stopping the pattern, find on the fly which one sound good, jam along and play phrases and solos over those chords. And record everything if I wish, to keep whatever came out best.

If such thoughts ever crossed your mind, you should definitely try ReChord, because this is exactly what it does: it enables your DAW to work as an arranger!

The main feature of ReChord is to emulate in a DAW the components of an arranger and their connections, in order to provide the DAW with arranger capabilities. To understand how ReChord is setup and how it works, it is probably useful to have a look first at how a hardware arranger works internally.

When you play an arranger, the notes produced by your right hand (the melody) and your left hand (the chords) follow a completely different path inside the device. The melody notes are played exactly how you play them, while the chord notes are first processed by the arranger to figure out what chord you’ve just played, and then the whole accompaniment style is transposed to match that chord.

Inside the arranger, a style is a short pattern of accompaniment on several tracks, one for each accompaniment instrument. A jazz style, for instance, might have 4 accompaniment tracks, corresponding to a drum part (which does not require any transposing), a bass part, a piano part and a jazz guitar part. The pattern is usually written over a single chord, typically C major or A minor. The main reason of having patterns over a single chord is, of course, to give to the user the entire control over chord changes.

Now, when you press “Play” and then play on the keyboard, the arranger starts processing notes from two sources simultaneously: one source is the keyboard on which you play, and the other source is the internal style pattern. The way an arranger processes these notes is synthesized in the diagram below:

There are basically three “units” inside:

  • The Keyboard Splitter: this unit separates the notes coming from the keyboard into “chord notes” and “melody notes”, usually below and above some split point on the keyboard set by the user. Melody notes are sent directly to the instrument selected for the solo part, while chord notes are sent to the next unit, which is:

  • The Chord Scanner: this unit receives the chord notes from the splitter and, if there are at least three simultaneous notes, it figures out what chord these notes form. Then it instantly sends this chord information to the next type of unit, which is:

  • The Transposer: this unit has a double input. It receives simultaneously:

    • The notes from the internal accompaniment pattern (on each accompaniment track). These notes are written over their original chord (typically C major or A minor).

    • The information from the chord scanner on which chord that is currently being played on the keyboard.

With these inputs, the transposer will modify, on each accompaniment track, each note received from the internal pattern, to match the chord that is being sent by the chord scanner. It then sends the transposed notes to the instrument playing that accompaniment part.

As an example, suppose you simultaneously press D, F# and A on the chord area of the keyboard. The chord scanner will recognize the D major chord and send this information to the transposer.

Now suppose the transposer also receives a sequence of notes, say E, F, and A from the style pattern. As it knows in which key the pattern is written, say C major, it will interpret E, F and A as the degrees III, IV and VI of the C major scale. Then, to make these note match the D major chord you’ve just played, it will replace them by the notes of same degrees in the D major scale, so it will transpose the sequence E, F, A to the sequence F#, G, B.

This is basically how an arranger works. Now let us see how ReChord does all this in a DAW.

ReChord is a system of two plugins which communicate automatically and emulate the components of an arranger in your DAW: the ReChord Scanner, which regroups the keyboard splitter and the chord scanner functions in an arranger, and the ReChord Transposer, which corresponds to the transposer unit.

To integrate ReChord in a DAW project, one would basically use the same layout as inside a hardware arranger. This means organizing your MIDI tracks, according to their purpose, in three categories: the keyboard track, the pattern tracks and the output tracks, as follows:

  • You would set up one track to function as a keyboard track. This track receives MIDI input from your external keyboard, and on this track you load the ReChord Scanner This unit separates melody notes from chord notes, recognizes chords and automatically sends all the data to all the ReChord Transposers loaded in the project. The keyboard track has no MIDI output.

  • The pattern tracks are those tracks which you want to be transposed. On each such track you would typically write a pattern over one chord, corresponding to an instrument part in your arrangement. On each pattern track you load a ReChord Transposer While in Play mode, the ReChord Transposer will transpose in real time the notes on this track to match the chord currently being played on the keyboard track and passed over by the ReChord Scanner. Each ReChord Transposer unit has its own MIDI output.

  • Each pattern track should be associated with an output track. This track receives, plays and eventually records the transposed notes from its corresponding pattern track. On the output track you would load the virtual instrument you wish to play that part. Also, on the output tracks you would record your song with all the chord changes. To link each pattern track to its correspondent output track, you need to route, in your DAW, the MIDI output of the ReChord Transposer on the pattern track to its associated output track. Depending on the DAW routing options, you may either set the pattern track to send MIDI to the output track, or set the output track to receive MIDI from the ReChord Transposer on the pattern track. In order to receive MIDI, the output tracks have to be either in “Monitor” mode or armed for recording.

This layout is summarized in the following diagram:

This unit essentially works as a chord detection VST. It combines the functions of Keyboard Splitter and Chord Scanner in a hardware arranger. It is meant to be loaded on a dedicated keyboard track which receives a MIDI input from an external keyboard. The ReChord Scanner splits incoming notes in melody notes and chord notes, determines the chord being played, applies a global transposition, if set so, and then automatically sends all this information to the all the ReChord Transposers on all the pattern tracks in the project.

Besides its basic functions of splitter and chord scanner, the ReChord Scanner unit also provides many unique features that hardware arrangers do not have. Among these features:

  • ReChord Scanner provides a novel dynamic keyboard split mode, which allows you to play both chord notes and melody notes anywhere on the keyboard. This frees you from playing chords only in a fixed lower part of the keyboard, and melody only outside this part, as you do on hardware arrangers. But this is just one of the benefits of this mechanism:

  • As you can play chords anywhere on the keyboard, ReChord Scanner is sensitive to the octave in which you play each chord. This allows you, for example, to instantly transpose all your patterns one octave up, by just playing the same chord one octave higher.

  • ReChord Scanner is not only sensitive to chord octaves but is also sensitive to chord inversions. These two features combined allow you to use plenty of voicings for your chords, and the ReChord Transposer will automatically re-voice your patterns accordingly, producing as much variation in your accompaniment as you like.

  • ReChord Scanner features a unique inversion/octave controller. It allows you, for any played chord, to continuously change its inversions up or down through all the octaves, just by sliding the controller up or down. With this you can produce for instance smooth up or down arpeggios, as easily as sliding the mod wheel on your keyboard.

  • ReChord Scanner offers you three ways to work with chords: you can play them in real time on your external keyboard as with an arranger, you can write them on the keyboard track, or you can use the chord button area in ReChord Scanner. It features ten completely configurable buttons which play chords when you press them. The chord button area is organized in twelve chord banks with instant access (giving you a total of 120 chords you can store). There are three ways to store a chord on a button: you can simply play the chord on the external keyboard and click the “Record” tab on the button, you can use the built-in virtual keyboard to compose your chord and then record it on the button, or you can manually set the chord with the controls on each button.

The chord buttons, the inversion/octave controller and all the transposition controls in ReChord Scanner are MIDI learnable and can be configured to be used with an external midi controller.

This unit is meant to be loaded on every pattern track in the project, and its purpose is to transpose the pattern notes according to the chord information that is being sent by the ReChord Scanner. For this, you only need to specify in what key the pattern is written (the default is C major). It outputs the transposed notes, to be played by the virtual instrument loaded on the corresponding output track.

Unlike hardware arrangers, which offer you very little control on how internal patterns are transposed, except for the chord itself, the ReChord Transposer is an extremely configurable unit. It comes in fact with a very powerful mechanism that allows you to control how each pattern should respond to various subtle aspects of your performance. Here are some examples:

1) Since ReChord is sensitive to different inversions of the same chord, you can set in ReChord Transposer the way each pattern responds to chord inversion changes. You can, of course, always use a fixed inversion response, as regular arrangers only have, but you can also use three types of dynamic inversion response:

  • a standard dynamic response, which re-voices chords in your patterns according to the chord inversion you play on the keyboard.

  • a random dynamic response, which produces slight random variations in chord inversions around the inversion you play, even if you do not change it. This is useful for instance if you do not play several inversions regularly, but still want your patterns to have some inversion variation.

  • A modal dynamic response, which revoices not only chords in your patterns according to the chord inversions, but also melodic phrases. In more technical terms, in this setting, the different chord inversions are associated to different diatonic modes, depending on the degree of the first note in the inversion. For instance, in a major key, a chord without any inversion is associated to the Dorian mode, the first inversion with the Phrygian mode and the second inversion with the Mixolydian mode. Then the notes in the pattern, besides being transposed to the key of the current chord, they are also diatonically translated to the corresponding mode in that key. This produces a very natural variation which may transform a basic melodic phrase into a complex melody just by varying the inversions of its chords. Anyway, forget what you’ve just read and just try it for a melodic phrase!

2) ReChord Transposer also provides a very flexible mechanism for properly handling chord tensions in your patterns. For this you can use two modes, called Tension Adding and Tension substitution, and choose the mode that suits better the musical contents of each pattern. Think of two very different situations:

  • you write a rhythmic pattern with basically just chords triads, so the notes inside are essentially root, third and fifth mostly played together. To transpose this pattern to, say, a dominant seventh chord, you would most likely want to add the minor seventh to each triad. For this type of situation, you would choose the Tension Adding mode, which automatically adds the tension(s) when one of the triad notes are played. You can configure this mode by specifying on which degree (root, third or fifth) the tensions should be added, and which tensions you want to add. There are also several presets for this mode, for most usual situations. Also, you can control whether the 9th, 11th or 13th tensions should be played within the root octave or one octave above.

  • you write a bass line with, say, an up and down arpeggio over an octave. To transpose this to a dominant chord, you would definitely not add the seventh to any of the existing notes, as you would in the first case, because you want your bass to play just one note at a time. Instead you would rather substitute the high root note in the arpeggio with the minor seventh. In this case, you would prefer the Tension Substitution mode, which provides two natural substitution patterns.

3) Within each pattern track, you can split the pattern note range into two independent zones, the Bass zone and the Main zone. Within each of these zones you can have individual settings for chord octave, inversion and tension response. This is useful for instance for piano patterns, which usually have both a baseline and some chord accompaniment. In such a case, you would probably set the bass area to the Tension Substitution mode with no inversion response, and the main area to Tension Adding mode with, for example, a dynamic inversion response.

4) In a hardware arranger, the melody notes you play on the keyboard are sent to a separate solo track. Within Rechord, the ReChord Scanner automatically sends to all Rechord Transposer units not only the chord data, but also the melody notes and the chord notes as they were played on the keyboard. You can then individually decide, for each pattern track, if the chord notes or melody notes should be played along with the transposed pattern notes. These options, Play melody notes and Play chord notes, give you most flexibility to manage the melody and the chord notes you play on the keyboard. Here are some of many possible scenarios:

  • You can, for instance, set up a “solo track” by loading ReChord Transposer on a track with no pattern, and set it to play just the melody notes, not the chords. This is useful for example when you want to play just the solo part on a dedicated instrument.

  • Similarly, you can set up a “pad track”, also without no pattern, on which you set ReChord Transposer to play only the chord notes. You can use this if you want, for example, to echo your chord to some strings or synth pad.

  • You can set a pattern track that has some accompaniment pattern to also play the melody notes, so that they all be played by the same instrument on the output track. You can use this for example if your pattern contains say an accompaniment piano part, and you want to also add the piano melody on top of the accompaniment, so that they are played together by the same instrument.

  • You can set the ReChord Transposer to play the chord notes from the keyboard over a rhythmic chord pattern. In this way you can “override” the pattern here and there, and bring in instantaneous rhythmic modifications and fill-ins.

Whenever you choose to mix melody/chord notes with accompaniment pattern notes, ReChord Transposer allows you to set the priority between the melody/chord notes and the pattern notes. If you choose the On Top mode, then any melody/chord note from the keyboard will interrupt and replay the same note, if this note happens to be already playing from the pattern, so the keyboard melody/chord notes have priority over the pattern. Without the On Top option, the pattern has priority over incoming melody/chord notes. Also, if you choose the Legato option, ReChord Transposer will tie identical notes from different sources, to make the output as smooth as possible.

All these options in ReChord Transposer allow you to shape each pattern track for the best response to your performance.