FHT whistle detection

SomethingClever:
Now whenever I upload the sketch below and run it, my computer can't recognize the Yun.

I've never as much as seen a live Yun, so I may not be able to help, but I'll hazard a guess.

The sketch disables interrupts, and then tries to print the input array while interrupts are disabled. That won't work, because Serial.print() relies on interrupts being enabled to do its work. Serial.print() merely sets up the print operation by putting the characters into a buffer, for the serial communication ISR to send. When interrupts are disabled, no characters are transmitted, and the serial buffer fills to capacity. Once it's full, any further call to Serial.print() will cause the processor to wait until there's space in the buffer for the new data. With no characters leaving the serial buffer, it will wait forever. It won't be able to do anything else.

You can fix this by moving the sei() instruction, which reenables interrupts, to the point right before your first call to Serial.print. Or, perhaps better yet, you can eliminate the cli() and sei() instructions entirely. My tests with with this FHT library don't find any change in performance with interrupts either on or off, and I suspect that the notion that they somehow interfere is a relic of wither an old IDE, or of some other implementation of the test program.

If you can tell me what components to buy and how to assemble them, I would be very grateful!

I'm not sure what I would improve. For easy design and installation, the Adafruit gizmo looks to be a very good solution. It manages most of the details of an analog audio interface for you.

I don't know what your goal is. It might be to get a whistle-identifier working, in which case you may be well-advised to pursue a hardware solution, as others have suggested. Or, it might be that the learning component of this project is what's really important you here - in that case, a hardware solution short-circuits your aims. You know what you want to accomplish. I'd recommend that you select the option that suits your needs, and carry on.

I'll note that this is a difficult project for a beginner. We've seen a lot of questions about frequency estimation using the FFT or FHT, but I can't recall anyone reporting a clear success. After you get past these initial hurdles, you may find that this project is more difficult than you imagine. A wiser man than I might advise you to whet your skills on something that's more achievable.