         p.life -= timestepSize / particleLifetime
 
     # Filter out dead particles
-    particles = particles.filter (p) -> p.life > 0
+    particles = particles.filter (p) -> p.life > 0 && p.intensity > 0
 
     # Render particles to the LEDs
     client.mapParticles particles, model

            else
                lfoNotes[key] = info

        when 0xb  # Voice 0, Control Change
            switch message[1]
                when 7, 33   # "Data entry" / "C1" slider, brightness
                    brightness = message[2] * 2.0 / 127

                when 1, 34   # "Modulation" / "C2" slider, particle speed
                    console.log message[2]
                    particleLifetime = 0.1 + message[2] * 2.0 / 127

        when 0xe  # Voice 0, Pitch Bend
            # Default spin 1.0, but allow forward/backward
            spinRate = (message[2] - 64) * 10.0 / 64
    console.log logMsg

draw = () ->

            velocity: [0, 0, 0]
            timestamp: note.timestamp

    # Discard particles if necessary
    if particles.length > maxParticles
        particles = particles.slice particles.length - maxParticles

    # Update appearance of all particles
    for p in particles

