Muito legal! Uma outra forma de imprimir os resultados é fazendo com que as structs satisfaçam a interface fmt.Stringer, dessa forma você pode utilizar fmt.Println para imprimir:

func (r RIFF) String() string {
	var buf bytes.Buffer
	fmt.Fprintln(&buf, "ChunkId: ", string(r.ChunkID[:]))
	fmt.Fprintln(&buf, "ChunkSize: ", binary.LittleEndian.Uint32(r.ChunkSize[:])+8)
	fmt.Fprintln(&buf, "ChunkFormat: ", string(r.ChunkFormat[:]))
	return buf.String()
}

func main() {
	var r RIFF
	fmt.Println(r)
}