Two parts played at the same time have to agree on their notes. A loop in the wrong key does not sound a little off; it sounds wrong, and no amount of mixing fixes it. So the key is the second thing to check on any loop you want to build on, right after the tempo.
The good news is that "the same key" is far too strict. Every key layers cleanly with three others, and once you know which, the number of loops that fit your idea roughly quadruples.
The short answer
Any key sits comfortably with four keys in all:
- itself
- its relative: the major or minor key that uses exactly the same notes
- the key a fifth above, on the same side (minor with minor, major with major)
- the key a fifth below, on the same side
These four are one step apart on the Camelot wheel, the numbering system popularised for DJs by Mixed In Key. It gives each of the twelve minor keys a number with an A and each of the twelve major keys the same numbers with a B. Two keys layer when they share a number, or sit one number apart on the same letter.
The chart
Every key, what it layers with, and how many loops live on ColabLoop right now sit in that key or one it layers with. Minor and major share a row because they share a number: each is the other's relative. The count links straight to those loops.
| Minor · A side | Major · B side |
|---|---|
G# minor1A Layers with B maj, D# min, C# min 4 loops → | B major1B Layers with G# min, F# maj, E maj 2 loops → |
D# minor2A Layers with F# maj, A# min, G# min 5 loops → | F# major2B Layers with D# min, C# maj, B maj 3 loops → |
A# minor3A Layers with C# maj, F min, D# min 3 loops → | C# major3B Layers with A# min, G# maj, F# maj 3 loops → |
F minor4A Layers with G# maj, C min, A# min 3 loops → | G# major4B Layers with F min, D# maj, C# maj 2 loops → |
C minor5A Layers with D# maj, G min, F min 4 loops → | D# major5B Layers with C min, A# maj, G# maj 3 loops → |
G minor6A Layers with A# maj, D min, C min 3 loops → | A# major6B Layers with G min, F maj, D# maj 4 loops → |
D minor7A Layers with F maj, A min, G min 4 loops → | F major7B Layers with D min, C maj, A# maj 1 loop → |
A minor8A Layers with C maj, E min, D min 3 loops → | C major8B Layers with A min, G maj, F maj 2 loops → |
E minor9A Layers with G maj, B min, A min 5 loops → | G major9B Layers with E min, D maj, C maj 2 loops → |
B minor10A Layers with D maj, F# min, E min 4 loops → | D major10B Layers with B min, A maj, G maj 2 loops → |
F# minor11A Layers with A maj, C# min, B min 3 loops → | A major11B Layers with F# min, E maj, D maj No loops yet |
C# minor12A Layers with E maj, G# min, F# min 2 loops → | E major12B Layers with C# min, B maj, A maj 1 loop → |
Relative major and minor: same notes, different home
A minor and C major use exactly the same seven notes: A B C D E F G. What changes is which note feels like home. That is why they share a number on the wheel (8A and 8B), and why a loop in one sits under a part in the other with no clash at all.
To find a major key's relative minor, count down three semitones: C major to A minor, G major to E minor, F major to D minor. Going the other way, a minor key's relative major is three semitones up. The mood shifts, usually brighter towards the major, but nothing collides.
A fifth either side: one note different
Moving a fifth up or down changes exactly one note out of seven. A minor has an F; E minor, a fifth above it, has F sharp instead. D minor, a fifth below, swaps B for B flat. Everything else is shared.
So these pairings almost always work, and the one note that differs is the place to listen. If your part leans hard on that note, over a loop that plays the other version of it, you will hear the rub. Usually it is a passing note and nobody notices. When it isn't, move your part, not the loop.
What about modes and other scales?
Loops on ColabLoop can be filed under a mode or a scale, not only major and minor, and the filter places each one on the wheel by the notes it uses:
- Modes sit with their parent scale. D Dorian uses C major's notes with a minor feel, so it sits at 8A beside A minor, and a search for A minor with compatible keys will find it.
- Harmonic and melodic minor stay at their minor key's position, but their raised notes can rub. A harmonic minor has G sharp where its relative, C major, has G. Listen before you commit.
- Pentatonic scales use only notes from their parent key, so they layer at least as well as it does. The blues scale adds one note outside the key, the blue note, on purpose.
- Whole tone, diminished and chromatic scales are symmetrical and have no home key, so the filter only ever matches them exactly.
Keys further round the wheel
DJs also make bigger jumps round the wheel to move from one track to the next, played one after the other. Those moves are for transitions, not for stacking two parts at the same time, so the compatible-keys filter leaves them out. If two parts are more than one step apart, expect a clash.
When the keys don't match
If a loop you love is a semitone or two away from your idea, pitch-shifting is usually the answer. Most DAWs move a loop by a small interval cleanly. Further than that, voices and acoustic instruments start to sound unnatural, and it is often better to move your own part instead.
Finding loops in keys that fit
On the loops page, set a key and a scale, then tick Include compatible keys. The page names the extra keys it added, so it is always clear why a C major loop appeared in an A minor search.
When you publish a loop of your own, tag the key it is actually in. ColabLoop reads it from a
filename like Dark Keys F# Minor 142 bpm.wav, and it files flats under their sharp spelling, so
a loop named in B flat minor is listed as A sharp minor, the same key written the other way. Tempo matters just as much, and
the BPM guide covers where each genre usually sits.
Background on the theory: relative keys and the circle of fifths on Wikipedia. The chart is generated from the same code the loops page uses to search, so it can never list a pairing the filter does not return.