constraint satisfaction music engine