Jump to content

Request for comments: chords


TK.

Recommended Posts

I'm thinking of how to organize the "chords" feature of MBSEQ V3, and need some hints, which one would be the most useful implementation.

In chord mode, the note value (0..127) should not select a single note, but a chord of up to 4 notes instead. Since there are so many possible combinations and inversions, I have to find a way to decode chords so that they are easily selectable, and the results are still flexible enough.

Currently I've 3 solutions in my mind, but I'm unsure which one is the best.


Solution A) Predefined chords, Selectable inversion and octave transpose

- makes only 4 chords available: Major, Minor, M7, m7

- 3 Inversions selectable

- octave transpose from -4..+3 selectable

The chord track would play:

C Maj/0 +0  --- --- --- A Min/0 -1 --- C Maj/2 -1 --- C Maj/0 +0

Advantage: easy selection and 4-finger chords (M7/m7)

Disadvantage: very low variety


Solution B) Chord Memory

One track of the pattern could be mis-used as a chord memory, a combination of 3 keys is stored in each step, this would allow 32 different 3-finger chords.

The chord track now only selects the step of the chord memory.

E.g., if the chord memory stores:

Step 1: C-3, E-3, G-3

Step 2: A-2, C-3, E-3

Step 3: G-2, C-3, E-3

The chord track would play:

  1    2  3  4    5    6    7    8    9    ...

Chord1  --- --- --- Chord2 --- Chord3 --- Chord1 ...

Advantage: most flexible configuration

Disadvantage: only 3-finger chords


Solution C) Predefined Scale, Predefined Base note, selectable transpose

The scale could be selected as constant value, this would allow up to 128 different scales (Major, Minor, Blues, what you want)

The base note would be a second constant value, optionally it could be played with a keyboard

The note value of each step would just select different key combinations (up to 16) + an octave transpose (-4..+3)

Advantage: nice source for experimental results

Disadvantage: base note must be predefined, or played from a keyboard or another track. Key combinations not always transparent (too difficult usage?)


What would you prefer?

Or do you have alternative ideas?

Best Regards, Thorsten.

Link to comment
Share on other sites

hi,

i'm voting for the solution C..

cause there is just two parameter to setup and then we just have to try many combination just moving an encoder...that's seems to be the more fun for "live" modifications of the track...

Link to comment
Share on other sites

Hmm, a big vote for option B here.  It seems to "fit" better, having a pallate of possible chords to use.  It brings to mind possibilities of shifting the values in the chord track to dynamicly change the sequence and just fits in better with the way I usually work with chords (ie, programming in a interval on a few VCO's).  I don't think I would often use 4 finger chords, not with a step sequencer anyway.

Advantage: most flexible configuration

exactly  :D

Link to comment
Share on other sites

This is what I also thought today, because both - B and C - open a lot of new possibilities.

For solution A it isn't really worth the effort (I would have to overwork the display handler again due to the long chord names)

So - I will provide two chord modes.


B is more powerful than I expected at the beginning. For example, following setup could be realized:

G1 (the first track group) plays rhythmically triggered chords which are stored in pattern A1..A3

G2 (the second group) is only used as chord memory, stored in pattern B1..B4

now you can either vary the rhytm by changing the pattern of G1 (e.g. A1->A2->A1->A3->A1)

or you can change the set of chords by changing the pattern of G2 (e.g. B1->B2->B3->B4->B1)

or you can do both - independent from each other :)

Another setup: "rhytm" and chord memory is stored in a single pattern, chords are varied with the random and/or morphing function. All this (and more) still fits the currently implemented concept, only a few number of code lines need to be added :)

And here the most crazy setup:

G1 plays chords and forwards them internally to the arpeggiator

G2 contains one track as chord memory

G3 plays polyphonic arpeggios

The tracks of G1 and G3 are played with different directions and "progression parameters".

The result? Hard to explain, but I think that I will demonstrate this in the next video ;-)


