module Music.Parts.Instrument.Woodwind ( WoodwindInstrument, woodwindInstrument, GlissandoRange, Glissando, allowedGlissandi, effectiveGlissandi, isAllowedGlissando, ) where import Control.Lens import Music.Parts.Instrument import Data.Set (Set) import Music.Pitch.Common (Pitch, Interval) import Music.Pitch (Ambitus, Clef) newtype WoodwindInstrument = WoodwindInstrument Instrument woodwindInstrument :: Prism' Instrument WoodwindInstrument woodwindInstrument = undefined -- TODO type GlissandoRange = Ambitus Pitch type Glissando = Ambitus Pitch allowedGlissandi :: Set GlissandoRange allowedGlissandi = error "No allowedGlissandi" effectiveGlissandi :: Set GlissandoRange effectiveGlissandi = error "No effectiveGlissandi" isAllowedGlissando :: WoodwindInstrument -> Glissando -> Bool isAllowedGlissando = error "No isAllowedGlissandi" -- TODO correspondance of range/sound/dynamic