'Evaluate the log likelihood of a melody under the model.
Args:
melody: The Melody object for which to evaluate the log likelihood.
Returns:
The log likelihood of `melody` under this model.'

def melody_log_likelihood(self, melody):

    melody_copy = copy.deepcopy(melody)
    melody_copy.squash(self._config.min_note, self._config.max_note, self._config.transpose_to_key)
    return self._evaluate_log_likelihood([melody_copy])[0]
