3d sound & node destroying [Solved]

Hi,

I have a class managing bullet. After been shot, 2-3 seconds, I destroy my bullet, because end of life, and detach / remove node.

From that, I attach a 3d sound, and play it

	def initAudio(self):
		audio3d = Audio3DManager.Audio3DManager(base.sfxManagerList[0], base.camera)
		self.bulletSound = audio3d.loadSfx(shimConfig.getInstance().getConvRessourceDirectory() + self.fileToSound)
		audio3d.setSoundVelocityAuto( self.bulletSound ) 
		audio3d.setListenerVelocityAuto() 
		audio3d.attachSoundToObject(self.bulletSound, self.node)
		self.bulletSound.setLoop(True)
		self.bulletSound.play()
		audio3d.setDropOffFactor(0.1) 

When I destroy my bullet, I call my destroy method:

def destroy(self):
		audio3d = Audio3DManager.Audio3DManager(base.sfxManagerList[0], base.camera)
		audio3d.detachSound(self.bulletSound)
		
		self.node.setLightOff()
		self.node.detachNode()
		self.node.removeNode()

But the task of audiomanager to update sounds is still updating this sound, and because the node has been removed (and is empty), my game is crashing because assert error, because the sound is linked to an empty node.

I think, I forgot to do something, but I don’t know what?

Thanks for help

In fact :

 audio3d = Audio3DManager.Audio3DManager(base.sfxManagerList[0], base.camera) 

is not a singleton…