A general purpose macrogenerator