• Architectures

    • Linux
    • Mac OSX
    • Windows
    • Android
    • iOS
    • Raspberry Pi
    • Arduino
    • Tiny OS
  • Languages

    • C
    • C++
    • Java
    • Python
    • Javascript
    • Clojure
    • Lisp
    • Scheme
    • ChucK
    • Sonic Pi
    • NESC
  • Environments and Tools

    • Pure Data
    • Max/MSP
    • RTcmix
    • ChucK
    • Processing
    • Common Music
    • Fluxus
    • Overtone
    • Emacs
    • Eclipse
    • Git
    • JUCE

Torch Sung

Torch Sung is a collaboration between poet B.J. Best and composer Joel Matthys exploring Machine Learning algorithms and generative art.

A machine learning algorithm, torchrnn, generates original poetry based on the works of B.J. Best. The poem in turn generates original images using attngan, another machine learning algorithm. The image is used to create generative music, and the music data is used to generate a 3D sculpture.

Torch Sung consists of five pieces, each consisting of a poem printed on vinyl scrim, an image on canvas, a headphone station playing the generated music, and a 3D sculpture.

Your browser does not support audio playback. What are you using, Netscape?? Your browser does not support audio playback. What are you using, Netscape??

Counterpoint Checker Plugin for MuseScore

A comprehensive proofreading plugin to find counterpoint errors in species or free counterpoint.

The source code and latest releases can be found at can be found on GitHub.

If you find this plugin useful in your role as teacher or student, please consider donating to support further development.

swe~: Swiss Ephemeris in Pd

Swiss Ephemeris is a function package of astronomical calculations that serves the needs of astrologers, archaeoastronomers, and, depending on purpose, also the needs of astronomers. It includes long-term ephemerides for the Sun, the Moon, the planets, more than 300’000 asteroids, historically relevant fixed stars and some “hypothetical” objects.

swe~ allows computer musicians to access astronomical data for musical purposes.

swe~ can be found on GitHub.

Latido

Latido is a cross platform game for learning rhythm and sight singing. With over 400 built-in melodies and rhythms, and tools for classroom management, Latido is in use at several universities and high schools.

Latido was created with Processing (Java) and Pure Data, a powerful signal-flow audio language.

Latido can be found at http://latido.matthysmusic.com.

CMIXIDE: Integrated Editor for RTcmix audio language

RTcmix is in need of an easy-to-use editor for RTcmix. This is a start, though the actual RTcmix binary must still be compiled locally.

Written in Python Tkinter.

Browse the source

ChuGins: Custom UGens for ChucK

New ChucK Unit Generators implementing high quality reverb, pitch tracking, FFT-based delays and eq, and LADSPA plugin capability, mostly adapted from RTcmix or Pd. Soon to be incorporated into ChucK master project source.

Update: my ChuGins have been incorporated into the main Stanford CCRMA ChuGin distribution on GitHub.

rtcmix~ for Pd

RTcmix is a real-time software language for digital sound synthesis and signal processing. Using a lightweight C-like syntax, it includes Perry Cook and Gary Scavone's Synthesis Toolkit, as well as advanced and unique signal processing instruments created by Brad Garton, John Gibson, Mara Helmuth and many others.

Run as a PureData external, RTcmix can be integrated with Pd's great patching and routing functions. It is also easy to distribute as a prepackaged binary, potentially reaching a wider audience.

This project is based on Brad Garton's rtcmix~ 1.81 for Max/MSP.

Download binaries Browse source

Simple Kalman filter for Pd

Kalman filter for Pd

A Kalman filter is an effective tool for filtering noisy data, such as that coming from an accelerometer or gyroscope. The math gets really thorny for 2, 3, or more independent variables (like a 3-axis accelerometer), but a simple 1d Kalman filter is not too hard to implement and can really help clean up data. I'm using it to refine the data coming from laptop tilt sensors for my composition "Tipping Point."

Browse source

Sensor-enabled Yo-yos as New Musical Instruments

An interactive and reprogrammable musical yo-yo system is designed to demonstrate the feasibility of converting any sensor-enabled objects into potential musical instruments. This involves three design phases. First, the physical yo-yo is designed to house Iris sensors. The software is developed to sense the movement of yo-yo and transmit its measurements to Max/MSP for corresponding music generation. Finally, aurally pleasing and real-time musical sounds are designed and generated in effect of yo-yo by the computer music composer.

Read demo abstract

OSCnotation for Android