Solution C: the available scales could also be used in other track modes as a "Force to Scale" option, which ensures that only notes are played which are fitting with the selected scale.

This especially improves the Morphing feature! :)


But for the scales I would need your help - I've prepared a scale table which needs to be filled - do you know more scales?


SEQ_SCALE_TABLE
        ;;              0  1  2  3  4  5  6  7  8  9  10  11
        ;;              C  C#  D  D#  E  F  F#  G  G#  A  A#  B
        SCALE_ENTRY    0,  0,  2,  2,  4,  5,  5,  7,  7,  9,  9, 11  ; Major
        SCALE_ENTRY    0,  0,  2,  2,  3,  5,  5,  7,  7, 10, 10, 11  ; Minor
        SCALE_ENTRY    0,  0,  2,  2,  4,  4,  4,  7,  7,  9,  9,  9  ; Major "Pentatonic"
        SCALE_ENTRY    0,  0,  0,  3,  3,  5,  5,  7,  7,  9,  9,  9  ; Minor "Pentatonic"
[/code]

Best Regards, Thorsten.

Link to comment
Share on other sites

well you've got all the church scales.. i dont know what they are called in english but we call them kerk toonladders

read up here: http://www.riddleworks.com/modes2.html

edit: if you implement all these scales.. im building a mbseq.. those scales are cool..

edit2: you may find the wikipedia entry more usefull: http://en.wikipedia.org/wiki/Musical_mode

Link to comment
Share on other sites

actually, I'm using method C) for a harmonisation software I wrote for OSX.

after finishing my sensorizer, I wanted to reprogram this software as a midibox app...

but of course the concept is related more to unpredictable inputs than planned sequences.

the electribe (from KORG) is using a similar functionality which works great!

it has a combination of a small ribbon-controller (default: note-length) and a slider (scale-based pitch).

I got two handy links for you:

http://www.looknohands.com/chordhouse/piano/

http://www.pianoworld.com/fun/vpc/piano_chords.htm

many of these scales overlap; I found the most good-sounding ones are:

minor/major, blues, pentatonic and some exotic ones like MiSheberach, Kumoi, Jap-Dim, Pelog; some indian scales rock, too .)

cheers,

Michael

Link to comment
Share on other sites

This is what I also thought today, because both - B and C - open a lot of new possibilities.

For solution A it isn't really worth the effort (I would have to overwork the display handler again due to the long chord names)

So - I will provide two chord modes.

Both! Awesome!!

The result? Hard to explain, but I think that I will demonstrate this in the next video ;-)

I can already hear it in my head. That is going to r-o-c-k !!  Look forward to your next addition to youtube ;)

Solution C: the available scales could also be used in other track modes as a "Force to Scale" option, which ensures that only notes are played which are fitting with the selected scale.

But for the scales I would need your help - I've prepared a scale table which needs to be filled - do you know more scales?

That's what I was thinking too, which is why I chose 'C' :) I've done some research on this but put it on hold until I had some other features done, so I'll trawl through some bookmarks and old theory books and come up with all the scales I can find... I'll be sure to include all the church, blues and jazz scales I can find....

Just a thought - should we setup a wiki page so that people can add their own scales to the table?

Link to comment
Share on other sites

hmm, I've hit a spot here.... Maybe I've misunderstood the implementation of your tables TK, can you explain...

For EG C Minor Scale:

Everywhere seems to agree that the scale should be:

intervals: 1,2,b3,4,5,6,7

half-steps: 2-1-2-2-2-2-1

notes: C,D,D#,F,G,A,B

TK, your minor scale seems like it's

notes: C,D,D#,F,G,A#,B

I thought it was a typo or something, but the other scales have the same thing (except the major).

I've put the original and what I thought it should be, but there's a good chance that I've missed something... Can you tell me if I got it right?


