Jump to content

extended chords (dominants & tensions)


EsotericLabs
 Share

Recommended Posts

Hello dear midi boxers,

May i suggest an extended chords table for the SEQ V4?  This one  add dominants (major with a lowered 7: C E G Bb and half diminished Cm7b5 C Eb Gb Bb) and tension chords, used for  jazzy flavors, like 7b5; 7#5, 7b9 and 7#9 (Hendrix!).  Normal dominants are common in rock and blues contexts; half dim is very beautiful in minor progressions. Tensions typically occur in  jazz ii-V7-I progressions like Dm7 - G7b9-  Cmaj7.

The extended chords table is below, i think it still fits the lettering system A-Z; a-z.  I hope TK adds them to the  next firmware!

/////////////////////////////////////////////////////////////////////////////
// Local variables
/////////////////////////////////////////////////////////////////////////////

  // note: chords are used together with the forced-to-scale feature in seq_scale.c
  // if no key should be played, add -1
static const seq_chord_entry_t seq_chord_table[] = {
  // 1   2   3   4     <----> (6 chars!)

//  chords present in the current firmware
  {{ 0,  4,  7, -1 }, "Maj.I " },
  {{ 4,  7, 12, -1 }, "Maj.II" },
  {{ 7, 12, 16, -1 }, "MajIII" },
  {{ 0, -1, -1, -1 }, "Root  " },
  {{ 4, -1, -1, -1 }, "3rd   " },
  {{ 7, -1, -1, -1 }, "5th   " },
  {{ 0,  4, -1, -1 }, "R.+3rd" },
  {{ 0,  7, -1, -1 }, "R.+5th" },
  {{ 0,  4,  7,  9 }, "Maj.6 " },
  {{ 0,  4,  7, 11 }, "Maj.7 " },
  {{ 0,  4,  7, 12 }, "Maj.8 " },
  {{ 0,  4,  7, 14 }, "Maj.9 " },
  {{ 0,  7, 12, 16 }, "Maj.10" },
  {{ 0,  7, 12, 19 }, "Maj.12" },
  {{ 0,  5,  7, -1 }, "Sus.4 " },
  {{ 0,  4,  8, -1 }, "Maj.+ " },

  {{ 0,  3,  7, -1 }, "Min.I " },
  {{ 3,  7, 12, -1 }, "Min.II" },
  {{ 7, 12, 15, -1 }, "MinIII" },
  {{ 0, -1, -1, -1 }, "Root  " },
  {{ 3, -1, -1, -1 }, "3rdMin" },
  {{ 7, -1, -1, -1 }, "5th   " },
  {{ 0,  3, -1, -1 }, "R.+3rd" },
  {{ 0,  7, -1, -1 }, "R.+5th" },
  {{ 0,  3,  7,  9 }, "Min.6 " },
  {{ 0,  3,  7, 11 }, "Min.7 " },
  {{ 0,  3,  7, 12 }, "Min.8 " },
  {{ 0,  3,  7, 14 }, "Min.9 " },
  {{ 0,  7, 12, 16 }, "Min.10" },
  {{ 0,  7, 12, 18 }, "Min.12" },
  {{ 0,  3,  6,  9 }, "Co7   " },
  {{ 0,  3,  8, -1 }, "Min.+ " }

// added dominant chords and tensions
  {{ 0,  4,  7, 10 }, "Dom7  " }
  {{ 0,  3,  6, 10 }, "Min7b5" }
  {{ 0,  4,  6, 10 }, "Dom7b5" }
  {{ 0,  4,  8, 10 }, "Dom7#5" }
  {{ 0,  4, 10, 13 }, "Dom7b9" }
  {{ 0,  4, 10, 15 }, "Dom7#9" }

};
 

Link to comment
Share on other sites

Hi TK, good morning!

I'd say: Major 8, Major, 10, Major 12, Minor 8, Minor 10, Minor 12. They are basic major and minor chords with some notes doubled in the higher octave. I can imagine that the arpeggiator function could do that  transposition.   Maybe the same goes for the basic inversions II and III in major and minor.

Furthermore,  there are some doubles in the existing table:  the {{ 0, -1, -1, -1 }, "Root  " }  {{ 7, -1, -1, -1 }, "5th   " } {{ 0,  7, -1, -1 }, "R.+5th" }, occur both in the major and the minor set.  So that might free up nine places.

You might also want to add {{0, 3, 6, -1}, "Dim3"} (diminished triad) and rename {{0,3,6,9}, " Co7"}  to {{0,3,6,9}, "Dim "} (fully diminished, slightly different from half diminished {0,3,6,10}. Finally, I'm not sure whats the use of the Min+ (0,3,8,-1) chord in a musical context, but maybe somebody uses it.

Hope you like 'em.  If you want example progressions, I'll post some.

Link to comment
Share on other sites

The intention of the duplicates was to get Minor chords in the same order like major codes, so that it's easier (faster) to remember & access the chord.

In addition we've the problem, that any change in the table will lead to compatibility issues with existing patterns.

But there might be a good compromise:

  • additional chord tables could be defined, selectable as "Chord1", "Chord2", "Chord3", ... parameter layer
  • currently there are only 4 notes per table item, but I could enhance it to 6 or 8 notes if required
  • chord tables won't be editable in RAM, but I can integrate them directly in the firmware so that they are available for all users

So - how would "your" chord table look like exactly?
I need 32 entries

Best Regards, Thorsten.

Link to comment
Share on other sites

Yes I can imagine that there were good reasons for the current chord table and that changing is will cause issues

I think i'd have six notes maximum per chord, my table would look something like this (B = H = 11; Bb=10)..

  • power chords: 1) root fifth C G; 2) root fifth eight  C G hi-C
  • major chords  3) major triad (C E G), 4) major sus 4 C  F G 5) major 6 (C E G A) ;  6) major 7 (C E G BH) 7) major 9 (C E G BH D)  8) major 11 (C E G BH D F) 9) major 13 ( C E G B D A)
  • minor chords 10)  minor  triad  (c eb g)  11) minor 6  (c eb g a)  12) minor 7 ( c eb g Bb) 13)  minor 9 c eb g bb d 14) minor 11 c eb g bb d f  15) minor 13  c eb g bb d f  16) minor 13 c eb g bb d a
  • dominants:  17) dom7 ( c e g bb)  18)  dom7sus4  c f g bb   19) dom9 c e g bb d;  20) dom11 c e g bb d f; 21) dom13 c e g bb d a)
  • tensions:  22: 7b5 c e gb bb; 23: 7#5  c e g# bb; 24: 7b9 c e g bb db; 25: 7#9 c e g bb d#;  
  • specials:  26: diminished triad c eb gb; 27: diminished c eb gb a; 28: half diminished aka m7b5  c eb gb bb; 29 polychord  c f d;  30 major #5 triad c e g#; 
  • and to fill to 32 maybe two double stops  31:  root major 3rd c e and 32: root minor 3rd:  c eb

