# What we have provided
- "percussion-buffers", a small patch which reads nine percussion sound files into nine buffers.
- "simple-sampler~", a straightforward sample-playback synthesis patch based on play~. There is also a help patch that shows how to use simple-sampler~.
- "simple-draw.maxhelp" draws triangles, squares, and circles into an LCD object.

# Your assignment

Using the audio and visual patches provided, build a four voice poly-rhythmic metronome.

Hint: Use the metro object.

This poly-rhythmic metronome should allow the user to control independently the tempo of each voice/lcd. A mechanism for synchronization among the voices should also be provided. Consideration should be given to the user interface and the rhythmic experimentation it facilitates.

# Possible extensions

Once you have completed today's activity, feel free to try any of these additional projects...

- Modify your polyrhythmic metronome so that each voice can be controlled by specific keys, or the mouse.

- Modify your polyrhythmic metronome so that it has a single master metro object at a very fast rate, and each voice triggers a note after a given number of ticks of the fast clock. (Hint: use the counter object with the select object.)

- Modify simple-sampler~ so that if the user sends zero as the duration of the note, it plays the entire sample. Hint: use the info~ object.

- Modify simple-sampler~ so that it applies an amplitude envelope to each sample that it plays. Hint: use the line~ object.

- Modify simple-sampler~ so that the user can specify an offset into the sample from which to play. (For example, it should be possible to start from 300 milliseconds into the buffer~ instead of at the very beginning.)

- Explore some of MSP's other objects for playing samples from buffer~s: groove~, index~, wave~, and also sfplay~. Make new sample-playing abstractions based on these objects.

- Explore the LCD. Add more shapes to your metronome.