SEQ_SCALE_TABLE
        ;;              0   1   2   3   4   5   6   7   8   9  10  11
        ;;              C   C#  D   D#  E   F   F#  G   G#  A   A#  B

        ;; TK's
        SCALE_ENTRY     0,  0,  2,  2,  3,  5,  5,  7,  7, 10, 10, 11   ; Minor
        ;; Should that be:                                  v   v
        SCALE_ENTRY     0,  0,  2,  3,  3,  5,  5,  7,  7,  9,  9, 11   ; Minor

Link to comment
Share on other sites

hi stryd_one,

let's say you have C-MAJ, which would be expressed musically as:

intervals:  1,2,3,4,5,6,7

half-steps: 2-2-1-2-2-2-1

notes:      C,D,E,F,G,A,B

so you just have to look at the notes and fill the gaps:

[tt]

;;              C   C#  D   D#  E   F   F#  G   G#  A   A#  B

;;              0   1   2   3   4   5   6   7   8   9  10  11

;;              0       2       4   5       7       9     11

[/tt]

if you're doing a fixed table like the example from TK you just have to move the in-betweens:

0,0,2,2,3,4,5,7,7,9,9,11 (that's how I would do it)

of course it does not matter if its 0,0,2,2,3... or 0,2,2,3,3...

aka for minor:

C Melodic Minor (Ascending) Scale

intervals:  1,2,b3,4,5,6,7

half-steps: 2-1-2-2-2-2-1

notes:      C,D,Eb,F,G,A,B

[tt]

;;              C   C#  D   D#  E   F   F#  G   G#  A   A#  B

;;              0   1   2   3   4   5   6   7   8   9  10  11

;;              0       2   3       5       7       9      11

[/tt]

cheers!

ac  ;)

Link to comment
Share on other sites

Thx mate, I get that bit, but notice that mine shows A and A# to be note 9, but TK's shows it to be note 10... (for the minor scale.... but the other scales had something similar)

I think yours says note 9 also?

I am guessing that TK threw that message together quickly and made a typo (happens to me a lot!), but I don't wanna go tabulating all these scales and then find out that I got it twisted ;)

Link to comment
Share on other sites

Thanks a lot for the input! I especially like the pianoworld page :)

I just have implemented the "force to scale" function and it works alright. Tomorrow I will write a small perl script which allows to convert the table from a text file which contains the scales in this special interval notation - this will be less error prone.

I guess that 32 selectable scales should be enough?

Wisefire: adding the church scales will be a piece of cake then :)

Stryd_one: I took the "harmonic minor" scale from a book since it varies a little bit more than "natural minor", just the comment "Minor" is not correct.

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi

I like B and C most and suggest D!

I read, that you dont like to build new hardware for the V3. So what do you think about this:

D:

Why not integrate a small "Keyboard" on the left. Just need a button which gives these A,B,C,1,2,3,4,Edit,Mute,Solo... a second function. So you can edit notes by pressing first the note button eg a C and then the step button eg 16 - maybe sometimes this is faster and more intuitive than using the inc/dec. (like a matrix-princip) If you got your hardware ready you can integrate it and if you build a new one you can do it like you see in the picture

2.jpg

and what about add a midi-in for a keyboard to play chords - than you can press the cord and then press the step button?

Im not shure whether explaine my self clear. so feel free to ask ;-)

Link to comment
Share on other sites

Oh just FYI, I've finished all of the common (and a lot of uncommon) scales, I now have to do all those weird ethnic ones and then the chords....

I have to say, I made a few errors which I found during the checking, and I can see how easily errors can sneak in to this.... My mind is swimming with intervals, I can't think of anything else  :P 1 2 3 2 3 1 1 2 3 1 2 3 2 1 3  2 2 3 2 1 11 2 3 2 2 3 2 3 2 3 2 3 2 2 2 1 2 3123123 13 2312333212321112231233321 2312321233121313223 13231312332131131231321313 0000000 0000000000000000000000000000000 000000000000000000 0000000000000000000000

Link to comment
Share on other sites

Here's enough to get started I guess.... I have checked this for errors, but that doesn't mean I got them all, so if something doesn't sound right, I probably made a mistake...

