anchor.diff:  open Vaughan.Scales
   
   module SonicPiConverter =
  +
     let private replace f (r:string) (s:string) = 
       s.Replace(f,r)
  +
     let convertNote note =
       (sprintf "%A" note) 
       |> (replace "Flat" "b" >> replace "Sharp" "s")
  
positive.code: 
    let extractNoteFromChord (chord:string) = 
      chord.Substring(0,1)
    let getTone chord = 
      let tone = if (isMinor chord) then "minor" else "major"
      tone
    let toChord chord = 
      sprintf "chord(:%s,:%s)" 
        (chord |> extractNoteFromChord) 
        (chord |> getTone)
    let toSonicPiNotation noteList =
      noteList 
      |> List.map convertNote
  
  module Composer =   
  
  
negative.code:       ScaleDgrees.II
        ScaleDgrees.V
      ] 
  
    let DyerMaker = [
      ScaleDgrees.I
      ScaleDgrees.VI
      ScaleDgrees.IV
      ScaleDgrees.V
    ] 
  
    let Otherside = [
      ScaleDgrees.I
      ScaleDgrees.VI
      ScaleDgrees.III
      ScaleDgrees.VII
    ] 
    
    let private getSonicChord chord degree = 
      chord
      |> triadsHarmonizer degree 
  