Some time ago I had checked in a small piece of code that
implements arbitrary CPM signals (CPFSK, GMSK, MSK, etc
are special cases).
It is still there in the trunk in the blks2impl directory
under the name cpm.py
My plan was to provide a generic trellis-based decoder for
this as well, but never found the time to do it…