Live music notation via OSC messages. Based on OSCnotation for iOS by Sylvain Poitras

Free download from Google Play

Accordion++

Part of the mission of the contemporary composer is to develop new musical instruments, and new ways to use existing instruments. As a skilled accordionist and computer music programmer, I plan to create a new instrument which will allow me to extend my accordion performing skills through electronic controls. I wish to augment my own accordion by building additional computer button controls, condenser microphones, an accelerometer and gyroscope to sense motion, and a pressure sensor to detect bellows movement. My goal is to create a new digital instrument with potential for custom musical applications in my own composition and improvisation. I also hope to present my research at the annual NIME (New Interfaces for Musical Expression) conference.

The field of instrument design has been embraced by contemporary composers including John Cage, Harry Partch, David Tudor, and Mark Applebaum. The writings of Sergi Jordà, Daniel Arfib, and Mark Marshall suggest new possibilities for digital instrument design. International organizations such as NIME and EMI (Experimental Musical Instruments) explore the field of modern instrument design. The accordion has achieved a prominent role in electro-acoustic music. Contemporaryaccordionists Guy Klucevsek and Margit Kern have developed a considerable repertoire of experimental music for accordion. Composer Pauline Oliveros commonly performs with accordion, and has even worked with altering the accordion's sound via electronic means. But Oliveros' work involved modifying only the sound of the accordion, not the instrument itself. The unique interface of the accordion, with its ability to modulate tone and volume through pressure, as well as the relatively large case and numerous buttons, makes it an ideal candidate for digital augmentation.

The ultimate goal of creating a new instrument is the development of new pieces of music, and new ways of performing. Upon completion of the modified electronic accordion, I will explore the musical potential of the instrument by creating one or more new compositions for extended accordion. One planned composition will use the newly installed buttons to trigger the computer to start and stop recording the accordion's sound into looping buffers, which can be layered to create sound masses. These sound masses may then be altered by tilting or shaking the accordion, as sensed by the gyroscope and accelerometer, or by squeezing or pulling on the bellows, as sensed by the pressure sensor. The buttons may also control the parameters of live granular synthesis. Ultimately I hope the extended accordion will be an instrument I can use for a lifetime of composing and performing electro-acoustic music.

The project involves inserting various electronic controls inside the body of the accordion. The bass section of the piano accordion has 120 keys arranged in six rows. I intend to replace the bottom two rows with 40 electronic push-button switches.

accordion

These will be attached to a Teensy microcontroller inside the body of the accordion, which transmits the button presses to the computer via USB. In the computer, these button presses can be programmed to control musical gestures in any number of programming environments, including Pure Data, ChucK, Processing, or Common Music. (Once the design is stable, I may opt to replace the USB connected with an RF transmitter to allow wireless control.) Using condenser elements, piezo sensors, or both, I will place a microphone in the body of the accordion, allowing the instrument to be amplified directly. This will produce an idiosyncratic sound, potentially far richer than a typical accordion sound because the microphone will be enclosed inside the body of the instrument, close to the sound-producing reeds. It will also make it easier to perform live amplification and computer processing because the enclosed microphone will be less susceptible to undesirable feedback. Digital motion sensors, including a 3-axis accelerometer, a gyroscope, and a pressure sensor will be connected to the Teensy microcontroller to transmit physical motion data to the computer.

  • Week 1: modify existing accordion case to accommodate electronics
    • drill holes in case for new buttons
    • cut larger holes for USB and audio jack mounts
    • mount 40 buttons in accordion bass
    • solder buttons into place
  • Week 2: mount and configure Teensy microcontroller in body
    • multiplex wires for connection to microcontroller
    • write code to translate button presses in computer
  • Week 3: mount microphones, pressure sensor, and accelerometer in body
  • Week 4: write computer code for interface between accordion and computer
  • Weeks 5-8: test accordion sensor data and develop new musical composition(s)

The Unicorn

unicorn

The Unicorn is a multimedia work I created with RTcmix and libpd, available as an Android app. The text is from Physica by Hildegard of Bingen.

Free download from Google Play

Twitter Mesostic Maker

Twitter Mesostic

In honor of the John Cage centennial, I made this little app that polls Twitter for a selected search phrase and uses the results to construct a mesostic poem. I am currently working to convert this into an Android app.

Python Mesostic Maker

Construct an automatic mesostic of a text file. Useful for a Cage-style mesostic read-through. Try it on a book from Project Gutenberg.

Browse source