The MCM2015 conference for Mathematics and Computation in Music is coming in June, and the submission process has taken up quite a lot of my time recently, which explains the relative inactivity of this blog. But everything is finished now, so here is a new post about topos theory and music.

I want to show here a simple example of another topos, applied to the study of time-spans. We are going to introduce a specific monoid M and its action on a particular set S, which therefore defines a functor M \to \textbf{Sets}. Since the category \textbf{Sets}^{M} is a topos, we are going to calculate its subobject classifier \Omega explicitly and see its use for time-spans. This is a small part in a much larger paper than Moreno Andreatta, Andrée Ehresmann, and my self have submitted to MCM2015, which I will describe in a later post.

A time-span defines a certain duration at a certain point in time. Recall from the previous posts that a time-span, as defined by Lewin, is a couple (t,\Delta), with t \in \mathbb{R}, and \Delta \in \mathbb{R}_{>0}. The group G = (\mathbb{R},+) \rtimes (\mathbb{R}_{>0},x) acts simply transitively on the set of time-spans, either on the left, by the action of a group element (u,\delta) given by

(u,\delta).(t,\Delta) = (u+\delta t, \delta \Delta),

or on the right, by

(t,\Delta).(u,\delta) = (t+\Delta u, \Delta \delta).

We can represent the time-spans graphically. Our reference unit time-span will be represented as such:



Given this unit time-span, here are the time-spans (1,1) and (3,1/2):


We are now going to consider a restricted set of dyadic time-spans, namely the set S=\{(t,2^\delta), t \in \mathbb{Z}[\frac{1}{2}], \delta \in \mathbb{Z}\}, where \mathbb{Z}[\frac{1}{2}] is the set of the dyadic rationals, i.e. numbers of the form \frac{p}{2^q}, where p is an integer, and q is a natural number. This can model time-spans having the duration of a quarter, an eighth, and so on. The time-spans (1,1) and (3,1/2) are examples of dyadic time-spans.

Consider now the monoid M=\{(u,2^v), u \in \mathbb{Z}[\frac{1}{2}], u \geq 0, v \in \mathbb{Z}\} whose multiplication law is given by the following equation.

(u_1,2^{v_1})*(u_2,2^{v_2})=(u_2+u_1 2^{v_2},2^{v_1+v_2})

The monoid M is generated by the elements a=(1,1) and b=(0,1/2) and has for presentation M=\langle a,b \mid a^2b=ba \rangle. It can be considered as a discrete monoid version of Lewin’s continuous group of time-span transformations. It is also a monoid analog of the Baumslag-Solitar group BS(1,2).

Now, consider the action of an element (u,2^v) \in M on a dyadic time-span (t,\delta) \in S given by

(u,2^v) \cdot (t,2^\delta)=(t+2^\delta \cdot u,2^{\delta+v}).

This defines a functor M \to \textbf{Sets} which belongs to the category of functors \textbf{Sets}^M. In the example given above, one transforms the time-span (1,1) into (3,1/2) by the action of the monoid element (2,1/2). The transformation of (3,1/2) into (1,1) is not possible since the monoid only acts by positive translations in time.

The category of functors \textbf{Sets}^M is a topos, and we can calculate explicitly its subobject classifier \Omega.

For that, we need to calculate the cosieves on the unique object of M. It is easy to see that those are of the form J_p = \{(u,2^\delta) \in M, u \in \mathbb{Z}[\frac{1}{2}], u \geq p, \delta \in \mathbb{Z}\}, with p \in \mathbb{Z}[\frac{1}{2}], p \geq 0. Indeed, you can check that for any element m \in M, we have m \cdot J_p \subset J_p. We also have the empty cosieve \emptyset.

The subobject classifier is therefore \Omega=\{J_p, p \in \mathbb{Z}[\frac{1}{2}], p \geq 0\} \cup \{x\}, where \{x\} is a singleton. The first term can be bijectively identified with \mathbb{Z}[\frac{1}{2}]_{\geq 0}, so that \Omega=\mathbb{Z}[\frac{1}{2}]_{\geq 0} \cup \{x\}.

The action of the monoid M on \Omega is given by (m, J_p) \to m.J_p = \{f \in M, f.m \in J_p\}. This can be obtained in a rather straightforward manner by studying the action of the generators a=(1,1) and b=(0,1/2). One thus gets:

  • (1,1) \cdot p = p-1, if p \geq 1, and 0 otherwise, and
  • (0,1/2) \cdot p = 2p,

for all p \in \mathbb{Z}[\frac{1}{2}]. The singleton \{x\} is a fixed point by the action of M. It corresponds to the value False in our topos, whereas 0 corresponds to the value True.

So what can we do with this information ? First, observe that, for a given k \in \mathbb{Z}[\frac{1}{2}], the set T_k=\{(t,2^\delta), t \in \mathbb{Z}[\frac{1}{2}], t \geq k, \delta \in \mathbb{Z}\} equipped with the same action of M is a subobject A of S. The characteristic map \chi_A then sends any element (t,2^\delta) \in S to \dfrac{k-t}{2^\delta} if k \geq t, or 0 otherwise. In other words, the characteristic map measures the time period t-k from a time-span (t,2^\delta) in units of 2^\delta.

Let’s look at our small example again, along with the set T_{9/2}. We can represent it as such :


The time-span (3,1/2) needs to be translated by three times its duration in order to belong to the set T_{9/2}. Thus the characteristic map \chi_{9/2} sends the time-span (3,1/2) to the set \{3\} \in \Omega. Similarly, one can check that the map \chi_{9/2} sends the time-span (1,1) to the set \{7/2\} \in \Omega.


This topos is rather simple, but I find it nevertheless interesting. First, it gives a precise way to define the distance of a time-span to a given cue in time. Second, it could easily be implemented on a computer and suggests application in automatic music analysis. Last, it shows that monoids can sometimes be more interesting than groups. Indeed the subobject classifier of any functor category \mathbf{Sets}^{G} where G is a group is rather simple: it has only two elements, and the topos is therefore boolean.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s