## Assignment 1 Solutions32 points total, creative assignment graded separately. 1) (8 points, 2 for each correct answer) What is the speed of sound in air? Give this in meters/second, feet/s, miles/hour, and one other obscure metric of your choice (example obscure metrics: angstroms/year cubits/nanosecond). 331.45 meters/second (330 close enough), 1116.4 ft./sec, I like 1100, (some people use 1000 as "pretty close") 761.18 MPH 1 furlong = 660 feet, 1 fortnight = 14 days = 1209600 seconds yielding a speed of sound of 2046056.72 furlongs/fortnight An obvious unit is also 1.0 Mach, which is the speed of sound Give the speed of sound in water in meters/second. 1482 m/s at 20 degrees C, varies with salinity, density (sea level vs. not), and temperature. 2) (2 points) How far does sound travel (in air) during the time of one audio sample at CD rate? Give this in cm. 33145 cm/second / 44100 samples/second = .7516 cm / sample at 192000 samples/second we get 0.177 cm / sample 3) (4 points) What is the repetition period (in samples) of a 330 Hz. wave at CD sampling rate? 44100 samples/second / 330 cycles/second = 133.636363 samples/cycle 330 Hz. is closest to a musical E4 22 Hz. has 44100/22 = 2004.54545454 samples per cycle 4) (5 points) What's the approximate QSNR of 8 bits? 6 bits? 10? 12? 16? Use quantize.c to process a couple of short high quality sound files (see course directory or get your own) and listen to each of these quantization levels on good quality speakers, or better yet headphones. Use approx. rule of 6dB per bit: 8->48, 6->36, 10->60, 12->72, 16->96dB 5) (10 points. 4 for plausable thought. 3 for correct peaks/nulls. 1 for plot. 2 for 1/2 frequency solutions) Given the slight speed of sound variance with temperature, humidity, etc., we can use 2' as wavelength. If we say the origin is at the point midway between the two point sources, then they're in phase along the line connecting them at x = 0, +/- 1.50 (right in front of either speaker), and infinity and out of phase at x = +/- 3.72 Technically the waves don't actually completely cancel, because there's a 1/distance loudness change, but there are nulls. These happen whenever the path difference is a half-wavelength. If we halve the frequency, the same arguments apply, but the wavelengths double, giving us a similar set of peaks/nulls, but spaced much farther apart. Here's a stupid ChucK program to help calculate this: 0.0 => float x; 0.0 => float eval; 0.0 => float lastEval; 1.0 => float diff; // Set this to half wavelengths, or full wavelengths while (x < 200.0) { Math.sqrt(4*4+(1.5+x)*(1.5+x))-Math.sqrt(4*4+(x-1.5)*(x-1.5)) - diff => eval; if (eval*lastEval < 0.0) <<< x, eval >>>; // Find a zero crossing eval => lastEval; 0.01 +=> x; } 6) (2 points for a good explanation of beats) Type in, compile, and run this code. Listen to the file, and look at it in Goldwave or other waveform viewer/editor. Explain what's happening. BEATS!!! (Constructive and Destructive Interference) In ChucK, in ONLY 4 Lines!! SinOsc s1 => dac; SinOsc s2 => dac; ((500.0 => s1.freq) + 1.0) => s2.freq; 20.0 :: second => now; 7) (3 points for this description of modified code) Modify srconvrt.c or timeshif.c to do something interesting and new. Write up what you did, and use the capability in the next part of the assignment. FUN!!! 8) ART!! |

Back to Schedule