Under the Hood: Building a Real-Time Chord Recognizer