private void clearChannel(int index) {
        // make room at this channel
        if (channelSources[index] != null) {
            AudioSource src = channelSources[index];

            int sourceId = channels[index];
            al.alSourceStop(sourceId);

            // For streaming sources, this will clear all queued buffers.
            al.alSourcei(sourceId, AL_BUFFER, 0);

            if (supportEfx) {
                if (src.getDryFilter() != null) {
                    // detach direct filter
                    al.alSourcei(sourceId, EFX.AL_DIRECT_FILTER, EFX.AL_FILTER_NULL);
                }

                if (src.isPositional() && src.isReverbEnabled()) {
                    // Detach auxiliary send filter (reverb)
                    al.alSource3i(sourceId, EFX.AL_AUXILIARY_SEND_FILTER, 0, 0, EFX.AL_FILTER_NULL);
                }
            }

            channelSources[index] = null;
        }
    }
Stops the AL source on the channel, detaches buffers and filters,
and clears the jME source association. Does NOT free the channel index itself.

@param index The channel index to clear.
jme3-core/src/main/java/com/jme3/audio/openal/ALAudioRenderer.java