Bill Manaris : Fall 2011 / CSCI 180 Final Project

Section 1:

Presentation / Performance: 8-11am, Friday, Dec 9

Section 2:

Presentation / Performance: 8-11am, Saturday, Dec 10

Last modified on December 06, 2011, at 02:10 PM (see updates)

(This project has been co-developed with Prof. Blake Stevens, Music Dept.)

This is a pair-programming project (i.e., you may work with one partner). You may discuss the assignment only with your partner or the instructor.


Compose an interesting piece of music through the sonification of an image.

This assignment focuses on:

(It is OK to use more than one image, if you wish.)


In the pluralistic musical culture of present moment, in which many "languages" or "dialects" are spoken simultaneously, it is worth thinking about how composers can find a distinctive musical language that is new, personally meaningful, and "beautiful." This is one of the central questions any composer or "organizer of sound" must face: what musical material will I work with? Diatonic (Arvo Pärt)? Chromatic (Pierre Boulez)? Continuous sound (as Pierre Schaeffer and Edgard Varèse each did, with dramatically different results)?

Arvo Pärt has been able to achieve something "new" while speaking a diatonic language and working within the tradition of minimalism.

For example, take some time to listen closely (with headphones) to some of Pärt's music:


Select a digital image that you find beautiful or compelling. Create a musical realization of this image using jythonMusic. You should design the musical parameters (pitch, dynamics, timbre, panoramic, etc.) through which this image will be realized in sound, with reference to one of the musical traditions discussed in class:

For Section 1 this would be Expressionism (atonality), Serialism, Aleatory Music, or Minimalism. In other words, your composition should reflect knowledge of one of the principal musical "languages" or "dialects" spoken in the recent past and in contemporary music.

For Section 2 this would be any musical tradition (including Jazz, Rock, and Ambient).


  1. You could use only part of the image, or different parts of the image for different part of the music. For example, a bass line (low register) may be generated from a single ("rhythmically" interesting) row (or column) in the image. Or, you may create a recurring theme by sonifying a small (interesting) area of the image, and repeating it through Mod.repeat() or Mod.cycle(). Mod.transpose(), Mod.fadeOut(), Mod.elongate(), etc. may prove useful.
  2. Explore high-level structure of your music. Do NOT expect that, just because you selected a beautiful image, everything will fall into place musically.
  3. Explore different possibilities, e.g., identify which image pixels (area? row? col?) will be used or what musical part. One possibility is to experiment with Arvo Pärt's | Tintinnabuli system. I.e., one part of the image can generate a bass tone, another a diatonic arpeggio, another a stepwise melodic line.
  4. Decide ahead of time if you will create continuous, chromatic, or diatonic music (e.g., MAJOR_SCALE). See code samples on student wiki.
  5. It is OK to use either MIDI instruments (i.e., submit a MIDI file), or jythonMusic synthesized instruments (i.e., submit an audio file).
  6. If you submit an audio file, consider converting to MP3 first, to save space on OAKS.
  7. You may also explore using existing sounds (sound fonts) to create a musical instrument to render your music (again, see sample code in student wiki).
  8. Start with a sound picture in mind (i.e., what type of sound you want to produce - major or minor, chromatic, continuous). This will inform the image(s) you select. The parameters in your algorithm should be shaped by both your intended sound idea and the image. As you explore, you may refine your image selection, type of sound, high-level musical structure, etc.
  9. You may add ornamental (non-image generated) musical material (no more than, say, 20% of the overall material). For example, you might generate a low-pitched drone or an ambient background sound to give the composition greater density and color.


Follow the Golden Rule of Style: "A program should be as easy for a human being to read and understand as it is for a computer to execute." [3]

In general, you should comment any variable, obscure statement, block of code, method, and class you create.

Your comments should express why something is being done, as opposed to how – the how is shown by the code.

Top Documentation

Additionally, your code should always include opening comments as follows:

#   Author:     <Your Name(s)>
#   Email:      <Your email address(es)>
#   Class:      CSCI 180, Section 1
#   Assignment: Final Project
#   Due Date:   <The assignment's due date>
#   Certification of Authenticity <remove one of the following>:     
#      I certify that this lab is entirely my own work.
#      I certify that this lab is my own work, but I received
#      some assistance from:  <Name(s)>
#   Purpose: <Provide a simple, yet complete description of the task being
#         performed by this program. It may be several sentences long.>
#   Input: <Provide a simple, yet complete description of the input required
#               by this program.>
#   Output: <Provide a simple, yet complete description of the output generated
#          by this program.>


You will submit your assignment via OAKS/Dropbox. Be prepared to present your work to the rest of the class. Your submission consists of the following:

  1. Your Jython program.
  2. Your Audio or MIDI file. If submitting audio please try to convert it to MP3 first.
  3. Your image(s).

Section 1 - Additional Requirements

Section 1 (FYE learning community) students should also submit:

  1. Composition plan and analysis (written document - MS Word):
    1. List three to five works you have listened to that have informed your composition; one of these works may be a work mentioned in class.
    2. Graphically represent the plan of your composition in a map, flowchart, or other visualization.
    3. Describe your compositional process and goals.


Your grade will be based on how well you followed the above instructions, and the depth/quality of your work.

Relevant Quote

"Any amount of work can be done in any amount of time... only the quality varies." ~Joao Meidanis

(Printable View of