A computer system that processes mixtures of signals, such as speech and noise sources derived from multiple simultaneous microphone recordings, in order to separate them into their underlying sources. A source separation routine optimizes a filter structure by minimizing cross powers of multiple output channels while enforcing geometric constraints on the filter response. The geometric constraints enforce desired responses for given locations of the underlying sources, based on the assumption that the sources are localized in space.