Torrents with non-audio files confuse visualizers that work on torrent level, rather than on file level. The problem is that Visualizer.torrent_length correctly disregards non-audio files, whereas torrent_begin and torrent_end in Segment don't.
Example: running stairs_step_is_partition.py with http://featuredcontent.utorrent.com/djshadow/ gives a crash