John: You can take the equilateral triangle to be the path to which you would like to converge. To design a path that will converge to this, you would examine the destination to identify some of its essential characteristics. First, all the angles of the equilateral triangle must be 60 degrees. Second, each corner of the equilateral triangle must lie on the boundary of the outer triangle.

Guest: I think I know where you are headed. You would begin at some point on one of the sides of the given triangle. Then you would head off in some direction into the triangle. When you arrive at an edge of the triangle, you turn 120 (a-hundred-twenty) degrees to the left. Then you head into the triangle again. And you continue this process.

John: Exactly.

Guest: Is this related to any of the numerical methods that I studied in numerical analysis?

John: Yes. If you try to apply this approach to find a particular geometric construction for the square root of a given number, you will end up with a sequence of approximations that are identical to those which are generated by Newton's method.

Guest: Is all of this explained in your dissertation?

John: Much of it is. However, the part about Newton's method is not. That is something that I did in the first two weeks after I had completed all the requirements for my degree. I never published it.

Guest: Perhaps you should do that.

John: At some point I might.

Guest: Are there any other connections between your work as a composer and the work you did as a graduate student?

John: Yes. When I was at MIT they required you to prepare a presentation on some topic about which you knew little. I can't remember what it was called. The purpose was to demonstrate that you could quickly learn the essence of a topic that was related to your area of study. Maybe it was called the area exam. Anyway...for my topic, I chose chaos. As I recall, my thesis advisor George Verghese suggested that topic. At some point thereafter, I noticed an article posted in a display case on the wall of a hall in the mathematics department. It was discussing the topic of billiard ball systems and their relationship to chaos.

Guest: Is this what led to your piece called Billiards?

John: Yes. But there are some things that happened between these two events. During some down time at one of my consulting jobs, I wanted to learn more about writing programs for the Windows operating system. I decided to write a program that was related to billiard balls. I wanted to see if the path of a billiard ball would be convergent in the case when the pool table is circular and there are circular obstacles.

Guest: How did that turn out?

John: I found that there were cases when the path would remain within a band that was in the neighborhood of a fixed path.

Guest: What do mean by fixed path?

John: I mean a periodic path; one that retraces itself eventually. I say fixed path because it is analogous to a fixed point of an iterative process. The fixed path was like an attractor.

Guest: Did you use that program as the basis for your Billiards piece?

John: Yes, I used some of the formulas, and the idea of a circular table with circular obstacles. But the mathematical system that I devised for Billiards is much more complex. But before I did that, I used the Windows program to create art.

Guest: You mean visual art?

John: Yes. I wrote the program to be interactive. For example, I can modify the circular obstacles while the billiard ball is bouncing. Or, I can stop the billiard ball and restart it from a new location and direction. Also, the program can automatically start the billiard ball in a radial direction from various points on the circle. All this programming was done because I wanted to explore the mathematical properties of this billiard ball system. I was looking for fixed paths.

Guest: And from this came visual art?

John: Yes. The program draws lines on the screen to indicate the path that the billiard ball has traversed. I was fascinated by the resulting images. I found them to be very interesting. So I added a feature to dump the screen image to my laser printer.

Guest: Have you published these drawings?

John: No. But I was thinking about doing that. First I would want to convert the files from their current format, which might be [knock knock] PCL, to something more accessible like GIF (jiff). [knock knock knock]. Who is it?

Voice at Door: I am a composer. I wanted to discuss the music notation that you have used in your composition Platonic Dice: Dodecahedron.

John: Sure. Come on in.

Voice at Door: Hello. I was...