real jazz cats might want additional double tensions like 7#5b9  and stuff that may be covered in another set.  Some people might like chords with different bass notes like G/B  lo-B G B D   etc.

I guess this covers a decent amount of terrain.  please let me know if i can help fill chord templates for code.  I've got some (guitar) chords books over here for inspiration. I don't know how piano players would fill them in, hope they tune in to this chord set thread.

Link to comment
Share on other sites

Here you go!

static const seq_chord_entry_t seq_ELs_chord_table[] = {
  // 1   2   3   4  5 6    <----> (6 chars!)

// power chords and double stops
{{0,  7,  -1,  -1, -1,- 1}, “Pwr5  ”},
{{0,  7,  12,  -1, -1,- 1}, “Pwr8  ”},
{{0,  4,  -1,  -1, -1, -1}, “R+mj3 ”},
{{0,  3,  -1,-  1, -1, -1}, “R+min3”},
// major chords
{{0,  4,   7, -1, -1, -1},  “Maj   “},
{{0,  5,   7, -1, -1, -1},  “Sus4  ”},
{{0,  4,   8, -1, -1, -1},  “Maj+  ”},
{{0,  4,   7,  9, -1, -1},  “Maj6  ”},
{{0,  4,   7, 11, -1, -1},  “Maj7  ”},
{{0,  4,   7, 14, -1, -1},  “add9  ”},
{{0,  4,   7, 11, 14, -1},  “Maj9  ”},
{{0,  4,   7, 11, 14, 17},  “Maj11 ”},
{{0,  4,   7, 11, 14, 20},  “Maj13 ”},
// minor chords
{{0,  3,   7, -1,  -1, -1}, “Min   ”},
{{0,  3,   7, 10,  -1, -1}, “Min7  ”},
{{0,  3,   7, 14,  -1, -1}, “Minad9”},
{{0,  3,   7, 10,  14, -1}, “Min9  ”},
{{0,  3,   7, 10,  14, 17}, “Min11 ”},
{{0,  3,   7, 10, 14, 20},  “Min13 ”},
// dominant chords
{{0,  4,   7, 10, -1, -1},  “Dom7  ”},
{{0,  5,   7, 10, -1, -1},  “7Sus4 ”},
{{0,  4,   7, 10, 14, -1},  “Dom9  ”},
{{0,  4,   7, 10, 14, 17},  “Dom11 ”},
{{0,  4,   7, 10, 14, 20},  “Dom13 ”},
// dominant chords with tensions
{{0,  4,   6, 10, -1, -1},  “7b5   ”},
{{0,  4,   8, 10, -1, -1},  “7#5   ”},
{{0,  4,   7, 10, 13, -1},  “7b9   ”},
{{0,  4,   7, 10, 15, -1},  “7#9   ”},
// diminished
{{0,  3,   6,  -1, -1, -1}, “DimTri”},
{{0,  3,   6,  9,  -1, -1}, “Dim   ”},
// half diminished aka m7b5
{{0,  3,   6, 10, -1, -1},  “m7b5  ”},
// stacked 4ths
{{0,  4,  10, -1, -1, -1},  “poly4 ”}

};

Edited by EsotericLabs
mistake..
Link to comment
Share on other sites

Hi,

Would be very nice feature IMHO. I like the chords with nice chromatic notes in it. Some suggestion:

- Current chord table states " // note: chords are used together with the forced-to-scale feature in seq_scale.c ". If we are using foreign (chromatic) notes, it will conflict with fts. My suggestion is using the chord table without fts or the chord generation algorithm should ignore the fts. All the note numbers are chromatically defined in the table, so only the root note should be followed. I think it's a way better implementation than with fts, so you can add some nice colored chords from other scales to the song too.

- The Min7 should start with 0, I think.

Br. Norbim

Link to comment
Share on other sites

2 hours ago, norbim1 said:

Hi,

Would be very nice feature IMHO. I like the chords with nice chromatic notes in it. Some suggestion:

- Current chord table states " // note: chords are used together with the forced-to-scale feature in seq_scale.c ". If we are using foreign (chromatic) notes, it will conflict with fts. My suggestion is using the chord table without fts or the chord generation algorithm should ignore the fts. All the note numbers are chromatically defined in the table, so only the root note should be followed. I think it's a way better implementation than with fts, so you can add some nice colored chords from other scales to the song too.

- The Min7 should start with 0, I think.

Br. Norbim

Yes, the chords with tensions should not be forced to scale, otherwise, there'll be no tensions anymore.  But iirc this is switchable.

Min7 corrected, thank you Norbim.

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...