public RESULT disconnectFrom(DSP target)
		{
			return FMOD_DSP_DisconnectFrom(dspraw, target.getRaw());
		}
		public RESULT addDSP(DSP dsp, ref DSPConnection connection)
		{
			RESULT result = RESULT.OK;
			IntPtr dspconnectionraw = new IntPtr();
			DSPConnection dspconnectionnew = null;

			try
			{
				result = FMOD_ChannelGroup_AddDSP(channelgroupraw, dsp.getRaw(), ref dspconnectionraw);
			}
			catch
			{
				result = RESULT.ERR_INVALID_PARAM;
			}
			if (result != RESULT.OK)
			{
				return result;
			}

			if (connection == null)
			{
				dspconnectionnew = new DSPConnection();
				dspconnectionnew.setRaw(dspconnectionraw);
				connection = dspconnectionnew;
			}
			else
			{
				connection.setRaw(dspconnectionraw);
			}

			return result;
		}
		public RESULT addInput(DSP target, ref DSPConnection connection)
		{
			RESULT result = RESULT.OK;
			IntPtr dspconnectionraw = new IntPtr();
			DSPConnection dspconnectionnew = null;

			try
			{
				result = FMOD_DSP_AddInput(dspraw, target.getRaw(), ref dspconnectionraw);
			}
			catch
			{
				result = RESULT.ERR_INVALID_PARAM;
			}
			if (result != RESULT.OK)
			{
				return result;
			}

			if (connection == null)
			{
				dspconnectionnew = new DSPConnection();
				dspconnectionnew.setRaw(dspconnectionraw);
				connection = dspconnectionnew;
			}
			else
			{
				connection.setRaw(dspconnectionraw);
			}

			return result;
		}
		public RESULT playDSP(CHANNELINDEX channelid, DSP dsp, bool paused, ref Channel channel)
		{
			RESULT result = RESULT.OK;
			IntPtr channelraw;
			Channel channelnew = null;

			if (channel != null)
			{
				channelraw = channel.getRaw();
			}
			else
			{
				channelraw = new IntPtr();
			}

			try
			{
				result = FMOD_System_PlayDSP(systemraw, channelid, dsp.getRaw(), (paused ? 1 : 0), ref channelraw);
			}
			catch
			{
				result = RESULT.ERR_INVALID_PARAM;
			}
			if (result != RESULT.OK)
			{
				return result;
			}

			if (channel == null)
			{
				channelnew = new Channel();
				channelnew.setRaw(channelraw);
				channel = channelnew;
			}
			else
			{
				channel.setRaw(channelraw);
			}

			return result;
		}