markov-analyze sequence &key :order :format :stream :table-column-width :table-indent :sort :slot :key | [Function] |
Performs an analysis of the data in sequence and either prints or returns the results according to :format and :stream.
markov-analyze supports the following keywork arguments.
Example:
? (setf happy-birthday (notes c4 c d c f e c c d c g f c c c5 a4 f e d bf bf a f g f)) #<CYCLIC-NOTE-STREAM #xD41111> ? (markov-analyze (read-items happy-birthday) :order 2) D4 C4 F4 E4 G4 C5 A4 BF4 (D4 C4) ----- ----- 0.500 ----- 0.500 ----- ----- ----- (D4 BF4) ----- ----- ----- ----- ----- ----- ----- 1.000 (C4 D4) ----- 1.000 ----- ----- ----- ----- ----- ----- (C4 C4) 0.667 ----- ----- ----- ----- 0.333 ----- ----- (C4 F4) ----- ----- ----- 1.000 ----- ----- ----- ----- (C4 G4) ----- ----- 1.000 ----- ----- ----- ----- ----- (C4 C5) ----- ----- ----- ----- ----- ----- 1.000 ----- (F4 C4) ----- 1.000 ----- ----- ----- ----- ----- ----- (F4 E4) 0.500 0.500 ----- ----- ----- ----- ----- ----- (F4 G4) ----- ----- 1.000 ----- ----- ----- ----- ----- (E4 D4) ----- ----- ----- ----- ----- ----- ----- 1.000 (E4 C4) ----- 1.000 ----- ----- ----- ----- ----- ----- (G4 F4) ----- 1.000 ----- ----- ----- ----- ----- ----- (C5 A4) ----- ----- 1.000 ----- ----- ----- ----- ----- (A4 F4) ----- ----- ----- 0.500 0.500 ----- ----- ----- (BF4 A4) ----- ----- 1.000 ----- ----- ----- ----- ----- (BF4 BF4) ----- ----- ----- ----- ----- ----- 1.000 ----- (MARKOV (D4 C4 -> (F4 0.5) (G4 0.5)) (D4 BF4 -> (BF4 1.0)) (C4 D4 -> (C4 1.0)) (C4 C4 -> (D4 0.6666666666666666) (C5 0.3333333333333333)) (C4 F4 -> (E4 1.0)) (C4 G4 -> (F4 1.0)) (C4 C5 -> (A4 1.0)) (F4 C4 -> (C4 1.0)) (F4 E4 -> (C4 0.5) (D4 0.5)) (F4 G4 -> (F4 1.0)) (E4 D4 -> (BF4 1.0)) (E4 C4 -> (C4 1.0)) (G4 F4 -> (C4 1.0)) (C5 A4 -> (F4 1.0)) (A4 F4 -> (E4 0.5) (G4 0.5)) (BF4 A4 -> (F4 1.0)) (BF4 BF4 -> (A4 1.0)))
See Also:
graph, markov