Computers and Music
When / Where
MWF 9-9:50AM / J.C. Long 220
What do Radiohead, J.S. Bach, and Pythagoras have in common? They have explored the connection between music and numbers. If you are interested in connecting your right (intuitive, visual, musical, artistic, innovative) brain to your left (rational, analytical, logical, sequential, and mathematical) brain, this course is for you. We will explore the creative side of computing in the context of music, sounds, and other digital artifacts. We will learn about media modeling and computational thinking in the liberal arts and sciences. We will develop several digital artifacts. Some experience with a musical instrument is helpful but not required.
Course is open to all majors. No previous programming experience required.
- Test 1: Monday, Sep. 28, 2009
- Test 2: Friday, Nov. 20, 2009
- Final: 8-11am, Friday, Dec. 11, 2009
|Homework #1 is now posted.|
Readings & References
- Researchers play song recorded before Edison. The 10-second recording of a singer crooning the folk song “Au Clair de la Lune” was discovered earlier this month in an archive in Paris by a group of American audio historians. It was made, the researchers say, on April 9, 1860, on a phonautograph, a machine designed to record sounds visually, not to play them back. But the phonautograph recording, or phonautogram, was made playable — converted from squiggles on paper to sound — by scientists at the Lawrence Berkeley National Laboratory in Berkeley, Calif.
- The reactable hardware is based on a translucent, round multi-touch surface. A camera situated beneath the table, continuously analyzes the surface, tracking the player's finger tips and the nature, position and orientation of physical objects that are distributed on its surface. These objects represent the components of a classic modular synthesizer, the players interact by moving these objects, changing their distance, orientation and the relation to each other. These actions directly control the topological structure and parameters of the sound synthesizer. A projector, also from underneath the table, draws dynamic animations on its surface, providing a visual feedback of the state, the activity and the main characteristics of the sounds produced by the audio synthesizer.
- The Princeton Laptop Orchestra (PLOrk) is a newly established ensemble of computer-based musical meta-instruments. Each instrument consists of a laptop, a multi-channel hemispherical speaker, and a variety of control devices (keyboards, graphics tablets, sensors, etc.).
- Birds on the Wires - Reading a newspaper, I saw a picture of birds on the electric wires. I cut out the photo and decided to make a song, using the exact location of the birds as notes...
- Intro to Fractals from Wikipedia.
- Interactive Mandelbrot Set - user interface allows to zoom in at different areas.
- Richards R. (2001), "A New Aesthetic for Environmental Awareness: Chaos Theory, the Beauty of Nature, and our Broader Humanistic Identity". Journal of Humanistic Psychology, Vol. 41, No. 2, pp. 59-95.
- Spehar, B., C.W.G. Clifford, B.R. Newell, and R.P. Taylor. (2003). "Universal Aesthetic of Fractals." Computers & Graphics, vol. 27, pp. 813-820.
- Chazelle, B. (2006), "Could you iPod be Holding the Greatest Mystery in Modern Science?", Math Horizons, vol 13, April 2006. Algorithmic thinking is likely to cause the most disruptive paradigm shift in the sciences since quantum mechanics. The big ideas revolve around universality, duality, and self-reference.
- CofC Library resources related to Computers, Music, and Art.
- An introduction to pair programming. This 9-minute video describes what pair programming is, the do's and don'ts of effective pairing, and the pros and cons of pair programming. Here is the accompanying worksheet.
- Intro to Python
- Yue-Ling Wong, Digital Media Primer.
- Michael Hewitt (2008), Music theory for computer musicians, Course Technology, CENGAGE Learning, Boston, MA.
Artifacts & Rules
- Sounds - find sound effects and musical instrument samples.
- Scratch environment intro video, and image effects video. Also Getting Started (PDF), and Reference Guide (PDF).
- Audacity is free, open source software for recording and editing sounds. It is available for Mac OS X, Microsoft Windows, GNU/Linux, and other operating systems.
- MuseScore is a free, graphical WYSIWYG music score writer with support for score playback and import/export of MusicXML and standard MIDI files. Percussion notation is supported. It has a clean user interface, with fast note editing input (similar to the popular commercial packages, Finale and Sibelius).
- jMusic is a programming library written for musicians. It is simple enough for newbie programmers but sophisticated enough to enable composers to accomplish real work, whatever form that may take. jMusic is designed to be used as a compositional medium, therefore it is primarily designed for musicians - not computer programmers. However, many people find jMusic useful for music software development, in particular for digital instrument making.
- Documentation on jMusic, MIDI, and music notation.
- Windows: Download Jython + jMusic bundle: jython and jMusic (4MB) or jython, jMusic and Java Runtime (16MB).
- Mac OS X: Download Jython + jMusic bundle: jython and jMusic (4MB).
- MIDI: bing.py, myFavoriteMelody.py, stochastic.py.
- Audio: sonOfBing.py, audioReadWrite.py, audioVisualize.py, audioDrums.py (samples for hihat, open hihat, kick, and snare).
- Change frequency: audioChangeFrequency.py (try with sample of a 440Hz sine wave)
- Reason emulates a rack of hardware synthesizers, samplers, signal processors, sequencers and mixers, all of which can be interconnected in arbitrary ways. Reason can be used either as a complete virtual music studio, or as a collection of virtual instruments to be played live or used with other sequencing software.
- ChucK is a new (and developing) audio programming language for real-time synthesis, composition, performance, and now, analysis - fully supported on MacOS X, Windows, and Linux.
- Also see the miniAudicle - a light-weight integrated development environment for the ChucK digital audio programming language.