public void removeTap(Instrument.Tap <DSP.FSK.SymbolEvent> tap)
        {
            mFSKDecoder.removeTap(tap);

            switch (tap.getName())
            {
            case INSTRUMENT_INPUT:
                FloatTap inputTap = (FloatTap)tap;
                removeRealListener(inputTap);
                break;

            case INSTRUMENT_BANDPASS_FILTER_TO_FSK2_DEMOD:
                mBandPassFilter.setListener(mFSKDecoder);
                break;

            case INSTRUMENT_FSK2_DECODER_TO_MESSAGE_FRAMER:
                mFSKDecoder.setListener(mMessageFramer);
                break;
            }
        }
        public void addTap(Instrument.Tap <DSP.FSK.SymbolEvent> tap)
        {
            mFSKDecoder.addTap(tap);

            switch (tap.getName())
            {
            case INSTRUMENT_INPUT:
                FloatTap inputTap = (FloatTap)tap;
                addRealSampleListener(inputTap);
                break;

            case INSTRUMENT_BANDPASS_FILTER_TO_FSK2_DEMOD:
                FloatTap bpTap = (FloatTap)tap;
                mBandPassFilter.setListener(bpTap);
                bpTap.setListener(mFSKDecoder);
                break;

            case INSTRUMENT_FSK2_DECODER_TO_MESSAGE_FRAMER:
                BinaryTap decoderTap = (BinaryTap)tap;
                mFSKDecoder.setListener(decoderTap);
                decoderTap.setListener(mMessageFramer);
                break;
            }
        }