For your first project, you will create your own customizable instrument. Many instruments are limited by their physical structure, but the iPad offers many opportunities to create unique and powerful new musical tools. Using the Pure Data programming language, you will work with a team to create your own audio engine that will give you the experience required to build a larger, more advanced application later in the semester.

Minimum Requirements

You have very few required features. You must implement:

  1. A synthesizer in Pure-Data that accepts MIDI note-on & off messages and translates them to audio played through the speakers. The synthesizer must also have volume controls.
  2. At least one audio effect. Pan does not count as an audio effect. Examples include: Tremolo, Chorus, Delay, Flanger, etc.
  3. The ability to display at least 10 unique playable notes on the screen. You must also be able to add new notes and remove existing ones.
  4. Use of least one gesture other than a single tap. It is up to you what this gesture will control. Examples include: swipes, double-taps, long presses, etc.
  5. The ability to reposition notes anywhere within a given region that you set. This region must be able to hold 10 notes.

"One More Thing"

Your team must also implement one or more of these extra features to further your understanding of this development environment:

  1. Multitouch Capabilities. Note that if you design your app well, this is trivial to implement.
  2. Updating note settings without deletion and recreation.
  3. Multiple preset options
  4. Vibrato
  5. Multiple sounds options for notes (e.g., multiple waveforms, samples, etc)
  6. Data persistence
  7. Visual feedback when a note is playing or in some non-default state.

Tips, Hints, and Recommendations

  1. START EARLY. You have 6 weeks to complete this assignment. The project may not seem that big but it will likely take more time than you expect, especially if you are unfamiliar with Pure Data or data flow programming in general.
  2. Almost all of your questions can be answered by the Apple Developer Library or Pure Data resources found online. You will need to do some individual research in order to complete this assignment.
  3. Be creative! The requirements are open ended to give you as much freedom in designing this app as possible. The less conventional, the better! This does not mean that conventional methods are bad, we're just encouraging outside-the-box thinking.
  4. If you get stuck or need some advice, don't hesitate to come to office hours.


You will need to present an initial design for your instrument in class on January 29th. This is to help you think about the app early and to give teams a chance to share interesting ideas. This presentation should not be technical! It must include basic mockups for the app and cover what motivated your design choices.

There will be another presentation before the project is due at a date TBD. The point of this presentation is for us to gauge your progress and give advice for completing the assignment. The project is due on March 5th, where you will demo your app to the class.

Submitting Your Work

You will need to make your code available for us to inspect via GitHub. Each team will be GitHub repository that is private to your team and to the instructors. If you are unfamiliar with Git or GitHub, Connor will be holding a presentation on them at a date TBD. You will need to know the basics and a little practice will go a long way to make team development easier.


Team 1

Team 2

Team 3

Team 4

Team 5

Team 6

Team 7

Team 8