line6pcm->out.pos += urb_frames;
                if (line6pcm->out.pos >= runtime->buffer_size)
                        line6pcm->out.pos -= runtime->buffer_size;
+
+               change_volume(urb_out, line6pcm->volume_playback,
+                             bytes_per_frame);
        } else {
                memset(urb_out->transfer_buffer, 0,
                       urb_out->transfer_buffer_length);
        }
 
-       change_volume(urb_out, line6pcm->volume_playback, bytes_per_frame);
-
        if (line6pcm->prev_fbuf != NULL) {
                if (line6pcm->flags & LINE6_BITS_PCM_IMPULSE) {
                        create_impulse_test_signal(line6pcm, urb_out,