I am trying in my spare time to develop an algorithm for the creation of modulating sequences, i.e., to identify, given a starting key and an arrival key, one or more successions of chords that respect certain criteria. Regardless of the usefulness of the thing, does anyone happen to know if similar ones already exist, so at least I avoid wasting time? I did a brief search but didn't find much.
If this is of interest, and if it obviously works, I will be happy to share the results. Any contribution and suggestion will be welcome.
For now, a very rough version, for modulation from C to E (in fact, the idea came to me starting from this post http://www.pianoconcerto.it/forum/index.php?/topic/3600-modulazione-al-terzo-grado-maggiore/), produces the following results for me (I use English notation for convenience, because the notes are indicated by a single character):
>Starting and arrival key [q to exit the program]:
>Cmaj Emaj
>Enter maximum modulation length :
>10
> Enter cadence type: ['a' V, 'b' IV-V, 'c' V-IV, 'e' II-VII', 'f' VI-VII, 'g' III-VI, 'h' III-IV, 'd' default]
>a
>search time elapsed: 2 - Sequences found 1
>Cmaj Gmaj Dmaj Amaj Emaj
>Starting and arrival key [q to exit the program]:
>Cmaj Emaj
>Enter maximum modulation length :
>10
> Enter cadence type: ['a' V, 'b' IV-V, 'c' V-IV, 'e' II-VII', 'f' VI-VII, 'g' III-VI, 'h' III-IV, 'd' default]
>b
>search time elapsed: 1 - Sequences found 2
>Cmaj Gmaj Dmaj Amaj Emaj
>Cmaj Fmaj A#maj D#maj G#maj C#maj F#maj Bmaj Emaj
>Starting and arrival key [q to exit the program]:
>Cmaj Emaj
>Enter maximum modulation length :
>10
> Enter cadence type: ['a' V, 'b' IV-V, 'c' V-IV, 'e' II-VII', 'f' VI-VII, 'g' III-VI, 'h' III-IV, 'd' default]
>d
>search time elapsed: 8 - Sequences found 5
>Cmaj Gmaj Dmaj Amaj Emaj
>Cmaj Fmaj A#maj D#maj G#maj C#maj F#maj Bmaj Emaj
>Cmaj Dmin Amin Emin Bmin F#min C#min G#min D#min Bmaj Emaj
>Cmaj Emin Bmin F#min C#min G#min D#min A#min F#maj Bmaj Emaj
>Cmaj Amin Emin Bmin F#min C#min G#min D#min F#maj Bmaj Emaj
>Starting and arrival key [q to exit the program]:
>Enter cadence type: ['a' V, 'b' IV-V, 'c' V-IV, 'e' II-VII', 'f' VI-VII, 'g' III-VI, 'h' III-IV, 'd' default]
>f
>search time elapsed: 1 - Sequences found 1
>Cmaj Amin Gmaj Emin Dmaj Bmin Amaj F#min Emaj
>Starting and arrival key [q to exit the program]:
>q