-
-
Notifications
You must be signed in to change notification settings - Fork 4
Documentation
- Basics
- Guitar basics
- Guitar improvisation
- SonicPI
- Examples
open Vaughan.Notes| Example | Output |
|---|---|
| noteName C | "C" |
| noteName CSharp | "C#" |
| noteName DFlat | "Db" |
| sharp EFlat | E |
| flat E | EFlat |
| measureAbsoluteSemitones C G | 7 |
| intervalBetween C FSharp | DiminishedFifth |
| transpose C MajorSixth | A |
open Vaughan.Notes| Example | Output |
|---|---|
| intervalName DiminishedFifth | "DiminishedFifth" |
| fromDistance 6 | DiminishedFifth |
open Vaughan.Notes
open Vaughan.Keys| Example | Output |
|---|---|
| keyNotes CMajor | [ C; D; E; F; G; A; B ] |
| keyNotes EFlatMajor | [ EFlat; F; G; AFlat; BFlat; C; D ] |
| keyNotes DMinor | [ D; E; F; G; A; BFlat; C ] |
open Vaughan.Notes
open Vaughan.Scales| Example | Output |
|---|---|
| createScaleNotes Phrygian C | [ C; DFlat; EFlat; F; G; AFlat; BFlat] |
| createScaleNotes LydianAugmented C | [ C; D; E; FSharp; GSharp; A; B ] |
open Vaughan.Notes
open Vaughan.Scales
open Vaughan.Chords
open Vaughan.ChordVoiceLeading
let cMaj7 = {notes= [(C, Root); (E, Third); (G, Fifth); (B, Seventh)]; chordType=Closed}
let cMaj = chordFromRootAndFunction c Major| Example | Output |
|---|---|
| noteNames cMaj7 | ["C"; "E"; "G"; "B"] |
| bass cMaj7 | C |
| lead cMaj7 | B |
| name cMaj7 | "CMaj7" |
| cMaj7.Notes | [(C, Root); (E, Third); (G, Fifth); (B, Seventh)] |
| (cMaj7 |> invert).Notes | [(E, Third); (G, Fifth); (B, Seventh); (C, Root)] |
| (cMaj7 |> invert |> invert).Notes | [(G, Fifth); (B, Seventh); (C, Root); (E, Third)] |
| (cMaj7 |> invert |> invert |> invert).Notes | [(B, Seventh); (C, Root); (E, Third); (G, Fifth)] |
| (cMaj7 |> toDrop2).Notes | [(C, Root); (G, Fifth); (B, Seventh); (E, Third)] |
| (cMaj7 |> toDrop3).Notes | [(C, Root); (B, Seventh); (E, Third); (G, Fifth)] |
| inversionForFunctionAsLead cMaj Third | cMaj |> invert |> invert |
| inversionForFunctionAsBass cMaj Fifth | cMaj |> invert |> invert |
| invertionWithLeadClosestToNote cMaj CSharp | cMaj |> invert |
| invertionWithBassClosestToNote cMaj F | cMaj |> invert |
open Vaughan.Notes
open Vaughan.Scales
open Vaughan.Chords
open Vaughan.ScaleHarmonizer
let cMaj = {Notes= [(C, Root); (E, Third); (G, Fifth)]; ChordType=Closed; Name="CMaj"}
let cMin = {Notes= [(C, Root); (EFlat, Third); (G, Fifth)]; ChordType=Closed; Name="CMin"}
let cMaj7 = {Notes= [(C, Root); (E, Third); (G, Fifth); (B, Seventh)]; ChordType=Closed; Name="CMaj7"}
let cIonian = createScaleNotes Ionian C
let cMinor = createScaleNotes HarmonicMinor C| Example | Output |
|---|---|
| triadsHarmonizer ScaleDgrees.I cIonian | cMaj |
| triadsHarmonizer ScaleDgrees.I cMinor | cMin |
| triadsHarmonizer ScaleDgrees.I cMinor | cMin |
| seventhsHarmonizer ScaleDgrees.I cIonian | cMaj7 |
Note: This part of the documentation is a bit out of date on 14/04/2018 see sample code until I have time to update documentation
open Vaughan.Notes
open Vaughan.Chords
open Vaughan.Guitar
open Vaughan.GuitarTab
open Vaughan.ScaleHarmonizer
open Vaughan.ScalescreateScaleNotes Ionian C
|> triadsHarmonizer ScaleDgrees.I
|> createGuitarChord SixthString
|> tabifyOutput:
CMaj
E|---|
B|---|
G|---|
D|-5-|
A|-7-|
E|-8-|
createScaleNotes Ionian C
|> seventhsHarmonizer ScaleDgrees.I
|> toDrop2
|> createGuitarChord FifthString
|> tabifyOutput:
CMaj7
E|---|
B|-5-|
G|-4-|
D|-5-|
A|-3-|
E|---|
createScaleNotes Ionian A
|> seventhsHarmonizer ScaleDgrees.I
|> toDrop2
|> createGuitarChord FifthString
|> tabifyOutput:
AMaj7
E|----|
B|-14-|
G|-13-|
D|-14-|
A|-12-|
E|----|
createScaleNotes Ionian F
|> seventhsHarmonizer ScaleDgrees.I
|> createGuitarChord FourthString
|> tabifyOutput:
FMaj7
E|-12-|
B|-13-|
G|-14-|
D|-15-|
A|----|
E|----|
createScaleNotes Ionian C
|> seventhsHarmonizer ScaleDgrees.I
|> toDrop3
|> createGuitarChord SixthString
|> tabifyOutput:
CMaj7
E|---|
B|-8-|
G|-9-|
D|-9-|
A|---|
E|-8-|
createScaleNotes Ionian C
|> seventhsHarmonizer ScaleDgrees.I
|> toDrop3
|> createGuitarChord FifthString
|> tabifyOutput:
CMaj7
E|-3-|
B|-5-|
G|-4-|
D|---|
A|-3-|
E|---|
createScaleNotes Ionian C
|> seventhsHarmonizer ScaleDgrees.I
|> toDrop2
|> createGuitarChord FifthString
|> shapifyOutput:
CMaj7
EADGBE
X3545X
let cIonian = createScaleNotes Ionian C
let cMaj = seventhsHarmonizer ScaleDgrees.I cIonian
let dMin = seventhsHarmonizer ScaleDgrees.II cIonian
let eMin = seventhsHarmonizer ScaleDgrees.III cIonian
let fMaj = seventhsHarmonizer ScaleDgrees.IV cIonian
let guitarChords = [cMaj; dMin; eMin; fMaj]
|> List.map (toDrop2 >> (createGuitarChord FifthString))
tabifyAll guitarChordsOutput:
CMaj7 DMin7 EMin7 FMaj7
E|-------------------------------------|
B|----5-------6-------8-------10-------|
G|----4-------5-------7-------9--------|
D|----5-------7-------9-------10-------|
A|----3-------5-------7-------8--------|
E|-------------------------------------|
open Vaughan.Notes
open Vaughan.Chords
open Vaughan.Scales
open Vaughan.Guitar
open Vaughan.GuitarTab
open Vaughan.ScaleHarmonizercreateScale Ionian C
|> createGuitarScale 2 6
|> createGuitarMelodicLineFromScale
|> tabifyMelodicLine
|> printf "\n%s"Output:
e||---------------------------------------------3--5-||
B||------------------------------------3--5--6-------||
G||---------------------------2--4--5----------------||
D||------------------2--3--5-------------------------||
A||---------2--3--5----------------------------------||
E||---3--5-------------------------------------------||
createScale Ionian C
|> createGuitarScale 4 8
|> tabifyScale
|> printf "\n%s"Output:
e||---------------------------------------------5--7--8-||
B||------------------------------------5--6--8----------||
G||---------------------------4--5--7-------------------||
D||---------------------5--7----------------------------||
A||------------5--7--8----------------------------------||
E||---5--7--8-------------------------------------------||
createScale Ionian C
|> createGuitarScale 7 10
|> tabifyScale
|> printf "\n%s"Output:
e||---------------------------------------------7--8--10-||
B||---------------------------------------8--10----------||
G||------------------------------7--9--10----------------||
D||---------------------7--9--10-------------------------||
A||------------7--8--10----------------------------------||
E||---7--8--10-------------------------------------------||
createScale Ionian C
|> createGuitarScale 9 13
|> tabifyScale
|> printf "\n%s"Output:
e||---------------------------------------------10--12--13-||
B||------------------------------------10--12--13----------||
G||---------------------------9--10--12--------------------||
D||------------------9--10--12-----------------------------||
A||------------10--12--------------------------------------||
E||---10--12--13-------------------------------------------||
Note: This part of the documentation is a bit out of date on 14/04/2018 see sample code until I have time to update documentation
open Vaughan.Notes
open Vaughan.Chords
open Vaughan.Scales
open Vaughan.Guitar
open Vaughan.GuitarTab
open Vaughan.ScaleHarmonizer
let cIonian = createScaleNotes Ionian C(cIonian
|> triadsHarmonizer ScaleDegree.I
|> createGuitarArpeggio 2 5)
|> tabifyArpeggio
|> printf "\n%s"Output:
e||---------------------3---||
B||------------------5------||
G||---------------5---------||
D||---------2--5------------||
A||------3------------------||
E||---3---------------------||
(cIonian
|> triadsHarmonizer ScaleDegree.I
|> createGuitarArpeggio 1 4)
|> tabifyArpeggio
|> printf "\n%s"Output:
e||------------------3---||
B||---------------1------||
G||-------------1--------||
D||---------2------------||
A||------3---------------||
E||---3------------------||
(cIonian
|> triadsHarmonizer ScaleDegree.I
|> createGuitarArpeggio 7 10)
|> tabifyArpeggio
|> printf "\n%s"Output:
e||---------------------8---||
B||------------------8------||
G||---------------9---------||
D||------------10-----------||
A||------7--10--------------||
E||---8---------------------||
(cIonian
|> triadsHarmonizer ScaleDegree.I
|> createGuitarArpeggio 0 3)
|> tabifyArpeggio
|> printf "\n%s"Output:
e||---------------------0--3---||
B||------------------1---------||
G||---------------0------------||
D||------------2---------------||
A||---------3------------------||
E||---0--3---------------------||
(cIonian
|> triadsHarmonizer ScaleDegree.I
|> createGuitarArpeggio 9 22)
|> tabifyArpeggio
|> printf "\n%s"Output:
e||------------------------------------------------12--15--20-||
B||---------------------------------------13--17--20----------||
G||------------------------------9--12--17--------------------||
D||---------------------10--14--17----------------------------||
A||------------10--15--19-------------------------------------||
E||---12--15--20----------------------------------------------||
Note: This part of the documentation is a bit out of date on 14/04/2018 see sample code until I have time to update documentation
open Vaughan.Notes
open Vaughan.Chords
open Vaughan.Scales
open Vaughan.Guitar
open Vaughan.GuitarTab
open Vaughan.ScaleHarmonizer
open Vaughan.ImprovisationGuitar[chord C Minor7; chord F Dominant7; chord BFlat Major7]
|> tabifyArpeggiosFromChords 5 8
|> List.map (fun t -> printf "\n%s" t)Output:
CMin7
e||---------------------------6--8-||
B||------------------------8-------||
G||------------------5--8----------||
D||------------5--8----------------||
A||---------6----------------------||
E||---6--8-------------------------||
F7
e||---------------------------5--8-||
B||------------------------6-------||
G||------------------5--8----------||
D||---------------7----------------||
A||---------6--8-------------------||
E||---5--8-------------------------||
BbMaj7
e||---------------------------5--6-||
B||------------------------6-------||
G||---------------------7----------||
D||---------------7--8-------------||
A||---------5--8-------------------||
E||---5--6-------------------------||
["Cm7"; "F7"; "CMaj7"]
|> tabifyArpeggiosFromChordNames 2 5
|> List.map (fun t -> printf "\n%s" t)Output:
CMin7
e||---------------------------6--8-||
B||------------------------8-------||
G||------------------5--8----------||
D||------------5--8----------------||
A||---------6----------------------||
E||---6--8-------------------------||
F7
e||---------------------------5--8-||
B||------------------------6-------||
G||------------------5--8----------||
D||---------------7----------------||
A||---------6--8-------------------||
E||---5--8-------------------------||
BbMaj7
e||---------------------------5--6-||
B||------------------------6-------||
G||---------------------7----------||
D||---------------7--8-------------||
A||---------5--8-------------------||
E||---5--6-------------------------||
Generated scales contain all chord tones
open Vaughan.Notes
open Vaughan.Chords
open Vaughan.Scales
open Vaughan.Guitar
open Vaughan.GuitarTab
open Vaughan.ScaleHarmonizer
open Vaughan.ImprovisationGuitar[chord C Minor7; chord F Dominant7; chord BFlat Major7]
|> tabifyScalesFromChords 5 8
|> List.map (fun t -> printf "\n%s" t)Output: Scales containing all chord tones
CMin7
C Dorian
e||---------------------------------------------5--6--8-||
B||---------------------------------------6--8----------||
G||------------------------------5--7--8----------------||
D||---------------------5--7--8-------------------------||
A||------------5--6--8----------------------------------||
E||---5--6--8-------------------------------------------||
C Phrygian
e||---------------------------------------6--8-||
B||---------------------------------6--8-------||
G||------------------------5--6--8-------------||
D||---------------5--6--8----------------------||
A||---------6--8-------------------------------||
E||---6--8-------------------------------------||
C Aolian
e||------------------------------------------6--8-||
B||------------------------------------6--8-------||
G||---------------------------5--7--8-------------||
D||------------------5--6--8----------------------||
A||---------5--6--8-------------------------------||
E||---6--8----------------------------------------||
C MinorPentatonic
e||---------------------------------6--8-||
B||---------------------------6--8-------||
G||---------------------5--8-------------||
D||---------------5--8-------------------||
A||---------6--8-------------------------||
E||---6--8-------------------------------||
C Blues
e||------------------------------------6--8-||
B||---------------------------6--7--8-------||
G||---------------------5--8----------------||
D||---------------5--8----------------------||
A||---------6--8----------------------------||
E||---6--8----------------------------------||
C Dorianb2
e||------------------------------------------5--6--8-||
B||------------------------------------6--8----------||
G||---------------------------5--6--8----------------||
D||------------------5--7--8-------------------------||
A||------------6--8----------------------------------||
E||---5--6--8----------------------------------------||
C HalfWholeDiminished
e||---------------------------------------------5--6--8-||
B||------------------------------------5--7--8----------||
G||---------------------------5--6--8-------------------||
D||------------------5--7--8----------------------------||
A||------------6--7-------------------------------------||
E||---5--6--8-------------------------------------------||
D Phrygian
e||---------------------------------------------5--6--8-||
B||---------------------------------------6--8----------||
G||------------------------------5--7--8----------------||
D||---------------------5--7--8-------------------------||
A||------------5--6--8----------------------------------||
E||---5--6--8-------------------------------------------||
D Locrian
e||------------------------------------------6--8-||
B||------------------------------------6--8-------||
G||---------------------------5--7--8-------------||
D||------------------5--6--8----------------------||
A||---------5--6--8-------------------------------||
E||---6--8----------------------------------------||
G Phrygian
e||------------------------------------------6--8-||
B||------------------------------------6--8-------||
G||---------------------------5--7--8-------------||
D||------------------5--6--8----------------------||
A||---------5--6--8-------------------------------||
E||---6--8----------------------------------------||
G Aolian
e||---------------------------------------------5--6--8-||
B||---------------------------------------6--8----------||
G||------------------------------5--7--8----------------||
D||---------------------5--7--8-------------------------||
A||------------5--6--8----------------------------------||
E||---5--6--8-------------------------------------------||
G Locrian
e||---------------------------------------6--8-||
B||---------------------------------6--8-------||
G||------------------------5--6--8-------------||
D||---------------5--6--8----------------------||
A||---------6--8-------------------------------||
E||---6--8-------------------------------------||
G HarmonicMinor
e||------------------------------------------5--6--8-||
B||------------------------------------7--8----------||
G||---------------------------5--7--8----------------||
D||------------------5--7--8-------------------------||
A||------------5--6----------------------------------||
E||---5--6--8----------------------------------------||
G NeapolitanMinor
e||---------------------------------------6--8-||
B||---------------------------------7--8-------||
G||------------------------5--7--8-------------||
D||---------------5--6--8----------------------||
A||---------5--6-------------------------------||
E||---6--8-------------------------------------||
G LocrianSharp2
e||------------------------------------------5--6--8-||
B||------------------------------------6--8----------||
G||---------------------------5--6--8----------------||
D||------------------5--7--8-------------------------||
A||------------6--8----------------------------------||
E||---5--6--8----------------------------------------||
A Locrian
e||---------------------------------------------5--6--8-||
B||---------------------------------------6--8----------||
G||------------------------------5--7--8----------------||
D||---------------------5--7--8-------------------------||
A||------------5--6--8----------------------------------||
E||---5--6--8-------------------------------------------||
A AlteredDominant
e||------------------------------------------5--6--8-||
B||------------------------------------6--8----------||
G||---------------------------5--6--8----------------||
D||------------------5--7--8-------------------------||
A||------------6--8----------------------------------||
E||---5--6--8----------------------------------------||
F7
C Dorian
e||---------------------------------------------5--6--8-||
B||---------------------------------------6--8----------||
G||------------------------------5--7--8----------------||
D||---------------------5--7--8-------------------------||
A||------------5--6--8----------------------------------||
E||---5--6--8-------------------------------------------||
C MelodicMinor
e||------------------------------------------5--7--8-||
B||------------------------------------6--8----------||
G||---------------------------5--7--8----------------||
D||---------------------5--7-------------------------||
A||------------5--6--8-------------------------------||
E||---5--7--8----------------------------------------||
C Dorianb2
e||------------------------------------------5--6--8-||
B||------------------------------------6--8----------||
G||---------------------------5--6--8----------------||
D||------------------5--7--8-------------------------||
A||------------6--8----------------------------------||
E||---5--6--8----------------------------------------||
C MinorSixthDiminishedScale
e||---------------------------------------------5--7--8-||
B||---------------------------------------6--8----------||
G||------------------------------5--7--8----------------||
D||---------------------5--6--7-------------------------||
A||------------5--6--8----------------------------------||
E||---5--7--8-------------------------------------------||
D Phrygian
e||---------------------------------------------5--6--8-||
B||---------------------------------------6--8----------||
G||------------------------------5--7--8----------------||
D||---------------------5--7--8-------------------------||
A||------------5--6--8----------------------------------||
E||---5--6--8-------------------------------------------||
D Dorianb2
e||------------------------------------------5--7--8-||
B||------------------------------------6--8----------||
G||---------------------------5--7--8----------------||
D||---------------------5--7-------------------------||
A||------------5--6--8-------------------------------||
E||---5--7--8----------------------------------------||
D HalfWholeDiminished
e||------------------------------------------5--7--8-||
B||------------------------------------6--7----------||
G||---------------------------5--7--8----------------||
D||---------------------6--7-------------------------||
A||------------5--6--8-------------------------------||
E||---5--7--8----------------------------------------||
Eb Lydian
e||---------------------------------------------5--6--8-||
B||---------------------------------------6--8----------||
G||------------------------------5--7--8----------------||
D||---------------------5--7--8-------------------------||
A||------------5--6--8----------------------------------||
E||---5--6--8-------------------------------------------||
Eb LydianAugmented
e||------------------------------------------5--7--8-||
B||------------------------------------6--8----------||
G||---------------------------5--7--8----------------||
D||---------------------5--7-------------------------||
A||------------5--6--8-------------------------------||
E||---5--7--8----------------------------------------||
Eb LydianDominant
e||------------------------------------------5--6--8-||
B||------------------------------------6--8----------||
G||---------------------------5--6--8----------------||
D||------------------5--7--8-------------------------||
A||------------6--8----------------------------------||
E||---5--6--8----------------------------------------||
F Mixolydian
e||---------------------------------------------5--6--8-||
B||---------------------------------------6--8----------||
G||------------------------------5--7--8----------------||
D||---------------------5--7--8-------------------------||
A||------------5--6--8----------------------------------||
E||---5--6--8-------------------------------------------||
F LydianDominant
e||------------------------------------------5--7--8-||
B||------------------------------------6--8----------||
G||---------------------------5--7--8----------------||
D||---------------------5--7-------------------------||
A||------------5--6--8-------------------------------||
E||---5--7--8----------------------------------------||
F Mixolydianb6
e||------------------------------------------5--6--8-||
B||------------------------------------6--8----------||
G||---------------------------5--6--8----------------||
D||------------------5--7--8-------------------------||
A||------------6--8----------------------------------||
E||---5--6--8----------------------------------------||
F Bebop
e||---------------------------------------------------5--6--8-||
B||------------------------------------------5--6--8----------||
G||---------------------------------5--7--8-------------------||
D||------------------------5--7--8----------------------------||
A||------------5--6--7--8-------------------------------------||
E||---5--6--8-------------------------------------------------||
F HalfWholeDiminished
e||------------------------------------------5--7--8-||
B||------------------------------------6--7----------||
G||---------------------------5--7--8----------------||
D||---------------------6--7-------------------------||
A||------------5--6--8-------------------------------||
E||---5--7--8----------------------------------------||
F DominantDiminishedScale
e||------------------------------------------------5--6--8-||
B||---------------------------------------5--6--8----------||
G||------------------------------5--6--8-------------------||
D||---------------------5--7--8----------------------------||
A||------------6--7--8-------------------------------------||
E||---5--6--8----------------------------------------------||
G Aolian
e||---------------------------------------------5--6--8-||
B||---------------------------------------6--8----------||
G||------------------------------5--7--8----------------||
D||---------------------5--7--8-------------------------||
A||------------5--6--8----------------------------------||
E||---5--6--8-------------------------------------------||
G Mixolydianb6
e||------------------------------------------5--7--8-||
B||------------------------------------6--8----------||
G||---------------------------5--7--8----------------||
D||---------------------5--7-------------------------||
A||------------5--6--8-------------------------------||
E||---5--7--8----------------------------------------||
G LocrianSharp2
e||------------------------------------------5--6--8-||
B||------------------------------------6--8----------||
G||---------------------------5--6--8----------------||
D||------------------5--7--8-------------------------||
A||------------6--8----------------------------------||
E||---5--6--8----------------------------------------||
A Locrian
e||---------------------------------------------5--6--8-||
B||---------------------------------------6--8----------||
G||------------------------------5--7--8----------------||
D||---------------------5--7--8-------------------------||
A||------------5--6--8----------------------------------||
E||---5--6--8-------------------------------------------||
A LocrianSharp2
e||------------------------------------------5--7--8-||
B||------------------------------------6--8----------||
G||---------------------------5--7--8----------------||
D||---------------------5--7-------------------------||
A||------------5--6--8-------------------------------||
E||---5--7--8----------------------------------------||
A AlteredDominant
e||------------------------------------------5--6--8-||
B||------------------------------------6--8----------||
G||---------------------------5--6--8----------------||
D||------------------5--7--8-------------------------||
A||------------6--8----------------------------------||
E||---5--6--8----------------------------------------||
BbMaj7
C Dorian
e||---------------------------------------------5--6--8-||
B||---------------------------------------6--8----------||
G||------------------------------5--7--8----------------||
D||---------------------5--7--8-------------------------||
A||------------5--6--8----------------------------------||
E||---5--6--8-------------------------------------------||
C Mixolydian
e||---------------------------------------------5--6--8-||
B||------------------------------------5--6--8----------||
G||------------------------------5--7-------------------||
D||---------------------5--7--8-------------------------||
A||------------5--7--8----------------------------------||
E||---5--6--8-------------------------------------------||
C Bebop
e||------------------------------------------------5--6--7--8-||
B||---------------------------------------5--6--8-------------||
G||---------------------------------5--7----------------------||
D||------------------------5--7--8----------------------------||
A||---------------5--7--8-------------------------------------||
E||---5--6--7--8----------------------------------------------||
D Phrygian
e||---------------------------------------------5--6--8-||
B||---------------------------------------6--8----------||
G||------------------------------5--7--8----------------||
D||---------------------5--7--8-------------------------||
A||------------5--6--8----------------------------------||
E||---5--6--8-------------------------------------------||
D Aolian
e||---------------------------------------------5--6--8-||
B||------------------------------------5--6--8----------||
G||------------------------------5--7-------------------||
D||---------------------5--7--8-------------------------||
A||------------5--7--8----------------------------------||
E||---5--6--8-------------------------------------------||
D HarmonicMinor
e||------------------------------------------5--6-||
B||---------------------------------5--6--8-------||
G||---------------------------6--7----------------||
D||------------------5--7--8----------------------||
A||---------5--7--8-------------------------------||
E||---5--6----------------------------------------||
D NeapolitanMinor
e||------------------------------------------5--6-||
B||------------------------------------6--8-------||
G||---------------------------6--7--8-------------||
D||------------------5--7--8----------------------||
A||---------5--6--8-------------------------------||
E||---5--6----------------------------------------||
E Locrian
e||---------------------------------------------5--6--8-||
B||------------------------------------5--6--8----------||
G||------------------------------5--7-------------------||
D||---------------------5--7--8-------------------------||
A||------------5--7--8----------------------------------||
E||---5--6--8-------------------------------------------||
G Dorian
e||---------------------------------------------5--6--8-||
B||------------------------------------5--6--8----------||
G||------------------------------5--7-------------------||
D||---------------------5--7--8-------------------------||
A||------------5--7--8----------------------------------||
E||---5--6--8-------------------------------------------||
G Aolian
e||---------------------------------------------5--6--8-||
B||---------------------------------------6--8----------||
G||------------------------------5--7--8----------------||
D||---------------------5--7--8-------------------------||
A||------------5--6--8----------------------------------||
E||---5--6--8-------------------------------------------||
A Phrygian
e||---------------------------------------------5--6--8-||
B||------------------------------------5--6--8----------||
G||------------------------------5--7-------------------||
D||---------------------5--7--8-------------------------||
A||------------5--7--8----------------------------------||
E||---5--6--8-------------------------------------------||
A Locrian
e||---------------------------------------------5--6--8-||
B||---------------------------------------6--8----------||
G||------------------------------5--7--8----------------||
D||---------------------5--7--8-------------------------||
A||------------5--6--8----------------------------------||
E||---5--6--8-------------------------------------------||
A NeapolitanMinor
e||------------------------------------------5--6--8-||
B||------------------------------------5--6----------||
G||------------------------------5--7----------------||
D||---------------------6--7--8----------------------||
A||------------5--7--8-------------------------------||
E||---5--6--8----------------------------------------||
Bb Ionian
e||---------------------------------------------5--6--8-||
B||---------------------------------------6--8----------||
G||------------------------------5--7--8----------------||
D||---------------------5--7--8-------------------------||
A||------------5--6--8----------------------------------||
E||---5--6--8-------------------------------------------||
Bb Lydian
e||---------------------------------------------5--6--8-||
B||------------------------------------5--6--8----------||
G||------------------------------5--7-------------------||
D||---------------------5--7--8-------------------------||
A||------------5--7--8----------------------------------||
E||---5--6--8-------------------------------------------||
Bb Bebop
e||------------------------------------------------5--6--8-||
B||------------------------------------------6--8----------||
G||---------------------------------5--7--8----------------||
D||---------------------5--6--7--8-------------------------||
A||------------5--6--8-------------------------------------||
E||---5--6--8----------------------------------------------||
Bb SixthDiminishedScale
e||------------------------------------------------5--6--8-||
B||---------------------------------------6--7--8----------||
G||------------------------------5--7--8-------------------||
D||---------------------5--7--8----------------------------||
A||------------5--6--8-------------------------------------||
E||---5--6--8----------------------------------------------||
Bb DominantDiminishedScale
e||---------------------------------------------5--6--8-||
B||---------------------------------------6--7----------||
G||------------------------------5--7--8----------------||
D||---------------------6--7--8-------------------------||
A||------------5--6--8----------------------------------||
E||---5--6--8-------------------------------------------||
Experimental, still very new, may change a lot
#r "../packages/bespoke-osc-library/1.0.0/lib/Bespoke.Common.Osc.dll"
#load "Infrastructure.fs"
#load "Domain.fs"
#load "Notes.fs"
#load "Chords.fs"
#load "SonicPi.fs"
open Vaughan.Domain
open Vaughan.Chords
open Vaughan.SonicPi
Statments[
UseBpm 120<bpm>;
WithSynth(Fm, [
WithFx(Reverb, [Mix(0.5)], [
Repeat(2, [
PlayNote(C, OneLine, [
Amplitude(0.5<loud>);
Panning(0.0<pan>);
Attack(2.0<beat>);
Release(2.0<beat>)]);
PlayChord(chord C Major, TwoLine, [
Amplitude(1.0<loud>);
Release(2.0<beat>);
Panning(1.0<pan>)]);
Rest 2<beat>;
Arpeggio([C; E; G; B], OneLine, [1.0<beat>], [])
])
])
])
]
|> toSonicPiScript
|> sonicPiRunExecute sample code above: cd Vaughan and fsharpi SonicPi.fsx
#r "../packages/bespoke-osc-library/1.0.0/lib/Bespoke.Common.Osc.dll"
#load "Infrastructure.fs"
#load "Domain.fs"
#load "Notes.fs"
#load "Chords.fs"
#load "SonicPi.fs"
open Vaughan.Domain
open Vaughan.SonicPi
Statments
[
UseBpm 120<bpm>;
LiveLoop("Foo",
[
PlaySample(LoopingSample Garzul, []);
UseSynth TheProphet;
PlayNote(G, Great, [Release(8.0<beat>)]);
Rest 8<beat>
])
]
|> toSonicPiScript
|> sonicPiRun
sonicPiStopExecute sample code above: cd Vaughan and fsharpi SonicPiLiveLoop.fsx to stop this script sound, for now, you have to do it from SonicPi interface (could not get message to halt execution to work yet).
DSL for communicating with SonicPi, requires SonicPi on machine and requires SonicPi to be running.
#r "../packages/bespoke-osc-library/1.0.0/lib/Bespoke.Common.Osc.dll"
#load "Infrastructure.fs"
#load "Domain.fs"
#load "Notes.fs"
#load "Chords.fs"
#load "SonicPi.fs"
open Vaughan.Domain
open Vaughan.SonicPi
let section = Section(
(4<beat>, Quarter),
CMajor,
[
[
1.0<beat>, [(D, OneLine, Quarter); (F, OneLine, Quarter); (A, OneLine, Quarter)];
2.0<beat>, [(D, OneLine, Quarter); (F, OneLine, Quarter); (A, OneLine, Quarter)];
3.0<beat>, [(D, OneLine, Quarter); (F, OneLine, Quarter); (A, OneLine, Quarter)];
4.0<beat>, [(D, OneLine, Quarter); (F, OneLine, Quarter); (A, OneLine, Quarter)]
];
[
1.0<beat>, [(G, OneLine, Quarter); (B, OneLine, Quarter); (D, OneLine, Quarter)];
2.0<beat>, [(G, OneLine, Quarter); (B, OneLine, Quarter); (D, OneLine, Quarter)];
3.0<beat>, [(G, OneLine, Quarter); (B, OneLine, Quarter); (D, OneLine, Quarter)];
4.0<beat>, [(G, OneLine, Quarter); (B, OneLine, Quarter); (D, OneLine, Quarter)]
];
[
1.0<beat>, [(C, OneLine, Quarter); (E, OneLine, Quarter); (G, OneLine, Quarter)];
2.0<beat>, [(C, OneLine, Quarter); (E, OneLine, Quarter); (G, OneLine, Quarter)];
3.0<beat>, [(C, OneLine, Quarter); (E, OneLine, Quarter); (G, OneLine, Quarter)];
4.0<beat>, [(C, OneLine, Quarter); (E, OneLine, Quarter); (G, OneLine, Quarter)]
];
])
Statments[UseBpm 120<bpm>; WithSynth(Pluck, [section])]
|> toSonicPiScript
|> sonicPiRunExecute sample code above: cd Vaughan and fsharpi SonicPiSong.fsx
This code works on last build more up to date than documentation
#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
[StandardTunning; Start; Notes(ascEightsRootAbove (guitarArpeggio 5 8 (chord BFlat Major7))); End]
|> renderTab
|> printf "\n%s"
[StandardTunning; Start; Notes(descEightsRootBelow (guitarArpeggio 5 8 (chord BFlat Major7))); End]
|> renderTab
|> printf "\n%s"
[StandardTunning; Start; Notes(ascEightsRootEnclosed (guitarArpeggio 5 8 (chord BFlat Major7))); End]
|> renderTab
|> printf "\n%s"
[StandardTunning; Start; Notes(descEightsThirdEnclosed (guitarArpeggio 2 5 (chord C Major7))); End]
|> renderTab
|> printf "\n%s"
[StandardTunning; Start; Notes(ascEightsRootEnclosed (guitarArpeggio 2 5 (chord C Major7))); End]
|> renderTab
|> printf "\n%s"
[StandardTunning; Start; Notes(ascEightsThirdEnclosed (guitarArpeggio 2 5 (chord C Major7))); End]
|> renderTab
|> printf "\n%s"
[StandardTunning; Start; Notes(ascEightsRootEnclosed (guitarArpeggio 5 8 (chord C Minor7))); End]
|> renderTab
|> printf "\n%s"
[StandardTunning; Start; Notes(ascEightsSeventhEnclosed (guitarArpeggio 5 8 (chord C Minor7))); End]
|> renderTab
|> printf "\n%s"
[StandardTunning; Start; Notes(ascEightsThirdEnclosed (guitarArpeggio 5 8 (chord C Minor7))); End]
|> renderTab
|> printf "\n%s"
[StandardTunning; Start; ArbArpeggio(descendingArpeggioFrom root (guitarArpeggio 2 5 (chord C Major7))); End]
|> renderTab
|> printf "\n%s"
[StandardTunning; Start; Arpeggio(ascendingArpeggioFrom root (guitarArpeggio 2 5 (chord C Major))); End]
|> renderTab
|> printf "\n%s"
[StandardTunning; Start; Arpeggio(ascendingArpeggioFrom root (guitarArpeggio 2 5 (chord G Major))); End]
|> renderTab
|> printf "\n%s"
[StandardTunning; Start; Scale(createScale Ionian C |> guitarScale 2 6); End]
|> renderTab
|> printf "\n%s"
[StandardTunning; Start; Arpeggio(guitarArpeggio 9 22 (chord C Major)); End]
|> renderTab
|> printf "\n%s"
[
StandardTunning;
Start;
Note({GuitarString=FirstString; Fret=8; Note=C})
End
]
|> renderTab
|> printf "\n%s"
[
StandardTunning;
Start;
Chord(chord D Minor7 |> toDrop3 |> guitarChord SixthString);
Chord(chord G Dominant7 |> toDrop3 |> guitarChord SixthString);
Chord(chord C Major7 |> toDrop3 |> guitarChord SixthString);
End
]
|> renderTab
|> printf "\n%s"
[StandardTunning; Start; Scale(createScale Ionian C |> guitarScale 4 8); End]
|> renderTab
|> printf "\n%s"
[StandardTunning; Start; Scale(createScale Ionian C |> guitarScale 7 10); End]
|> renderTab
|> printf "\n%s"
[StandardTunning; Start; Scale(createScale Ionian C |> guitarScale 9 13); End]
|> renderTab
|> printf "\n%s"
[StandardTunning; Start; Arpeggio(chord C Major |> guitarArpeggio 9 22); End]
|> renderTab
|> printf "\n%s"
[StandardTunning; Start; Arpeggio(chord C Major |> guitarArpeggio 7 10); End]
|> renderTab
|> printf "\n%s"
[StandardTunning; Start; Arpeggio(chord C Major |> guitarArpeggio 4 5); End]
|> renderTab
|> printf "\n%s"
[StandardTunning; Start; Arpeggio(chord C Major |> guitarArpeggio 1 4); End]
|> renderTab
|> printf "\n%s"
[StandardTunning; Start; Arpeggio(chord C Major |> guitarArpeggio 7 10); End]
|> renderTab
|> printf "\n%s"
[StandardTunning; Start; Arpeggio(chord C Major |> guitarArpeggio 0 13); End]
|> renderTab
|> printf "\n%s"
chord C Major7
|> toDrop3
|> guitarChord SixthString
|> tabifyChord
|> printf "\n%s"
chord C Major7
|> toDrop2
|> guitarChord FifthString
|> tabifyChord
|> printf "\n%s"
chord C Major
|> guitarChord FifthString
|> tabifyChord
|> printf "\n%s"
chord C Dominant9
|> skipFunction Fifth
|> guitarChord FifthString
|> tabifyChord
|> printf "\n%s"
chord C Major9
|> skipFunction Fifth
|> guitarChord FifthString
|> tabifyChord
|> printf "\n%s"
createScaleNotes Aolian DSharp
|> triadsHarmonizer ScaleDegree.III
|> guitarChord SixthString
|> tabifyChord
|> printf "\n%s"
createScaleNotes Ionian A
|> seventhsHarmonizer ScaleDegree.I
|> toDrop2
|> guitarChord FifthString
|> tabifyChord
|> printf "\n%s"
createScaleNotes Ionian C
|> seventhsHarmonizer ScaleDegree.I
|> toDrop3
|> guitarChord FifthString
|> tabifyChord
|> printf "\n%s"
createScaleNotes Aolian FSharp
|> seventhsHarmonizer ScaleDegree.III
|> toDrop3
|> guitarChord SixthString
|> tabifyChord
|> printf "\n%s"
createScaleNotes HarmonicMinor BFlat
|> seventhsHarmonizer ScaleDegree.VII
|> guitarChord SixthString
|> tabifyChord
|> printf "\n%s"
createScaleNotes HarmonicMinor C
|> seventhsHarmonizer ScaleDegree.VII
|> guitarChord SixthString
|> tabifyChord
|> printf "\n%s"
createScaleNotes HarmonicMinor C
|> seventhsHarmonizer ScaleDegree.VII
|> guitarChord SixthString
|> tabifyChord
|> printf "\n%A"
createScaleNotes HarmonicMinor C
|> seventhsHarmonizer ScaleDegree.VII
|> toOpen
|> guitarChord SixthString
|> tabifyChord
|> printf "\n%A"
noteName C |> printf "\n%A"
noteName CSharp |> printf "\n%A"
noteName DFlat |> printf "\n%A"
sharp EFlat |> printf "\n%A"
flat E |> printf "\n%A"
measureAbsoluteSemitones C G |> printf "\n%A"
intervalBetween C FSharp |> printf "\n%A"
transpose C MajorSixth |> printf "\n%A"
intervalName DiminishedFifth |> printf "\n%A"
fromDistance 6<ht> |> printf "\n%A"
toDistance PerfectFifth |> printf "\n%A"
keyNotes CMajor |> printf "\n%A"
keyNotes EFlatMajor |> printf "\n%A"
keyNotes DMinor |> printf "\n%A"
createScaleNotes Phrygian C |> printf "\n%A"
createScaleNotes LydianAugmented C |> printf "\n%A"
let cMaj7 = {Notes= [(C, Root); (E, Third); (G, Fifth); (B, Seventh)]; ChordType=Closed; Name="CMaj7"}
let cMaj = chord C Major
noteNames cMaj7 |> printf "\n%A"
bass cMaj7 |> printf "\n%A"
lead cMaj7 |> printf "\n%A"
name cMaj7 |> printf "\n%A"
cMaj7.Notes |> printf "\n%A"
(cMaj7 |> invert).Notes |> printf "\n%A"
(cMaj7 |> invert |> invert).Notes |> printf "\n%A"
(cMaj7 |> invert |> invert |> invert).Notes |> printf "\n%A"
(cMaj7 |> toDrop2).Notes |> printf "\n%A"
(cMaj7 |> toDrop3).Notes |> printf "\n%A"
inversionForFunctionAsLead cMaj Third |> printf "\n%A"
inversionForFunctionAsBass cMaj Fifth |> printf "\n%A"
invertionWithLeadClosestToNote cMaj CSharp |> printf "\n%A"
invertionWithBassClosestToNote cMaj F |> printf "\n%A"
printfn "\n"
printfn "Chords Fitting"
chordsFitting [D; F; A] |> printf "\n%A"
chordsFitting [C; E; G; B] |> printf "\n%A"
printfn "\n"
printfn "Scales Fitting"
let chord = chord C ChordQuality.Dominant7
scalesFitting chorde||--------------------------||
B||-----------------------6--||
G||--------------------7-----||
D||--------------7--8--------||
A||--------5--8--------------||
E||--7--6--------------------||
e||--5--6--5-----------------||
B||-----------6--------------||
G||--------------7-----------||
D||-----------------8--7-----||
A||-----------------------8--||
E||--------------------------||
e||--------------------------||
B||--------------------------||
G||-----------------------7--||
D||-----------------7--8-----||
A||-----------5--8-----------||
E||--7--5--6-----------------||
e||--------------------------||
B||--6--4--5-----------------||
G||-----------5--4-----------||
D||-----------------5--2-----||
A||-----------------------3--||
E||--------------------------||
e||--------------------------||
B||-----------------------5--||
G||-----------------4--5-----||
D||-----------2--5-----------||
A||--4--2--3-----------------||
E||--------------------------||
e||-----------------------3--||
B||--------------------5-----||
G||--------------4--5--------||
D||--3--1--2--5--------------||
A||--------------------------||
E||--------------------------||
e||--------------------------||
B||--------------------------||
G||--------------------5--8--||
D||--------------5--8--------||
A||-----------6--------------||
E||--9--7--8-----------------||
e||--------------------------||
B||--------------------------||
G||-----------------------5--||
D||-----------------5--8-----||
A||--------------6-----------||
E||--7--5--6--8--------------||
e||--------------------------||
B||-----------------------8--||
G||-----------------5--8-----||
D||-----------5--8-----------||
A||--7--5--6-----------------||
E||--------------------------||
e||-----------------------||
B||-----------------------||
G||--5--4-----------------||
D||--------5--2-----------||
A||--------------3--2-----||
E||--------------------3--||
e||-----------------3--||
B||--------------5-----||
G||-----------5--------||
D||-----2--5-----------||
A||--3-----------------||
E||--------------------||
e||--------------------3--||
B||-----------------3-----||
G||--------------4--------||
D||-----------5-----------||
A||-----2--5--------------||
E||--3--------------------||
e||--------------------------------------------3--5--||
B||-----------------------------------3--5--6--------||
G||--------------------------2--4--5-----------------||
D||-----------------2--3--5--------------------------||
A||--------2--3--5-----------------------------------||
E||--3--5--------------------------------------------||
e||-------------------------------------------------------------12--15--20--||
B||-------------------------------------------------13--17--20--------------||
G||--------------------------------------9--12--17--------------------------||
D||--------------------------10--14--17-------------------------------------||
A||--------------10--15--19-------------------------------------------------||
E||--12--15--20-------------------------------------------------------------||
e||--8--||
B||-----||
G||-----||
D||-----||
A||-----||
E||-----||
e||------------||
B||--10--3--8--||
G||--10--4--9--||
D||--10--3--9--||
A||------------||
E||--10--3--8--||
e||--------------------------------------------5--7--8--||
B||-----------------------------------5--6--8-----------||
G||--------------------------4--5--7--------------------||
D||--------------------5--7-----------------------------||
A||-----------5--7--8-----------------------------------||
E||--5--7--8--------------------------------------------||
e||-------------------------------------------------7--8--10--||
B||------------------------------------------8--10------------||
G||--------------------------------7--9--10-------------------||
D||----------------------7--9--10-----------------------------||
A||------------7--8--10---------------------------------------||
E||--7--8--10-------------------------------------------------||
e||--------------------------------------------------------10--12--13--||
B||--------------------------------------------10--12--13--------------||
G||---------------------------------9--10--12--------------------------||
D||----------------------9--10--12-------------------------------------||
A||--------------10--12------------------------------------------------||
E||--10--12--13--------------------------------------------------------||
e||-------------------------------------------------------------12--15--20--||
B||-------------------------------------------------13--17--20--------------||
G||--------------------------------------9--12--17--------------------------||
D||--------------------------10--14--17-------------------------------------||
A||--------------10--15--19-------------------------------------------------||
E||--12--15--20-------------------------------------------------------------||
e||----------------------8--||
B||-------------------8-----||
G||----------------9--------||
D||------------10-----------||
A||-----7--10---------------||
E||--8----------------------||
e||------------------1--||
B||--------------5-----||
G||-----------5--------||
D||--------5-----------||
A||------1--------------||
E||---1-----------------||
e||-----------------3--||
B||--------------1-----||
G||------------1--------||
D||--------2-----------||
A||-----3--------------||
E||--3-----------------||
e||----------------------8--||
B||-------------------8-----||
G||----------------9--------||
D||------------10-----------||
A||-----7--10---------------||
E||--8----------------------||
e||-------------------------------------------------0--3--8--||
B||----------------------------------------1--5--8-----------||
G||-------------------------------0--5--9--------------------||
D||---------------------2--5--10-----------------------------||
A||-----------3--7--10---------------------------------------||
E||--0--3--8-------------------------------------------------||
e||-----||
B||--8--||
G||--9--||
D||--9--||
A||-----||
E||--8--||
e||-----||
B||--5--||
G||--4--||
D||--5--||
A||--3--||
E||-----||
e||--3--||
B||--1--||
G||--5--||
D||--2--||
A||--3--||
E||-----||
e||-----||
B||--3--||
G||--3--||
D||--2--||
A||--3--||
E||-----||
e||-----||
B||--3--||
G||--4--||
D||--2--||
A||--3--||
E||-----||
e||------||
B||------||
G||------||
D||--11--||
A||--13--||
E||--14--||
e||------||
B||--14--||
G||--13--||
D||--14--||
A||--12--||
E||------||
e||--3--||
B||--5--||
G||--4--||
D||-----||
A||--3--||
E||-----||
e||-----||
B||--5--||
G||--6--||
D||--6--||
A||-----||
E||--5--||
e||--2--||
B||--1--||
G||--2--||
D||--1--||
A||--3--||
E||--2--||
e||--1--||
B||--3--||
G||--1--||
D||--3--||
A||--2--||
E||--1--||
"e||--1--||
B||--3--||
G||--1--||
D||--3--||
A||--2--||
E||--1--||
"
"e||--1--||
B||--0--||
G||--1--||
D||--0--||
A||--2--||
E||--1--||
"
"C"
"C#"
"Db"
E
EFlat
7
DiminishedFifth
A
"DiminishedFifth"
DiminishedFifth
7
[C; D; E; F; G; A; B]
[EFlat; F; G; AFlat; BFlat; C; D]
[D; E; F; G; A; BFlat; C]
[C; DFlat; EFlat; F; G; AFlat; BFlat]
[C; D; E; FSharp; GSharp; A; B]
["C"; "E"; "G"; "B"]
C
B
"CMaj7"
[(C, Root); (E, Third); (G, Fifth); (B, Seventh)]
[(E, Third); (G, Fifth); (B, Seventh); (C, Root)]
[(G, Fifth); (B, Seventh); (C, Root); (E, Third)]
[(B, Seventh); (C, Root); (E, Third); (G, Fifth)]
[(C, Root); (G, Fifth); (B, Seventh); (E, Third)]
[(C, Root); (B, Seventh); (E, Third); (G, Fifth)]
{Notes = [(G, Fifth); (C, Root); (E, Third)];
ChordType = Closed;
Name = "CMaj";}
{Notes = [(G, Fifth); (C, Root); (E, Third)];
ChordType = Closed;
Name = "CMaj";}
{Notes = [(E, Third); (G, Fifth); (C, Root)];
ChordType = Closed;
Name = "CMaj";}
{Notes = [(E, Third); (G, Fifth); (C, Root)];
ChordType = Closed;
Name = "CMaj";}
Chords Fitting
[{Notes = [(A, Root); (D, Third); (F, Fifth)];
ChordType = Closed;
Name = "ASus4Aug";}; {Notes = [(D, Root); (F, Third); (A, Fifth)];
ChordType = Closed;
Name = "DMin";}]
[{Notes = [(C, Root); (E, Third); (G, Fifth); (B, Seventh)];
ChordType = Closed;
Name = "CMaj7";}]
Scales Fitting
val generateArpeggioExercise :
arpeggio:Vaughan.Domain.GuitarArpeggio -> unit list
val CMinor7 : Vaughan.Domain.Chord =
{Notes = [(C, Root); (EFlat, Third); (G, Fifth); (BFlat, Seventh)];
ChordType = Closed;
Name = "CMin7";}
val CMinor7Arpeggio : Vaughan.Domain.GuitarArpeggio =
{BaseChord =
{Notes = [(C, Root); (EFlat, Third); (G, Fifth); (BFlat, Seventh)];
ChordType = Closed;
Name = "CMin7";};
ArpeggioFrets =
[{GuitarString = FirstString;
Fret = 8;
Note = C;}; {GuitarString = FirstString;
Fret = 6;
Note = BFlat;}; {GuitarString = SecondString;
Fret = 8;
Note = G;}; {GuitarString = ThirdString;
Fret = 5;
Note = C;};
{GuitarString = ThirdString;
Fret = 8;
Note = EFlat;}; {GuitarString = FourthString;
Fret = 5;
Note = G;}; {GuitarString = FourthString;
Fret = 8;
Note = BFlat;};
{GuitarString = FifthString;
Fret = 6;
Note = EFlat;}; {GuitarString = SixthString;
Fret = 8;
Note = C;}; {GuitarString = SixthString;
Fret = 6;
Note = BFlat;}];}
val F7 : Vaughan.Domain.Chord =
{Notes = [(F, Root); (A, Third); (C, Fifth); (EFlat, Seventh)];
ChordType = Closed;
Name = "F7";}
val F7Arpeggio : Vaughan.Domain.GuitarArpeggio =
{BaseChord = {Notes = [(F, Root); (A, Third); (C, Fifth); (EFlat, Seventh)];
ChordType = Closed;
Name = "F7";};
ArpeggioFrets =
[{GuitarString = FirstString;
Fret = 5;
Note = A;}; {GuitarString = FirstString;
Fret = 8;
Note = C;}; {GuitarString = SecondString;
Fret = 6;
Note = F;}; {GuitarString = ThirdString;
Fret = 5;
Note = C;};
{GuitarString = ThirdString;
Fret = 8;
Note = EFlat;}; {GuitarString = FourthString;
Fret = 7;
Note = A;}; {GuitarString = FifthString;
Fret = 8;
Note = F;}; {GuitarString = FifthString;
Fret = 6;
Note = EFlat;};
{GuitarString = SixthString;
Fret = 5;
Note = A;}; {GuitarString = SixthString;
Fret = 8;
Note = C;}];}
val BbMajor7 : Vaughan.Domain.Chord =
{Notes = [(BFlat, Root); (D, Third); (F, Fifth); (A, Seventh)];
ChordType = Closed;
Name = "BbMaj7";}
val BbMajor7Arpeggio : Vaughan.Domain.GuitarArpeggio =
{BaseChord = {Notes = [(BFlat, Root); (D, Third); (F, Fifth); (A, Seventh)];
ChordType = Closed;
Name = "BbMaj7";};
ArpeggioFrets =
[{GuitarString = FirstString;
Fret = 6;
Note = BFlat;}; {GuitarString = FirstString;
Fret = 5;
Note = A;}; {GuitarString = SecondString;
Fret = 6;
Note = F;}; {GuitarString = ThirdString;
Fret = 7;
Note = D;};
{GuitarString = FourthString;
Fret = 8;
Note = BFlat;}; {GuitarString = FourthString;
Fret = 7;
Note = A;}; {GuitarString = FifthString;
Fret = 5;
Note = D;}; {GuitarString = FifthString;
Fret = 8;
Note = F;};
{GuitarString = SixthString;
Fret = 6;
Note = BFlat;}; {GuitarString = SixthString;
Fret = 5;
Note = A;}];}
val EbMajor7 : Vaughan.Domain.Chord =
{Notes = [(EFlat, Root); (G, Third); (ASharp, Fifth); (D, Seventh)];
ChordType = Closed;
Name = "EbMaj7";}
val EbMajor7Arpeggio : Vaughan.Domain.GuitarArpeggio =
{BaseChord =
{Notes = [(EFlat, Root); (G, Third); (ASharp, Fifth); (D, Seventh)];
ChordType = Closed;
Name = "EbMaj7";};
ArpeggioFrets =
[{GuitarString = FirstString;
Fret = 6;
Note = ASharp;}; {GuitarString = SecondString;
Fret = 8;
Note = G;}; {GuitarString = ThirdString;
Fret = 8;
Note = EFlat;};
{GuitarString = ThirdString;
Fret = 7;
Note = D;}; {GuitarString = FourthString;
Fret = 5;
Note = G;}; {GuitarString = FourthString;
Fret = 8;
Note = ASharp;}; {GuitarString = FifthString;
Fret = 6;
Note = EFlat;};
{GuitarString = FifthString;
Fret = 5;
Note = D;}; {GuitarString = SixthString;
Fret = 6;
Note = ASharp;}];}
val Am7b5 : Vaughan.Domain.Chord =
{Notes = [(A, Root); (C, Third); (EFlat, Fifth); (G, Seventh)];
ChordType = Closed;
Name = "AMin7b5";}
val Am7b5Arpeggio : Vaughan.Domain.GuitarArpeggio =
{BaseChord = {Notes = [(A, Root); (C, Third); (EFlat, Fifth); (G, Seventh)];
ChordType = Closed;
Name = "AMin7b5";};
ArpeggioFrets =
[{GuitarString = FirstString;
Fret = 5;
Note = A;}; {GuitarString = FirstString;
Fret = 8;
Note = C;}; {GuitarString = SecondString;
Fret = 8;
Note = G;}; {GuitarString = ThirdString;
Fret = 5;
Note = C;};
{GuitarString = ThirdString;
Fret = 8;
Note = EFlat;}; {GuitarString = FourthString;
Fret = 7;
Note = A;}; {GuitarString = FourthString;
Fret = 5;
Note = G;}; {GuitarString = FifthString;
Fret = 6;
Note = EFlat;};
{GuitarString = SixthString;
Fret = 5;
Note = A;}; {GuitarString = SixthString;
Fret = 8;
Note = C;}];}
val D7 : Vaughan.Domain.Chord =
{Notes = [(D, Root); (FSharp, Third); (A, Fifth); (C, Seventh)];
ChordType = Closed;
Name = "D7";}
val D7Arpeggio : Vaughan.Domain.GuitarArpeggio =
{BaseChord =
{Notes = [(D, Root); (FSharp, Third); (A, Fifth); (C, Seventh)];
ChordType = Closed;
Name = "D7";};
ArpeggioFrets =
[{GuitarString = FirstString;
Fret = 5;
Note = A;}; {GuitarString = FirstString;
Fret = 8;
Note = C;}; {GuitarString = SecondString;
Fret = 7;
Note = FSharp;}; {GuitarString = ThirdString;
Fret = 7;
Note = D;};
{GuitarString = ThirdString;
Fret = 5;
Note = C;}; {GuitarString = FourthString;
Fret = 7;
Note = A;}; {GuitarString = FifthString;
Fret = 5;
Note = D;}; {GuitarString = FifthString;
Fret = 9;
Note = FSharp;};
{GuitarString = SixthString;
Fret = 5;
Note = A;}; {GuitarString = SixthString;
Fret = 8;
Note = C;}];}
val Gm7 : Vaughan.Domain.Chord =
{Notes = [(G, Root); (BFlat, Third); (D, Fifth); (F, Seventh)];
ChordType = Closed;
Name = "GMin7";}
val Gm7Arpeggio : Vaughan.Domain.GuitarArpeggio =
{BaseChord = {Notes = [(G, Root); (BFlat, Third); (D, Fifth); (F, Seventh)];
ChordType = Closed;
Name = "GMin7";};
ArpeggioFrets =
[{GuitarString = FirstString;
Fret = 6;
Note = BFlat;}; {GuitarString = SecondString;
Fret = 8;
Note = G;}; {GuitarString = SecondString;
Fret = 6;
Note = F;}; {GuitarString = ThirdString;
Fret = 7;
Note = D;};
{GuitarString = FourthString;
Fret = 5;
Note = G;}; {GuitarString = FourthString;
Fret = 8;
Note = BFlat;}; {GuitarString = FifthString;
Fret = 5;
Note = D;}; {GuitarString = FifthString;
Fret = 8;
Note = F;};
{GuitarString = SixthString;
Fret = 6;
Note = BFlat;}];}
val cMaj7 : Vaughan.Domain.Chord =
{Notes = [(C, Root); (E, Third); (G, Fifth); (B, Seventh)];
ChordType = Closed;
Name = "CMaj7";}
val cMaj : Vaughan.Domain.Chord =
{Notes = [(C, Root); (E, Third); (G, Fifth)];
ChordType = Closed;
Name = "CMaj";}
val chord : Vaughan.Domain.Chord =
{Notes = [(C, Root); (E, Third); (G, Fifth); (BFlat, Seventh)];
ChordType = Closed;
Name = "C7";}
val it : Vaughan.Domain.Scale list =
[{Scale = Mixolydian;
Notes = [C; D; E; F; G; A; BFlat];};
{Scale = LydianDominant;
Notes = [C; D; E; FSharp; G; A; BFlat];};
{Scale = Mixolydianb6;
Notes = [C; D; E; F; G; AFlat; BFlat];};
{Scale = Bebop;
Notes = [C; D; E; F; G; A; BFlat; B];};
{Scale = HalfWholeDiminished;
Notes = [C; DFlat; EFlat; E; FSharp; G; A; BFlat];};
{Scale = DominantDiminishedScale;
Notes = [C; D; E; F; G; GSharp; BFlat; B];};
{Scale = Aolian;
Notes = [D; E; F; G; A; BFlat; C];};
{Scale = Mixolydianb6;
Notes = [D; E; FSharp; G; A; BFlat; C];};
{Scale = LocrianSharp2;
Notes = [D; E; F; G; AFlat; BFlat; C];};
{Scale = Locrian;
Notes = [E; F; G; A; BFlat; C; D];};
{Scale = LocrianSharp2;
Notes = [E; FSharp; G; A; BFlat; C; D];};
{Scale = AlteredDominant;
Notes = [E; F; G; GSharp; BFlat; C; D];};
{Scale = Dorian;
Notes = [G; A; BFlat; C; D; E; F];};
{Scale = MelodicMinor;
Notes = [G; A; BFlat; C; D; E; FSharp];};
{Scale = Dorianb2;
Notes = [G; AFlat; BFlat; C; D; E; F];};
{Scale = MinorSixthDiminishedScale;
Notes = [G; A; BFlat; C; D; DSharp; E; FSharp];};
{Scale = Phrygian;
Notes = [A; BFlat; C; D; E; F; G];};
{Scale = Dorianb2;
Notes = [A; BFlat; C; D; E; FSharp; G];};
{Scale = HalfWholeDiminished;
Notes = [A; BFlat; C; CSharp; DSharp; E; FSharp; G];};
{Scale = Lydian;
Notes = [BFlat; C; D; E; F; G; A];};
{Scale = LydianAugmented;
Notes = [BFlat; C; D; E; FSharp; G; A];};
{Scale = LydianDominant;
Notes = [BFlat; C; D; E; F; G; AFlat];}]