Blog

Uses, reuses and abuses of the compact disc at 40 — IRC New Foundations 2020

I’m delighted to announce that I have been awarded an Irish Research Council (IRC) New Foundations grant for the project “Uses, reuses and abuses of the compact disc at 40: an obsolete format and/or a new opportunity for critical digital media literacy?”. This year, the New Foundations programme supported projects that aim to “to bring science (including social science) and art/design/humanities together to work on new ways of communicating scientific concepts and/or complex societal challenges for a lay audience,” and I’m pleased to say that this project was funded under this STEAM strand.

Categorizing media defects

This is a response to a prompt over at the TAXIS blog, where we read the first chapter of the classic Geoffrey C. Bowker and Susan Leigh Star, Sorting Things Out: Classification and Its Consequences, (Cambridge, Mass.: MIT Press, 2000).


Media in their broken states can tell us as much about their social construction as they can in their putatively “normal” modes of operation, so I’ve taken an interest in how the designers and manufacturers of CD players and CD media have managed defects in their engineering work. I’ll set aside the question of exactly where or what the “infrastructure” is here—is it the defect-handling electronics? the players? the damaged discs? the entire CD media “ecology”?—for the moment and focus instead on the work of classification in the management of defects in optical media. Most of the sources for the material in this post are journal articles and published reports of research done at various sites over the last 30 or 40 years, with a focus on the CD. I’m drawing on the chosen reading for guidance about how to parse this material as well as where I should look for more.

All I want for Christmas is a Buchmann-Meyer pattern

Doing some reading for my current project (a history of the CD Audio format), I stumbled across a physical phenomenon that does not often crop up in discussions of the history of gramophone recording: the Buchmann-Meyer effect. This optical effect was once used to measure the quality of gramophone records, both qualitatively and quantiatively, by shining a band of light on a disc and capturing the characteristic “Christmas tree”–like pattern that is reflected back to the viewer. If the pattern is clear and distinct, the record is in good nick; if the “branches” of the pattern are ill defined, the disc surface has perhaps become subject to wear and disintegration, or, indeed, was never fabricated to a high standard in the first place. In a figure from a very interesting recent paper—interesting for other reasons!—we see three discs.1 Visible are Buchmann-Meyer patterns reflected from the A and B sides of an Audio Engineering Society test record from 2007 (well defined) and one from an undated lacquer transcription disc, probably produced in France (not as well-defined).

Two more minimalists

Short post tonight. I often feel quite defensive when I start off thinking or writing about what I like in minimalist music, because, let’s face it – even thanks to interesting work by Music Theorists™ – there’s a fair bit of residual snobbishness in academe when it comes to this repertoire. I think the problem is that there are some composers in this style who have written some pretty bad music, and its hard to get away from the idea that choosing to study someone’s musical works has this side-effect of inaugurating the person in some sort of music-analytical Hall of Fame: “this person’s work is worth analyzing”. Pop music tolerates one-hit wonders, as does – perhaps not coincidentally – opera. So why not twentieth-century minimalism?

A guide to free reference and academic paper management with Zotero

Update: I recently learned that box.com plans to deprecate WebDAV support in October 2019, a decision which renderse part of the workflow described here unsustainable beyond October. As I come up with an alternative solition, I will change this post to reflect the new reality.

First things first, we need a reference manager. A reference manager stores bibliographic information for each reference, and most of them support associating the reference with a source file corresponding to the reference. Usually this is a PDF from the publisher or a scan you might have come across, but it can also be a HTML snapshot of a website or, indeed, other multimedia such as audio and video. I use Zotero.

Generate keyword arguments programmatically in Python

This is a little helper that can be used in Python 3 to generate a set of dictionaries from a schema that specifies iterators that provide the values of the generated dictionaries.

It will generate one dictionary for every configuration (i.e. Cartesian product) of values specified by iterators in the schema. Non-iterable values are kept fixed. Generators may also be used in the schema (see code snippet).

This is useful for programmatically constructing keyword arguments when experimenting with the parameters of functions, because a dictionary can be unpacked into keyword arguments by using the double star operator (**some_dict) in the last argument position. For this reason, I call the schema the optionset_schema.

Introduction to DFT and Fourier phase space for music analysis

Follows exposition in Jason Yust, “Schubert’s Harmonic Language and Fourier Phase Space.” Journal of Music Theory. 59/1 (2015)

Import some modules and functions that will be useful later.

import itertools
import music21

import numpy as np
from matplotlib import pyplot as plt

from numpy.fft import fft
%matplotlib inline

The Fourier transform decomposes a time-varying signal into a mixture of sinusoidal components.

To take advantage of the Fourier transform, we represent a pitch class (multi)set as a pitch-class vector, where the n-th entry in the vector correpsonds to the cardinality of the pc n in the multiset.

Serial matrix in J

J is an APL-like array programming language. It was developed in collaboration with Ken Iverson. The documentation online, especially the tutorials and educational material, is exemplary. This weekend I worked through the J primer. If you can ignore the rhapsodic evangelism for the language, then it’s a robust and thought-provoking introduction to a very different way of programming.

One of my motivations for learning something about J is to understand this article about a combinatorics problem with an application in music theory. Because arrays (and their generalization, n-dimensional matrices) are of fundamental importance in J, it is possible to write a very terse program to compute a twelve-tone matrix. Not a “for” loop in sight!

Embedding models and music

A post on the Google Research blog today announced

the open-sourcing of Embedding Projector, a web application for interactive visualization and analysis of high-dimensional data

Over the summer, I presented work (co-authored with Jaan Altosaar) on the application of word embedding models to a large–and admittedly noisy–corpus of classical music. It appears that word embedding models capture something about sequences of chords. Our work, and related recent work with a different dataset, shows that that major triads are somewhat evenly distributed through the embedding space, in their circle-of-fifths order.

Accessing column names in Processing.org Tables

For a project I am currently working on using the Processing programming language, I use the provided Table class to read in data from a flat CSV file.

The column names in this file have to match parameters specified elsewhere in the code. As a consquence, when validating the data from the file, I need access to the column names.

There is an undocumented private field in all instances of the Table object which contains the column names (when the flag to treat the first line of the file as column headers is flipped in the Table constructor).