hmt-0.16: Haskell Music Theory

Safe Haskell None Haskell98

Music.Theory.Duration.RQ.Division

Description

RQ sub-divisions.

Synopsis

# Documentation

type RQ_Div = (Rational, Integer, [Integer], Tied_Right) Source #

Divisions of n RQ into i equal parts grouped as j. A quarter and eighth note triplet is written (1,1,[2,1],False).

type RQ1_Div = (Integer, [Integer], Tied_Right) Source #

Variant of RQ_Div where n is 1.

Lift RQ1_Div to RQ_Div.

Verify that grouping j sums to the divisor i.

Translate from RQ_Div to a sequence of RQ values.

rq_div_to_rq_set_t (1,5,[1,3,1],True) == ([1/5,3/5,1/5],True)
rq_div_to_rq_set_t (1/2,6,[3,1,2],False) == ([1/4,1/12,1/6],False)

rq_set_t_to_rqt :: ([RQ], Tied_Right) -> [RQ_T] Source #

Translate from result of rq_div_to_rq_set_t to seqeunce of RQ_T.

rq_set_t_to_rqt ([1/5,3/5,1/5],True) == [(1/5,_f),(3/5,_f),(1/5,_t)]

rq_div_seq_rq :: [RQ_Div] -> [RQ] Source #

Transform sequence of RQ_Div into sequence of RQ, discarding any final tie.

let q = [(1,5,[1,3,1],True),(1/2,6,[3,1,2],True)]
in rq_div_seq_rq q == [1/5,3/5,9/20,1/12,1/6]

partitions_sum :: Integral i => i -> [[i]] Source #

Partitions of an Integral that sum to n. This includes the two 'trivial paritions, into a set n 1, and a set of 1 n.

partitions_sum 4 == [[1,1,1,1],[2,1,1],[2,2],[3,1],]
map (length . partitions_sum) [9..15] == [30,42,56,77,101,135,176]

partitions_sum_p :: Integral i => i -> [[i]] Source #

The multiset_permutations of partitions_sum.

map (length . partitions_sum_p) [9..12] == [256,512,1024,2048]

The set of all RQ1_Div that sum to n, a variant on partitions_sum_p.

map (length . rq1_div_univ) [3..5] == [8,16,32]
map (length . rq1_div_univ) [9..12] == [512,1024,2048,4096]