FARM 2023: Proceedings of the 11th ACM SIGPLAN International Workshop on Functional Art, Music, Modelling, and Design

Full Citation in the ACM Digital Library

SESSION: Keynote

Perfectly Imperfect: Music, Math, and the Keyboard (Keynote)

As a concert pianist and harpsichordist, I am devoted to extracting expression and meaning out of the silent abstractions of a musical score. Behind the preparation for any performance is my stark wonder at how such innovative, suggestive sonic domains are realized by composers, literally out of thin air. We’ll explore some basic mathematic principles that underlie all musical discourse, with a focus, given time constraints, on Western classical music. With recorded and live examples from the keyboard, we’ll look at Harmony: from the acoustical demonstrations of Pythagoras, through the contentious battles over tunings and temperaments during the Baroque, to the microtonal experiments of modern times in the work of Harry Partch and Iannis Xenakis. And Rhythm: another vast realm of experimentation and invention, how did we get from 2/4 to the polymeters and irrational meters of Conlon Nancarrow and Thomas Adès?

Looking at music through a mathematical lens is one effort out of many to understand—though never explain—how this remarkable acoustic phenomenon can move us to tears.

SESSION: Session 1

Weighted Refinement Types for Counterpoint Composition

Refinement types are useful for describing specifications of programs. When applied to music theory, however, refinement types are too restrictive in that they do not allow breaking of rules. To relax this restriction, we propose weighted refinement types, a variation of refinement types where each refinement predicate carries a weight representing the importance of that predicate. In this paper, we present a weighted refinement type system that has core features required for composing species counterpoint. We also discuss potential applications of weighted refinement types in non-musical domains.

The Beauty and Elegance of Functional Reactive Animation

It has been over 20 years since Elliott and Hudak published Functional Reactive Animation, which outlined the principles of interactive programming in functional languages. As a result, Functional Reactive Programming (FRP) has seen numerous implementations and has been applied to multiple areas, like robotics, physics simulations, game programming and user interfaces. The use of the term FRP has itself broadened, and nowadays covers both continuous-time purely functional abstractions and discrete-time reactive implementations. This paper presents a series of increasingly complex FRP animations in a current implementation. With a main focus on clarity and meaning, we explore three independent dimensions: space, time, and color. We demonstrate that, when embraced fully, Functional Programming can result in declarative constructs that are aesthetically beautiful and notationally elegant.

Demo: A Functional EDSL for Mathematics Visualization That Compiles to JavaScript

Visualizations are a critical part of mathematics practice and education, and computers and open-source web technologies provide accessible ways to create high-quality mathematics visualizations at virtually no cost. However libraries and languages to create visualizations for mathematics are typically fine-grained, low-level, and targeted to vector graphics domain experts or web developers, not mathematics students or teachers or end-users. We present demos of Sylvester: a functional domain-specific language interface to the JSXGraph visualization library embedded in F# that emphasizes readability, composability, and the ability of end-users to easily create and manipulate elements of high-quality interactive mathematics visualizations without needing vector graphics or web development domain knowledge.

SESSION: Session 2

Exploring Self-Embedded Knitting Programs with Twine

We examine how we might explicitly embed the intricate details of the fabrication process in the design of an object; the goal is for the programs that manufacture the object to also produce themselves within the object. We highlight how concretizing the design process of an object in the real object can help reconstruct items and remind us of the reality that all objects must be manufactured, incurring labour and environmental costs. By drawing inspiration from self-reproducing programs, we outline a new self-decoding language design centred around quines for knitting, a versatile technique in fabric construction, with both historical significance and recent advances in programmable whole-garment machines for their manufacture. We show some preliminary results of using this language design to create knitted quines, and discuss how this interesting question might be further advanced.

Homotopy Type Theory for Sewn Quilts

This paper introduces PieceWork, an imperative programming language for the construction of designs for sewn quilts, whose semantics are inspired by Homotopy Type Theory. The goals of PieceWork include improving the diversity of sewn designs that can be represented in computational methods, demonstrating a creative application of Homotopy Type Theory, and demonstrating that the craft of quilting is a worthy object of study in programming language theory. We develop an operational semantics, provide a prototype implementation and examples, and provide initial theoretical results. Type system design is in-progress.

Demo: Sonic Catalog of Rare Diseases

This 15-20 minute demo presents our work in progress, a sonic catalog of rare diseases, along with prior work of data- driven music based on genetic sequences from SARS CoV-2. These data-driven compositions are created from spread- sheets, imported into Max and Kyma, and mapped to musical sound.