SEQ_SCALE_TABLE
        ;;              0   1   2   3   4   5   6   7   8   9  10  11
        ;;              C   C#  D   D#  E   F   F#  G   G#  A   A#  B
        SCALE_ENTRY     0,	0,	2,	2,	4,	5,	5,	7,	7,	9,	9,	11	; Major
        SCALE_ENTRY     0,	0,	2,	3,	3,	5,	5,	7,	7,	9,	9,	11	; Minor
        SCALE_ENTRY     0,	0,	2,	3,	3,	5,	5,	7,	8,	8,	8,	11	; Harmonic Minor
        SCALE_ENTRY     0,	0,	2,	3,	3,	5,	5,	7,	7,	9,	9,	11	; Melodic Minor
        SCALE_ENTRY     0,	0,	2,	2,	2,	5,	5,	7,	7,	9,	9,	9 	; Pentatonic Major
        SCALE_ENTRY     0,	0,	0,	3,	3,	5,	5,	7,	7,	7,	10,	10	; Pentatonic Minor
        SCALE_ENTRY     0,	0,	0,	3,	3,	5,	6,	7,	7,	7,	10,	10	; Pentatonic Blues
        SCALE_ENTRY     0,	0,	2,	2,	2,	5,	5,	7,	7,	7,	10,	10	; Pentatonic Neutral
        SCALE_ENTRY     0,	0,	2,	2,	4,	5,	5,	7,	7,	9,	9,	11 	; Ionian
        SCALE_ENTRY     0,	1,	1,	3,	3,	5,	6,	6,	8,	8,	10,	11	; Aeolian Wrapped to 1 8ve
        SCALE_ENTRY     0,	0,	2,	3,	3,	5,	5,	7,	7,	9,	10,	10	; Dorian
        SCALE_ENTRY     0,	0,	2,	2,	4,	5,	5,	7,	7,	9,	10,	10	; Mixolydian
        SCALE_ENTRY     0,	1,	1,	3,	3,	5,	5,	7,	8,	8,	10,	10	; Phrygian
        SCALE_ENTRY     0,	0,	2,	2,	4,	4,	6,	7,	7,	9,	9,	11	; Lydian
        SCALE_ENTRY     0,	1,	1,	3,	3,	5,	6,	6,	8,	8,	10,	10	; Locrian
        SCALE_ENTRY     0,	1,	1,	3,	4,	4,	6,	7,	7,	9,	10,	10	; Dim half
        SCALE_ENTRY     0,	0,	2,	3,	3,	5,	6,	6,	8,	9,	9,	11	; Dim whole
        SCALE_ENTRY     0,	0,	2,	2,	4,	4,	6,	6,	8,	8,	10,	10	; Whole
        SCALE_ENTRY     0,	0,	0,	3,	4,	4,	4,	7,	8,	8,	8,	11	; Augmented
        SCALE_ENTRY     0,	1,	2,	3,	4,	5,	6,	7,	8,	9,	10,	11	; Chromatic
        SCALE_ENTRY     0,	0,	2,	3,	3,	3,	6,	7,	7,	9,	10,	10	; Roumanian Minor
        SCALE_ENTRY     0,	1,	1,	1,	4,	5,	5,	7,	8,	8,	10,	10	; Spanish Gypsy
        SCALE_ENTRY     0,	0,	0,	3,	3,	5,	6,	7,	7,	7,	10,	10	; Blues
        SCALE_ENTRY     0,	0,	2,	2,	4,	4,	4,	7,	7,	9,	9,	9 	; Diatonic
        SCALE_ENTRY     0,	1,	1,	1,	4,	5,	5,	7,	8,	8,	8,	11	; Double Harmonic
        SCALE_ENTRY     0,	1,	1,	3,	4,	5,	6,	6,	8,	8,	10,	10	; Eight Tone Spanish
        SCALE_ENTRY     0,	1,	1,	1,	4,	4,	6,	6,	8,	8,	10,	11	; Enigmatic
        SCALE_ENTRY     0,	0,	2,	2,	4,	4,	6,	6,	8,	9,	10,	10	; Leading Whole Tone
        SCALE_ENTRY     0,	0,	2,	2,	4,	4,	6,	6,	8,	9,	9,	11	; Lydian Augmented
        SCALE_ENTRY     0,	1,	1,	3,	3,	5,	5,	7,	7,	9,	9,	11	; Neopolitan Major
        SCALE_ENTRY     0,	1,	1,	3,	3,	5,	5,	7,	8,	8,	10,	10	; Neopolitan Minor
        SCALE_ENTRY     0,	1,	1,	3,	3,	3,	6,	6,	6,	6,	10,	11	; Pelog
        SCALE_ENTRY     0,	0,	2,	2,	4,	4,	6,	6,	6,	9,	10,	10	; Prometheus
        SCALE_ENTRY     0,	1,	1,	1,	4,	4,	6,	6,	6,	9,	10,	10	; Prometheus Neopolitan
        SCALE_ENTRY     0,	1,	1,	1,	4,	5,	5,	5,	8,	9,	9,	9 	; Six Tone Symmetrical
        SCALE_ENTRY     0,	1,	1,	3,	4,	4,	6,	6,	8,	8,	10,	10 	; Super Locrian
        SCALE_ENTRY     0,	0,	2,	2,	4,	4,	6,	7,	8,	8,	10,	10 	; Lydian Minor
        SCALE_ENTRY     0,	0,	2,	3,	3,	3,	6,	7,	8,	8,	10,	10 	; Lydian Diminished
        SCALE_ENTRY     0,	0,	2,	3,	4,	4,	6,	7,	8,	9,	9,	11	; Nine Tone Scale
        SCALE_ENTRY     0,	0,	2,	3,	3,	5,	6,	6,	8,	9,	9,	11	; Auxiliary Diminished
        SCALE_ENTRY     0,	0,	2,	2,	4,	4,	6,	6,	8,	8,	10,	10	; Auxiliary Augmented
        SCALE_ENTRY     0,	1,	1,	3,	4,	4,	6,	7,	7,	9,	10,	10	; Auxiliary Diminished Blues
        SCALE_ENTRY     0,	0,	2,	2,	4,	5,	6,	6,	8,	8,	10,	10	; Major Locrian
        SCALE_ENTRY     0,	0,	2,	2,	4,	4,	6,	7,	7,	9,	10,	10	; Overtone
        SCALE_ENTRY     0,	1,	1,	3,	4,	4,	6,	6,	8,	8,	10,	10	; Diminished Whole Tone
        SCALE_ENTRY     0,	0,	2,	3,	3,	5,	5,	7,	8,	8,	10,	10	; Pure Minor
        SCALE_ENTRY     0,	0,	2,	2,	2,	5,	5,	7,	7,	9,	10,	10	; Dominant 7th        	

