Representation of Patterns
X O X X O X X O X X O X X O X ...(a pattern with period 3)
X O X X X O X O X X X O X O X X X O ...(a pattern with period 6).
X O X X Owould appear as the sequence
X O X X O X O X X O X O X X O X O X X O X O X X
(event ?pos),where ?pos is a number from 1 to 24, and
(run ?start ?end),where ?start and ?end are numbers from 1 to 24. (event ?pos) indicates that there is an event (not a rest) at that position. (run ?start ?end) indicates that there is a run (a sequence of events with no breaks) from the ?start to the ?end positions. For example, the sequence
X X X O O O O O X X X O O O O O X X X O O O O Owould appear as
(run 1 3) (run 9 11) (run 17 19) (event 1) (event 2) (event 3) (event 9) (event 10) (event 11) (event 17) (event 18) (event 19)
The Rules
------------------------------------------
R U L E run-beginning (strength 2)
------------------------------------------
IF (run ?start ?end)
AND
(not (beat ?start ?str))
THEN ADD (beat ?start 1)
------------------------------------------
R U L E run-end (strength 2)
------------------------------------------
IF (run ?start ?end)
AND
(not (beat ?end ?str))
THEN ADD (beat ?end 1)
------------------------------------------
R U L E rest-beat (strength 2)
------------------------------------------
IF (beat ?pos ?str)
AND
(not (event ?pos))
THEN DELETE (beat ?pos ?str)
AND
ADD (beat ?pos (- ?str 1))
------------------------------------------
R U L E consec-beats-a (strength 2)
------------------------------------------
IF (beat ?pos1 ?str1)
AND
(beat ?pos2 ?str2)
AND
(= (- ?pos2 ?pos1) 1)
AND
(>= ?str2 ?str1)
THEN DELETE (beat ?pos1 ?str1)
AND
ADD (beat ?pos1 (- ?str1 1))
------------------------------------------
R U L E consec-beats-b (strength 2)
------------------------------------------
IF (beat ?pos1 ?str1)
AND
(beat ?pos2 ?str2)
AND
(= (- ?pos2 ?pos1) 1)
AND
(>= ?str1 ?str2)
THEN DELETE (beat ?pos2 ?str2)
AND
ADD (beat ?pos2 (- ?str2 1))
------------------------------------------
R U L E equally-spaced (strength 3)
------------------------------------------
IF (beat ?pos1 ?str1)
AND
(beat ?pos2 ?str2)
AND
(beat ?pos3 ?str3)
AND
(= (- ?pos2 ?pos1) (- ?pos3 ?pos2))
AND
(> (- ?pos2 ?pos1) 1)
THEN DELETE (beat ?pos1 ?str1)
AND
ADD (beat ?pos1 (+ ?str1 1))
AND
DELETE (beat ?pos2 ?str2)
AND
ADD (beat ?pos2 (+ ?str2 1))
AND
DELETE (beat ?pos3 ?str3)
AND
ADD (beat ?pos3 (+ ?str3 1))
------------------------------------------
R U L E accent-2s-a (strength 2)
------------------------------------------
IF (beat ?pos1 ?str1)
AND
(beat ?pos2 ?str2)
AND
(= (- ?pos2 ?pos1) 2)
AND
(< ?pos2 (- ?seq-length 2))
AND
(not (beat (+ ?pos2 2) ?str3))
THEN ADD (beat (+ ?pos2 2) 1)
------------------------------------------
R U L E accent-2s-b (strength 2)
------------------------------------------
IF (beat ?pos1 ?str1)
AND
(beat ?pos2 ?str2)
AND
(= (- ?pos2 ?pos1) 2)
AND
(> ?pos1 2)
AND
(not (beat (- ?pos1 2) ?str3))
THEN ADD (beat (- ?pos1 2) 1)
------------------------------------------
R U L E accent-3s-a (strength 2)
------------------------------------------
IF (beat ?pos1 ?str1)
AND
(beat ?pos2 ?str2)
AND
(= (- ?pos2 ?pos1) 3)
AND
(< ?pos2 (- ?seq-length 3))
AND
(not (beat (+ ?pos2 3) ?str3))
THEN ADD (beat (+ ?pos2 3) 1)
------------------------------------------
R U L E accent-3s-b (strength 2)
------------------------------------------
IF (beat ?pos1 ?str1)
AND
(beat ?pos2 ?str2)
AND
(= (- ?pos2 ?pos1) 3)
AND
(> ?pos1 3)
AND
(not (beat (- ?pos1 3) ?str3))
THEN ADD (beat (- ?pos1 3) 1)
------------------------------------------
R U L E beat-0 (strength 5)
------------------------------------------
IF (beat ?pos ?str)
AND
(< ?str 1)
THEN DELETE (beat ?pos ?str)
Running the Program
scheme ~gasser/E105/ps.ssThis will run 'scheme', which is the programming language in which the program is written and load the program that is in the file "~gasser/E105/ps.ss".
WHAT NEXT? (Type the number of your choice followed byYou select an option by typing its number and then hitting CARRIAGE RETURN. The options mean.) [0] Start over with a new pattern. [1] Run the production system. [2] Print rules. [3] Print working memory. [4] Interpret working memory. [5] Quit. Pick an option:
C Y C L E 34 RULE SELECTED: Rule equally-spaced Bindings: ((?str3 3) (?pos3 23) (?str2 2) (?pos2 13) (?str1 1) (?pos1 3)) DELETING FROM WM: (beat 3 1) ADDING TO WM: (beat 3 2) DELETING FROM WM: (beat 13 2) ADDING TO WM: (beat 13 3) DELETING FROM WM: (beat 23 3) ADDING TO WM: (beat 23 4)
I N T E R P R E T E D W O R K I N G M E M O R Y 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Pattern sequence: 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 Beat strengths: 1 0 1 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1 1 0 1 0 2 0The first row of numbers just shows the positions in the sequence for convenience. The second row shows where there are events and rests. This does not change as the production system is run. The third row shows the strengths associated with beats in the different positions. This row changes as the production system is run and creates or deletes "beat" clauses.
sendwhere you replace
Take me back to the Rhythm and Cognition Home Page.
Last updated: 26 November 1995
URL: http://www.indiana.edu/~gasser/activity6_help.html
Comments: gasser@salsa.indiana.edu
Copyright 1995, The Trustees of
Indiana University