diff --git a/audio/wav/decode.go b/audio/wav/decode.go
index f2deab36c87f9bb89a28984d0b46e8c199620d21..33e0fb1d1c9e83dd572eea4aa3e0d5a176ad4cea 100644
--- a/audio/wav/decode.go
+++ b/audio/wav/decode.go
@@ -24,8 +24,7 @@ type ReadSeekCloser interface {
 // Do not close the supplied ReadSeekCloser, instead, use the Close method of the returned
 // StreamSeekCloser when you want to release the resources.
 func Decode(rsc ReadSeekCloser) (s audio.StreamSeekCloser, err error) {
-	var d decoder
-	d.rsc = rsc
+	d := decoder{rsc: rsc}
 	defer func() { // hacky way to always close rsc if an error occured
 		if err != nil {
 			d.rsc.Close()