packages feed

hmt-0.18: Music/Theory/Tuning/DB.hs

-- | DB of locally defined tunings, but for ordinary use see "Music.Theory.Tuning.Scala".
module Music.Theory.Tuning.DB where

import Data.List {- base -}

import Music.Theory.Tuning.Type

import Music.Theory.Tuning.Alves_1997
import Music.Theory.Tuning.Gann_1993
import Music.Theory.Tuning.Polansky_1978
import Music.Theory.Tuning.Polansky_1985c

import Music.Theory.Tuning.DB.Alves
import Music.Theory.Tuning.DB.Gann
import Music.Theory.Tuning.DB.Microtonal_Synthesis
import Music.Theory.Tuning.DB.Riley
import Music.Theory.Tuning.DB.Werckmeister

-- | (last-name,first-name,title,year,hmt/tuning,scala/name)
type Named_Tuning = (String,String,String,String,Tuning,String)

named_tuning_t :: Named_Tuning -> Tuning
named_tuning_t (_,_,_,_,t,_) = t

tuning_db :: [Named_Tuning]
tuning_db =
    [("Aaron","Pietro","","1523",pietro_aaron_1523,"meanquar")
    ,("Alves","Bill","Slendro","",alves_slendro,"slendro_alves") -- slendro9
    ,("Alves","Bill","Pelog/Bem","",alves_pelog_bem,"") -- hirajoshi2 / pelog_jc
    ,("Alves","Bill","Pelog/Barang","",alves_pelog_barang,"") -- surupan_degung / degung3
    ,("Gann","Kyle","Superparticular","1992",gann_superparticular,"gann_super")
    ,("Harrison","Lou","Ditone","",harrison_ditone,"") -- pyth_12 / zwolle
    ,("Harrison","Lou","16-tone","",lou_harrison_16,"harrison_16")
    ,("Johnston","Ben","MTP","1977",ben_johnston_mtp_1977,"") -- carlos_harm
    ,("Johnston","Ben","25-tone","",ben_johnston_25,"johnston_25")
    ,("Kirnberger","Johann Philipp","III","",kirnberger_iii,"kirnberger")
    ,("Malcolm","Alexander","Monochord","1721",five_limit_tuning,"malcolm") -- wurschmidt
    ,("Partch","Harry","43-tone","",partch_43,"partch_43")
    ,("Polansky","Larry","Piano Study #5","1985",ps5_jpr,"polansky_ps") -- 56-any
    ,("Polansky","Larry","Psaltery","1978",psaltery_o,"") -- dconv9marv
    ,("Riley","Terry","Harp of New Albion","",riley_albion,"riley_albion")
    ,("Tsuda","Mayumi","13-limit","",mayumi_tsuda,"tsuda13")
    ,("Vallotti","","","1754",vallotti,"vallotti") -- bemetzrieder2
    ,("Werckmeister","Andreas","Werckmeister III","",werckmeister_iii,"werck3")
    ,("Werckmeister","Andreas","Werckmeister IV","",werckmeister_iv,"werck4")
    ,("Werckmeister","Andreas","Werckmeister V","",werckmeister_v,"werck5") -- ammerbach1
    ,("Werckmeister","Andreas","Werckmeister VI","",werckmeister_vi,"werck6")
    ,("Young","La Monte","The Well-Tuned Piano","",lmy_wtp,"young-lm_piano")
    ,("Young","Thomas","","1799",thomas_young_1799,"young1") -- young2
    ,("Zarlino","Gioseffo","","1588",zarlino_1588,"zarlino2") -- mersen_s3
    ,("","","JI/12 7-limit","",septimal_tritone_just_intonation,"ji_12")
    ,("","","ET/12","",tn_equal_temperament_12,"et12")
    ,("","","ET/19","",tn_equal_temperament_19,"et19")
    ,("","","ET/31","",tn_equal_temperament_31,"et13")
    ,("","","ET/53","",tn_equal_temperament_53,"et53")
    ,("","","ET/72","",tn_equal_temperament_72,"et72")
    ,("","","ET/96","",tn_equal_temperament_96,"et96")
    ,("","","Pythagorean/12","",pythagorean_12,"pyth_12") -- zwolle
    ]

tuning_db_lookup_scl :: String -> Maybe Tuning
tuning_db_lookup_scl nm = fmap named_tuning_t (find (\(_,_,_,_,_,scl) -> scl == nm) tuning_db)

{-

import Music.Theory.Tuning.Scala
db <- scl_load_db
f n = take n . scl_db_query_cdiff_asc round db . sort . tn_cents_octave
f 2 pietro_aaron_1523
pp = mapM_ (putStrLn . unlines . scale_stat . snd)
mapM_ pp (map (f 2 . named_tuning_t) tuning_db)

-}