Outline of the computational analysis performed by FlySongSegmenter. From top to bottom, the noise floor is estimated from the raw signal. Wavelet analysis is performed to identify putative pulses. We apply two levels of heuristic winnowing, a very conservative winnow based only on amplitude (Pulses.AmpCull) and a stricter winnow that includes amplitude winnowing and that has been tuned to D. melanogaster song (Pulses.IPICull); both results are provided as output. To further refine putative pulses, the log likelihood ratio is then calculated for a D. melanogaster model of pulses versus a model of white noise. One principled way to winnow is to retain only pulses with a log likelihood ratio > 0 (above dotted line), as shown (Pulses.ModelCull). To identify sine trains, the putative pulses are masked and multitaper spectral analysis is applied to masked data (Sines.LengthCull). All of the above steps are performed with a single call to the software and the software can be parallelized easily on a computer cluster. Modeling software is provided with the package to allow users to generate new pulse models from their own recordings. Pulse trains must contain at least two consecutive pulses and song bouts are continuous periods of alternating sine and pulse trains, separated by at least 0.5 seconds from another song bout.