Notice that the aeolian scale requires two octaves in complete form, so I have wrapped it around one octave. the 2 8ve one has been removed from this table.

All the 'ethnic' type scales are on the way soon :)

Link to comment
Share on other sites

Thanks alot, Stryd! :)

So, I don't need to write the generator...

Braintu: I think that this suggestion is not related to the discussion about a special chord mode here? Because different notes can already be stored in a track, and they can be entered with the encoders, with step record and live record mode from an external keyboard. I think it's already ergonomic enough :)

Best Regards, Thorsten.

Link to comment
Share on other sites

some minor add-ons from my side:

blues Major: 0,3,4,7,9,10

blues minor: 0,3,4,5,6,7,9,10

yummi, and you forgot some of my all-time-favorite scales:

MiSheberach (jewish scale, sounds great!): 0,2,3,6,7,9,10

Kumoi (smth japanese, if I remember right): 0,2,3,7,9

Jap-Dim: 0,1,5,7,10

the "spanish-gypsy" is spanish, actually (also one of my top-faves), because gypsy (uhh, this one is definitely one of the most worse scales ever  :-X ;D) is:

0,2,3,6,7,8,11

and maybe (if you're already into it): I used to store a related scale along with it, so you can switch to the next one; eg. from major to minor. I also implemented a random-next-related function, so it's similar to playing chords, but this makes only sense for min/MAJ scale, so I'm not sure about that (I will put that it in a seperate mb-app with a special harmonic interface somewhen anyway...)

harmonic greets to ya all  :-*

ac

Link to comment
Share on other sites

and maybe (if you're already into it): I used to store a related scale along with it, so you can switch to the next one; eg. from major to minor.

this was also my thought when I played with the scales yesterday. I think, that the related scale could be selected with an external keyboard as well, e.g. like known from those entertainer keyboards: press a single key, and it is major, press an additional key which is 2..3 semitones away, and it is minor.

I also implemented a random-next-related function, so it's similar to playing chords, but this makes only sense for min/MAJ scale, so I'm not sure about that

in MBSEQ V3, you can loopback the output of a track into the internal MIDI engine. This means, you could use a track in CC mode, select the CC parameter for the scale, prepare some fitting values, and play the track with slow speed in any direction (any means also: random :))

(I will put that it in a seperate mb-app with a special harmonic interface somewhen anyway...)

this definitely makes sense, because most people who could be interested in such an engine will never build a MBSEQ, so a small (core-only) application which is specialised on such effects could get very popular (especially because every MIDIbox user can try it out! :))