John: Before we begin, I would like to assign a name to you. How about Art Noitid (no"-i-tid')?

Voice at Door: OK.

Art Noitid: Up front, I would like to let you know that what I am going to tell you today is based on many years of experience. As you probably know, I have composed music for many of the finest orchestras in the world, and I have received many prizes for my work. I can see you are a very creative person. I have taken time out of my busy schedule in order to visit you, because I would like to help you. I am hoping that what I say might cause you to use your abilities in more useful ways than for creating new music notation, which I view to be ridiculous and unnecessary.

John: OK. Is there anything in particular that you would like to discuss?

Art Noitid: Yes, I would like to talk about these symbols that you are using for dynamics. Son, we have been using symbols like f (f), mf (m f), mp (m p) and p (p) for hundreds of years to represent dynamic levels. There is no need for the set of dynamic symbols that you have designed.

John: I think there are...

Art Noitid: Forget the dynamic symbols. What about this insane pitch-naming convention that you are using. No one can read this. We already have a name for concert A. It is A. There is no need to come up with a new set of names for the twelve pitch classes that we use. It's silly!

John: I believe they might...

Art Noitid: There is nothing that you have written using these timetables that cannot be written using common music notation. What you have done is pointless.

John: For some types of...

Art Noitid: Look, this music that you have written is polytempo music and for that reason alone it is difficult to perform. Further, you have written some things that are unplayable. For example, this notion of notes being late or early. That is so unnatural that you will never find anyone who can play that correctly. And I find your notions of loud notes and soft notes to be unnatural too. In any analysis of poetry or in any dictionary have you ever seen anyone indicate stresses in this way? Of course not. What you find is unstressed, stressed and very stressed. Our traditional music notation is similar.

John: Maybe...

Art Noitid: The bottom line is this. No conductor or musician is going to take time to learn these symbols and system of notation. It is hard enough to get music performed as it is. If you want to have any chance of succeeding in this business I would suggest that you stop pursuing this useless activity and stick with common music notation.

John: ...

Art Noitid: Look kiddo, I have to run. The New York Philharmonic is rehearsing my latest piano concerto this afternoon and I'm already running late.

John: Thanks for stopping by. Bye.

Guest: John, I'm glad he brought that up. I have had some questions about this notation too. For example, why did you...

Interruptus: In Dodecahedron, some phrases are played by only one instrument, while others have several instruments. Why is that the case?

John: Oh...each phrase has its own texture. In this piece, there are four different textures. For one of these textures, the entire phrase is played on one instrument. For the other three textures, more than one instrument is used.

Guest: How have you assigned these textures to the phrases?

John: As I said, for this work I have constructed a random sequence of 697 (six-hundred-ninety-seven) stream types. I terminated the sequence when there was at least one stream type of each possible length. Some stream types occur more than once in this sequence. Suppose the number of occurrences of a particular stream type is n. I have enumerated these n occurrences from 1 through n, sequentially. That is, the occurrence number of the first occurrence is 1. The occurrence number of the second occurrence is 2. And so on.

Guest: So, for each of the 697 streams there is an occurrence number?

John: That's right.

Guest: How do you get from occurrence numbers to textures?

John: I map the occurrence numbers to one of the four textures. The last occurrence for a particular stream type is always texture number 4. Otherwise, if the occurrence number is prime, the texture number is 2. Otherwise, if the occurrence number is even, the texture number is 1. Otherwise, the texture number is 3.

Guest: Let me see if I got this right. Suppose a particular stream type occurs 16 times in the sequence of 697 streams. Is that too large a number? I mean...you said there were 7800 different types of streams for a dodecahedron, so maybe it would be unlikely for any one of these to occur 16 times in a randomly generated sequence of 697 stream types.

John: No. Shorter streams occur much more frequently. Remember, for a dodecahedron, streams vary in length from 6 to 21. The two possible stream types of length 6 occurred 21 times. It took 697 streams before a single stream of length 21 had occurred.

Guest: Oh yeah...that makes sense. It must be possible to come up with a formula for these probabilities. Have you tried to find a closed-form expression for the probability that a given stream type will occur?

John: Yes. A stream type can be thought of as a sequence of turns with each turn being either left or right. If you assume that each decision is made based on the results of flipping a fair coin...

Guest: Then it is just one-half to the power of the number of turns?

John: You're on the right track. You have to remember that at some corners our decision will be forced by the fact that we cannot traverse an edge more than once. If we arrive at a vertex for which there is only one incident edge that has not been traversed, there is no need to flip the coin. We must proceed along that edge.

Guest: So it would be one-half to the power D where D is the number of turns minus the number of forced edges?

John: That's right. Or, if you want to express this in terms of edges rather than turns, you could say that D is the number of edges minus 1, minus the number of forced edges.

Guest: What was that?...I was just trying to figure out in my head whether it makes sense that these stream types of length 6 occurred 21 times. Yeah...I guess it does. For one of them you have the turns right, left, left, left and left.

John: Yes, and for the one that is symmetric to this, you have left, right, right, right and right.

Guest: None of these turns are forced.

John: Correct.

Guest: So it's just one-half to the power 5. So the probability of generating one of these stream types is 1/32 (one over thirty-two). You generated 697 stream types, so you would have expected to get about 21 or 22 occurrences. That makes sense...so let's go back to that mapping. I wanted to see if I understand your mapping of occurrence numbers to textures. Let's suppose a particular stream type occurs 21 times in the sequence of 697 streams.

John: OK.

Guest: So then the occurrence numbers would be 1 through 21. Number 21 would be texture 4 because it is the last one. For numbers 2...wait a minute, are you taking 2 to be a prime?

John: For my purposes, I have taken the primes to be 1, 2, 3, 5, 7, et cetera.

Guest: So for occurrence numbers 1, 2, 3, 5, 7, 11, 13, 17 and 19, the texture number would be 1. Then...

John: Now you have to pull out the even ones.

Guest: Right...so the even occurrence numbers from 4 through and including 20 would be texture 2. And that leaves occurrence numbers 9 and 15 for which the texture number would be 3.

John: That's right.

Guest: You said that for one of the textures, only one instrument is used to play the phrase. Which texture would that be?

John: Texture number 1.

Guest: What are the other...

John: It just occurred to me that when we were outside talking about the different living things, I forgot to mention spiders.

Guest: You said something about wasps that collect spiders.

John: Yeah...I guess I did......but I should have mentioned how interesting they are in their own right.

Guest: Have you ever watched what they do?

John: Yes. They are fascinating. I think I'm starting to lose my voice. I am gonna have to go get some water. Would you like a glass?

Guest: Sure.

Interruptus: Yeah, I'll take one too.

Guest: ...

Interruptus: ...

Guest: ...

Interruptus: I was thinking of asking him some questions about politics. You think that would be a good idea?

Guest: I don't see why not. He said anything was fair game.

Interruptus: I'll give it a try when he comes back.

John: Ahh...that's better.

Interruptus: Are you a Democrat or Republican?

John: Me...I'm neither.

Interruptus: Well...which do you prefer?

John: If I had the choice, I would fill all positions with Republicans. Then I would keep just enough Democrats around to make sure the Republicans didn't do anything stupid.

Guest: Like Watergate?

John: Yeah, a cover-up is always a stupid thing. I guess it's human nature. Fear makes people take the wrong path at every turn.

Guest: What do you like about the Republicans?

John: Maybe it is more about what I don't like about Democrats.

Guest: What's that?

John: The handout philosophy. I don't think any two people are equal, or any two living things for that matter. For example, I don't think men and women are equal. I don't think blacks and whites are equal. But I do think that people should be treated equally. Handouts go against that. And, in the end you weaken the people that you are trying to help. I find it hard to believe that Democrats do not see that this is the case. So I wonder whether or not they support giving handouts for the reason that it keeps people weak. It causes there to be a need for handouts and Democrats.

Guest: But isn't it inhumane to not help someone who is having severe problems?

John: I think people should be helped...by people. I don't think handouts should be institutionalized at the government level. Then handouts become automatic. A handout should be granted only when it is absolutely necessary.

Guest: But don't you think that women, blacks and other groups have been treated unfairly for so long that it is right to do something to...

John: You mean like reverse discrimination?

Guest: No I didn't mean that.

John: Look. When you institutionalize something like the concept of equal opportunity, here is what happens. Institutions that support Democratic beliefs will use this as justification for giving a handout. This is the current state of academia. If a particular department does not have a sufficient number of members from "protected" groups, the search committee and Chair will be forced by other powers from within the school to correct this problem. Too often, they hire individuals based on factors that have nothing to do with their ability to do the job. This type of policy helps no one.

Guest: Yeah, I think I've seen cases of that.

Interruptus: Are there any other reasons why you like the Republicans?

John: Yes. They don't take any crap. When there is a crisis...when this country is threatened...more importantly, when freedom is threatened, I would much rather have a Republican at the helm.

Guest: You mean like nine-eleven.

John: Exactly. By the way, I don't care for that nine-eleven stuff. I can understand why people would be so horrified by this event that they can only deal with it as some abstract number. But, I think we have to move forward to a point where we call it what it is. It should be called World Trade Center Day. After all, we don't call Pearl Harbor Day, twelve-seven.

Interruptus: While we're on the subject of twelves and sevens, I would like to talk about the pitches that you have used for Dodecahedron. Earlier you said that you assigned one of the twelve pitch classes to each of the faces of the die. How are the pitches for a particular phrase related to these face pitches?

John: Every edge of a stream is incident on two faces. As one travels along a stream edge, there will be one face that is on the left side of the edge, and another that is on the right. For any two consecutive stream edges there will be one and only one face upon which both of the edges are incident. For three consecutive edges, there are two possibilities. Either all three edges are incident on the same face, or the first two edges are incident on one face while the second and third edge are incident on a second. In the latter case, the two faces will be adjoining and the second edge will be incident on both faces. I refer to this type of edge that is common to both faces as a pivot edge of the stream. It is an edge at which the stream switches from one face to another face.

Guest: So does each edge of the stream produce a note?

John: Yes, but each pivot edge will produce two notes, one for each face upon which it is incident.

Guest: How are the pitches of these notes related to the pitch classes that have been assigned to faces?

John: The twelve faces of the dodecahedron are numbered from 1 through 12, as they would be on a die. These face numbers are used to displace the pitch classes that are assigned to faces.

Guest: How so?

John: For the moment let's suppose a given edge is not a pivot edge. One of the two faces upon which the edge is incident will be the face around which the stream is currently traveling. I refer to this face as the current face. I refer to the other face as the neighbor face. There are two entities that are involved in determining the pitch class of the note that will be produced by the stream edge. They are as follows: the pitch class that has been assigned to the current face and the number of the neighbor face. Let N be the number of the neighbor face. If the stream is traveling counterclockwise around the current face, or equivalently if the neighbor face is on the right side of the edge, the pitch class of the stream edge will be N chromatic steps above that of the current face. Otherwise, the stream will be traveling clockwise around the current face, or equivalently the neighbor face will be on the left side of the edge, and the pitch class of the stream edge will be N chromatic steps below that of the current face.

Guest: Could you explain what you mean by current face and neighbor face? I'm not sure I understand that.

John: For any given edge that is not a pivot edge, there will be two faces upon which the edge is incident. One of these faces will be the current face. The other will be the neighbor face. One will be on the right side. The other will be on the left.

Guest: Yeah...but which one will be the current face? The face on the left or the face on the right?

John: Again, suppose a given edge is not a pivot edge. There are three possibilities: the edge is the first edge of the stream, the edge is the last edge of the stream, or the edge is an intermediate edge of the stream. Suppose the edge is at the beginning of the stream.

Guest: Wait...you've been saying edge all along here. You actually mean directed edge, don't you? With a stream, you are moving along edges in a particular direction.

John: That's correct. All the edges of a stream are directed edges of a dodecahedron.

Guest: OK. You were saying...

John: Suppose the edge is the first edge of the stream. If the first turn after this edge is to the right, then the current face will be the face on the right. The stream will be traveling around the face on the right.

Guest: So in this case, the neighbor face will be on the left.

John: Correct. And if the first turn is to the left...

Guest: The current face will be on the left and the neighbor face will be on the right.

John: Right. I mean correct. Now suppose the edge is the last edge of the stream. If the last turn that was made before this edge were to the right, the current face will be on the right.

Guest: You mean if the turn that we made in order to travel down this edge were a right turn, then the current face will be on the right.

John: Correct.

Guest: And if we have made a left turn to travel down this edge, the current edge will be on the left.

John: Correct.

Guest: What about the intermediate edges?

John: With an intermediate edge, you can look at it in one of two ways. You can look at the turn made to enter the edge or the turn made to leave the edge. Both of these turns will be in the same direction.

Guest: Wait. Why is that the case?

John: Remember, we assumed that this is not a pivot edge. If the turns were not in the same direction, this would have to be a pivot edge.

Guest: Oh...right. I think I'm getting this. If the turn made to enter or leave an intermediate edge is to the right, then the current face will be on the right and the neighbor face will be on the left. If the turns are to the left, the current face will be on the left and the neighbor face will be on the right.

John: Yes.

Guest: So...back to pitches. You said that the pitch class for a stream edge is determined by altering the pitch class of the current face by N chromatic steps, where N equals the number on the neighbor face. Is that correct?

John: Yes. And, the pitch class of the current face will be altered upwards if the neighbor face is on the right. If it is on the left, the pitch class of the current face will be altered downwards.

Guest: So for example, if the pitch class of the current face is F# (f-sharp) and...

John: I would prefer to use pitch names from the OZ (ahz) pitch-naming convention. I am trying to get away from using the old names.

Guest: Sure...but what is the name of F# in the OZ pitch-naming convention?

John: I have written twelve circular poems that might help you with that. The interval from C to F# is a tritone or six, so you would want to use the poem Line Segments of Sixes. This is the one that begins with "OUch Uh-Oh......PolyVinyl ViPer". The O and U that are used in the first cycle of this poem indicate that the interval from O to U is a six. Since O is used in place of C, U would be the name for F#.

Guest: I get it. So for a given stream edge, that is not a pivot edge, let's say the pitch class of the current face is U and the number of the neighbor face is 7. And let's suppose the neighbor face is on the left. In this case, the pitch class for the stream edge will be 7 chromatic steps below U. Let's see...that would be...

John: Well...six steps down would be O because the interval between O and U is a six. Seven steps down would be Z.

Guest: Or I could use one of the poems, right?

John: Yes, actually you could use one of two poems. One way would be to use Dodecagon of Sevens. That begins with "OVer VanQuish QuiXotic eXceSs SiZe ZaiUs"...ZaiUs is the one you want. It indicates that the interval from Z to U is a seven. Or if you work with the complementary interval five, you could use the poem Dodecagon of Fives. That begins with "One-Track TYing Year-Round RailWay WordPlay PUsh UnZip"...UnZip is what you want. It indicates that the interval from U to Z is a five.

Guest: And for this example, if the neighbor face were on the right, then the pitch class of the current face would be raised by 7 chromatic steps. And since "UP" (up) is in the poem Dodecagon of Sevens, that means the pitch class of the given stream edge would be P. Is that right?

John: Correct.

Guest: Good. Now I get it.

John: Yes, but we still need to discuss the case when the given stream edge is a pivot edge.

Guest: Right...you said that a pivot edge produces two notes. What are the pitches for these notes?

John: Well...a pivot edge may be thought of in one of two ways, depending on whether you focus on the turn that was made in order to traverse the edge, or the turn that is made to leave the edge. For a pivot edge, these turns will be in different directions. You enter a pivot edge with a right turn and exit it with a left turn, or vice versa. Like the other edges, perhaps we should call them, simple edges...the pitches for the notes of a pivot edge depend on the pitch class of the current face and the number of the neighbor face.

Guest: But what is the current face and neighbor face for a pivot edge? They seem to flip in "mid-stream".

John: Exactly, they flip. First the current face is on one side of the pivot. Then the current face flips to the other side. Conceptually, you could think of the pivot edge as being traversed twice. Once with the current face on one side, and once with the current face on the other side.

Guest: So each of these traversals produces one note?

John: That's right. And to determine the pitches for these notes, you may think of the first traversal as being the last edge of a stream, and the second traversal as being the first edge of a stream.

Guest: OK. I think I understand. Let's do another example. Suppose there is a pivot edge for which the pitch class of the right face is P and that of the left face is W. And suppose the number of the left face is 5 and that of the right face is 8.

John: That's not really possible, at least not for the die that I used in Dodecahedron.

Guest: What do you mean?

John: Remember the sum of numbers of opposite sides of the die is 13. If the left face of the pivot edge is 5, the right edge cannot be 8. The 8 face cannot be adjacent to the 5 face.

Guest: But it would be possible to number the faces in this way, wouldn't it?

John: Of course...

Interruptus: How many distinct ways are there to number the faces of a die?

John: I'm not sure. I haven't given that one too much thought.

Guest: How did you go about selecting a particular way to number the faces of a dodecahedron?

John: I purchased a set of polyhedral dice from a game store on East 33rd Street in Manhattan.

Guest: I think I know that store. Is it on the north side of 33rd Street not too far from 5th Avenue?

John: Yes that's it. I'm not sure if it is still there. They sell these dice because people use them for games like Dungeons and Dragons.

Guest: So you just used the numbering that was on the die that you bought?

John: Exactly. But there is a little twist to the story. Actually, I bought two sets of these dice: a large set and a small set. When I was composing Dodecahedron, I was splitting my time between two different locations. I kept one set of dice in each location. I would do some work in one location, like assign instruments to certain numbered faces. Then I would get to the other location and with the die in hand, I would review my work on assigning instruments. I couldn't figure how I had made some major errors in labeling the faces on a planar diagram of the dodecahedron.

Guest: You mean like the diagram that is given in the Position of the Instruments section of the score?

John: Yes. I was confused until I realized that the numbering scheme used for the small dodecahedron was different from that of the large one. For the piece, I chose to use the numbering of the large one.

Guest: What numbering scheme was used for the little die?

John: Let's take a look. I have it here. If you look at face number 1, you can see faces 2, 3, 4, 5 and 6, in clockwise order. If you turn the die over, you can see 7 in the center along with 8, 9, 10, 11 and 12, in clockwise order. These two halves are assembled so that the faces 2, 3 and 12 share a common vertex. Notice how adjacent faces add up to 14 where the two halves meet.

Guest: What about the large die?

John: Let's see. I have that one here too. That one has an even half and an odd half. On the odd side, 1 is in the center. Around that there are 3, 11, 7, 5 and 9 in clockwise order. On the even half, 12 is in the center surrounded by 2, 10, 4, 8 and 6 in clockwise order. These two halves are assembled so that faces that are on opposite sides of the die add up to 13.

Guest: What made you choose the numbering scheme of the big die over that of the little die?

John: First, I considered each in terms of its relationship to the way that we number the faces of a 6-sided die, traditionally. With a typical 6-sided die, there is an odd corner from which you can see 1, 2 and 3. And there is an even corner where you can see 4, 5 and 6. Also, opposite faces add up to 7. Each of the two schemes for numbering the dodecahedral die that we have discussed may be seen to be an extension of the hexahedral numbering scheme. So from that standpoint, the schemes are somewhat indistinguishable. In the end, I chose the large die because I thought it would yield results that were more interesting.

Guest: What was your basis for believing that?

John: Well...I wanted pairs of instruments of the same type to be on opposite sides of the die. So they could be distinguished by the ear. Also, this would cause the instruments to be mixed up spatially. This structure was more consistent with the structure of the large die. Also, I felt there was some chance that this numbering scheme would produce melodies for which the sequence of intervals was more interesting. I know there is much more to it than that. But...I can't tell you the full story, because I don't know it myself. All I can say for sure is that I make such decisions by considering a complex of interrelated factors. Some of these things are probably considered subconsciously. Anything that I say about how I decided this would be an oversimplification. Intuition plays a big...

Interruptus: These dice that you used...is there someplace where I could buy a set?

John: I'm not sure...they came in a tube...oh there is something written on it. It says Koplow Games, Jumbo Tube, The Nice Dice Company, P.O. Box 965 (nine-six-five), Hull Massachusetts, 02045 (oh-two-oh-four-five).

Guest: Can we go back to that example that I was cooking up for pivot edges?

John: Sure.

Guest: So...suppose there is a pivot edge for which the pitch class of the left face is W and that of the right face is O. And suppose the number of the left face is 5 and that of the right face is 9. OK, for the first note...

John: Wait, you should specify the direction of the turn that was made to enter the pivot edge. That would determine which of the two faces will be the current face first.

Guest: OK, suppose a right turn was made to enter the pivot edge. Then for the first note, the current face would be the right face, for which the pitch class is O. The number of the neighbor face would be 5. The neighbor face is on the left side...so the pitch class of the first note would be 5 chromatic steps below O. That would be V.

John: Correct.

Guest: Then for the second note, the current face is on the left. Its pitch class is W. The number of the neighbor face is 9. So the pitch class of the second note is 9 chromatic steps above W. That's the same as three chromatic steps below W, which is T.

John: Yes, so for this pivot edge there would be a V note followed by a T note.

Guest: What would be the dur...

Interruptus: Could you tell me more about your parents?

John: Sure. Is there anything in particular that you would like to know?

Interruptus: Yes, I was wondering if there is anything that you feel your parents taught you that has helped you in your work as a composer.

John: Oh...OK. My Dad was the most honest person I have ever met. He was sincere. He would get angry sometimes, especially when he was younger, but as he grew older he became very calm. He was content. He worked methodically and patiently. He gave great attention to detail in his work. He had artistic talents. He could draw well. When he was young he played the harmonica, by ear. He was a craftsman with wood or metal. He was resourceful. He could make something useful from stuff that had been tossed aside that others might just throw away. He loved to fly airplanes. He said little, but when he spoke, what he said was of great value. He liked word games and puzzles. He was very intelligent. But perhaps most importantly for me, he was very supportive.

Guest: It sounds like he was a great man.

John: I cannot imagine a boy having a better father.

Guest: What about your Mom?

John: Relative to my Dad, I would say that my Mom is complex. Like my Dad, she is intelligent. But, in different ways. One of her strongest subjects is mathematics. She is a gambler. I mean literally. She likes to bet money on horse races, dog races and the lottery. She believes in destiny. She loves all types of living things, but mostly her immediate family and animals. She thinks animals are very intelligent and important. She likes to discuss philosophical topics. She complains a lot about people or the way things are. She butts into conversations. She makes judgments. She has very few close friends, by design. She misses my Dad.

Guest: She sounds interesting.

John: Yes.

Guest: What parts of their personalities do you feel you inherited or learned that have helped you in your work?

John: Like my Dad, I am honest and sincere, I work methodically and patiently, and I have great attention to detail. Like my Mom, I take risks, I believe in destiny, and I like having philosophical discussions. Perhaps I have inherited by Dad's natural artistic abilities and my Mom's strength in mathematics.

Guest: That's interesting. You would think that a methodical type would be stronger at mathematics, and a risk taker would be stronger at art.

John: I am not sure that is the case. Both types of endeavors call for a balance of taking risks and working through the details. Regardless of the subject area in which one is creating, be it the development of new mathematical results, computer programs or musical compositions, one wears two hats. To some extent it borders on schizophrenia. Internally, on one hand there is the careful individual who works step by step, following every rule along the way. This individual will go to any length to ensure that they have made no errors. On the other hand there is the careless risk-taker who appears randomly, demands immediate attention, and suggests the possibility of a totally different plan of attack.

Guest: In your mind, is there any difference between mathematics and music?

John: Well...

Interruptus: You said that there are four different textures in Dodecahedron, numbered 1 through 4. And you said that for texture number 1, all the notes of the phrase are played on one instrument. How are the notes of the stream edges used to form this texture?

John: They are played one at a time from beginning to end. That is, the note for the first stream edge is played first. Then, at the time at which that note ends, the note for the second stream edge is started.

Guest: What about the notes for pivot edges?

John: When a pivot edge is encountered, the note that I have referred to as the first note of the pivot edge is played first. Then, at the time at which that note ends, the second note of the pivot edge is started.

Guest: Which instrument plays these notes?

John: As I said earlier, I have assigned one instrument to each face of the die. These assignments remain unchanged throughout the piece. For texture number 1, the current...

Interruptus: Which instrument is assigned to each of the faces?

John: I have positioned the instruments around the die as two woodwind quintets, each of which surrounds a bass clarinet. As I said before, the same type of instrument is assigned to opposite faces. The first woodwind quintet is located on the odd side of the die. The second is located on the even side.

Guest: What do you mean by odd side and even side?

John: Oh...the even side consists of the 6 faces on which there is an even number. The odd side consists of the 6 odd-numbered faces.

Guest: Oh...right...so that would mean the bass clarinets are on faces 1 and 12. Right?

John: That's right. Bass clarinet 1 is on face 1 and bass clarinet 2 is on face 12.

Guest: You said that for the face-numbering scheme that you used, when you are looking down on face 1, you see faces 3, 11, 7, 5 and 9 in clockwise order around face 1. Which instruments are assigned to these five faces?

John: The instruments of the first woodwind quintet are on these faces. On faces 3, 11, 7, 5 and 9 there is horn 1, oboe 1, bassoon 1, clarinet 1 and flute 1, respectively.

Guest: What about the even side?

John: For the faces 2, 10, 4, 8 and 6 that encircle face 12, there is oboe 2, horn 2, flute 2, clarinet 2 and bassoon 2, respectively.

Interruptus: So which of these instruments plays the notes for texture number 1?

John: That would be the instrument that is assigned to the current face of the first edge of the stream.

Guest: That would be the first face around which the stream travels, right?

John: Yes, that's right. And I usually refer to this texture as melodic-first-face.

Guest: What about the other three textures? How are the notes distributed across instruments for those?

John: As I said earlier, for the other three textures, more than one instrument is used. Let's look at texture number 3 first. That one is relatively easy to describe. For texture 3, the neighbor faces are used. Remember, for each note there is a neighbor face. For texture 3, each note is played by the instrument that is assigned to the neighbor face for that note.

Guest: So a different instrument will be used for each note?

John: Not quite. It's possible that two notes of a stream might have the same neighbor face. But, you can say that two consecutive notes will never be played by the same instrument.

Interruptus: I suspect you could prove a statement that is even stronger than that. Something along the lines of this: For any two given notes that are played on the same instrument, there must be at least n intervening notes that are played on other instruments.

John: Yes, I think you might be right.

Guest: So texture 3 is like klangfarbenmelodie.

John: Exactly. In my source code and notes I refer to this texture as melodic-neighbor-face.

Guest: What about textures 2 and 4?

John: Texture 2 is another melodic texture. Let's take that one first. For this texture, the current face is used. Again, for each note there is a current face. For texture 2, each note is played by the instrument that has been assigned to the current face for that note. I refer to this texture as melodic-each-face.

Guest: And for pivot edges, the two notes will be played by different instruments?

John: That's right. It is at the pivot edges that the instrumentation changes.

Guest: So...as a stream proceeds around the die, it travels around all or part of one face. Then, at a pivot edge it shifts to another face. And so on. For this texture, the sequence of instruments are the instruments that are associated with these faces around which the stream travels. Right?

John: Yes, and unlike the melodic-neighbor-face texture, here each instrument will play at least two consecutive notes.

Guest: A given instrument might play as many as five notes in a row. Is that right?

John: Yes that would happen if a stream were to travel along all five edges of a face, in sequence.

Guest: In the score for Dodecahedron, I noticed that there are many phrases for which more than one instrument is playing at the same time. That is not the case for any of the three textures that we have discussed so far. Is that what happens with texture 4?

John: Yes, for this piece I refer to texture 4 as homophonic. For this texture, two notes are played for every stream edge.

Guest: Two notes? From what you have said so far the only edges for which there are two notes are pivot edges, and these are played sequentially rather than simultaneously.

John: Yes. Here, things are a bit different. For this texture, the two notes of the pivot edge are played simultaneously. They start at the same time.

Guest: OK. But what about the simple edges? I mean the ones that are not pivot edges. Is one of the two notes the one we have already discussed?

John: Yes.

Guest: Where does the other note come from? I mean what is the pitch class of that note?

John: Conceptually, it is like this: The simple edge is treated as if it were a pivot edge.

Guest: So in this homophonic texture, the pitch class of the second note of a simple edge is determined in the same way as that of the second note of a pivot edge?

John: Yes, and in the homophonic texture, the second note of a simple edge starts at the same time as the first note. I refer to the first and second note of a simple edge as the main note and neighbor note, respectively.

Guest: For the melodic textures, the notes are sounded one at a time, in sequence. Each note starts when the previous note ends. With this homophonic texture, two notes are played for each edge. And the two notes for each edge start at the same time. Are the two notes for the first edge played first?

John: Yes, at the beginning of the phrase the two notes of the first edge are played.

Guest: Then these are followed by the two notes of the second edge. It that how it goes?

John: Yes, that's right.

Guest: When do the notes for the second edge begin? I may be missing something here. Do the two notes for the first edge have the same duration?

John: No, not necessarily.

Guest: Then do the notes for the second edge begin when the longer note of the first edge ends?

John: No. The notes of the second edge will begin when the main note of the first edge ends.

Guest: So it is possible that the neighbor note of the first edge might overlap the two notes of the second edge, in which case three notes would be sounding simultaneously.

John: Yes, that happens sometimes. More generally, if a given edge follows a simple edge, the notes for the given edge will start when the main note for the preceding simple edge ends. And, it is possible that the neighbor note for the preceding edge will end after the notes for the given edge begin.

Guest: What if an edge follows a pivot edge? You haven't used the terms neighbor note and main note to refer to the notes of a pivot edge.

John: With a pivot edge, I refer to both notes as main notes. Because both notes of a pivot edge are the notes that would be played if the texture were melodic-first-face. I still refer to them as the first and second main notes, even though they start at the same time in the homophonic texture. For a given edge that follows a pivot edge, the two notes of the given edge will start when the second main note of the pivot edge ends.

Guest: What instruments are used to play these notes in the homophonic texture?

John: The main notes are played with the same instruments that would be used if the texture were melodic-each-face.

Guest: What about the neighbor notes of the simple edges?

John: For these notes, the instrument associated with the neighbor face is used.

Guest: ...

John: Is there something wrong?

Guest: Are you treating all these woodwind instruments to be monophonic?

John: That's right. In Dodecahedron, each instrument plays only one note at a time.

Guest: I can see how it will always be the case that a different instrument will be used for the two notes that are associated with an edge, which are to start at the same time. But, as I understand it, the neighbor note of a simple edge or the first note of a pivot edge might overlap the start of a subsequent note that is associated with a subsequent edge. Isn't it possible, at least theoretically, that the same instrument will be required for such overlapping notes?

John: That's an excellent...

Interruptus: I've been looking through some of your C source code. I've never seen code that looks like this. Earlier, you said that you honed your coding style over years in order to write robust programs quickly. Could you explain how you developed this coding style? Also, I'd like to know the rationale for some of the things in this style.

John: Sure. Is there any particular aspect of my style that you would like me to discuss?

Guest: Yes. Why is there a blank space in the first column of every line of all your source files?

John: Often, I need to change the degree to which a section of code is indented. My programmer's editor is capable of copying and pasting a rectangular block of text. If I need to increase the indentation for a block of code, I copy a blank column that has the same length as the block to be indented. Then I paste this to the left of the block several times until the block has been indented by the desired amount. Because I leave the first column blank, I am always able to copy a blank column that is to the left of a block that is to be indented. This is easier than finding a blank column that is to the right of the block, because the lines do not all have the same length.

Guest: What editor do you use?

John: Ever since 1988, I have used an editor that was distributed for free with the Microsoft Macro Assembler. It is called the M editor. There have been other versions of M released by Microsoft since then but they are quite different from the original. The M that I use is a DOS program. The executable file is on the order of 90 kilobytes. It is an extremely well-written program that runs very fast.

Guest: I noticed that you do not put your open curly braces at the end of a line. Why is that?

John: I prefer to have corresponding open and close curly braces to be in the same column. This way, I can see the matching pairs of braces more easily.

Guest: And, within functions you put every curly brace on a line by itself. Why?

John: I can see them more clearly this way. Also, I almost never write any code from scratch. Every time I write something new, I use code that I have already written. In my work, I do a lot of copying and pasting. Any line that I write might be copied for use elsewhere. So throughout my style I try to make sure that copying and pasting is something that will be very easy to do. When I copy code in this way, I do it on a line-by-line basis. For example, I might copy the entire contents of three consecutive lines and paste them in a new function that I am writing. This is a very easy operation to perform with the M editor. If I put a curly brace on the same line as some statement, then I would have to delete this from the line after I pasted it. It is unlikely that a given statement that I write would be the first statement after an open curly brace, or the last statement before a close curly brace, in contexts where I might wish to paste that statement.

Guest: Do you define each variable on a separate line for much the same reason? I mean, with C, most programmers define more than one variable of the same type on one line.

John: Yes, for me it is easier to read that way. And it is easier to cut or copy, and paste. Software developers often speak of reusability of code, on the function level. I want my code to be reusable on the statement level.

Guest: You even do this for the formal parameters of a function prototype, or with arguments in function calls. Is that necessary?

John: When I write a new function, it is always based on some function that I have already written. Since each formal parameter or argument is on a separate line, I can quickly remove unnecessary parameters or insert new ones. Also, I think it is easier to read.

Guest: Throughout your code, you align semicolons and commas. For example, if you define three variables, the semicolons at the end of these three lines will be in the same column. Similarly, the commas at the end of the formal parameters or arguments in a function prototype and function call are all in the same column. That seems a bit fussy.

John: Maybe for some, but I don't like compiler errors. They slow me down. By positioning the semicolons and commas as I do, I rarely forget to put one where it is needed.

Guest: Some of your variable names are extremely long. It must take you forever to type these.

John: I constrain my variable names to be 31 characters, at most. I like to be as descriptive as possible. I am rarely typing these things more than once. It is all copy and paste.

Guest: You don't use typedefs?

John: Only when necessary. I don't like to hide the true underlying data type of something. I like to be explicit. I don't like to see a lot of user-defined data types. I can't remember what all the aliases represent. I prefer to use as few data types as possible.

Guest: I did not see any for loops in your code. Do you ever use those?

John: Not very often. Almost all of my loops are while loops. I don't use for loops because in almost all cases, I don't know how many times a loop will execute. It might be necessary to abort the loop because some unexpected condition has occurred. I don't use do while loops because, for those, the conditional expression that controls when the loop will end is given at the end of the loop. Some of my loops are 20 screens long. I want to see the condition at the beginning of the loop. I think that it is easier to read the code that way.

Guest: Your functions have exactly one return statement. Do you always do that?

John: Yes. I think it is easier to understand what a function does if there is only one way out. Also, I don't use continue statements or goto statements. I try to make the flow of control as simple as possible.

Guest: And, from what I have seen, for all your functions you return a value that indicates whether or not the function was successful.

John: Yes. I think this is necessary. For almost any function that one can imagine, there will be conditions for which that function will be unable to complete the task for which it was designed.

Guest: You use this abort flag throughout your code. You set abort to false initially. Then you bracket almost everything with an if statement that checks to see if the abort flag is true. Then, if some unexpected condition occurs, you set the abort flag to false.

John: Yes. The extreme degree to which I use the abort flag is a relatively new aspect of my style. I used to write deeply nested if statements. Now I rarely nest if statements. As a result, my more recent code has a degree of modularity and reusability on the compound statement level. I often copy and paste an entire block including the if that is before the compound statement. In this way error handling is taken care of somewhat automatically.

Guest: I can appreciate the reasons for why you write code this way, but isn't it time-consuming to format the code as you do?

John: I spend much more time using, reusing, modifying, reading and thinking about my code than I do with taking care of formatting issues. And the formatting that I use makes it easier to do all the other things. Formatting requires some physical effort, but very little mental effort.

Guest: So, how did you develop this style of coding?

John: Incrementally. Every time...

Interruptus: So...suppose I had a particular note of a particular stream edge. What would be the duration of that note?

John: Each note has a particular number of duration units.

Guest: What do you mean by duration units?

John: Each phrase is played within its own independent time frame of reference.

Guest: You mean each has its own time scale?

John: Yes. In the score, you will see that each phrase is notated in a timetable. There is one phrase per page. On each page there is a time scale that runs vertically down the page. The time scale of a phrase is independent of that of any other phrase.

Guest: So these duration units are units along the time scale?

John: Yes.

Guest: Is there any sense of meter?

John: When listening to a phrase, one might perceive that there is a meter. But the phrases are not notated against any particular meter. Instead of whole notes, half notes, quarter notes, eighth notes, et cetera, there are 1-notes, 2-notes, 3-notes, and so on.

Guest: A 1-note is a note for which the duration is 1 unit on the time scale?

John: That's right. More generally, an n-note is one for which the duration is n units. This is an additive type of notation.

Guest: Additive?

John: Yes, as opposed to multiplicative. With common music notation, durations are based on powers of 2. Whole notes have some duration T that is a function of the tempo. The duration of a half note would be half of T. The duration of a quarter note would be one-quarter of T. That of an eighth note would be one-eighth of T. And so on.

Guest: But there are augmentation dots. That would be additive, right?

John: Yes and no. There you are adding progressively smaller durations but these durations are calculated by multiplying the original duration by some fraction. Suppose the duration of a particular note is D. With an augmentation dot, the duration would be D plus half of D, or three-halves times D. With a second augmentation dot, you would add a quarter of D. That would give you a total duration of seven-fourths times D. More generally, if you have n augmentation dots the total duration would be two to the n plus 1 power, minus 1, over 2 to the n, times D.

Guest: I guess tuplets would be multiplicative too.

John: Yes with tuplets, you scale the duration by a fraction. Suppose the duration of a note were D. In a tuplet indicated by the ratio 3:2 (three-to-two), the duration of the note would be two-thirds times D. More generally, if the ratio is m:n (m-to-n), the duration would be n over m, times D.

Guest: So, relative to this, the notation that you are using is additive.

John: Right. In this additive notation, a time scale is used. The time scale marks time as a sequence of indivisible durations. The times at which these durations start are called time-scale points. They are numbered consecutively with integers.

Guest: By indivisible, you mean fractions of these durations are not allowed?

John: Correct. The duration of each note is some whole number of consecutive durations that are marked on the time scale.

Guest: So the duration of an n-note would be n consecutive durations on the time scale?

John: Yes. An n-note would start at one particular time-scale point and end at the nth time-scale point after that.

Guest: So...what would be the duration of a note that is associated with a particular stream edge?

John: Some number of duration units is assigned to each face of the die.

Guest: Is a different number of duration units assigned to each face?

John: Not necessarily. Usually the number of duration units varies from face to face, but in some cases they are all the same.

Guest: Are you saying that the way in which duration units are assigned varies?

John: Yes. This will vary according to the stream type. The stream types are partitioned into equivalence classes. Two stream types that end on the same directed edge relative to the first directed edge would be in the same equivalence class.

Guest: Here you are saying directed edge instead of edge. Why is that?

John: The direction of the last edge matters, at least for one of the cases. In general, durations are assigned in the same way for all stream types that end on a particular edge, regardless of direction. However, for one particular edge, direction matters.

Guest: Which edge is that?

John: That would be the edge that is diametrically opposed to the first edge of the stream. The two equivalence classes for which the last edge is on this edge are treated differently. The way in which durations are assigned for these depends upon the direction down which the last edge is traveled, relative to the first edge.

Guest: So...a dodecahedron has 30 edges. You throw away the first edge, because a stream cannot end on the first edge. That leaves 29 edges. For one of these edges, direction matters. So that means there are 30 different ways in which durations are assigned to faces. Is that correct?

John: Yes, that's right.

Guest: How are these durations related to the duration for a note of a particular stream edge?

John: Let's look at the melodic-first-face texture, first. That it is the simplest case. Do you remember that one?

Guest: Yes, that is the texture for which the entire phrase is played by one instrument.

John: That's right. And what about the notes?

Guest: One note is produced by each simple stream edge. Two notes are produced by pivot edges. These notes are played one at a time, in order, from the first edge of the stream to the last. And, the first note of a pivot edge is played before the second.

John: Do you remember the bit about current faces and neighbor faces?

Guest: Yes, for each note there is a current face and neighbor face. These are the two faces on which the edge that is associated with the note is incident.

John: Yes. Well...the duration of the note for a simple edge will be that which has been assigned to the current face for that note.

Guest: OK...

John: For a pivot edge it is slightly different. The neighbor face is used instead. That is, the duration of a note for a pivot edge will be that which has been assigned to the neighbor face for that note.

Guest: Why is this done differently for the notes of a pivot edge?

John: Well, imagine what would happen if the current face was used for these notes. The sequence of notes may be partitioned into contiguous subsequences for which all the notes in a subsequence have the same current face. There would be one such subsequence for each face around which the stream travels. If the duration that is assigned to the current face were used for all notes, then for each of these subsequences all the constituent notes would have the same duration.

Guest: So you would have a sequence of notes all of the same duration, followed by another sequence of notes all of the same duration, and so on.

John: Yeah...well...I didn't like that idea. I felt that this would not be very interesting, rhythmically. So I decided to mix it up a bit.

Guest: So that's why the neighbor edge is used for the notes of a pivot edge?

John: Yes.

Guest: What effect does this have?

John: You can think of it in the following way: Take the sequence of notes that would result if the current face were used for all notes. Then for each subsequence of notes, swap the duration of the last note with that of the first note of the subsequent subsequence.

Guest: What about the last note of the last subsequence?

John: No, there is no swapping there. That is not a note for a pivot edge.

Guest: I get it. So by doing this, you might say that the subsequences become dovetailed.

John: Exactly. The duration that is associated with the next subsequence is introduced at the end of the previous subsequence, before the next subsequence begins. And the duration of the previous subsequence is used at the beginning of the next subsequence.

Guest: What about the other two melodic textures?

John: For the textures melodic-neighbor-face and melodic-each-face, it is exactly the same.

Guest: So what about the homophonic texture?

John: Do you remember the structure of this texture?

Guest: Yes. I think of it this way. At the core there are the main notes. These are the notes that are used in the melodic-first-face texture. But in this texture, the two main notes that are associated with a pivot edge start at the same time. And for each simple edge, in addition to the main note, there is a neighbor note that starts at the same time as the main note.

John: That's right.

Guest: So what are the durations for these notes?

John: All of the main notes have the same duration that they would have in the melodic-first-face texture.

Guest: What about the neighbor notes of the simple edges?

John: The duration of a neighbor note equals the duration that has been assigned to the neighbor face.

Guest: So with the homophonic texture, each simple stream edge produces two notes: the main note and the neighbor note. The main note takes its duration from that of the current face. The neighbor notes takes its duration from the neighbor face.

John: Exactly.

Guest: Wait a minute. Instruments are assigned to faces too. And these assignments are constant. I mean for all of Dodecahedron, bass clarinet 1 is assigned to face number 1.

John: Yes...

Guest: Well, durations are assigned to faces too. As I recall, regardless of the texture, the instrument that plays a particular main note is that which is assigned to the current face.

John: No...that's not quite right. For the melodic-neighbor-face texture the instrument that plays a particular main note is that which is assigned to the neighbor face.

Guest: Oh...right. Then let's forget about that case for the moment. For all textures except melodic-neighbor-face, the instrument that plays a particular main note is that which is assigned to the current face. Is that right?

John: Yes. That's correct.

Guest: And for the neighbor notes that are used only in the homophonic texture, those are played by the instrument that is assigned to the neighbor face. Right?

John: Yes...

Guest: So you've got neighbor notes that use the instrument and duration of the neighbor face. And you've got main notes that use the instrument and duration of the current face.

John: Well...no...not quite. The main notes that are associated with pivot edges use the instrument of the current face, but the duration of the neighbor face.

Guest: Right...well...let's forget about the notes that are associated with pivot edges for the moment. What I've got is this: If you exclude the melodic-neighbor-face texture and you exclude the notes produced by pivot edges, all the remaining notes that are played on a particular instrument will have the same duration...throughout the piece.

John: Oh...I see what's bothering you. Yeah, I don't think that would be too interesting. But, that is not how it is. I think you have forgotten that the way in which durations are assigned to faces is a function of the stream type. Or more specifically, it depends on the equivalence class of which the stream type is a member.

Guest: Oh...right. I see. So a given face will have different durations assigned to it, depending upon the stream type upon which the phrase is based.

John: Yes.

Guest: OK. That clears that up. So, you were saying that there are 30 different ways by which these durations...

Interruptus: What are your eating habits?

John: I eat three meals and a snack. I eat breakfast sometime between 11am and noon, lunch between 3pm and 4pm, dinner between 7:30pm (seven-thirty p.m.) and 8:30pm, and my snack at around midnight.

Guest: What do you eat for breakfast?

John: I eat the same thing every day: a large bowl of corn flakes with skim milk, a cup of yogurt to which I add some blackberries or raspberries, one banana, and two large cups of water.

Guest: What about lunch?

John: Almost every day it is the same thing: a peanut butter and jelly sandwich on wheat bread, and two large cups of water. Sometimes, I eat a tuna fish sandwich instead.

Guest: What about dinner? Is that the same thing every day?

John: No. That could be anything. Usually I eat some sort of vegetables and pasta. It might be in a soup. There might be some chicken or fish, and occasionally some meat. Usually, I will have a few slices of Italian bread. Along with the meal, I drink about a quart of water. Then there is usually some sort of dessert: cookies or a piece of cake with a glass of skim milk.

Guest: And for a snack?

John: Every night I have a large cup of water. Along with this, almost every night I will have a snack. That might be any of the following: some graham crackers, a small bowl of tortilla chips, a bag of microwave popcorn or some slices of toast. I rotate the snacks. Usually, I have toast once a week and the other snacks twice a week.

Guest: Do you ever eat anything between meals?

John: No. Almost never.

Guest: Do you eat these meals at home? Or do you go out to eat?

John: Usually, I eat all my meals at home.

Guest: That seems like a lot of water.

John: Yeah...of all the things I eat, I think it is water that gives me the most energy. I try to keep the tank full.

Guest: Why such a regular eating pattern?

John: Because, I want to know how my body reacts to different kinds of food. It is like I am conducting an experiment for which I am the lab rat. The regular eating habits establish a control in the experiment. The food that I am testing on any given day would be something unusual that I eat. For example, my breakfast, lunch and snack are part of the control. Suppose I eat something unusual for dinner and after that, I do not feel well. Then I would know the cause of the problem is probably the unusual thing that I ate for dinner.

Guest: Why do you eat the things that you do?

John: By experimentation over many years, I have found that these are the things that make me feel well. That is especially true of the breakfast, lunch and snack.

Guest: So you plan to eat these same things for the rest of your life?

John: No. Not necessarily. It's an ongoing experiment. I am not part of the control. As time progresses, my body changes. So, some particular food that might have been fine for me in the past will become a problem. I would eliminate such foods.

Guest: Are there any examples of foods that you have eliminated in the past few years?

John: Yes. I used to eat potato chips.

Guest: For the midnight snack?

John: Yes, and sometimes for lunch with my sandwich. Now, I rarely eat them. Occasionally I will have some for my snack. But, usually I feel better after I have eaten tortilla chips, so the tortilla chips have replaced the potato chips. The potato chips are a bit heavy in my stomach.

Guest: Are there any other foods that are on the way out?

John: Chocolate. I don't mean chocolate by itself. I never ate much of that. I mean chocolate as part of a dessert. I have tended to reduce the amount of chocolate that I eat in this way. I think it may cause sleeping problems for me. Perhaps it is the caffeine.

Guest: Speaking of caffeine. Do you drink any coffee?

John: I have never had a cup of coffee, or even a mouthful. I don't like hot drinks. And, I don't like the coffee flavor.

Guest: What about soda?

John: No. These days, I do not drink any soda. The gas doesn't agree with me.

Guest: Do you use any seasoning or spices in your dinner food?

John: Well...that would be my wife's department. She makes all of our dinners. I don't think she uses too much in the way of seasoning or spices. I don't add any salt or pepper to the food at the dinner table. To me, it's delicious as is.

Guest: You don't eat much meat?

John: No. Except for an occasional grilled meal of hot dogs and hamburgers, I don't eat too much meat. I have never been a big fan of meat. I don't like beef chunks or steak too much. I don't like eating it. It is too much chewing and chewing, until there is this tasteless wad in my mouth that I just feel like spitting out. For me meat has to be extremely tender or it has to be cut up into extremely small pieces. And, I don't like the way I feel after I eat a lot of meat. I feel slow. It sits there like a load in my stomach that seems to takes forever to digest.

Guest: So, you eat more chicken than beef?

John: Yes, by far. But I don't like to eat chicken with my hands. When I sit down to eat, I am hungry. I don't like to fight to get my food. It's too messy and too much work. And besides, I don't like leg meat that much. I will eat an ear of corn, but for me, the taste is worth the trouble.

Guest: Do you eat cookies with your hands?

John: I used to. Now, here is what I do: I fill up a bowl halfway with milk. Then I toss a cookie into the milk. I use a spoon to break up the cookie into smaller pieces while it is soaking up the milk. Then, I eat it piece by piece with a spoon. It's delicious!

Guest: Are these homemade cookies or store-bought?

John: I don't eat many desserts from the store shelf. My wife...[knock knock knock knock knock]...Yes, who's there?

Voice at Door: I am the Chair of the computer science department to which you sent an e-mail message to inquire about applying for a position as a professor.

John: Yes. Come in.

Voice at Door: Hello John.

John: Before we get started, I would like to assign a name to you. How about Compsci (comp-sigh)?

Voice at Door: That would be fine with me.

Compsci: I was reading through your CV. I see you have done a lot of work with computers.

John: Yes.

Compsci: Have you published any papers on the programs that you have developed?

John: No.

Compsci: Have you published any of the programs that you have written?

John: I published a shareware program called Cmake (c-make) in the early 1990's. That was a make utility that searched source files to automatically determine dependencies. It eliminated the need for creating a make file manually.

Compsci: Do you use that in your work?

John: No. These days, my programs consist of very few source files. For example, the program that I wrote to help me compose Dodecahedron consists of only five C files. It is convenient for me to keep almost all the functions that I write in a single file. One of the files for the Dodecahedron program is over 1.6 (one-point-six) megabytes in size. These days computers are so fast that there is no need for me to work with dozens of small files. Even the largest files can be compiled fairly quickly. So, I have no need for a make utility.

Compsci: What about the programs that you have written to implement these algorithms for composing? It seems like they might be useful to other composers. Have you published those?

John: Well...no. I have published a small set of utilities called PDFmus but those are not related to the algorithms. I use those to help me create scores in PDF file format.

Compsci: Do you have any plans to publish these composition programs? I could see these as being a useful package for composers to help them create music.

John: No. I don't plan to do that. At some point, I might publish the source code to the composition programs, but that would only be to document what I have done. I probably would not be doing it to provide a set of programs for a community of users.

Compsci: We're always looking for new hot topics in research. You know...things that have a good chance of bringing in research funding. I know that some computer scientists have gotten funding for this type of thing in the past. I seem to remember a fellow by the name of Lejaren Hiller who got some funding for algorithmic composition from NSF. Would you be interested in developing an active research program along these lines?

John: Well...I enjoy doing research...but I don't think I would want to take time away from my work to write research proposals to get funding. The work that I do does not require much money.

Compsci: I see. Well...I'm sorry to be blunt but I think it would be a waste of your time and mine to pursue this further. I don't think that a computer science department such as ours is the right place for you. Perhaps, you could investigate the possibility of getting a position in a music department.

John: Oh. Yeah...maybe I'll do that.

Compsci: Well John, I got to get going. It was nice to meet.

John: Yes, it was nice to meet you too. Have a safe...

Interruptus: Earlier you were saying that in Dodecahedron each stream is a child of some other stream. You said that there are particular points along a stream from which a child may emerge. Could you explain this a bit more?

John: Sure. For every turn that is made along a stream, there is one point from which a child may emerge. I refer to these points as entry points.

Guest: By emerge, do you mean this is a point from which another stream may begin?

John: Yes, that's right. Remember, for Dodecahedron there was a randomly generated sequence of 697 stream types. These stream types were used to generate a sequence of streams.

Guest: By stream you mean one of the sixty possible ways to position a given stream type on a dodecahedral die, right?

John: Yes. Each stream, except the first, must be positioned so that it begins at an entry point of some stream that precedes it in the sequence. The stream from which a given stream emerges is called the parent stream.

Guest: OK. So, where are the entry points located? Is the entry point that is associated with a particular turn located at the vertex at which the turn was made?

John: Yes, in some cases. If the stream edge that precedes the turn is a pivot edge, then the entry point and vertex at which the turn was made will coincide. When the preceding stream edge is a simple edge, the entry point will be at the vertex that is at the beginning of the preceding edge.

Guest: Earlier you said that some of the entry points could only be used to begin a stream for which the first turn is to the left, while others could only be used for streams for which the first turn is to the right. Which entry points are suitable for a stream that begins with a left turn?

John: A stream for which the first turn is to the left must begin at an entry point that is associated with a right turn of its parent stream. Conversely, a stream that begins with a right turn must emerge from an entry point that is associated with a left turn of its parent.

Guest: A child stream begins at a particular vertex of its parent stream. But in which direction does it proceed? There are three edges of the dodecahedron that are incident on the first vertex of the child. Which of these edges would be the first edge of the child?

John: That would depend upon whether the parent edge that precedes the turn is a simple edge or a pivot edge. If it is a pivot edge, then the child will travel the edge that was avoided by the parent at the turn. If it is a simple edge, the child will travel down this simple edge, retracing this edge of the parent.

Guest: Perhaps you could say that in another way. I am getting a bit confused.

John: Well...you've got to keep in mind that the first turn of the child will be in the opposite direction of the parent turn.

Guest: OK.

John: ...Conceptually, in all cases the child begins by proceeding along the path that the parent did not take.

Guest: Wait a minute. You said that if the edge that precedes the turn in the parent is a simple edge the child retraces that edge of the parent. It starts at the vertex that is at the beginning of this preceding edge. Then it follows this preceding edge.

John: That's right. But when it arrives at the vertex where the parent turns, the child turns in the opposite direction. That is, if the parent turns left, the child will turn right. And vice versa.

Guest: And what about the case when the edge that precedes the turn in the parent is a pivot edge?

John: In that case, the child begins at the vertex where the parent turns. Then the child follows the edge that the parent would have taken had it made the opposite turn.

Guest: I get it. I can see the places from which a child stream might emerge relative to its parent. But what about the notes for the child stream? Is there some relationship between the time at which the first note of the child starts and the starting time of the notes of the parent stream?

John: Well...before we get to that, there are a couple other entry points that we should discuss.

Guest: Where are these located?

John: They are at the end of the parent stream. I refer to these as trailing entry points. The parent does not make a turn at its last vertex. But suppose it did. If the parent continued beyond its last vertex, for example by making a left turn, there would be an entry point that is associated with this turn. From this entry point, a stream could emerge for which the first turn is to the right. On the other hand, if the parent continued by making a right turn, there would be an entry point from which a stream could emerge for which the first turn is to the left. These two entry points which are associated with these imaginary turns that the parent did not make are the trailing entry points.

Guest: Do they have the same characteristics as the other ordinary entry points that we discussed?

John: Yes, except for the fact that they are based on imaginary turns rather than real turns.

Guest: Now...what about the starting time of the...

Interruptus: Do you think there is any chance that the Earth is the only place in the Universe on which there is life?

John: Based on a probabilistic argument, I would say that would be fairly unlikely.

Guest: Does it matter? It does not seem like there is any other life out there that is too close. So I think it would be unlikely for us to meet them in the near future.

John: Unless they can figure out a way to visit us.

Guest: Do you think we have been visited already?

John: I think it is possible.

Guest: How could they possibly get here?

John: If we knew the answer to that, we might be able to find them first.

Guest: Yeah...I suppose.

John: Maybe they're here but we can't see them.

Guest: You mean like some sort of paranormal thing?

John: Maybe.

Guest: Again, what does it matter? If they are here and we can't see them, it's like they are not here at all.

John: Well...maybe they are responsible for controlling some aspect of our world for which we do not have a good mathematical model or scientific understanding yet. For example, imagine if I controlled the weather.

Guest: ...That would be interesting.

John: Yes. My goal might be just that. To make it interesting.

Guest: Well...I think we are glad that you don't control the weather.

John: Self included.

Guest: So...do you believe that there is life somewhere else in the Universe?

John: I think that it can be useful to have such a belief.

Guest: How so?

John: Well...it could be helpful to put yourself in their shoes. Like, when you are creating mathematics, music or whatever, you could imagine yourself as one of...

Interruptus: Maybe Guest should have a name.

John: You don't like the name Guest?

Interruptus: Well...with the name Guest, it kind of makes me look like some unwanted intruder.

John: Yes, I see your point. I'm sorry about that. That was not my intent. How about...Ace Dhilmot (dill'-maht)?

