def estimSIMMParams(self, R=1):
        ## section to estimate the melody, on monophonic algo:
        SX = self.computeMonoX()
        # First round of parameter estimation:
        print "    Estimating IMM parameters, on mean of channels, with",R,\
              "\n    accompaniment components."
        HGAMMA, HPHI, HF0, HM, WM, recoError1 = SIMM.SIMM(
            # the data to be fitted to:
            SX,
            # the basis matrices for the spectral combs
            WF0=self.SIMMParams['WF0'],
            # and for the elementary filters:
            WGAMMA=self.SIMMParams['WGAMMA'],
            # number of desired filters, accompaniment spectra:
            numberOfFilters=self.SIMMParams['K'],
            numberOfAccompanimentSpectralShapes=R,#self.SIMMParams['R'],
            # putting only 2 elements in accompaniment for a start...
            # if any, initial amplitude matrices for 
            HGAMMA0=None, HPHI0=None,
            HF00=None,
            WM0=None, HM0=None,
            # Some more optional arguments, to control the "convergence"
            # of the algo
            numberOfIterations=self.SIMMParams['niter'],
            updateRulePower=1.,
            stepNotes=self.SIMMParams['stepNotes'], 
            lambdaHF0 = 0.0 / (1.0 * SX.max()), alphaHF0=0.9,
            verbose=self.verbose,
            displayEvolution=self.displayEvolution,
            imageCanvas=self.imageCanvas,
            F0Table=self.SIMMParams['F0Table'],
            chirpPerF0=self.SIMMParams['chirpPerF0'])