private double rationalizeFrequency(double freq) {
		double returnFreq = 0.00;
		/*
		 * Generally MELODIA pushes it up the octave
		 * We will check for 3 octaves up
		 */
		if (freq > maxVocalFreq) {
			double freq1 = freq/8;
			if (checkVocalRange(freq1)) {
				returnFreq = prevFreqRationalization(freq1);
			} else {
				double freq2 = freq/4;
				if (checkVocalRange(freq2)) {
					returnFreq = prevFreqRationalization(freq2);
				} else {
					double freq3 = freq/2;
					if (checkVocalRange(freq3)) {
						returnFreq = prevFreqRationalization(freq3);
					}
				}
			}
		}
		
		/*
		 * In case MELODIA pushes it down
		 * We will check 3 lower registers 
		 */
		if (freq < minVocalFreq) {
			double freq1 = freq*2;
			if (checkVocalRange(freq1)) {
				returnFreq = prevFreqRationalization(freq1);
			} else {
				double freq2 = freq*4;
				if (checkVocalRange(freq2)) {
					returnFreq = prevFreqRationalization(freq2);
				} else {
					double freq3 = freq*8;
					if (checkVocalRange(freq3)) {
						returnFreq = prevFreqRationalization(freq3);
					}
				}
			}
		}
		return returnFreq;
	}