A good start is the porting document. The porting can be done for gst-buzztrax and buzztrax in parallel.
We need to start by adding a --with-gstreamer-1.0 flag to configure.ac (default off) to be able to try building against the new API. This will need to switch GST_MAJORMINOR 0.10- > 0.11 and the base gstreamer version we require from 0.10.X to 0.11.X. We already use GST_DISABLE_DEPRECATED, therefore removed API won't cause any problems.
Check required core elements
Take a look at all the infrastructure elements, check that they are ported and check that they don't have any FIXMEs that we could still fix. It is basically list + "level" and "spectrum" used by the UI.
Port GStreamer elements
This mostly applies to gst-buzztrax. In buzztrax we have bt-dec and the memory audio-sink. One idea here is to write a base class for audio-synthesizers to consolidate the code in simsyn, fluidsynth and bml/bmlsrc for 0.10 already. This will make the porting easier.
Port the application
This will mostly apply to libbuzztrax-core and buzztrax-dec. Make changes to buzztrax-edit and buzztrax-cmd to reduce the direct use of GStreamer. In a few places we can reduce the porting effort by using newer GStreamer API (e.g. use EncodeBin in libbuzztrax-core/sink-bin).
We can also remove btchildproxy, as the version in gstreamer is now flexible enough.