Best Regards, Thorsten.

Link to comment
Share on other sites

and you forgot some of my all-time-favorite scales

@AC: I haven't forgotten them, they're on the way. Many of the 'ethnic' and 'jazz' scales are my favourites, so I'll definitely do all of them :) It will be all finished very soon.

and maybe (if you're already into it): I used to store a related scale along with it, so you can switch to the next one;

That would be excellent. I also really like your idea of having that feature (and other harmony type stuff)  in a dedicated core.

in MBSEQ V3, you can loopback the output of a track into the internal MIDI engine.

AWESOME! That will open a lot of new possibilities!

Link to comment
Share on other sites

Hey TK,

perhaps these tools (VST plugins for exploring chords) might be helpful for you:

http://www.chordspace.com/

http://www.chordspace.com/ChordSpaceindex.htm

http://www.martineastwood.com/cacofx/chordme.html

perhaps editing the "chord pattern" could be simplified by the control surface... like this...

16 step buttons:
 o o o o o o o o
o o o o o o o o

only these used for chord editing:
 o o   o o o   o
o o o o o o o o

the special buttons could have white/black backgrounds set on them.

Does this new feature in MB SEQ mean I'll be able to play chords from my midi keyboard with one key?

If so, here's my idea for C: select base note with the lowest 1/2 octaves, play chord with other keys.

cheers,

Damian

Link to comment
Share on other sites

perhaps editing the "chord pattern" could be simplified by the control surface... like this...

the GP buttons are located below the two 2x40 displays - how large are your fingers? ;-)

Isn't it easier and much more flexible to use a normal keyboard for entry into the chord memory?

select base note with the lowest 1/2 octaves, play chord with other keys.

A split function is already available in MBSEQ V3 for the transposer (lower keys, also used so select the base note), and the arpeggiator (upper keys). By activating the "force-to-scale" function on all tracks which are playing arpeggios (see the tutorials how MBSEQ handles this), you have something similar, but much more powerful :)

(yes, I know that this is not what you mean, but your suggestion is not on-topic anyhow ;-))

Does this new feature in MB SEQ mean I'll be able to play chords from my midi keyboard with one key?

If so, here's my idea for C

I implemented a C based "magic chords" application some time ago (see this topic http://www.midibox.org/forum/index.php?topic=5966.0) but didn't found it very useful, and therefore never released it. However, it only supports major and minor scale, with all the new scales it could become interesting.

Is somebody interested in maintaining (improving, writing documentation) for this "magic chords" app?

Best Regards, Thorsten.

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...
×
×
  • Create New...