Roger B. Dannenberg

Home Publications Videos Opera Audacity
Dannenberg playing trumpet.
Photo by Alisa.

Projects - Spring 2025


Summary

I wrote this to share with students and prospective students what I’m working on, and interested in working on, during the next year. This is an update and revision of Projects - Spring 2023.

About the Author

Roger B. Dannenberg is Emeritus Professor of Computer Science at Carnegie Mellon University. He is known for a broad range of research in Computer Music, including the creation of interactive computer accompaniment systems, languages for computer music, music understanding systems, and music composing software. He is a co-creator of Audacity, perhaps the most widely used music editing software.

Internships

If you are looking for an internship, I cannot offer a salary or cover travel expenses, but I have some funds for minor research expenses. Since Covid, I have been working remotely from home.

Ph.D.s

If you are looking for a Ph.D., CMU is a great place, but I'm no longer taking new students. Chris Donahue joined our faculty in fall 2023 and is active in music-related computer science research, teaching and advising.

I receive a lot of requests for internships and supervision. Prospective interns and Ph.D.s should read the sidebar at left. Here’s what I’m doing and thinking about these days.

O2

O2 is a network protocol especially for music control. It is intended to be an OSC “do over” given that even tiny low-cost controllers can communicate using IP, and also given what we’ve learned from experience with OSC (Open Sound Control).

Mainly, O2 introduces discovery so users do not have to type in IP addresses and port numbers. O2 also supports clock synchronization, timed message delivery, and some publish-subscribe capabilities. O2 is also global in the sense that discovery is not limited to the local area network. O2 works over Web Sockets to connect to in-browser applications, and through shared memory for low-latency applications such as interactive audio applications.

What comes next are some extensions and further work to make O2 even more complete and interesting. These are some potential projects:

Symbolic Music Analysis

The AMADS project (Algorithms for Music Analysis and Data Science) is creating reference implementations of many symbolic music analysis algorithms from the music theory literature for tasks such as key finding, contour analysis and classification, pitch distributions, and chord labeling. There is always room for contibutors. The main task is: find an algorithm in the literature that has not been ported, re-implement the published algorithm as accurately as possible, write documentation, write some tests, write a example to show how to use it, submit for inclusion into our repo.

Arco

Arco is a framework for building interactive real-time music systems based on O2 for communication with an audio server or library. It is usable now, but could use further development along these lines:

Accomplice and Computer Accompaniment

I have implemented Accomplice, a computer accompaniment system for keyboard performances (using MIDI). Accomplice matches a live keyboard performance to a score, estimates the score location and tempo, and plays a MIDI file (also other formats for O2 and OSC messages) in synchrony.

There is room for improvement and further research:

Global Drum Circle

I'm working with a small group now to develop an online drum circle experience. Latency is a big issue, and our approach is to organize drumming into cycles of 4 or more measures. Locally, you hear your own drums immediately, but you hear everyone else's drums with a 1-cycle delay, e.g. 4 measures later than they were played. Similarly, everyone else hears your drums 4 measures later than when you actually played them. Experience has shown that there has to be a reference such as bass drum hits in order to allow the tempo to “lock in.”

I've mapped out a number of interactive scenarios such as call-and-response, follow-the-leader, alternating group and solo play, etc., and we've done some prototypes and testing, so I believe it is possible to make drumming online an enjoyable experience.

We have been iterating on interface ideas, then testing with a small group online, and could use more help from an interested developer that knows Javascript.

Ultimately, we hope to scale up to multiple drum circles around the world that run 24/7 and where people can join and leave, and depending on how many participants are online, drum circles can split and merge.

Web Audio Soundcool

Soundcool is a software-based modular synthesis system that is very easy to use. I’m working with an international team to port Soundcool to Web Audio, Javascript, and React so that users can play with Soundcool just by visiting a free website. Things are currently stalled due to the fact that versions of React and Node.js become obsolete faster than we can integrate the changes. A good web developer with some time could pull this together.

Computer Music Archeology

There are some early works in music composition that, rather than relying on sophisticated machine learning, simply implemented very insightful rules or algorithms of music theory and music composition. I've tried to understand what’s going on in these programs, because many of them outperform the so-called “state-of-the-art” methods that have become popular recently. Some efforts to recreate some of this early work could be very interesting and allow better understanding as well as additional experimentation. I am particularly interested in understanding the scope of output (does the software always write a variation of essentially the same song, or does the output have a range of ideas and forms?) as well as what is musically important (what’s more important: pitch, rhythm or form? And when is careful selection better than random choice?) This could lead to advances by revealing forgotten secrets of music.

Music Patterns and Music Models

Music structure is critical, but not well understood. I‘ve worked with students to implement music prediction models. Our claim is that while there are general tendencies in music (e.g., small pitch intervals are more common than large intervals in melody), there are also important local tendencies. For example, the first few bars of Beethoven's Fifth Symphony tells you much more about the next few bars than general knowledge of all classical music will tell you.

Our hypothesis is that by identifying patterns and repetition in music we can create better models for music generation and listening. Our approach is based on prediction: We rate models on their ability to predict the next element in a sequence (of pitches, durations, intervals, or whatever), and we measure this quantitatively in terms of entropy.

The actual work here consists of gathering and pre-processing music in machine-readable to form datasets, writing and debugging models, and running experiments to evaluate different models and parameters on different datasets. I think the next step will be coding and evaluating ad-hoc models that are based on common music ideas and structures.

Coda: Machine Learning and Music Generation

Many students write to say they know all about machine learning and would love to come to be interns. I can understand the excitement and enthusiasm. Unfortunately, my experience is that by the time students “tool up” and get enough experience to tackle some real problems, most of a summer or semester (or 2) has gone by, and there’s no time to make any advances. I would not say this is a bad area for research, but it seems that most of the obvious things are already done (and a great deal more). When the low-hanging fruit is gone, you really need a ladder or some secret advantage, whether it is a supercomputer, experience and insight, or just a good novel idea. I do not feel I can offer that now to undergrads in search of a quick but rewarding research experience. Many of the other topics listed above have some potential for completing something interesting and even publishable in a couple of months, but if you are only excited by machine learning applications, you should follow your heart and passion. That is where you will find the greatest happiness and accomplishments.


© 2025 Roger B. Dannenberg