UW CSE
Winter 2004
CSE467 Advanced Digital Systems Design

Lab # 8

DUE: You will have until 5:00PM on Friday, March 12, to complete this lab assignment

Late Policy:
 Assignments handed in after lab will incur a 10% penalty for each day late.

Collaboration Policy:
Unless otherwise noted, your group may collaborate with other CSE467 groups on the lab assignments. Collaboration means that you may discuss the experiments and make notes during the discussion, but you may not copy another group’s work when doing the experiments; you may not copy experimental results from another group; and you may not copy any part of another group’s lab report. In addition, every individual in a group must understand the experiments, must participate in the writeup, and should understand the results. Collaboration does not mean that one person may perform the experiments and another write up the results – all lab partners must share equally in all parts of the lab assignment.

Project Groups:
Please see the home Web page for the list of project groups.  You will be working as a project team for the rest of the quarter.

Overview:

In the previous lab, you completed the basic physical model of a string based on a digital waveguide.  We are now ready to extend this to make a more interesting “instrument”.  We will do this in two different ways.

Extension #1

The first extension is to add is a more complicated filter onto the output of the string model, which will model the resonance of the instrument the string is attached to.  This is done using the BiQuad filter which is shown in the following figure (Figure 3.11, page 32 of Perry Cook’s book). We won’t teach you Z-transforms, but the figure shows how to compute the parameters based on the resonant and antiresonant (canceling) frequencies, where T = 1/f.  rp and rz are typically .95 - .99 (rp has to be less than 1) and g must be set to keep the gain of the filter below 1.

 

 (Figure goes here)

 

As we saw in class, the BiQuad filter has feedback, aka loop-carried dependencies, so it is not easily pipelined. You should retime your circuit to get good performance; however, you may still need more than one clock cycle to produce a sample.  By adding several BiQuad filters tuned to different frequencies, you can produce very different sound qualities.  You might even want to experiment with BiQuads in the waveguide itself. Figure 9.7, page 102 of Cook shows a “fairly complete digital filter simulation of a plucked-string system”.

Implement your BiQuad filter(s) with an enable, which can be used to bypass the filter completely.  By attaching this to a switch, you can easily see what difference the filter makes to the output tone.  As an extra feature, you could change the filter coefficients dynamically using a couple keys to increase/decrease the coefficient.  In this case, you can use the keypad to help design the filters instead of playing different notes.

Extension #2

Most interesting instruments have several strings that can be played simultaneously. In this extension, you will implement 4 (or more) strings that can be played simultaneously, each with a different note. You will decide how to play several notes at a time.  One way is to define a chord for each key.  Another is to play notes on successive strings so that by playing several keys quickly in succession, they are played at the same time.  Or you may have other ideas.  The key is to be able to demonstrate multiple notes being played simultaneously.

 

 

Demonstrate your final project instrument, which should play multiple notes simultaneously, with “interesting” tone quality added via the BiQuad filter.  Use the enable input on the filters to demonstrate the sound with and without the added BiQuad filters.

 

TA Signature: ____________________________________________________________________