Skip to content

Voice leading chords script

Pedro Santos edited this page Apr 16, 2018 · 2 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 "ChordVoiceLeading.fs"
#load "ImprovisationGuitar.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 chords = [
              chord C Minor7;
              chord F Dominant7;
              chord BFlat Major7;
              chord EFlat Major7;
              chord A Minor7b5;
              chord D Dominant7;
              chord G Minor7;
             ]

let voiceleadingChords guitarString form =
    (voiceLead lead (chords |> List.map form))
    |> List.map ((fun c -> guitarChord guitarString c) >> Chord)

[StandardTunning; Start] @ (voiceleadingChords FourthString toDrop2) @ [End]
|> renderTab
|> printf "\n%s"
e||--11--11--10--10--8--8--6--||
B||--11--10--10--8---8--7--6--||
G||--12--10--10--8---8--7--7--||
D||--10--10--8---8---7--7--5--||
A||---------------------------||
E||---------------------------||
Clone this wiki locally