module HarmTrace.Matching.Standard (diffChords, diffChordsLen) where
import Data.Algorithm.Diff
diff :: (Eq a) => [a] -> [a] -> [(DI,a)]
diff = getDiff
diffLen :: (Eq a) => [a] -> [a] -> Float
diffLen x y = fromIntegral (len (diff x y)) / fromIntegral (length x)
len :: [(DI,a)] -> Int
len [] = 0
len ((B,_):t) = len t
len ((_,_):t) = 1 + len t
diffChordsLen :: (Eq a) => [a] -> [a] -> Float
diffChordsLen = diffLen
diffChords :: (Show a, Eq a) => [a] -> [a] -> String
diffChords x y = show (diff x y)