-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Haskell Music Theory -- -- Haskell music theory library @package hmt @version 0.3 module Music.Theory.Tuning type Approximate_Ratio = Double type Cents = Double -- | Harmonic series (folded) harmonic_series_folded :: Integer -> [Rational] -- | Pythagorean tuning pythagorean_r :: [Rational] -- | Pythagorean tuning pythagorean_c :: [Cents] -- | Werckmeister III, Andreas Werckmeister (1645-1706) werckmeister_iii_ar :: [Approximate_Ratio] -- | Werckmeister III, Andreas Werckmeister (1645-1706) werckmeister_iii_c :: [Cents] -- | Werckmeister IV, Andreas Werckmeister (1645-1706) werckmeister_iv_ar :: [Approximate_Ratio] -- | Werckmeister IV, Andreas Werckmeister (1645-1706) werckmeister_iv_c :: [Cents] -- | Werckmeister V, Andreas Werckmeister (1645-1706) werckmeister_v_ar :: [Approximate_Ratio] -- | Werckmeister V, Andreas Werckmeister (1645-1706) werckmeister_v_c :: [Cents] -- | Werckmeister VI, Andreas Werckmeister (1645-1706) werckmeister_vi_r :: [Rational] -- | Werckmeister VI, Andreas Werckmeister (1645-1706) werckmeister_vi_c :: [Cents] -- | Pietro Aaron (1523) - Meantone temperament pietro_aaron_1523_c :: [Cents] -- | Thomas Young (1799) - Well Temperament thomas_young_1799_c :: [Cents] -- | Five-limit tuning five_limit_tuning_r :: [Rational] five_limit_tuning_c :: [Cents] equal_temperament_c :: [Cents] mk_isomorphic_layout :: Integral a => a -> a -> (a, a) -> [[(a, a)]] rank_two_regular_temperament :: Integral a => a -> a -> [(a, a)] -> [a] mk_syntonic_tuning :: Int -> [Cents] syntonic_697_c :: [Cents] syntonic_702_c :: [Cents] syntonic_comma :: Rational pythagorean_comma :: Rational mercators_comma :: Rational approximate_ratio :: Rational -> Approximate_Ratio to_cents :: Approximate_Ratio -> Cents nth_root :: Floating a => a -> a -> a twelve_tone_equal_temperament_comma :: Floating a => a minimal_isomorphic_note_layout :: [[(Int, Int)]] module Music.Theory.Pitch type PitchClass = Integer type Octave = Integer data Note_T C :: Note_T D :: Note_T E :: Note_T F :: Note_T G :: Note_T A :: Note_T B :: Note_T data Alteration_T DoubleFlat :: Alteration_T ThreeQuarterToneFlat :: Alteration_T Flat :: Alteration_T QuarterToneFlat :: Alteration_T Natural :: Alteration_T QuarterToneSharp :: Alteration_T Sharp :: Alteration_T ThreeQuarterToneSharp :: Alteration_T DoubleSharp :: Alteration_T data Pitch Pitch :: Note_T -> Alteration_T -> Octave -> Pitch note :: Pitch -> Note_T alteration :: Pitch -> Alteration_T octave :: Pitch -> Octave note_to_pc :: Note_T -> Integer alteration_to_diff :: Alteration_T -> Integer alteration_to_fdiff :: Alteration_T -> Double pitch_to_octpc :: Pitch -> (Octave, PitchClass) pitch_to_midi :: Pitch -> Integer pitch_to_fmidi :: Pitch -> Double pitch_to_pc :: Pitch -> PitchClass pitch_compare :: Pitch -> Pitch -> Ordering octpc_to_pitch :: (Octave, PitchClass) -> Pitch octpc_nrm :: (Octave, PitchClass) -> (Octave, PitchClass) octpc_trs :: Integer -> (Octave, PitchClass) -> (Octave, PitchClass) octpc_to_midi :: (Octave, PitchClass) -> Integer midi_to_octpc :: Integer -> (Octave, PitchClass) pitch_edit_octave :: (Integer -> Integer) -> Pitch -> Pitch note_t_transpose :: Note_T -> Int -> Note_T instance Eq Note_T instance Ord Note_T instance Enum Note_T instance Bounded Note_T instance Show Note_T instance Eq Alteration_T instance Ord Alteration_T instance Enum Alteration_T instance Show Alteration_T instance Eq Pitch instance Show Pitch instance Ord Pitch module Music.Theory.Pitch.Name d1 :: Pitch e1 :: Pitch f1 :: Pitch g1 :: Pitch a1 :: Pitch b1 :: Pitch c1 :: Pitch des1 :: Pitch ees1 :: Pitch fes1 :: Pitch ges1 :: Pitch aes1 :: Pitch bes1 :: Pitch ces1 :: Pitch dis1 :: Pitch eis1 :: Pitch fis1 :: Pitch gis1 :: Pitch ais1 :: Pitch bis1 :: Pitch cis1 :: Pitch d2 :: Pitch e2 :: Pitch f2 :: Pitch g2 :: Pitch a2 :: Pitch b2 :: Pitch c2 :: Pitch des2 :: Pitch ees2 :: Pitch fes2 :: Pitch ges2 :: Pitch aes2 :: Pitch bes2 :: Pitch ces2 :: Pitch dis2 :: Pitch eis2 :: Pitch fis2 :: Pitch gis2 :: Pitch ais2 :: Pitch bis2 :: Pitch cis2 :: Pitch disis2 :: Pitch eisis2 :: Pitch fisis2 :: Pitch gisis2 :: Pitch aisis2 :: Pitch bisis2 :: Pitch cisis2 :: Pitch d3 :: Pitch e3 :: Pitch f3 :: Pitch g3 :: Pitch a3 :: Pitch b3 :: Pitch c3 :: Pitch des3 :: Pitch ees3 :: Pitch fes3 :: Pitch ges3 :: Pitch aes3 :: Pitch bes3 :: Pitch ces3 :: Pitch dis3 :: Pitch eis3 :: Pitch fis3 :: Pitch gis3 :: Pitch ais3 :: Pitch bis3 :: Pitch cis3 :: Pitch disis3 :: Pitch eisis3 :: Pitch fisis3 :: Pitch gisis3 :: Pitch aisis3 :: Pitch bisis3 :: Pitch cisis3 :: Pitch deseh3 :: Pitch eeseh3 :: Pitch feseh3 :: Pitch geseh3 :: Pitch aeseh3 :: Pitch beseh3 :: Pitch ceseh3 :: Pitch deh3 :: Pitch eeh3 :: Pitch feh3 :: Pitch geh3 :: Pitch aeh3 :: Pitch beh3 :: Pitch ceh3 :: Pitch dih3 :: Pitch eih3 :: Pitch fih3 :: Pitch gih3 :: Pitch aih3 :: Pitch bih3 :: Pitch cih3 :: Pitch disih3 :: Pitch eisih3 :: Pitch fisih3 :: Pitch gisih3 :: Pitch aisih3 :: Pitch bisih3 :: Pitch cisih3 :: Pitch d4 :: Pitch e4 :: Pitch f4 :: Pitch g4 :: Pitch a4 :: Pitch b4 :: Pitch c4 :: Pitch des4 :: Pitch ees4 :: Pitch fes4 :: Pitch ges4 :: Pitch aes4 :: Pitch bes4 :: Pitch ces4 :: Pitch dis4 :: Pitch eis4 :: Pitch fis4 :: Pitch gis4 :: Pitch ais4 :: Pitch bis4 :: Pitch cis4 :: Pitch deses4 :: Pitch eeses4 :: Pitch feses4 :: Pitch geses4 :: Pitch aeses4 :: Pitch beses4 :: Pitch ceses4 :: Pitch disis4 :: Pitch eisis4 :: Pitch fisis4 :: Pitch gisis4 :: Pitch aisis4 :: Pitch bisis4 :: Pitch cisis4 :: Pitch deseh4 :: Pitch eeseh4 :: Pitch feseh4 :: Pitch geseh4 :: Pitch aeseh4 :: Pitch beseh4 :: Pitch ceseh4 :: Pitch deh4 :: Pitch eeh4 :: Pitch feh4 :: Pitch geh4 :: Pitch aeh4 :: Pitch beh4 :: Pitch ceh4 :: Pitch dih4 :: Pitch eih4 :: Pitch fih4 :: Pitch gih4 :: Pitch aih4 :: Pitch bih4 :: Pitch cih4 :: Pitch disih4 :: Pitch eisih4 :: Pitch fisih4 :: Pitch gisih4 :: Pitch aisih4 :: Pitch bisih4 :: Pitch cisih4 :: Pitch d5 :: Pitch e5 :: Pitch f5 :: Pitch g5 :: Pitch a5 :: Pitch b5 :: Pitch c5 :: Pitch des5 :: Pitch ees5 :: Pitch fes5 :: Pitch ges5 :: Pitch aes5 :: Pitch bes5 :: Pitch ces5 :: Pitch dis5 :: Pitch eis5 :: Pitch fis5 :: Pitch gis5 :: Pitch ais5 :: Pitch bis5 :: Pitch cis5 :: Pitch deses5 :: Pitch eeses5 :: Pitch feses5 :: Pitch geses5 :: Pitch aeses5 :: Pitch beses5 :: Pitch ceses5 :: Pitch disis5 :: Pitch eisis5 :: Pitch fisis5 :: Pitch gisis5 :: Pitch aisis5 :: Pitch bisis5 :: Pitch cisis5 :: Pitch deseh5 :: Pitch eeseh5 :: Pitch feseh5 :: Pitch geseh5 :: Pitch aeseh5 :: Pitch beseh5 :: Pitch ceseh5 :: Pitch deh5 :: Pitch eeh5 :: Pitch feh5 :: Pitch geh5 :: Pitch aeh5 :: Pitch beh5 :: Pitch ceh5 :: Pitch dih5 :: Pitch eih5 :: Pitch fih5 :: Pitch gih5 :: Pitch aih5 :: Pitch bih5 :: Pitch cih5 :: Pitch disih5 :: Pitch eisih5 :: Pitch fisih5 :: Pitch gisih5 :: Pitch aisih5 :: Pitch bisih5 :: Pitch cisih5 :: Pitch d6 :: Pitch e6 :: Pitch f6 :: Pitch g6 :: Pitch a6 :: Pitch b6 :: Pitch c6 :: Pitch des6 :: Pitch ees6 :: Pitch fes6 :: Pitch ges6 :: Pitch aes6 :: Pitch bes6 :: Pitch ces6 :: Pitch dis6 :: Pitch eis6 :: Pitch fis6 :: Pitch gis6 :: Pitch ais6 :: Pitch bis6 :: Pitch cis6 :: Pitch deseh6 :: Pitch eeseh6 :: Pitch feseh6 :: Pitch geseh6 :: Pitch aeseh6 :: Pitch beseh6 :: Pitch ceseh6 :: Pitch deh6 :: Pitch eeh6 :: Pitch feh6 :: Pitch geh6 :: Pitch aeh6 :: Pitch beh6 :: Pitch ceh6 :: Pitch dih6 :: Pitch eih6 :: Pitch fih6 :: Pitch gih6 :: Pitch aih6 :: Pitch bih6 :: Pitch cih6 :: Pitch disih6 :: Pitch eisih6 :: Pitch fisih6 :: Pitch gisih6 :: Pitch aisih6 :: Pitch bisih6 :: Pitch cisih6 :: Pitch d7 :: Pitch e7 :: Pitch f7 :: Pitch g7 :: Pitch a7 :: Pitch b7 :: Pitch c7 :: Pitch des7 :: Pitch ees7 :: Pitch fes7 :: Pitch ges7 :: Pitch aes7 :: Pitch bes7 :: Pitch ces7 :: Pitch dis7 :: Pitch eis7 :: Pitch fis7 :: Pitch gis7 :: Pitch ais7 :: Pitch bis7 :: Pitch cis7 :: Pitch module Music.Theory.Interval data Interval_T Unison :: Interval_T Second :: Interval_T Third :: Interval_T Fourth :: Interval_T Fifth :: Interval_T Sixth :: Interval_T Seventh :: Interval_T data Interval_Q Diminished :: Interval_Q Minor :: Interval_Q Perfect :: Interval_Q Major :: Interval_Q Augmented :: Interval_Q data Interval Interval :: Interval_T -> Interval_Q -> Ordering -> Octave -> Interval interval_type :: Interval -> Interval_T interval_quality :: Interval -> Interval_Q interval_direction :: Interval -> Ordering interval_octave :: Interval -> Octave interval_ty :: Note_T -> Note_T -> Interval_T interval_q_tbl :: [(Interval_T, [(Int, Interval_Q)])] interval_q :: Interval_T -> Int -> Maybe Interval_Q note_span :: Note_T -> Note_T -> [Note_T] invert_ordering :: Ordering -> Ordering interval :: Pitch -> Pitch -> Interval invert_interval :: Interval -> Interval quality_difference :: Interval_Q -> Interval_Q -> Int transpose :: Interval -> Pitch -> Pitch circle_of_fifths :: Pitch -> ([Pitch], [Pitch]) instance Eq Interval_T instance Ord Interval_T instance Enum Interval_T instance Show Interval_T instance Eq Interval_Q instance Ord Interval_Q instance Enum Interval_Q instance Show Interval_Q instance Eq Interval instance Show Interval module Music.Theory.Key data Mode_T Minor_Mode :: Mode_T Major_Mode :: Mode_T key_fifths :: (Note_T, Alteration_T, Mode_T) -> Int instance Eq Mode_T instance Ord Mode_T instance Show Mode_T module Music.Theory.Spelling pc_spell_natural :: PitchClass -> (Note_T, Alteration_T) pc_spell_ks :: PitchClass -> (Note_T, Alteration_T) pc_spell_sharp :: PitchClass -> (Note_T, Alteration_T) pc_spell_flat :: PitchClass -> (Note_T, Alteration_T) i_to_interval :: Int -> Interval interval_simplify :: Interval -> Interval module Music.Theory.Duration data Duration Duration :: Integer -> Integer -> Rational -> Duration division :: Duration -> Integer dots :: Duration -> Integer multiplier :: Duration -> Rational -- | Duration annotations data D_Annotation Tie_Right :: D_Annotation Tie_Left :: D_Annotation Begin_Tuplet :: (Integer, Integer, Duration) -> D_Annotation End_Tuplet :: D_Annotation whole_note :: Duration half_note :: Duration quarter_note :: Duration eighth_note :: Duration sixteenth_note :: Duration thirtysecond_note :: Duration breve :: Duration dotted_whole_note :: Duration dotted_half_note :: Duration dotted_quarter_note :: Duration dotted_eighth_note :: Duration dotted_sixteenth_note :: Duration dotted_thirtysecond_note :: Duration dotted_breve :: Duration double_dotted_whole_note :: Duration double_dotted_half_note :: Duration double_dotted_quarter_note :: Duration double_dotted_eighth_note :: Duration double_dotted_sixteenth_note :: Duration double_dotted_thirtysecond_note :: Duration double_dotted_breve :: Duration duration_compare :: Duration -> Duration -> Ordering -- | Compare durations with equal multipliers. duration_compare_meq :: Duration -> Duration -> Ordering sort_pair :: (t -> t -> Ordering) -> (t, t) -> (t, t) -- | True if neither duration is dotted. no_dots :: (Duration, Duration) -> Bool -- | Sum undotted divisions, input is required to be sorted. sum_dur_undotted :: (Integer, Integer) -> Maybe Duration -- | Sum dotted divisions, input is required to be sorted. sum_dur_dotted :: (Integer, Integer, Integer, Integer) -> Maybe Duration -- | Sum durations. Not all durations can be summed, and the present -- algorithm is not exhaustive. sum_dur :: Duration -> Duration -> Maybe Duration sum_dur' :: Duration -> Duration -> Duration -- | Rational number of quarter notes to duration value. It is a mistake to -- hope this could handle tuplets directly, ie. a 3:2 dotted note will be -- of the same duration as a plain undotted note. rq_to_duration :: Rational -> Maybe Duration -- | Convert a whole note division integer to a RQ. whole_note_division_to_rq :: Integer -> Rational -- | Apply d dots to the duration n. rq_apply_dots :: Rational -> Integer -> Rational -- | Convert duration to RQ value, see rq_to_duration for partial inverse. duration_to_rq :: Duration -> Rational whole_note_division_to_musicxml_type :: Integer -> String duration_to_musicxml_type :: Duration -> String duration_to_lilypond_type :: Duration -> String whole_note_division_to_beam_count :: Integer -> Maybe Integer duration_beam_count :: Duration -> Integer instance Eq Duration instance Show Duration instance Eq D_Annotation instance Show D_Annotation instance Ord Duration module Music.Theory.Duration.Name h :: Duration q :: Duration e :: Duration s :: Duration w :: Duration h' :: Duration q' :: Duration e' :: Duration s' :: Duration w' :: Duration h'' :: Duration q'' :: Duration e'' :: Duration s'' :: Duration w'' :: Duration _2 :: Duration _4 :: Duration _8 :: Duration _16 :: Duration _32 :: Duration _1 :: Duration _2' :: Duration _4' :: Duration _8' :: Duration _16' :: Duration _32' :: Duration _1' :: Duration _2'' :: Duration _4'' :: Duration _8'' :: Duration _16'' :: Duration _32'' :: Duration _1'' :: Duration module Music.Theory.Duration.Sequence.Notate type Duration_A = (Duration, [D_Annotation]) notate :: [R] -> [R] -> [R] -> [Duration_A] ascribe :: [Duration_A] -> [x] -> [(Duration_A, x)] -- | group to n, or to multiple of group_boundary :: (a -> R) -> [R] -> [a] -> [[a]] module Music.Theory.Permutations permutations :: [a] -> [[a]] multiset_permutations :: Ord a => [a] -> [[a]] module Music.Theory.Set -- | Remove duplicate elements and sort. set :: Ord a => [a] -> [a] -- | Powerset, ie. set of all subsets. powerset :: [a] -> [[a]] -- | Two element subsets (cf [2] . powerset). dyads :: [a] -> [(a, a)] -- | Set expansion se :: Ord a => Int -> [a] -> [[a]] module Music.Theory.PitchClass -- | Modulo twelve. mod12 :: Integral a => a -> a -- | Pitch class. pc :: Integral a => a -> a -- | Map to pitch-class and reduce to set. pcset :: Integral a => [a] -> [a] -- | Transpose by n. tn :: Integral a => a -> [a] -> [a] -- | Transpose so first element is n. transposeTo :: Integral a => a -> [a] -> [a] -- | All transpositions. transpositions :: Integral a => [a] -> [[a]] -- | Invert about n. invert :: Integral a => a -> [a] -> [a] -- | Invert about first element. invertSelf :: Integral a => [a] -> [a] -- | Composition of inversion about zero and transpose. tni :: Integral a => a -> [a] -> [a] -- | Rotate left by n places. rotate :: Integral n => n -> [a] -> [a] -- | Rotate right by n places. rotate_right :: Integral n => n -> [a] -> [a] -- | All rotations. rotations :: [a] -> [[a]] -- | Modulo 12 multiplication mn :: Integral a => a -> [a] -> [a] -- | M5 m5 :: Integral a => [a] -> [a] all_Tn :: Integral a => [a] -> [[a]] all_TnI :: Integral a => [a] -> [[a]] all_RTnI :: Integral a => [a] -> [[a]] all_rR :: Integral a => [a] -> [[a]] all_rRTnI :: Integral a => [a] -> [[a]] all_TnMI :: Integral a => [a] -> [[a]] all_RTnMI :: Integral a => [a] -> [[a]] all_rRTnMI :: Integral a => [a] -> [[a]] -- | Serial Operator, of the form rRTMI. data SRO a SRO :: a -> Bool -> a -> Bool -> Bool -> SRO a -- | Serial operation. sro :: Integral a => SRO a -> [a] -> [a] -- | The total set of serial operations. sros :: Integral a => [a] -> [(SRO a, [a])] sro_Tn :: Integral a => [SRO a] sro_TnI :: Integral a => [SRO a] sro_RTnI :: Integral a => [SRO a] sro_TnMI :: Integral a => [SRO a] sro_RTnMI :: Integral a => [SRO a] -- | Intervals to values, zero is n. dx_d :: Num a => a -> [a] -> [a] -- | Integrate. d_dx :: Num a => [a] -> [a] -- | Morris INT operator. int :: Integral a => [a] -> [a] -- | Interval class. ic :: Integral a => a -> a -- | Elements of p not in q difference :: Eq a => [a] -> [a] -> [a] -- | Pitch classes not in set. complement :: Integral a => [a] -> [a] -- | Is p a subsequence of q. subsequence :: Eq a => [a] -> [a] -> Bool -- | The standard t-matrix of p. tmatrix :: Integral a => [a] -> [[a]] -- | Interval class vector. icv :: Integral a => [a] -> [a] -- | Is p a subset of q. is_subset :: Eq a => [a] -> [a] -> Bool -- | Is p a superset of q. is_superset :: Eq a => [a] -> [a] -> Bool instance Eq a => Eq (SRO a) instance Show a => Show (SRO a) module Music.Theory.Parse -- | Parse a Morris format serial operator descriptor. rnrtnmi :: String -> SRO Int pco :: String -> [Int] module Music.Theory.Prime -- | Prime form rule requiring comparator. cmp_prime :: Integral a => ([a] -> [a] -> Ordering) -> [a] -> [a] -- | Forte prime form. forte_prime :: Integral a => [a] -> [a] -- | Rahn prime form (comparison is rightmost inwards). rahn_prime :: Integral a => [a] -> [a] -- | Binary encoding prime form algorithm, equalivalent to Rahn. encode_prime :: (Integral a, Bits a) => [a] -> [a] module Music.Theory.Table -- | The set-class table (Forte prime forms). sc_table :: Integral a => [(String, [a])] -- | Lookup a set-class name given a set-class. sc_name :: Integral a => [a] -> String -- | Lookup a set-class given a set-class name. sc :: Integral a => String -> [a] -- | List of set classes. scs :: Integral a => [[a]] -- | Set class database. sc_db :: [(String, String)] module Music.Theory.Pct -- | Basic interval pattern. bip :: Integral a => [a] -> [a] -- | Cardinality filter cf :: Integral n => [n] -> [[a]] -> [[a]] cgg :: [[a]] -> [[a]] -- | Combinations generator (cg == poweset) cg :: [a] -> [[a]] -- | Powerset filtered by cardinality. cg_r :: Integral n => n -> [a] -> [[a]] -- | Cyclic interval segment. ciseg :: Integral a => [a] -> [a] -- | pcset complement. cmpl :: Integral a => [a] -> [a] -- | Form cycle. cyc :: [a] -> [a] -- | Diatonic implications. dim :: Integral a => [a] -> [(a, [a])] -- | Diatonic interval set to interval set. dis :: Integral t => [Int] -> [t] -- | Degree of intersection. doi :: Integral a => Int -> [a] -> [a] -> [[a]] -- | Forte name. fn :: Integral a => [a] -> String -- | p has_ess q is true iff p can embed q in sequence. has_ess :: Integral a => [a] -> [a] -> Bool -- | Embedded segment search. ess :: Integral a => [a] -> [a] -> [[a]] -- | Can the set-class q (under prime form algorithm pf) be drawn from the -- pcset p. has_sc_pf :: Integral a => ([a] -> [a]) -> [a] -> [a] -> Bool -- | Can the set-class q be drawn from the pcset p. has_sc :: Integral a => [a] -> [a] -> Bool -- | Interval cycle filter. icf :: Num a => [[a]] -> [[a]] -- | Interval class set to interval sets. ici :: Num t => [Int] -> [[t]] -- | Interval class set to interval sets, concise variant. ici_c :: [Int] -> [[Int]] -- | Interval-class segment. icseg :: Integral a => [a] -> [a] -- | Interval segment (INT). iseg :: Integral a => [a] -> [a] -- | Imbrications. imb :: Integral n => [n] -> [a] -> [[a]] -- | p issb q gives the set-classes that can append to p to give q. issb :: Integral a => [a] -> [a] -> [String] -- | Matrix search. mxs :: Integral a => [a] -> [a] -> [[a]] -- | Normalize. nrm :: Ord a => [a] -> [a] -- | Normalize, retain duplicate elements. nrm_r :: Ord a => [a] -> [a] -- | Pitch-class invariances. pci :: Integral a => [a] -> [a] -> [[a]] -- | Relate sets. rs :: Integral a => [a] -> [a] -> [(SRO a, [a])] -- | Relate segments. rsg :: Integral a => [a] -> [a] -> [(SRO a, [a])] -- | Subsets. sb :: Integral a => [[a]] -> [[a]] -- | Super set-class. spsc :: Integral a => [[a]] -> [String] module Music.Theory.Contour.Polansky_1992 compare_adjacent :: Ord a => [a] -> [Ordering] matrix_f :: (a -> a -> b) -> [a] -> [[b]] contour_matrix :: Ord a => [a] -> [[Ordering]] data Contour_Half_Matrix Contour_Half_Matrix :: Int -> [[Ordering]] -> Contour_Half_Matrix contour_half_matrix_n :: Contour_Half_Matrix -> Int contour_half_matrix_m :: Contour_Half_Matrix -> [[Ordering]] half_matrix_f :: (a -> a -> b) -> [a] -> [[b]] contour_half_matrix :: Ord a => [a] -> Contour_Half_Matrix contour_half_matrix_str :: Contour_Half_Matrix -> String ord_to_int :: Integral a => Ordering -> a int_to_ord :: Integral a => a -> Ordering data Contour_Description Contour_Description :: Int -> Map (Int, Int) Ordering -> Contour_Description contour_description_n :: Contour_Description -> Int contour_description_m :: Contour_Description -> Map (Int, Int) Ordering adjacent_indices :: Integral i => i -> [(i, i)] all_indices :: Integral i => i -> [(i, i)] contour_description :: Ord a => [a] -> Contour_Description contour_description_str :: Contour_Description -> String half_matrix_to_description :: Contour_Half_Matrix -> Contour_Description contour_description_ix :: Contour_Description -> (Int, Int) -> Ordering all_equal :: Eq a => [a] -> Bool -- | true if contour is all descending, equal or ascending uniform :: Contour_Description -> Bool -- | true if contour does not containt any EQ elements no_equalities :: Contour_Description -> Bool -- | all contour descriptions all_contours :: Int -> [Contour_Description] violations :: Contour_Description -> [(Int, Int, Int, Ordering)] is_possible :: Contour_Description -> Bool -- | all possible contour descriptions possible_contours :: Int -> [Contour_Description] -- | all impossible contour descriptions impossible_contours :: Int -> [Contour_Description] contour_description_lm :: Integral a => a -> a implication :: (Ordering, Ordering) -> Maybe Ordering replace :: Integral i => [a] -> i -> a -> [a] draw_contour :: Integral i => Contour_Description -> [i] ord_invert :: Ordering -> Ordering contour_description_invert :: Contour_Description -> Contour_Description ex_1 :: [Rational] ex_2 :: [Integer] ex_3 :: [Integer] ex_4 :: Contour_Description instance Eq Contour_Half_Matrix instance Eq Contour_Description instance Show Contour_Description instance Show Contour_Half_Matrix module Music.Theory.Bjorklund bjorklund :: (Int, Int) -> [Bool] xdot :: [Bool] -> String iseq :: [Bool] -> [Int] iseq_str :: [Bool] -> String