(Ab)using a monadic screen-presentation EDSL as a just-intonation synth pad controller
The Yeamer library is an experimental project for writing powerpoint-like presentations directly in Haskell (similarly to LaTeX’ beamer style). As a by-product of its monadic architecture, which allows not only a sequence of full slides but also interactivity anywhere within a slide, it gives a simple means of exploring even recursive / fractal structures, lazily.
The interactive operation can be used for triggering sounds and thus playing music, i.e. explore the space of harmonically-related notes. Perhaps not that commonly known, this space is actually infinite: a note of frequency ν is harmonically related to notes with frequency r·ν, where r is a small integer ratio. (Small integer ratios are readily picked up by the ear as sounding consonant, because after a couple of cycles the signals will always re-synchronise). This is called just intonation.
In Western music, the ratios used are
- The octave, r = 2
- The perfect fifth, r = 3⁄2
- The major third, r = 5⁄4
and compounds of them, from which all standard harmony can be constructed.
In practice, Western instruments like guitars or piano don’t actually use these exact ratios, precisely for the reason that (even within the finite range of audible frequencies) infinitely many different notes can be constructed from the three generator ratios. The only instuments that fully support this are fretless strings, trombones etc., which make it the player’s responsibility to fine-intonate the pitch.
Discrete-pitch instruments instead use a mathematical approximation (a temperament, specifically the 12-edo temperament), namely they approximate 3⁄2 by 27⁄12 ≈ 1.498 and 5⁄4 by 21⁄3 ≈ 1.260. As a result, any compound interval then lies on a discrete grid which divides the octave into twelve equally-spaced steps (on a logarithmic scale). The price to pay for this simplification is that harmonies never sound quite as consonant as they would in just intonation. Furthermore, microtonal intervals (e.g. based on factors 7⁄4 or 11⁄8) are precluded right from the start. Such intervals occur e.g. in Indian music, which achieves them by using fixed, but non-equally spaced steps, which allows for elaborate melodies but not a lot of harmonic movement.
Attempts to combine the features of such Eastern traditions with the symmetries found in Western music without needing continuous-pitch instruments focus mostly on other (usually finer) equally-spaced grid approximations, such as: the 31-edo temperament that was endorsed by Christiaan Huygens and Adriaan Fokker, the α-, β- and γ scales by Wendy Carlos, or the Bohlen-Pierce tuning. All of these either require very many steps and thus rather unwieldy to play instruments, or they sacrifice the support of traditional Western melodies.
These problems don’t arise if the instrument’s UI can unfold the infinite space of just-intonation ratios on demand. This is basically a lazily evaluated ternary tree. A free-monad⊗monoid architecture such as the one used in Yeamer easily allows expressing this, and offers both a very concise programming DSL and a reasonably convenient graphical playing interface. And although it is not as expressive as a purpose-build GUI could be, it still allows much more dynamic response than a simple folding-tree viewer would, because the monad is actually realised as a transformer and can thus be linked with any Haskell IO action, in particular timing information.
This demo will use Yeamer to construct the fundamental intonation ratios, and thus show how many common musical scales arise from very basic mathematics.
Geophysicist, Haskell hacker and musician.
Always in search of ways to bridge the gaps between these disciplines – in particular, bringing nice constructive, well-typed FP techniques to physics.
I’m currently writing a master’s thesis on the magnetic field of Neptune.
Sat 29 SepDisplayed time zone: Guadalajara, Mexico City, Monterrey change
13:30 - 15:10 | |||
13:30 25mResearch paper | Programming-by-Example for Audio: Synthesizing Digital Signal Processing Programs FARM Mark Santolucito Yale University, USA, Kate Rogers Yale University, USA, Aedan Lombardo Yale University, USA, Ruzica Piskac Yale University, USA DOI Pre-print | ||
13:55 25mTalk | Call For Collaboration: The Vecosek Ecosystem FARM Sebastien Mondet Mount Sinai - Hammer Lab | ||
14:20 25mDemonstration | Musical Steganography: Hiding Things in Music FARM Scott Fradkin Flexion | ||
14:45 25mDemonstration | (Ab)using a monadic screen-presentation EDSL as a just-intonation synth pad controller FARM Justus Sagemüller Universität zu Köln, Institut für Geophysik und Meteorologie |