Guest: How did you come up with that one?

John: I took the letters of the word methodical, and sorted them to get acdehilmot. Then I swapped the d and e and broke it there.

Guest: Why did you sort the letters?

John: Well...this is an orderly arrangement of the letters. It represents the meaning of methodical. More than that, each letter represents a step in a sequence: First step a, then step c, then step d, and so on.

Guest: Why did you switch d and e?

John: Because then it would be more like a name. Ace means one. It makes sense that Ace should be the first name of such an orderly name. And the way I swapped the letters reminds me of the way the durations are swapped for the two notes of a pivot edge. Also, an ace is a pip on a die. I thought of the name Methodic Al, but that seemed a bit too obvious and silly.

Guest: I wonder if there are any other names that could be formed from these letters.

John: Here's something. The name Thomas is in methodical. With the remaining letter, your last name could be Thomas L Dice. That's interesting. Since we've been talking so much about dice. But, we're also talking about other pieces like Pentominoes that have nothing to do with dice. So maybe that's a bit too specific. There's also Thomas Eclid (eh'-clid). The Eclid is a short version of Euclid. And Euclid makes one think of a step-by-step approach, because of the axiomatic method.

Guest: How about Thomas L Cide (side)?

John: Yes. That's interesting. L Cide makes one think of left side. And there is the notion of right-brain versus left-brain, with the left brain being more involved with sequential tasks.

Interruptus: I don't think I would be happy with any name that was like a person's name. It would not be in balance with my name.

John: How about Methodus? It's Latin, like Interruptus. And it is one word.

Guest: I like that. It has a serious sound to it.

Interruptus: Yes. I agree. And its meaning is clear, like Interruptus.

John: OK...then henceforth, I shall...

Interruptus: In Dodecahedron, each phrase has its own tempo. How did you select the tempo for a given phrase?

John: The tempo was determined by selecting a particular stream edge and calculating the difference between the left face number and right face number. There were a few other properties that were determined in this way as well.

Methodus: Which would those be?

John: The dynamic level and register.

Methodus: By left face and right face, you mean the faces that are on the left and right of an edge as one looks in the direction in which the edge is traversed?

John: That's right. Here, for example suppose a given stream edge begins at the vertex on which the faces 1, 5 and 9 are incident. Further, suppose that this stream edge ends at the vertex on which the faces 1, 9 and 3 are incident. Here, I have listed faces in clockwise order, as you would see them if you looked down on one of these vertices. For this stream edge the left face would be 9 and the right face would be 1.

Methodus: And if the stream edge were in the opposite direction, that is from the 1-5-9 (one-five-nine) vertex to the 1-9-3 (one-nine-three) vertex, the left face would be 1 and the right face would be 9. Right?

John: Yes.

Methodus: So the difference between these faces is calculated. Would that be the left face number minus the right face number?

John: Exactly. For this example, with 9 on the left and 1 on the right, the difference of the edge faces would be 8.

Methodus: And if the stream had been traveling in the opposite direction this difference would be 1 minus 9, or negative eight.

John: Correct.

Methodus: Which edge of the stream is used to calculate this difference?

John: In Dodecahedron, the first four edges are used. That is, this difference is calculated for each of the first four edges of a stream.

Methodus: And which of these differences determines the tempo?

John: That depends.

Methodus: How so?

John: It depends on the first three turns of the stream. The set of stream types may be partitioned into 8 equivalence classes according to the types of turns that are made in the first three turns of the stream. For example, one of these classes would consist of the streams for which the first three turns are to the left. The other classes would be left, left, right; left, right, left; left, right, right; right, right, right; right, right, left; right, left, right; and right, left, left. We could abbreviate these as LLL (l l l), LLR (l l r), LRL (l r l), and so on.

Methodus: So let's suppose the first three turns are left, left, left. Which of the four differences would determine the tempo in this case?

John: In that case, it would be the first edge.

Methodus: What about for the other seven equivalence classes?

John: Well...for the class LLR it would be edge number 4, for LRL it would be number 3, for LRR it would be number 2. For RRR it would be 4, for RRL it would be 1, for RLR it would be 2, and for RLL it would be 3.

Methodus: It seems to cycle through the various edges depending on the class.

John: That's right.

Methodus: What about the other three edges for which a difference is calculated? Do these determine the dynamic level and register?

John: Yes, the difference for one of the three remaining edges of the first four determines the dynamic level. Another edge is used to determine the register.

Methodus: That's three edges. One for tempo, one for dynamic level and one for register. How does the difference for the remaining edge come into play?

John: It is used for a variety of purposes. For example, if a staccato articulation is to be used in the phrase, the difference of the remaining edge would determine the particular pattern of staccato that is used. Remember, a musical characteristic has been assigned to each stream type. Staccato is one of these characteristics. The way in which the difference of the remaining edge would be used would depend upon the musical characteristic of the stream type for the phrase.

Methodus: With tempo, the particular edge of the first four that is used depends on the first three turns of the stream. Is that also the case for these other three properties: dynamic level, register, and...other?

John: Yes.

Methodus: For each of these properties, which edge is used for the eight different equivalence classes?

John: Well...let's use T to represent tempo, D for dynamic level, R for register and O for other. I could say "TDRO" (t d r o) to mean that the difference of the first edge of the stream determines the tempo, the difference of the second edge determines the dynamic level, the difference of the third edge determines the register, and the difference of the fourth edge determines some other property that would depend upon the musical characteristic of the stream type.

Methodus: OK.

John: All right. Then for LLL, LLR, LRL, LRR, RRR, RRL, RLR, and RLL, it is TDRO, DROT, ROTD, OTDR, ORDT, TORD, DTOR and RDTO respectively.

Methodus: I recognize these eight permutations of TDRO. They are the ones that can be generated by various combinations of the operations circular shift and order reversal, right?

John: Yes, exactly.

Methodus: Let me see if I understand this correctly. If the first three turns of a given stream are left, right and left, then ROTD will be used. And in that case, for example, the dynamic level would be determined by the difference between the left and right faces of the fourth edge of the stream. And the tempo would be determined by the difference for the third edge. Is that right?

John: Yes. That's correct.

Methodus: So how do we get from these differences of faces to a particular tempo, dynamic level, and register?

John: Well, that would depend upon whether we are talking about tempo, dynamic level or register.

Methodus: Let's talk about tempo for the moment.

John: OK. As I said earlier, for this piece the tempi were draw from the metronome scale. The possible tempi were 52, 58, 66, 76, 88, 100 (one-hundred), 112 (one-hundred-twelve), 126 (one-hundred-twenty-six) and 144 (one-hundred-forty-four).

Methodus: OK.

John: For the particular scheme that I chose to number the faces of a dodecahedral die, the possible values for the difference between the left and right faces of a stream edge are -10 (minus-ten) through 10, excluding -1 (minus-one), 0 (zero) and 1.

Methodus: So there are 18 possible values in all.

John: Yes.

Methodus: How are these mapped to the 9 possible tempi?

John: If the difference is 2 or -10, the tempo will be 52. If it is 3 or -9, the tempo will be 58. Similarly, the other pairs 4 and -8, 5 and -7, 6 and -6, 7 and -5, 8 and -4, 9 and -3, and 10 and -2, are mapped to the tempi 66, 76, 88, 100, 112, 126 and 144, respectively.

Methodus: What about dynamic level?

John: The same pairs are used. If the difference is 2 or -10, the dynamic level will be triple piano. If it is 3 or -9, it will be pianissimo. If it is 4 or -8, it will be piano. And so on. That is, the remaining pairs are mapped to the dynamic levels mezzo piano, normal, mezzo forte, forte, fortissimo and triple forte, in order.

Methodus: So if the difference of the faces for the stream edge that is used to determine dynamic level is 8 or -4, the dynamic level will be forte.

John: Correct.

Methodus: What do you mean by normal? What is a normal dynamic level?

John: I mean a dynamic level that is neither loud nor soft; like the dynamic level that we are using to talk to each other right now.

Methodus: Oh...all right......now, what about register?

John: I have partitioned the full pitch range of each instrument into 5 contiguous registers. These are high, medium high, medium, medium low and low.

Methodus: How are the various possible differences mapped to these 5 registers?

John: Here as well, the set of possible differences is partitioned into pairs. But since there are only 5 registers, some pairs map to the same register. Two pairs map to the low register. These are 2 and -10, and 3 and -9. Two pairs map to the high register. These are 9 and -3, and 10 and -2. The three middle pairs map to the medium register. These are 5 and -7, 6 and -6, and 7 and -5. Differences of 4 and -8 map to medium low. And -4 and 8 map to medium high.

Methodus: Now, what about the other edge?

John: The other edge?

Methodus: Yes, the one for which you said the difference in the faces would determine some other property of the phrase, depending upon the musical characteristic of the stream type. For example, for the staccato case that you mentioned, what would...

Interruptus: Could you explain the rationale for your design of the symbols for early and late that are used in the score for Dodecahedron?

John: Sure. The shape of these symbols is based on that of an hourglass. The symbol for early is the top half of an hourglass, while that of late is the bottom half. These shapes are filled in. That is, they are solid. This indicates that the particular half that is depicted is full. At the time at which the top half of an hourglass is full, you are early. When the bottom half is full, you are late. Also, there is a relationship between the fact that time progresses from top to bottom in each timetable of the score, and sand progresses from the top half to the bottom half of an hourglass. The symbols for notes are elliptical blobs. The early symbol is a blob that is centered above the normal position for a note. Conversely, the late symbol is below the normal position for a note.

Methodus: The rationale for some of the other symbols in Dodecahedron is fairly obvious to me. For example, the senza-vibrato symbol is composed of two parts: a sine-wave-like shape that represents vibration and a slash that represents no. And the symbols for increase or decrease linearly, geometrically or sinusoidally are just waveform shapes...You have adopted the paragraph sign for use as the phrase sign. Do you think of the phrases as being paragraphs?

John: Not exactly. But, in some sense they are a new train of thought. From what I could find in symbol dictionaries, this symbol has been used for this more general purpose in the past. And, it is a fortunate accident that the word phrase begins with the letter p.

Methodus: What about the star that you are using to mean the start time of the performance?
 


Previous Page     Next Page

Lines in the Air: A One-Act Play

Other Work by John Greschak

Public Domain