-
-
Notifications
You must be signed in to change notification settings - Fork 4
Common scales for chords script
Pedro Santos edited this page Apr 16, 2018
·
22 revisions
#load "Infrastructure.fs"
#load "Domain.fs"
#load "Notes.fs"
#load "Chords.fs"
#load "Keys.fs"
#load "Scales.fs"
#load "ScaleHarmonizer.fs"
#load "Guitar.fs"
#load "ImprovisationGuitar.fs"
#load "ChordVoiceLeading.fs"
open Vaughan.Domain
open Vaughan.Notes
open Vaughan.Chords
open Vaughan.Keys
open Vaughan.Scales
open Vaughan.ScaleHarmonizer
open Vaughan.Guitar
open Vaughan.GuitarTab
open Vaughan.ImprovisationGuitar
open Vaughan.ChordVoiceLeading
let scaleName scale =
sprintf "%s %A" (noteName (scale.Scale.Notes.[0])) scale.Scale.Scale
let chordToneNames (chord:Chord) =
sprintf "%s" (chord.Notes
|> List.map (fst >> noteName)
|> List.fold (fun r s -> r + s + " ") "")
let scaleNoteNames scale =
sprintf "%s" (scale.Scale.Notes
|> List.map noteName
|> List.fold (fun r s -> r + s + " ") "")
let progression = [
chord C Minor7;
chord F Dominant7;
chord BFlat Major7;
chord EFlat Major7;
chord A Minor7b5;
chord D Dominant7;
chord G Minor7
]
(createScalesForChords 5 8 chords)
|> Seq.map ((fun scalesPerChord -> scalesPerChord |> List.map (fun s -> scaleName s.Scale)) >> Set.ofList)
|> Seq.reduce Set.intersect
|> Seq.fold (fun r s -> r + s + "\n") ""
|> printf "Common scales for all chords: \n%s\n"
Bb MajorSixthDiminishedScale
WTF? See Barry Harris's Sixth Diminished Scale or The 6th Diminished Scale by Roni Ben-Hur or Sixth Diminished Scale Harmony by Rick Beato
- CMin7 -> C Eb G Bb
- F7 -> F A C Eb
- BbMaj7 -> Bb D F A
- EbMaj7 -> Eb G Bb D
- Amin7b5 -> A C Eb G
- D7 -> D F# A C
- Gmin7 -> G Bb D F
- Bb MajorSixthDiminishedScale -> Bb C D Eb F F# G A
e||--------------------------------------------------5--6--8--||
B||-----------------------------------------6--7--8-----------||
G||--------------------------------5--7--8--------------------||
D||-----------------------5--7--8-----------------------------||
A||-----------5--6--8--9--------------------------------------||
E||--5--6--8--------------------------------------------------||