B) I have a tube. It is made of copper. It is a nice tube.
C) The tube is 19 and 7/32 inches long, or about .488156m.
D) After recording an impulse through the tube (see picture of waveform here and hear wav file here), I calculated with snd that the period (time between cycles) of the waveform is .00290 seconds. In this time, the pressure wave travels 2*.488 = .976313m (one full round trip through the tube). Thus, I measured the speed of sound to be
E) Finally, I modeled the particular resonance of my tube (1 / .00290s = 345Hz) by creating a single click
(click 0.1)
defining the IIR echo
(define echo ; IIR version, aka feed-back or recursive delay
(lambda* (secs #&optional (att 1.0))
(let ((del (make-delay (round (* secs (srate)))))
(yz 0.0)
; use yd, i.e., send output to delay
(y0 0.0))
(lambda (x0)
(set! yz (tap del))
; where it comes back from delayline
(set! y0 (+ x0 (* att yz)))
(delay del y0)
; feed into delayline
y0)
)))
and echoing the click with the same period (.0029 seconds) and approximately an equivalent attenuation factor (I estimated .8)
(map-chan (echo .0029 .8))
That generated the beautiful sound of an impulse in a virtual pipe (listen here).