I live on 7th avenue, over the uptown 1, 2, and 3 trains. Whenever a train goes by, my floor rumbles for a bit, almost imperceptibly, but if you’re paying attention (or sitting on the floor, as I am right now) you can feel it go by. A few days ago I thought to myself, “I wish I had some way to detect when the floor was vibrating so that I could see when trains go by. If only I had some sort of instrument for recording vibrations.” After a few minutes, I realized that my crappy computer mic could do double duty as seismometer. Since the vibrations are audible, they must have frequencies in them above 20 Hz, so the mic should be able to pic them up. Since they’re so low, I could record at a very low sampling rate, and thus at a very low bitrate, and thus for a very long time.
So I left sox recording at 200 Hz sampling rate overnight Thursday and lo and behold, I could see train smudges in the spectrogram of the recording. Here’s a picture of one train and If I zoom out a little, you can see when they start coming pretty frequently Friday morning (click for a wider view).
Those times are basically clock times, since I started the recording at close to midnight. The frequency axis goes up to 100 Hz, so the train takes around 25 seconds to rumble by at 50 Hz.
The next step after doing this once was to set up a cron job and some simple scripts to automate the recording process, which I’ve done. Now I have three 8-hour chunks being recorded each day. At 200 Hz, they only take up 12 MB each. The weekend is fine, but the trains are all running on special schedules, 2 locals, no 3, etc. So with a week’s worth of weekday data, I can get a decent idea of what’s going on. I’ll also be able to get around the problem of disrupting the recordings with my presence.
People have point out that the MTA publishes a schedule for the 1, 2, and 3 trains, in fact for all of their trains. That’s all well and good, but how often have I stood on the platform waiting for 20 minutes at 10 am for a train? Hopefully I’ll be able to determine how accurate the train schedules are and how often the trains are late. Are train arrivals spaced every N minutes, or are they more of a Poisson process?
Once I have the times recorded and analyzed, maybe I could take it even farther. Is it possible to tell the 1 from the 2 from the 3 using just the rumbles? How about uptown vs downtown? How about identifying particular trains or particular drivers? At some point this descends into the realm of get-a-life, but for now I’m still grabbing bushels of low hanging fruit.
Adrian also suggested speeding the recordings up so that you could listen to them more quickly. I think this could be cool, but there are problems with the volume at which I’m recording and other sounds getting in the way. Assuming I can work out those issues, you might some day soon be able to listen to an entire day’s worth of audio in only a single hour, what a boon! But seriously, it could be interesting if the trains make cool noises and you could hear how
frequently they come.