private void performOperation(Operation op) {

		Set<String> times = timeToPitch.keySet();
		double startRef = op.timeReference?Double.valueOf(op.startReference):Double.valueOf(op.startReference)/samplingRate;
		double endRef = op.timeReference?Double.valueOf(op.endReference):Double.valueOf(op.endReference)/samplingRate;

		int factor = op.factor;
		if (op.factor != 0) {
			int counter = 0;
			for(String time : times ) {
				double _time = Double.valueOf(time);
				if (startRef <= _time && _time <= endRef) {
					//apply factor
					double _freq = timeToPitch.get(time);
					double _origFreq = _freq;
					if (factor > 0) {
						_freq = _freq * factor * 2;
					} else {
						_freq = _freq / (2 * (-1) * factor);
					}
					timeToPitch.put(time, _freq);
					//performSargamCalculations
					String _origSwar = sargamLabel.get(counter);
					String newSwar = conv1.getNoteForFrequency(_freq) == null?"":conv1.getNoteForFrequency(_freq);
					sargamLabel.add(counter,newSwar);
					System.out.println("Changed Reference: " + _time + " from " + _origFreq + " to " + _freq
							+ " and swar from " + _origSwar + " to " + newSwar);
				}
				if(_time > endRef) break;//assuming all that
				counter++;
			}
		}
	}