{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedStrings #-} -- | ISMIR 2004 rhythm classification. module AcousticBrainz.HighLevel.ISMIR04Rhythm where import AcousticBrainz.FiniteDistribution import Data.Aeson import Data.Aeson.Types data Genre = ChaChaCha | Jive | Quickstep | RumbaAmerican | RumbaInternational | RumbaMisc | Samba | Tango | VienneseWaltz | Waltz deriving(Eq, Ord, Read, Show) instance FromJSON (FiniteDistribution Genre) where parseJSON = parseFiniteDistribution [ (ChaChaCha, "ChaChaCha") , (Jive, "Jive") , (Quickstep, "Quickstep") , (RumbaAmerican, "Rumba-American") , (RumbaInternational, "Rumba-International") , (RumbaMisc, "Rumba-Misc") , (Samba, "Samba") , (VienneseWaltz, "VienneseWaltz") , (Waltz, "Waltz") ]